jupyterlab-unianalytics-dashboard 4.0.9__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.9 → jupyterlab_unianalytics_dashboard-4.0.11}/CHANGELOG.md +11 -2
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/PKG-INFO +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/_version.py +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.9 → 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.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/schemas/jupyterlab_unianalytics_dashboard/package.json.orig +14 -13
- {jupyterlab_unianalytics_dashboard-4.0.9 → 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/546.d280746d2a5a5e5b9fc3.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.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/third-party-licenses.json +30 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → 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.9 → jupyterlab_unianalytics_dashboard-4.0.11}/schema/plugin.json +2 -2
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/chat-dashboard/ChatContainer.tsx +7 -12
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/dashboard-widgets/ChatDashboardPanel.tsx +6 -1
- {jupyterlab_unianalytics_dashboard-4.0.9 → 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.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/index.ts +58 -3
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/plugins/dashboards.ts +1 -29
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/plugins/uploadNotebook.tsx +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/buttons/GroupDropDown.tsx +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/notebook/CodeExecComponent.tsx +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/notebook/TimeSpentComponent.tsx +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/pages/Cell.tsx +2 -1
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/ExportCSVButton.tsx +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/tocDashboardTree.tsx +2 -1
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/constants.ts +0 -21
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/interactionRecorder.ts +1 -2
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/interfaces.ts +1 -5
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/utils.ts +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/style/reactVisu.css +6 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/yarn.lock +73 -1
- jupyterlab_unianalytics_dashboard-4.0.9/jupyterlab_unianalytics_dashboard/labextension/static/419.8d7c0e30d3f058138a25.js +0 -1
- jupyterlab_unianalytics_dashboard-4.0.9/jupyterlab_unianalytics_dashboard/labextension/static/546.d5da555479f21a401709.js +0 -1
- jupyterlab_unianalytics_dashboard-4.0.9/jupyterlab_unianalytics_dashboard/labextension/static/remoteEntry.f90079a80d3ca2c7e110.js +0 -1
- jupyterlab_unianalytics_dashboard-4.0.9/src/dashboard-widgets/WebsocketManager.ts +0 -97
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/.copier-answers.yml +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/.gitignore +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/.prettierignore +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/.yarnrc.yml +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/LICENSE +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/README.md +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/RELEASE.md +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/babel.config.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/conftest.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/install.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jest.config.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/junit.xml +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyter-config/server-config/jupyterlab_unianalytics_dashboard.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/__init__.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/handlers.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/10.1e5c908a94fc4b83c2e5.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/18.759fbf2374edc42b5c3e.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/18.759fbf2374edc42b5c3e.js.LICENSE.txt +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/308.d9da4ce35f354c6f12e1.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/39.5a3b28a79ba693a9b627.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/426.a7015f9dfda310972c1b.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/563.b613f734176cb51510ef.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/638.d37271636c4d956096de.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/708.323c3614d31a5918cfaf.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/708.323c3614d31a5918cfaf.js.LICENSE.txt +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/744.329dc4d1ed2f5c918266.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/798.33a8f0893a66574e9259.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/981.ebb9e1d6122980b5ff0e.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/981.ebb9e1d6122980b5ff0e.js.LICENSE.txt +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/labextension/static/style.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/tests/__init__.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/jupyterlab_unianalytics_dashboard/tests/test_handlers.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/pyproject.toml +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/setup.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/__tests__/jupyterlab_unianalytics_dashboard.spec.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/chat-dashboard/ConnectionComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/dashboard-widgets/DashboardPanel.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/dashboard-widgets/TocDashboardPanel.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/dashboard-widgets/VisuDashboardPanel.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/handler.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/icons/index.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/icons/react-app-env.d.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/redux/localStorage.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/redux/reducers/CommonDashboardReducer.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/redux/reducers/SideDashboardReducer.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/redux/reducers/ToCDashboardReducer.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/redux/store.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/redux/types.d.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/PageRouter.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/buttons/SortDropDown.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/buttons/TimeDropDown.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/cell/CellInput.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/cell/CellOutput.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/cell/ExecutionComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/cell/MarkdownComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/layout/GridSystem.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/layout/TopBreadcrumb.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/notebook/ChartContainer.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/placeholder/Loader.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/placeholder/NoData.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/components/placeholder/SidebarPlaceholder.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/side-dashboard/pages/Notebook.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/TocReactComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/generator/index.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/generator/options_manager.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/generator/render.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/generator/toolbar_generator.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/generator/utils.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/toc-dashboard/tocDashboardItem.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/chartOptions.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/compatibility.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/utils/headings.d.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/widget-extensions/CellButton.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/widget-extensions/NotebookButton.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/src/widget-extensions/index.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/style/base.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/style/icons/analytics.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/style/icons/eyeFill.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/style/icons/eyeSlash.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/style/icons/folder.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/style/icons/notebook.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/style/index.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/style/index.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/style/tocDashboard.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/style/tocDashboardEditor.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/style/upload.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/tsconfig.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/tsconfig.test.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/ui-tests/README.md +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/ui-tests/jupyter_server_test_config.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/ui-tests/package.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/ui-tests/playwright.config.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/ui-tests/tests/jupyterlab_unianalytics_dashboard.spec.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/ui-tests/yarn.lock +0 -0
{jupyterlab_unianalytics_dashboard-4.0.9 → jupyterlab_unianalytics_dashboard-4.0.11}/CHANGELOG.md
RENAMED
|
@@ -2,13 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- <START NEW CHANGELOG ENTRY> -->
|
|
4
4
|
|
|
5
|
+
## 4.0.11
|
|
6
|
+
|
|
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.
|
|
9
|
+
|
|
10
|
+
<!-- <END NEW CHANGELOG ENTRY> -->
|
|
11
|
+
|
|
12
|
+
## 4.0.10
|
|
13
|
+
|
|
14
|
+
No merged PRs
|
|
15
|
+
|
|
5
16
|
## 4.0.9
|
|
6
17
|
|
|
7
18
|
- Adding new dropdown filters
|
|
8
19
|
- Notebook-specific persistence of filters
|
|
9
20
|
|
|
10
|
-
<!-- <END NEW CHANGELOG ENTRY> -->
|
|
11
|
-
|
|
12
21
|
## 4.0.8
|
|
13
22
|
|
|
14
23
|
No merged PRs
|
{jupyterlab_unianalytics_dashboard-4.0.9 → 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([[546],{1150:(n,o,e)=>{e.d(o,{Z:()=>d});var r=e(8081),t=e.n(r),a=e(3645),i=e.n(a)()(t());i.push([n.id,".cell-dashboard-button-container {\n position: absolute;\n left: 13px;\n bottom: -29px;\n width: var(--jp-cell-prompt-width);\n height: 34px;\n z-index: 9999;\n}\n\n.cell-dashboard-button {\n cursor: pointer;\n background-color: var(--jp-brand-color1);\n border-radius: 0 0 5px 5px;\n border: none;\n padding: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.cell-dashboard-button:hover {\n background-color: var(--jp-brand-color0);\n}\n\n.cell-dashboard-button:disabled {\n background-color: var(--jp-inverse-layout-color4);\n cursor: not-allowed;\n}\n\n.cell-dashboard-button svg {\n width: 20px;\n height: 20px;\n}\n\n.cell-dashboard-button [fill] {\n fill: white;\n}\n\n.dashboard-export-dialog-container {\n padding: 20px 0;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.dashboard-export-dialog-container p {\n font-size: var(--jp-ui-font-size2);\n font-weight: 400;\n padding-left: 8px;\n}\n\n.dashboard-export-dialog-calendar-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 15px;\n cursor: default;\n padding: 20px;\n}\n\n.dashboard-export-dialog-calendar {\n border: 1px solid var(--jp-brand-color1);\n border-radius: 3px;\n display: flex;\n flex-direction: column;\n padding: 20px;\n cursor: pointer;\n}\n\n.dashboard-calendar-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 14px 20px;\n}\n\ninput.dashboard-calendar-input {\n cursor: pointer;\n}\n\nbody[data-jp-theme-light='false'] input.dashboard-calendar-input {\n color-scheme: dark;\n}\n\n.dashboard-calendar-input-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 15px;\n}\n\n.dashboard-calendar-input-wrapper.disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.dashboard-calendar-input-wrapper.disabled input.dashboard-calendar-input {\n pointer-events: none;\n background-color: var(--jp-layout-color4);\n}\n\n.dashboard-calendar-button-container {\n display: flex;\n justify-content: space-between;\n padding: 20px 15px 5px;\n}\n",""]);const d=i},3630:(n,o,e)=>{e.d(o,{Z:()=>d});var r=e(8081),t=e.n(r),a=e(3645),i=e.n(a)()(t());i.push([n.id,".dashboard-panel {\n background-color: var(--jp-layout-color1);\n}\n\n.dashboard-react-widget {\n display: flex;\n height: 100%;\n min-width: 335px !important;\n}\n\n.page-container {\n display: flex;\n overflow-y: auto;\n scrollbar-gutter: stable;\n padding: 20px;\n flex-direction: column;\n flex: 1;\n}\n\n.chart-card {\n max-height: 400px;\n}\n\n.chart-card-title {\n text-align: center;\n padding-top: 15px;\n font-size: medium !important;\n}\n\n.chart-card-body {\n min-height: 240px;\n}\n\n.breadcrumb-container {\n margin-bottom: 16px;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n\n.breadcrumb-tile {\n padding: 2px 13px 2px 8px;\n border-radius: 0 60px 60px 0;\n cursor: pointer;\n color: var(--jp-inverse-layout-color1);\n font-weight: 500;\n font-size: 20px;\n background-color: var(--jp-border-color1);\n opacity: 0.5;\n}\n\n.breadcrumb-tile-active {\n opacity: 1;\n background-color: var(--jp-brand-color1);\n color: white;\n}\n\n.breadcrumb-buttons-container {\n margin-left: auto;\n position: relative;\n}\n\n.dashboard-title-container {\n display: flex;\n margin-bottom: 15px;\n justify-content: space-between;\n align-items: center;\n}\n\n.dashboard-title-text {\n white-space: nowrap; /* Prevent text from wrapping */\n overflow: hidden; /* Hide overflowing content */\n text-overflow: ellipsis;\n font-size: 18px;\n color: var(--jp-inverse-layout-color1);\n font-weight: 700;\n}\n\n.card {\n color: var(--jp-inverse-layout-color1) !important;\n background-color: var(--jp-layout-color2) !important;\n cursor: pointer;\n\n /* box-shadow: var(--jp-inverse-layout-color4) 0 0 5px 0; */\n}\n\n.cell-card {\n cursor: pointer;\n margin-bottom: 10px;\n margin-top: 10px;\n padding: 0;\n}\n\n.cell-card-wrapper {\n display: flex;\n align-items: center;\n}\n\n.cell-filter-container {\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n justify-content: space-between;\n color: var(--jp-inverse-layout-color1);\n}\n\n.cell-filter-container .form-control,\n.cell-filter-container .form-control:focus {\n border: solid 1px var(--jp-brand-color1);\n background-color: transparent;\n color: var(--jp-inverse-layout-color1);\n}\n\n.cell-filter-container .form-control::placeholder {\n color: var(--jp-inverse-layout-color3);\n}\n\n.cell-radio-container .btn-group .btn {\n display: flex;\n align-items: center;\n}\n\n.cell-radio-container .btn-outline-primary {\n border: solid 1px var(--jp-brand-color1);\n}\n\n.dashboard-dropdown-container {\n display: flex;\n margin-left: 10px;\n gap: 5px;\n}\n\n.custom-dropdown .dropdown-menu,\n.custom-dropdown .dropdown-item,\n.custom-dropdown .dropdown-header {\n background-color: var(--jp-layout-color2) !important;\n color: var(--jp-inverse-layout-color1) !important;\n}\n\n.custom-dropdown .dropdown-item:hover,\n.custom-dropdown .dropdown-item.highlighted {\n background-color: var(--jp-layout-color3) !important;\n}\n\n.custom-dropdown .dropdown-toggle::after {\n display: none !important;\n}\n\n.custom-dropdown .dropdown-menu {\n border-width: 2px;\n}\n\n.custom-dropdown button.btn,\n.custom-dropdown button.btn:hover {\n color: white;\n}\n\nbutton.dashboard-button {\n width: 32px;\n height: 32px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.cell-user-title {\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 13px;\n font-weight: 500;\n padding: 0 0 10px;\n}\n\n.cell-execution-displayed-time {\n display: flex;\n justify-content: end;\n font-size: 12px;\n font-weight: 400;\n padding-top: 12px;\n}\n\n.cell-content-container {\n max-height: 320px;\n overflow: auto;\n padding: 10px;\n background-color: var(--jp-layout-color0);\n border: solid 1px var(--bs-card-border-color);\n border-radius: 3px;\n cursor: pointer;\n}\n\n.cell-content-container:hover {\n cursor: text;\n}\n\n.dashboard-icon {\n width: 20px;\n height: auto;\n position: absolute;\n fill: white;\n}\n\n.dashboard-icon .jp-icon3 {\n fill: white;\n}\n\n.no-data-card {\n margin: 10px 0;\n text-align: center;\n padding: 30px 0;\n}\n\n.connectionid-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n padding: 6px 10px;\n border-radius: 2px;\n margin-bottom: 6px;\n font-size: 11px;\n color: white;\n cursor: pointer;\n}\n\n.connectionid-container:hover {\n background-color: #424242;\n}\n\n.text-with-ellipsis {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-right: 10px;\n}\n\n.send-icon {\n display: flex;\n justify-content: center;\n}\n\n.custom-dropdown-container {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 6px 0;\n}\n\n.group-dropdown-scroll {\n max-height: 215px;\n overflow-y: auto;\n}\n\n.group-dropdown-scroll.disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.custom-dropdown-item {\n padding: 8px 10px 4px 12px;\n}\n\n.custom-dropdown-item,\n.custom-dropdown-item * {\n cursor: pointer !important;\n}\n\n.custom-dropdown-item.disabled,\n.custom-dropdown-item.disabled * {\n cursor: not-allowed !important;\n}\n\n.custom-dropdown-item:hover:not(.disabled) {\n background-color: var(--jp-layout-color3) !important;\n}\n\n.custom-dropdown-item label {\n max-width: 190px;\n overflow-x: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n",""]);const d=i},7563:(n,o,e)=>{e.d(o,{Z:()=>d});var r=e(8081),t=e.n(r),a=e(3645),i=e.n(a)()(t());i.push([n.id,".dashboard-TableOfContents-content {\n flex: 1 1 auto;\n margin: 0;\n padding: 0;\n list-style-type: none;\n overflow: auto;\n background-color: var(--jp-layout-color1);\n}\n\n.dashboard-TableOfContents-content li {\n display: flex;\n flex-direction: row;\n padding: 4px 12px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: pointer;\n padding-top: 8px;\n padding-bottom: 8px;\n width: 100%;\n}\n\n.dashboard-TableOfContents {\n display: flex;\n flex-direction: column;\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n height: 100%;\n width: 100%;\n}\n\n.dashboard-TableOfContents .dashboard-stack-panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n text-transform: uppercase;\n border-bottom: var(--jp-border-width) solid var(--jp-border-color2);\n flex: 0 0 auto;\n font-size: var(--jp-ui-font-size0);\n font-weight: 600;\n letter-spacing: 1px;\n margin: 0;\n padding: 8px 12px;\n}\n\n.dashboard-toc-toolbar-icon,\n.dashboard-toc-toolbar-icon-selected {\n float: left;\n padding: 0;\n margin: 4px;\n display: flex;\n cursor: pointer;\n justify-content: center;\n align-items: center;\n background-repeat: no-repeat;\n background-color: transparent;\n background-size: 100%;\n background-position: center;\n height: 24px;\n width: 24px;\n border-radius: 2px;\n}\n\n[data-jp-theme-light='true'] .dashboard-toc-toolbar-icon:hover {\n background-color: var(--jp-input-background);\n}\n\n[data-jp-theme-light='false'] .dashboard-toc-toolbar-icon:hover {\n background-color: #3a3a3a;\n}\n\n[data-jp-theme-light='true'] .dashboard-toc-toolbar-icon-selected {\n background-color: var(--jp-layout-color2);\n}\n\n[data-jp-theme-light='false'] .dashboard-toc-toolbar-icon-selected {\n background-color: #565656;\n}\n\n.dashboard-toc-toolbar {\n position: relative;\n width: 100%;\n margin: 0;\n padding: 0 2px;\n user-select: none;\n border-bottom: var(--jp-border-width) solid var(--jp-border-color2);\n height: 36px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.dashboard-toc-toolbar-compartment {\n display: flex;\n}\n\n.dashboard-toc-entry-holder {\n flex-grow: 1;\n display: flex;\n flex-direction: row;\n padding: 2px 0;\n margin: 0;\n overflow: hidden;\n}\n\n.dashboard-toc-cell-item {\n padding-left: 10px;\n font-size: var(--jp-ui-font-size1);\n\n /* single line */\n white-space: nowrap;\n overflow: hidden;\n\n /* add ellipsis (...) if content overflows */\n text-overflow: ellipsis;\n}\n\n.dashboard-toc-Collapser-child {\n display: block;\n background: transparent;\n width: 100%;\n box-sizing: border-box;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.dashboard-toc-Collapser-child:hover {\n box-shadow: var(--jp-elevation-z2);\n background: var(--jp-brand-color1);\n opacity: var(--jp-cell-collapser-not-active-hover-opacity);\n}\n\n.dashboard-toc-active-cell .dashboard-toc-Collapser-child {\n background: var(--jp-brand-color1);\n}\n\n.dashboard-toc-entry-holder:hover .dashboard-toc-Collapser-child {\n box-shadow: var(--jp-elevation-z2);\n background: var(--jp-brand-color1);\n opacity: var(--jp-cell-collapser-not-active-hover-opacity);\n}\n\n.dashboard-toc-active-cell .dashboard-toc-Collapser-child:hover {\n background: var(--jp-brand-color0);\n opacity: 1;\n}\n\n.dashboard-toc-active-cell:hover .dashboard-toc-Collapser-child {\n background: var(--jp-brand-color0);\n opacity: 1;\n}\n\n.dashboard-TableOfContents-content code {\n font-size: inherit;\n}\n\n.dashboard-toc-Ellipses {\n height: 16px;\n margin-left: auto;\n}\n\n.dashboard-toc-Ellipses:hover {\n border: 1px solid var(--jp-border-color1);\n box-shadow: 0 0 2px 0 rgba(0 0 0 / 25%);\n background-color: var(--jp-layout-color0);\n}\n\n.dashboard-toc-level-size-2 {\n margin-left: 16px;\n}\n\n.dashboard-toc-level-size-3 {\n margin-left: 36px;\n}\n\n.dashboard-toc-level-size-4 {\n margin-left: 56px;\n}\n\n.dashboard-toc-level-size-5 {\n margin-left: 76px;\n}\n\n.dashboard-TableOfContents-placeholder {\n text-align: center;\n}\n\n.dashboard-TableOfContents-placeholderContent {\n color: var(--jp-content-font-color2);\n padding: 25px 30px 8px;\n}\n\n.dashboard-toc-react-component {\n display: flex;\n align-items: center;\n border-radius: 2px;\n padding: 2px;\n min-width: 52px;\n margin-left: 5px;\n font-size: small;\n text-align: center;\n word-wrap: break-word;\n}\n\n.dashboard-toc-react-text {\n width: 100%;\n color: var(--jp-inverse-layout-color0);\n}\n\n.dashboard-toc-header-title {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin-right: 5px;\n}\n\n.dashboard-toc-download-button {\n cursor: pointer;\n padding: 3px 6px;\n border-radius: 2px;\n display: flex;\n align-items: center;\n color: white;\n background-color: var(--jp-brand-color1);\n}\n\n.dashboard-toc-download-button:hover {\n background-color: var(--jp-brand-color0);\n}\n\n.dashboard-toc-download-button-disabled {\n cursor: wait;\n padding: 3px 6px;\n border-radius: 2px;\n display: flex;\n align-items: center;\n color: white;\n background-color: #575b5b;\n}\n\n.dashboard-toc-download-icon {\n margin-right: 4px;\n}\n\n.dashboard-toc-download-icon .jp-icon3 {\n fill: white;\n}\n",""]);const d=i},3612:(n,o,e)=>{e.d(o,{Z:()=>d});var r=e(8081),t=e.n(r),a=e(3645),i=e.n(a)()(t());i.push([n.id,".dashboard-toc-code-cell-div {\n display: inline-flex;\n overflow: hidden;\n flex-grow: 1;\n}\n\n.dashboard-toc-code-span {\n width: 100%;\n overflow: hidden;\n cursor: pointer;\n background: var(--jp-layout-color0);\n border: var(--jp-border-width) solid var(--jp-layout-color3);\n max-height: 38px;\n min-height: 24px;\n}\n\n/* target all children of dashboard-toc-cell-input and change the font-size */\n.dashboard-toc-cell-input * {\n font-size: 9px;\n overflow: hidden;\n}\n\n.dashboard-toc-code-cell-prompt {\n flex: 0 0 27px;\n color: var(--jp-cell-prompt-not-active-font-color);\n opacity: var(--jp-cell-prompt-not-active-opacity);\n font-family: var(--jp-cell-prompt-font-family);\n padding: var(--jp-code-padding);\n padding-right: 0;\n padding-left: 0;\n letter-spacing: var(--jp-cell-prompt-letter-spacing);\n line-height: var(--jp-code-line-height);\n font-size: 8px;\n border: var(--jp-border-width) solid transparent;\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n",""]);const d=i},939:(n,o,e)=>{e.d(o,{Z:()=>d});var r=e(8081),t=e.n(r),a=e(3645),i=e.n(a)()(t());i.push([n.id,".unianalytics-link-container {\n border: 1px solid var(--jp-inverse-layout-color4);\n border-radius: 5px;\n display: flex;\n align-items: center;\n margin: 0;\n padding: 0;\n}\n\n.unianalytics-link {\n padding: 5px 15px;\n flex: 1;\n max-width: 90%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.unianalytics-link-button-container {\n padding: 5px;\n border-left: 1px solid var(--jp-inverse-layout-color4);\n display: flex;\n align-items: center;\n margin-left: auto;\n}\n\n.unianalytics-link-button {\n border: none;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n",""]);const d=i},3645:n=>{n.exports=function(n){var o=[];return o.toString=function(){return this.map((function(o){var e="",r=void 0!==o[5];return o[4]&&(e+="@supports (".concat(o[4],") {")),o[2]&&(e+="@media ".concat(o[2]," {")),r&&(e+="@layer".concat(o[5].length>0?" ".concat(o[5]):""," {")),e+=n(o),r&&(e+="}"),o[2]&&(e+="}"),o[4]&&(e+="}"),e})).join("")},o.i=function(n,e,r,t,a){"string"==typeof n&&(n=[[null,n,void 0]]);var i={};if(r)for(var d=0;d<this.length;d++){var l=this[d][0];null!=l&&(i[l]=!0)}for(var c=0;c<n.length;c++){var p=[].concat(n[c]);r&&i[p[0]]||(void 0!==a&&(void 0===p[5]||(p[1]="@layer".concat(p[5].length>0?" ".concat(p[5]):""," {").concat(p[1],"}")),p[5]=a),e&&(p[2]?(p[1]="@media ".concat(p[2]," {").concat(p[1],"}"),p[2]=e):p[2]=e),t&&(p[4]?(p[1]="@supports (".concat(p[4],") {").concat(p[1],"}"),p[4]=t):p[4]="".concat(t)),o.push(p))}},o}},8081:n=>{n.exports=function(n){return n[1]}},3379:n=>{var o=[];function e(n){for(var e=-1,r=0;r<o.length;r++)if(o[r].identifier===n){e=r;break}return e}function r(n,r){for(var a={},i=[],d=0;d<n.length;d++){var l=n[d],c=r.base?l[0]+r.base:l[0],p=a[c]||0,s="".concat(c," ").concat(p);a[c]=p+1;var u=e(s),b={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==u)o[u].references++,o[u].updater(b);else{var h=t(b,r);r.byIndex=d,o.splice(d,0,{identifier:s,updater:h,references:1})}i.push(s)}return i}function t(n,o){var e=o.domAPI(o);return e.update(n),function(o){if(o){if(o.css===n.css&&o.media===n.media&&o.sourceMap===n.sourceMap&&o.supports===n.supports&&o.layer===n.layer)return;e.update(n=o)}else e.remove()}}n.exports=function(n,t){var a=r(n=n||[],t=t||{});return function(n){n=n||[];for(var i=0;i<a.length;i++){var d=e(a[i]);o[d].references--}for(var l=r(n,t),c=0;c<a.length;c++){var p=e(a[c]);0===o[p].references&&(o[p].updater(),o.splice(p,1))}a=l}}},569:n=>{var o={};n.exports=function(n,e){var r=function(n){if(void 0===o[n]){var e=document.querySelector(n);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(n){e=null}o[n]=e}return o[n]}(n);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(e)}},9216:n=>{n.exports=function(n){var o=document.createElement("style");return n.setAttributes(o,n.attributes),n.insert(o,n.options),o}},3565:(n,o,e)=>{n.exports=function(n){var o=e.nc;o&&n.setAttribute("nonce",o)}},7795:n=>{n.exports=function(n){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var o=n.insertStyleElement(n);return{update:function(e){!function(n,o,e){var r="";e.supports&&(r+="@supports (".concat(e.supports,") {")),e.media&&(r+="@media ".concat(e.media," {"));var t=void 0!==e.layer;t&&(r+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),r+=e.css,t&&(r+="}"),e.media&&(r+="}"),e.supports&&(r+="}");var a=e.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),o.styleTagTransform(r,n,o.options)}(o,n,e)},remove:function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(o)}}}},4589:n=>{n.exports=function(n,o){if(o.styleSheet)o.styleSheet.cssText=n;else{for(;o.firstChild;)o.removeChild(o.firstChild);o.appendChild(document.createTextNode(n))}}},5546:(n,o,e)=>{e.r(o);var r=e(3379),t=e.n(r),a=e(7795),i=e.n(a),d=e(569),l=e.n(d),c=e(3565),p=e.n(c),s=e(9216),u=e.n(s),b=e(4589),h=e.n(b),f=e(1150),x={};x.styleTagTransform=h(),x.setAttributes=p(),x.insert=l().bind(null,"head"),x.domAPI=i(),x.insertStyleElement=u(),t()(f.Z,x),f.Z&&f.Z.locals&&f.Z.locals;var g=e(939),m={};m.styleTagTransform=h(),m.setAttributes=p(),m.insert=l().bind(null,"head"),m.domAPI=i(),m.insertStyleElement=u(),t()(g.Z,m),g.Z&&g.Z.locals&&g.Z.locals;var v=e(3630),w={};w.styleTagTransform=h(),w.setAttributes=p(),w.insert=l().bind(null,"head"),w.domAPI=i(),w.insertStyleElement=u(),t()(v.Z,w),v.Z&&v.Z.locals&&v.Z.locals;var y=e(7563),j={};j.styleTagTransform=h(),j.setAttributes=p(),j.insert=l().bind(null,"head"),j.domAPI=i(),j.insertStyleElement=u(),t()(y.Z,j),y.Z&&y.Z.locals&&y.Z.locals;var k=e(3612),z={};z.styleTagTransform=h(),z.setAttributes=p(),z.insert=l().bind(null,"head"),z.domAPI=i(),z.insertStyleElement=u(),t()(k.Z,z),k.Z&&k.Z.locals&&k.Z.locals}}]);
|
|
@@ -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})();
|