jupyterlab-unianalytics-dashboard 4.0.10__tar.gz → 4.0.11__tar.gz
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.
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/CHANGELOG.md +7 -2
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/PKG-INFO +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/_version.py +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/package.json +15 -14
- jupyterlab_unianalytics_dashboard-4.0.11/jupyterlab_unianalytics_dashboard/labextension/schemas/jupyterlab_unianalytics_dashboard/endpoint.json +20 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/schemas/jupyterlab_unianalytics_dashboard/package.json.orig +14 -13
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/schemas/jupyterlab_unianalytics_dashboard/plugin.json +2 -2
- jupyterlab_unianalytics_dashboard-4.0.11/jupyterlab_unianalytics_dashboard/labextension/static/419.3f9d6850a82e34a15b03.js +1 -0
- jupyterlab_unianalytics_dashboard-4.0.11/jupyterlab_unianalytics_dashboard/labextension/static/817.6437962faf359015be36.js +1 -0
- jupyterlab_unianalytics_dashboard-4.0.11/jupyterlab_unianalytics_dashboard/labextension/static/remoteEntry.b7a179124ea6ccfe9616.js +1 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/third-party-licenses.json +30 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/package.json +14 -13
- jupyterlab_unianalytics_dashboard-4.0.11/schema/endpoint.json +20 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/schema/plugin.json +2 -2
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/chat-dashboard/ChatContainer.tsx +7 -12
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/dashboard-widgets/ChatDashboardPanel.tsx +6 -1
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/dashboard-widgets/PanelManager.ts +9 -6
- jupyterlab_unianalytics_dashboard-4.0.11/src/dashboard-widgets/WebsocketManager.ts +74 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/index.ts +58 -3
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/plugins/dashboards.ts +1 -29
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/plugins/uploadNotebook.tsx +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/buttons/GroupDropDown.tsx +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/notebook/CodeExecComponent.tsx +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/notebook/TimeSpentComponent.tsx +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/pages/Cell.tsx +2 -1
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/ExportCSVButton.tsx +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/tocDashboardTree.tsx +2 -1
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/constants.ts +0 -21
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/interactionRecorder.ts +1 -2
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/interfaces.ts +1 -5
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/utils.ts +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/yarn.lock +73 -1
- jupyterlab_unianalytics_dashboard-4.0.10/jupyterlab_unianalytics_dashboard/labextension/static/419.8d7c0e30d3f058138a25.js +0 -1
- jupyterlab_unianalytics_dashboard-4.0.10/jupyterlab_unianalytics_dashboard/labextension/static/remoteEntry.15fd120369cc5a6ff1e7.js +0 -1
- jupyterlab_unianalytics_dashboard-4.0.10/src/dashboard-widgets/WebsocketManager.ts +0 -97
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/.copier-answers.yml +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/.gitignore +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/.prettierignore +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/.yarnrc.yml +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/LICENSE +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/README.md +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/RELEASE.md +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/babel.config.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/conftest.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/install.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jest.config.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/junit.xml +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyter-config/server-config/jupyterlab_unianalytics_dashboard.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/__init__.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/handlers.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/10.1e5c908a94fc4b83c2e5.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/18.759fbf2374edc42b5c3e.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/18.759fbf2374edc42b5c3e.js.LICENSE.txt +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/308.d9da4ce35f354c6f12e1.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/39.5a3b28a79ba693a9b627.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/426.a7015f9dfda310972c1b.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/546.d280746d2a5a5e5b9fc3.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/563.b613f734176cb51510ef.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/638.d37271636c4d956096de.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/708.323c3614d31a5918cfaf.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/708.323c3614d31a5918cfaf.js.LICENSE.txt +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/744.329dc4d1ed2f5c918266.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/798.33a8f0893a66574e9259.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/981.ebb9e1d6122980b5ff0e.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/981.ebb9e1d6122980b5ff0e.js.LICENSE.txt +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/style.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/tests/__init__.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/tests/test_handlers.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/pyproject.toml +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/setup.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/__tests__/jupyterlab_unianalytics_dashboard.spec.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/chat-dashboard/ConnectionComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/dashboard-widgets/DashboardPanel.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/dashboard-widgets/TocDashboardPanel.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/dashboard-widgets/VisuDashboardPanel.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/handler.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/icons/index.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/icons/react-app-env.d.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/redux/localStorage.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/redux/reducers/CommonDashboardReducer.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/redux/reducers/SideDashboardReducer.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/redux/reducers/ToCDashboardReducer.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/redux/store.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/redux/types.d.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/PageRouter.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/buttons/SortDropDown.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/buttons/TimeDropDown.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/cell/CellInput.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/cell/CellOutput.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/cell/ExecutionComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/cell/MarkdownComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/layout/GridSystem.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/layout/TopBreadcrumb.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/notebook/ChartContainer.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/placeholder/Loader.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/placeholder/NoData.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/placeholder/SidebarPlaceholder.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/pages/Notebook.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/TocReactComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/generator/index.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/generator/options_manager.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/generator/render.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/generator/toolbar_generator.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/generator/utils.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/tocDashboardItem.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/chartOptions.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/compatibility.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/headings.d.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/widget-extensions/CellButton.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/widget-extensions/NotebookButton.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/src/widget-extensions/index.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/style/base.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/style/icons/analytics.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/style/icons/eyeFill.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/style/icons/eyeSlash.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/style/icons/folder.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/style/icons/notebook.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/style/index.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/style/index.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/style/reactVisu.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/style/tocDashboard.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/style/tocDashboardEditor.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/style/upload.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/tsconfig.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/tsconfig.test.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/ui-tests/README.md +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/ui-tests/jupyter_server_test_config.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/ui-tests/package.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/ui-tests/playwright.config.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/ui-tests/tests/jupyterlab_unianalytics_dashboard.spec.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/ui-tests/yarn.lock +0 -0
{jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/CHANGELOG.md
RENAMED
|
@@ -2,12 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- <START NEW CHANGELOG ENTRY> -->
|
|
4
4
|
|
|
5
|
-
## 4.0.
|
|
5
|
+
## 4.0.11
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- Switching to socketio protocol to establish websocket connections with the backend.
|
|
8
|
+
- Encoding the backend URL as a setting and adding a checkbox to switch to local backend routing.
|
|
8
9
|
|
|
9
10
|
<!-- <END NEW CHANGELOG ENTRY> -->
|
|
10
11
|
|
|
12
|
+
## 4.0.10
|
|
13
|
+
|
|
14
|
+
No merged PRs
|
|
15
|
+
|
|
11
16
|
## 4.0.9
|
|
12
17
|
|
|
13
18
|
- Adding new dropdown filters
|
{jupyterlab_unianalytics_dashboard-4.0.10 → jupyterlab_unianalytics_dashboard-4.0.11}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: jupyterlab_unianalytics_dashboard
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.11
|
|
4
4
|
Dynamic: Keywords
|
|
5
5
|
Summary: A JupyterLab dashboard extension to visualize data from students.
|
|
6
6
|
Project-URL: Homepage, https://github.com/chili-epfl/jupyter-dashboard-visu-extension
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jupyterlab_unianalytics_dashboard",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.11",
|
|
4
4
|
"description": "A JupyterLab dashboard extension to visualize data from students.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyter",
|
|
@@ -30,26 +30,26 @@
|
|
|
30
30
|
"url": "https://github.com/chili-epfl/jupyter-dashboard-visu-extension.git"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
|
-
"build": "
|
|
34
|
-
"build:prod": "
|
|
33
|
+
"build": "jlpm build:lib && jlpm build:labextension:dev",
|
|
34
|
+
"build:prod": "jlpm clean && jlpm build:lib:prod && jlpm build:labextension",
|
|
35
35
|
"build:labextension": "jupyter labextension build .",
|
|
36
36
|
"build:labextension:dev": "jupyter labextension build --development True .",
|
|
37
37
|
"build:lib": "tsc --sourceMap",
|
|
38
38
|
"build:lib:prod": "tsc",
|
|
39
|
-
"clean": "
|
|
39
|
+
"clean": "jlpm clean:lib",
|
|
40
40
|
"clean:lib": "rimraf lib tsconfig.tsbuildinfo",
|
|
41
41
|
"clean:lintcache": "rimraf .eslintcache .stylelintcache",
|
|
42
42
|
"clean:labextension": "rimraf jupyterlab_unianalytics_dashboard/labextension jupyterlab_unianalytics_dashboard/_version.py",
|
|
43
|
-
"clean:all": "
|
|
44
|
-
"eslint": "
|
|
43
|
+
"clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache",
|
|
44
|
+
"eslint": "jlpm eslint:check --fix",
|
|
45
45
|
"eslint:check": "eslint . --cache --ext .ts,.tsx",
|
|
46
|
-
"install:extension": "
|
|
47
|
-
"lint": "
|
|
48
|
-
"lint:check": "
|
|
49
|
-
"prettier": "
|
|
46
|
+
"install:extension": "jlpm build",
|
|
47
|
+
"lint": "jlpm stylelint && jlpm prettier && jlpm eslint",
|
|
48
|
+
"lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check",
|
|
49
|
+
"prettier": "jlpm prettier:base --write --list-different",
|
|
50
50
|
"prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"",
|
|
51
|
-
"prettier:check": "
|
|
52
|
-
"stylelint": "
|
|
51
|
+
"prettier:check": "jlpm prettier:base --check",
|
|
52
|
+
"stylelint": "jlpm stylelint:check --fix",
|
|
53
53
|
"stylelint:check": "stylelint --cache \"style/**/*.css\"",
|
|
54
54
|
"test": "jest --coverage",
|
|
55
55
|
"watch": "run-p watch:src watch:labextension",
|
|
@@ -69,7 +69,8 @@
|
|
|
69
69
|
"react-bootstrap": "^2.10.0",
|
|
70
70
|
"react-bootstrap-icons": "^1.10.3",
|
|
71
71
|
"react-chartjs-2": "^5.2.0",
|
|
72
|
-
"react-redux": "^8.0.5"
|
|
72
|
+
"react-redux": "^8.0.5",
|
|
73
|
+
"socket.io-client": "^4.7.5"
|
|
73
74
|
},
|
|
74
75
|
"devDependencies": {
|
|
75
76
|
"@jupyterlab/builder": "^4.0.0",
|
|
@@ -123,7 +124,7 @@
|
|
|
123
124
|
"outputDir": "jupyterlab_unianalytics_dashboard/labextension",
|
|
124
125
|
"schemaDir": "schema",
|
|
125
126
|
"_build": {
|
|
126
|
-
"load": "static/remoteEntry.
|
|
127
|
+
"load": "static/remoteEntry.b7a179124ea6ccfe9616.js",
|
|
127
128
|
"extension": "./extension",
|
|
128
129
|
"style": "./style"
|
|
129
130
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"jupyter.lab.setting-icon-label": "Unianalytics: Dashboard Endpoint",
|
|
3
|
+
"title": "Unianalytics: Dashboard Endpoint",
|
|
4
|
+
"properties": {
|
|
5
|
+
"useLocalBackend": {
|
|
6
|
+
"type": "boolean",
|
|
7
|
+
"title": "Use local backend",
|
|
8
|
+
"description": "Whether to point the dashboard extension at a locally hosted backend (checked) or the endpoint provided below (unchecked).",
|
|
9
|
+
"default": false
|
|
10
|
+
},
|
|
11
|
+
"backendEndpoint": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"title": "Backend endpoint URL",
|
|
14
|
+
"description": "Ignored if 'Use local backend' is checked, traffic will be routed to 'localhost'",
|
|
15
|
+
"default": "https://api-unianalytics-elb.unianalytics.ch"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"additionalProperties": false,
|
|
19
|
+
"type": "object"
|
|
20
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jupyterlab_unianalytics_dashboard",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.11",
|
|
4
4
|
"description": "A JupyterLab dashboard extension to visualize data from students.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyter",
|
|
@@ -30,26 +30,26 @@
|
|
|
30
30
|
"url": "https://github.com/chili-epfl/jupyter-dashboard-visu-extension.git"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
|
-
"build": "
|
|
34
|
-
"build:prod": "
|
|
33
|
+
"build": "jlpm build:lib && jlpm build:labextension:dev",
|
|
34
|
+
"build:prod": "jlpm clean && jlpm build:lib:prod && jlpm build:labextension",
|
|
35
35
|
"build:labextension": "jupyter labextension build .",
|
|
36
36
|
"build:labextension:dev": "jupyter labextension build --development True .",
|
|
37
37
|
"build:lib": "tsc --sourceMap",
|
|
38
38
|
"build:lib:prod": "tsc",
|
|
39
|
-
"clean": "
|
|
39
|
+
"clean": "jlpm clean:lib",
|
|
40
40
|
"clean:lib": "rimraf lib tsconfig.tsbuildinfo",
|
|
41
41
|
"clean:lintcache": "rimraf .eslintcache .stylelintcache",
|
|
42
42
|
"clean:labextension": "rimraf jupyterlab_unianalytics_dashboard/labextension jupyterlab_unianalytics_dashboard/_version.py",
|
|
43
|
-
"clean:all": "
|
|
44
|
-
"eslint": "
|
|
43
|
+
"clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache",
|
|
44
|
+
"eslint": "jlpm eslint:check --fix",
|
|
45
45
|
"eslint:check": "eslint . --cache --ext .ts,.tsx",
|
|
46
|
-
"install:extension": "
|
|
47
|
-
"lint": "
|
|
48
|
-
"lint:check": "
|
|
49
|
-
"prettier": "
|
|
46
|
+
"install:extension": "jlpm build",
|
|
47
|
+
"lint": "jlpm stylelint && jlpm prettier && jlpm eslint",
|
|
48
|
+
"lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check",
|
|
49
|
+
"prettier": "jlpm prettier:base --write --list-different",
|
|
50
50
|
"prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"",
|
|
51
|
-
"prettier:check": "
|
|
52
|
-
"stylelint": "
|
|
51
|
+
"prettier:check": "jlpm prettier:base --check",
|
|
52
|
+
"stylelint": "jlpm stylelint:check --fix",
|
|
53
53
|
"stylelint:check": "stylelint --cache \"style/**/*.css\"",
|
|
54
54
|
"test": "jest --coverage",
|
|
55
55
|
"watch": "run-p watch:src watch:labextension",
|
|
@@ -69,7 +69,8 @@
|
|
|
69
69
|
"react-bootstrap": "^2.10.0",
|
|
70
70
|
"react-bootstrap-icons": "^1.10.3",
|
|
71
71
|
"react-chartjs-2": "^5.2.0",
|
|
72
|
-
"react-redux": "^8.0.5"
|
|
72
|
+
"react-redux": "^8.0.5",
|
|
73
|
+
"socket.io-client": "^4.7.5"
|
|
73
74
|
},
|
|
74
75
|
"devDependencies": {
|
|
75
76
|
"@jupyterlab/builder": "^4.0.0",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"jupyter.lab.setting-icon": "jupyterlab_unianalytics_dashboard:visu-icon",
|
|
3
|
-
"jupyter.lab.setting-icon-label": "Unianalytics Dashboards",
|
|
4
|
-
"title": "Unianalytics Dashboards",
|
|
3
|
+
"jupyter.lab.setting-icon-label": "Unianalytics: Dashboards",
|
|
4
|
+
"title": "Unianalytics: Dashboards",
|
|
5
5
|
"description": "Settings for both unianalytics side panel visualization widgets.",
|
|
6
6
|
"jupyter.lab.menus": {
|
|
7
7
|
"main": [
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkjupyterlab_unianalytics_dashboard=self.webpackChunkjupyterlab_unianalytics_dashboard||[]).push([[419],{575:(e,t,o)=>{o.r(t),o.d(t,{BACKEND_API_URL:()=>Mt,CURRENT_NOTEBOOK_ID:()=>Tt,PERSISTENT_USER_ID:()=>At,WEBSOCKET_API_URL:()=>Bt,default:()=>$t,setCurrentNotebookId:()=>Rt});var a=o(4072),n=o(9380),s=o(3413),l=o(5099);o(4039);const r="jupyterlab_unianalytics_dashboard",i=`${r}:plugin`,c=`${r}_access_token`,d=`${r}_refresh_token`,h=`${r}/commondashboard:redux_state`;var u;!function(e){e.dashboardOpenVisu=`${r}:dashboard-open-visu`,e.uploadNotebook=`${r}:dashboard-upload-notebook`,e.copyDownloadLink=`${r}:dashboard-copy-download-link`}(u||(u={}));const m='.jp-DirListing-item[data-file-type="notebook"]',p="unianalytics";var g;!function(e){e.notebookId=`${p}_notebook_id`,e.cellMapping=`${p}_cell_mapping`}(g||(g={}));const b=[{key:"timeDesc",label:"Time (most recent 1st)",method:(e,t)=>new Date(e.t_finish)<new Date(t.t_finish)?1:-1},{key:"timeAsc",label:"Time (oldest 1st)",method:(e,t)=>new Date(e.t_finish)>new Date(t.t_finish)?1:-1},{key:"inputAsc",label:"Input (shortest 1st)",method:(e,t)=>e.cell_input.length-t.cell_input.length},{key:"inputDesc",label:"Input (longest 1st)",method:(e,t)=>t.cell_input.length-e.cell_input.length},{key:"outputAsc",label:"Output (shortest 1st)",method:(e,t)=>e.cell_output_length-t.cell_output_length},{key:"outputDesc",label:"Output (longest 1st)",method:(e,t)=>t.cell_output_length-e.cell_output_length}];var _;class v{static async setJupyterVersion(e){v._jupyterVersion=e,await v._setEditorLanguageRegistry(),await v._asyncImports()}static async _setEditorLanguageRegistry(){if(4===v._jupyterVersion){const{StreamLanguage:e}=await o.e(373).then(o.t.bind(o,1373,23)),{EditorLanguageRegistry:t,parseMathIPython:a}=await Promise.resolve().then(o.t.bind(o,8873,23)),n=new t;t.getDefaultLanguages().forEach((e=>{n.addLanguage(e)})),n.addLanguage({name:"ipythongfm",mime:"text/x-ipythongfm",load:async()=>{const[t,s]=await Promise.all([Promise.all([o.e(638),o.e(211),o.e(373),o.e(376)]).then(o.bind(o,8638)),o.e(10).then(o.bind(o,8010))]);return t.markdown({base:t.markdownLanguage,codeLanguages:e=>n.findBest(e),extensions:[a(e.define(s.stexMath).parser)]})}}),v._editorDefaultLanguages=n}}static async _asyncImports(){if(4===v._jupyterVersion){const{EditorView:e}=await o.e(211).then(o.t.bind(o,6211,23));this._EditorView=e;const{jupyterTheme:t}=await Promise.resolve().then(o.t.bind(o,8873,23));this._jupyterTheme=t}}static checkJupyterVersionSet(){if(null===v._jupyterVersion)throw new Error("JupyterLab version is not set in CompatibilityManager before trying to access it.")}static observeEditorVisibility(e){return 3===v._jupyterVersion?new IntersectionObserver((t=>{t[0].isIntersecting&&e.refresh()}),{root:null,threshold:.5}):null}}_=v,v._jupyterVersion=null,v._editorDefaultLanguages=void 0,v._EditorView=void 0,v._jupyterTheme=void 0,v.getMetadataComp=(e,t)=>{var o;return v.checkJupyterVersionSet(),4===v._jupyterVersion?null==e?void 0:e.getMetadata(t):null===(o=null==e?void 0:e.metadata)||void 0===o?void 0:o.get(t)},v.setMetadataComp=(e,t,o)=>{var a;v.checkJupyterVersionSet(),4===v._jupyterVersion?null==e||e.setMetadata(t,o):null===(a=null==e?void 0:e.metadata)||void 0===a||a.set(t,o)},v.deleteMetadataComp=(e,t)=>{var o;return v.checkJupyterVersionSet(),4===v._jupyterVersion?null==e?void 0:e.deleteMetadata(t):null===(o=null==e?void 0:e.metadata)||void 0===o?void 0:o.delete(t)},v.getFileComp=e=>{var t;v.checkJupyterVersionSet();const o=null===(t=e.tracker.currentWidget)||void 0===t?void 0:t.selectedItems().next();return 4===v._jupyterVersion?null==o?void 0:o.value:o},v.getCellsArrComp=e=>(v.checkJupyterVersionSet(),e?Array.from({length:e.length},((t,o)=>e.get(o))):null),v.getCodeMirrorOptionsComp=()=>(v.checkJupyterVersionSet(),4===v._jupyterVersion?{extensions:[_._jupyterTheme,_._EditorView.lineWrapping,_._EditorView.editable.of(!1)],languages:v._editorDefaultLanguages}:{config:{readOnly:!0}}),v.getNextWidgetValueComp=e=>{var t;return v.checkJupyterVersionSet(),4===v._jupyterVersion?null===(t=e.next())||void 0===t?void 0:t.value:e.next()};const k=(e,t)=>{var o,a;return`displayRealTime=${null===(o=e.displayRealTime[t])||void 0===o||o}`+(e.t1ISOString[t]?"&t1="+e.t1ISOString[t]:"")+((null===(a=e.selectedGroups[t])||void 0===a?void 0:a.length)>0?"&selectedGroups="+encodeURIComponent(JSON.stringify(e.selectedGroups[t])):"")},C=async(e,t)=>{const o=await w(e,t);if(401===o.status){const a=await o.json();if("expired_token"===(null==a?void 0:a.status)){if(await E())return w(e,t);console.log(`${r}: Token refresh failed.`)}}return o},w=async(e,t)=>{const o={headers:{Authorization:`Bearer ${sessionStorage.getItem(c)}`}},a={...o,...t,headers:{...o.headers,...(null==t?void 0:t.headers)||{}}};return fetch(e,a)},E=async()=>{const e=await fetch(`${Mt}/auth/refresh`,{method:"POST",headers:{Authorization:`Bearer ${sessionStorage.getItem(d)}`}});if(e.ok){const t=await e.json();if(null==t?void 0:t.access_token)return sessionStorage.setItem(c,t.access_token),!0}return!1},y=e=>!!(e&&!e.isDisposed&&e.context.isReady&&v.getMetadataComp(e.context.model,g.notebookId)&&v.getMetadataComp(e.context.model,g.cellMapping)),f=(e,t)=>!(!e||!t)&&e.length===t.length&&e.every(((e,o)=>e===t[o]));var S=o(6029),O=o.n(S),D=o(6805),N=o(1464);const x=e=>{const[t,o]=(0,S.useState)(!1);return O().createElement("div",null,O().createElement("p",null,"Successfully uploaded, can be downloaded accessing:"),O().createElement("div",{className:"unianalytics-link-container"},O().createElement("div",{className:"unianalytics-link"},e.url),O().createElement("div",{className:"unianalytics-link-button-container"},O().createElement("button",{className:"unianalytics-link-button",onClick:()=>{navigator.clipboard.writeText(e.url).then((()=>{o(!0)})).catch((e=>{console.error(`${r}: Error copying to clipboard: `,e)}))}},t?O().createElement(D.checkIcon.react,null):O().createElement(D.copyIcon.react,null)))))};const I=new D.LabIcon({name:`${r}:visu-icon`,svgstr:'<svg height="200px" width="200px" viewBox="0 0 512 512.001"\nxmlns="http://www.w3.org/2000/svg">\n <g id="SVGRepo_bgCarrier" stroke-width="0"></g>\n <g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g>\n <g id="SVGRepo_iconCarrier"> \n <g> <g> \n <g> <path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" d="M105.094,307.2h129.347c16.345,0,29.642-13.298,29.642-29.642v-43.116c0-16.344-13.297-29.642-29.642-29.642H105.094 c-16.344,0-29.642,13.298-29.642,29.642v43.116C75.452,293.902,88.75,307.2,105.094,307.2z M91.621,234.442 c0-7.43,6.044-13.474,13.474-13.474h129.347c7.43,0,13.474,6.044,13.474,13.474v43.116c0,7.43-6.044,13.474-13.474,13.474 H105.094c-7.43,0-13.474-6.044-13.474-13.474V234.442z"></path> \n <path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" d="M509.633,476.642l-21.558-21.558c-3.157-3.156-8.275-3.156-11.433,0c-3.157,3.157-3.157,8.275,0,11.433l7.758,7.757H51.2 c-7.43,0-13.474-6.044-13.474-13.474V27.601l7.758,7.758c3.156,3.156,8.275,3.156,11.432,0c3.157-3.157,3.157-8.275,0-11.433 L35.358,2.367c-3.156-3.156-8.275-3.156-11.432,0L2.368,23.925c-3.157,3.157-3.157,8.275,0,11.433 c3.156,3.156,8.275,3.156,11.432,0l7.758-7.758V460.8c0,16.344,13.298,29.642,29.642,29.643h433.198l-7.758,7.757 c-3.157,3.157-3.157,8.275,0,11.433c1.579,1.578,3.649,2.367,5.717,2.367c2.068,0,4.138-0.789,5.717-2.367l21.558-21.558 C512.79,484.917,512.79,479.799,509.633,476.642z"></path>\n <path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" d="M105.094,177.853h377.263c16.344,0,29.642-13.298,29.642-29.642v-43.116c0-16.344-13.298-29.642-29.642-29.642H105.094 c-16.344,0-29.642,13.298-29.642,29.642v43.116C75.452,164.555,88.75,177.853,105.094,177.853z M91.621,105.095 c0-7.43,6.045-13.474,13.474-13.474h377.263c7.43,0,13.474,6.044,13.474,13.474v43.116c0,7.43-6.044,13.474-13.474,13.474 H105.094c-7.43,0-13.474-6.044-13.474-13.474V105.095z"></path> \n <path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" d="M105.094,436.548H353.01c16.344,0,29.642-13.298,29.642-29.642V363.79c0-16.344-13.298-29.642-29.642-29.642H105.094 c-16.344,0-29.642,13.298-29.642,29.642v43.116C75.452,423.25,88.75,436.548,105.094,436.548z M91.621,363.79 c0-7.43,6.044-13.474,13.474-13.474H353.01c7.43,0,13.474,6.044,13.474,13.474v43.116c0,7.43-6.044,13.474-13.474,13.474H105.094 c-7.43,0-13.474-6.044-13.474-13.474V363.79z"></path> </g>\n </g> </g> </g>\n </svg>'}),T=new D.LabIcon({name:`${r}:hide-icon`,svgstr:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-eye-slash-fill" viewBox="0 0 16 16">\n <path d="m10.79 12.912-1.614-1.615a3.5 3.5 0 0 1-4.474-4.474l-2.06-2.06C.938 6.278 0 8 0 8s3 5.5 8 5.5a7.029 7.029 0 0 0 2.79-.588zM5.21 3.088A7.028 7.028 0 0 1 8 2.5c5 0 8 5.5 8 5.5s-.939 1.721-2.641 3.238l-2.062-2.062a3.5 3.5 0 0 0-4.474-4.474L5.21 3.089z"/>\n <path d="M5.525 7.646a2.5 2.5 0 0 0 2.829 2.829l-2.83-2.829zm4.95.708-2.829-2.83a2.5 2.5 0 0 1 2.829 2.829zm3.171 6-12-12 .708-.708 12 12-.708.708z"/>\n</svg>'}),R=new D.LabIcon({name:`${r}:show-icon`,svgstr:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-eye-fill" viewBox="0 0 16 16">\n <path d="M10.5 8a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0z"/>\n <path d="M0 8s3-5.5 8-5.5S16 8 16 8s-3 5.5-8 5.5S0 8 0 8zm8 3.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7z"/>\n</svg>'});var A=o(3748);const L={displayDashboard:!0,hasNotebookId:!1},M=(0,A.createSlice)({name:"tocdashboard",initialState:L,reducers:{setDisplayHideDashboard:(e,t)=>{e.displayDashboard=t.payload},setHasNotebookId:(e,t)=>{e.hasNotebookId=t.payload}}}),{setDisplayHideDashboard:B,setHasNotebookId:H}=M.actions,$=M.reducer,F={navigationState:[{pageName:"Notebook"}]},U=(0,A.createSlice)({name:"sidedashboard",initialState:F,reducers:{navigateToNotebook:(e,t)=>{e.navigationState=[{pageName:"Notebook"}]},navigateToCell:(e,t)=>{e.navigationState=[{pageName:"Notebook"},{pageName:"Cell",content:{cellId:t.payload.cellId}}]},navigateToHistory:(e,t)=>{e.navigationState=e.navigationState.slice(0,t.payload+1)},resetNavigationState:(e,t)=>{e.navigationState=F.navigationState}}}),{navigateToNotebook:V,navigateToCell:P,navigateToHistory:z,resetNavigationState:j}=U.actions,W=U.reducer,G={notebookCells:null,refreshBoolean:!1,sortBy:{},dashboardQueryArgs:{displayRealTime:{},t1ISOString:{},selectedGroups:{}}},J=(0,A.createSlice)({name:"commondashboard",initialState:G,reducers:{setDashboardQueryArgsTimeFilter:(e,t)=>{const{notebookId:o,t1ISOString:a}=t.payload;e.dashboardQueryArgs.t1ISOString[o]=a},setDashboardQueryArgsSelectedGroups:(e,t)=>{const{notebookId:o,groups:a}=t.payload,n=e.dashboardQueryArgs.selectedGroups[o]||[];if(!f(n,a))return{...e,dashboardQueryArgs:{...e.dashboardQueryArgs,selectedGroups:{...e.dashboardQueryArgs.selectedGroups,[o]:a}}}},setDashboardQueryArgsDisplayRealTime:(e,t)=>{const{notebookId:o,displayRealTime:a}=t.payload;e.dashboardQueryArgs.displayRealTime[o]=a},setSortBy:(e,t)=>{const{notebookId:o,sortCriterion:a}=t.payload;e.sortBy[o]=a},setNotebookCells:(e,t)=>{e.notebookCells=t.payload},refreshDashboards:e=>{e.refreshBoolean=!e.refreshBoolean}}}),{setDashboardQueryArgsTimeFilter:K,setDashboardQueryArgsSelectedGroups:Q,setDashboardQueryArgsDisplayRealTime:q,setSortBy:X,setNotebookCells:Z,refreshDashboards:Y}=J.actions,ee=J.reducer,te=e=>t=>o=>{const a=t(o);if(o.type.startsWith("commondashboard/")){const t=e.getState();localStorage.setItem(h,JSON.stringify(t.commondashboard))}return a},oe={commondashboard:localStorage.getItem(h)?JSON.parse(localStorage.getItem(h)):G},ae=(0,A.configureStore)({reducer:{tocdashboard:$,sidedashboard:W,commondashboard:ee},middleware:e=>e().concat(te),preloadedState:oe});var ne,se,le=o(6947),re=o(8671),ie=o(4901);class ce{}!function(e){e.LOADING="Loading",e.NOTFOUND="Notebook not Registered",e.USERNOTAUTHORIZED="No User Permission for this Notebook",e.EXPIREDTOKEN="Expired Login Token",e.INVALIDCREDENTIALS="Invalid Credentials",e.ERROR="Fetching Error",e.SUCCESS="Success"}(ne||(ne={})),function(e){e.RIGHT_DASHBOARD_SHOW_HIDE="RIGHT_DASHBOARD_SHOW_HIDE",e.TOC_DASHBOARD_SHOW_HIDE="TOC_DASHBOARD_SHOW_HIDE",e.NOTEBOOK_CELL_BUTTON="NOTEBOOK_CELL_BUTTON",e.NOTEBOOK_TOOLBAR_BUTTON="NOTEBOOK_TOOLBAR_BUTTON",e.TOC_OPEN_CELL_DASHBOARD="TOC_OPEN_CELL_DASHBOARD",e.TOC_HEADING_CLICKED="TOC_HEADING_CLICKED",e.TOC_COLLAPSE_HEADERS="TOC_COLLAPSE_HEADERS",e.BREADCRUMB_TO_NOTEBOOK="BREADCRUMB_TO_NOTEBOOK",e.BREADCRUMB_TO_CELL="BREADCRUMB_TO_CELL",e.DASHBOARD_REFRESH_BUTTON="DASHBOARD_REFRESH_BUTTON",e.DASHBOARD_FILTER_TIME="DASHBOARD_FILTER_TIME",e.CELL_DASHBOARD_FILTER_SORT="CELL_DASHBOARD_FILTER_SORT",e.CELL_DASHBOARD_FILTER_CODE_INPUT="CELL_DASHBOARD_FILTER_CODE_INPUT",e.CELL_DASHBOARD_FILTER_CODE_OUTPUT="CELL_DASHBOARD_FILTER_CODE_OUTPUT",e.CELL_DASHBOARD_FILTER_EXECUTION="CELL_DASHBOARD_FILTER_EXECUTION",e.TOC_TOOLBAR_CODE="TOC_TOOLBAR_CODE",e.TOC_TOOLBAR_MARKDOWN="TOC_TOOLBAR_MARKDOWN",e.TOC_TOOLBAR_NUMBERED="TOC_TOOLBAR_NUMBERED",e.TOC_TOOLBAR_SHOW_HIDE="TOC_TOOLBAR_SHOW_HIDE",e.TOC_TOOLBAR_REFRESH="TOC_TOOLBAR_REFRESH"}(se||(se={}));var de=o(9156);const he=ae.dispatch;class ue{constructor(){this._socket=null}_createSocket(e,t){this._socket=(0,de.io)(`${Bt}?conType=TEACHER&nbId=${e}&userId=${t}`,{transports:["websocket"]}),this._socket.on("connect",(()=>{console.log(`${r}: SocketIO connection opened for:`,{notebookId:e,userId:t})})),this._socket.on("disconnect",(o=>{console.log(`${r}: SocketIO connection closed (reason: ${o}) for:`,{notebookId:e,userId:t})})),this._socket.on("refreshDashboard",(()=>{he(Y()),console.log(`${r}: Received refresh dashboard request`)})),this._socket.on("chat",(e=>{console.log(`${r}: message received : ${e}`)})),this._socket.on("connect_error",(e=>{console.error(`${r}: SocketIO error; `,e)}))}establishSocketConnection(e){this.closeSocketConnection(),e&&At&&this._createSocket(e,At)}closeSocketConnection(){this._socket&&this._socket.close(),this._socket=null}sendMessageToUser(e,t){this._socket&&this._socket.emit("send_message",{userId:e,message:t})}}const me=ae.dispatch;class pe{constructor(){this._panelUpdatedSignal=new ie.Signal(this),this._panelSwitchedSignal=new ie.Signal(this),this._ongoingContextId="",this._ongoingCheckId="",this._panel=null,this._monitor=null,this._validityChecks={tag:null,registered:ne.LOADING},this._websocketManager=new ue}get validityChecks(){return this._validityChecks}get notebookCells(){return this._notebookCells}get websocketManager(){return this._websocketManager}get panel(){return this._panel}set panel(e){if(this._panel===e)return;if(this._panel&&this._panel.disposed.disconnect(this._onPanelDisposed,this),Rt(null),this._validityChecks={tag:null,registered:ne.LOADING},this._websocketManager.closeSocketConnection(),this._panel=e,this._onPanelSwitched(),this._panel&&this._panel.disposed.connect(this._onPanelDisposed,this),this._monitor&&(this._monitor.dispose(),this._monitor=null),!this._panel)return void this._onPanelUpdated();const t=crypto.randomUUID();this._ongoingContextId=t,this._panel.sessionContext.ready.then((()=>{if(this._ongoingContextId===t&&this._panel&&!this._panel.isDisposed){if(this._monitor=new re.ActivityMonitor({signal:this._panel.context.model.contentChanged,timeout:1e3}),this._monitor.activityStopped.connect(this._onPanelUpdated,this),y(this._panel)){const e=v.getMetadataComp(this._panel.model,g.notebookId);Rt(e),this._validityChecks={tag:e,registered:ne.LOADING},this._performRegistrationCheck()}this._onPanelUpdated()}}))}_performRegistrationCheck(){const e=crypto.randomUUID();this._ongoingCheckId=e;let t=ne.ERROR;C(`${Mt}/dashboard/${this._validityChecks.tag}/check`).then((e=>e.json())).then((e=>{(null==e?void 0:e.status)?"expired_token"===e.status?t=ne.EXPIREDTOKEN:"not_found"===e.status?t=ne.NOTFOUND:"no_user_permission"===e.status?t=ne.USERNOTAUTHORIZED:"success"===e.status&&(t=ne.SUCCESS):t=ne.INVALIDCREDENTIALS})).catch((e=>{console.log(`${r}: Notebook check fetching error (check your connection).`+e)})).finally((()=>{this._ongoingCheckId===e&&this._panel&&!this._panel.isDisposed&&(this._validityChecks.registered=t,this._validityChecks.registered===ne.SUCCESS&&(me(j()),this._websocketManager.establishSocketConnection(this._validityChecks.tag)),this._panelUpdatedSignal.emit(void 0))}))}_onPanelDisposed(e){this.panel=null}get panelSwitched(){return this._panelSwitchedSignal}_onPanelSwitched(){this._panelSwitchedSignal.emit(void 0)}get panelUpdated(){return this._panelUpdatedSignal}_onPanelUpdated(){this._updateCellList(),this._panelUpdatedSignal.emit(void 0)}_updateCellList(){var e,t;const o=v.getCellsArrComp(null===(t=null===(e=this.panel)||void 0===e?void 0:e.model)||void 0===t?void 0:t.cells);if(o){const e=o.map((e=>e.id));if(!f(e,this._notebookCells)){this._notebookCells=e;const t=o.map((e=>({id:e.id,cellType:e.type})));return me(Z(t)),!0}}else this._notebookCells=null;return!1}}var ge=o(7760),be=o(8559);const _e=()=>O().createElement("div",{style:{width:"100%",textAlign:"center",margin:"50px 0"}},O().createElement(be.Spinner,{style:{width:"50px",height:"50px",fontSize:"x-large"},animation:"border",role:"status",variant:"primary"})),ve=({title:e,placeholderText:t="No data for the opened notebook"})=>O().createElement("div",{className:"dashboard-TableOfContents"},O().createElement("div",{className:"dashboard-stack-panel-header"},"Side Panel Dashboard"),O().createElement("div",{className:"dashboard-TableOfContents-placeholder"},O().createElement("div",{className:"dashboard-TableOfContents-placeholderContent"},O().createElement("h3",null,e),O().createElement("p",null,t))));class ke extends N.ReactWidget{constructor(e){super(),this.addClass("dashboard-panel"),this._panelManager=e,e.panelUpdated.connect((()=>this.update()),this)}onAfterShow(e){this.update()}onUpdateRequest(e){super.onUpdateRequest(e)}render(){if(!this._panelManager.panel)return S.createElement(ve,{title:"No Notebook",placeholderText:"Open a notebook to start viewing its content."});if(!this._panelManager.panel.context.isReady)return S.createElement(_e,null);if(!this._panelManager.validityChecks.tag)return S.createElement(ve,{title:"Notebook not Tagged for Tracking"});switch(this._panelManager.validityChecks.registered){case ne.LOADING:return S.createElement(_e,null);case ne.SUCCESS:return S.createElement(ge.Provider,{store:ae},this.computeComponentToRender());default:return S.createElement(ve,{title:this._panelManager.validityChecks.registered})}}}const Ce=ke;var we=o(2535);class Ee{static setPermission(e){Ee._isInteractionRecordingEnabled=e}}Ee._isInteractionRecordingEnabled=!1,Ee.sendInteraction=e=>{Ee._isInteractionRecordingEnabled&&fetch(`${Mt}/dashboard_interaction/add`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,dashboard_user_id:At,time:(new Date).toISOString(),notebook_id:Tt})})};const ye=ae.dispatch,fe=()=>{const e=(0,ge.useSelector)((e=>e.sidedashboard.navigationState));return O().createElement(be.Stack,{className:"breadcrumb-container",direction:"horizontal",gap:2},e.map(((t,o)=>O().createElement("div",{className:o===e.length-1?"breadcrumb-tile-active breadcrumb-tile":"breadcrumb-tile",onClick:()=>{"Notebook"===t.pageName?Ee.sendInteraction({click_type:"ON",signal_origin:se.BREADCRUMB_TO_NOTEBOOK}):"Cell"===t.pageName&&Ee.sendInteraction({click_type:"ON",signal_origin:se.BREADCRUMB_TO_CELL}),o!==e.length-1&&ye(z(o))}},t.pageName))),O().createElement("div",{className:"breadcrumb-buttons-container"},O().createElement(be.Button,{className:"dashboard-button",onClick:()=>{Ee.sendInteraction({click_type:"ON",signal_origin:se.DASHBOARD_REFRESH_BUTTON}),ye(Y())}},O().createElement(we.ArrowClockwise,{className:"dashboard-icon"}))))},Se=e=>e.toLocaleString("sv-SE").slice(0,-3),Oe=e=>{const[t,o]=(0,S.useState)(e.startT1),[a,n]=(0,S.useState)(e.startT2),s=Se(new Date),l=t=>{o(t),e.t1Callback(t)},r=t=>{n(t),e.t2Callback(t)};return O().createElement("div",{className:"dashboard-export-dialog-container"},O().createElement("p",null,"Select the time range of the data you want to export (the past week selected by default)."),O().createElement("div",{className:"dashboard-export-dialog-calendar-container"},O().createElement("div",{className:"dashboard-export-dialog-calendar"},O().createElement("p",null,"Start Date :"),O().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:Se(t),onChange:e=>(e=>{const t=new Date(e);l(t),t>=a&&r(t)})(e.target.value),max:Se(a)})),O().createElement("div",{className:"dashboard-export-dialog-calendar"},O().createElement("p",null,"End Date :"),O().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:Se(a),onChange:e=>(e=>{const o=new Date(e);r(o),o<=t&&l(o)})(e.target.value),max:s}))))},De=e=>{const[t,o]=(0,S.useState)(!1);return O().createElement("div",{className:"dashboard-toc-download-button"+(t?"-disabled":""),onClick:()=>{t||(e=>{let t=new Date,a=new Date;a.setDate(t.getDate()-7),(0,N.showDialog)({title:"Download Notebook Data",body:O().createElement(Oe,{startT1:a,startT2:t,t1Callback:e=>a=e,t2Callback:e=>t=e}),buttons:[{accept:!0,actions:[],ariaLabel:"Export",caption:"",className:"",displayType:"default",iconClass:"",iconLabel:"",label:"Export"},N.Dialog.cancelButton()]}).then((n=>{n.button.accept&&((e,t,a)=>{o(!0);let n="";C(`${Mt}/dashboard/${e}/download_csv?t1=${t.toISOString()}&t2=${a.toISOString()}`).then((e=>{var t;if(e.ok){const o=e.headers.get("Content-Disposition");return n=(null===(t=null==o?void 0:o.match(/filename=(.+)/))||void 0===t?void 0:t[1])||"",e.blob()}})).then((e=>{if(e){const t=window.URL.createObjectURL(e),o=document.createElement("a");o.href=t,o.download=n,document.body.appendChild(o),o.click(),o.remove()}})).finally((()=>{o(!1)}))})(e,a,t)}))})(e.notebookId)}},O().createElement(D.downloadIcon.react,{className:"dashboard-toc-download-icon"}),"Export")},Ne=ae.dispatch,xe=[{value:1,displayName:"All Data",disabledDatePicker:!0},{value:2,displayName:"From t<sub>1</sub>",disabledDatePicker:!1}],Ie=e=>{const t=(0,ge.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),o=()=>{const o=t.t1ISOString[e.notebookId]?1:0;return xe[o]},a=()=>{const o=t.t1ISOString[e.notebookId];return o?new Date(o):new Date},n=()=>void 0===t.displayRealTime[e.notebookId]||t.displayRealTime[e.notebookId],[s,l]=(0,S.useState)(o()),[r,i]=(0,S.useState)(a()),[c,d]=(0,S.useState)(n),[h,u]=(0,S.useState)(!1),m=Se(new Date),p=()=>{h||(i(a()),l(o()),d(n())),u(!h)};return O().createElement(be.Dropdown,{show:h,onToggle:p,className:"custom-dropdown"},O().createElement(be.Dropdown.Toggle,{className:"dashboard-button"},O().createElement(we.CalendarWeek,{className:"dashboard-icon"})),O().createElement(be.Dropdown.Menu,null,O().createElement(be.Dropdown.Header,null,"Data Timeframe Selector"),O().createElement(be.Dropdown.Divider,null),O().createElement("div",{className:"custom-dropdown-container custom-dropdown-item"},O().createElement(be.Form.Check,{id:"time-checkbox-include-all",type:"checkbox",label:"Only show active users",checked:c,onChange:e=>d(e.target.checked)})),O().createElement(be.Dropdown.Divider,null),O().createElement("div",{className:"dashboard-calendar-container"},O().createElement("div",{className:"cell-radio-container"},O().createElement(be.ButtonGroup,{size:"sm"},xe.map(((e,t)=>O().createElement(be.ToggleButton,{key:`calendar-filter-${t}`,id:`calendar-filter-${t}`,type:"radio",variant:"outline-primary",name:"radio",value:e.value,checked:s.value===e.value,onChange:e=>{l(xe[Number(e.currentTarget.value)-1])}},O().createElement("span",{dangerouslySetInnerHTML:{__html:e.displayName}}))))))),O().createElement("div",{className:"dashboard-calendar-container"},O().createElement("div",{className:"dashboard-calendar-input-wrapper "+(s.disabledDatePicker?"disabled":"")},O().createElement("div",null,"t",O().createElement("sub",null,"1")),O().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:Se(r),onChange:e=>i(new Date(e.target.value)),max:m}))),O().createElement("div",{className:"dashboard-calendar-button-container"},O().createElement(be.Button,{variant:"secondary",onClick:()=>{p()}},"Cancel"),O().createElement(be.Button,{variant:"primary",onClick:()=>{Ne(K({notebookId:e.notebookId,t1ISOString:s.disabledDatePicker?null:r.toISOString()})),Ne(q({notebookId:e.notebookId,displayRealTime:c})),Ee.sendInteraction({click_type:1===s.value?"OFF":"ON",signal_origin:se.DASHBOARD_FILTER_TIME}),p()}},"Ok"))))},Te=({PassedComponent:e,title:t})=>O().createElement(be.Row,{className:"mb-4"},O().createElement(be.Card,{className:"chart-card"},O().createElement(be.Card.Title,{className:"chart-card-title"},t),O().createElement(be.Card.Body,{className:"chart-card-body"},e)));var Re=o(7885);const Ae={maintainAspectRatio:!1,plugins:{legend:{labels:{color:"#969696"}}},scales:{x:{title:{display:!0,text:"Code cell",color:"#969696"},ticks:{color:"#969696"}},y:{ticks:{beginAtZero:!0,precision:0,color:"#969696"},title:{display:!0,text:"Cumulated total across all users",color:"#969696"}}}},Le={maintainAspectRatio:!1,plugins:{legend:{display:!0,labels:{usePointStyle:!0,color:"#969696"}},tooltip:{callbacks:{title:function(e){return`Cell ${e[0].raw.x}`},label:function(e){return`t: ${e.raw.y}`}}}},scales:{x:{type:"category",ticks:{color:"#969696"},title:{display:!0,text:"Cell (markdown & code)",color:"#969696"}},y:{ticks:{beginAtZero:!0,precision:0,color:"#969696"},title:{display:!0,text:"Time spent on a cell [s]",color:"#969696"}}}},Me=e=>{const[t,o]=(0,S.useState)({labels:[],datasets:[]}),a=(0,ge.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),n=(0,ge.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,ge.useSelector)((e=>e.commondashboard.notebookCells));return(0,S.useEffect)((()=>{C(`${Mt}/dashboard/${e.notebookId}/user_code_execution?${k(a,e.notebookId)}`).then((e=>e.json())).then((e=>{const t=(null==s?void 0:s.filter((e=>"code"===e.cellType)))||[],a={labels:Array.from({length:t.length},((e,t)=>t+1)),datasets:[{label:"clicks",data:Array(t.length).fill(null),backgroundColor:"rgba(51, 187, 238, 0.3)",borderColor:"rgba(51, 187, 238, 0.3)",borderWidth:1},{label:"executions",data:Array(t.length).fill(null),backgroundColor:"rgba(0, 119, 187, 0.6)",borderColor:"rgba(0, 119, 187, 0.6)",borderWidth:1},{label:"executions without errors",data:Array(t.length).fill(null),backgroundColor:"rgba(0, 153, 136, 0.9)",borderColor:"rgba(0, 153, 136, 0.9)",borderWidth:1}]};t.forEach(((t,o)=>{const n=e.find((e=>e.cell===t.id));n&&(a.datasets[0].data[o]=parseFloat(n.cell_click_pct),a.datasets[1].data[o]=parseFloat(n.code_exec_pct),a.datasets[2].data[o]=parseFloat(n.code_exec_ok_pct))})),o(a)}))}),[a,n]),O().createElement(Te,{PassedComponent:O().createElement(Re.Bar,{data:t,options:Ae}),title:"Code cell execution across users"})},Be=e=>{const[t,o]=(0,S.useState)({labels:[],datasets:[]}),a=(0,ge.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),n=(0,ge.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,ge.useSelector)((e=>e.commondashboard.notebookCells));return(0,S.useEffect)((()=>{C(`${Mt}/dashboard/${e.notebookId}/user_cell_time?${k(a,e.notebookId)}`).then((e=>e.json())).then((e=>{const t={labels:s?Array.from({length:s.length},((e,t)=>t+1)):[],datasets:[{label:"time spent on a cell by a user",data:(null==s?void 0:s.flatMap(((t,o)=>{const a=e.find((e=>e.cell===t.id));return a?a.durations.map((e=>({x:o+1,y:e}))):[]})))||[],backgroundColor:"rgba(54, 162, 235, 0.2)",borderColor:"rgba(54, 162, 235, 1)",borderWidth:1,pointRadius:1}]};o(t)}))}),[a,n]),O().createElement(Te,{PassedComponent:O().createElement(Re.Scatter,{data:t,options:Le}),title:"Amount of time spent on each cell"})},He=ae.dispatch,$e=e=>{const[t,o]=(0,S.useState)(!1),[a,n]=(0,S.useState)([]),s=(0,ge.useSelector)((t=>t.commondashboard.dashboardQueryArgs.selectedGroups[e.notebookId])),[l,r]=(0,S.useState)(void 0===s||0===s.length);(0,S.useEffect)((()=>{C(`${Mt}/dashboard/${e.notebookId}/getgroups`).then((e=>e.json())).then((e=>{const t=e.map((e=>({name:e,checked:null==s?void 0:s.includes(e)}))).sort(((e,t)=>e.checked!==t.checked?t.checked?1:-1:e.name.localeCompare(t.name)));n(t)}))}),[]);const i=()=>{t||(()=>{r(void 0===s||0===s.length);const e=a.map((e=>({name:e.name,checked:null==s?void 0:s.includes(e.name)}))).sort(((e,t)=>e.checked!==t.checked?t.checked?1:-1:e.name.localeCompare(t.name)));n(e)})(),o(!t)};return O().createElement(be.Dropdown,{id:"group-dropdown",className:"custom-dropdown",show:t,onToggle:i},O().createElement(be.Dropdown.Toggle,{className:"dashboard-button"},O().createElement(we.PeopleFill,{className:"dashboard-icon"})),O().createElement(be.Dropdown.Menu,null,O().createElement(be.Dropdown.Header,null,"Filter by group of users"),O().createElement(be.Dropdown.Divider,null),O().createElement("div",{className:"custom-dropdown-container custom-dropdown-item"},O().createElement(be.Form.Check,{id:"group-checkbox-include-all",type:"checkbox",label:"Include all users",checked:l,onChange:e=>r(e.target.checked)})),O().createElement(be.Dropdown.Divider,null),O().createElement("div",{className:"group-dropdown-scroll "+(l?"disabled":"")},a.length>0?a.map(((e,t)=>O().createElement("div",{className:"custom-dropdown-item "+(l?"disabled":"")},O().createElement(be.Form.Check,{id:`group-checkbox-${t}`,type:"checkbox",disabled:!!l||void 0,label:e.name,title:e.name,checked:e.checked,onChange:()=>(e=>{n((t=>{const o=[...t];return o[e]={...o[e],checked:!o[e].checked},o}))})(t)})))):O().createElement(be.Dropdown.Item,{disabled:!0},"No groups available")),O().createElement("div",{className:"dashboard-calendar-button-container"},O().createElement(be.Button,{variant:"secondary",onClick:()=>{i()}},"Cancel"),O().createElement(be.Button,{variant:"primary",onClick:()=>{let t;t=l?[]:a.filter((e=>!0===e.checked)).map((e=>e.name)),He(Q({notebookId:e.notebookId,groups:t})),i()}},"Ok"))))},Fe=e=>O().createElement(O().Fragment,null,O().createElement("div",{className:"dashboard-title-container"},O().createElement("div",{className:"dashboard-title-text"},e.notebookName),O().createElement("div",{className:"dashboard-dropdown-container"},O().createElement($e,{notebookId:e.notebookId}),O().createElement(Ie,{notebookId:e.notebookId}))),O().createElement(be.Row,null,O().createElement(be.Col,null,O().createElement(Me,{notebookId:e.notebookId}),O().createElement(Be,{notebookId:e.notebookId}))));var Ue=o(3195);const Ve=new s.RenderMimeRegistry({initialFactories:s.standardRendererFactories}),Pe=({cell_output_model:e})=>{const t=(0,S.useRef)(null),o=new Ue.OutputAreaModel;return(0,S.useEffect)((()=>{o.clear(),o.fromJSON(e);const a=t.current;if(a){a.innerHTML="";for(let e=0;e<o.length;++e){const t=o.get(e),n=Ve.preferredMimeType(t.data);if(n){const e=Ve.createRenderer(n);e.renderModel(t),a.appendChild(e.node)}}}}),[e]),O().createElement("div",{ref:t,className:"cell-content-container"})};var ze=o(8873),je=o(7594);const We=({cell_input:e,language_mimetype:t,className:o})=>{const a=(0,S.useRef)(null);return(0,S.useEffect)((()=>{const o=a.current;if(o){o.innerHTML="";const a=new je.CodeEditor.Model;a.mimeType=t,a.sharedModel.setSource(e);const n=new ze.CodeMirrorEditor({host:o,model:a,...v.getCodeMirrorOptionsComp()}),s=v.observeEditorVisibility(n);return s&&s.observe(o),()=>{s&&s.disconnect()}}}),[e,t]),O().createElement("div",{ref:a,className:o})},Ge=ae.dispatch,Je=e=>{const t=(0,ge.useSelector)((t=>t.commondashboard.sortBy[e.notebookId]));return O().createElement(be.Dropdown,{id:"order-by-dropdown",onSelect:t=>{t&&(Ee.sendInteraction({click_type:"ON",signal_origin:se.CELL_DASHBOARD_FILTER_SORT}),Ge(X({notebookId:e.notebookId,sortCriterion:t})))},className:"custom-dropdown"},O().createElement(be.Dropdown.Toggle,{className:"dashboard-button"},O().createElement(we.SortUp,{className:"dashboard-icon"})),O().createElement(be.Dropdown.Menu,null,O().createElement(be.Dropdown.Header,null,"Sort cells by"),O().createElement(be.Dropdown.Divider,null),b.map(((e,o)=>O().createElement(be.Dropdown.Item,{id:`sort-item-${o}`,eventKey:e.key,className:t&&t===e.key?"highlighted":""},e.label)))))};var Ke=o(2779);const Qe=e=>{const[t,o]=(0,S.useState)(null);return(0,S.useEffect)((()=>{(()=>{const t=Ke.marked.parser(Ke.marked.lexer(e.markdownContent));o(e.sanitizer.sanitize(t))})()}),[e.markdownContent]),O().createElement("div",{className:"cell-content-container"},t&&O().createElement("div",{className:"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput",dangerouslySetInnerHTML:{__html:t}}))},qe=e=>O().createElement(be.Col,{md:12},O().createElement(be.Card,{className:"cell-card"},O().createElement(be.Card.Body,{style:{gap:"10px"}},O().createElement(be.Row,{className:"cell-card-wrapper"},O().createElement(be.Col,{md:12,className:"cell-user-title"},O().createElement(be.Card.Text,{title:e.value.user_id||void 0},"User ",e.value.user_id?e.value.user_id.length>8?`${e.value.user_id.substring(0,8)}...`:e.value.user_id:`${e.index+1}`)),O().createElement(be.Col,{md:12},e.ExecutionContent),(()=>{if(e.value.t_finish){const t=new Date(e.value.t_finish),o=`Executed at ${t.getHours().toString().padStart(2,"0")}:${t.getMinutes().toString().padStart(2,"0")}, ${t.getDate().toString().padStart(2,"0")}/${(t.getMonth()+1).toString().padStart(2,"0")}/${t.getFullYear().toString().slice(-2)}`;return O().createElement(be.Col,{md:12,className:"cell-execution-displayed-time"},o)}return null})())))),Xe=e=>{const t=(0,S.useRef)([]),[o,a]=(0,S.useState)([]);let n=!1;const s=(0,ge.useSelector)((e=>e.sidedashboard.navigationState)),l=(0,ge.useSelector)((e=>e.commondashboard.refreshBoolean)),r=(0,ge.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),i=(0,ge.useSelector)((e=>e.commondashboard.sortBy)),[c,d]=(0,S.useState)(!0),[h,u]=(0,S.useState)(!0),[m,p]=(0,S.useState)(1),[g,_]=((e=800)=>{const[t,o]=(0,S.useState)(""),[a,n]=(0,S.useState)("");return(0,S.useEffect)((()=>{const t=setTimeout((()=>o(a)),e);return()=>clearTimeout(t)}),[a,e]),[t,n]})(),v=[{name:"All",value:1,status:"all"},{name:"Success",value:2,status:"ok"},{name:"Error",value:3,status:"error"}],w=v.map((e=>e.status)),E=t=>{const o=g.toLowerCase();o.length>0&&(t=t.filter((e=>{var t;return(null===(t=e.cell_input)||void 0===t?void 0:t.toLowerCase().includes(o))||e.cell_output_model&&JSON.stringify(e.cell_output_model).toLowerCase().includes(o)})));const n=i[e.notebookId]||"timeDesc",s=b.find((e=>e.key===n));s&&t.sort(s.method),a(t)},y=s[s.length-1].content;return(0,S.useEffect)((()=>{n=!0,C(`${Mt}/dashboard/${e.notebookId}/cell/${y.cellId}?${k(r,e.notebookId)}`).then((e=>e.json())).then((e=>{t.current=e,E(e),n=!1}))}),[s,r,l]),(0,S.useEffect)((()=>{if(!n){const e=[...t.current];E(e)}}),[i,g]),O().createElement(O().Fragment,null,O().createElement("div",{className:"dashboard-title-container"},O().createElement("div",{className:"dashboard-title-text"},"Cell (",y.cellId,")"),O().createElement("div",{className:"dashboard-dropdown-container"},O().createElement(Je,{notebookId:e.notebookId}),O().createElement($e,{notebookId:e.notebookId}),O().createElement(Ie,{notebookId:e.notebookId}))),O().createElement(be.Form,{className:"cell-filter-container",onSubmit:e=>e.preventDefault()},O().createElement("div",{className:"cell-radio-container"},O().createElement(be.ButtonGroup,{size:"sm"},O().createElement(be.ToggleButton,{style:{marginRight:"3px"},key:"0",id:"code-checkbox",type:"radio",variant:"outline-primary",value:"Code",checked:c,onClick:e=>{c&&!h?e.preventDefault():(Ee.sendInteraction({click_type:c?"OFF":"ON",signal_origin:se.CELL_DASHBOARD_FILTER_CODE_INPUT}),d(!c))}},"Code"),O().createElement(be.ToggleButton,{key:"1",id:"output-checkbox",type:"radio",variant:"outline-primary",value:"Output",checked:h,onClick:e=>{!c&&h?e.preventDefault():(Ee.sendInteraction({click_type:h?"OFF":"ON",signal_origin:se.CELL_DASHBOARD_FILTER_CODE_OUTPUT}),u(!h))}},"Output"))),O().createElement("div",{className:"cell-radio-container"},O().createElement(be.ButtonGroup,{size:"sm"},v.map(((e,t)=>O().createElement(be.ToggleButton,{key:t,id:`filter-${t}`,type:"radio",variant:"outline-primary",name:"radio",value:e.value,checked:m===e.value,onChange:e=>{Ee.sendInteraction({click_type:"ON",signal_origin:se.CELL_DASHBOARD_FILTER_EXECUTION}),p(Number(e.currentTarget.value))}},e.name))))),O().createElement(be.Form.Control,{size:"sm",type:"text",placeholder:"Type text to filter...",onChange:e=>_(e.target.value)})),O().createElement(O().Fragment,null,o.map(((t,o)=>O().createElement(be.Row,{key:o},"MarkdownExecution"===t.cell_type&&["all","ok"].includes(w[m-1])?O().createElement(qe,{value:t,index:o,ExecutionContent:O().createElement(Qe,{markdownContent:t.cell_input,sanitizer:e.sanitizer})}):O().createElement(O().Fragment,null,(1===m||w[m-1]===t.status)&&O().createElement(qe,{value:t,index:o,ExecutionContent:O().createElement(O().Fragment,null,c&&O().createElement(We,{cell_input:t.cell_input,language_mimetype:t.language_mimetype,className:"cell-content-container"}),c&&h&&t.cell_output_model.length>0&&O().createElement("br",null),h&&t.cell_output_model.length>0&&O().createElement(Pe,{cell_output_model:t.cell_output_model}))})))))))};var Ze=o(8352);Ze.Chart.register(...Ze.registerables);const Ye=e=>{const t=(0,ge.useSelector)((e=>e.sidedashboard.navigationState));return O().createElement("div",{className:"page-container"},O().createElement(fe,null),(()=>{switch(t[t.length-1].pageName){case"Notebook":return O().createElement(Fe,{notebookId:e.notebookId,notebookName:e.notebookName});case"Cell":return O().createElement(Xe,{notebookId:e.notebookId,sanitizer:e.sanitizer});default:return null}})())};class et extends Ce{constructor(e,t){super(e),this.addClass("dashboard-react-widget"),this.title.caption="Side Dashboard",this.title.icon=I,this.id="side-dashboard",this.node.setAttribute("role","region"),this.node.setAttribute("aria-label","Side dashboard section"),this._sanitizer=t}onBeforeShow(e){Ee.sendInteraction({click_type:"ON",signal_origin:se.RIGHT_DASHBOARD_SHOW_HIDE})}onBeforeHide(e){Ee.sendInteraction({click_type:"OFF",signal_origin:se.RIGHT_DASHBOARD_SHOW_HIDE})}computeComponentToRender(){const e=this._panelManager.panel,t=this._panelManager.validityChecks.tag;return e&&t?S.createElement(Ye,{notebookId:t,notebookName:e.sessionContext.name,sanitizer:this._sanitizer}):S.createElement(S.Fragment,null)}}const tt=(e,t)=>{const o=3*e/t+.1;return Math.min(1,o)},ot=({data:e,cellId:t,commands:o})=>O().createElement(O().Fragment,null,e&&e[0]&&e[1]?O().createElement("div",{onClick:e=>{e.preventDefault(),o.execute(u.dashboardOpenVisu,{from:"Toc",cell_id:t})},className:"dashboard-toc-react-component",style:{backgroundColor:`rgba(25, 118, 210, ${tt(e[0],e[1])})`}},O().createElement("span",{className:"dashboard-toc-react-text"},e[0]+"/"+e[1])):O().createElement("div",{className:"dashboard-toc-react-component"}));class at extends O().Component{render(){const{panel:e,heading:t,headings:o,addReactComponent:a,isFirstCellOccurrence:n,tocDashboardData:s,commands:l}=this.props,r=this.props.itemRenderer(e,t,o);return r?O().createElement("li",{className:"dashboard-tocItem",onClick:e=>{Ee.sendInteraction({click_type:"ON",signal_origin:se.TOC_HEADING_CLICKED}),e.preventDefault(),e.stopPropagation(),t.onClick()}},r,a&&O().createElement(ot,{cellId:t.cellRef.model.id,data:n?s:null,commands:l})):null}}const nt=e=>{const[t,o]=(0,S.useState)(null),a=(0,ge.useSelector)((e=>e.tocdashboard.displayDashboard)),n=(0,ge.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,ge.useSelector)((e=>e.commondashboard.dashboardQueryArgs));(0,S.useEffect)((()=>(i(),()=>{o(null)})),[e.notebookCells,e.notebookPanel]),(0,S.useEffect)((()=>{i()}),[n,s]);const l=(0,S.useRef)("12345678"),i=async()=>{const t=v.getMetadataComp(e.notebookPanel.model,g.notebookId);if(t&&e.notebookCells){try{const e=crypto.randomUUID();l.current=e;const a=await C(`${Mt}/dashboard/${t}/toc?${k(s,t)}`);if(e===l.current){if(a.ok){const e=await a.json();return void o(e.data)}console.log(`${r}: Error:`,a.status)}}catch(e){console.log(`${r}: Toc Fetch Error:`,e)}o(null)}},c=(t=>{const o=e.headings.map((e=>e.cellRef.model.id)),a=[...new Set(o)],n={},s=e.notebookCells;if(s&&t){const e=a.map((e=>s.indexOf(e)));e[0]=0,e.push(s.length);let o=0;for(let l=0;l<a.length;l++){const r=e[l],i=e[l+1];let c=0;if(-1===r)c=0;else for(let e=r;e<i;e++)c+=t.location_count[s[e]]||0;n[a[l]]=c,o+=c}n.total_count=o}return n})(t),d=new Set;return O().createElement("ul",{className:"dashboard-TableOfContents-content"},e.headings.map(((t,o)=>{const n=t.cellRef.model.id,s=!d.has(n);return s&&d.add(n),O().createElement(at,{panel:e.notebookPanel,heading:t,headings:e.headings,itemRenderer:e.itemRenderer,addReactComponent:a,isFirstCellOccurrence:s,tocDashboardData:[c[n],c.total_count],commands:e.commands,key:`${t.text}-${t.level}-${o++}`})})))};class st extends ce{constructor(e,t){super(),this._preRenderedToolbar=null,this._showCode=!1,this._showMarkdown=!1,this._numbering=t.numbering,this._numberingH1=t.numberingH1,this._syncCollapseState=t.syncCollapseState,this._widget=e,this.sanitizer=t.sanitizer,this._collapseChanged=new ie.Signal(this)}set numberingH1(e){this._numberingH1!==e&&(this._numberingH1=e,this._widget.update())}get numberingH1(){return this._numberingH1}set syncCollapseState(e){this._syncCollapseState!==e&&(this._syncCollapseState=e,this._widget.update())}get syncCollapseState(){return this._syncCollapseState}setNotebookMetadata(e,t){null!==t&&t.model&&v.setMetadataComp(t.model,e[0],e[1])}setNumbering(e,t){this._numbering=e,this._widget.update(),this.setNotebookMetadata(["dashboard-toc-autonumbering",this._numbering],t)}get numbering(){return this._numbering}setShowCode(e,t){this._showCode=e,this.setNotebookMetadata(["dashboard-toc-showcode",this._showCode],t),this._widget.update()}get showCode(){return this._showCode}setShowMarkdown(e,t){this._showMarkdown=e,this.setNotebookMetadata(["dashboard-toc-showmarkdowntxt",this._showMarkdown],t),this._widget.update()}get showMarkdown(){return this._showMarkdown}get collapseChanged(){return this._collapseChanged}set preRenderedToolbar(e){this._preRenderedToolbar=e}get preRenderedToolbar(){return this._preRenderedToolbar}updateWidget(){this._widget.update()}updateAndCollapse(e){this._collapseChanged.emit(e),this._widget.update()}initializeOptions(e,t,o,a,n){this._numbering=e,this._numberingH1=t,this._syncCollapseState=o,this._showCode=a,this._showMarkdown=n,this._widget.update()}}function lt(e){if(e.length>0){let t=e.length-1;for(;t>=0;){if("header"===e[t].type)return e[t].level;t-=1}}return 0}const rt="jp-MarkdownHeadingCollapsed",it="dashboard-toc-hr-collapsed";function ct(e,t,o,a,n,s){const l=[];if(e){const r=e.split("\n"),i=Math.min(r.length,3);let c="",d=0;for(;d<i-1;d++)c+=r[d]+"\n";c+=r[d],l.push({text:c,level:a+1,onClick:t(0),type:"code",prompt:o,cellRef:n,hasChild:!1,index:s})}return l[0]}function dt(e,t,o,a){if(t&&t.text){if(o&&"header"===o.type)for(let t=e.length-1;t>=0;t--)e[t]===o&&(e[t].hasChild=!0);a<0&&e.push(t),o=t}return[e,o]}const ht={allowedTags:["p","blockquote","b","i","strong","em","strike","code","br","div","span","pre","del"],allowedAttributes:{code:["class"],span:["class"],div:["class"],p:["class"],pre:["class"]}};function ut(e,t,o,a,n,s=!1,l=!0,r,i){const c=e.querySelectorAll("h1, h2, h3, h4, h5, h6, p");let d=n;const h=[];for(const e of c){if("p"===e.nodeName.toLowerCase()){if(e.innerHTML){const a=o.sanitize(e.innerHTML,ht);h.push({level:d+1,html:a.replace("¶",""),text:e.textContent?e.textContent:"",onClick:t(e),type:"markdown",cellRef:r,hasChild:!1,index:i})}continue}e.getElementsByClassName("numbering-entry").length>0&&e.removeChild(e.getElementsByClassName("numbering-entry")[0]);let n=o.sanitize(e.innerHTML,ht);n=n.replace("¶","");let c=parseInt(e.tagName[1],10);l||(c-=1),d=c;const u=gt(a,c);if(s){const t=document.createElement("span");t.classList.add("numbering-entry"),t.textContent=null!=u?u:"",e.insertBefore(t,e.firstChild)}h.push({level:c,text:e.textContent?e.textContent:"",numbering:u,html:n,onClick:t(e),type:"header",cellRef:r,hasChild:!1,index:i})}return h}function mt(e,t,o,a,n,s){return e&&"markdown"===e.type&&s?[t,o]=dt(t,e,o,a):e&&"header"===e.type&&([t,o,a]=function(e,t,o,a,n){const s=e.length;if(o&&"header"===o.type&&o.level<t.level)for(let t=s-1;t>=0;t--)e[t]===o&&(e[t].hasChild=!0);return(a>=t.level||a<0)&&(e.push(t),a=n?t.level:-1),[e,o=t,a]}(t,e,o,a,n)),[t,o,a]}const pt=6;function gt(e,t){if(null===e)return;let o="";if(e=function(e,t){for(let o=t+1;o<=pt;o++)void 0!==e[o]&&(e[o]=void 0);return void 0===e[t]?e[t]=1:e[t]+=1,e}(e,t),t>=1){for(let a=1;a<=t;a++)o+=(void 0===e[a]?"0":e[a])+".";o+=" "}return o}function bt(e){const t=e.split("\n");let o=t[0].match(/^([#]{1,6}) (.*)/);return o?{text:o[2].replace(/\[(.+)\]\(.+\)/g,"$1"),level:o[1].length,type:"markdown"}:t.length>1&&(o=t[1].match(/^ {0,3}([=]{2,}|[-]{2,})\s*$/),o)?{text:t[0].replace(/\[(.+)\]\(.+\)/g,"$1"),level:"="===o[1][0]?1:2,type:"markdown-alt"}:(o=t[0].match(/<h([1-6]).*>(.*)<\/h\1>/i),o?{text:o[2],level:parseInt(o[1],10),type:"html"}:null)}function _t(e,t,o,a,n,s){const l=t(0),r=[];let i=a;for(const t of e.split("\n"))if(t){const e=bt(t);e?(r.push({text:e.text,level:e.level,numbering:gt(o,e.level),onClick:l,type:"header",cellRef:n,hasChild:!1,index:s}),i=e.level):r.push({text:t,level:i+1,onClick:l,type:"markdown",cellRef:n,hasChild:!1,index:s})}return r}function vt(e,t,o){if(t.index>-1||(null==o?void 0:o.length)){const a=e.content.activeCellIndex,n=t.index;if(a&&n<a){const e=o.indexOf(t)+1;if(e>=o.length)return!0;if((null==o?void 0:o[e].index)>a)return!0}}return!1}const kt=ae.dispatch;function Ct(e,t,o){let a=!0,n=!1;o&&o.composite.tocDashboardSettings&&(a=o.composite.tocDashboardSettings.numberingH1,n=o.composite.tocDashboardSettings.syncCollapseState);const s=new st(e,{numbering:!1,numberingH1:a,syncCollapseState:n,sanitizer:t});return o&&o.composite.tocDashboardSettings&&o.changed.connect((()=>{s.numberingH1=o.composite.tocDashboardSettings.numberingH1,s.syncCollapseState=o.composite.tocDashboardSettings.syncCollapseState})),{options:s,toolbarGenerator:function(e){return function(e,t){return class extends S.Component{constructor(o){super(o),this.state={showCode:!0,showMarkdown:!1,numbering:!1,showVisuDashboard:L.displayDashboard},t.context.ready.then((()=>{if(t){t.content.activeCellChanged.connect((()=>{e.updateWidget()}));const o=v.getMetadataComp(t.model,"dashboard-toc-autonumbering"),a=v.getMetadataComp(t.model,"dashboard-toc-showcode"),n=v.getMetadataComp(t.model,"dashboard-toc-showmarkdowntxt");e.initializeOptions(o||e.numbering,e.numberingH1,e.syncCollapseState,a||e.showCode,n||e.showMarkdown),this.setState({showCode:e.showCode,showMarkdown:e.showMarkdown,numbering:e.numbering})}}))}toggleCode(){Ee.sendInteraction({click_type:e.showCode?"OFF":"ON",signal_origin:se.TOC_TOOLBAR_CODE}),e.setShowCode(!e.showCode,t),this.setState({showCode:e.showCode})}toggleMarkdown(){Ee.sendInteraction({click_type:e.showMarkdown?"OFF":"ON",signal_origin:se.TOC_TOOLBAR_MARKDOWN}),e.setShowMarkdown(!e.showMarkdown,t),this.setState({showMarkdown:e.showMarkdown})}toggleNumbering(){Ee.sendInteraction({click_type:e.numbering?"OFF":"ON",signal_origin:se.TOC_TOOLBAR_NUMBERED}),e.setNumbering(!e.numbering,t),this.setState({numbering:e.numbering})}toggleShowVisuDashboard(){const e=this.state.showVisuDashboard;Ee.sendInteraction({click_type:e?"OFF":"ON",signal_origin:se.TOC_TOOLBAR_SHOW_HIDE}),kt(B(!e)),this.setState({showVisuDashboard:!e})}refreshDashboard(){Ee.sendInteraction({click_type:"ON",signal_origin:se.TOC_TOOLBAR_REFRESH}),kt(Y())}render(){const e=S.createElement("div",{onClick:e=>this.toggleCode(),role:"text","aria-label":"Toggle Code Cells",title:"Toggle Code Cells",className:this.state.showCode?"dashboard-toc-toolbar-icon-selected":"dashboard-toc-toolbar-icon"},S.createElement(D.codeIcon.react,null)),t=S.createElement("div",{onClick:e=>this.toggleMarkdown(),role:"text","aria-label":"Toggle Markdown Text Cells",title:"Toggle Markdown Text Cells",className:this.state.showMarkdown?"dashboard-toc-toolbar-icon-selected":"dashboard-toc-toolbar-icon"},S.createElement(D.markdownIcon.react,null)),o=S.createElement("div",{onClick:e=>this.toggleNumbering(),role:"text","aria-label":"Toggle Auto-Numbering",title:"Toggle Auto-Numbering",className:this.state.numbering?"dashboard-toc-toolbar-icon-selected":"dashboard-toc-toolbar-icon"},S.createElement(D.numberingIcon.react,null)),a=S.createElement("div",{onClick:e=>this.toggleShowVisuDashboard(),role:"text","aria-label":this.state.showVisuDashboard?"Hide Visualization Dashboard":"Show Visualization Dashboard",title:this.state.showVisuDashboard?"Hide Visualization Dashboard":"Show Visualization Dashboard",className:"dashboard-toc-toolbar-icon"},this.state.showVisuDashboard?S.createElement(T.react,null):S.createElement(R.react,null)),n=S.createElement("div",{onClick:e=>this.refreshDashboard(),role:"text","aria-label":"Refresh Dashboard",title:"Refresh Dashboard",className:"dashboard-toc-toolbar-icon"},S.createElement(D.refreshIcon.react,null));return S.createElement("div",null,S.createElement("div",{className:"dashboard-toc-toolbar"},S.createElement("div",{className:"dashboard-toc-toolbar-compartment"},e,t,o),S.createElement("div",{className:"dashboard-toc-toolbar-compartment"},a,n)))}}}(s,e)},itemRenderer:function(e,t,o=[]){return function(e,t,o,a=[]){var n;if("markdown"===o.type||"header"===o.type){let n="dashboard-toc-level-size-default";const s=o.numbering&&e.numbering?o.numbering:"",l=e.syncCollapseState?rt:it;if("header"!==o.type&&"markdown"!==o.type||(n="dashboard-toc-level-size-"+o.level),"header"===o.type||e.showMarkdown){let r;r=o.html?S.createElement("span",{dangerouslySetInnerHTML:{__html:s+e.sanitizer.sanitize(o.html,ht)},className:"dashboard-"+o.type+"-cell dashboard-toc-cell-item"}):S.createElement("span",{className:"dashboard-"+o.type+"-cell dashboard-toc-cell-item"},s+o.text);let i=null;return"header"===o.type&&(i=S.createElement("div",{className:"jp-Collapser p-Widget lm-Widget",onClick:a=>{a.stopPropagation(),function(t,o,a){let n=!1;const s=e.syncCollapseState,l=v.getMetadataComp(null==a?void 0:a.cellRef.model,o);l&&(n=l),a?(Ee.sendInteraction({click_type:n?"OFF":"ON",signal_origin:se.TOC_COLLAPSE_HEADERS}),s?t&&le.NotebookActions.setHeadingCollapse(null==a?void 0:a.cellRef,!n,t.content):n?v.deleteMetadataComp(a.cellRef.model,o):v.setMetadataComp(a.cellRef.model,o,!0),e.updateAndCollapse({heading:a,collapsedState:n})):e.updateWidget()}(t,l,o)}},S.createElement("div",{className:"dashboard-toc-Collapser-child"}))),r=S.createElement("div",{className:"dashboard-toc-entry-holder "+n+(t.content.activeCell===o.cellRef||vt(t,o,a)?" dashboard-toc-active-cell":"")},i,r),r}return null}if(t&&"code"===o.type&&e.showCode){const e=(null===(n=v.getMetadataComp(t.model,"language_info"))||void 0===n?void 0:n.mimetype)||"text";return S.createElement("div",{className:"dashboard-toc-code-cell-div"},S.createElement("div",{className:"dashboard-toc-code-cell-prompt"},o.prompt),S.createElement("span",{className:"dashboard-toc-code-span"},S.createElement(We,{cell_input:o.text,language_mimetype:e,className:"dashboard-toc-cell-input"})))}return null}(s,e,t,o)},generate:function(o){let a=[],n=-1;const l={};let r=null;for(let i=0;i<o.content.widgets.length;i++){const c=o.content.widgets[i],d=c.model,h=s.syncCollapseState?rt:it;let u=v.getMetadataComp(d,h);if(u=u||!1,"code"!==d.type){if("markdown"===d.type){const e=c;let h;const m=lt(a);if(e.rendered&&!e.inputHidden){const d=t=>()=>{e.rendered?(o.content.mode="command",c.node.scrollIntoView(),o.content.activeCellIndex=i):(o.content.activeCellIndex=i,t.scrollIntoView())},p=ut(c.node,d,t,l,m,s.numbering,s.numberingH1,c,i);for(h of p)[a,r,n]=mt(h,a,r,n,u,s.showMarkdown)}else{const e=e=>()=>{o.content.activeCellIndex=i,c.node.scrollIntoView()},t=_t(d.sharedModel.getSource(),e,l,m,c,i);for(h of t)[a,r,n]=mt(h,a,r,n,u,s.showMarkdown)}}}else if(!e||e&&s.showCode){const e=e=>()=>{o.content.activeCellIndex=i,c.node.scrollIntoView()},t=c.model.executionCount,s=null!==t?"["+t+"]: ":"[ ]: ",l=ct(d.sharedModel.getSource(),e,s,lt(a),c,i);[a,r]=dt(a,l,r,n)}}return a},collapseChanged:s.collapseChanged}}class wt extends Ce{constructor(e,t,o,a){super(e),this.title.caption="Dashboard ToC",this.title.icon=I,this.id="dashboard-toc-code",this.node.setAttribute("role","region"),this.node.setAttribute("aria-label","Dashboard ToC section"),this._commands=t,this._notebookGenerator=Ct(this,o,a),this._toolbar=null,e.panelSwitched.connect(this._onPanelSwitched,this)}onBeforeShow(e){Ee.sendInteraction({click_type:"ON",signal_origin:se.TOC_DASHBOARD_SHOW_HIDE})}onBeforeHide(e){Ee.sendInteraction({click_type:"OFF",signal_origin:se.TOC_DASHBOARD_SHOW_HIDE})}_onPanelSwitched(e){this._panelManager.panel?this._toolbar=this._notebookGenerator.toolbarGenerator(this._panelManager.panel):this._toolbar=null}computeComponentToRender(){const e=this._panelManager.panel;return e?S.createElement("div",{className:"dashboard-TableOfContents"},S.createElement("div",{className:"dashboard-stack-panel-header"},S.createElement("span",{className:"dashboard-toc-header-title"},re.PathExt.basename(e.context.localPath)),S.createElement(De,{notebookId:this._panelManager.validityChecks.tag})),this._toolbar&&S.createElement(this._toolbar,null),S.createElement(nt,{headings:this._notebookGenerator.generate(e),itemRenderer:this._notebookGenerator.itemRenderer,notebookPanel:e,commands:this._commands,notebookCells:this._panelManager.notebookCells})):S.createElement(S.Fragment,null)}}var Et=o(4882);const yt="cell-dashboard-button-container";class ft extends Et.Widget{constructor(e,t){super(),this.addClass(yt);const o=document.createElement("button");o.className="cell-dashboard-button",o.innerHTML=I.svgstr,o.title=o.disabled?"No notebook identifier":"Open Cell Dashboard",o.onclick=()=>{e.execute(u.dashboardOpenVisu,{from:"Cell",cell_id:t})},this.node.appendChild(o)}dispose(){super.dispose()}}class St{constructor(e){this._commands=e}createNew(e){return new Ot(e,this._commands)}}class Ot{constructor(e,t){this._isDisposed=!1,this._panel=e,this._commands=t,this._previousActiveCell=this._panel.content.activeCell,e.context.ready.then((()=>{y(e)?(e.revealed.then((()=>{e&&!e.isDisposed&&setTimeout((()=>{this._onActiveCellChanged(e.content)}),1e3/60)})),e.content.renderingLayoutChanged.connect(this._onActiveCellChanged,this),e.content.activeCellChanged.connect(this._onActiveCellChanged,this),e.disposed.connect((()=>{e.content.activeCellChanged.disconnect(this._onActiveCellChanged)}))):this.dispose()}))}_addCellButton(e){const t=this._getCell(e);if(t){const e=new ft(this._commands,t.model.id);t.layout.insertWidget(0,e)}}_onActiveCellChanged(e){this._previousActiveCell&&!this._previousActiveCell.isDisposed&&this._removeCellButton(this._previousActiveCell.model);const t=e.activeCell;null!==t&&(this._addCellButton(t.model),this._previousActiveCell=t)}_getCell(e){var t;return null===(t=this._panel)||void 0===t?void 0:t.content.widgets.find((t=>t.model===e))}_removeCellButton(e){const t=this._getCell(e);t&&this._findCellButtonWidgets(t).forEach((e=>{e.dispose()}))}_findCellButtonWidgets(e){return e.layout.widgets.filter((e=>e.hasClass(yt)))||[]}get isDisposed(){return this._isDisposed}dispose(){var e;if(this.isDisposed)return;this._isDisposed=!0;const t=v.getCellsArrComp(null===(e=this._panel)||void 0===e?void 0:e.context.model.cells);if(t)for(const e of t)this._removeCellButton(e);this._panel=null,ie.Signal.clearData(this)}}var Dt=o(7717);class Nt{constructor(e){this._commands=e}createNew(e){const t=new N.ToolbarButton({className:"open-visu-button",icon:I,onClick:()=>{this._commands.execute(u.dashboardOpenVisu,{from:"Notebook"})},tooltip:"Open Notebook Visualization"});return e.context.ready.then((()=>{y(e)&&e.toolbar.insertItem(10,"openVisu",t)})),new Dt.DisposableDelegate((()=>{t.dispose()}))}}const xt=ae.dispatch;var It=o(2818);let Tt=null;function Rt(e){Tt=e}let At=null;const Lt="http://localhost:1015";let Mt=Lt,Bt=Lt;const Ht={id:i,autoStart:!0,requires:[n.IFileBrowserFactory,a.ILayoutRestorer,a.ILabShell,s.IRenderMimeRegistry,l.ISettingRegistry],optional:[],activate:(e,t,o,a,n,s)=>{console.log(`JupyterLab extension ${r} is activated!`);const l="3.1.0",i=e.version.match(/[0-9]+/g),h=async function(e="",t={}){const o=It.ServerConnection.makeSettings(),a=re.URLExt.join(o.baseUrl,"jupyterlab-unianalytics-dashboard",e);let n;try{n=await It.ServerConnection.makeRequest(a,t,o)}catch(e){throw new It.ServerConnection.NetworkError(e)}const s=await n.text();if(!n.ok)throw new It.ServerConnection.ResponseError(n,s.message||s);return s}("get_anonymized_user_id");if(i&&((e,t)=>{const o=e.split(/[^0-9]+/).map(Number),a=t.split(/[^0-9]+/).map(Number);for(let e=0;e<Math.min(o.length,a.length);e++){const t=o[e],n=a[e];if(t!==n)return t-n}const n=e.replace(/[0-9]+/g,""),s=t.replace(/[0-9]+/g,"");return n.localeCompare(s)})(e.version,l)>=0){const l=parseInt(i[0]);v.setJupyterVersion(l).then((async()=>{let l,i;if(s)try{[l,i]=await Promise.all([s.load(`${r}:plugin`),s.load(`${r}:endpoint`)]),p(l),l.changed.connect(p),b(i),i.changed.connect(b)}catch(e){console.error(`${r}: Failed to load settings.\n${e}`)}h.then((s=>{At=s;let i=[];fetch(`${Mt}/auth/login`,{method:"POST",headers:{"Unianalytics-User-Id":At}}).then((e=>{if(e.ok)return e.json();throw new Error("Unauthorized user")})).then((s=>{"logged_in"===s.status?(i=s.auth_notebooks||[],sessionStorage.setItem(c,s.access_token),sessionStorage.setItem(d,s.refresh_token),function(e,t){console.log(`JupyterLab extension ${r}: upload plugin is activated!`),e.commands.addCommand(u.uploadNotebook,{label:"Upload notebook to unianalytics",icon:e=>e.isContextMenu?D.fileUploadIcon:void 0,execute:o=>{const a=v.getFileComp(t);a&&e.serviceManager.contents.get(a.path).then((t=>{var o,n;(o=t.content,n=a.name,new Promise(((e,t)=>{const a=new FormData;a.append("notebook_content",JSON.stringify(o)),a.append("name",n),C(Mt+"/notebook/upload",{method:"POST",body:a}).then((o=>{o.ok?e(o.json()):t(new Error("Failed to upload notebook on the backend"))})).catch((e=>{console.log(`${r}: Error occurred while uploading notebook:`,e),t(e)}))}))).then((o=>{const n={...t,content:o};e.serviceManager.contents.save(a.path,n).then((e=>{const t=o.metadata[g.notebookId],n=`${Mt}/notebook/download/${t}`;(0,N.showDialog)({title:a.name,body:O().createElement(x,{url:n,fileName:a.name}),buttons:[N.Dialog.okButton()]}).catch((e=>console.log(e)))}))})).catch((e=>{(0,N.showDialog)({title:a.name,body:"Error uploading the file",buttons:[N.Dialog.cancelButton()]}).catch((e=>console.log(e)))}))}))}}),e.commands.addCommand(u.copyDownloadLink,{label:"Copy unianalytics notebook link",icon:e=>e.isContextMenu?D.linkIcon:void 0,execute:o=>{const a=v.getFileComp(t);a&&e.serviceManager.contents.get(a.path).then((e=>{const t=e.content.metadata;if(t){const e=t[g.notebookId];e?navigator.clipboard.writeText(`${Mt}/notebook/download/${e}`).catch((e=>{console.error(`${r}: Error copying link: `,e)})):console.log(`${r}: Notebook not tagged`)}}))}}),e.contextMenu.addItem({selector:m,type:"separator",rank:0}),e.contextMenu.addItem({args:{isContextMenu:!0},command:u.uploadNotebook,selector:m,rank:0}),e.contextMenu.addItem({args:{isContextMenu:!0},command:u.copyDownloadLink,selector:m,rank:0}),e.contextMenu.addItem({selector:m,type:"separator",rank:0})}(e,t),async function(e,t,o,a,n){console.log(`JupyterLab extension ${r}: dashboard plugins activated!`),(e=>{const t=e.shell.widgets();let o=v.getNextWidgetValueComp(t);for(;o;){if(o instanceof le.NotebookPanel){const t=o,a=new Nt(e.commands),n=new St(e.commands),s=a.createNew(t),l=n.createNew(t);t.disposed.connect((()=>{s.dispose(),l.dispose()}))}o=v.getNextWidgetValueComp(t)}e.docRegistry.addWidgetExtension("Notebook",new St(e.commands)),e.docRegistry.addWidgetExtension("Notebook",new Nt(e.commands))})(e);const s=new pe,l=new et(s,n.sanitizer),i=new wt(s,e.commands,n.sanitizer,a);function c(){const t=e.shell.currentWidget;if(!t)return;if(!(t instanceof le.NotebookPanel))return void(s.panel&&s.panel.isDisposed&&(s.panel=null));const o=t;s.panel=o}o.add(l,"right",{rank:1e3}),o.add(i,"left",{rank:1e3}),e.commands.addCommand(u.dashboardOpenVisu,{label:"Notebook Visualizations",caption:"Open Notebook Dashboard",icon:I,iconClass:"jp-icon3",execute:t=>{"Notebook"===t.from?(Ee.sendInteraction({click_type:"ON",signal_origin:se.NOTEBOOK_TOOLBAR_BUTTON}),xt(V())):"Cell"===t.from?(Ee.sendInteraction({click_type:"ON",signal_origin:se.NOTEBOOK_CELL_BUTTON}),xt(P({cellId:t.cell_id}))):"Toc"===t.from&&(Ee.sendInteraction({click_type:"ON",signal_origin:se.TOC_OPEN_CELL_DASHBOARD}),xt(P({cellId:t.cell_id}))),l.isVisible||e.shell.activateById(l.id)}}),t&&(t.add(l,`${r}:dashboard-notebook-restorer`),t.add(i,`${r}:dashboard-toc-restorer`)),o&&o.currentChanged.connect(c),e.restored.then((()=>{c()}))}(e,o,a,l,n)):console.log(`${r}: User not authenticated`)})).catch((e=>{console.log(`${r}: Authentication error, ${e}`)})).finally((()=>{window.postMessage({identifier:"unianalytics",authNotebooks:i},window.origin)}))})).catch((e=>{console.error(`${r}: Failed to access userId, the jupyterlab_unianalytics_dashboard server extension appears to be missing.\n${e}`)}))}))}else console.log(`${r}: Use a more recent version of JupyterLab (>=${l})`);function p(e){var t;const o=e.composite.commonDashboardSettings;o?Ee.setPermission(o.dashboardCollection||!1):Ee.setPermission((null===(t=e.default("commonDashboardSettings"))||void 0===t?void 0:t.dashboardCollection)||!1)}function b(e){const t=e.composite.useLocalBackend,o=e.composite.backendEndpoint;t?(Mt=Lt,Bt=Lt):"string"==typeof o?(Mt=o,Bt=o):(Mt=Lt,Bt=Lt)}}},$t=Ht},2204:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%272%27 fill=%27%23fff%27/%3e%3c/svg%3e"},9609:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%2386b7fe%27/%3e%3c/svg%3e"},2469:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%23fff%27/%3e%3c/svg%3e"},7486:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27rgba%280, 0, 0, 0.25%29%27/%3e%3c/svg%3e"},991:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27rgba%28255, 255, 255, 0.25%29%27/%3e%3c/svg%3e"},4144:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23dc3545%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23dc3545%27 stroke=%27none%27/%3e%3c/svg%3e"},6254:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23000%27%3e%3cpath d=%27M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z%27/%3e%3c/svg%3e"},5321:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23052c65%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"},3460:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23212529%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"},1281:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%236ea8fe%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"},5647:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z%27/%3e%3c/svg%3e"},1692:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"},6770:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e"},6711:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23dee2e6%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e"},8931:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10h8%27/%3e%3c/svg%3e"},6199:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27m6 10 3 3 6-6%27/%3e%3c/svg%3e"},2956:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%28255, 255, 255, 0.55%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e"},2221:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%2833, 37, 41, 0.75%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e"},5122:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3e%3cpath fill=%27%23198754%27 d=%27M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3e%3c/svg%3e"}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkjupyterlab_unianalytics_dashboard=self.webpackChunkjupyterlab_unianalytics_dashboard||[]).push([[817],{4817:(t,e,s)=>{s.r(e),s.d(e,{Manager:()=>_t,Socket:()=>vt,connect:()=>At,default:()=>At,io:()=>At,protocol:()=>lt});var n={};s.r(n),s.d(n,{Decoder:()=>gt,Encoder:()=>ft,PacketType:()=>dt,protocol:()=>lt});const i=Object.create(null);i.open="0",i.close="1",i.ping="2",i.pong="3",i.message="4",i.upgrade="5",i.noop="6";const r=Object.create(null);Object.keys(i).forEach((t=>{r[i[t]]=t}));const o={type:"error",data:"parser error"},a="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),h="function"==typeof ArrayBuffer,c=t=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer instanceof ArrayBuffer,u=({type:t,data:e},s,n)=>a&&e instanceof Blob?s?n(e):p(e,n):h&&(e instanceof ArrayBuffer||c(e))?s?n(e):p(new Blob([e]),n):n(i[t]+(e||"")),p=(t,e)=>{const s=new FileReader;return s.onload=function(){const t=s.result.split(",")[1];e("b"+(t||""))},s.readAsDataURL(t)};function l(t){return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}let d;const f="undefined"==typeof Uint8Array?[]:new Uint8Array(256);for(let t=0;t<64;t++)f["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(t)]=t;const y="function"==typeof ArrayBuffer,g=(t,e)=>{if("string"!=typeof t)return{type:"message",data:b(t,e)};const s=t.charAt(0);return"b"===s?{type:"message",data:m(t.substring(1),e)}:r[s]?t.length>1?{type:r[s],data:t.substring(1)}:{type:r[s]}:o},m=(t,e)=>{if(y){const s=(t=>{let e,s,n,i,r,o=.75*t.length,a=t.length,h=0;"="===t[t.length-1]&&(o--,"="===t[t.length-2]&&o--);const c=new ArrayBuffer(o),u=new Uint8Array(c);for(e=0;e<a;e+=4)s=f[t.charCodeAt(e)],n=f[t.charCodeAt(e+1)],i=f[t.charCodeAt(e+2)],r=f[t.charCodeAt(e+3)],u[h++]=s<<2|n>>4,u[h++]=(15&n)<<4|i>>2,u[h++]=(3&i)<<6|63&r;return c})(t);return b(s,e)}return{base64:!0,data:t}},b=(t,e)=>"blob"===e?t instanceof Blob?t:new Blob([t]):t instanceof ArrayBuffer?t:t.buffer,w=String.fromCharCode(30);let v;function k(t){return t.reduce(((t,e)=>t+e.length),0)}function _(t,e){if(t[0].length===e)return t.shift();const s=new Uint8Array(e);let n=0;for(let i=0;i<e;i++)s[i]=t[0][n++],n===t[0].length&&(t.shift(),n=0);return t.length&&n<t[0].length&&(t[0]=t[0].slice(n)),s}function E(t){if(t)return function(t){for(var e in E.prototype)t[e]=E.prototype[e];return t}(t)}E.prototype.on=E.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this},E.prototype.once=function(t,e){function s(){this.off(t,s),e.apply(this,arguments)}return s.fn=e,this.on(t,s),this},E.prototype.off=E.prototype.removeListener=E.prototype.removeAllListeners=E.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var s,n=this._callbacks["$"+t];if(!n)return this;if(1==arguments.length)return delete this._callbacks["$"+t],this;for(var i=0;i<n.length;i++)if((s=n[i])===e||s.fn===e){n.splice(i,1);break}return 0===n.length&&delete this._callbacks["$"+t],this},E.prototype.emit=function(t){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),s=this._callbacks["$"+t],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(s){n=0;for(var i=(s=s.slice(0)).length;n<i;++n)s[n].apply(this,e)}return this},E.prototype.emitReserved=E.prototype.emit,E.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks["$"+t]||[]},E.prototype.hasListeners=function(t){return!!this.listeners(t).length};const A="undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")();function O(t,...e){return e.reduce(((e,s)=>(t.hasOwnProperty(s)&&(e[s]=t[s]),e)),{})}const T=A.setTimeout,R=A.clearTimeout;function C(t,e){e.useNativeTimers?(t.setTimeoutFn=T.bind(A),t.clearTimeoutFn=R.bind(A)):(t.setTimeoutFn=A.setTimeout.bind(A),t.clearTimeoutFn=A.clearTimeout.bind(A))}class B extends Error{constructor(t,e,s){super(t),this.description=e,this.context=s,this.type="TransportError"}}class S extends E{constructor(t){super(),this.writable=!1,C(this,t),this.opts=t,this.query=t.query,this.socket=t.socket}onError(t,e,s){return super.emitReserved("error",new B(t,e,s)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}send(t){"open"===this.readyState&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const e=g(t,this.socket.binaryType);this.onPacket(e)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}createUri(t,e={}){return t+"://"+this._hostname()+this._port()+this.opts.path+this._query(e)}_hostname(){const t=this.opts.hostname;return-1===t.indexOf(":")?t:"["+t+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}_query(t){const e=function(t){let e="";for(let s in t)t.hasOwnProperty(s)&&(e.length&&(e+="&"),e+=encodeURIComponent(s)+"="+encodeURIComponent(t[s]));return e}(t);return e.length?"?"+e:""}}const N="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),x=64,L={};let q,P=0,j=0;function U(t){let e="";do{e=N[t%x]+e,t=Math.floor(t/x)}while(t>0);return e}function D(){const t=U(+new Date);return t!==q?(P=0,q=t):t+"."+U(P++)}for(;j<x;j++)L[N[j]]=j;let I=!1;try{I="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(t){}const F=I;function M(t){const e=t.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!e||F))return new XMLHttpRequest}catch(t){}if(!e)try{return new(A[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(t){}}function V(){}const H=null!=new M({xdomain:!1}).responseType;class K extends E{constructor(t,e){super(),C(this,e),this.opts=e,this.method=e.method||"GET",this.uri=t,this.data=void 0!==e.data?e.data:null,this.create()}create(){var t;const e=O(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");e.xdomain=!!this.opts.xd;const s=this.xhr=new M(e);try{s.open(this.method,this.uri,!0);try{if(this.opts.extraHeaders){s.setDisableHeaderCheck&&s.setDisableHeaderCheck(!0);for(let t in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(t)&&s.setRequestHeader(t,this.opts.extraHeaders[t])}}catch(t){}if("POST"===this.method)try{s.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(t){}try{s.setRequestHeader("Accept","*/*")}catch(t){}null===(t=this.opts.cookieJar)||void 0===t||t.addCookies(s),"withCredentials"in s&&(s.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(s.timeout=this.opts.requestTimeout),s.onreadystatechange=()=>{var t;3===s.readyState&&(null===(t=this.opts.cookieJar)||void 0===t||t.parseCookies(s)),4===s.readyState&&(200===s.status||1223===s.status?this.onLoad():this.setTimeoutFn((()=>{this.onError("number"==typeof s.status?s.status:0)}),0))},s.send(this.data)}catch(t){return void this.setTimeoutFn((()=>{this.onError(t)}),0)}"undefined"!=typeof document&&(this.index=K.requestsCount++,K.requests[this.index]=this)}onError(t){this.emitReserved("error",t,this.xhr),this.cleanup(!0)}cleanup(t){if(void 0!==this.xhr&&null!==this.xhr){if(this.xhr.onreadystatechange=V,t)try{this.xhr.abort()}catch(t){}"undefined"!=typeof document&&delete K.requests[this.index],this.xhr=null}}onLoad(){const t=this.xhr.responseText;null!==t&&(this.emitReserved("data",t),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}function Y(){for(let t in K.requests)K.requests.hasOwnProperty(t)&&K.requests[t].abort()}K.requestsCount=0,K.requests={},"undefined"!=typeof document&&("function"==typeof attachEvent?attachEvent("onunload",Y):"function"==typeof addEventListener&&addEventListener("onpagehide"in A?"pagehide":"unload",Y,!1));const W="function"==typeof Promise&&"function"==typeof Promise.resolve?t=>Promise.resolve().then(t):(t,e)=>e(t,0),z=A.WebSocket||A.MozWebSocket,J="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),$={websocket:class extends S{constructor(t){super(t),this.supportsBinary=!t.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const t=this.uri(),e=this.opts.protocols,s=J?{}:O(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(s.headers=this.opts.extraHeaders);try{this.ws=J?new z(t,e,s):e?new z(t,e):new z(t)}catch(t){return this.emitReserved("error",t)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let e=0;e<t.length;e++){const s=t[e],n=e===t.length-1;u(s,this.supportsBinary,(t=>{try{this.ws.send(t)}catch(t){}n&&W((()=>{this.writable=!0,this.emitReserved("drain")}),this.setTimeoutFn)}))}}doClose(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",e=this.query||{};return this.opts.timestampRequests&&(e[this.opts.timestampParam]=D()),this.supportsBinary||(e.b64=1),this.createUri(t,e)}check(){return!!z}},webtransport:class extends S{get name(){return"webtransport"}doOpen(){"function"==typeof WebTransport&&(this.transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name]),this.transport.closed.then((()=>{this.onClose()})).catch((t=>{this.onError("webtransport error",t)})),this.transport.ready.then((()=>{this.transport.createBidirectionalStream().then((t=>{const e=function(t,e){v||(v=new TextDecoder);const s=[];let n=0,i=-1,r=!1;return new TransformStream({transform(a,h){for(s.push(a);;){if(0===n){if(k(s)<1)break;const t=_(s,1);r=128==(128&t[0]),i=127&t[0],n=i<126?3:126===i?1:2}else if(1===n){if(k(s)<2)break;const t=_(s,2);i=new DataView(t.buffer,t.byteOffset,t.length).getUint16(0),n=3}else if(2===n){if(k(s)<8)break;const t=_(s,8),e=new DataView(t.buffer,t.byteOffset,t.length),r=e.getUint32(0);if(r>Math.pow(2,21)-1){h.enqueue(o);break}i=r*Math.pow(2,32)+e.getUint32(4),n=3}else{if(k(s)<i)break;const t=_(s,i);h.enqueue(g(r?t:v.decode(t),e)),n=0}if(0===i||i>t){h.enqueue(o);break}}}})}(Number.MAX_SAFE_INTEGER,this.socket.binaryType),s=t.readable.pipeThrough(e).getReader(),n=new TransformStream({transform(t,e){!function(t,e){a&&t.data instanceof Blob?t.data.arrayBuffer().then(l).then(e):h&&(t.data instanceof ArrayBuffer||c(t.data))?e(l(t.data)):u(t,!1,(t=>{d||(d=new TextEncoder),e(d.encode(t))}))}(t,(s=>{const n=s.length;let i;if(n<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,n);else if(n<65536){i=new Uint8Array(3);const t=new DataView(i.buffer);t.setUint8(0,126),t.setUint16(1,n)}else{i=new Uint8Array(9);const t=new DataView(i.buffer);t.setUint8(0,127),t.setBigUint64(1,BigInt(n))}t.data&&"string"!=typeof t.data&&(i[0]|=128),e.enqueue(i),e.enqueue(s)}))}});n.readable.pipeTo(t.writable),this.writer=n.writable.getWriter();const i=()=>{s.read().then((({done:t,value:e})=>{t||(this.onPacket(e),i())})).catch((t=>{}))};i();const r={type:"open"};this.query.sid&&(r.data=`{"sid":"${this.query.sid}"}`),this.writer.write(r).then((()=>this.onOpen()))}))})))}write(t){this.writable=!1;for(let e=0;e<t.length;e++){const s=t[e],n=e===t.length-1;this.writer.write(s).then((()=>{n&&W((()=>{this.writable=!0,this.emitReserved("drain")}),this.setTimeoutFn)}))}}doClose(){var t;null===(t=this.transport)||void 0===t||t.close()}},polling:class extends S{constructor(t){if(super(t),this.polling=!1,"undefined"!=typeof location){const e="https:"===location.protocol;let s=location.port;s||(s=e?"443":"80"),this.xd="undefined"!=typeof location&&t.hostname!==location.hostname||s!==t.port}const e=t&&t.forceBase64;this.supportsBinary=H&&!e,this.opts.withCredentials&&(this.cookieJar=void 0)}get name(){return"polling"}doOpen(){this.poll()}pause(t){this.readyState="pausing";const e=()=>{this.readyState="paused",t()};if(this.polling||!this.writable){let t=0;this.polling&&(t++,this.once("pollComplete",(function(){--t||e()}))),this.writable||(t++,this.once("drain",(function(){--t||e()})))}else e()}poll(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){((t,e)=>{const s=t.split(w),n=[];for(let t=0;t<s.length;t++){const i=g(s[t],e);if(n.push(i),"error"===i.type)break}return n})(t,this.socket.binaryType).forEach((t=>{if("opening"===this.readyState&&"open"===t.type&&this.onOpen(),"close"===t.type)return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(t)})),"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.poll())}doClose(){const t=()=>{this.write([{type:"close"}])};"open"===this.readyState?t():this.once("open",t)}write(t){this.writable=!1,((t,e)=>{const s=t.length,n=new Array(s);let i=0;t.forEach(((t,r)=>{u(t,!1,(t=>{n[r]=t,++i===s&&e(n.join(w))}))}))})(t,(t=>{this.doWrite(t,(()=>{this.writable=!0,this.emitReserved("drain")}))}))}uri(){const t=this.opts.secure?"https":"http",e=this.query||{};return!1!==this.opts.timestampRequests&&(e[this.opts.timestampParam]=D()),this.supportsBinary||e.sid||(e.b64=1),this.createUri(t,e)}request(t={}){return Object.assign(t,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new K(this.uri(),t)}doWrite(t,e){const s=this.request({method:"POST",data:t});s.on("success",e),s.on("error",((t,e)=>{this.onError("xhr post error",t,e)}))}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",((t,e)=>{this.onError("xhr poll error",t,e)})),this.pollXhr=t}}},Q=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,X=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function G(t){if(t.length>2e3)throw"URI too long";const e=t,s=t.indexOf("["),n=t.indexOf("]");-1!=s&&-1!=n&&(t=t.substring(0,s)+t.substring(s,n).replace(/:/g,";")+t.substring(n,t.length));let i=Q.exec(t||""),r={},o=14;for(;o--;)r[X[o]]=i[o]||"";return-1!=s&&-1!=n&&(r.source=e,r.host=r.host.substring(1,r.host.length-1).replace(/;/g,":"),r.authority=r.authority.replace("[","").replace("]","").replace(/;/g,":"),r.ipv6uri=!0),r.pathNames=function(t,e){const s=e.replace(/\/{2,9}/g,"/").split("/");return"/"!=e.slice(0,1)&&0!==e.length||s.splice(0,1),"/"==e.slice(-1)&&s.splice(s.length-1,1),s}(0,r.path),r.queryKey=function(t,e){const s={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(t,e,n){e&&(s[e]=n)})),s}(0,r.query),r}class Z extends E{constructor(t,e={}){super(),this.binaryType="arraybuffer",this.writeBuffer=[],t&&"object"==typeof t&&(e=t,t=null),t?(t=G(t),e.hostname=t.host,e.secure="https"===t.protocol||"wss"===t.protocol,e.port=t.port,t.query&&(e.query=t.query)):e.host&&(e.hostname=G(e.host).host),C(this,e),this.secure=null!=e.secure?e.secure:"undefined"!=typeof location&&"https:"===location.protocol,e.hostname&&!e.port&&(e.port=this.secure?"443":"80"),this.hostname=e.hostname||("undefined"!=typeof location?location.hostname:"localhost"),this.port=e.port||("undefined"!=typeof location&&location.port?location.port:this.secure?"443":"80"),this.transports=e.transports||["polling","websocket","webtransport"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},e),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),"string"==typeof this.opts.query&&(this.opts.query=function(t){let e={},s=t.split("&");for(let t=0,n=s.length;t<n;t++){let n=s[t].split("=");e[decodeURIComponent(n[0])]=decodeURIComponent(n[1])}return e}(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,"function"==typeof addEventListener&&(this.opts.closeOnBeforeunload&&(this.beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),"localhost"!==this.hostname&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(t){const e=Object.assign({},this.opts.query);e.EIO=4,e.transport=t,this.id&&(e.sid=this.id);const s=Object.assign({},this.opts,{query:e,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new $[t](s)}open(){let t;if(this.opts.rememberUpgrade&&Z.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))t="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn((()=>{this.emitReserved("error","No transports available")}),0);t=this.transports[0]}this.readyState="opening";try{t=this.createTransport(t)}catch(t){return this.transports.shift(),void this.open()}t.open(),this.setTransport(t)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",(t=>this.onClose("transport close",t)))}probe(t){let e=this.createTransport(t),s=!1;Z.priorWebsocketSuccess=!1;const n=()=>{s||(e.send([{type:"ping",data:"probe"}]),e.once("packet",(t=>{if(!s)if("pong"===t.type&&"probe"===t.data){if(this.upgrading=!0,this.emitReserved("upgrading",e),!e)return;Z.priorWebsocketSuccess="websocket"===e.name,this.transport.pause((()=>{s||"closed"!==this.readyState&&(c(),this.setTransport(e),e.send([{type:"upgrade"}]),this.emitReserved("upgrade",e),e=null,this.upgrading=!1,this.flush())}))}else{const t=new Error("probe error");t.transport=e.name,this.emitReserved("upgradeError",t)}})))};function i(){s||(s=!0,c(),e.close(),e=null)}const r=t=>{const s=new Error("probe error: "+t);s.transport=e.name,i(),this.emitReserved("upgradeError",s)};function o(){r("transport closed")}function a(){r("socket closed")}function h(t){e&&t.name!==e.name&&i()}const c=()=>{e.removeListener("open",n),e.removeListener("error",r),e.removeListener("close",o),this.off("close",a),this.off("upgrading",h)};e.once("open",n),e.once("error",r),e.once("close",o),this.once("close",a),this.once("upgrading",h),-1!==this.upgrades.indexOf("webtransport")&&"webtransport"!==t?this.setTimeoutFn((()=>{s||e.open()}),200):e.open()}onOpen(){if(this.readyState="open",Z.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade){let t=0;const e=this.upgrades.length;for(;t<e;t++)this.probe(this.upgrades[t])}}onPacket(t){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),this.resetPingTimeout(),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this.sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong");break;case"error":const e=new Error("server error");e.code=t.data,this.onError(e);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data)}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this.upgrades=this.filterUpgrades(t.upgrades),this.pingInterval=t.pingInterval,this.pingTimeout=t.pingTimeout,this.maxPayload=t.maxPayload,this.onOpen(),"closed"!==this.readyState&&this.resetPingTimeout()}resetPingTimeout(){this.clearTimeoutFn(this.pingTimeoutTimer),this.pingTimeoutTimer=this.setTimeoutFn((()=>{this.onClose("ping timeout")}),this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}flush(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this.getWritablePackets();this.transport.send(t),this.prevBufferLen=t.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let s=0;s<this.writeBuffer.length;s++){const n=this.writeBuffer[s].data;if(n&&(t+="string"==typeof(e=n)?function(t){let e=0,s=0;for(let n=0,i=t.length;n<i;n++)e=t.charCodeAt(n),e<128?s+=1:e<2048?s+=2:e<55296||e>=57344?s+=3:(n++,s+=4);return s}(e):Math.ceil(1.33*(e.byteLength||e.size))),s>0&&t>this.maxPayload)return this.writeBuffer.slice(0,s);t+=2}var e;return this.writeBuffer}write(t,e,s){return this.sendPacket("message",t,e,s),this}send(t,e,s){return this.sendPacket("message",t,e,s),this}sendPacket(t,e,s,n){if("function"==typeof e&&(n=e,e=void 0),"function"==typeof s&&(n=s,s=null),"closing"===this.readyState||"closed"===this.readyState)return;(s=s||{}).compress=!1!==s.compress;const i={type:t,data:e,options:s};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),n&&this.once("flush",n),this.flush()}close(){const t=()=>{this.onClose("forced close"),this.transport.close()},e=()=>{this.off("upgrade",e),this.off("upgradeError",e),t()},s=()=>{this.once("upgrade",e),this.once("upgradeError",e)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(()=>{this.upgrading?s():t()})):this.upgrading?s():t()),this}onError(t){Z.priorWebsocketSuccess=!1,this.emitReserved("error",t),this.onClose("transport error",t)}onClose(t,e){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",t,e),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(t){const e=[];let s=0;const n=t.length;for(;s<n;s++)~this.transports.indexOf(t[s])&&e.push(t[s]);return e}}Z.protocol=4,Z.protocol;const tt="function"==typeof ArrayBuffer,et=t=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer,st=Object.prototype.toString,nt="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===st.call(Blob),it="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===st.call(File);function rt(t){return tt&&(t instanceof ArrayBuffer||et(t))||nt&&t instanceof Blob||it&&t instanceof File}function ot(t,e){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t)){for(let e=0,s=t.length;e<s;e++)if(ot(t[e]))return!0;return!1}if(rt(t))return!0;if(t.toJSON&&"function"==typeof t.toJSON&&1===arguments.length)return ot(t.toJSON(),!0);for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e)&&ot(t[e]))return!0;return!1}function at(t){const e=[],s=t.data,n=t;return n.data=ht(s,e),n.attachments=e.length,{packet:n,buffers:e}}function ht(t,e){if(!t)return t;if(rt(t)){const s={_placeholder:!0,num:e.length};return e.push(t),s}if(Array.isArray(t)){const s=new Array(t.length);for(let n=0;n<t.length;n++)s[n]=ht(t[n],e);return s}if("object"==typeof t&&!(t instanceof Date)){const s={};for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&(s[n]=ht(t[n],e));return s}return t}function ct(t,e){return t.data=ut(t.data,e),delete t.attachments,t}function ut(t,e){if(!t)return t;if(t&&!0===t._placeholder){if("number"==typeof t.num&&t.num>=0&&t.num<e.length)return e[t.num];throw new Error("illegal attachments")}if(Array.isArray(t))for(let s=0;s<t.length;s++)t[s]=ut(t[s],e);else if("object"==typeof t)for(const s in t)Object.prototype.hasOwnProperty.call(t,s)&&(t[s]=ut(t[s],e));return t}const pt=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],lt=5;var dt;!function(t){t[t.CONNECT=0]="CONNECT",t[t.DISCONNECT=1]="DISCONNECT",t[t.EVENT=2]="EVENT",t[t.ACK=3]="ACK",t[t.CONNECT_ERROR=4]="CONNECT_ERROR",t[t.BINARY_EVENT=5]="BINARY_EVENT",t[t.BINARY_ACK=6]="BINARY_ACK"}(dt||(dt={}));class ft{constructor(t){this.replacer=t}encode(t){return t.type!==dt.EVENT&&t.type!==dt.ACK||!ot(t)?[this.encodeAsString(t)]:this.encodeAsBinary({type:t.type===dt.EVENT?dt.BINARY_EVENT:dt.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id})}encodeAsString(t){let e=""+t.type;return t.type!==dt.BINARY_EVENT&&t.type!==dt.BINARY_ACK||(e+=t.attachments+"-"),t.nsp&&"/"!==t.nsp&&(e+=t.nsp+","),null!=t.id&&(e+=t.id),null!=t.data&&(e+=JSON.stringify(t.data,this.replacer)),e}encodeAsBinary(t){const e=at(t),s=this.encodeAsString(e.packet),n=e.buffers;return n.unshift(s),n}}function yt(t){return"[object Object]"===Object.prototype.toString.call(t)}class gt extends E{constructor(t){super(),this.reviver=t}add(t){let e;if("string"==typeof t){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");e=this.decodeString(t);const s=e.type===dt.BINARY_EVENT;s||e.type===dt.BINARY_ACK?(e.type=s?dt.EVENT:dt.ACK,this.reconstructor=new mt(e),0===e.attachments&&super.emitReserved("decoded",e)):super.emitReserved("decoded",e)}else{if(!rt(t)&&!t.base64)throw new Error("Unknown type: "+t);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");e=this.reconstructor.takeBinaryData(t),e&&(this.reconstructor=null,super.emitReserved("decoded",e))}}decodeString(t){let e=0;const s={type:Number(t.charAt(0))};if(void 0===dt[s.type])throw new Error("unknown packet type "+s.type);if(s.type===dt.BINARY_EVENT||s.type===dt.BINARY_ACK){const n=e+1;for(;"-"!==t.charAt(++e)&&e!=t.length;);const i=t.substring(n,e);if(i!=Number(i)||"-"!==t.charAt(e))throw new Error("Illegal attachments");s.attachments=Number(i)}if("/"===t.charAt(e+1)){const n=e+1;for(;++e&&","!==t.charAt(e)&&e!==t.length;);s.nsp=t.substring(n,e)}else s.nsp="/";const n=t.charAt(e+1);if(""!==n&&Number(n)==n){const n=e+1;for(;++e;){const s=t.charAt(e);if(null==s||Number(s)!=s){--e;break}if(e===t.length)break}s.id=Number(t.substring(n,e+1))}if(t.charAt(++e)){const n=this.tryParse(t.substr(e));if(!gt.isPayloadValid(s.type,n))throw new Error("invalid payload");s.data=n}return s}tryParse(t){try{return JSON.parse(t,this.reviver)}catch(t){return!1}}static isPayloadValid(t,e){switch(t){case dt.CONNECT:return yt(e);case dt.DISCONNECT:return void 0===e;case dt.CONNECT_ERROR:return"string"==typeof e||yt(e);case dt.EVENT:case dt.BINARY_EVENT:return Array.isArray(e)&&("number"==typeof e[0]||"string"==typeof e[0]&&-1===pt.indexOf(e[0]));case dt.ACK:case dt.BINARY_ACK:return Array.isArray(e)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class mt{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const t=ct(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}function bt(t,e,s){return t.on(e,s),function(){t.off(e,s)}}const wt=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class vt extends E{constructor(t,e,s){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=e,s&&s.auth&&(this.auth=s.auth),this._opts=Object.assign({},s),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[bt(t,"open",this.onopen.bind(this)),bt(t,"packet",this.onpacket.bind(this)),bt(t,"error",this.onerror.bind(this)),bt(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...e){if(wt.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(e.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(e),this;const s={type:dt.EVENT,data:e,options:{}};if(s.options.compress=!1!==this.flags.compress,"function"==typeof e[e.length-1]){const t=this.ids++,n=e.pop();this._registerAckCallback(t,n),s.id=t}const n=this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable;return this.flags.volatile&&(!n||!this.connected)||(this.connected?(this.notifyOutgoingListeners(s),this.packet(s)):this.sendBuffer.push(s)),this.flags={},this}_registerAckCallback(t,e){var s;const n=null!==(s=this.flags.timeout)&&void 0!==s?s:this._opts.ackTimeout;if(void 0===n)return void(this.acks[t]=e);const i=this.io.setTimeoutFn((()=>{delete this.acks[t];for(let e=0;e<this.sendBuffer.length;e++)this.sendBuffer[e].id===t&&this.sendBuffer.splice(e,1);e.call(this,new Error("operation has timed out"))}),n),r=(...t)=>{this.io.clearTimeoutFn(i),e.apply(this,t)};r.withError=!0,this.acks[t]=r}emitWithAck(t,...e){return new Promise(((s,n)=>{const i=(t,e)=>t?n(t):s(e);i.withError=!0,e.push(i),this.emit(t,...e)}))}_addToQueue(t){let e;"function"==typeof t[t.length-1]&&(e=t.pop());const s={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push(((t,...n)=>{if(s===this._queue[0])return null!==t?s.tryCount>this._opts.retries&&(this._queue.shift(),e&&e(t)):(this._queue.shift(),e&&e(null,...n)),s.pending=!1,this._drainQueue()})),this._queue.push(s),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||0===this._queue.length)return;const e=this._queue[0];e.pending&&!t||(e.pending=!0,e.tryCount++,this.flags=e.flags,this.emit.apply(this,e.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){"function"==typeof this.auth?this.auth((t=>{this._sendConnectPacket(t)})):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:dt.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,e){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,e),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach((t=>{if(!this.sendBuffer.some((e=>String(e.id)===t))){const e=this.acks[t];delete this.acks[t],e.withError&&e.call(this,new Error("socket has been disconnected"))}}))}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case dt.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case dt.EVENT:case dt.BINARY_EVENT:this.onevent(t);break;case dt.ACK:case dt.BINARY_ACK:this.onack(t);break;case dt.DISCONNECT:this.ondisconnect();break;case dt.CONNECT_ERROR:this.destroy();const e=new Error(t.data.message);e.data=t.data.data,this.emitReserved("connect_error",e)}}onevent(t){const e=t.data||[];null!=t.id&&e.push(this.ack(t.id)),this.connected?this.emitEvent(e):this.receiveBuffer.push(Object.freeze(e))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const e=this._anyListeners.slice();for(const s of e)s.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&"string"==typeof t[t.length-1]&&(this._lastOffset=t[t.length-1])}ack(t){const e=this;let s=!1;return function(...n){s||(s=!0,e.packet({type:dt.ACK,id:t,data:n}))}}onack(t){const e=this.acks[t.id];"function"==typeof e&&(delete this.acks[t.id],e.withError&&t.data.unshift(null),e.apply(this,t.data))}onconnect(t,e){this.id=t,this.recovered=e&&this._pid===e,this._pid=e,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach((t=>this.emitEvent(t))),this.receiveBuffer=[],this.sendBuffer.forEach((t=>{this.notifyOutgoingListeners(t),this.packet(t)})),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach((t=>t())),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:dt.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const e=this._anyListeners;for(let s=0;s<e.length;s++)if(t===e[s])return e.splice(s,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(t),this}prependAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(t),this}offAnyOutgoing(t){if(!this._anyOutgoingListeners)return this;if(t){const e=this._anyOutgoingListeners;for(let s=0;s<e.length;s++)if(t===e[s])return e.splice(s,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(t){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const e=this._anyOutgoingListeners.slice();for(const s of e)s.apply(this,t.data)}}}function kt(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}kt.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),s=Math.floor(e*this.jitter*t);t=0==(1&Math.floor(10*e))?t-s:t+s}return 0|Math.min(t,this.max)},kt.prototype.reset=function(){this.attempts=0},kt.prototype.setMin=function(t){this.ms=t},kt.prototype.setMax=function(t){this.max=t},kt.prototype.setJitter=function(t){this.jitter=t};class _t extends E{constructor(t,e){var s;super(),this.nsps={},this.subs=[],t&&"object"==typeof t&&(e=t,t=void 0),(e=e||{}).path=e.path||"/socket.io",this.opts=e,C(this,e),this.reconnection(!1!==e.reconnection),this.reconnectionAttempts(e.reconnectionAttempts||1/0),this.reconnectionDelay(e.reconnectionDelay||1e3),this.reconnectionDelayMax(e.reconnectionDelayMax||5e3),this.randomizationFactor(null!==(s=e.randomizationFactor)&&void 0!==s?s:.5),this.backoff=new kt({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==e.timeout?2e4:e.timeout),this._readyState="closed",this.uri=t;const i=e.parser||n;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=!1!==e.autoConnect,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,this):this._reconnection}reconnectionAttempts(t){return void 0===t?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var e;return void 0===t?this._reconnectionDelay:(this._reconnectionDelay=t,null===(e=this.backoff)||void 0===e||e.setMin(t),this)}randomizationFactor(t){var e;return void 0===t?this._randomizationFactor:(this._randomizationFactor=t,null===(e=this.backoff)||void 0===e||e.setJitter(t),this)}reconnectionDelayMax(t){var e;return void 0===t?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,null===(e=this.backoff)||void 0===e||e.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new Z(this.uri,this.opts);const e=this.engine,s=this;this._readyState="opening",this.skipReconnect=!1;const n=bt(e,"open",(function(){s.onopen(),t&&t()})),i=e=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",e),t?t(e):this.maybeReconnectOnOpen()},r=bt(e,"error",i);if(!1!==this._timeout){const t=this._timeout,s=this.setTimeoutFn((()=>{n(),i(new Error("timeout")),e.close()}),t);this.opts.autoUnref&&s.unref(),this.subs.push((()=>{this.clearTimeoutFn(s)}))}return this.subs.push(n),this.subs.push(r),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(bt(t,"ping",this.onping.bind(this)),bt(t,"data",this.ondata.bind(this)),bt(t,"error",this.onerror.bind(this)),bt(t,"close",this.onclose.bind(this)),bt(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(t){this.onclose("parse error",t)}}ondecoded(t){W((()=>{this.emitReserved("packet",t)}),this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,e){let s=this.nsps[t];return s?this._autoConnect&&!s.active&&s.connect():(s=new vt(this,t,e),this.nsps[t]=s),s}_destroy(t){const e=Object.keys(this.nsps);for(const t of e)if(this.nsps[t].active)return;this._close()}_packet(t){const e=this.encoder.encode(t);for(let s=0;s<e.length;s++)this.engine.write(e[s],t.options)}cleanup(){this.subs.forEach((t=>t())),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(t,e){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,e),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const e=this.backoff.duration();this._reconnecting=!0;const s=this.setTimeoutFn((()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),t.skipReconnect||t.open((e=>{e?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",e)):t.onreconnect()})))}),e);this.opts.autoUnref&&s.unref(),this.subs.push((()=>{this.clearTimeoutFn(s)}))}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const Et={};function At(t,e){"object"==typeof t&&(e=t,t=void 0);const s=function(t,e="",s){let n=t;s=s||"undefined"!=typeof location&&location,null==t&&(t=s.protocol+"//"+s.host),"string"==typeof t&&("/"===t.charAt(0)&&(t="/"===t.charAt(1)?s.protocol+t:s.host+t),/^(https?|wss?):\/\//.test(t)||(t=void 0!==s?s.protocol+"//"+t:"https://"+t),n=G(t)),n.port||(/^(http|ws)$/.test(n.protocol)?n.port="80":/^(http|ws)s$/.test(n.protocol)&&(n.port="443")),n.path=n.path||"/";const i=-1!==n.host.indexOf(":")?"["+n.host+"]":n.host;return n.id=n.protocol+"://"+i+":"+n.port+e,n.href=n.protocol+"://"+i+(s&&s.port===n.port?"":":"+n.port),n}(t,(e=e||{}).path||"/socket.io"),n=s.source,i=s.id,r=s.path,o=Et[i]&&r in Et[i].nsps;let a;return e.forceNew||e["force new connection"]||!1===e.multiplex||o?a=new _t(n,e):(Et[i]||(Et[i]=new _t(n,e)),a=Et[i]),s.query&&!e.query&&(e.query=s.queryKey),a.socket(s.path,e)}Object.assign(At,{Manager:_t,Socket:vt,io:At,connect:At})}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _JUPYTERLAB;(()=>{"use strict";var e,r,t,a,o,n,i,d,l,u,f,c,s,b,p,h,v,m,y,g,j,w,P,_,k,O,S={4479:(e,r,t)=>{var a={"./index":()=>Promise.all([t.e(39),t.e(29),t.e(419)]).then((()=>()=>t(575))),"./extension":()=>Promise.all([t.e(39),t.e(29),t.e(419)]).then((()=>()=>t(575))),"./style":()=>t.e(546).then((()=>()=>t(5546)))},o=(e,r)=>(t.R=r,r=t.o(a,e)?a[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),n=(e,r)=>{if(t.S){var a="default",o=t.S[a];if(o&&o!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[a]=e,t.I(a,r)}};t.d(r,{get:()=>o,init:()=>n})}},E={};function x(e){var r=E[e];if(void 0!==r)return r.exports;var t=E[e]={id:e,exports:{}};return S[e](t,t.exports,x),t.exports}x.m=S,x.c=E,x.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return x.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,x.t=function(t,a){if(1&a&&(t=this(t)),8&a)return t;if("object"==typeof t&&t){if(4&a&&t.__esModule)return t;if(16&a&&"function"==typeof t.then)return t}var o=Object.create(null);x.r(o);var n={};e=e||[null,r({}),r([]),r(r)];for(var i=2&a&&t;"object"==typeof i&&!~e.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach((e=>n[e]=()=>t[e]));return n.default=()=>t,x.d(o,n),o},x.d=(e,r)=>{for(var t in r)x.o(r,t)&&!x.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},x.f={},x.e=e=>Promise.all(Object.keys(x.f).reduce(((r,t)=>(x.f[t](e,r),r)),[])),x.u=e=>e+"."+{10:"1e5c908a94fc4b83c2e5",18:"759fbf2374edc42b5c3e",29:"9b0cb1475dcac2b485f3",39:"5a3b28a79ba693a9b627",211:"583fddc965c583e61532",308:"d9da4ce35f354c6f12e1",373:"37ddee9d229ac254f896",376:"d960746fd943a4ef55b8",419:"3f9d6850a82e34a15b03",426:"a7015f9dfda310972c1b",459:"75a9fe630dfdb00e65b4",546:"d280746d2a5a5e5b9fc3",563:"b613f734176cb51510ef",638:"d37271636c4d956096de",704:"4e17d862a476ae3df8ae",708:"323c3614d31a5918cfaf",744:"329dc4d1ed2f5c918266",798:"33a8f0893a66574e9259",817:"6437962faf359015be36",981:"ebb9e1d6122980b5ff0e"}[e]+".js?v="+{10:"1e5c908a94fc4b83c2e5",18:"759fbf2374edc42b5c3e",29:"9b0cb1475dcac2b485f3",39:"5a3b28a79ba693a9b627",211:"583fddc965c583e61532",308:"d9da4ce35f354c6f12e1",373:"37ddee9d229ac254f896",376:"d960746fd943a4ef55b8",419:"3f9d6850a82e34a15b03",426:"a7015f9dfda310972c1b",459:"75a9fe630dfdb00e65b4",546:"d280746d2a5a5e5b9fc3",563:"b613f734176cb51510ef",638:"d37271636c4d956096de",704:"4e17d862a476ae3df8ae",708:"323c3614d31a5918cfaf",744:"329dc4d1ed2f5c918266",798:"33a8f0893a66574e9259",817:"6437962faf359015be36",981:"ebb9e1d6122980b5ff0e"}[e],x.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),x.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},a="jupyterlab_unianalytics_dashboard:",x.l=(e,r,o,n)=>{if(t[e])t[e].push(r);else{var i,d;if(void 0!==o)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var f=l[u];if(f.getAttribute("src")==e||f.getAttribute("data-webpack")==a+o){i=f;break}}i||(d=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,x.nc&&i.setAttribute("nonce",x.nc),i.setAttribute("data-webpack",a+o),i.src=e),t[e]=[r];var c=(r,a)=>{i.onerror=i.onload=null,clearTimeout(s);var o=t[e];if(delete t[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(a))),r)return r(a)},s=setTimeout(c.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=c.bind(null,i.onerror),i.onload=c.bind(null,i.onload),d&&document.head.appendChild(i)}},x.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{x.S={};var e={},r={};x.I=(t,a)=>{a||(a=[]);var o=r[t];if(o||(o=r[t]={}),!(a.indexOf(o)>=0)){if(a.push(o),e[t])return e[t];x.o(x.S,t)||(x.S[t]={});var n=x.S[t],i="jupyterlab_unianalytics_dashboard",d=(e,r,t,a)=>{var o=n[e]=n[e]||{},d=o[r];(!d||!d.loaded&&(!a!=!d.eager?a:i>d.from))&&(o[r]={get:t,from:i,eager:!!a})},l=[];return"default"===t&&(d("@reduxjs/toolkit","1.9.7",(()=>x.e(426).then((()=>()=>x(8426))))),d("chart.js","4.4.1",(()=>x.e(708).then((()=>()=>x(4708))))),d("jupyterlab_unianalytics_dashboard","4.0.11",(()=>Promise.all([x.e(39),x.e(29),x.e(419)]).then((()=>()=>x(575))))),d("marked","11.1.1",(()=>x.e(308).then((()=>()=>x(3308))))),d("react-bootstrap-icons","1.10.3",(()=>Promise.all([x.e(744),x.e(29)]).then((()=>()=>x(1744))))),d("react-bootstrap","2.10.0",(()=>Promise.all([x.e(18),x.e(29),x.e(704)]).then((()=>()=>x(1018))))),d("react-chartjs-2","5.2.0",(()=>Promise.all([x.e(29),x.e(459),x.e(563)]).then((()=>()=>x(5376))))),d("react-redux","8.1.3",(()=>Promise.all([x.e(981),x.e(29),x.e(704)]).then((()=>()=>x(2981))))),d("socket.io-client","4.7.5",(()=>x.e(817).then((()=>()=>x(4817)))))),e[t]=l.length?Promise.all(l).then((()=>e[t]=1)):1}}})(),(()=>{var e;x.g.importScripts&&(e=x.g.location+"");var r=x.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var a=t.length-1;a>-1&&!e;)e=t[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),x.p=e})(),o=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),a=t[1]?r(t[1]):[];return t[2]&&(a.length++,a.push.apply(a,r(t[2]))),t[3]&&(a.push([]),a.push.apply(a,r(t[3]))),a},n=(e,r)=>{e=o(e),r=o(r);for(var t=0;;){if(t>=e.length)return t<r.length&&"u"!=(typeof r[t])[0];var a=e[t],n=(typeof a)[0];if(t>=r.length)return"u"==n;var i=r[t],d=(typeof i)[0];if(n!=d)return"o"==n&&"n"==d||"s"==d||"u"==n;if("o"!=n&&"u"!=n&&a!=i)return a<i;t++}},i=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var a=1,o=1;o<e.length;o++)a--,t+="u"==(typeof(d=e[o]))[0]?"-":(a>0?".":"")+(a=2,d);return t}var n=[];for(o=1;o<e.length;o++){var d=e[o];n.push(0===d?"not("+l()+")":1===d?"("+l()+" || "+l()+")":2===d?n.pop()+" "+n.pop():i(d))}return l();function l(){return n.pop().replace(/^\((.+)\)$/,"$1")}},d=(e,r)=>{if(0 in e){r=o(r);var t=e[0],a=t<0;a&&(t=-t-1);for(var n=0,i=1,l=!0;;i++,n++){var u,f,c=i<e.length?(typeof e[i])[0]:"";if(n>=r.length||"o"==(f=(typeof(u=r[n]))[0]))return!l||("u"==c?i>t&&!a:""==c!=a);if("u"==f){if(!l||"u"!=c)return!1}else if(l)if(c==f)if(i<=t){if(u!=e[i])return!1}else{if(a?u>e[i]:u<e[i])return!1;u!=e[i]&&(l=!1)}else if("s"!=c&&"n"!=c){if(a||i<=t)return!1;l=!1,i--}else{if(i<=t||f<c!=a)return!1;l=!1}else"s"!=c&&"n"!=c&&(l=!1,i--)}}var s=[],b=s.pop.bind(s);for(n=1;n<e.length;n++){var p=e[n];s.push(1==p?b()|b():2==p?b()&b():p?d(p,r):!b())}return!!b()},l=(e,r)=>{var t=x.S[e];if(!t||!x.o(t,r))throw new Error("Shared module "+r+" doesn't exist in shared scope "+e);return t},u=(e,r)=>{var t=e[r];return(r=Object.keys(t).reduce(((e,r)=>!e||n(e,r)?r:e),0))&&t[r]},f=(e,r)=>{var t=e[r];return Object.keys(t).reduce(((e,r)=>!e||!t[e].loaded&&n(e,r)?r:e),0)},c=(e,r,t,a)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+i(a)+")",s=(e,r,t,a)=>{var o=f(e,t);return d(a,o)||h(c(e,t,o,a)),m(e[t][o])},b=(e,r,t)=>{var a=e[r];return(r=Object.keys(a).reduce(((e,r)=>!d(t,r)||e&&!n(e,r)?e:r),0))&&a[r]},p=(e,r,t,a)=>{var o=e[t];return"No satisfying version ("+i(a)+") of shared module "+t+" found in shared scope "+r+".\nAvailable versions: "+Object.keys(o).map((e=>e+" from "+o[e].from)).join(", ")},h=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},v=(e,r,t,a)=>{h(p(e,r,t,a))},m=e=>(e.loaded=1,e.get()),g=(y=e=>function(r,t,a,o){var n=x.I(r);return n&&n.then?n.then(e.bind(e,r,x.S[r],t,a,o)):e(r,x.S[r],t,a,o)})(((e,r,t,a)=>(l(e,t),m(b(r,t,a)||v(r,e,t,a)||u(r,t))))),j=y(((e,r,t,a)=>(l(e,t),s(r,0,t,a)))),w=y(((e,r,t,a,o)=>{var n=r&&x.o(r,t)&&b(r,t,a);return n?m(n):o()})),P={},_={6029:()=>j("default","react",[1,18,2,0]),1464:()=>j("default","@jupyterlab/apputils",[1,4,2,6]),2535:()=>w("default","react-bootstrap-icons",[1,1,10,3],(()=>x.e(744).then((()=>()=>x(1744))))),2779:()=>w("default","marked",[1,11,1,1],(()=>x.e(308).then((()=>()=>x(3308))))),2818:()=>j("default","@jupyterlab/services",[1,7,1,6]),3195:()=>g("default","@jupyterlab/outputarea",[1,4,1,6]),3413:()=>j("default","@jupyterlab/rendermime",[1,4,1,6]),3748:()=>w("default","@reduxjs/toolkit",[1,1,9,5],(()=>x.e(426).then((()=>()=>x(8426))))),4072:()=>j("default","@jupyterlab/application",[1,4,1,6]),4882:()=>j("default","@lumino/widgets",[1,2,3,1,,"alpha",0]),4901:()=>j("default","@lumino/signaling",[1,2,0,0]),5099:()=>j("default","@jupyterlab/settingregistry",[1,4,1,6]),6805:()=>j("default","@jupyterlab/ui-components",[1,4,1,6]),6947:()=>j("default","@jupyterlab/notebook",[1,4,1,6]),7594:()=>j("default","@jupyterlab/codeeditor",[1,4,1,6]),7717:()=>j("default","@lumino/disposable",[1,2,0,0]),7760:()=>w("default","react-redux",[1,8,0,5],(()=>Promise.all([x.e(981),x.e(704)]).then((()=>()=>x(2981))))),7885:()=>w("default","react-chartjs-2",[1,5,2,0],(()=>Promise.all([x.e(459),x.e(798)]).then((()=>()=>x(5376))))),8352:()=>w("default","chart.js",[1,4,4,1],(()=>x.e(708).then((()=>()=>x(4708))))),8559:()=>w("default","react-bootstrap",[1,2,10,0],(()=>Promise.all([x.e(18),x.e(704)]).then((()=>()=>x(1018))))),8671:()=>j("default","@jupyterlab/coreutils",[1,6,1,6]),8873:()=>j("default","@jupyterlab/codemirror",[1,4,1,6]),9156:()=>w("default","socket.io-client",[1,4,7,5],(()=>x.e(817).then((()=>()=>x(4817))))),9380:()=>j("default","@jupyterlab/filebrowser",[1,4,1,6]),7704:()=>j("default","react-dom",[1,18,2,0]),6459:()=>w("default","chart.js",[1,4,1,1],(()=>x.e(708).then((()=>()=>x(4708))))),1373:()=>j("default","@codemirror/language",[1,6,0,0]),6211:()=>j("default","@codemirror/view",[1,6,9,6]),851:()=>j("default","@lezer/common",[1,1,0,0]),7138:()=>j("default","@lezer/highlight",[1,1,0,0]),8204:()=>j("default","@codemirror/state",[1,6,2,0])},k={29:[6029],211:[6211],373:[1373],376:[851,7138,8204],419:[1464,2535,2779,2818,3195,3413,3748,4072,4882,4901,5099,6805,6947,7594,7717,7760,7885,8352,8559,8671,8873,9156,9380],459:[6459],704:[7704]},O={},x.f.consumes=(e,r)=>{x.o(k,e)&&k[e].forEach((e=>{if(x.o(P,e))return r.push(P[e]);if(!O[e]){var t=r=>{P[e]=0,x.m[e]=t=>{delete x.c[e],t.exports=r()}};O[e]=!0;var a=r=>{delete P[e],x.m[e]=t=>{throw delete x.c[e],r}};try{var o=_[e]();o.then?r.push(P[e]=o.then(t).catch(a)):t(o)}catch(e){a(e)}}}))},(()=>{x.b=document.baseURI||self.location.href;var e={217:0};x.f.j=(r,t)=>{var a=x.o(e,r)?e[r]:void 0;if(0!==a)if(a)t.push(a[2]);else if(/^(37[36]|211|29|459|704)$/.test(r))e[r]=0;else{var o=new Promise(((t,o)=>a=e[r]=[t,o]));t.push(a[2]=o);var n=x.p+x.u(r),i=new Error;x.l(n,(t=>{if(x.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+n+")",i.name="ChunkLoadError",i.type=o,i.request=n,a[1](i)}}),"chunk-"+r,r)}};var r=(r,t)=>{var a,o,[n,i,d]=t,l=0;if(n.some((r=>0!==e[r]))){for(a in i)x.o(i,a)&&(x.m[a]=i[a]);d&&d(x)}for(r&&r(t);l<n.length;l++)o=n[l],x.o(e,o)&&e[o]&&e[o][0](),e[o]=0},t=self.webpackChunkjupyterlab_unianalytics_dashboard=self.webpackChunkjupyterlab_unianalytics_dashboard||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),x.nc=void 0;var T=x(4479);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB).jupyterlab_unianalytics_dashboard=T})();
|
|
@@ -108,6 +108,12 @@
|
|
|
108
108
|
"licenseId": "MIT",
|
|
109
109
|
"extractedText": "The MIT License (MIT)\n\nCopyright (c) 2015 react-bootstrap\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
|
|
110
110
|
},
|
|
111
|
+
{
|
|
112
|
+
"name": "@socket.io/component-emitter",
|
|
113
|
+
"versionInfo": "3.1.0",
|
|
114
|
+
"licenseId": "MIT",
|
|
115
|
+
"extractedText": "(The MIT License)\n\nCopyright (c) 2014 Component contributors <dev@component.io>\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n"
|
|
116
|
+
},
|
|
111
117
|
{
|
|
112
118
|
"name": "bootstrap",
|
|
113
119
|
"versionInfo": "5.3.2",
|
|
@@ -144,6 +150,18 @@
|
|
|
144
150
|
"licenseId": "MIT",
|
|
145
151
|
"extractedText": "The MIT License (MIT)\n\nCopyright (c) 2015 Jason Quense\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
|
|
146
152
|
},
|
|
153
|
+
{
|
|
154
|
+
"name": "engine.io-client",
|
|
155
|
+
"versionInfo": "",
|
|
156
|
+
"licenseId": "",
|
|
157
|
+
"extractedText": ""
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"name": "engine.io-parser",
|
|
161
|
+
"versionInfo": "",
|
|
162
|
+
"licenseId": "",
|
|
163
|
+
"extractedText": ""
|
|
164
|
+
},
|
|
147
165
|
{
|
|
148
166
|
"name": "hoist-non-react-statics",
|
|
149
167
|
"versionInfo": "3.3.2",
|
|
@@ -252,6 +270,18 @@
|
|
|
252
270
|
"licenseId": "MIT",
|
|
253
271
|
"extractedText": "The MIT License (MIT)\n\nCopyright (c) 2015-2018 Reselect Contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
|
|
254
272
|
},
|
|
273
|
+
{
|
|
274
|
+
"name": "socket.io-client",
|
|
275
|
+
"versionInfo": "4.7.5",
|
|
276
|
+
"licenseId": "",
|
|
277
|
+
"extractedText": ""
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"name": "socket.io-parser",
|
|
281
|
+
"versionInfo": "4.2.4",
|
|
282
|
+
"licenseId": "MIT",
|
|
283
|
+
"extractedText": "(The MIT License)\n\nCopyright (c) 2014 Guillermo Rauch <guillermo@learnboost.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the 'Software'), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
|
|
284
|
+
},
|
|
255
285
|
{
|
|
256
286
|
"name": "style-loader",
|
|
257
287
|
"versionInfo": "3.3.4",
|