jupyterlab-unianalytics-dashboard 4.0.14__tar.gz → 4.0.15__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.14 → jupyterlab_unianalytics_dashboard-4.0.15}/CHANGELOG.md +6 -2
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/PKG-INFO +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/_version.py +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/package.json +2 -2
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/schemas/jupyterlab_unianalytics_dashboard/package.json.orig +1 -1
- jupyterlab_unianalytics_dashboard-4.0.15/jupyterlab_unianalytics_dashboard/labextension/static/134.891c0a67e79b38a86741.js +1 -0
- jupyterlab_unianalytics_dashboard-4.0.14/jupyterlab_unianalytics_dashboard/labextension/static/remoteEntry.75c0aa8e5786ce6af7e3.js → jupyterlab_unianalytics_dashboard-4.0.15/jupyterlab_unianalytics_dashboard/labextension/static/remoteEntry.afbd2aedcbdfb9170b03.js +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/package.json +1 -1
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/pages/Cell.tsx +26 -9
- jupyterlab_unianalytics_dashboard-4.0.14/jupyterlab_unianalytics_dashboard/labextension/static/134.d6c21ace205b33ffc1d7.js +0 -1
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/.copier-answers.yml +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/.gitignore +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/.prettierignore +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/.yarnrc.yml +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/LICENSE +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/README.md +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/RELEASE.md +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/babel.config.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/conftest.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/install.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jest.config.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/junit.xml +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyter-config/server-config/jupyterlab_unianalytics_dashboard.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/__init__.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/handlers.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/schemas/jupyterlab_unianalytics_dashboard/endpoint.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/schemas/jupyterlab_unianalytics_dashboard/plugin.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/10.1e5c908a94fc4b83c2e5.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/18.759fbf2374edc42b5c3e.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/18.759fbf2374edc42b5c3e.js.LICENSE.txt +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/308.d9da4ce35f354c6f12e1.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/39.5a3b28a79ba693a9b627.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/426.a7015f9dfda310972c1b.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/533.f7a454b11ba5cd79dc0c.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/546.eda1114f14e7cdfffdc3.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/563.b613f734176cb51510ef.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/638.d37271636c4d956096de.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/708.323c3614d31a5918cfaf.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/708.323c3614d31a5918cfaf.js.LICENSE.txt +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/738.f4338fb8d8276b96c3f3.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/744.329dc4d1ed2f5c918266.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/798.33a8f0893a66574e9259.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/817.6437962faf359015be36.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/981.ebb9e1d6122980b5ff0e.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/981.ebb9e1d6122980b5ff0e.js.LICENSE.txt +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/style.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/labextension/static/third-party-licenses.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/tests/__init__.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jupyterlab_unianalytics_dashboard/tests/test_handlers.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/pyproject.toml +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/schema/endpoint.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/schema/plugin.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/setup.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/__tests__/jupyterlab_unianalytics_dashboard.spec.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/chat-dashboard/ChatContainer.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/chat-dashboard/ConnectionComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/dashboard-widgets/ChatDashboardPanel.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/dashboard-widgets/DashboardPanel.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/dashboard-widgets/PanelManager.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/dashboard-widgets/PlaybackWidget.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/dashboard-widgets/TocDashboardPanel.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/dashboard-widgets/VisuDashboardPanel.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/dashboard-widgets/WebsocketManager.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/handler.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/icons/index.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/icons/react-app-env.d.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/index.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/playback/PlaybackComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/plugins/dashboards.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/plugins/uploadNotebook.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/redux/reducers/CommonDashboardReducer.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/redux/reducers/SideDashboardReducer.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/redux/reducers/ToCDashboardReducer.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/redux/store.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/redux/types.d.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/PageRouter.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/buttons/GroupDropDown.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/buttons/SortDropDown.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/buttons/TimeDropDown.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/cell/CellInput.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/cell/CellOutput.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/cell/ExecutionComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/cell/MarkdownComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/layout/GridSystem.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/layout/TopBreadcrumb.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/notebook/CellDurationComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/notebook/ChartContainer.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/notebook/CodeExecComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/placeholder/Loader.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/placeholder/NoData.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/components/placeholder/SidebarPlaceholder.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/side-dashboard/pages/Notebook.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/toc-dashboard/ExportCSVButton.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/toc-dashboard/TocReactComponent.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/toc-dashboard/generator/index.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/toc-dashboard/generator/options_manager.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/toc-dashboard/generator/render.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/toc-dashboard/generator/toolbar_generator.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/toc-dashboard/generator/utils.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/toc-dashboard/tocDashboardItem.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/toc-dashboard/tocDashboardTree.tsx +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/utils/chartOptions.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/utils/compatibility.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/utils/constants.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/utils/headings.d.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/utils/interactionRecorder.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/utils/interfaces.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/utils/utils.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/widget-extensions/CellButton.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/widget-extensions/PlaybackButton.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/widget-extensions/index.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/base.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/icons/analytics.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/icons/analyticsGen.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/icons/analyticsReplayGen.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/icons/eyeFill.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/icons/eyeSlash.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/icons/folder.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/icons/notebook.svg +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/index.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/index.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/reactVisu.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/tocDashboard.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/tocDashboardEditor.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/upload.css +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/tsconfig.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/tsconfig.test.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/ui-tests/README.md +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/ui-tests/jupyter_server_test_config.py +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/ui-tests/package.json +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/ui-tests/playwright.config.js +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/ui-tests/tests/jupyterlab_unianalytics_dashboard.spec.ts +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/ui-tests/yarn.lock +0 -0
- {jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/yarn.lock +0 -0
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/CHANGELOG.md
RENAMED
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- <START NEW CHANGELOG ENTRY> -->
|
|
4
4
|
|
|
5
|
-
## 4.0.
|
|
5
|
+
## 4.0.15
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
No merged PRs
|
|
8
8
|
|
|
9
9
|
<!-- <END NEW CHANGELOG ENTRY> -->
|
|
10
10
|
|
|
11
|
+
## 4.0.14
|
|
12
|
+
|
|
13
|
+
Widget.attach JupyterLab 3 compatibility fix
|
|
14
|
+
|
|
11
15
|
## 4.0.13
|
|
12
16
|
|
|
13
17
|
- Removing salt hashing in server extension
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/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.15
|
|
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.15",
|
|
4
4
|
"description": "A JupyterLab dashboard extension to visualize data from students.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyter",
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
"outputDir": "jupyterlab_unianalytics_dashboard/labextension",
|
|
126
126
|
"schemaDir": "schema",
|
|
127
127
|
"_build": {
|
|
128
|
-
"load": "static/remoteEntry.
|
|
128
|
+
"load": "static/remoteEntry.afbd2aedcbdfb9170b03.js",
|
|
129
129
|
"extension": "./extension",
|
|
130
130
|
"style": "./style"
|
|
131
131
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkjupyterlab_unianalytics_dashboard=self.webpackChunkjupyterlab_unianalytics_dashboard||[]).push([[134],{8708:(e,t,n)=>{n.r(t),n.d(t,{BACKEND_API_URL:()=>Ut,CURRENT_NOTEBOOK_ID:()=>Ht,PERSISTENT_USER_ID:()=>Pt,WEBSOCKET_API_URL:()=>zt,default:()=>Wt,setCurrentNotebookId:()=>jt});var o=n(3039),a=n(3779),s=n(4925),l=n(8386);n(4039);const r="jupyterlab_unianalytics_dashboard",i=`${r}:plugin`,c=`${r}_access_token`,d=`${r}_refresh_token`,h="unianalytics-page-container";var u;!function(e){e.dashboardOpenDashboardPlayback=`${r}:dashboard-open-playback`,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,b;!function(e){e.notebookId=`${p}_notebook_id`,e.cellMapping=`${p}_cell_mapping`}(g||(g={}));class C{static async setJupyterVersion(e){C._jupyterVersion=e,await C._setEditorLanguageRegistry(),await C._asyncImports()}static async _setEditorLanguageRegistry(){if(4===C._jupyterVersion){const{StreamLanguage:e}=await n.e(373).then(n.t.bind(n,1373,23)),{EditorLanguageRegistry:t,parseMathIPython:o}=await Promise.resolve().then(n.t.bind(n,8531,23)),a=new t;t.getDefaultLanguages().forEach((e=>{a.addLanguage(e)})),a.addLanguage({name:"ipythongfm",mime:"text/x-ipythongfm",load:async()=>{const[t,s]=await Promise.all([Promise.all([n.e(638),n.e(211),n.e(373),n.e(376)]).then(n.bind(n,8638)),n.e(10).then(n.bind(n,8010))]);return t.markdown({base:t.markdownLanguage,codeLanguages:e=>a.findBest(e),extensions:[o(e.define(s.stexMath).parser)]})}}),C._editorDefaultLanguages=a}}static async _asyncImports(){if(4===C._jupyterVersion){const{EditorView:e}=await n.e(211).then(n.t.bind(n,6211,23));this._EditorView=e;const{jupyterTheme:t}=await Promise.resolve().then(n.t.bind(n,8531,23));this._jupyterTheme=t}}static checkJupyterVersionSet(){if(null===C._jupyterVersion)throw new Error("JupyterLab version is not set in CompatibilityManager before trying to access it.")}static observeEditorVisibility(e){return 3===C._jupyterVersion?new IntersectionObserver((t=>{t[0].isIntersecting&&e.refresh()}),{root:null,threshold:.5}):null}}b=C,C._jupyterVersion=null,C._editorDefaultLanguages=void 0,C._EditorView=void 0,C._jupyterTheme=void 0,C.getMetadataComp=(e,t)=>{var n;return C.checkJupyterVersionSet(),4===C._jupyterVersion?null==e?void 0:e.getMetadata(t):null===(n=null==e?void 0:e.metadata)||void 0===n?void 0:n.get(t)},C.setMetadataComp=(e,t,n)=>{var o;C.checkJupyterVersionSet(),4===C._jupyterVersion?null==e||e.setMetadata(t,n):null===(o=null==e?void 0:e.metadata)||void 0===o||o.set(t,n)},C.deleteMetadataComp=(e,t)=>{var n;return C.checkJupyterVersionSet(),4===C._jupyterVersion?null==e?void 0:e.deleteMetadata(t):null===(n=null==e?void 0:e.metadata)||void 0===n?void 0:n.delete(t)},C.getFileComp=e=>{var t;C.checkJupyterVersionSet();const n=null===(t=e.tracker.currentWidget)||void 0===t?void 0:t.selectedItems().next();return 4===C._jupyterVersion?null==n?void 0:n.value:n},C.getCellsArrComp=e=>(C.checkJupyterVersionSet(),e?Array.from({length:e.length},((t,n)=>e.get(n))):null),C.getCodeMirrorOptionsComp=()=>(C.checkJupyterVersionSet(),4===C._jupyterVersion?{extensions:[b._jupyterTheme,b._EditorView.lineWrapping,b._EditorView.editable.of(!1)],languages:C._editorDefaultLanguages}:{config:{readOnly:!0}}),C.getNextWidgetValueComp=e=>{var t;return C.checkJupyterVersionSet(),4===C._jupyterVersion?null===(t=e.next())||void 0===t?void 0:t.value:e.next()};const v=(e,t)=>{var n,o;return`displayRealTime=${null===(n=e.displayRealTime[t])||void 0===n||n}`+(e.t1ISOString[t]?"&t1="+e.t1ISOString[t]:"")+(e.t2ISOString[t]?"&t2="+e.t2ISOString[t]:"")+(e.sortBy[t]?"&sortBy="+e.sortBy[t]:"")+((null===(o=e.selectedGroups[t])||void 0===o?void 0:o.length)>0?"&selectedGroups="+encodeURIComponent(JSON.stringify(e.selectedGroups[t])):"")},w=async(e,t)=>{const n=await k(e,t);if(401===n.status){const o=await n.json();if("expired_token"===(null==o?void 0:o.status)){if(await _())return k(e,t);console.log(`${r}: Token refresh failed.`)}}return n},k=async(e,t)=>{const n={headers:{Authorization:`Bearer ${sessionStorage.getItem(c)}`}},o={...n,...t,headers:{...n.headers,...(null==t?void 0:t.headers)||{}}};return fetch(e,o)},_=async()=>{const e=await fetch(`${Ut}/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&&C.getMetadataComp(e.context.model,g.notebookId)&&C.getMetadataComp(e.context.model,g.cellMapping)),f=(e,t)=>!(!e||!t)&&e.length===t.length&&e.every(((e,n)=>e===t[n])),E=e=>e.toLocaleString("sv-SE").slice(0,-3),S=e=>`${e.getDate().toString().padStart(2,"0")}/${(e.getMonth()+1).toString().padStart(2,"0")} ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}`;var x=n(6029),N=n.n(x),I=n(3764),D=n(8690);const M=e=>{const[t,n]=(0,x.useState)(!1);return N().createElement("div",null,N().createElement("p",null,"Successfully uploaded, can be downloaded accessing:"),N().createElement("div",{className:"unianalytics-link-container"},N().createElement("div",{className:"unianalytics-link"},e.url),N().createElement("div",{className:"unianalytics-link-button-container"},N().createElement("button",{className:"unianalytics-link-button",onClick:()=>{navigator.clipboard.writeText(e.url).then((()=>{n(!0)})).catch((e=>{console.error(`${r}: Error copying to clipboard: `,e)}))}},t?N().createElement(I.checkIcon.react,null):N().createElement(I.copyIcon.react,null)))))};const O=new I.LabIcon({name:`${r}:visu-icon`,svgstr:'<svg xmlns="http://www.w3.org/2000/svg" width="801px" height="845px" viewBox="0 0 801 845">\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM387.000000,138.000000 \n\tC498.142059,138.000015 608.784363,138.106552 719.425842,137.852219 \n\tC731.901794,137.823547 741.405090,147.216324 741.147522,159.494492 \n\tC740.644409,183.478592 741.009399,207.480728 740.995667,231.475388 \n\tC740.988647,243.724152 732.716797,251.995575 720.458984,251.995956 \n\tC547.497437,252.001495 374.535889,252.001434 201.574356,251.996124 \n\tC189.289490,251.995743 181.011719,243.747238 181.004547,231.508698 \n\tC180.990280,207.180771 180.990768,182.852859 181.004318,158.524933 \n\tC181.011139,146.276291 189.283295,138.005981 201.540726,138.004242 \n\tC263.193817,137.995529 324.846924,138.000107 387.000000,138.000000 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM585.000000,602.000000 \n\tC584.999939,619.325134 584.662598,636.159729 585.135315,652.971619 \n\tC585.389893,662.026428 574.929565,672.140991 566.068176,672.127258 \n\tC443.961212,671.938232 321.853912,672.004211 199.746674,671.990967 \n\tC189.901947,671.989868 181.021255,663.118469 181.010071,653.290161 \n\tC180.981430,628.135742 181.228653,602.978149 180.877518,577.828613 \n\tC180.753326,568.934387 190.961166,558.888672 199.629715,558.899292 \n\tC321.570190,559.048645 443.510895,558.993164 565.451538,559.013611 \n\tC576.357910,559.015442 584.922241,567.620361 584.989990,578.511169 \n\tC585.037720,586.173828 584.999756,593.837036 585.000000,602.000000 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM88.108398,89.952209 \n\tC98.405724,110.302505 108.714127,130.647202 118.993515,151.006561 \n\tC122.027649,157.015930 124.979767,163.066742 128.341644,169.849442 \n\tC118.648453,169.849442 109.747803,169.849442 100.429153,169.849442 \n\tC100.429153,362.281067 100.429153,554.170410 100.429153,746.530701 \n\tC277.650726,746.530701 454.991821,746.530701 632.848511,746.530701 \n\tC632.848511,737.834412 632.848511,729.237061 632.848511,719.024597 \n\tC661.517517,733.293213 689.138123,747.040100 718.055725,761.432434 \n\tC689.538452,775.702026 661.900940,789.531433 633.221680,803.882141 \n\tC633.221680,794.086548 633.221680,785.407837 633.221680,775.998657 \n\tC630.080139,775.998657 627.647522,775.998657 625.214905,775.998657 \n\tC446.394989,775.998535 267.575104,775.987793 88.755196,776.036011 \n\tC81.436424,776.037964 75.688042,773.737122 72.946358,766.585999 \n\tC72.095207,764.365967 72.036018,761.746521 72.035538,759.309814 \n\tC71.996758,565.657715 71.999886,372.005585 71.999870,178.353455 \n\tC71.999870,175.868805 71.999863,173.384155 71.999863,169.951614 \n\tC63.762573,169.951614 55.847210,169.951614 47.537605,169.537201 \n\tC47.694538,167.563828 48.088642,165.926636 48.820351,164.457596 \n\tC60.280804,141.448654 71.741646,118.439545 83.350739,95.505569 \n\tC84.420113,93.392990 86.498528,91.791183 88.108398,89.952209 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM401.000000,462.000000 \n\tC334.043701,462.000031 267.586212,461.806152 201.132416,462.212341 \n\tC191.340515,462.272186 180.483932,451.985443 180.776566,441.675262 \n\tC181.470917,417.211090 181.309845,392.707855 180.840012,368.233002 \n\tC180.664536,359.091675 191.110733,348.815643 200.221436,348.846802 \n\tC278.335815,349.114105 356.451508,348.995880 434.566803,349.004578 \n\tC446.758179,349.005951 454.990509,357.324249 454.996460,369.619904 \n\tC455.008209,393.937256 454.656525,418.261902 455.175049,442.568207 \n\tC455.372375,451.815918 444.949646,462.702484 435.468567,462.153870 \n\tC424.180542,461.500610 412.825836,462.000000 401.000000,462.000000 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM88.048347,89.607422 \n\tC86.498528,91.791183 84.420113,93.392990 83.350739,95.505569 \n\tC71.741646,118.439545 60.280804,141.448654 48.820351,164.457596 \n\tC48.088642,165.926636 47.694538,167.563828 47.072289,169.478149 \n\tC46.205418,169.833496 45.409630,169.833496 43.604004,169.833496 \n\tC57.749477,141.531204 71.589005,113.841034 85.790382,85.426895 \n\tC86.780373,87.154594 87.384331,88.208618 88.048347,89.607422 \nz"/>\n</svg>'}),T=new I.LabIcon({name:`${r}:analytics-replay-icon`,svgstr:'<svg xmlns="http://www.w3.org/2000/svg" width="801px" height="845px" viewBox="0 0 801 845">\n<path xmlns="http://www.w3.org/2000/svg" class="jp-custom-icon jp-icon3 jp-icon-selectable" fill="#616161" \n\td="\nM465.000000,137.000000 \n\tC550.147888,137.000031 634.796204,137.135956 719.443115,136.850784 \n\tC731.874146,136.808899 741.408020,146.187546 741.148132,158.511917 \n\tC740.642395,182.495926 741.009705,206.498123 740.995605,230.492798 \n\tC740.988403,242.737381 732.714661,250.995651 720.441528,250.996048 \n\tC547.479980,251.001465 374.518402,251.001480 201.556839,250.996048 \n\tC189.284561,250.995667 181.011414,242.736694 181.004410,230.491180 \n\tC180.990524,206.163254 180.990494,181.835327 181.004410,157.507401 \n\tC181.011429,145.262772 189.285263,137.005096 201.558258,137.004089 \n\tC289.205505,136.996857 376.852753,137.000092 465.000000,137.000000 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" class="jp-custom-icon jp-icon3 jp-icon-selectable" fill="#616161" \n\td="\nM635.148926,720.089355 \n\tC662.544739,733.712830 689.585266,747.259888 717.960327,761.475464 \n\tC689.524719,775.703430 661.804504,789.573425 633.158691,803.906555 \n\tC633.158691,794.057861 633.158691,785.472473 633.158691,775.998657 \n\tC630.247986,775.998657 627.834717,775.998657 625.421509,775.998657 \n\tC446.590027,775.998535 267.758545,775.986877 88.927094,776.039978 \n\tC81.632454,776.042114 75.823845,773.875000 73.007057,766.744446 \n\tC72.134315,764.535095 72.038582,761.913086 72.038055,759.479919 \n\tC71.996544,565.648621 71.999878,371.817291 71.999847,177.985962 \n\tC71.999840,175.530502 71.999847,173.075027 71.999847,170.132675 \n\tC62.473114,170.132675 53.538857,170.132675 43.464531,170.132675 \n\tC57.739803,141.563171 71.583488,113.857414 85.991348,85.022568 \n\tC100.325996,113.683899 114.169044,141.362305 128.404572,169.825470 \n\tC118.663963,169.825470 109.765915,169.825470 100.439240,169.825470 \n\tC100.439240,362.269653 100.439240,554.167786 100.439240,746.533813 \n\tC277.665100,746.533813 455.014313,746.533813 633.001404,746.533813 \n\tC633.001404,738.783020 632.924316,731.166138 633.081543,723.554016 \n\tC633.106140,722.362305 634.196167,721.192627 635.148926,720.089355 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" class="jp-custom-icon jp-icon3 jp-icon-selectable" fill="#616161" \n\td="\nM463.795166,663.684082 \n\tC458.944733,669.057251 453.354919,671.110291 446.353668,671.097351 \n\tC364.544098,670.945618 282.733490,670.850952 200.925110,671.198853 \n\tC191.268799,671.239868 180.533325,660.920715 180.790894,650.957153 \n\tC181.427948,626.314026 181.262314,601.639160 180.862076,576.986084 \n\tC180.716492,568.018616 191.031570,557.844238 199.978745,557.868408 \n\tC282.621094,558.091919 365.264313,557.994446 447.907257,558.007080 \n\tC459.506805,558.008850 467.978638,566.433594 467.991608,577.972778 \n\tC468.018402,601.799255 467.876343,625.626953 468.096619,649.451355 \n\tC468.145020,654.685852 466.992889,659.222717 463.795166,663.684082 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" class="jp-custom-icon jp-icon3 jp-icon-selectable" fill="#616161" \n\td="\nM557.000000,367.000000 \n\tC556.999878,427.464691 556.982544,487.429382 557.045776,547.393982 \n\tC557.049255,550.719543 557.078552,554.505432 553.650879,555.378540 \n\tC550.837891,556.095093 546.851746,555.555786 544.433716,553.972473 \n\tC506.113861,528.881958 467.962555,503.533997 429.774536,478.242218 \n\tC415.618622,468.866821 401.455353,459.502563 387.319794,450.096619 \n\tC381.033081,445.913391 380.988831,440.087341 387.222076,435.936890 \n\tC426.457855,409.811432 465.689392,383.679504 504.966309,357.616028 \n\tC518.141479,348.873199 531.337463,340.149567 544.790222,331.848694 \n\tC547.199219,330.362274 551.254211,330.038330 553.899048,330.988129 \n\tC555.559692,331.584442 556.774353,335.530975 556.863098,338.021729 \n\tC557.200989,347.504089 556.999756,357.005615 557.000000,367.000000 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" class="jp-custom-icon jp-icon3 jp-icon-selectable" fill="#616161" \n\td="\nM662.999878,373.002136 \n\tC684.378784,358.950073 705.376892,344.957733 726.473572,331.115723 \n\tC731.136841,328.056000 738.202637,330.252441 738.172729,337.496490 \n\tC737.882996,407.806915 738.031677,478.119171 737.858948,548.430359 \n\tC737.853027,550.836487 736.303223,554.662598 734.552917,555.299866 \n\tC732.057861,556.208313 728.103699,555.703186 725.818054,554.206116 \n\tC687.347046,529.008789 649.040222,503.560883 610.693237,478.174072 \n\tC596.525146,468.794342 582.332336,459.451782 568.181335,450.046326 \n\tC561.987366,445.929535 562.066284,440.056030 568.361389,435.876099 \n\tC598.986938,415.540466 629.630798,395.232300 660.262817,374.906281 \n\tC661.091248,374.356567 661.858765,373.714844 662.999878,373.002136 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" class="jp-custom-icon jp-icon3 jp-icon-selectable" fill="#616161" \n\td="\nM345.865936,362.817200 \n\tC345.963379,389.902039 346.020630,416.563477 345.975037,443.224792 \n\tC345.960510,451.719543 336.809052,460.960968 328.346283,460.971985 \n\tC285.187714,461.028076 242.029007,461.022461 198.870422,460.978516 \n\tC190.134705,460.969635 181.033173,451.740753 181.017441,442.941589 \n\tC180.971573,417.279785 180.967712,391.617798 181.019791,365.955994 \n\tC181.037552,357.196228 190.207504,348.027222 198.972824,348.019165 \n\tC241.964783,347.979645 284.956940,347.947144 327.948639,348.056610 \n\tC334.781342,348.074005 339.684326,351.915222 343.185669,357.593597 \n\tC344.139221,359.140137 344.923798,360.790863 345.865936,362.817200 \nz"/>\n</svg>'}),R=new I.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>'}),A=new I.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 L=n(3748);const B={displayDashboard:!0,hasNotebookId:!1},$=(0,L.createSlice)({name:"tocdashboard",initialState:B,reducers:{setDisplayHideDashboard:(e,t)=>{e.displayDashboard=t.payload},setHasNotebookId:(e,t)=>{e.hasNotebookId=t.payload}}}),{setDisplayHideDashboard:H,setHasNotebookId:j}=$.actions,P=$.reducer,F={navigationState:[{pageName:"Notebook"}]},U=(0,L.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:z,navigateToCell:V,navigateToHistory:W,resetNavigationState:G}=U.actions,Q=U.reducer,J=(0,L.createSlice)({name:"commondashboard",initialState:{notebookCells:null,refreshBoolean:!1,dashboardQueryArgs:{displayRealTime:{},t1ISOString:{},t2ISOString:{},selectedGroups:{},sortBy:{}}},reducers:{setDashboardQueryArgsT1:(e,t)=>{const{notebookId:n,t1ISOString:o}=t.payload;e.dashboardQueryArgs.t1ISOString[n]=o},setDashboardQueryArgsT2:(e,t)=>{const{notebookId:n,t2ISOString:o}=t.payload;e.dashboardQueryArgs.t2ISOString[n]=o},setDashboardQueryArgsSelectedGroups:(e,t)=>{const{notebookId:n,groups:o}=t.payload,a=e.dashboardQueryArgs.selectedGroups[n]||[];if(!f(a,o))return{...e,dashboardQueryArgs:{...e.dashboardQueryArgs,selectedGroups:{...e.dashboardQueryArgs.selectedGroups,[n]:o}}}},setDashboardQueryArgsDisplayRealTime:(e,t)=>{const{notebookId:n,displayRealTime:o}=t.payload;e.dashboardQueryArgs.displayRealTime[n]=o},setSortBy:(e,t)=>{const{notebookId:n,sortCriterion:o}=t.payload;e.dashboardQueryArgs.sortBy[n]=o},setNotebookCells:(e,t)=>{e.notebookCells=t.payload},refreshDashboards:e=>{e.refreshBoolean=!e.refreshBoolean}}}),{setDashboardQueryArgsT1:K,setDashboardQueryArgsT2:q,setDashboardQueryArgsSelectedGroups:X,setDashboardQueryArgsDisplayRealTime:Z,setSortBy:Y,setNotebookCells:ee,refreshDashboards:te}=J.actions,ne=J.reducer,oe=(0,L.configureStore)({reducer:{tocdashboard:P,sidedashboard:Q,commondashboard:ne}});var ae,se=n(9282),le=n(4705),re=n(4901);class ie{}!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"}(ae||(ae={}));var ce=n(9156);const de=oe.dispatch;class he{constructor(){this._socket=null}_createSocket(e,t){this._socket=(0,ce.io)(`${zt}?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",(n=>{console.log(`${r}: SocketIO connection closed (reason: ${n}) for:`,{notebookId:e,userId:t})})),this._socket.on("refreshDashboard",(()=>{de(te()),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&&Pt&&this._createSocket(e,Pt)}closeSocketConnection(){this._socket&&this._socket.close(),this._socket=null}sendMessageToUser(e,t){this._socket&&this._socket.emit("send_message",{userId:e,message:t})}}const ue=oe.dispatch;class me{constructor(){this._panelUpdatedSignal=new re.Signal(this),this._panelSwitchedSignal=new re.Signal(this),this._ongoingContextId="",this._ongoingCheckId="",this._panel=null,this._monitor=null,this._validityChecks={tag:null,registered:ae.LOADING},this._websocketManager=new he}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),jt(null),this._validityChecks={tag:null,registered:ae.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 le.ActivityMonitor({signal:this._panel.context.model.contentChanged,timeout:1e3}),this._monitor.activityStopped.connect(this._onPanelUpdated,this),y(this._panel)){const e=C.getMetadataComp(this._panel.model,g.notebookId);jt(e),this._validityChecks={tag:e,registered:ae.LOADING},this._performRegistrationCheck()}this._onPanelUpdated()}}))}_performRegistrationCheck(){const e=crypto.randomUUID();this._ongoingCheckId=e;let t=ae.ERROR;w(`${Ut}/dashboard/${this._validityChecks.tag}/check`).then((e=>e.json())).then((e=>{(null==e?void 0:e.status)?"expired_token"===e.status?t=ae.EXPIREDTOKEN:"not_found"===e.status?t=ae.NOTFOUND:"no_user_permission"===e.status?t=ae.USERNOTAUTHORIZED:"success"===e.status&&(t=ae.SUCCESS):t=ae.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===ae.SUCCESS&&(ue(G()),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 n=C.getCellsArrComp(null===(t=null===(e=this.panel)||void 0===e?void 0:e.model)||void 0===t?void 0:t.cells);if(n){const e=n.map((e=>e.id));if(!f(e,this._notebookCells)){this._notebookCells=e;const t=n.map((e=>({id:e.id,cellType:e.type})));return ue(ee(t)),!0}}else this._notebookCells=null;return!1}}var pe=n(7760),ge=n(8559);const be=()=>N().createElement("div",{style:{width:"100%",textAlign:"center",margin:"50px 0"}},N().createElement(ge.Spinner,{style:{width:"50px",height:"50px",fontSize:"x-large"},animation:"border",role:"status",variant:"primary"})),Ce=({title:e,placeholderText:t="No data for the opened notebook"})=>N().createElement("div",{className:"dashboard-TableOfContents"},N().createElement("div",{className:"dashboard-stack-panel-header"},"Side Panel Dashboard"),N().createElement("div",{className:"dashboard-TableOfContents-placeholder"},N().createElement("div",{className:"dashboard-TableOfContents-placeholderContent"},N().createElement("h3",null,e),N().createElement("p",null,t))));class ve extends D.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 x.createElement(Ce,{title:"No Notebook",placeholderText:"Open a notebook to start viewing its content."});if(!this._panelManager.panel.context.isReady)return x.createElement(be,null);if(!this._panelManager.validityChecks.tag)return x.createElement(Ce,{title:"Notebook not Tagged for Tracking"});switch(this._panelManager.validityChecks.registered){case ae.LOADING:return x.createElement(be,null);case ae.SUCCESS:return x.createElement(pe.Provider,{store:oe},this.computeComponentToRender());default:return x.createElement(Ce,{title:this._panelManager.validityChecks.registered})}}}const we=ve;var ke=n(2535);class _e{static setPermission(e){_e._isInteractionRecordingEnabled=e}}_e._isInteractionRecordingEnabled=!1,_e.sendInteraction=e=>{_e._isInteractionRecordingEnabled&&fetch(`${Ut}/dashboard_interaction/add`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,dashboard_user_id:Pt,time:(new Date).toISOString(),notebook_id:Ht})})};const ye=oe.dispatch,fe=()=>{const e=(0,pe.useSelector)((e=>e.sidedashboard.navigationState));return N().createElement(ge.Stack,{className:"breadcrumb-container",direction:"horizontal",gap:2},e.map(((t,n)=>N().createElement("div",{className:n===e.length-1?"breadcrumb-tile-active breadcrumb-tile":"breadcrumb-tile",onClick:()=>{"Notebook"===t.pageName?_e.sendInteraction({click_type:"ON",signal_origin:"BREADCRUMB_TO_NOTEBOOK"}):"Cell"===t.pageName&&_e.sendInteraction({click_type:"ON",signal_origin:"BREADCRUMB_TO_CELL"}),n!==e.length-1&&ye(W(n))}},t.pageName))),N().createElement("div",{className:"breadcrumb-buttons-container"},N().createElement(ge.Button,{className:"dashboard-button",onClick:()=>{_e.sendInteraction({click_type:"ON",signal_origin:"DASHBOARD_REFRESH_BUTTON"}),ye(te())}},N().createElement(ke.ArrowClockwise,{className:"dashboard-icon"}))))},Ee=oe.dispatch,Se=[{value:1,displayName:"All Data",disabledDatePicker:!0},{value:2,displayName:"From t<sub>1</sub>",disabledDatePicker:!1}],xe=e=>{const[t,n]=(0,x.useState)(!1),o=(0,pe.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),a=()=>{const t=o.t1ISOString[e.notebookId]?1:0;return Se[t]},s=()=>{const t=o.t1ISOString[e.notebookId];return t?new Date(t):new Date},l=()=>void 0===o.displayRealTime[e.notebookId]||o.displayRealTime[e.notebookId],[r,i]=(0,x.useState)(a()),[c,d]=(0,x.useState)(s()),[h,u]=(0,x.useState)(l),m=E(new Date);return(0,x.useEffect)((()=>{Ee(K({notebookId:e.notebookId,t1ISOString:r.disabledDatePicker?null:c.toISOString()})),Ee(Z({notebookId:e.notebookId,displayRealTime:h}))}),[c,r,h]),N().createElement(ge.Dropdown,{show:t,onToggle:()=>{_e.sendInteraction({click_type:t?"OFF":"ON",signal_origin:"DASHBOARD_FILTER_TIME"}),t||(d(s()),i(a()),u(l())),n(!t)},className:"custom-dropdown"},N().createElement(ge.Dropdown.Toggle,{className:"dashboard-button"},!(h&&r.disabledDatePicker)&&N().createElement("span",{className:"dashboard-filter-red-dot"}),N().createElement(ke.CalendarWeek,{className:"dashboard-icon"})),N().createElement(ge.Dropdown.Menu,null,N().createElement(ge.Dropdown.Header,null,"Data Timeframe Selector"),N().createElement(ge.Dropdown.Divider,null),N().createElement("div",{className:"custom-dropdown-container custom-dropdown-item"},N().createElement(ge.Form.Check,{id:"time-checkbox-include-all",type:"checkbox",label:"Only show active users",checked:h,onChange:e=>u(e.target.checked)})),N().createElement(ge.Dropdown.Divider,null),N().createElement("div",{className:"dashboard-calendar-container"},N().createElement("div",{className:"cell-radio-container"},N().createElement(ge.ButtonGroup,{size:"sm"},Se.map(((e,t)=>N().createElement(ge.ToggleButton,{key:`calendar-filter-${t}`,id:`calendar-filter-${t}`,type:"radio",variant:"outline-primary",name:"radio",value:e.value,checked:r.value===e.value,onChange:e=>{i(Se[Number(e.currentTarget.value)-1])}},N().createElement("span",{dangerouslySetInnerHTML:{__html:e.displayName}}))))))),N().createElement("div",{className:"dashboard-calendar-container"},N().createElement("div",{className:"dashboard-calendar-input-wrapper "+(r.disabledDatePicker?"disabled":"")},N().createElement("div",null,"t",N().createElement("sub",null,"1")),N().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:E(c),onChange:e=>d(new Date(e.target.value)),max:m})))))},Ne=({PassedComponent:e,title:t})=>N().createElement(ge.Row,{className:"mb-4"},N().createElement(ge.Card,{className:"chart-card"},N().createElement(ge.Card.Title,{className:"chart-card-title"},t),N().createElement(ge.Card.Body,{className:"chart-card-body"},e)));var Ie=n(7885);const De={maintainAspectRatio:!1,plugins:{legend:{labels:{color:"#969696"}},tooltip:{callbacks:{title:function(e){return`Code cell ${e[0].label}`}}}},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"}}}},Me=`> ${Math.floor(30)}'`,Oe={maintainAspectRatio:!1,plugins:{legend:{display:!0,labels:{usePointStyle:!0,color:"#969696"}},tooltip:{usePointStyle:!0,callbacks:{title:function(e){return`Cell ${e[0].raw.x}`},label:function(e){return[`${e.raw.userCount} of ${e.raw.totalCount} users focused on that cell`,`Average focus time: ${Te(e.raw.y)}`]}}}},scales:{x:{type:"category",ticks:{color:"#969696"},title:{display:!0,text:"Cell (markdown & code)",color:"#969696"}},y:{beginAtZero:!0,ticks:{count:6,precision:0,color:"#969696",callback:function(e,t){return"number"==typeof e?Te(e):e}},title:{display:!0,text:"Average time spent on the cell",color:"#969696"}}}},Te=e=>{const t=Math.floor(e/60);return e>=1800?Me:`${t>0?t+"'":""}${(e%60).toFixed(0)}"`},Re=e=>{const[t,n]=(0,x.useState)({labels:[],datasets:[]}),o=(0,pe.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),a=(0,pe.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,pe.useSelector)((e=>e.commondashboard.notebookCells));return(0,x.useEffect)((()=>{w(`${Ut}/dashboard/${e.notebookId}/user_code_execution?${v(o,e.notebookId)}`).then((e=>e.json())).then((e=>{const t=(null==s?void 0:s.filter((e=>"code"===e.cellType)))||[],o={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,n)=>{const a=e.find((e=>e.cell===t.id));a&&(o.datasets[0].data[n]=parseFloat(a.cell_click_pct),o.datasets[1].data[n]=parseFloat(a.code_exec_pct),o.datasets[2].data[n]=parseFloat(a.code_exec_ok_pct))})),n(o)}))}),[o,a]),N().createElement(Ne,{PassedComponent:N().createElement(Ie.Bar,{data:t,options:De}),title:"Code cell executions across users"})},Ae=oe.dispatch,Le=e=>{const[t,n]=(0,x.useState)(!1),o=(0,pe.useSelector)((t=>t.commondashboard.dashboardQueryArgs.selectedGroups[e.notebookId])),[a,s]=(0,x.useState)({includeAllChecked:void 0===o||0===o.length,groupList:[]});(0,x.useEffect)((()=>{if(l){let t;t=a.includeAllChecked?[]:a.groupList.filter((e=>!0===e.checked)).map((e=>e.name)),Ae(X({notebookId:e.notebookId,groups:t}))}}),[a]);const[l,r]=(0,x.useState)(!1);return(0,x.useEffect)((()=>{r(!1),w(`${Ut}/dashboard/${e.notebookId}/getgroups`).then((e=>e.json())).then((e=>{const t=e.map((e=>({name:e,checked:null==o?void 0:o.includes(e)}))).sort(((e,t)=>e.checked!==t.checked?t.checked?1:-1:e.name.localeCompare(t.name)));s((e=>({...e,groupList:t}))),r(!0)}))}),[e.notebookId]),N().createElement(ge.Dropdown,{id:"group-dropdown",className:"custom-dropdown",show:t,onToggle:()=>{_e.sendInteraction({click_type:t?"OFF":"ON",signal_origin:"DASHBOARD_FILTER_GROUPS"}),t||s((e=>{const t=void 0===o||0===o.length,n=e.groupList.map((e=>({name:e.name,checked:null==o?void 0:o.includes(e.name)}))).sort(((e,t)=>e.checked!==t.checked?t.checked?1:-1:e.name.localeCompare(t.name)));return{...e,includeAllChecked:t,groupList:n}})),n(!t)}},N().createElement(ge.Dropdown.Toggle,{className:"dashboard-button"},a.groupList.some((e=>!0===e.checked))&&N().createElement("span",{className:"dashboard-filter-red-dot"}),N().createElement(ke.PeopleFill,{className:"dashboard-icon"})),N().createElement(ge.Dropdown.Menu,null,N().createElement(ge.Dropdown.Header,null,"Filter by group of users"),N().createElement(ge.Dropdown.Divider,null),N().createElement("div",{className:"custom-dropdown-container custom-dropdown-item"},N().createElement(ge.Form.Check,{id:"group-checkbox-include-all",type:"checkbox",label:"Include all users",checked:a.includeAllChecked,onChange:e=>{return t=e.target.checked,void s((e=>{const n=e.groupList.map((e=>({...e,checked:!1})));return{...e,includeAllChecked:t,groupList:t?n:e.groupList}}));var t}})),N().createElement(ge.Dropdown.Divider,null),N().createElement("div",{className:"group-dropdown-scroll "+(a.includeAllChecked?"disabled":"")},a.groupList.length>0?a.groupList.map(((e,t)=>N().createElement("div",{className:"custom-dropdown-item "+(a.includeAllChecked?"disabled":"")},N().createElement(ge.Form.Check,{id:`group-checkbox-${t}`,type:"checkbox",disabled:!!a.includeAllChecked||void 0,label:e.name,title:e.name,checked:e.checked,onChange:()=>(e=>{s((t=>{const n=[...t.groupList];return n[e]={...n[e],checked:!n[e].checked},{...t,groupList:n}}))})(t)})))):N().createElement(ge.Dropdown.Item,{disabled:!0},"No groups available"))))},Be=e=>{const[t,n]=(0,x.useState)({labels:[],datasets:[]}),o=(0,pe.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),a=(0,pe.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,pe.useSelector)((e=>e.commondashboard.notebookCells));return(0,x.useEffect)((()=>{w(`${Ut}/dashboard/${e.notebookId}/user_cell_duration_time?${v(o,e.notebookId)}`).then((e=>e.json())).then((e=>{const t=e.durations,o=e.total_user_count,a=[];t&&o&&(null==s||s.map(((e,n)=>{const s=t.find((t=>t.cell===e.id));if(s){const e=s.user_count/o,t=1,l=10;a.push({x:n+1,y:Math.min(s.average_duration,1800),r:Math.min(Math.max(Math.round(t+(l-1)*e),t),l),userCount:s.user_count,totalCount:o})}})));const l={labels:s?Array.from({length:s.length},((e,t)=>t+1)):[],datasets:[{label:" fraction of users that focused on the cell",data:a,backgroundColor:"rgba(54, 162, 235, 0.2)",borderColor:"rgba(54, 162, 235, 1)",borderWidth:1}]};n(l)}))}),[o,a]),N().createElement(Ne,{PassedComponent:N().createElement(Ie.Bubble,{data:t,options:Oe}),title:"Time spent on each cell across users"})},$e=e=>N().createElement(N().Fragment,null,N().createElement("div",{className:"dashboard-title-container"},N().createElement("div",{className:"dashboard-title-text"},e.notebookName),N().createElement("div",{className:"dashboard-dropdown-container"},N().createElement(Le,{notebookId:e.notebookId}),N().createElement(xe,{notebookId:e.notebookId}))),N().createElement(ge.Row,null,N().createElement(ge.Col,null,N().createElement(Re,{notebookId:e.notebookId}),N().createElement(Be,{notebookId:e.notebookId}))));var He=n(3231),je=n.n(He);const Pe=[{key:"timeDesc",label:"Time (newest 1st)"},{key:"timeAsc",label:"Time (oldest 1st)"},{key:"inputAsc",label:"Input (shortest 1st)"},{key:"inputDesc",label:"Input (longest 1st)"},{key:"outputAsc",label:"Output (shortest 1st)"},{key:"outputDesc",label:"Output (longest 1st)"}],Fe=Pe[0].key,Ue=oe.dispatch,ze=e=>{const t=(0,pe.useSelector)((t=>t.commondashboard.dashboardQueryArgs.sortBy[e.notebookId]||Fe));return N().createElement(ge.Dropdown,{id:"order-by-dropdown",onSelect:t=>{t&&(_e.sendInteraction({click_type:"ON",signal_origin:"CELL_DASHBOARD_FILTER_SORT"}),Ue(Y({notebookId:e.notebookId,sortCriterion:t})))},className:"custom-dropdown"},N().createElement(ge.Dropdown.Toggle,{className:"dashboard-button"},t!==Fe&&N().createElement("span",{className:"dashboard-filter-red-dot"}),N().createElement(ke.SortUp,{className:"dashboard-icon"})),N().createElement(ge.Dropdown.Menu,null,N().createElement(ge.Dropdown.Header,null,"Sort cells by"),N().createElement(ge.Dropdown.Divider,null),Pe.map(((e,n)=>N().createElement(ge.Dropdown.Item,{id:`sort-item-${n}`,eventKey:e.key,className:t===e.key?"highlighted":""},e.label)))))},Ve=e=>N().createElement(ge.Col,{md:12},N().createElement(ge.Card,{className:"cell-card"},N().createElement(ge.Card.Body,{style:{gap:"10px"}},N().createElement(ge.Row,{className:"cell-card-wrapper"},N().createElement(ge.Col,{md:12,className:"cell-user-title"},N().createElement(ge.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}`)),N().createElement(ge.Col,{md:12},e.ExecutionContent),(()=>{if(e.value.t_finish){const t=new Date(e.value.t_finish),n=`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 N().createElement(ge.Col,{md:12,className:"cell-execution-displayed-time"},n)}return null})()))));var We=n(2779);const Ge=e=>{const[t,n]=(0,x.useState)(null);return(0,x.useEffect)((()=>{(()=>{const t=We.marked.parser(We.marked.lexer(e.markdownContent));n(e.sanitizer.sanitize(t))})()}),[e.markdownContent]),N().createElement("div",{className:"cell-content-container"},t&&N().createElement("div",{className:"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput",dangerouslySetInnerHTML:{__html:t}}))};var Qe=n(8531),Je=n(374);const Ke=({cell_input:e,language_mimetype:t,className:n})=>{const o=(0,x.useRef)(null);return(0,x.useEffect)((()=>{const n=o.current;if(n){n.innerHTML="";const o=new Je.CodeEditor.Model;o.mimeType=t,o.sharedModel.setSource(e);const a=new Qe.CodeMirrorEditor({host:n,model:o,...C.getCodeMirrorOptionsComp()}),s=C.observeEditorVisibility(a);return s&&s.observe(n),()=>{s&&s.disconnect()}}}),[e,t]),N().createElement("div",{ref:o,className:n})};var qe=n(987);const Xe=new s.RenderMimeRegistry({initialFactories:s.standardRendererFactories}),Ze=({cell_output_model:e})=>{const t=(0,x.useRef)(null),n=new qe.OutputAreaModel;return(0,x.useEffect)((()=>{n.clear(),n.fromJSON(e);const o=t.current;if(o){o.innerHTML="";for(let e=0;e<n.length;++e){const t=n.get(e),a=Xe.preferredMimeType(t.data);if(a){const e=Xe.createRenderer(a);e.renderModel(t),o.appendChild(e.node)}}}}),[e]),N().createElement("div",{ref:t,className:"cell-content-container"})},Ye=e=>{const t=(0,x.useRef)([]),[n,o]=(0,x.useState)([]),[a,s]=(0,x.useState)(!0),l=(0,x.useRef)(0),i=(0,x.useRef)(0),c=(0,pe.useSelector)((e=>e.sidedashboard.navigationState)),d=(0,pe.useSelector)((e=>e.commondashboard.refreshBoolean)),u=(0,pe.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),[m,p]=(0,x.useState)(!0),[g,b]=(0,x.useState)(!0),[C,k]=(0,x.useState)(1),_=[{name:"All",value:1,status:"all"},{name:"Success",value:2,status:"ok"},{name:"Error",value:3,status:"error"}],y=_.map((e=>e.status)),f=e=>{o(e)},E=c[c.length-1].content,S=async()=>{const n=++i.current;try{const o=await w(`${Ut}/dashboard/${e.notebookId}/cell/${E.cellId}?limit=10&offset=${l.current}&${v(u,e.notebookId)}`),a=await o.json();if(n===i.current){a.length<10&&s(!1);const e=((e,t)=>{const n=new Set(e.map((e=>e.exec_id))),o=t.filter((e=>!n.has(e.exec_id)));return[...e,...o]})(t.current,a);t.current=e,f(e),l.current+=10}}catch(e){console.error(`${r}: Error cell dashboard fetch: `,e)}};return(0,x.useEffect)((()=>{s(!0),t.current=[],l.current=0,S()}),[c,u,d]),(0,x.useEffect)((()=>()=>{s(!1),t.current=[],l.current=0,f([])}),[c]),N().createElement(N().Fragment,null,N().createElement("div",{className:"dashboard-title-container"},N().createElement("div",{className:"dashboard-title-text"},"Cell (",E.cellId,")"),N().createElement("div",{className:"dashboard-dropdown-container"},N().createElement(ze,{notebookId:e.notebookId}),N().createElement(Le,{notebookId:e.notebookId}),N().createElement(xe,{notebookId:e.notebookId}))),N().createElement(ge.Form,{className:"cell-filter-container",onSubmit:e=>e.preventDefault()},N().createElement("div",{className:"cell-radio-container"},N().createElement(ge.ButtonGroup,{size:"sm"},N().createElement(ge.ToggleButton,{style:{marginRight:"3px"},key:"0",id:"code-checkbox",type:"radio",variant:"outline-primary",value:"Code",checked:m,onClick:e=>{m&&!g?e.preventDefault():(_e.sendInteraction({click_type:m?"OFF":"ON",signal_origin:"CELL_DASHBOARD_FILTER_CODE_INPUT"}),p(!m))}},"Code"),N().createElement(ge.ToggleButton,{key:"1",id:"output-checkbox",type:"radio",variant:"outline-primary",value:"Output",checked:g,onClick:e=>{!m&&g?e.preventDefault():(_e.sendInteraction({click_type:g?"OFF":"ON",signal_origin:"CELL_DASHBOARD_FILTER_CODE_OUTPUT"}),b(!g))}},"Output"))),N().createElement("div",{className:"cell-radio-container"},N().createElement(ge.ButtonGroup,{size:"sm"},_.map(((e,t)=>N().createElement(ge.ToggleButton,{key:t,id:`filter-${t}`,type:"radio",variant:"outline-primary",name:"radio",value:e.value,checked:C===e.value,onChange:e=>{_e.sendInteraction({click_type:"ON",signal_origin:"CELL_DASHBOARD_FILTER_EXECUTION"}),k(Number(e.currentTarget.value))}},e.name)))))),N().createElement(je(),{style:{overflow:"hidden"},scrollableTarget:h,dataLength:n.length,next:S,hasMore:a,loader:N().createElement(be,null)},n.map(((t,n)=>N().createElement(ge.Row,{key:n},"MarkdownExecution"===t.cell_type&&["all","ok"].includes(y[C-1])?N().createElement(Ve,{value:t,index:n,ExecutionContent:N().createElement(Ge,{markdownContent:t.cell_input,sanitizer:e.sanitizer})}):N().createElement(N().Fragment,null,(1===C||y[C-1]===t.status)&&N().createElement(Ve,{value:t,index:n,ExecutionContent:N().createElement(N().Fragment,null,m&&N().createElement(Ke,{cell_input:t.cell_input,language_mimetype:t.language_mimetype,className:"cell-content-container"}),m&&g&&t.cell_output_model.length>0&&N().createElement("br",null),g&&t.cell_output_model.length>0&&N().createElement(Ze,{cell_output_model:t.cell_output_model}))})))))))};var et=n(8352);et.Chart.register(...et.registerables);const tt=e=>{const t=(0,pe.useSelector)((e=>e.sidedashboard.navigationState));return N().createElement("div",{className:"page-container",id:h},N().createElement(fe,null),(()=>{switch(t[t.length-1].pageName){case"Notebook":return N().createElement($e,{notebookId:e.notebookId,notebookName:e.notebookName});case"Cell":return N().createElement(Ye,{notebookId:e.notebookId,sanitizer:e.sanitizer});default:return null}})())};class nt extends we{constructor(e,t){super(e),this.addClass("dashboard-react-widget"),this.title.caption="Side Dashboard",this.title.icon=O,this.id="unanalytics-side-dashboard",this.node.setAttribute("role","region"),this.node.setAttribute("aria-label","Side dashboard section"),this._sanitizer=t}onBeforeShow(e){_e.sendInteraction({click_type:"ON",signal_origin:"RIGHT_DASHBOARD_SHOW_HIDE"})}onBeforeHide(e){_e.sendInteraction({click_type:"OFF",signal_origin:"RIGHT_DASHBOARD_SHOW_HIDE"})}computeComponentToRender(){const e=this._panelManager.panel,t=this._panelManager.validityChecks.tag;return e&&t?x.createElement(tt,{notebookId:t,notebookName:e.sessionContext.name,sanitizer:this._sanitizer}):x.createElement(x.Fragment,null)}}const ot=(e,t)=>{const n=3*e/t+.1;return Math.min(1,n)},at=({data:e,cellId:t,commands:n})=>N().createElement(N().Fragment,null,e&&e[0]&&e[1]?N().createElement("div",{onClick:e=>{e.preventDefault(),n.execute(u.dashboardOpenDashboardPlayback,{from:"Toc",cell_id:t})},className:"dashboard-toc-react-component",style:{backgroundColor:`rgba(25, 118, 210, ${ot(e[0],e[1])})`}},N().createElement("span",{className:"dashboard-toc-react-text"},e[0]+"/"+e[1])):N().createElement("div",{className:"dashboard-toc-react-component"}));class st extends N().Component{render(){const{panel:e,heading:t,headings:n,addReactComponent:o,isFirstCellOccurrence:a,tocDashboardData:s,commands:l}=this.props,r=this.props.itemRenderer(e,t,n);return r?N().createElement("li",{className:"dashboard-tocItem",onClick:e=>{_e.sendInteraction({click_type:"ON",signal_origin:"TOC_HEADING_CLICKED"}),e.preventDefault(),e.stopPropagation(),t.onClick()}},r,o&&N().createElement(at,{cellId:t.cellRef.model.id,data:a?s:null,commands:l})):null}}const lt=e=>{const[t,n]=(0,x.useState)(null),o=(0,pe.useSelector)((e=>e.tocdashboard.displayDashboard)),a=(0,pe.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,pe.useSelector)((e=>e.commondashboard.dashboardQueryArgs));(0,x.useEffect)((()=>{l()}),[e.notebookCells,e.notebookPanel,a,s]),(0,x.useEffect)((()=>()=>{n(null)}),[e.notebookCells,e.notebookPanel]);const l=async()=>{const t=C.getMetadataComp(e.notebookPanel.model,g.notebookId);if(t&&e.notebookCells){try{const e=await w(`${Ut}/dashboard/${t}/toc?${v(s,t)}`);if(e.ok){const t=await e.json();return void n(t.data)}console.log(`${r}: Error:`,e.status)}catch(e){console.log(`${r}: Toc Fetch Error:`,e)}n(null)}},i=(t=>{const n=e.headings.map((e=>e.cellRef.model.id)),o=[...new Set(n)],a={},s=e.notebookCells;if(s&&t){const e=o.map((e=>s.indexOf(e)));e[0]=0,e.push(s.length);let n=0;for(let l=0;l<o.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;a[o[l]]=c,n+=c}a.total_count=n}return a})(t),c=new Set;return N().createElement("ul",{className:"dashboard-TableOfContents-content"},e.headings.map(((t,n)=>{const a=t.cellRef.model.id,s=!c.has(a);return s&&c.add(a),N().createElement(st,{panel:e.notebookPanel,heading:t,headings:e.headings,itemRenderer:e.itemRenderer,addReactComponent:o,isFirstCellOccurrence:s,tocDashboardData:[i[a],i.total_count],commands:e.commands,key:`${t.text}-${t.level}-${n++}`})})))};class rt extends ie{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 re.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&&C.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,n,o,a){this._numbering=e,this._numberingH1=t,this._syncCollapseState=n,this._showCode=o,this._showMarkdown=a,this._widget.update()}}function it(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 ct="jp-MarkdownHeadingCollapsed",dt="dashboard-toc-hr-collapsed";function ht(e,t,n,o,a,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:o+1,onClick:t(0),type:"code",prompt:n,cellRef:a,hasChild:!1,index:s})}return l[0]}function ut(e,t,n,o){if(t&&t.text){if(n&&"header"===n.type)for(let t=e.length-1;t>=0;t--)e[t]===n&&(e[t].hasChild=!0);o<0&&e.push(t),n=t}return[e,n]}const mt={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 pt(e,t,n,o,a,s=!1,l=!0,r,i){const c=e.querySelectorAll("h1, h2, h3, h4, h5, h6, p");let d=a;const h=[];for(const e of c){if("p"===e.nodeName.toLowerCase()){if(e.innerHTML){const o=n.sanitize(e.innerHTML,mt);h.push({level:d+1,html:o.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 a=n.sanitize(e.innerHTML,mt);a=a.replace("¶","");let c=parseInt(e.tagName[1],10);l||(c-=1),d=c;const u=Ct(o,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:a,onClick:t(e),type:"header",cellRef:r,hasChild:!1,index:i})}return h}function gt(e,t,n,o,a,s){return e&&"markdown"===e.type&&s?[t,n]=ut(t,e,n,o):e&&"header"===e.type&&([t,n,o]=function(e,t,n,o,a){const s=e.length;if(n&&"header"===n.type&&n.level<t.level)for(let t=s-1;t>=0;t--)e[t]===n&&(e[t].hasChild=!0);return(o>=t.level||o<0)&&(e.push(t),o=a?t.level:-1),[e,n=t,o]}(t,e,n,o,a)),[t,n,o]}const bt=6;function Ct(e,t){if(null===e)return;let n="";if(e=function(e,t){for(let n=t+1;n<=bt;n++)void 0!==e[n]&&(e[n]=void 0);return void 0===e[t]?e[t]=1:e[t]+=1,e}(e,t),t>=1){for(let o=1;o<=t;o++)n+=(void 0===e[o]?"0":e[o])+".";n+=" "}return n}function vt(e){const t=e.split("\n");let n=t[0].match(/^([#]{1,6}) (.*)/);return n?{text:n[2].replace(/\[(.+)\]\(.+\)/g,"$1"),level:n[1].length,type:"markdown"}:t.length>1&&(n=t[1].match(/^ {0,3}([=]{2,}|[-]{2,})\s*$/),n)?{text:t[0].replace(/\[(.+)\]\(.+\)/g,"$1"),level:"="===n[1][0]?1:2,type:"markdown-alt"}:(n=t[0].match(/<h([1-6]).*>(.*)<\/h\1>/i),n?{text:n[2],level:parseInt(n[1],10),type:"html"}:null)}function wt(e,t,n,o,a,s){const l=t(0),r=[];let i=o;for(const t of e.split("\n"))if(t){const e=vt(t);e?(r.push({text:e.text,level:e.level,numbering:Ct(n,e.level),onClick:l,type:"header",cellRef:a,hasChild:!1,index:s}),i=e.level):r.push({text:t,level:i+1,onClick:l,type:"markdown",cellRef:a,hasChild:!1,index:s})}return r}function kt(e,t,n){if(t.index>-1||(null==n?void 0:n.length)){const o=e.content.activeCellIndex,a=t.index;if(o&&a<o){const e=n.indexOf(t)+1;if(e>=n.length)return!0;if((null==n?void 0:n[e].index)>o)return!0}}return!1}const _t=oe.dispatch;function yt(e,t,n){let o=!0,a=!1;n&&n.composite.tocDashboardSettings&&(o=n.composite.tocDashboardSettings.numberingH1,a=n.composite.tocDashboardSettings.syncCollapseState);const s=new rt(e,{numbering:!1,numberingH1:o,syncCollapseState:a,sanitizer:t});return n&&n.composite.tocDashboardSettings&&n.changed.connect((()=>{s.numberingH1=n.composite.tocDashboardSettings.numberingH1,s.syncCollapseState=n.composite.tocDashboardSettings.syncCollapseState})),{options:s,toolbarGenerator:function(e){return function(e,t){return class extends x.Component{constructor(n){super(n),this.state={showCode:!0,showMarkdown:!1,numbering:!1,showVisuDashboard:B.displayDashboard},t.context.ready.then((()=>{if(t){t.content.activeCellChanged.connect((()=>{e.updateWidget()}));const n=C.getMetadataComp(t.model,"dashboard-toc-autonumbering"),o=C.getMetadataComp(t.model,"dashboard-toc-showcode"),a=C.getMetadataComp(t.model,"dashboard-toc-showmarkdowntxt");e.initializeOptions(n||e.numbering,e.numberingH1,e.syncCollapseState,o||e.showCode,a||e.showMarkdown),this.setState({showCode:e.showCode,showMarkdown:e.showMarkdown,numbering:e.numbering})}}))}toggleCode(){_e.sendInteraction({click_type:e.showCode?"OFF":"ON",signal_origin:"TOC_TOOLBAR_CODE"}),e.setShowCode(!e.showCode,t),this.setState({showCode:e.showCode})}toggleMarkdown(){_e.sendInteraction({click_type:e.showMarkdown?"OFF":"ON",signal_origin:"TOC_TOOLBAR_MARKDOWN"}),e.setShowMarkdown(!e.showMarkdown,t),this.setState({showMarkdown:e.showMarkdown})}toggleNumbering(){_e.sendInteraction({click_type:e.numbering?"OFF":"ON",signal_origin:"TOC_TOOLBAR_NUMBERED"}),e.setNumbering(!e.numbering,t),this.setState({numbering:e.numbering})}toggleShowVisuDashboard(){const e=this.state.showVisuDashboard;_e.sendInteraction({click_type:e?"OFF":"ON",signal_origin:"TOC_TOOLBAR_SHOW_HIDE"}),_t(H(!e)),this.setState({showVisuDashboard:!e})}refreshDashboard(){_e.sendInteraction({click_type:"ON",signal_origin:"TOC_TOOLBAR_REFRESH"}),_t(te())}render(){const e=x.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"},x.createElement(I.codeIcon.react,null)),t=x.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"},x.createElement(I.markdownIcon.react,null)),n=x.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"},x.createElement(I.numberingIcon.react,null)),o=x.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?x.createElement(R.react,null):x.createElement(A.react,null)),a=x.createElement("div",{onClick:e=>this.refreshDashboard(),role:"text","aria-label":"Refresh Dashboard",title:"Refresh Dashboard",className:"dashboard-toc-toolbar-icon"},x.createElement(I.refreshIcon.react,null));return x.createElement("div",null,x.createElement("div",{className:"dashboard-toc-toolbar"},x.createElement("div",{className:"dashboard-toc-toolbar-compartment"},e,t,n),x.createElement("div",{className:"dashboard-toc-toolbar-compartment"},o,a)))}}}(s,e)},itemRenderer:function(e,t,n=[]){return function(e,t,n,o=[]){var a;if("markdown"===n.type||"header"===n.type){let a="dashboard-toc-level-size-default";const s=n.numbering&&e.numbering?n.numbering:"",l=e.syncCollapseState?ct:dt;if("header"!==n.type&&"markdown"!==n.type||(a="dashboard-toc-level-size-"+n.level),"header"===n.type||e.showMarkdown){let r;r=n.html?x.createElement("span",{dangerouslySetInnerHTML:{__html:s+e.sanitizer.sanitize(n.html,mt)},className:"dashboard-"+n.type+"-cell dashboard-toc-cell-item"}):x.createElement("span",{className:"dashboard-"+n.type+"-cell dashboard-toc-cell-item"},s+n.text);let i=null;return"header"===n.type&&(i=x.createElement("div",{className:"jp-Collapser p-Widget lm-Widget",onClick:o=>{o.stopPropagation(),function(t,n,o){let a=!1;const s=e.syncCollapseState,l=C.getMetadataComp(null==o?void 0:o.cellRef.model,n);l&&(a=l),o?(_e.sendInteraction({click_type:a?"OFF":"ON",signal_origin:"TOC_COLLAPSE_HEADERS"}),s?t&&se.NotebookActions.setHeadingCollapse(null==o?void 0:o.cellRef,!a,t.content):a?C.deleteMetadataComp(o.cellRef.model,n):C.setMetadataComp(o.cellRef.model,n,!0),e.updateAndCollapse({heading:o,collapsedState:a})):e.updateWidget()}(t,l,n)}},x.createElement("div",{className:"dashboard-toc-Collapser-child"}))),r=x.createElement("div",{className:"dashboard-toc-entry-holder "+a+(t.content.activeCell===n.cellRef||kt(t,n,o)?" dashboard-toc-active-cell":"")},i,r),r}return null}if(t&&"code"===n.type&&e.showCode){const e=(null===(a=C.getMetadataComp(t.model,"language_info"))||void 0===a?void 0:a.mimetype)||"text";return x.createElement("div",{className:"dashboard-toc-code-cell-div"},x.createElement("div",{className:"dashboard-toc-code-cell-prompt"},n.prompt),x.createElement("span",{className:"dashboard-toc-code-span"},x.createElement(Ke,{cell_input:n.text,language_mimetype:e,className:"dashboard-toc-cell-input"})))}return null}(s,e,t,n)},generate:function(n){let o=[],a=-1;const l={};let r=null;for(let i=0;i<n.content.widgets.length;i++){const c=n.content.widgets[i],d=c.model,h=s.syncCollapseState?ct:dt;let u=C.getMetadataComp(d,h);if(u=u||!1,"code"!==d.type){if("markdown"===d.type){const e=c;let h;const m=it(o);if(e.rendered&&!e.inputHidden){const d=t=>()=>{e.rendered?(n.content.mode="command",c.node.scrollIntoView(),n.content.activeCellIndex=i):(n.content.activeCellIndex=i,t.scrollIntoView())},p=pt(c.node,d,t,l,m,s.numbering,s.numberingH1,c,i);for(h of p)[o,r,a]=gt(h,o,r,a,u,s.showMarkdown)}else{const e=e=>()=>{n.content.activeCellIndex=i,c.node.scrollIntoView()},t=wt(d.sharedModel.getSource(),e,l,m,c,i);for(h of t)[o,r,a]=gt(h,o,r,a,u,s.showMarkdown)}}}else if(!e||e&&s.showCode){const e=e=>()=>{n.content.activeCellIndex=i,c.node.scrollIntoView()},t=c.model.executionCount,s=null!==t?"["+t+"]: ":"[ ]: ",l=ht(d.sharedModel.getSource(),e,s,it(o),c,i);[o,r]=ut(o,l,r,a)}}return o},collapseChanged:s.collapseChanged}}const ft=e=>{const[t,n]=(0,x.useState)(e.startT1),[o,a]=(0,x.useState)(e.startT2),s=E(new Date),l=t=>{n(t),e.t1Callback(t)},r=t=>{a(t),e.t2Callback(t)};return N().createElement("div",{className:"dashboard-export-dialog-container"},N().createElement("p",null,"Select the time range of the data you want to export (the past week selected by default)."),N().createElement("div",{className:"dashboard-export-dialog-calendar-container"},N().createElement("div",{className:"dashboard-export-dialog-calendar"},N().createElement("p",null,"Start Date :"),N().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:E(t),onChange:e=>(e=>{const t=new Date(e);l(t),t>=o&&r(t)})(e.target.value),max:E(o)})),N().createElement("div",{className:"dashboard-export-dialog-calendar"},N().createElement("p",null,"End Date :"),N().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:E(o),onChange:e=>(e=>{const n=new Date(e);r(n),n<=t&&l(n)})(e.target.value),max:s}))))},Et=e=>{const[t,n]=(0,x.useState)(!1);return N().createElement("div",{className:"dashboard-toc-download-button"+(t?"-disabled":""),onClick:()=>{t||(e=>{let t=new Date,o=new Date;o.setDate(t.getDate()-7),(0,D.showDialog)({title:"Download Notebook Data",body:N().createElement(ft,{startT1:o,startT2:t,t1Callback:e=>o=e,t2Callback:e=>t=e}),buttons:[{accept:!0,actions:[],ariaLabel:"Export",caption:"",className:"",displayType:"default",iconClass:"",iconLabel:"",label:"Export"},D.Dialog.cancelButton()]}).then((a=>{a.button.accept&&((e,t,o)=>{n(!0);let a="";w(`${Ut}/dashboard/${e}/download_csv?t1=${t.toISOString()}&t2=${o.toISOString()}`).then((e=>{var t;if(e.ok){const n=e.headers.get("Content-Disposition");return a=(null===(t=null==n?void 0:n.match(/filename=(.+)/))||void 0===t?void 0:t[1])||"",e.blob()}})).then((e=>{if(e){const t=window.URL.createObjectURL(e),n=document.createElement("a");n.href=t,n.download=a,document.body.appendChild(n),n.click(),n.remove()}})).finally((()=>{n(!1)}))})(e,o,t)}))})(e.notebookId)}},N().createElement(I.downloadIcon.react,{className:"dashboard-toc-download-icon"}),"Export")};class St extends we{constructor(e,t,n,o){super(e),this.title.caption="Dashboard ToC",this.title.icon=O,this.id="unianalytics-toc-dashboard",this.node.setAttribute("role","region"),this.node.setAttribute("aria-label","Dashboard ToC section"),this._commands=t,this._notebookGenerator=yt(this,n,o),this._toolbar=null,e.panelSwitched.connect(this._onPanelSwitched,this)}onBeforeShow(e){_e.sendInteraction({click_type:"ON",signal_origin:"TOC_DASHBOARD_SHOW_HIDE"})}onBeforeHide(e){_e.sendInteraction({click_type:"OFF",signal_origin:"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?x.createElement("div",{className:"dashboard-TableOfContents"},x.createElement("div",{className:"dashboard-stack-panel-header"},x.createElement("span",{className:"dashboard-toc-header-title"},le.PathExt.basename(e.context.localPath)),x.createElement(Et,{notebookId:this._panelManager.validityChecks.tag})),this._toolbar&&x.createElement(this._toolbar,null),x.createElement(lt,{headings:this._notebookGenerator.generate(e),itemRenderer:this._notebookGenerator.itemRenderer,notebookPanel:e,commands:this._commands,notebookCells:this._panelManager.notebookCells})):x.createElement(x.Fragment,null)}}var xt=n(4882);const Nt="cell-dashboard-button-container";class It extends xt.Widget{constructor(e,t){super(),this.addClass(Nt);const n=document.createElement("button");n.className="cell-dashboard-button",n.innerHTML=O.svgstr,n.title=n.disabled?"No notebook identifier":"Open Cell Dashboard",n.onclick=()=>{e.execute(u.dashboardOpenDashboardPlayback,{from:"Cell",cell_id:t})},this.node.appendChild(n)}dispose(){super.dispose()}}class Dt{constructor(e){this._commands=e}createNew(e){return new Mt(e,this._commands)}}class Mt{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 It(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(Nt)))||[]}get isDisposed(){return this._isDisposed}dispose(){var e;if(this.isDisposed)return;this._isDisposed=!0;const t=C.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,re.Signal.clearData(this)}}var Ot=n(7717);class Tt{constructor(e){this._commands=e}createNew(e){const t=new D.ToolbarButton({className:"playback-button",icon:T,onClick:()=>{this._commands.execute(u.dashboardOpenDashboardPlayback,{from:"Playback"})},tooltip:"Open Dashboard Playback Widget"});return e.context.ready.then((()=>{y(e)&&e.toolbar.insertItem(0,"openDashboardPlayback",t)})),new Ot.DisposableDelegate((()=>{t.dispose()}))}}const Rt=oe.dispatch,At=e=>{const t=(0,x.useRef)(null),n=(0,x.useRef)(null),o=new Date,[a,s]=(0,x.useState)(new Date(o.getTime()-72e5)),[l,r]=(0,x.useState)(new Date(o.getTime()+6e4)),[i,c]=(0,x.useState)(60),d=()=>{const e=a.getTime()+i/60*(l.getTime()-a.getTime());return new Date(e)};return(0,x.useEffect)((()=>{const t=d();Rt(q({notebookId:e.notebookId,t2ISOString:t.toISOString()}))}),[i,a,l]),(0,x.useEffect)((()=>()=>{Rt(q({notebookId:e.notebookId,t2ISOString:null}))}),[e.notebookId]),N().createElement("div",{className:"dashboard-playback-widget-container"},N().createElement("div",{className:"dashboard-playback-header"},N().createElement("div",{className:"dashboard-playback-icon-container"},N().createElement(T.react,{className:"dashboard-playback-icon"})),N().createElement("div",{className:"dashboard-playback-mode-title"},"Playback Mode"),N().createElement("div",{className:"dashboard-playback-icon-container-hovering dashboard-playback-icon-container",onClick:e.hideParent},N().createElement(ke.X,{className:"dashboard-playback-icon"}))),N().createElement("div",{className:"dashboard-playback-mode-text"},"Move data cutoff time back in custom range (includes non-active users):"),N().createElement("div",{className:"dashboard-playback-controls"},N().createElement("div",{className:"dashboard-playback-time-button-wrapper"},N().createElement(ge.Button,{className:"dashboard-playback-time-button-container",onClick:()=>{var e;return null===(e=t.current)||void 0===e?void 0:e.showPicker()}},"t",N().createElement("sub",null,"1"),N().createElement("input",{ref:t,id:"unianalytics-datetime-t1",className:"dashboard-playback-hidden-datepicker dashboard-calendar-input",type:"datetime-local",value:E(a),max:E(l),onChange:e=>{const t=new Date(e.target.value);t.getTime()>=l.getTime()&&r(new Date(t.getTime()+6e4)),s(t)}})),N().createElement("span",{className:"dashboard-playback-label"},"Min cutoff:",N().createElement("br",null)," ",S(a))),N().createElement("div",{className:"dashboard-playback-range-wrapper"},N().createElement(ge.Form.Range,{min:0,max:60,onChange:e=>c(parseInt(e.target.value)),value:i}),N().createElement("span",{className:"dashboard-playback-label"},"Selected cutoff:",N().createElement("br",null)," ",S(d()))),N().createElement("div",{className:"dashboard-playback-time-button-wrapper"},N().createElement(ge.Button,{className:"dashboard-playback-time-button-container",onClick:()=>{var e;return null===(e=n.current)||void 0===e?void 0:e.showPicker()}},"t",N().createElement("sub",null,"2"),N().createElement("input",{ref:n,id:"unianalytics-datetime-t2",className:"dashboard-playback-hidden-datepicker dashboard-calendar-input",type:"datetime-local",value:E(l),max:E(o),onChange:e=>{const t=new Date(e.target.value);t.getTime()<=a.getTime()&&s(new Date(t.getTime()-6e4)),r(t)}})),N().createElement("span",{className:"dashboard-playback-label"},"Max cutoff:",N().createElement("br",null)," ",S(l)))))};class Lt extends D.ReactWidget{constructor(e){super(),this._dragging=!1,this._startX=0,this._startLeft=0,this.addClass("dashboard-playback-widget"),this.id="dashboard-playback-widget",this.node.setAttribute("role","region"),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.update=this.update.bind(this),this._onMouseDown=this._onMouseDown.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onMouseUp=this._onMouseUp.bind(this),this.hide(),this._panelManager=e,e.panelUpdated.connect((()=>this.update())),e.panelSwitched.connect((()=>this.hide()))}onBeforeShow(e){_e.sendInteraction({click_type:"ON",signal_origin:"DASHBOARD_PLAYBACK_SHOW_HIDE"}),this.update()}onBeforeHide(e){_e.sendInteraction({click_type:"OFF",signal_origin:"DASHBOARD_PLAYBACK_SHOW_HIDE"}),this.update()}onUpdateRequest(e){super.onUpdateRequest(e)}render(){const e=this._panelManager.panel,t=this._panelManager.validityChecks.tag;return!this.isHidden&&e&&t?x.createElement(At,{notebookId:t,hideParent:()=>this.hide()}):x.createElement(x.Fragment,null)}onAfterAttach(e){super.onAfterAttach(e),this.node.addEventListener("mousedown",this._onMouseDown.bind(this))}onBeforeDetach(e){this.node.removeEventListener("mousedown",this._onMouseDown.bind(this)),super.onBeforeDetach(e)}_onMouseDown(e){0===e.button&&e.target===this.node&&(this._dragging=!0,this._startX=e.clientX,this._startLeft=this.node.offsetLeft,document.addEventListener("mousemove",this._onMouseMove),document.addEventListener("mouseup",this._onMouseUp))}_onMouseMove(e){if(!this._dragging)return;const t=e.clientX-this._startX;this.node.style.left=`${this._startLeft+t}px`}_onMouseUp(e){this._dragging=!1,document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp)}}const Bt=oe.dispatch;var $t=n(4481);let Ht=null;function jt(e){Ht=e}let Pt=null;const Ft="http://localhost:1015";let Ut=Ft,zt=Ft;const Vt={id:i,autoStart:!0,requires:[a.IFileBrowserFactory,o.ILayoutRestorer,o.ILabShell,s.IRenderMimeRegistry,l.ISettingRegistry],optional:[],activate:(e,t,n,o,a,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 n=$t.ServerConnection.makeSettings(),o=le.URLExt.join(n.baseUrl,"jupyterlab-unianalytics-dashboard",e);let a;try{a=await $t.ServerConnection.makeRequest(o,t,n)}catch(e){throw new $t.ServerConnection.NetworkError(e)}const s=await a.text();if(!a.ok)throw new $t.ServerConnection.ResponseError(a,s.message||s);return s}("get_user_id");if(i&&((e,t)=>{const n=e.split(/[^0-9]+/).map(Number),o=t.split(/[^0-9]+/).map(Number);for(let e=0;e<Math.min(n.length,o.length);e++){const t=n[e],a=o[e];if(t!==a)return t-a}const a=e.replace(/[0-9]+/g,""),s=t.replace(/[0-9]+/g,"");return a.localeCompare(s)})(e.version,l)>=0){const l=parseInt(i[0]);C.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=>{Pt=s;let i=[];fetch(`${Ut}/auth/login`,{method:"POST",headers:{"Unianalytics-User-Id":Pt}}).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?I.fileUploadIcon:void 0,execute:n=>{const o=C.getFileComp(t);o&&e.serviceManager.contents.get(o.path).then((t=>{var n,a;(n=t.content,a=o.name,new Promise(((e,t)=>{const o=new FormData;o.append("notebook_content",JSON.stringify(n)),o.append("name",a),w(Ut+"/notebook/upload",{method:"POST",body:o}).then((n=>{n.ok?e(n.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((n=>{const a={...t,content:n};e.serviceManager.contents.save(o.path,a).then((e=>{const t=n.metadata[g.notebookId],a=`${Ut}/notebook/download/${t}`;(0,D.showDialog)({title:o.name,body:N().createElement(M,{url:a,fileName:o.name}),buttons:[D.Dialog.okButton()]}).catch((e=>console.log(e)))}))})).catch((e=>{(0,D.showDialog)({title:o.name,body:"Error uploading the file",buttons:[D.Dialog.cancelButton()]}).catch((e=>console.log(e)))}))}))}}),e.commands.addCommand(u.copyDownloadLink,{label:"Copy unianalytics notebook link",icon:e=>e.isContextMenu?I.linkIcon:void 0,execute:n=>{const o=C.getFileComp(t);o&&e.serviceManager.contents.get(o.path).then((e=>{const t=e.content.metadata;if(t){const e=t[g.notebookId];e?navigator.clipboard.writeText(`${Ut}/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,n,o,a){console.log(`JupyterLab extension ${r}: dashboard plugins activated!`),(e=>{const t=e.shell.widgets();let n=C.getNextWidgetValueComp(t);for(;n;){if(n instanceof se.NotebookPanel){const t=n,o=new Tt(e.commands),a=new Dt(e.commands),s=o.createNew(t),l=a.createNew(t);t.disposed.connect((()=>{s.dispose(),l.dispose()}))}n=C.getNextWidgetValueComp(t)}e.docRegistry.addWidgetExtension("Notebook",new Dt(e.commands)),e.docRegistry.addWidgetExtension("Notebook",new Tt(e.commands))})(e);const s=new me,l=new nt(s,a.sanitizer),i=new St(s,e.commands,a.sanitizer,o),c=new Lt(s);function d(){const t=e.shell.currentWidget;if(!t)return;if(!(t instanceof se.NotebookPanel))return void(s.panel&&s.panel.isDisposed&&(s.panel=null));const n=t;s.panel=n}n.restored.then((()=>{xt.Widget.attach(c,n.node)})),n.add(l,"right",{rank:1e3}),n.add(i,"left",{rank:1e3}),e.commands.addCommand(u.dashboardOpenDashboardPlayback,{label:"Notebook Visualizations",caption:"Open Dashboards",icon:O,iconClass:"jp-icon3",execute:t=>{"Playback"===t.from?(l.isVisible||Bt(z()),i.isVisible||e.shell.activateById(i.id),c.isAttached&&(c.isHidden?c.show():c.hide())):"Cell"===t.from?(_e.sendInteraction({click_type:"ON",signal_origin:"NOTEBOOK_CELL_BUTTON"}),Bt(V({cellId:t.cell_id}))):"Toc"===t.from&&(_e.sendInteraction({click_type:"ON",signal_origin:"TOC_OPEN_CELL_DASHBOARD"}),Bt(V({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`)),n&&n.currentChanged.connect(d),e.restored.then((()=>{d()}))}(e,n,o,l,a)):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 n=e.composite.commonDashboardSettings;n?_e.setPermission(n.dashboardCollection||!1):_e.setPermission((null===(t=e.default("commonDashboardSettings"))||void 0===t?void 0:t.dashboardCollection)||!1)}function b(e){const t=e.composite.useLocalBackend,n=e.composite.backendEndpoint;t?(Ut=Ft,zt=Ft):"string"==typeof n?(Ut=n,zt=n):(Ut=Ft,zt=Ft)}}},Wt=Vt},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"}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _JUPYTERLAB;(()=>{"use strict";var e,t,r,a,o,n,i,l,d,f,u,c,s,b,p,h,v,m,y,g,j,w,P,_,k,O,S={4479:(e,t,r)=>{var a={"./index":()=>Promise.all([r.e(39),r.e(29),r.e(134)]).then((()=>()=>r(8708))),"./extension":()=>Promise.all([r.e(39),r.e(29),r.e(134)]).then((()=>()=>r(8708))),"./style":()=>r.e(546).then((()=>()=>r(5546)))},o=(e,t)=>(r.R=t,t=r.o(a,e)?a[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),r.R=void 0,t),n=(e,t)=>{if(r.S){var a="default",o=r.S[a];if(o&&o!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return r.S[a]=e,r.I(a,t)}};r.d(t,{get:()=>o,init:()=>n})}},E={};function x(e){var t=E[e];if(void 0!==t)return t.exports;var r=E[e]={id:e,exports:{}};return S[e](r,r.exports,x),r.exports}x.m=S,x.c=E,x.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return x.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,x.t=function(r,a){if(1&a&&(r=this(r)),8&a)return r;if("object"==typeof r&&r){if(4&a&&r.__esModule)return r;if(16&a&&"function"==typeof r.then)return r}var o=Object.create(null);x.r(o);var n={};e=e||[null,t({}),t([]),t(t)];for(var i=2&a&&r;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((e=>n[e]=()=>r[e]));return n.default=()=>r,x.d(o,n),o},x.d=(e,t)=>{for(var r in t)x.o(t,r)&&!x.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},x.f={},x.e=e=>Promise.all(Object.keys(x.f).reduce(((t,r)=>(x.f[r](e,t),t)),[])),x.u=e=>e+"."+{10:"1e5c908a94fc4b83c2e5",18:"759fbf2374edc42b5c3e",29:"9b0cb1475dcac2b485f3",39:"5a3b28a79ba693a9b627",134:"d6c21ace205b33ffc1d7",211:"583fddc965c583e61532",308:"d9da4ce35f354c6f12e1",373:"37ddee9d229ac254f896",376:"d960746fd943a4ef55b8",426:"a7015f9dfda310972c1b",459:"75a9fe630dfdb00e65b4",533:"f7a454b11ba5cd79dc0c",546:"eda1114f14e7cdfffdc3",563:"b613f734176cb51510ef",638:"d37271636c4d956096de",704:"4e17d862a476ae3df8ae",708:"323c3614d31a5918cfaf",738:"f4338fb8d8276b96c3f3",744:"329dc4d1ed2f5c918266",798:"33a8f0893a66574e9259",817:"6437962faf359015be36",981:"ebb9e1d6122980b5ff0e"}[e]+".js?v="+{10:"1e5c908a94fc4b83c2e5",18:"759fbf2374edc42b5c3e",29:"9b0cb1475dcac2b485f3",39:"5a3b28a79ba693a9b627",134:"d6c21ace205b33ffc1d7",211:"583fddc965c583e61532",308:"d9da4ce35f354c6f12e1",373:"37ddee9d229ac254f896",376:"d960746fd943a4ef55b8",426:"a7015f9dfda310972c1b",459:"75a9fe630dfdb00e65b4",533:"f7a454b11ba5cd79dc0c",546:"eda1114f14e7cdfffdc3",563:"b613f734176cb51510ef",638:"d37271636c4d956096de",704:"4e17d862a476ae3df8ae",708:"323c3614d31a5918cfaf",738:"f4338fb8d8276b96c3f3",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,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},a="jupyterlab_unianalytics_dashboard:",x.l=(e,t,o,n)=>{if(r[e])r[e].push(t);else{var i,l;if(void 0!==o)for(var d=document.getElementsByTagName("script"),f=0;f<d.length;f++){var u=d[f];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==a+o){i=u;break}}i||(l=!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),r[e]=[t];var c=(t,a)=>{i.onerror=i.onload=null,clearTimeout(s);var o=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(a))),t)return t(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),l&&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={},t={};x.I=(r,a)=>{a||(a=[]);var o=t[r];if(o||(o=t[r]={}),!(a.indexOf(o)>=0)){if(a.push(o),e[r])return e[r];x.o(x.S,r)||(x.S[r]={});var n=x.S[r],i="jupyterlab_unianalytics_dashboard",l=(e,t,r,a)=>{var o=n[e]=n[e]||{},l=o[t];(!l||!l.loaded&&(!a!=!l.eager?a:i>l.from))&&(o[t]={get:r,from:i,eager:!!a})},d=[];return"default"===r&&(l("@reduxjs/toolkit","1.9.7",(()=>x.e(426).then((()=>()=>x(8426))))),l("chart.js","4.4.1",(()=>x.e(708).then((()=>()=>x(4708))))),l("jupyterlab_unianalytics_dashboard","4.0.14",(()=>Promise.all([x.e(39),x.e(29),x.e(134)]).then((()=>()=>x(8708))))),l("marked","11.1.1",(()=>x.e(308).then((()=>()=>x(3308))))),l("react-bootstrap-icons","1.10.3",(()=>Promise.all([x.e(744),x.e(29)]).then((()=>()=>x(1744))))),l("react-bootstrap","2.10.0",(()=>Promise.all([x.e(18),x.e(29),x.e(704)]).then((()=>()=>x(1018))))),l("react-chartjs-2","5.2.0",(()=>Promise.all([x.e(29),x.e(459),x.e(563)]).then((()=>()=>x(5376))))),l("react-infinite-scroll-component","6.1.0",(()=>Promise.all([x.e(29),x.e(533)]).then((()=>()=>x(8533))))),l("react-redux","8.1.3",(()=>Promise.all([x.e(981),x.e(29),x.e(704)]).then((()=>()=>x(2981))))),l("socket.io-client","4.7.5",(()=>x.e(817).then((()=>()=>x(4817)))))),e[r]=d.length?Promise.all(d).then((()=>e[r]=1)):1}}})(),(()=>{var e;x.g.importScripts&&(e=x.g.location+"");var t=x.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var a=r.length-1;a>-1&&!e;)e=r[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 t=e=>e.split(".").map((e=>+e==e?+e:e)),r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),a=r[1]?t(r[1]):[];return r[2]&&(a.length++,a.push.apply(a,t(r[2]))),r[3]&&(a.push([]),a.push.apply(a,t(r[3]))),a},n=(e,t)=>{e=o(e),t=o(t);for(var r=0;;){if(r>=e.length)return r<t.length&&"u"!=(typeof t[r])[0];var a=e[r],n=(typeof a)[0];if(r>=t.length)return"u"==n;var i=t[r],l=(typeof i)[0];if(n!=l)return"o"==n&&"n"==l||"s"==l||"u"==n;if("o"!=n&&"u"!=n&&a!=i)return a<i;r++}},i=e=>{var t=e[0],r="";if(1===e.length)return"*";if(t+.5){r+=0==t?">=":-1==t?"<":1==t?"^":2==t?"~":t>0?"=":"!=";for(var a=1,o=1;o<e.length;o++)a--,r+="u"==(typeof(l=e[o]))[0]?"-":(a>0?".":"")+(a=2,l);return r}var n=[];for(o=1;o<e.length;o++){var l=e[o];n.push(0===l?"not("+d()+")":1===l?"("+d()+" || "+d()+")":2===l?n.pop()+" "+n.pop():i(l))}return d();function d(){return n.pop().replace(/^\((.+)\)$/,"$1")}},l=(e,t)=>{if(0 in e){t=o(t);var r=e[0],a=r<0;a&&(r=-r-1);for(var n=0,i=1,d=!0;;i++,n++){var f,u,c=i<e.length?(typeof e[i])[0]:"";if(n>=t.length||"o"==(u=(typeof(f=t[n]))[0]))return!d||("u"==c?i>r&&!a:""==c!=a);if("u"==u){if(!d||"u"!=c)return!1}else if(d)if(c==u)if(i<=r){if(f!=e[i])return!1}else{if(a?f>e[i]:f<e[i])return!1;f!=e[i]&&(d=!1)}else if("s"!=c&&"n"!=c){if(a||i<=r)return!1;d=!1,i--}else{if(i<=r||u<c!=a)return!1;d=!1}else"s"!=c&&"n"!=c&&(d=!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?l(p,t):!b())}return!!b()},d=(e,t)=>{var r=x.S[e];if(!r||!x.o(r,t))throw new Error("Shared module "+t+" doesn't exist in shared scope "+e);return r},f=(e,t)=>{var r=e[t];return(t=Object.keys(r).reduce(((e,t)=>!e||n(e,t)?t:e),0))&&r[t]},u=(e,t)=>{var r=e[t];return Object.keys(r).reduce(((e,t)=>!e||!r[e].loaded&&n(e,t)?t:e),0)},c=(e,t,r,a)=>"Unsatisfied version "+r+" from "+(r&&e[t][r].from)+" of shared singleton module "+t+" (required "+i(a)+")",s=(e,t,r,a)=>{var o=u(e,r);return l(a,o)||h(c(e,r,o,a)),m(e[r][o])},b=(e,t,r)=>{var a=e[t];return(t=Object.keys(a).reduce(((e,t)=>!l(r,t)||e&&!n(e,t)?e:t),0))&&a[t]},p=(e,t,r,a)=>{var o=e[r];return"No satisfying version ("+i(a)+") of shared module "+r+" found in shared scope "+t+".\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,t,r,a)=>{h(p(e,t,r,a))},m=e=>(e.loaded=1,e.get()),g=(y=e=>function(t,r,a,o){var n=x.I(t);return n&&n.then?n.then(e.bind(e,t,x.S[t],r,a,o)):e(t,x.S[t],r,a,o)})(((e,t,r,a)=>(d(e,r),m(b(t,r,a)||v(t,e,r,a)||f(t,r))))),j=y(((e,t,r,a)=>(d(e,r),s(t,0,r,a)))),w=y(((e,t,r,a,o)=>{var n=t&&x.o(t,r)&&b(t,r,a);return n?m(n):o()})),P={},_={6029:()=>j("default","react",[1,18,2,0]),374:()=>j("default","@jupyterlab/codeeditor",[1,4,2,1]),987:()=>g("default","@jupyterlab/outputarea",[1,4,2,1]),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))))),3039:()=>j("default","@jupyterlab/application",[1,4,2,1]),3231:()=>w("default","react-infinite-scroll-component",[1,6,1,0],(()=>x.e(738).then((()=>()=>x(8533))))),3748:()=>w("default","@reduxjs/toolkit",[1,1,9,5],(()=>x.e(426).then((()=>()=>x(8426))))),3764:()=>j("default","@jupyterlab/ui-components",[1,4,2,1]),3779:()=>j("default","@jupyterlab/filebrowser",[1,4,2,1]),4481:()=>j("default","@jupyterlab/services",[1,7,2,1]),4705:()=>j("default","@jupyterlab/coreutils",[1,6,2,1]),4882:()=>j("default","@lumino/widgets",[1,2,3,1,,"alpha",0]),4901:()=>j("default","@lumino/signaling",[1,2,0,0]),4925:()=>j("default","@jupyterlab/rendermime",[1,4,2,1]),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))))),8386:()=>j("default","@jupyterlab/settingregistry",[1,4,2,1]),8531:()=>j("default","@jupyterlab/codemirror",[1,4,2,1]),8559:()=>w("default","react-bootstrap",[1,2,10,0],(()=>Promise.all([x.e(18),x.e(704)]).then((()=>()=>x(1018))))),8690:()=>j("default","@jupyterlab/apputils",[1,4,3,1]),9156:()=>w("default","socket.io-client",[1,4,7,5],(()=>x.e(817).then((()=>()=>x(4817))))),9282:()=>j("default","@jupyterlab/notebook",[1,4,2,1]),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],134:[374,987,2535,2779,3039,3231,3748,3764,3779,4481,4705,4882,4901,4925,7717,7760,7885,8352,8386,8531,8559,8690,9156,9282],211:[6211],373:[1373],376:[851,7138,8204],459:[6459],704:[7704]},O={},x.f.consumes=(e,t)=>{x.o(k,e)&&k[e].forEach((e=>{if(x.o(P,e))return t.push(P[e]);if(!O[e]){var r=t=>{P[e]=0,x.m[e]=r=>{delete x.c[e],r.exports=t()}};O[e]=!0;var a=t=>{delete P[e],x.m[e]=r=>{throw delete x.c[e],t}};try{var o=_[e]();o.then?t.push(P[e]=o.then(r).catch(a)):r(o)}catch(e){a(e)}}}))},(()=>{x.b=document.baseURI||self.location.href;var e={217:0};x.f.j=(t,r)=>{var a=x.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(37[36]|211|29|459|704)$/.test(t))e[t]=0;else{var o=new Promise(((r,o)=>a=e[t]=[r,o]));r.push(a[2]=o);var n=x.p+x.u(t),i=new Error;x.l(n,(r=>{if(x.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;i.message="Loading chunk "+t+" failed.\n("+o+": "+n+")",i.name="ChunkLoadError",i.type=o,i.request=n,a[1](i)}}),"chunk-"+t,t)}};var t=(t,r)=>{var a,o,[n,i,l]=r,d=0;if(n.some((t=>0!==e[t]))){for(a in i)x.o(i,a)&&(x.m[a]=i[a]);l&&l(x)}for(t&&t(r);d<n.length;d++)o=n[d],x.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self.webpackChunkjupyterlab_unianalytics_dashboard=self.webpackChunkjupyterlab_unianalytics_dashboard||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),x.nc=void 0;var T=x(4479);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB).jupyterlab_unianalytics_dashboard=T})();
|
|
1
|
+
var _JUPYTERLAB;(()=>{"use strict";var e,t,r,a,o,n,i,d,l,f,u,c,s,b,p,h,v,m,y,g,j,w,P,_,k,O,S={4479:(e,t,r)=>{var a={"./index":()=>Promise.all([r.e(39),r.e(29),r.e(134)]).then((()=>()=>r(8708))),"./extension":()=>Promise.all([r.e(39),r.e(29),r.e(134)]).then((()=>()=>r(8708))),"./style":()=>r.e(546).then((()=>()=>r(5546)))},o=(e,t)=>(r.R=t,t=r.o(a,e)?a[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),r.R=void 0,t),n=(e,t)=>{if(r.S){var a="default",o=r.S[a];if(o&&o!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return r.S[a]=e,r.I(a,t)}};r.d(t,{get:()=>o,init:()=>n})}},E={};function x(e){var t=E[e];if(void 0!==t)return t.exports;var r=E[e]={id:e,exports:{}};return S[e](r,r.exports,x),r.exports}x.m=S,x.c=E,x.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return x.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,x.t=function(r,a){if(1&a&&(r=this(r)),8&a)return r;if("object"==typeof r&&r){if(4&a&&r.__esModule)return r;if(16&a&&"function"==typeof r.then)return r}var o=Object.create(null);x.r(o);var n={};e=e||[null,t({}),t([]),t(t)];for(var i=2&a&&r;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((e=>n[e]=()=>r[e]));return n.default=()=>r,x.d(o,n),o},x.d=(e,t)=>{for(var r in t)x.o(t,r)&&!x.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},x.f={},x.e=e=>Promise.all(Object.keys(x.f).reduce(((t,r)=>(x.f[r](e,t),t)),[])),x.u=e=>e+"."+{10:"1e5c908a94fc4b83c2e5",18:"759fbf2374edc42b5c3e",29:"9b0cb1475dcac2b485f3",39:"5a3b28a79ba693a9b627",134:"891c0a67e79b38a86741",211:"583fddc965c583e61532",308:"d9da4ce35f354c6f12e1",373:"37ddee9d229ac254f896",376:"d960746fd943a4ef55b8",426:"a7015f9dfda310972c1b",459:"75a9fe630dfdb00e65b4",533:"f7a454b11ba5cd79dc0c",546:"eda1114f14e7cdfffdc3",563:"b613f734176cb51510ef",638:"d37271636c4d956096de",704:"4e17d862a476ae3df8ae",708:"323c3614d31a5918cfaf",738:"f4338fb8d8276b96c3f3",744:"329dc4d1ed2f5c918266",798:"33a8f0893a66574e9259",817:"6437962faf359015be36",981:"ebb9e1d6122980b5ff0e"}[e]+".js?v="+{10:"1e5c908a94fc4b83c2e5",18:"759fbf2374edc42b5c3e",29:"9b0cb1475dcac2b485f3",39:"5a3b28a79ba693a9b627",134:"891c0a67e79b38a86741",211:"583fddc965c583e61532",308:"d9da4ce35f354c6f12e1",373:"37ddee9d229ac254f896",376:"d960746fd943a4ef55b8",426:"a7015f9dfda310972c1b",459:"75a9fe630dfdb00e65b4",533:"f7a454b11ba5cd79dc0c",546:"eda1114f14e7cdfffdc3",563:"b613f734176cb51510ef",638:"d37271636c4d956096de",704:"4e17d862a476ae3df8ae",708:"323c3614d31a5918cfaf",738:"f4338fb8d8276b96c3f3",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,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},a="jupyterlab_unianalytics_dashboard:",x.l=(e,t,o,n)=>{if(r[e])r[e].push(t);else{var i,d;if(void 0!==o)for(var l=document.getElementsByTagName("script"),f=0;f<l.length;f++){var u=l[f];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==a+o){i=u;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),r[e]=[t];var c=(t,a)=>{i.onerror=i.onload=null,clearTimeout(s);var o=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(a))),t)return t(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={},t={};x.I=(r,a)=>{a||(a=[]);var o=t[r];if(o||(o=t[r]={}),!(a.indexOf(o)>=0)){if(a.push(o),e[r])return e[r];x.o(x.S,r)||(x.S[r]={});var n=x.S[r],i="jupyterlab_unianalytics_dashboard",d=(e,t,r,a)=>{var o=n[e]=n[e]||{},d=o[t];(!d||!d.loaded&&(!a!=!d.eager?a:i>d.from))&&(o[t]={get:r,from:i,eager:!!a})},l=[];return"default"===r&&(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.15",(()=>Promise.all([x.e(39),x.e(29),x.e(134)]).then((()=>()=>x(8708))))),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-infinite-scroll-component","6.1.0",(()=>Promise.all([x.e(29),x.e(533)]).then((()=>()=>x(8533))))),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[r]=l.length?Promise.all(l).then((()=>e[r]=1)):1}}})(),(()=>{var e;x.g.importScripts&&(e=x.g.location+"");var t=x.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var a=r.length-1;a>-1&&!e;)e=r[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 t=e=>e.split(".").map((e=>+e==e?+e:e)),r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),a=r[1]?t(r[1]):[];return r[2]&&(a.length++,a.push.apply(a,t(r[2]))),r[3]&&(a.push([]),a.push.apply(a,t(r[3]))),a},n=(e,t)=>{e=o(e),t=o(t);for(var r=0;;){if(r>=e.length)return r<t.length&&"u"!=(typeof t[r])[0];var a=e[r],n=(typeof a)[0];if(r>=t.length)return"u"==n;var i=t[r],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;r++}},i=e=>{var t=e[0],r="";if(1===e.length)return"*";if(t+.5){r+=0==t?">=":-1==t?"<":1==t?"^":2==t?"~":t>0?"=":"!=";for(var a=1,o=1;o<e.length;o++)a--,r+="u"==(typeof(d=e[o]))[0]?"-":(a>0?".":"")+(a=2,d);return r}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,t)=>{if(0 in e){t=o(t);var r=e[0],a=r<0;a&&(r=-r-1);for(var n=0,i=1,l=!0;;i++,n++){var f,u,c=i<e.length?(typeof e[i])[0]:"";if(n>=t.length||"o"==(u=(typeof(f=t[n]))[0]))return!l||("u"==c?i>r&&!a:""==c!=a);if("u"==u){if(!l||"u"!=c)return!1}else if(l)if(c==u)if(i<=r){if(f!=e[i])return!1}else{if(a?f>e[i]:f<e[i])return!1;f!=e[i]&&(l=!1)}else if("s"!=c&&"n"!=c){if(a||i<=r)return!1;l=!1,i--}else{if(i<=r||u<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,t):!b())}return!!b()},l=(e,t)=>{var r=x.S[e];if(!r||!x.o(r,t))throw new Error("Shared module "+t+" doesn't exist in shared scope "+e);return r},f=(e,t)=>{var r=e[t];return(t=Object.keys(r).reduce(((e,t)=>!e||n(e,t)?t:e),0))&&r[t]},u=(e,t)=>{var r=e[t];return Object.keys(r).reduce(((e,t)=>!e||!r[e].loaded&&n(e,t)?t:e),0)},c=(e,t,r,a)=>"Unsatisfied version "+r+" from "+(r&&e[t][r].from)+" of shared singleton module "+t+" (required "+i(a)+")",s=(e,t,r,a)=>{var o=u(e,r);return d(a,o)||h(c(e,r,o,a)),m(e[r][o])},b=(e,t,r)=>{var a=e[t];return(t=Object.keys(a).reduce(((e,t)=>!d(r,t)||e&&!n(e,t)?e:t),0))&&a[t]},p=(e,t,r,a)=>{var o=e[r];return"No satisfying version ("+i(a)+") of shared module "+r+" found in shared scope "+t+".\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,t,r,a)=>{h(p(e,t,r,a))},m=e=>(e.loaded=1,e.get()),g=(y=e=>function(t,r,a,o){var n=x.I(t);return n&&n.then?n.then(e.bind(e,t,x.S[t],r,a,o)):e(t,x.S[t],r,a,o)})(((e,t,r,a)=>(l(e,r),m(b(t,r,a)||v(t,e,r,a)||f(t,r))))),j=y(((e,t,r,a)=>(l(e,r),s(t,0,r,a)))),w=y(((e,t,r,a,o)=>{var n=t&&x.o(t,r)&&b(t,r,a);return n?m(n):o()})),P={},_={6029:()=>j("default","react",[1,18,2,0]),374:()=>j("default","@jupyterlab/codeeditor",[1,4,2,1]),987:()=>g("default","@jupyterlab/outputarea",[1,4,2,1]),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))))),3039:()=>j("default","@jupyterlab/application",[1,4,2,1]),3231:()=>w("default","react-infinite-scroll-component",[1,6,1,0],(()=>x.e(738).then((()=>()=>x(8533))))),3748:()=>w("default","@reduxjs/toolkit",[1,1,9,5],(()=>x.e(426).then((()=>()=>x(8426))))),3764:()=>j("default","@jupyterlab/ui-components",[1,4,2,1]),3779:()=>j("default","@jupyterlab/filebrowser",[1,4,2,1]),4481:()=>j("default","@jupyterlab/services",[1,7,2,1]),4705:()=>j("default","@jupyterlab/coreutils",[1,6,2,1]),4882:()=>j("default","@lumino/widgets",[1,2,3,1,,"alpha",0]),4901:()=>j("default","@lumino/signaling",[1,2,0,0]),4925:()=>j("default","@jupyterlab/rendermime",[1,4,2,1]),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))))),8386:()=>j("default","@jupyterlab/settingregistry",[1,4,2,1]),8531:()=>j("default","@jupyterlab/codemirror",[1,4,2,1]),8559:()=>w("default","react-bootstrap",[1,2,10,0],(()=>Promise.all([x.e(18),x.e(704)]).then((()=>()=>x(1018))))),8690:()=>j("default","@jupyterlab/apputils",[1,4,3,1]),9156:()=>w("default","socket.io-client",[1,4,7,5],(()=>x.e(817).then((()=>()=>x(4817))))),9282:()=>j("default","@jupyterlab/notebook",[1,4,2,1]),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],134:[374,987,2535,2779,3039,3231,3748,3764,3779,4481,4705,4882,4901,4925,7717,7760,7885,8352,8386,8531,8559,8690,9156,9282],211:[6211],373:[1373],376:[851,7138,8204],459:[6459],704:[7704]},O={},x.f.consumes=(e,t)=>{x.o(k,e)&&k[e].forEach((e=>{if(x.o(P,e))return t.push(P[e]);if(!O[e]){var r=t=>{P[e]=0,x.m[e]=r=>{delete x.c[e],r.exports=t()}};O[e]=!0;var a=t=>{delete P[e],x.m[e]=r=>{throw delete x.c[e],t}};try{var o=_[e]();o.then?t.push(P[e]=o.then(r).catch(a)):r(o)}catch(e){a(e)}}}))},(()=>{x.b=document.baseURI||self.location.href;var e={217:0};x.f.j=(t,r)=>{var a=x.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(37[36]|211|29|459|704)$/.test(t))e[t]=0;else{var o=new Promise(((r,o)=>a=e[t]=[r,o]));r.push(a[2]=o);var n=x.p+x.u(t),i=new Error;x.l(n,(r=>{if(x.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;i.message="Loading chunk "+t+" failed.\n("+o+": "+n+")",i.name="ChunkLoadError",i.type=o,i.request=n,a[1](i)}}),"chunk-"+t,t)}};var t=(t,r)=>{var a,o,[n,i,d]=r,l=0;if(n.some((t=>0!==e[t]))){for(a in i)x.o(i,a)&&(x.m[a]=i[a]);d&&d(x)}for(t&&t(r);l<n.length;l++)o=n[l],x.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self.webpackChunkjupyterlab_unianalytics_dashboard=self.webpackChunkjupyterlab_unianalytics_dashboard||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),x.nc=void 0;var T=x(4479);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB).jupyterlab_unianalytics_dashboard=T})();
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from '../../utils/utils';
|
|
12
12
|
import { BACKEND_API_URL } from '../..';
|
|
13
13
|
import InfiniteScroll from 'react-infinite-scroll-component';
|
|
14
|
-
import { PAGE_CONTAINER_ELEMENT_ID } from '../../utils/constants';
|
|
14
|
+
import { APP_ID, PAGE_CONTAINER_ELEMENT_ID } from '../../utils/constants';
|
|
15
15
|
import Loader from '../components/placeholder/Loader';
|
|
16
16
|
import SortDropDown from '../components/buttons/SortDropDown';
|
|
17
17
|
import GroupDropDown from '../components/buttons/GroupDropDown';
|
|
@@ -35,6 +35,8 @@ const Cell = (props: ICellPageProps): JSX.Element => {
|
|
|
35
35
|
const offsetRef = useRef(0);
|
|
36
36
|
const limit = 10;
|
|
37
37
|
|
|
38
|
+
const requestVersionRef = useRef(0);
|
|
39
|
+
|
|
38
40
|
const navigationState = useSelector(
|
|
39
41
|
(state: RootState) => state.sidedashboard.navigationState
|
|
40
42
|
);
|
|
@@ -64,23 +66,38 @@ const Cell = (props: ICellPageProps): JSX.Element => {
|
|
|
64
66
|
setRenderedData(data);
|
|
65
67
|
};
|
|
66
68
|
|
|
69
|
+
const deepMergeOnExecId = (arr1: any[], arr2: any[]) => {
|
|
70
|
+
const existingIds = new Set(arr1.map(item => item.exec_id));
|
|
71
|
+
const filteredArr2 = arr2.filter(item => !existingIds.has(item.exec_id));
|
|
72
|
+
return [...arr1, ...filteredArr2];
|
|
73
|
+
};
|
|
74
|
+
|
|
67
75
|
const content = (navigationState[navigationState.length - 1] as CellLayer)
|
|
68
76
|
.content;
|
|
69
77
|
|
|
70
|
-
const fetchDataLazyLoading = () => {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
const fetchDataLazyLoading = async () => {
|
|
79
|
+
const currentVersion = ++requestVersionRef.current;
|
|
80
|
+
|
|
81
|
+
try {
|
|
82
|
+
const response = await fetchWithCredentials(
|
|
83
|
+
`${BACKEND_API_URL}/dashboard/${props.notebookId}/cell/${content.cellId}?limit=${limit}&offset=${offsetRef.current}&${generateQueryArgsString(dashboardQueryArgsRedux, props.notebookId)}`
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
const data = await response.json();
|
|
87
|
+
|
|
88
|
+
// make sure the last fetch request is used
|
|
89
|
+
if (currentVersion === requestVersionRef.current) {
|
|
76
90
|
if (data.length < limit) {
|
|
77
91
|
setHasMore(false);
|
|
78
92
|
}
|
|
79
|
-
const mergedData =
|
|
93
|
+
const mergedData = deepMergeOnExecId(originalData.current, data);
|
|
80
94
|
originalData.current = mergedData;
|
|
81
95
|
setAndFilterData(mergedData);
|
|
82
96
|
offsetRef.current += limit;
|
|
83
|
-
}
|
|
97
|
+
}
|
|
98
|
+
} catch (error) {
|
|
99
|
+
console.error(`${APP_ID}: Error cell dashboard fetch: `, error);
|
|
100
|
+
}
|
|
84
101
|
};
|
|
85
102
|
|
|
86
103
|
useEffect(() => {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkjupyterlab_unianalytics_dashboard=self.webpackChunkjupyterlab_unianalytics_dashboard||[]).push([[134],{8708:(e,t,n)=>{n.r(t),n.d(t,{BACKEND_API_URL:()=>Ut,CURRENT_NOTEBOOK_ID:()=>Ht,PERSISTENT_USER_ID:()=>Pt,WEBSOCKET_API_URL:()=>zt,default:()=>Wt,setCurrentNotebookId:()=>jt});var o=n(3039),a=n(3779),s=n(4925),l=n(8386);n(4039);const r="jupyterlab_unianalytics_dashboard",i=`${r}:plugin`,c=`${r}_access_token`,d=`${r}_refresh_token`,h="unianalytics-page-container";var u;!function(e){e.dashboardOpenDashboardPlayback=`${r}:dashboard-open-playback`,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,b;!function(e){e.notebookId=`${p}_notebook_id`,e.cellMapping=`${p}_cell_mapping`}(g||(g={}));class C{static async setJupyterVersion(e){C._jupyterVersion=e,await C._setEditorLanguageRegistry(),await C._asyncImports()}static async _setEditorLanguageRegistry(){if(4===C._jupyterVersion){const{StreamLanguage:e}=await n.e(373).then(n.t.bind(n,1373,23)),{EditorLanguageRegistry:t,parseMathIPython:o}=await Promise.resolve().then(n.t.bind(n,8531,23)),a=new t;t.getDefaultLanguages().forEach((e=>{a.addLanguage(e)})),a.addLanguage({name:"ipythongfm",mime:"text/x-ipythongfm",load:async()=>{const[t,s]=await Promise.all([Promise.all([n.e(638),n.e(211),n.e(373),n.e(376)]).then(n.bind(n,8638)),n.e(10).then(n.bind(n,8010))]);return t.markdown({base:t.markdownLanguage,codeLanguages:e=>a.findBest(e),extensions:[o(e.define(s.stexMath).parser)]})}}),C._editorDefaultLanguages=a}}static async _asyncImports(){if(4===C._jupyterVersion){const{EditorView:e}=await n.e(211).then(n.t.bind(n,6211,23));this._EditorView=e;const{jupyterTheme:t}=await Promise.resolve().then(n.t.bind(n,8531,23));this._jupyterTheme=t}}static checkJupyterVersionSet(){if(null===C._jupyterVersion)throw new Error("JupyterLab version is not set in CompatibilityManager before trying to access it.")}static observeEditorVisibility(e){return 3===C._jupyterVersion?new IntersectionObserver((t=>{t[0].isIntersecting&&e.refresh()}),{root:null,threshold:.5}):null}}b=C,C._jupyterVersion=null,C._editorDefaultLanguages=void 0,C._EditorView=void 0,C._jupyterTheme=void 0,C.getMetadataComp=(e,t)=>{var n;return C.checkJupyterVersionSet(),4===C._jupyterVersion?null==e?void 0:e.getMetadata(t):null===(n=null==e?void 0:e.metadata)||void 0===n?void 0:n.get(t)},C.setMetadataComp=(e,t,n)=>{var o;C.checkJupyterVersionSet(),4===C._jupyterVersion?null==e||e.setMetadata(t,n):null===(o=null==e?void 0:e.metadata)||void 0===o||o.set(t,n)},C.deleteMetadataComp=(e,t)=>{var n;return C.checkJupyterVersionSet(),4===C._jupyterVersion?null==e?void 0:e.deleteMetadata(t):null===(n=null==e?void 0:e.metadata)||void 0===n?void 0:n.delete(t)},C.getFileComp=e=>{var t;C.checkJupyterVersionSet();const n=null===(t=e.tracker.currentWidget)||void 0===t?void 0:t.selectedItems().next();return 4===C._jupyterVersion?null==n?void 0:n.value:n},C.getCellsArrComp=e=>(C.checkJupyterVersionSet(),e?Array.from({length:e.length},((t,n)=>e.get(n))):null),C.getCodeMirrorOptionsComp=()=>(C.checkJupyterVersionSet(),4===C._jupyterVersion?{extensions:[b._jupyterTheme,b._EditorView.lineWrapping,b._EditorView.editable.of(!1)],languages:C._editorDefaultLanguages}:{config:{readOnly:!0}}),C.getNextWidgetValueComp=e=>{var t;return C.checkJupyterVersionSet(),4===C._jupyterVersion?null===(t=e.next())||void 0===t?void 0:t.value:e.next()};const v=(e,t)=>{var n,o;return`displayRealTime=${null===(n=e.displayRealTime[t])||void 0===n||n}`+(e.t1ISOString[t]?"&t1="+e.t1ISOString[t]:"")+(e.t2ISOString[t]?"&t2="+e.t2ISOString[t]:"")+(e.sortBy[t]?"&sortBy="+e.sortBy[t]:"")+((null===(o=e.selectedGroups[t])||void 0===o?void 0:o.length)>0?"&selectedGroups="+encodeURIComponent(JSON.stringify(e.selectedGroups[t])):"")},k=async(e,t)=>{const n=await w(e,t);if(401===n.status){const o=await n.json();if("expired_token"===(null==o?void 0:o.status)){if(await _())return w(e,t);console.log(`${r}: Token refresh failed.`)}}return n},w=async(e,t)=>{const n={headers:{Authorization:`Bearer ${sessionStorage.getItem(c)}`}},o={...n,...t,headers:{...n.headers,...(null==t?void 0:t.headers)||{}}};return fetch(e,o)},_=async()=>{const e=await fetch(`${Ut}/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&&C.getMetadataComp(e.context.model,g.notebookId)&&C.getMetadataComp(e.context.model,g.cellMapping)),f=(e,t)=>!(!e||!t)&&e.length===t.length&&e.every(((e,n)=>e===t[n])),E=e=>e.toLocaleString("sv-SE").slice(0,-3),S=e=>`${e.getDate().toString().padStart(2,"0")}/${(e.getMonth()+1).toString().padStart(2,"0")} ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}`;var x=n(6029),N=n.n(x),I=n(3764),D=n(8690);const M=e=>{const[t,n]=(0,x.useState)(!1);return N().createElement("div",null,N().createElement("p",null,"Successfully uploaded, can be downloaded accessing:"),N().createElement("div",{className:"unianalytics-link-container"},N().createElement("div",{className:"unianalytics-link"},e.url),N().createElement("div",{className:"unianalytics-link-button-container"},N().createElement("button",{className:"unianalytics-link-button",onClick:()=>{navigator.clipboard.writeText(e.url).then((()=>{n(!0)})).catch((e=>{console.error(`${r}: Error copying to clipboard: `,e)}))}},t?N().createElement(I.checkIcon.react,null):N().createElement(I.copyIcon.react,null)))))};const O=new I.LabIcon({name:`${r}:visu-icon`,svgstr:'<svg xmlns="http://www.w3.org/2000/svg" width="801px" height="845px" viewBox="0 0 801 845">\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM387.000000,138.000000 \n\tC498.142059,138.000015 608.784363,138.106552 719.425842,137.852219 \n\tC731.901794,137.823547 741.405090,147.216324 741.147522,159.494492 \n\tC740.644409,183.478592 741.009399,207.480728 740.995667,231.475388 \n\tC740.988647,243.724152 732.716797,251.995575 720.458984,251.995956 \n\tC547.497437,252.001495 374.535889,252.001434 201.574356,251.996124 \n\tC189.289490,251.995743 181.011719,243.747238 181.004547,231.508698 \n\tC180.990280,207.180771 180.990768,182.852859 181.004318,158.524933 \n\tC181.011139,146.276291 189.283295,138.005981 201.540726,138.004242 \n\tC263.193817,137.995529 324.846924,138.000107 387.000000,138.000000 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM585.000000,602.000000 \n\tC584.999939,619.325134 584.662598,636.159729 585.135315,652.971619 \n\tC585.389893,662.026428 574.929565,672.140991 566.068176,672.127258 \n\tC443.961212,671.938232 321.853912,672.004211 199.746674,671.990967 \n\tC189.901947,671.989868 181.021255,663.118469 181.010071,653.290161 \n\tC180.981430,628.135742 181.228653,602.978149 180.877518,577.828613 \n\tC180.753326,568.934387 190.961166,558.888672 199.629715,558.899292 \n\tC321.570190,559.048645 443.510895,558.993164 565.451538,559.013611 \n\tC576.357910,559.015442 584.922241,567.620361 584.989990,578.511169 \n\tC585.037720,586.173828 584.999756,593.837036 585.000000,602.000000 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM88.108398,89.952209 \n\tC98.405724,110.302505 108.714127,130.647202 118.993515,151.006561 \n\tC122.027649,157.015930 124.979767,163.066742 128.341644,169.849442 \n\tC118.648453,169.849442 109.747803,169.849442 100.429153,169.849442 \n\tC100.429153,362.281067 100.429153,554.170410 100.429153,746.530701 \n\tC277.650726,746.530701 454.991821,746.530701 632.848511,746.530701 \n\tC632.848511,737.834412 632.848511,729.237061 632.848511,719.024597 \n\tC661.517517,733.293213 689.138123,747.040100 718.055725,761.432434 \n\tC689.538452,775.702026 661.900940,789.531433 633.221680,803.882141 \n\tC633.221680,794.086548 633.221680,785.407837 633.221680,775.998657 \n\tC630.080139,775.998657 627.647522,775.998657 625.214905,775.998657 \n\tC446.394989,775.998535 267.575104,775.987793 88.755196,776.036011 \n\tC81.436424,776.037964 75.688042,773.737122 72.946358,766.585999 \n\tC72.095207,764.365967 72.036018,761.746521 72.035538,759.309814 \n\tC71.996758,565.657715 71.999886,372.005585 71.999870,178.353455 \n\tC71.999870,175.868805 71.999863,173.384155 71.999863,169.951614 \n\tC63.762573,169.951614 55.847210,169.951614 47.537605,169.537201 \n\tC47.694538,167.563828 48.088642,165.926636 48.820351,164.457596 \n\tC60.280804,141.448654 71.741646,118.439545 83.350739,95.505569 \n\tC84.420113,93.392990 86.498528,91.791183 88.108398,89.952209 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM401.000000,462.000000 \n\tC334.043701,462.000031 267.586212,461.806152 201.132416,462.212341 \n\tC191.340515,462.272186 180.483932,451.985443 180.776566,441.675262 \n\tC181.470917,417.211090 181.309845,392.707855 180.840012,368.233002 \n\tC180.664536,359.091675 191.110733,348.815643 200.221436,348.846802 \n\tC278.335815,349.114105 356.451508,348.995880 434.566803,349.004578 \n\tC446.758179,349.005951 454.990509,357.324249 454.996460,369.619904 \n\tC455.008209,393.937256 454.656525,418.261902 455.175049,442.568207 \n\tC455.372375,451.815918 444.949646,462.702484 435.468567,462.153870 \n\tC424.180542,461.500610 412.825836,462.000000 401.000000,462.000000 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM88.048347,89.607422 \n\tC86.498528,91.791183 84.420113,93.392990 83.350739,95.505569 \n\tC71.741646,118.439545 60.280804,141.448654 48.820351,164.457596 \n\tC48.088642,165.926636 47.694538,167.563828 47.072289,169.478149 \n\tC46.205418,169.833496 45.409630,169.833496 43.604004,169.833496 \n\tC57.749477,141.531204 71.589005,113.841034 85.790382,85.426895 \n\tC86.780373,87.154594 87.384331,88.208618 88.048347,89.607422 \nz"/>\n</svg>'}),T=new I.LabIcon({name:`${r}:analytics-replay-icon`,svgstr:'<svg xmlns="http://www.w3.org/2000/svg" width="801px" height="845px" viewBox="0 0 801 845">\n<path xmlns="http://www.w3.org/2000/svg" class="jp-custom-icon jp-icon3 jp-icon-selectable" fill="#616161" \n\td="\nM465.000000,137.000000 \n\tC550.147888,137.000031 634.796204,137.135956 719.443115,136.850784 \n\tC731.874146,136.808899 741.408020,146.187546 741.148132,158.511917 \n\tC740.642395,182.495926 741.009705,206.498123 740.995605,230.492798 \n\tC740.988403,242.737381 732.714661,250.995651 720.441528,250.996048 \n\tC547.479980,251.001465 374.518402,251.001480 201.556839,250.996048 \n\tC189.284561,250.995667 181.011414,242.736694 181.004410,230.491180 \n\tC180.990524,206.163254 180.990494,181.835327 181.004410,157.507401 \n\tC181.011429,145.262772 189.285263,137.005096 201.558258,137.004089 \n\tC289.205505,136.996857 376.852753,137.000092 465.000000,137.000000 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" class="jp-custom-icon jp-icon3 jp-icon-selectable" fill="#616161" \n\td="\nM635.148926,720.089355 \n\tC662.544739,733.712830 689.585266,747.259888 717.960327,761.475464 \n\tC689.524719,775.703430 661.804504,789.573425 633.158691,803.906555 \n\tC633.158691,794.057861 633.158691,785.472473 633.158691,775.998657 \n\tC630.247986,775.998657 627.834717,775.998657 625.421509,775.998657 \n\tC446.590027,775.998535 267.758545,775.986877 88.927094,776.039978 \n\tC81.632454,776.042114 75.823845,773.875000 73.007057,766.744446 \n\tC72.134315,764.535095 72.038582,761.913086 72.038055,759.479919 \n\tC71.996544,565.648621 71.999878,371.817291 71.999847,177.985962 \n\tC71.999840,175.530502 71.999847,173.075027 71.999847,170.132675 \n\tC62.473114,170.132675 53.538857,170.132675 43.464531,170.132675 \n\tC57.739803,141.563171 71.583488,113.857414 85.991348,85.022568 \n\tC100.325996,113.683899 114.169044,141.362305 128.404572,169.825470 \n\tC118.663963,169.825470 109.765915,169.825470 100.439240,169.825470 \n\tC100.439240,362.269653 100.439240,554.167786 100.439240,746.533813 \n\tC277.665100,746.533813 455.014313,746.533813 633.001404,746.533813 \n\tC633.001404,738.783020 632.924316,731.166138 633.081543,723.554016 \n\tC633.106140,722.362305 634.196167,721.192627 635.148926,720.089355 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" class="jp-custom-icon jp-icon3 jp-icon-selectable" fill="#616161" \n\td="\nM463.795166,663.684082 \n\tC458.944733,669.057251 453.354919,671.110291 446.353668,671.097351 \n\tC364.544098,670.945618 282.733490,670.850952 200.925110,671.198853 \n\tC191.268799,671.239868 180.533325,660.920715 180.790894,650.957153 \n\tC181.427948,626.314026 181.262314,601.639160 180.862076,576.986084 \n\tC180.716492,568.018616 191.031570,557.844238 199.978745,557.868408 \n\tC282.621094,558.091919 365.264313,557.994446 447.907257,558.007080 \n\tC459.506805,558.008850 467.978638,566.433594 467.991608,577.972778 \n\tC468.018402,601.799255 467.876343,625.626953 468.096619,649.451355 \n\tC468.145020,654.685852 466.992889,659.222717 463.795166,663.684082 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" class="jp-custom-icon jp-icon3 jp-icon-selectable" fill="#616161" \n\td="\nM557.000000,367.000000 \n\tC556.999878,427.464691 556.982544,487.429382 557.045776,547.393982 \n\tC557.049255,550.719543 557.078552,554.505432 553.650879,555.378540 \n\tC550.837891,556.095093 546.851746,555.555786 544.433716,553.972473 \n\tC506.113861,528.881958 467.962555,503.533997 429.774536,478.242218 \n\tC415.618622,468.866821 401.455353,459.502563 387.319794,450.096619 \n\tC381.033081,445.913391 380.988831,440.087341 387.222076,435.936890 \n\tC426.457855,409.811432 465.689392,383.679504 504.966309,357.616028 \n\tC518.141479,348.873199 531.337463,340.149567 544.790222,331.848694 \n\tC547.199219,330.362274 551.254211,330.038330 553.899048,330.988129 \n\tC555.559692,331.584442 556.774353,335.530975 556.863098,338.021729 \n\tC557.200989,347.504089 556.999756,357.005615 557.000000,367.000000 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" class="jp-custom-icon jp-icon3 jp-icon-selectable" fill="#616161" \n\td="\nM662.999878,373.002136 \n\tC684.378784,358.950073 705.376892,344.957733 726.473572,331.115723 \n\tC731.136841,328.056000 738.202637,330.252441 738.172729,337.496490 \n\tC737.882996,407.806915 738.031677,478.119171 737.858948,548.430359 \n\tC737.853027,550.836487 736.303223,554.662598 734.552917,555.299866 \n\tC732.057861,556.208313 728.103699,555.703186 725.818054,554.206116 \n\tC687.347046,529.008789 649.040222,503.560883 610.693237,478.174072 \n\tC596.525146,468.794342 582.332336,459.451782 568.181335,450.046326 \n\tC561.987366,445.929535 562.066284,440.056030 568.361389,435.876099 \n\tC598.986938,415.540466 629.630798,395.232300 660.262817,374.906281 \n\tC661.091248,374.356567 661.858765,373.714844 662.999878,373.002136 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" class="jp-custom-icon jp-icon3 jp-icon-selectable" fill="#616161" \n\td="\nM345.865936,362.817200 \n\tC345.963379,389.902039 346.020630,416.563477 345.975037,443.224792 \n\tC345.960510,451.719543 336.809052,460.960968 328.346283,460.971985 \n\tC285.187714,461.028076 242.029007,461.022461 198.870422,460.978516 \n\tC190.134705,460.969635 181.033173,451.740753 181.017441,442.941589 \n\tC180.971573,417.279785 180.967712,391.617798 181.019791,365.955994 \n\tC181.037552,357.196228 190.207504,348.027222 198.972824,348.019165 \n\tC241.964783,347.979645 284.956940,347.947144 327.948639,348.056610 \n\tC334.781342,348.074005 339.684326,351.915222 343.185669,357.593597 \n\tC344.139221,359.140137 344.923798,360.790863 345.865936,362.817200 \nz"/>\n</svg>'}),R=new I.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>'}),A=new I.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 L=n(3748);const B={displayDashboard:!0,hasNotebookId:!1},$=(0,L.createSlice)({name:"tocdashboard",initialState:B,reducers:{setDisplayHideDashboard:(e,t)=>{e.displayDashboard=t.payload},setHasNotebookId:(e,t)=>{e.hasNotebookId=t.payload}}}),{setDisplayHideDashboard:H,setHasNotebookId:j}=$.actions,P=$.reducer,F={navigationState:[{pageName:"Notebook"}]},U=(0,L.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:z,navigateToCell:V,navigateToHistory:W,resetNavigationState:G}=U.actions,Q=U.reducer,J=(0,L.createSlice)({name:"commondashboard",initialState:{notebookCells:null,refreshBoolean:!1,dashboardQueryArgs:{displayRealTime:{},t1ISOString:{},t2ISOString:{},selectedGroups:{},sortBy:{}}},reducers:{setDashboardQueryArgsT1:(e,t)=>{const{notebookId:n,t1ISOString:o}=t.payload;e.dashboardQueryArgs.t1ISOString[n]=o},setDashboardQueryArgsT2:(e,t)=>{const{notebookId:n,t2ISOString:o}=t.payload;e.dashboardQueryArgs.t2ISOString[n]=o},setDashboardQueryArgsSelectedGroups:(e,t)=>{const{notebookId:n,groups:o}=t.payload,a=e.dashboardQueryArgs.selectedGroups[n]||[];if(!f(a,o))return{...e,dashboardQueryArgs:{...e.dashboardQueryArgs,selectedGroups:{...e.dashboardQueryArgs.selectedGroups,[n]:o}}}},setDashboardQueryArgsDisplayRealTime:(e,t)=>{const{notebookId:n,displayRealTime:o}=t.payload;e.dashboardQueryArgs.displayRealTime[n]=o},setSortBy:(e,t)=>{const{notebookId:n,sortCriterion:o}=t.payload;e.dashboardQueryArgs.sortBy[n]=o},setNotebookCells:(e,t)=>{e.notebookCells=t.payload},refreshDashboards:e=>{e.refreshBoolean=!e.refreshBoolean}}}),{setDashboardQueryArgsT1:K,setDashboardQueryArgsT2:q,setDashboardQueryArgsSelectedGroups:X,setDashboardQueryArgsDisplayRealTime:Z,setSortBy:Y,setNotebookCells:ee,refreshDashboards:te}=J.actions,ne=J.reducer,oe=(0,L.configureStore)({reducer:{tocdashboard:P,sidedashboard:Q,commondashboard:ne}});var ae,se=n(9282),le=n(4705),re=n(4901);class ie{}!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"}(ae||(ae={}));var ce=n(9156);const de=oe.dispatch;class he{constructor(){this._socket=null}_createSocket(e,t){this._socket=(0,ce.io)(`${zt}?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",(n=>{console.log(`${r}: SocketIO connection closed (reason: ${n}) for:`,{notebookId:e,userId:t})})),this._socket.on("refreshDashboard",(()=>{de(te()),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&&Pt&&this._createSocket(e,Pt)}closeSocketConnection(){this._socket&&this._socket.close(),this._socket=null}sendMessageToUser(e,t){this._socket&&this._socket.emit("send_message",{userId:e,message:t})}}const ue=oe.dispatch;class me{constructor(){this._panelUpdatedSignal=new re.Signal(this),this._panelSwitchedSignal=new re.Signal(this),this._ongoingContextId="",this._ongoingCheckId="",this._panel=null,this._monitor=null,this._validityChecks={tag:null,registered:ae.LOADING},this._websocketManager=new he}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),jt(null),this._validityChecks={tag:null,registered:ae.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 le.ActivityMonitor({signal:this._panel.context.model.contentChanged,timeout:1e3}),this._monitor.activityStopped.connect(this._onPanelUpdated,this),y(this._panel)){const e=C.getMetadataComp(this._panel.model,g.notebookId);jt(e),this._validityChecks={tag:e,registered:ae.LOADING},this._performRegistrationCheck()}this._onPanelUpdated()}}))}_performRegistrationCheck(){const e=crypto.randomUUID();this._ongoingCheckId=e;let t=ae.ERROR;k(`${Ut}/dashboard/${this._validityChecks.tag}/check`).then((e=>e.json())).then((e=>{(null==e?void 0:e.status)?"expired_token"===e.status?t=ae.EXPIREDTOKEN:"not_found"===e.status?t=ae.NOTFOUND:"no_user_permission"===e.status?t=ae.USERNOTAUTHORIZED:"success"===e.status&&(t=ae.SUCCESS):t=ae.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===ae.SUCCESS&&(ue(G()),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 n=C.getCellsArrComp(null===(t=null===(e=this.panel)||void 0===e?void 0:e.model)||void 0===t?void 0:t.cells);if(n){const e=n.map((e=>e.id));if(!f(e,this._notebookCells)){this._notebookCells=e;const t=n.map((e=>({id:e.id,cellType:e.type})));return ue(ee(t)),!0}}else this._notebookCells=null;return!1}}var pe=n(7760),ge=n(8559);const be=()=>N().createElement("div",{style:{width:"100%",textAlign:"center",margin:"50px 0"}},N().createElement(ge.Spinner,{style:{width:"50px",height:"50px",fontSize:"x-large"},animation:"border",role:"status",variant:"primary"})),Ce=({title:e,placeholderText:t="No data for the opened notebook"})=>N().createElement("div",{className:"dashboard-TableOfContents"},N().createElement("div",{className:"dashboard-stack-panel-header"},"Side Panel Dashboard"),N().createElement("div",{className:"dashboard-TableOfContents-placeholder"},N().createElement("div",{className:"dashboard-TableOfContents-placeholderContent"},N().createElement("h3",null,e),N().createElement("p",null,t))));class ve extends D.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 x.createElement(Ce,{title:"No Notebook",placeholderText:"Open a notebook to start viewing its content."});if(!this._panelManager.panel.context.isReady)return x.createElement(be,null);if(!this._panelManager.validityChecks.tag)return x.createElement(Ce,{title:"Notebook not Tagged for Tracking"});switch(this._panelManager.validityChecks.registered){case ae.LOADING:return x.createElement(be,null);case ae.SUCCESS:return x.createElement(pe.Provider,{store:oe},this.computeComponentToRender());default:return x.createElement(Ce,{title:this._panelManager.validityChecks.registered})}}}const ke=ve;var we=n(2535);class _e{static setPermission(e){_e._isInteractionRecordingEnabled=e}}_e._isInteractionRecordingEnabled=!1,_e.sendInteraction=e=>{_e._isInteractionRecordingEnabled&&fetch(`${Ut}/dashboard_interaction/add`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,dashboard_user_id:Pt,time:(new Date).toISOString(),notebook_id:Ht})})};const ye=oe.dispatch,fe=()=>{const e=(0,pe.useSelector)((e=>e.sidedashboard.navigationState));return N().createElement(ge.Stack,{className:"breadcrumb-container",direction:"horizontal",gap:2},e.map(((t,n)=>N().createElement("div",{className:n===e.length-1?"breadcrumb-tile-active breadcrumb-tile":"breadcrumb-tile",onClick:()=>{"Notebook"===t.pageName?_e.sendInteraction({click_type:"ON",signal_origin:"BREADCRUMB_TO_NOTEBOOK"}):"Cell"===t.pageName&&_e.sendInteraction({click_type:"ON",signal_origin:"BREADCRUMB_TO_CELL"}),n!==e.length-1&&ye(W(n))}},t.pageName))),N().createElement("div",{className:"breadcrumb-buttons-container"},N().createElement(ge.Button,{className:"dashboard-button",onClick:()=>{_e.sendInteraction({click_type:"ON",signal_origin:"DASHBOARD_REFRESH_BUTTON"}),ye(te())}},N().createElement(we.ArrowClockwise,{className:"dashboard-icon"}))))},Ee=oe.dispatch,Se=[{value:1,displayName:"All Data",disabledDatePicker:!0},{value:2,displayName:"From t<sub>1</sub>",disabledDatePicker:!1}],xe=e=>{const[t,n]=(0,x.useState)(!1),o=(0,pe.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),a=()=>{const t=o.t1ISOString[e.notebookId]?1:0;return Se[t]},s=()=>{const t=o.t1ISOString[e.notebookId];return t?new Date(t):new Date},l=()=>void 0===o.displayRealTime[e.notebookId]||o.displayRealTime[e.notebookId],[r,i]=(0,x.useState)(a()),[c,d]=(0,x.useState)(s()),[h,u]=(0,x.useState)(l),m=E(new Date);return(0,x.useEffect)((()=>{Ee(K({notebookId:e.notebookId,t1ISOString:r.disabledDatePicker?null:c.toISOString()})),Ee(Z({notebookId:e.notebookId,displayRealTime:h}))}),[c,r,h]),N().createElement(ge.Dropdown,{show:t,onToggle:()=>{_e.sendInteraction({click_type:t?"OFF":"ON",signal_origin:"DASHBOARD_FILTER_TIME"}),t||(d(s()),i(a()),u(l())),n(!t)},className:"custom-dropdown"},N().createElement(ge.Dropdown.Toggle,{className:"dashboard-button"},!(h&&r.disabledDatePicker)&&N().createElement("span",{className:"dashboard-filter-red-dot"}),N().createElement(we.CalendarWeek,{className:"dashboard-icon"})),N().createElement(ge.Dropdown.Menu,null,N().createElement(ge.Dropdown.Header,null,"Data Timeframe Selector"),N().createElement(ge.Dropdown.Divider,null),N().createElement("div",{className:"custom-dropdown-container custom-dropdown-item"},N().createElement(ge.Form.Check,{id:"time-checkbox-include-all",type:"checkbox",label:"Only show active users",checked:h,onChange:e=>u(e.target.checked)})),N().createElement(ge.Dropdown.Divider,null),N().createElement("div",{className:"dashboard-calendar-container"},N().createElement("div",{className:"cell-radio-container"},N().createElement(ge.ButtonGroup,{size:"sm"},Se.map(((e,t)=>N().createElement(ge.ToggleButton,{key:`calendar-filter-${t}`,id:`calendar-filter-${t}`,type:"radio",variant:"outline-primary",name:"radio",value:e.value,checked:r.value===e.value,onChange:e=>{i(Se[Number(e.currentTarget.value)-1])}},N().createElement("span",{dangerouslySetInnerHTML:{__html:e.displayName}}))))))),N().createElement("div",{className:"dashboard-calendar-container"},N().createElement("div",{className:"dashboard-calendar-input-wrapper "+(r.disabledDatePicker?"disabled":"")},N().createElement("div",null,"t",N().createElement("sub",null,"1")),N().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:E(c),onChange:e=>d(new Date(e.target.value)),max:m})))))},Ne=({PassedComponent:e,title:t})=>N().createElement(ge.Row,{className:"mb-4"},N().createElement(ge.Card,{className:"chart-card"},N().createElement(ge.Card.Title,{className:"chart-card-title"},t),N().createElement(ge.Card.Body,{className:"chart-card-body"},e)));var Ie=n(7885);const De={maintainAspectRatio:!1,plugins:{legend:{labels:{color:"#969696"}},tooltip:{callbacks:{title:function(e){return`Code cell ${e[0].label}`}}}},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"}}}},Me=`> ${Math.floor(30)}'`,Oe={maintainAspectRatio:!1,plugins:{legend:{display:!0,labels:{usePointStyle:!0,color:"#969696"}},tooltip:{usePointStyle:!0,callbacks:{title:function(e){return`Cell ${e[0].raw.x}`},label:function(e){return[`${e.raw.userCount} of ${e.raw.totalCount} users focused on that cell`,`Average focus time: ${Te(e.raw.y)}`]}}}},scales:{x:{type:"category",ticks:{color:"#969696"},title:{display:!0,text:"Cell (markdown & code)",color:"#969696"}},y:{beginAtZero:!0,ticks:{count:6,precision:0,color:"#969696",callback:function(e,t){return"number"==typeof e?Te(e):e}},title:{display:!0,text:"Average time spent on the cell",color:"#969696"}}}},Te=e=>{const t=Math.floor(e/60);return e>=1800?Me:`${t>0?t+"'":""}${(e%60).toFixed(0)}"`},Re=e=>{const[t,n]=(0,x.useState)({labels:[],datasets:[]}),o=(0,pe.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),a=(0,pe.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,pe.useSelector)((e=>e.commondashboard.notebookCells));return(0,x.useEffect)((()=>{k(`${Ut}/dashboard/${e.notebookId}/user_code_execution?${v(o,e.notebookId)}`).then((e=>e.json())).then((e=>{const t=(null==s?void 0:s.filter((e=>"code"===e.cellType)))||[],o={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,n)=>{const a=e.find((e=>e.cell===t.id));a&&(o.datasets[0].data[n]=parseFloat(a.cell_click_pct),o.datasets[1].data[n]=parseFloat(a.code_exec_pct),o.datasets[2].data[n]=parseFloat(a.code_exec_ok_pct))})),n(o)}))}),[o,a]),N().createElement(Ne,{PassedComponent:N().createElement(Ie.Bar,{data:t,options:De}),title:"Code cell executions across users"})},Ae=oe.dispatch,Le=e=>{const[t,n]=(0,x.useState)(!1),o=(0,pe.useSelector)((t=>t.commondashboard.dashboardQueryArgs.selectedGroups[e.notebookId])),[a,s]=(0,x.useState)({includeAllChecked:void 0===o||0===o.length,groupList:[]});(0,x.useEffect)((()=>{if(l){let t;t=a.includeAllChecked?[]:a.groupList.filter((e=>!0===e.checked)).map((e=>e.name)),Ae(X({notebookId:e.notebookId,groups:t}))}}),[a]);const[l,r]=(0,x.useState)(!1);return(0,x.useEffect)((()=>{r(!1),k(`${Ut}/dashboard/${e.notebookId}/getgroups`).then((e=>e.json())).then((e=>{const t=e.map((e=>({name:e,checked:null==o?void 0:o.includes(e)}))).sort(((e,t)=>e.checked!==t.checked?t.checked?1:-1:e.name.localeCompare(t.name)));s((e=>({...e,groupList:t}))),r(!0)}))}),[e.notebookId]),N().createElement(ge.Dropdown,{id:"group-dropdown",className:"custom-dropdown",show:t,onToggle:()=>{_e.sendInteraction({click_type:t?"OFF":"ON",signal_origin:"DASHBOARD_FILTER_GROUPS"}),t||s((e=>{const t=void 0===o||0===o.length,n=e.groupList.map((e=>({name:e.name,checked:null==o?void 0:o.includes(e.name)}))).sort(((e,t)=>e.checked!==t.checked?t.checked?1:-1:e.name.localeCompare(t.name)));return{...e,includeAllChecked:t,groupList:n}})),n(!t)}},N().createElement(ge.Dropdown.Toggle,{className:"dashboard-button"},a.groupList.some((e=>!0===e.checked))&&N().createElement("span",{className:"dashboard-filter-red-dot"}),N().createElement(we.PeopleFill,{className:"dashboard-icon"})),N().createElement(ge.Dropdown.Menu,null,N().createElement(ge.Dropdown.Header,null,"Filter by group of users"),N().createElement(ge.Dropdown.Divider,null),N().createElement("div",{className:"custom-dropdown-container custom-dropdown-item"},N().createElement(ge.Form.Check,{id:"group-checkbox-include-all",type:"checkbox",label:"Include all users",checked:a.includeAllChecked,onChange:e=>{return t=e.target.checked,void s((e=>{const n=e.groupList.map((e=>({...e,checked:!1})));return{...e,includeAllChecked:t,groupList:t?n:e.groupList}}));var t}})),N().createElement(ge.Dropdown.Divider,null),N().createElement("div",{className:"group-dropdown-scroll "+(a.includeAllChecked?"disabled":"")},a.groupList.length>0?a.groupList.map(((e,t)=>N().createElement("div",{className:"custom-dropdown-item "+(a.includeAllChecked?"disabled":"")},N().createElement(ge.Form.Check,{id:`group-checkbox-${t}`,type:"checkbox",disabled:!!a.includeAllChecked||void 0,label:e.name,title:e.name,checked:e.checked,onChange:()=>(e=>{s((t=>{const n=[...t.groupList];return n[e]={...n[e],checked:!n[e].checked},{...t,groupList:n}}))})(t)})))):N().createElement(ge.Dropdown.Item,{disabled:!0},"No groups available"))))},Be=e=>{const[t,n]=(0,x.useState)({labels:[],datasets:[]}),o=(0,pe.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),a=(0,pe.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,pe.useSelector)((e=>e.commondashboard.notebookCells));return(0,x.useEffect)((()=>{k(`${Ut}/dashboard/${e.notebookId}/user_cell_duration_time?${v(o,e.notebookId)}`).then((e=>e.json())).then((e=>{const t=e.durations,o=e.total_user_count,a=[];t&&o&&(null==s||s.map(((e,n)=>{const s=t.find((t=>t.cell===e.id));if(s){const e=s.user_count/o,t=1,l=10;a.push({x:n+1,y:Math.min(s.average_duration,1800),r:Math.min(Math.max(Math.round(t+(l-1)*e),t),l),userCount:s.user_count,totalCount:o})}})));const l={labels:s?Array.from({length:s.length},((e,t)=>t+1)):[],datasets:[{label:" fraction of users that focused on the cell",data:a,backgroundColor:"rgba(54, 162, 235, 0.2)",borderColor:"rgba(54, 162, 235, 1)",borderWidth:1}]};n(l)}))}),[o,a]),N().createElement(Ne,{PassedComponent:N().createElement(Ie.Bubble,{data:t,options:Oe}),title:"Time spent on each cell across users"})},$e=e=>N().createElement(N().Fragment,null,N().createElement("div",{className:"dashboard-title-container"},N().createElement("div",{className:"dashboard-title-text"},e.notebookName),N().createElement("div",{className:"dashboard-dropdown-container"},N().createElement(Le,{notebookId:e.notebookId}),N().createElement(xe,{notebookId:e.notebookId}))),N().createElement(ge.Row,null,N().createElement(ge.Col,null,N().createElement(Re,{notebookId:e.notebookId}),N().createElement(Be,{notebookId:e.notebookId}))));var He=n(3231),je=n.n(He);const Pe=[{key:"timeDesc",label:"Time (newest 1st)"},{key:"timeAsc",label:"Time (oldest 1st)"},{key:"inputAsc",label:"Input (shortest 1st)"},{key:"inputDesc",label:"Input (longest 1st)"},{key:"outputAsc",label:"Output (shortest 1st)"},{key:"outputDesc",label:"Output (longest 1st)"}],Fe=Pe[0].key,Ue=oe.dispatch,ze=e=>{const t=(0,pe.useSelector)((t=>t.commondashboard.dashboardQueryArgs.sortBy[e.notebookId]||Fe));return N().createElement(ge.Dropdown,{id:"order-by-dropdown",onSelect:t=>{t&&(_e.sendInteraction({click_type:"ON",signal_origin:"CELL_DASHBOARD_FILTER_SORT"}),Ue(Y({notebookId:e.notebookId,sortCriterion:t})))},className:"custom-dropdown"},N().createElement(ge.Dropdown.Toggle,{className:"dashboard-button"},t!==Fe&&N().createElement("span",{className:"dashboard-filter-red-dot"}),N().createElement(we.SortUp,{className:"dashboard-icon"})),N().createElement(ge.Dropdown.Menu,null,N().createElement(ge.Dropdown.Header,null,"Sort cells by"),N().createElement(ge.Dropdown.Divider,null),Pe.map(((e,n)=>N().createElement(ge.Dropdown.Item,{id:`sort-item-${n}`,eventKey:e.key,className:t===e.key?"highlighted":""},e.label)))))},Ve=e=>N().createElement(ge.Col,{md:12},N().createElement(ge.Card,{className:"cell-card"},N().createElement(ge.Card.Body,{style:{gap:"10px"}},N().createElement(ge.Row,{className:"cell-card-wrapper"},N().createElement(ge.Col,{md:12,className:"cell-user-title"},N().createElement(ge.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}`)),N().createElement(ge.Col,{md:12},e.ExecutionContent),(()=>{if(e.value.t_finish){const t=new Date(e.value.t_finish),n=`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 N().createElement(ge.Col,{md:12,className:"cell-execution-displayed-time"},n)}return null})()))));var We=n(2779);const Ge=e=>{const[t,n]=(0,x.useState)(null);return(0,x.useEffect)((()=>{(()=>{const t=We.marked.parser(We.marked.lexer(e.markdownContent));n(e.sanitizer.sanitize(t))})()}),[e.markdownContent]),N().createElement("div",{className:"cell-content-container"},t&&N().createElement("div",{className:"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput",dangerouslySetInnerHTML:{__html:t}}))};var Qe=n(8531),Je=n(374);const Ke=({cell_input:e,language_mimetype:t,className:n})=>{const o=(0,x.useRef)(null);return(0,x.useEffect)((()=>{const n=o.current;if(n){n.innerHTML="";const o=new Je.CodeEditor.Model;o.mimeType=t,o.sharedModel.setSource(e);const a=new Qe.CodeMirrorEditor({host:n,model:o,...C.getCodeMirrorOptionsComp()}),s=C.observeEditorVisibility(a);return s&&s.observe(n),()=>{s&&s.disconnect()}}}),[e,t]),N().createElement("div",{ref:o,className:n})};var qe=n(987);const Xe=new s.RenderMimeRegistry({initialFactories:s.standardRendererFactories}),Ze=({cell_output_model:e})=>{const t=(0,x.useRef)(null),n=new qe.OutputAreaModel;return(0,x.useEffect)((()=>{n.clear(),n.fromJSON(e);const o=t.current;if(o){o.innerHTML="";for(let e=0;e<n.length;++e){const t=n.get(e),a=Xe.preferredMimeType(t.data);if(a){const e=Xe.createRenderer(a);e.renderModel(t),o.appendChild(e.node)}}}}),[e]),N().createElement("div",{ref:t,className:"cell-content-container"})},Ye=e=>{const t=(0,x.useRef)([]),[n,o]=(0,x.useState)([]),[a,s]=(0,x.useState)(!0),l=(0,x.useRef)(0),r=(0,pe.useSelector)((e=>e.sidedashboard.navigationState)),i=(0,pe.useSelector)((e=>e.commondashboard.refreshBoolean)),c=(0,pe.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),[d,u]=(0,x.useState)(!0),[m,p]=(0,x.useState)(!0),[g,b]=(0,x.useState)(1),C=[{name:"All",value:1,status:"all"},{name:"Success",value:2,status:"ok"},{name:"Error",value:3,status:"error"}],w=C.map((e=>e.status)),_=e=>{o(e)},y=r[r.length-1].content,f=()=>{k(`${Ut}/dashboard/${e.notebookId}/cell/${y.cellId}?limit=10&offset=${l.current}&${v(c,e.notebookId)}`).then((e=>e.json())).then((e=>{e.length<10&&s(!1);const n=[...t.current,...e];t.current=n,_(n),l.current+=10}))};return(0,x.useEffect)((()=>{s(!0),t.current=[],l.current=0,f()}),[r,c,i]),(0,x.useEffect)((()=>()=>{s(!1),t.current=[],l.current=0,_([])}),[r]),N().createElement(N().Fragment,null,N().createElement("div",{className:"dashboard-title-container"},N().createElement("div",{className:"dashboard-title-text"},"Cell (",y.cellId,")"),N().createElement("div",{className:"dashboard-dropdown-container"},N().createElement(ze,{notebookId:e.notebookId}),N().createElement(Le,{notebookId:e.notebookId}),N().createElement(xe,{notebookId:e.notebookId}))),N().createElement(ge.Form,{className:"cell-filter-container",onSubmit:e=>e.preventDefault()},N().createElement("div",{className:"cell-radio-container"},N().createElement(ge.ButtonGroup,{size:"sm"},N().createElement(ge.ToggleButton,{style:{marginRight:"3px"},key:"0",id:"code-checkbox",type:"radio",variant:"outline-primary",value:"Code",checked:d,onClick:e=>{d&&!m?e.preventDefault():(_e.sendInteraction({click_type:d?"OFF":"ON",signal_origin:"CELL_DASHBOARD_FILTER_CODE_INPUT"}),u(!d))}},"Code"),N().createElement(ge.ToggleButton,{key:"1",id:"output-checkbox",type:"radio",variant:"outline-primary",value:"Output",checked:m,onClick:e=>{!d&&m?e.preventDefault():(_e.sendInteraction({click_type:m?"OFF":"ON",signal_origin:"CELL_DASHBOARD_FILTER_CODE_OUTPUT"}),p(!m))}},"Output"))),N().createElement("div",{className:"cell-radio-container"},N().createElement(ge.ButtonGroup,{size:"sm"},C.map(((e,t)=>N().createElement(ge.ToggleButton,{key:t,id:`filter-${t}`,type:"radio",variant:"outline-primary",name:"radio",value:e.value,checked:g===e.value,onChange:e=>{_e.sendInteraction({click_type:"ON",signal_origin:"CELL_DASHBOARD_FILTER_EXECUTION"}),b(Number(e.currentTarget.value))}},e.name)))))),N().createElement(je(),{style:{overflow:"hidden"},scrollableTarget:h,dataLength:n.length,next:f,hasMore:a,loader:N().createElement(be,null)},n.map(((t,n)=>N().createElement(ge.Row,{key:n},"MarkdownExecution"===t.cell_type&&["all","ok"].includes(w[g-1])?N().createElement(Ve,{value:t,index:n,ExecutionContent:N().createElement(Ge,{markdownContent:t.cell_input,sanitizer:e.sanitizer})}):N().createElement(N().Fragment,null,(1===g||w[g-1]===t.status)&&N().createElement(Ve,{value:t,index:n,ExecutionContent:N().createElement(N().Fragment,null,d&&N().createElement(Ke,{cell_input:t.cell_input,language_mimetype:t.language_mimetype,className:"cell-content-container"}),d&&m&&t.cell_output_model.length>0&&N().createElement("br",null),m&&t.cell_output_model.length>0&&N().createElement(Ze,{cell_output_model:t.cell_output_model}))})))))))};var et=n(8352);et.Chart.register(...et.registerables);const tt=e=>{const t=(0,pe.useSelector)((e=>e.sidedashboard.navigationState));return N().createElement("div",{className:"page-container",id:h},N().createElement(fe,null),(()=>{switch(t[t.length-1].pageName){case"Notebook":return N().createElement($e,{notebookId:e.notebookId,notebookName:e.notebookName});case"Cell":return N().createElement(Ye,{notebookId:e.notebookId,sanitizer:e.sanitizer});default:return null}})())};class nt extends ke{constructor(e,t){super(e),this.addClass("dashboard-react-widget"),this.title.caption="Side Dashboard",this.title.icon=O,this.id="unanalytics-side-dashboard",this.node.setAttribute("role","region"),this.node.setAttribute("aria-label","Side dashboard section"),this._sanitizer=t}onBeforeShow(e){_e.sendInteraction({click_type:"ON",signal_origin:"RIGHT_DASHBOARD_SHOW_HIDE"})}onBeforeHide(e){_e.sendInteraction({click_type:"OFF",signal_origin:"RIGHT_DASHBOARD_SHOW_HIDE"})}computeComponentToRender(){const e=this._panelManager.panel,t=this._panelManager.validityChecks.tag;return e&&t?x.createElement(tt,{notebookId:t,notebookName:e.sessionContext.name,sanitizer:this._sanitizer}):x.createElement(x.Fragment,null)}}const ot=(e,t)=>{const n=3*e/t+.1;return Math.min(1,n)},at=({data:e,cellId:t,commands:n})=>N().createElement(N().Fragment,null,e&&e[0]&&e[1]?N().createElement("div",{onClick:e=>{e.preventDefault(),n.execute(u.dashboardOpenDashboardPlayback,{from:"Toc",cell_id:t})},className:"dashboard-toc-react-component",style:{backgroundColor:`rgba(25, 118, 210, ${ot(e[0],e[1])})`}},N().createElement("span",{className:"dashboard-toc-react-text"},e[0]+"/"+e[1])):N().createElement("div",{className:"dashboard-toc-react-component"}));class st extends N().Component{render(){const{panel:e,heading:t,headings:n,addReactComponent:o,isFirstCellOccurrence:a,tocDashboardData:s,commands:l}=this.props,r=this.props.itemRenderer(e,t,n);return r?N().createElement("li",{className:"dashboard-tocItem",onClick:e=>{_e.sendInteraction({click_type:"ON",signal_origin:"TOC_HEADING_CLICKED"}),e.preventDefault(),e.stopPropagation(),t.onClick()}},r,o&&N().createElement(at,{cellId:t.cellRef.model.id,data:a?s:null,commands:l})):null}}const lt=e=>{const[t,n]=(0,x.useState)(null),o=(0,pe.useSelector)((e=>e.tocdashboard.displayDashboard)),a=(0,pe.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,pe.useSelector)((e=>e.commondashboard.dashboardQueryArgs));(0,x.useEffect)((()=>{l()}),[e.notebookCells,e.notebookPanel,a,s]),(0,x.useEffect)((()=>()=>{n(null)}),[e.notebookCells,e.notebookPanel]);const l=async()=>{const t=C.getMetadataComp(e.notebookPanel.model,g.notebookId);if(t&&e.notebookCells){try{const e=await k(`${Ut}/dashboard/${t}/toc?${v(s,t)}`);if(e.ok){const t=await e.json();return void n(t.data)}console.log(`${r}: Error:`,e.status)}catch(e){console.log(`${r}: Toc Fetch Error:`,e)}n(null)}},i=(t=>{const n=e.headings.map((e=>e.cellRef.model.id)),o=[...new Set(n)],a={},s=e.notebookCells;if(s&&t){const e=o.map((e=>s.indexOf(e)));e[0]=0,e.push(s.length);let n=0;for(let l=0;l<o.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;a[o[l]]=c,n+=c}a.total_count=n}return a})(t),c=new Set;return N().createElement("ul",{className:"dashboard-TableOfContents-content"},e.headings.map(((t,n)=>{const a=t.cellRef.model.id,s=!c.has(a);return s&&c.add(a),N().createElement(st,{panel:e.notebookPanel,heading:t,headings:e.headings,itemRenderer:e.itemRenderer,addReactComponent:o,isFirstCellOccurrence:s,tocDashboardData:[i[a],i.total_count],commands:e.commands,key:`${t.text}-${t.level}-${n++}`})})))};class rt extends ie{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 re.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&&C.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,n,o,a){this._numbering=e,this._numberingH1=t,this._syncCollapseState=n,this._showCode=o,this._showMarkdown=a,this._widget.update()}}function it(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 ct="jp-MarkdownHeadingCollapsed",dt="dashboard-toc-hr-collapsed";function ht(e,t,n,o,a,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:o+1,onClick:t(0),type:"code",prompt:n,cellRef:a,hasChild:!1,index:s})}return l[0]}function ut(e,t,n,o){if(t&&t.text){if(n&&"header"===n.type)for(let t=e.length-1;t>=0;t--)e[t]===n&&(e[t].hasChild=!0);o<0&&e.push(t),n=t}return[e,n]}const mt={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 pt(e,t,n,o,a,s=!1,l=!0,r,i){const c=e.querySelectorAll("h1, h2, h3, h4, h5, h6, p");let d=a;const h=[];for(const e of c){if("p"===e.nodeName.toLowerCase()){if(e.innerHTML){const o=n.sanitize(e.innerHTML,mt);h.push({level:d+1,html:o.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 a=n.sanitize(e.innerHTML,mt);a=a.replace("¶","");let c=parseInt(e.tagName[1],10);l||(c-=1),d=c;const u=Ct(o,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:a,onClick:t(e),type:"header",cellRef:r,hasChild:!1,index:i})}return h}function gt(e,t,n,o,a,s){return e&&"markdown"===e.type&&s?[t,n]=ut(t,e,n,o):e&&"header"===e.type&&([t,n,o]=function(e,t,n,o,a){const s=e.length;if(n&&"header"===n.type&&n.level<t.level)for(let t=s-1;t>=0;t--)e[t]===n&&(e[t].hasChild=!0);return(o>=t.level||o<0)&&(e.push(t),o=a?t.level:-1),[e,n=t,o]}(t,e,n,o,a)),[t,n,o]}const bt=6;function Ct(e,t){if(null===e)return;let n="";if(e=function(e,t){for(let n=t+1;n<=bt;n++)void 0!==e[n]&&(e[n]=void 0);return void 0===e[t]?e[t]=1:e[t]+=1,e}(e,t),t>=1){for(let o=1;o<=t;o++)n+=(void 0===e[o]?"0":e[o])+".";n+=" "}return n}function vt(e){const t=e.split("\n");let n=t[0].match(/^([#]{1,6}) (.*)/);return n?{text:n[2].replace(/\[(.+)\]\(.+\)/g,"$1"),level:n[1].length,type:"markdown"}:t.length>1&&(n=t[1].match(/^ {0,3}([=]{2,}|[-]{2,})\s*$/),n)?{text:t[0].replace(/\[(.+)\]\(.+\)/g,"$1"),level:"="===n[1][0]?1:2,type:"markdown-alt"}:(n=t[0].match(/<h([1-6]).*>(.*)<\/h\1>/i),n?{text:n[2],level:parseInt(n[1],10),type:"html"}:null)}function kt(e,t,n,o,a,s){const l=t(0),r=[];let i=o;for(const t of e.split("\n"))if(t){const e=vt(t);e?(r.push({text:e.text,level:e.level,numbering:Ct(n,e.level),onClick:l,type:"header",cellRef:a,hasChild:!1,index:s}),i=e.level):r.push({text:t,level:i+1,onClick:l,type:"markdown",cellRef:a,hasChild:!1,index:s})}return r}function wt(e,t,n){if(t.index>-1||(null==n?void 0:n.length)){const o=e.content.activeCellIndex,a=t.index;if(o&&a<o){const e=n.indexOf(t)+1;if(e>=n.length)return!0;if((null==n?void 0:n[e].index)>o)return!0}}return!1}const _t=oe.dispatch;function yt(e,t,n){let o=!0,a=!1;n&&n.composite.tocDashboardSettings&&(o=n.composite.tocDashboardSettings.numberingH1,a=n.composite.tocDashboardSettings.syncCollapseState);const s=new rt(e,{numbering:!1,numberingH1:o,syncCollapseState:a,sanitizer:t});return n&&n.composite.tocDashboardSettings&&n.changed.connect((()=>{s.numberingH1=n.composite.tocDashboardSettings.numberingH1,s.syncCollapseState=n.composite.tocDashboardSettings.syncCollapseState})),{options:s,toolbarGenerator:function(e){return function(e,t){return class extends x.Component{constructor(n){super(n),this.state={showCode:!0,showMarkdown:!1,numbering:!1,showVisuDashboard:B.displayDashboard},t.context.ready.then((()=>{if(t){t.content.activeCellChanged.connect((()=>{e.updateWidget()}));const n=C.getMetadataComp(t.model,"dashboard-toc-autonumbering"),o=C.getMetadataComp(t.model,"dashboard-toc-showcode"),a=C.getMetadataComp(t.model,"dashboard-toc-showmarkdowntxt");e.initializeOptions(n||e.numbering,e.numberingH1,e.syncCollapseState,o||e.showCode,a||e.showMarkdown),this.setState({showCode:e.showCode,showMarkdown:e.showMarkdown,numbering:e.numbering})}}))}toggleCode(){_e.sendInteraction({click_type:e.showCode?"OFF":"ON",signal_origin:"TOC_TOOLBAR_CODE"}),e.setShowCode(!e.showCode,t),this.setState({showCode:e.showCode})}toggleMarkdown(){_e.sendInteraction({click_type:e.showMarkdown?"OFF":"ON",signal_origin:"TOC_TOOLBAR_MARKDOWN"}),e.setShowMarkdown(!e.showMarkdown,t),this.setState({showMarkdown:e.showMarkdown})}toggleNumbering(){_e.sendInteraction({click_type:e.numbering?"OFF":"ON",signal_origin:"TOC_TOOLBAR_NUMBERED"}),e.setNumbering(!e.numbering,t),this.setState({numbering:e.numbering})}toggleShowVisuDashboard(){const e=this.state.showVisuDashboard;_e.sendInteraction({click_type:e?"OFF":"ON",signal_origin:"TOC_TOOLBAR_SHOW_HIDE"}),_t(H(!e)),this.setState({showVisuDashboard:!e})}refreshDashboard(){_e.sendInteraction({click_type:"ON",signal_origin:"TOC_TOOLBAR_REFRESH"}),_t(te())}render(){const e=x.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"},x.createElement(I.codeIcon.react,null)),t=x.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"},x.createElement(I.markdownIcon.react,null)),n=x.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"},x.createElement(I.numberingIcon.react,null)),o=x.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?x.createElement(R.react,null):x.createElement(A.react,null)),a=x.createElement("div",{onClick:e=>this.refreshDashboard(),role:"text","aria-label":"Refresh Dashboard",title:"Refresh Dashboard",className:"dashboard-toc-toolbar-icon"},x.createElement(I.refreshIcon.react,null));return x.createElement("div",null,x.createElement("div",{className:"dashboard-toc-toolbar"},x.createElement("div",{className:"dashboard-toc-toolbar-compartment"},e,t,n),x.createElement("div",{className:"dashboard-toc-toolbar-compartment"},o,a)))}}}(s,e)},itemRenderer:function(e,t,n=[]){return function(e,t,n,o=[]){var a;if("markdown"===n.type||"header"===n.type){let a="dashboard-toc-level-size-default";const s=n.numbering&&e.numbering?n.numbering:"",l=e.syncCollapseState?ct:dt;if("header"!==n.type&&"markdown"!==n.type||(a="dashboard-toc-level-size-"+n.level),"header"===n.type||e.showMarkdown){let r;r=n.html?x.createElement("span",{dangerouslySetInnerHTML:{__html:s+e.sanitizer.sanitize(n.html,mt)},className:"dashboard-"+n.type+"-cell dashboard-toc-cell-item"}):x.createElement("span",{className:"dashboard-"+n.type+"-cell dashboard-toc-cell-item"},s+n.text);let i=null;return"header"===n.type&&(i=x.createElement("div",{className:"jp-Collapser p-Widget lm-Widget",onClick:o=>{o.stopPropagation(),function(t,n,o){let a=!1;const s=e.syncCollapseState,l=C.getMetadataComp(null==o?void 0:o.cellRef.model,n);l&&(a=l),o?(_e.sendInteraction({click_type:a?"OFF":"ON",signal_origin:"TOC_COLLAPSE_HEADERS"}),s?t&&se.NotebookActions.setHeadingCollapse(null==o?void 0:o.cellRef,!a,t.content):a?C.deleteMetadataComp(o.cellRef.model,n):C.setMetadataComp(o.cellRef.model,n,!0),e.updateAndCollapse({heading:o,collapsedState:a})):e.updateWidget()}(t,l,n)}},x.createElement("div",{className:"dashboard-toc-Collapser-child"}))),r=x.createElement("div",{className:"dashboard-toc-entry-holder "+a+(t.content.activeCell===n.cellRef||wt(t,n,o)?" dashboard-toc-active-cell":"")},i,r),r}return null}if(t&&"code"===n.type&&e.showCode){const e=(null===(a=C.getMetadataComp(t.model,"language_info"))||void 0===a?void 0:a.mimetype)||"text";return x.createElement("div",{className:"dashboard-toc-code-cell-div"},x.createElement("div",{className:"dashboard-toc-code-cell-prompt"},n.prompt),x.createElement("span",{className:"dashboard-toc-code-span"},x.createElement(Ke,{cell_input:n.text,language_mimetype:e,className:"dashboard-toc-cell-input"})))}return null}(s,e,t,n)},generate:function(n){let o=[],a=-1;const l={};let r=null;for(let i=0;i<n.content.widgets.length;i++){const c=n.content.widgets[i],d=c.model,h=s.syncCollapseState?ct:dt;let u=C.getMetadataComp(d,h);if(u=u||!1,"code"!==d.type){if("markdown"===d.type){const e=c;let h;const m=it(o);if(e.rendered&&!e.inputHidden){const d=t=>()=>{e.rendered?(n.content.mode="command",c.node.scrollIntoView(),n.content.activeCellIndex=i):(n.content.activeCellIndex=i,t.scrollIntoView())},p=pt(c.node,d,t,l,m,s.numbering,s.numberingH1,c,i);for(h of p)[o,r,a]=gt(h,o,r,a,u,s.showMarkdown)}else{const e=e=>()=>{n.content.activeCellIndex=i,c.node.scrollIntoView()},t=kt(d.sharedModel.getSource(),e,l,m,c,i);for(h of t)[o,r,a]=gt(h,o,r,a,u,s.showMarkdown)}}}else if(!e||e&&s.showCode){const e=e=>()=>{n.content.activeCellIndex=i,c.node.scrollIntoView()},t=c.model.executionCount,s=null!==t?"["+t+"]: ":"[ ]: ",l=ht(d.sharedModel.getSource(),e,s,it(o),c,i);[o,r]=ut(o,l,r,a)}}return o},collapseChanged:s.collapseChanged}}const ft=e=>{const[t,n]=(0,x.useState)(e.startT1),[o,a]=(0,x.useState)(e.startT2),s=E(new Date),l=t=>{n(t),e.t1Callback(t)},r=t=>{a(t),e.t2Callback(t)};return N().createElement("div",{className:"dashboard-export-dialog-container"},N().createElement("p",null,"Select the time range of the data you want to export (the past week selected by default)."),N().createElement("div",{className:"dashboard-export-dialog-calendar-container"},N().createElement("div",{className:"dashboard-export-dialog-calendar"},N().createElement("p",null,"Start Date :"),N().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:E(t),onChange:e=>(e=>{const t=new Date(e);l(t),t>=o&&r(t)})(e.target.value),max:E(o)})),N().createElement("div",{className:"dashboard-export-dialog-calendar"},N().createElement("p",null,"End Date :"),N().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:E(o),onChange:e=>(e=>{const n=new Date(e);r(n),n<=t&&l(n)})(e.target.value),max:s}))))},Et=e=>{const[t,n]=(0,x.useState)(!1);return N().createElement("div",{className:"dashboard-toc-download-button"+(t?"-disabled":""),onClick:()=>{t||(e=>{let t=new Date,o=new Date;o.setDate(t.getDate()-7),(0,D.showDialog)({title:"Download Notebook Data",body:N().createElement(ft,{startT1:o,startT2:t,t1Callback:e=>o=e,t2Callback:e=>t=e}),buttons:[{accept:!0,actions:[],ariaLabel:"Export",caption:"",className:"",displayType:"default",iconClass:"",iconLabel:"",label:"Export"},D.Dialog.cancelButton()]}).then((a=>{a.button.accept&&((e,t,o)=>{n(!0);let a="";k(`${Ut}/dashboard/${e}/download_csv?t1=${t.toISOString()}&t2=${o.toISOString()}`).then((e=>{var t;if(e.ok){const n=e.headers.get("Content-Disposition");return a=(null===(t=null==n?void 0:n.match(/filename=(.+)/))||void 0===t?void 0:t[1])||"",e.blob()}})).then((e=>{if(e){const t=window.URL.createObjectURL(e),n=document.createElement("a");n.href=t,n.download=a,document.body.appendChild(n),n.click(),n.remove()}})).finally((()=>{n(!1)}))})(e,o,t)}))})(e.notebookId)}},N().createElement(I.downloadIcon.react,{className:"dashboard-toc-download-icon"}),"Export")};class St extends ke{constructor(e,t,n,o){super(e),this.title.caption="Dashboard ToC",this.title.icon=O,this.id="unianalytics-toc-dashboard",this.node.setAttribute("role","region"),this.node.setAttribute("aria-label","Dashboard ToC section"),this._commands=t,this._notebookGenerator=yt(this,n,o),this._toolbar=null,e.panelSwitched.connect(this._onPanelSwitched,this)}onBeforeShow(e){_e.sendInteraction({click_type:"ON",signal_origin:"TOC_DASHBOARD_SHOW_HIDE"})}onBeforeHide(e){_e.sendInteraction({click_type:"OFF",signal_origin:"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?x.createElement("div",{className:"dashboard-TableOfContents"},x.createElement("div",{className:"dashboard-stack-panel-header"},x.createElement("span",{className:"dashboard-toc-header-title"},le.PathExt.basename(e.context.localPath)),x.createElement(Et,{notebookId:this._panelManager.validityChecks.tag})),this._toolbar&&x.createElement(this._toolbar,null),x.createElement(lt,{headings:this._notebookGenerator.generate(e),itemRenderer:this._notebookGenerator.itemRenderer,notebookPanel:e,commands:this._commands,notebookCells:this._panelManager.notebookCells})):x.createElement(x.Fragment,null)}}var xt=n(4882);const Nt="cell-dashboard-button-container";class It extends xt.Widget{constructor(e,t){super(),this.addClass(Nt);const n=document.createElement("button");n.className="cell-dashboard-button",n.innerHTML=O.svgstr,n.title=n.disabled?"No notebook identifier":"Open Cell Dashboard",n.onclick=()=>{e.execute(u.dashboardOpenDashboardPlayback,{from:"Cell",cell_id:t})},this.node.appendChild(n)}dispose(){super.dispose()}}class Dt{constructor(e){this._commands=e}createNew(e){return new Mt(e,this._commands)}}class Mt{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 It(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(Nt)))||[]}get isDisposed(){return this._isDisposed}dispose(){var e;if(this.isDisposed)return;this._isDisposed=!0;const t=C.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,re.Signal.clearData(this)}}var Ot=n(7717);class Tt{constructor(e){this._commands=e}createNew(e){const t=new D.ToolbarButton({className:"playback-button",icon:T,onClick:()=>{this._commands.execute(u.dashboardOpenDashboardPlayback,{from:"Playback"})},tooltip:"Open Dashboard Playback Widget"});return e.context.ready.then((()=>{y(e)&&e.toolbar.insertItem(0,"openDashboardPlayback",t)})),new Ot.DisposableDelegate((()=>{t.dispose()}))}}const Rt=oe.dispatch,At=e=>{const t=(0,x.useRef)(null),n=(0,x.useRef)(null),o=new Date,[a,s]=(0,x.useState)(new Date(o.getTime()-72e5)),[l,r]=(0,x.useState)(new Date(o.getTime()+6e4)),[i,c]=(0,x.useState)(60),d=()=>{const e=a.getTime()+i/60*(l.getTime()-a.getTime());return new Date(e)};return(0,x.useEffect)((()=>{const t=d();Rt(q({notebookId:e.notebookId,t2ISOString:t.toISOString()}))}),[i,a,l]),(0,x.useEffect)((()=>()=>{Rt(q({notebookId:e.notebookId,t2ISOString:null}))}),[e.notebookId]),N().createElement("div",{className:"dashboard-playback-widget-container"},N().createElement("div",{className:"dashboard-playback-header"},N().createElement("div",{className:"dashboard-playback-icon-container"},N().createElement(T.react,{className:"dashboard-playback-icon"})),N().createElement("div",{className:"dashboard-playback-mode-title"},"Playback Mode"),N().createElement("div",{className:"dashboard-playback-icon-container-hovering dashboard-playback-icon-container",onClick:e.hideParent},N().createElement(we.X,{className:"dashboard-playback-icon"}))),N().createElement("div",{className:"dashboard-playback-mode-text"},"Move data cutoff time back in custom range (includes non-active users):"),N().createElement("div",{className:"dashboard-playback-controls"},N().createElement("div",{className:"dashboard-playback-time-button-wrapper"},N().createElement(ge.Button,{className:"dashboard-playback-time-button-container",onClick:()=>{var e;return null===(e=t.current)||void 0===e?void 0:e.showPicker()}},"t",N().createElement("sub",null,"1"),N().createElement("input",{ref:t,id:"unianalytics-datetime-t1",className:"dashboard-playback-hidden-datepicker dashboard-calendar-input",type:"datetime-local",value:E(a),max:E(l),onChange:e=>{const t=new Date(e.target.value);t.getTime()>=l.getTime()&&r(new Date(t.getTime()+6e4)),s(t)}})),N().createElement("span",{className:"dashboard-playback-label"},"Min cutoff:",N().createElement("br",null)," ",S(a))),N().createElement("div",{className:"dashboard-playback-range-wrapper"},N().createElement(ge.Form.Range,{min:0,max:60,onChange:e=>c(parseInt(e.target.value)),value:i}),N().createElement("span",{className:"dashboard-playback-label"},"Selected cutoff:",N().createElement("br",null)," ",S(d()))),N().createElement("div",{className:"dashboard-playback-time-button-wrapper"},N().createElement(ge.Button,{className:"dashboard-playback-time-button-container",onClick:()=>{var e;return null===(e=n.current)||void 0===e?void 0:e.showPicker()}},"t",N().createElement("sub",null,"2"),N().createElement("input",{ref:n,id:"unianalytics-datetime-t2",className:"dashboard-playback-hidden-datepicker dashboard-calendar-input",type:"datetime-local",value:E(l),max:E(o),onChange:e=>{const t=new Date(e.target.value);t.getTime()<=a.getTime()&&s(new Date(t.getTime()-6e4)),r(t)}})),N().createElement("span",{className:"dashboard-playback-label"},"Max cutoff:",N().createElement("br",null)," ",S(l)))))};class Lt extends D.ReactWidget{constructor(e){super(),this._dragging=!1,this._startX=0,this._startLeft=0,this.addClass("dashboard-playback-widget"),this.id="dashboard-playback-widget",this.node.setAttribute("role","region"),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.update=this.update.bind(this),this._onMouseDown=this._onMouseDown.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onMouseUp=this._onMouseUp.bind(this),this.hide(),this._panelManager=e,e.panelUpdated.connect((()=>this.update())),e.panelSwitched.connect((()=>this.hide()))}onBeforeShow(e){_e.sendInteraction({click_type:"ON",signal_origin:"DASHBOARD_PLAYBACK_SHOW_HIDE"}),this.update()}onBeforeHide(e){_e.sendInteraction({click_type:"OFF",signal_origin:"DASHBOARD_PLAYBACK_SHOW_HIDE"}),this.update()}onUpdateRequest(e){super.onUpdateRequest(e)}render(){const e=this._panelManager.panel,t=this._panelManager.validityChecks.tag;return!this.isHidden&&e&&t?x.createElement(At,{notebookId:t,hideParent:()=>this.hide()}):x.createElement(x.Fragment,null)}onAfterAttach(e){super.onAfterAttach(e),this.node.addEventListener("mousedown",this._onMouseDown.bind(this))}onBeforeDetach(e){this.node.removeEventListener("mousedown",this._onMouseDown.bind(this)),super.onBeforeDetach(e)}_onMouseDown(e){0===e.button&&e.target===this.node&&(this._dragging=!0,this._startX=e.clientX,this._startLeft=this.node.offsetLeft,document.addEventListener("mousemove",this._onMouseMove),document.addEventListener("mouseup",this._onMouseUp))}_onMouseMove(e){if(!this._dragging)return;const t=e.clientX-this._startX;this.node.style.left=`${this._startLeft+t}px`}_onMouseUp(e){this._dragging=!1,document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp)}}const Bt=oe.dispatch;var $t=n(4481);let Ht=null;function jt(e){Ht=e}let Pt=null;const Ft="http://localhost:1015";let Ut=Ft,zt=Ft;const Vt={id:i,autoStart:!0,requires:[a.IFileBrowserFactory,o.ILayoutRestorer,o.ILabShell,s.IRenderMimeRegistry,l.ISettingRegistry],optional:[],activate:(e,t,n,o,a,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 n=$t.ServerConnection.makeSettings(),o=le.URLExt.join(n.baseUrl,"jupyterlab-unianalytics-dashboard",e);let a;try{a=await $t.ServerConnection.makeRequest(o,t,n)}catch(e){throw new $t.ServerConnection.NetworkError(e)}const s=await a.text();if(!a.ok)throw new $t.ServerConnection.ResponseError(a,s.message||s);return s}("get_user_id");if(i&&((e,t)=>{const n=e.split(/[^0-9]+/).map(Number),o=t.split(/[^0-9]+/).map(Number);for(let e=0;e<Math.min(n.length,o.length);e++){const t=n[e],a=o[e];if(t!==a)return t-a}const a=e.replace(/[0-9]+/g,""),s=t.replace(/[0-9]+/g,"");return a.localeCompare(s)})(e.version,l)>=0){const l=parseInt(i[0]);C.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=>{Pt=s;let i=[];fetch(`${Ut}/auth/login`,{method:"POST",headers:{"Unianalytics-User-Id":Pt}}).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?I.fileUploadIcon:void 0,execute:n=>{const o=C.getFileComp(t);o&&e.serviceManager.contents.get(o.path).then((t=>{var n,a;(n=t.content,a=o.name,new Promise(((e,t)=>{const o=new FormData;o.append("notebook_content",JSON.stringify(n)),o.append("name",a),k(Ut+"/notebook/upload",{method:"POST",body:o}).then((n=>{n.ok?e(n.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((n=>{const a={...t,content:n};e.serviceManager.contents.save(o.path,a).then((e=>{const t=n.metadata[g.notebookId],a=`${Ut}/notebook/download/${t}`;(0,D.showDialog)({title:o.name,body:N().createElement(M,{url:a,fileName:o.name}),buttons:[D.Dialog.okButton()]}).catch((e=>console.log(e)))}))})).catch((e=>{(0,D.showDialog)({title:o.name,body:"Error uploading the file",buttons:[D.Dialog.cancelButton()]}).catch((e=>console.log(e)))}))}))}}),e.commands.addCommand(u.copyDownloadLink,{label:"Copy unianalytics notebook link",icon:e=>e.isContextMenu?I.linkIcon:void 0,execute:n=>{const o=C.getFileComp(t);o&&e.serviceManager.contents.get(o.path).then((e=>{const t=e.content.metadata;if(t){const e=t[g.notebookId];e?navigator.clipboard.writeText(`${Ut}/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,n,o,a){console.log(`JupyterLab extension ${r}: dashboard plugins activated!`),(e=>{const t=e.shell.widgets();let n=C.getNextWidgetValueComp(t);for(;n;){if(n instanceof se.NotebookPanel){const t=n,o=new Tt(e.commands),a=new Dt(e.commands),s=o.createNew(t),l=a.createNew(t);t.disposed.connect((()=>{s.dispose(),l.dispose()}))}n=C.getNextWidgetValueComp(t)}e.docRegistry.addWidgetExtension("Notebook",new Dt(e.commands)),e.docRegistry.addWidgetExtension("Notebook",new Tt(e.commands))})(e);const s=new me,l=new nt(s,a.sanitizer),i=new St(s,e.commands,a.sanitizer,o),c=new Lt(s);function d(){const t=e.shell.currentWidget;if(!t)return;if(!(t instanceof se.NotebookPanel))return void(s.panel&&s.panel.isDisposed&&(s.panel=null));const n=t;s.panel=n}n.restored.then((()=>{xt.Widget.attach(c,n.node)})),n.add(l,"right",{rank:1e3}),n.add(i,"left",{rank:1e3}),e.commands.addCommand(u.dashboardOpenDashboardPlayback,{label:"Notebook Visualizations",caption:"Open Dashboards",icon:O,iconClass:"jp-icon3",execute:t=>{"Playback"===t.from?(l.isVisible||Bt(z()),i.isVisible||e.shell.activateById(i.id),c.isAttached&&(c.isHidden?c.show():c.hide())):"Cell"===t.from?(_e.sendInteraction({click_type:"ON",signal_origin:"NOTEBOOK_CELL_BUTTON"}),Bt(V({cellId:t.cell_id}))):"Toc"===t.from&&(_e.sendInteraction({click_type:"ON",signal_origin:"TOC_OPEN_CELL_DASHBOARD"}),Bt(V({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`)),n&&n.currentChanged.connect(d),e.restored.then((()=>{d()}))}(e,n,o,l,a)):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 n=e.composite.commonDashboardSettings;n?_e.setPermission(n.dashboardCollection||!1):_e.setPermission((null===(t=e.default("commonDashboardSettings"))||void 0===t?void 0:t.dashboardCollection)||!1)}function b(e){const t=e.composite.useLocalBackend,n=e.composite.backendEndpoint;t?(Ut=Ft,zt=Ft):"string"==typeof n?(Ut=n,zt=n):(Ut=Ft,zt=Ft)}}},Wt=Vt},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"}}]);
|
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/.gitignore
RENAMED
|
File without changes
|
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/.yarnrc.yml
RENAMED
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/LICENSE
RENAMED
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/README.md
RENAMED
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/RELEASE.md
RENAMED
|
File without changes
|
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/conftest.py
RENAMED
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/install.json
RENAMED
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/jest.config.js
RENAMED
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/junit.xml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/setup.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/handler.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/src/index.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/base.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/style/index.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/tsconfig.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jupyterlab_unianalytics_dashboard-4.0.14 → jupyterlab_unianalytics_dashboard-4.0.15}/yarn.lock
RENAMED
|
File without changes
|