jupyterlab-unianalytics-dashboard 4.0.18__py3-none-any.whl → 4.0.19__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. jupyterlab_unianalytics_dashboard/_version.py +1 -1
  2. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/package.json +2 -2
  3. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/schemas/jupyterlab_unianalytics_dashboard/package.json.orig +1 -1
  4. jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/221.be8ec9ae55ab7f238b28.js +1 -0
  5. jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/remoteEntry.d3a3f8b691a2f85d8804.js +1 -0
  6. {jupyterlab_unianalytics_dashboard-4.0.18.dist-info → jupyterlab_unianalytics_dashboard-4.0.19.dist-info}/METADATA +2 -2
  7. {jupyterlab_unianalytics_dashboard-4.0.18.dist-info → jupyterlab_unianalytics_dashboard-4.0.19.dist-info}/RECORD +33 -33
  8. {jupyterlab_unianalytics_dashboard-4.0.18.dist-info → jupyterlab_unianalytics_dashboard-4.0.19.dist-info}/WHEEL +1 -1
  9. jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/221.ea3c0f1d0b0f79bca0cd.js +0 -1
  10. jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/remoteEntry.d3168c57b2e946e39927.js +0 -1
  11. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/etc/jupyter/jupyter_server_config.d/jupyterlab_unianalytics_dashboard.json +0 -0
  12. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/install.json +0 -0
  13. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/schemas/jupyterlab_unianalytics_dashboard/endpoint.json +0 -0
  14. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/schemas/jupyterlab_unianalytics_dashboard/plugin.json +0 -0
  15. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/10.1e5c908a94fc4b83c2e5.js +0 -0
  16. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/18.759fbf2374edc42b5c3e.js +0 -0
  17. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/18.759fbf2374edc42b5c3e.js.LICENSE.txt +0 -0
  18. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/308.d9da4ce35f354c6f12e1.js +0 -0
  19. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/39.5a3b28a79ba693a9b627.js +0 -0
  20. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/426.a7015f9dfda310972c1b.js +0 -0
  21. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/533.f7a454b11ba5cd79dc0c.js +0 -0
  22. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/546.ee956f25626d9f03fb3d.js +0 -0
  23. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/563.b613f734176cb51510ef.js +0 -0
  24. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/638.d37271636c4d956096de.js +0 -0
  25. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/708.323c3614d31a5918cfaf.js +0 -0
  26. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/708.323c3614d31a5918cfaf.js.LICENSE.txt +0 -0
  27. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/738.f4338fb8d8276b96c3f3.js +0 -0
  28. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/744.329dc4d1ed2f5c918266.js +0 -0
  29. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/798.33a8f0893a66574e9259.js +0 -0
  30. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/817.6437962faf359015be36.js +0 -0
  31. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/981.ebb9e1d6122980b5ff0e.js +0 -0
  32. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/981.ebb9e1d6122980b5ff0e.js.LICENSE.txt +0 -0
  33. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/style.js +0 -0
  34. {jupyterlab_unianalytics_dashboard-4.0.18.data → jupyterlab_unianalytics_dashboard-4.0.19.data}/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/third-party-licenses.json +0 -0
  35. {jupyterlab_unianalytics_dashboard-4.0.18.dist-info → jupyterlab_unianalytics_dashboard-4.0.19.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
1
1
  # This file is auto-generated by Hatchling. As such, do not:
2
2
  # - modify
3
3
  # - track in version control e.g. be sure to add to .gitignore
4
- __version__ = VERSION = '4.0.18'
4
+ __version__ = VERSION = '4.0.19'
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jupyterlab_unianalytics_dashboard",
3
- "version": "4.0.18",
3
+ "version": "4.0.19",
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.d3168c57b2e946e39927.js",
128
+ "load": "static/remoteEntry.d3a3f8b691a2f85d8804.js",
129
129
  "extension": "./extension",
130
130
  "style": "./style"
131
131
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jupyterlab_unianalytics_dashboard",
3
- "version": "4.0.18",
3
+ "version": "4.0.19",
4
4
  "description": "A JupyterLab dashboard extension to visualize data from students.",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkjupyterlab_unianalytics_dashboard=self.webpackChunkjupyterlab_unianalytics_dashboard||[]).push([[221],{3629:(e,t,n)=>{n.r(t),n.d(t,{ARE_DASHBOARD_PLUGINS_ACTIVATED:()=>Gt,AuthSignal:()=>Ut,BACKEND_API_URL:()=>Kt,CURRENT_NOTEBOOK_ID:()=>Vt,WEBSOCKET_API_URL:()=>Xt,authSignal:()=>zt,default:()=>Zt,setCurrentNotebookId:()=>Wt,setDashboardPluginsActivated:()=>Jt});var o=n(7765),a=n(3108),s=n(6553),l=n(381);n(4039);const r="jupyterlab_unianalytics_dashboard",i=`${r}:plugin`,c=`${r}/access_token`,d=`${r}/refresh_token`,h=`${r}/dashboard_username`,u="unianalytics-page-container";var m;!function(e){e.dashboardOpenDashboardPlayback=`${r}:dashboard-open-playback`,e.uploadNotebook=`${r}:dashboard-upload-notebook`,e.copyDownloadLink=`${r}:dashboard-copy-download-link`,e.openLogin=`${r}:dashboard-open-login`}(m||(m={}));const p='.jp-DirListing-item[data-file-type="notebook"]',g="unianalytics";var b,C;!function(e){e.notebookId=`${g}_notebook_id`,e.cellMapping=`${g}_cell_mapping`}(b||(b={}));class w{static async setJupyterVersion(e){w._jupyterVersion=e,await w._setEditorLanguageRegistry(),await w._asyncImports()}static async _setEditorLanguageRegistry(){if(4===w._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,9558,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)]})}}),w._editorDefaultLanguages=a}}static async _asyncImports(){if(4===w._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,9558,23));this._jupyterTheme=t}}static checkJupyterVersionSet(){if(null===w._jupyterVersion)throw new Error("JupyterLab version is not set in CompatibilityManager before trying to access it.")}static observeEditorVisibility(e){return 3===w._jupyterVersion?new IntersectionObserver((t=>{t[0].isIntersecting&&e.refresh()}),{root:null,threshold:.5}):null}}C=w,w._jupyterVersion=null,w._editorDefaultLanguages=void 0,w._EditorView=void 0,w._jupyterTheme=void 0,w.getMetadataComp=(e,t)=>{var n;return w.checkJupyterVersionSet(),4===w._jupyterVersion?null==e?void 0:e.getMetadata(t):null===(n=null==e?void 0:e.metadata)||void 0===n?void 0:n.get(t)},w.setMetadataComp=(e,t,n)=>{var o;w.checkJupyterVersionSet(),4===w._jupyterVersion?null==e||e.setMetadata(t,n):null===(o=null==e?void 0:e.metadata)||void 0===o||o.set(t,n)},w.deleteMetadataComp=(e,t)=>{var n;return w.checkJupyterVersionSet(),4===w._jupyterVersion?null==e?void 0:e.deleteMetadata(t):null===(n=null==e?void 0:e.metadata)||void 0===n?void 0:n.delete(t)},w.getFileComp=e=>{var t;w.checkJupyterVersionSet();const n=null===(t=e.tracker.currentWidget)||void 0===t?void 0:t.selectedItems().next();return 4===w._jupyterVersion?null==n?void 0:n.value:n},w.getCellsArrComp=e=>(w.checkJupyterVersionSet(),e?Array.from({length:e.length},((t,n)=>e.get(n))):null),w.getCodeMirrorOptionsComp=()=>(w.checkJupyterVersionSet(),4===w._jupyterVersion?{extensions:[C._jupyterTheme,C._EditorView.lineWrapping,C._EditorView.editable.of(!1)],languages:w._editorDefaultLanguages}:{config:{readOnly:!0}}),w.getNextWidgetValueComp=e=>{var t;return w.checkJupyterVersionSet(),4===w._jupyterVersion?null===(t=e.next())||void 0===t?void 0:t.value:e.next()};var v=n(6029),k=n.n(v),_=n(3655),y=n(3352);const f=e=>{const[t,n]=(0,v.useState)(!1);return k().createElement("div",null,k().createElement("p",null,"Successfully uploaded, can be downloaded accessing:"),k().createElement("div",{className:"unianalytics-link-container"},k().createElement("div",{className:"unianalytics-link"},e.url),k().createElement("div",{className:"unianalytics-link-button-container"},k().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?k().createElement(_.checkIcon.react,null):k().createElement(_.copyIcon.react,null)))))};const E=new _.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>'}),S=new _.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>'}),x=new _.LabIcon({name:`${r}:analytics-login-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="\nM738.000000,599.000000 \n\tC737.999878,619.328857 738.009277,639.157654 737.994812,658.986511 \n\tC737.989014,666.934814 733.986572,670.993347 726.122437,670.994324 \n\tC653.972168,671.003296 581.821899,671.004211 509.671600,670.992310 \n\tC502.160278,670.991089 498.008820,666.818481 498.007507,659.276550 \n\tC497.995880,592.625000 497.998016,525.973511 498.003967,459.321991 \n\tC498.004730,450.822723 501.906342,447.017944 510.571411,447.000946 \n\tC513.062195,446.996063 515.552979,447.000214 518.680237,447.000214 \n\tC518.796387,444.999603 518.982727,443.253784 518.985718,441.507599 \n\tC519.010254,427.344208 518.672607,413.171631 519.066162,399.019135 \n\tC519.998840,365.477570 532.933105,337.602509 559.186768,316.270508 \n\tC574.191284,304.078918 591.182678,297.275513 610.632568,295.860992 \n\tC636.322754,293.992645 658.657410,301.480255 678.315552,317.789124 \n\tC698.896729,334.863831 711.618042,356.662292 714.768921,383.084930 \n\tC716.823181,400.311066 716.366150,417.838593 716.979919,435.233063 \n\tC717.108276,438.871582 716.998535,442.518494 716.998535,447.001343 \n\tC720.472961,447.001343 723.562073,446.978119 726.650757,447.005981 \n\tC733.789185,447.070374 737.990417,451.305908 737.992493,458.531281 \n\tC738.006104,505.187531 737.999756,551.843750 738.000000,599.000000 \nM686.169434,386.321167 \n\tC684.202209,372.874786 678.159302,361.412323 669.619812,350.970001 \n\tC656.586304,335.032257 639.597351,327.122864 619.408630,326.113678 \n\tC607.678467,325.527313 596.512085,328.608551 586.218628,334.382050 \n\tC562.178833,347.865814 549.929749,368.957886 548.176208,395.949982 \n\tC547.195801,411.041962 547.989929,426.249786 548.011963,441.405396 \n\tC548.014526,443.160858 548.194458,444.916016 548.289307,446.620117 \n\tC595.092957,446.620117 641.302185,446.620117 688.661255,446.620117 \n\tC687.953979,426.508026 687.261108,406.805328 686.169434,386.321167 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM445.000000,137.000000 \n\tC536.813049,137.000015 628.126404,137.126938 719.438660,136.851227 \n\tC731.881165,136.813644 741.407166,146.194763 741.147888,158.507431 \n\tC740.642883,182.491470 741.009644,206.493652 740.995605,230.488327 \n\tC740.988464,242.735672 732.716858,250.995651 720.446045,250.996033 \n\tC547.484497,251.001495 374.522919,251.001450 201.561340,250.996048 \n\tC189.286880,250.995667 181.011475,242.738358 181.004440,230.495682 \n\tC180.990463,206.167755 180.990570,181.839828 181.004395,157.511902 \n\tC181.011368,145.264450 189.282990,137.005264 201.553741,137.004120 \n\tC282.535828,136.996597 363.517914,137.000092 445.000000,137.000000 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM486.000000,775.998657 \n\tC353.514160,775.998657 221.528183,775.927307 89.542709,776.146667 \n\tC79.949707,776.162598 71.798676,770.599548 71.814911,758.597900 \n\tC72.076706,565.119019 71.999863,371.639648 71.999847,178.160385 \n\tC71.999847,175.691223 71.999847,173.222061 71.999847,170.227814 \n\tC62.611301,170.227814 53.688507,170.227814 43.427563,170.227814 \n\tC57.732803,141.585114 71.557716,113.904144 85.980057,85.026985 \n\tC100.277077,113.596474 114.120583,141.259720 128.424072,169.842133 \n\tC118.648087,169.842133 109.646706,169.842133 100.332687,169.842133 \n\tC100.332687,362.470093 100.332687,554.354919 100.332687,746.620605 \n\tC277.708801,746.620605 454.928070,746.620605 632.829712,746.620605 \n\tC632.829712,737.757935 632.829712,728.888367 632.829712,718.974915 \n\tC661.407043,733.216614 689.020264,746.977905 718.028381,761.434326 \n\tC689.544922,775.690369 661.832214,789.560608 633.203613,803.889282 \n\tC633.203613,794.085144 633.203613,785.506958 633.203613,775.998657 \n\tC583.961853,775.998657 535.230896,775.998657 486.000000,775.998657 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM189.462997,561.267212 \n\tC194.206940,560.057251 198.622803,558.142334 203.043198,558.131836 \n\tC279.851929,557.948914 356.661804,558.147339 433.469818,557.850342 \n\tC445.825714,557.802551 455.411530,567.154968 455.149750,579.537415 \n\tC454.639221,603.685669 454.733429,627.856812 455.137848,652.009094 \n\tC455.288208,660.987854 444.963867,671.157593 436.026642,671.131714 \n\tC357.385376,670.904053 278.742828,670.894165 200.101700,671.145691 \n\tC191.189301,671.174194 180.634293,660.999329 180.833405,651.636475 \n\tC181.336334,627.987915 181.235504,604.317871 180.868591,580.664307 \n\tC180.744949,572.694214 183.081192,566.437134 189.462997,561.267212 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM242.000000,461.000000 \n\tC227.511383,460.999695 213.522690,461.030701 199.534195,460.988190 \n\tC190.073975,460.959442 181.029373,451.998047 181.014694,442.586761 \n\tC180.974960,417.107574 180.966629,391.628235 181.020004,366.149078 \n\tC181.039078,357.047943 190.144424,348.021454 199.298752,348.016388 \n\tC254.420502,347.985992 309.542297,347.981476 364.664093,348.018463 \n\tC375.257812,348.025574 383.952515,356.668701 383.978577,367.214142 \n\tC384.040710,392.360168 384.027405,417.506531 383.984039,442.652618 \n\tC383.967834,452.056519 374.905334,460.982574 365.399902,460.988464 \n\tC324.433258,461.013885 283.466644,460.999725 242.000000,461.000000 \nz"/>\n</svg>'}),N=new _.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>'}),I=new _.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 D=n(3748);const M={displayDashboard:!0,hasNotebookId:!1},O=(0,D.createSlice)({name:"tocdashboard",initialState:M,reducers:{setDisplayHideDashboard:(e,t)=>{e.displayDashboard=t.payload},setHasNotebookId:(e,t)=>{e.hasNotebookId=t.payload}}}),{setDisplayHideDashboard:T,setHasNotebookId:R}=O.actions,A=O.reducer,L={navigationState:[{pageName:"Notebook"}]},$=(0,D.createSlice)({name:"sidedashboard",initialState:L,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=L.navigationState}}}),{navigateToNotebook:B,navigateToCell:j,navigateToHistory:H,resetNavigationState:P}=$.actions,F=$.reducer,U=(0,D.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(!jt(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:z,setDashboardQueryArgsT2:V,setDashboardQueryArgsSelectedGroups:W,setDashboardQueryArgsDisplayRealTime:G,setSortBy:J,setNotebookCells:Q,refreshDashboards:K}=U.actions,X=U.reducer,q=(0,D.configureStore)({reducer:{tocdashboard:A,sidedashboard:F,commondashboard:X}});var Z,Y=n(9037),ee=n(6004),te=n(4901);class ne{}!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"}(Z||(Z={}));var oe=n(9156);const ae=q.dispatch;class se{constructor(){this._socket=null}_createSocket(e,t){this._socket=(0,oe.io)(`${Xt}?conType=TEACHER&nbId=${e}&userId=${encodeURIComponent(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",(()=>{ae(K()),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();const t=localStorage.getItem(h);e&&t&&this._createSocket(e,t)}closeSocketConnection(){this._socket&&this._socket.close(),this._socket=null}sendMessageToUser(e,t){this._socket&&this._socket.emit("send_message",{userId:e,message:t})}}const le=q.dispatch;class re{constructor(){this._panelUpdatedSignal=new te.Signal(this),this._panelSwitchedSignal=new te.Signal(this),this._ongoingContextId="",this._ongoingCheckId="",this._panel=null,this._monitor=null,this._validityChecks={tag:null,registered:Z.LOADING},this._websocketManager=new se,zt.registrationStateChanged.connect(this._handleRegistrationStateChange,this)}_handleRegistrationStateChange(e,t){this._validityChecks.registered=t,this._panelUpdatedSignal.emit(void 0)}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),Wt(null),this._validityChecks={tag:null,registered:Z.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 ee.ActivityMonitor({signal:this._panel.context.model.contentChanged,timeout:1e3}),this._monitor.activityStopped.connect(this._onPanelUpdated,this),Bt(this._panel)){const e=w.getMetadataComp(this._panel.model,b.notebookId);Wt(e),this._validityChecks={tag:e,registered:Z.LOADING},this._performRegistrationCheck()}this._onPanelUpdated()}}))}_performRegistrationCheck(){const e=crypto.randomUUID();this._ongoingCheckId=e;let t=Z.ERROR;Rt(`${Kt}/dashboard/${this._validityChecks.tag}/check`).then((e=>e.json())).then((e=>{(null==e?void 0:e.status)?"expired_token"===e.status?t=Z.EXPIREDTOKEN:"not_found"===e.status?t=Z.NOTFOUND:"no_user_permission"===e.status?t=Z.USERNOTAUTHORIZED:"success"===e.status&&(t=Z.SUCCESS):t=Z.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===Z.SUCCESS&&(le(P()),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=w.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(!jt(e,this._notebookCells)){this._notebookCells=e;const t=n.map((e=>({id:e.id,cellType:e.type})));return le(Q(t)),!0}}else this._notebookCells=null;return!1}}var ie=n(7760),ce=n(8559);const de=()=>k().createElement("div",{style:{width:"100%",textAlign:"center",margin:"50px 0"}},k().createElement(ce.Spinner,{style:{width:"50px",height:"50px",fontSize:"x-large"},animation:"border",role:"status",variant:"primary"})),he=({title:e,placeholderText:t="No data for the opened notebook"})=>k().createElement("div",{className:"dashboard-TableOfContents"},k().createElement("div",{className:"dashboard-stack-panel-header"},"Side Panel Dashboard"),k().createElement("div",{className:"dashboard-TableOfContents-placeholder"},k().createElement("div",{className:"dashboard-TableOfContents-placeholderContent"},k().createElement("h3",null,e),k().createElement("p",null,t))));class ue extends y.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 v.createElement(he,{title:"No Notebook",placeholderText:"Open a notebook to start viewing its content."});if(!this._panelManager.panel.context.isReady)return v.createElement(de,null);if(!this._panelManager.validityChecks.tag)return v.createElement(he,{title:"Notebook not Tagged for Tracking"});switch(this._panelManager.validityChecks.registered){case Z.LOADING:return v.createElement(de,null);case Z.SUCCESS:return v.createElement(ie.Provider,{store:q},this.computeComponentToRender());default:return v.createElement(he,{title:this._panelManager.validityChecks.registered})}}}const me=ue;var pe=n(2535);class ge{static setPermission(e){ge._isInteractionRecordingEnabled=e}}ge._isInteractionRecordingEnabled=!1,ge.sendInteraction=e=>{ge._isInteractionRecordingEnabled&&Rt(`${Kt}/dashboard_interaction/add`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,time:(new Date).toISOString(),notebook_id:Vt})})};const be=q.dispatch,Ce=()=>{const e=(0,ie.useSelector)((e=>e.sidedashboard.navigationState));return k().createElement(ce.Stack,{className:"breadcrumb-container",direction:"horizontal",gap:2},e.map(((t,n)=>k().createElement("div",{className:n===e.length-1?"breadcrumb-tile-active breadcrumb-tile":"breadcrumb-tile",onClick:()=>{"Notebook"===t.pageName?ge.sendInteraction({click_type:"ON",signal_origin:"BREADCRUMB_TO_NOTEBOOK"}):"Cell"===t.pageName&&ge.sendInteraction({click_type:"ON",signal_origin:"BREADCRUMB_TO_CELL"}),n!==e.length-1&&be(H(n))}},t.pageName))),k().createElement("div",{className:"breadcrumb-buttons-container"},k().createElement(ce.Button,{className:"dashboard-button",onClick:()=>{ge.sendInteraction({click_type:"ON",signal_origin:"DASHBOARD_REFRESH_BUTTON"}),be(K())}},k().createElement(pe.ArrowClockwise,{className:"dashboard-icon"}))))},we=q.dispatch,ve=[{value:1,displayName:"All Data",disabledDatePicker:!0},{value:2,displayName:"From t<sub>1</sub>",disabledDatePicker:!1}],ke=e=>{const[t,n]=(0,v.useState)(!1),o=(0,ie.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),a=()=>{const t=o.t1ISOString[e.notebookId]?1:0;return ve[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,v.useState)(a()),[c,d]=(0,v.useState)(s()),[h,u]=(0,v.useState)(l),m=Ht(new Date);return(0,v.useEffect)((()=>{we(z({notebookId:e.notebookId,t1ISOString:r.disabledDatePicker?null:c.toISOString()})),we(G({notebookId:e.notebookId,displayRealTime:h}))}),[c,r,h]),k().createElement(ce.Dropdown,{show:t,onToggle:()=>{ge.sendInteraction({click_type:t?"OFF":"ON",signal_origin:"DASHBOARD_FILTER_TIME"}),t||(d(s()),i(a()),u(l())),n(!t)},className:"custom-dropdown"},k().createElement(ce.Dropdown.Toggle,{className:"dashboard-button"},!(h&&r.disabledDatePicker)&&k().createElement("span",{className:"dashboard-filter-red-dot"}),k().createElement(pe.CalendarWeek,{className:"dashboard-icon"})),k().createElement(ce.Dropdown.Menu,null,k().createElement(ce.Dropdown.Header,null,"Data Timeframe Selector"),k().createElement(ce.Dropdown.Divider,null),k().createElement("div",{className:"custom-dropdown-container custom-dropdown-item"},k().createElement(ce.Form.Check,{id:"time-checkbox-include-all",type:"checkbox",label:"Only show active users",checked:h,onChange:e=>u(e.target.checked)})),k().createElement(ce.Dropdown.Divider,null),k().createElement("div",{className:"dashboard-calendar-container"},k().createElement("div",{className:"cell-radio-container"},k().createElement(ce.ButtonGroup,{size:"sm"},ve.map(((e,t)=>k().createElement(ce.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(ve[Number(e.currentTarget.value)-1])}},k().createElement("span",{dangerouslySetInnerHTML:{__html:e.displayName}}))))))),k().createElement("div",{className:"dashboard-calendar-container"},k().createElement("div",{className:"dashboard-calendar-input-wrapper "+(r.disabledDatePicker?"disabled":"")},k().createElement("div",null,"t",k().createElement("sub",null,"1")),k().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:Ht(c),onChange:e=>d(new Date(e.target.value)),max:m})))))},_e=({PassedComponent:e,title:t})=>k().createElement(ce.Row,{className:"mb-4"},k().createElement(ce.Card,{className:"chart-card"},k().createElement(ce.Card.Title,{className:"chart-card-title"},t),k().createElement(ce.Card.Body,{className:"chart-card-body"},e)));var ye=n(7885);const fe={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"}}}},Ee=`> ${Math.floor(30)}'`,Se={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: ${xe(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?xe(e):e}},title:{display:!0,text:"Average time spent on the cell",color:"#969696"}}}},xe=e=>{const t=Math.floor(e/60);return e>=1800?Ee:`${t>0?t+"'":""}${(e%60).toFixed(0)}"`},Ne=e=>{const[t,n]=(0,v.useState)({labels:[],datasets:[]}),o=(0,ie.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),a=(0,ie.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,ie.useSelector)((e=>e.commondashboard.notebookCells));return(0,v.useEffect)((()=>{Rt(`${Kt}/dashboard/${e.notebookId}/user_code_execution?${Tt(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]),k().createElement(_e,{PassedComponent:k().createElement(ye.Bar,{data:t,options:fe}),title:"Code cell executions across users"})},Ie=q.dispatch,De=e=>{const[t,n]=(0,v.useState)(!1),o=(0,ie.useSelector)((t=>t.commondashboard.dashboardQueryArgs.selectedGroups[e.notebookId])),[a,s]=(0,v.useState)({includeAllChecked:void 0===o||0===o.length,groupList:[]});(0,v.useEffect)((()=>{if(l){let t;t=a.includeAllChecked?[]:a.groupList.filter((e=>!0===e.checked)).map((e=>e.name)),Ie(W({notebookId:e.notebookId,groups:t}))}}),[a]);const[l,r]=(0,v.useState)(!1);return(0,v.useEffect)((()=>{r(!1),Rt(`${Kt}/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]),k().createElement(ce.Dropdown,{id:"group-dropdown",className:"custom-dropdown",show:t,onToggle:()=>{ge.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)}},k().createElement(ce.Dropdown.Toggle,{className:"dashboard-button"},a.groupList.some((e=>!0===e.checked))&&k().createElement("span",{className:"dashboard-filter-red-dot"}),k().createElement(pe.PeopleFill,{className:"dashboard-icon"})),k().createElement(ce.Dropdown.Menu,null,k().createElement(ce.Dropdown.Header,null,"Filter by group of users"),k().createElement(ce.Dropdown.Divider,null),k().createElement("div",{className:"custom-dropdown-container custom-dropdown-item"},k().createElement(ce.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}})),k().createElement(ce.Dropdown.Divider,null),k().createElement("div",{className:"group-dropdown-scroll "+(a.includeAllChecked?"disabled":"")},a.groupList.length>0?a.groupList.map(((e,t)=>k().createElement("div",{className:"custom-dropdown-item "+(a.includeAllChecked?"disabled":"")},k().createElement(ce.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)})))):k().createElement(ce.Dropdown.Item,{disabled:!0},"No groups available"))))},Me=e=>{const[t,n]=(0,v.useState)({labels:[],datasets:[]}),o=(0,ie.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),a=(0,ie.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,ie.useSelector)((e=>e.commondashboard.notebookCells));return(0,v.useEffect)((()=>{Rt(`${Kt}/dashboard/${e.notebookId}/user_cell_duration_time?${Tt(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]),k().createElement(_e,{PassedComponent:k().createElement(ye.Bubble,{data:t,options:Se}),title:"Time spent on each cell across users"})},Oe=e=>k().createElement(k().Fragment,null,k().createElement("div",{className:"dashboard-title-container"},k().createElement("div",{className:"dashboard-title-text"},e.notebookName),k().createElement("div",{className:"dashboard-dropdown-container"},k().createElement(De,{notebookId:e.notebookId}),k().createElement(ke,{notebookId:e.notebookId}))),k().createElement(ce.Row,null,k().createElement(ce.Col,null,k().createElement(Ne,{notebookId:e.notebookId}),k().createElement(Me,{notebookId:e.notebookId}))));var Te=n(3231),Re=n.n(Te);const Ae=[{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)"}],Le=Ae[0].key,$e=q.dispatch,Be=e=>{const t=(0,ie.useSelector)((t=>t.commondashboard.dashboardQueryArgs.sortBy[e.notebookId]||Le));return k().createElement(ce.Dropdown,{id:"order-by-dropdown",onSelect:t=>{t&&(ge.sendInteraction({click_type:"ON",signal_origin:"CELL_DASHBOARD_FILTER_SORT"}),$e(J({notebookId:e.notebookId,sortCriterion:t})))},className:"custom-dropdown"},k().createElement(ce.Dropdown.Toggle,{className:"dashboard-button"},t!==Le&&k().createElement("span",{className:"dashboard-filter-red-dot"}),k().createElement(pe.SortUp,{className:"dashboard-icon"})),k().createElement(ce.Dropdown.Menu,null,k().createElement(ce.Dropdown.Header,null,"Sort cells by"),k().createElement(ce.Dropdown.Divider,null),Ae.map(((e,n)=>k().createElement(ce.Dropdown.Item,{id:`sort-item-${n}`,eventKey:e.key,className:t===e.key?"highlighted":""},e.label)))))},je=e=>k().createElement(ce.Col,{md:12},k().createElement(ce.Card,{className:"cell-card"},k().createElement(ce.Card.Body,{style:{gap:"10px"}},k().createElement(ce.Row,{className:"cell-card-wrapper"},k().createElement(ce.Col,{md:12,className:"cell-user-title"},k().createElement(ce.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}`)),k().createElement(ce.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 k().createElement(ce.Col,{md:12,className:"cell-execution-displayed-time"},n)}return null})()))));var He=n(2779);const Pe=e=>{const[t,n]=(0,v.useState)(null);return(0,v.useEffect)((()=>{(()=>{const t=He.marked.parser(He.marked.lexer(e.markdownContent));n(e.sanitizer.sanitize(t))})()}),[e.markdownContent]),k().createElement("div",{className:"cell-content-container"},t&&k().createElement("div",{className:"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput",dangerouslySetInnerHTML:{__html:t}}))};var Fe=n(9558),Ue=n(7044);const ze=({cell_input:e,language_mimetype:t,className:n})=>{const o=(0,v.useRef)(null);return(0,v.useEffect)((()=>{const n=o.current;if(n){n.innerHTML="";const o=new Ue.CodeEditor.Model;o.mimeType=t,o.sharedModel.setSource(e);const a=new Fe.CodeMirrorEditor({host:n,model:o,...w.getCodeMirrorOptionsComp()}),s=w.observeEditorVisibility(a);return s&&s.observe(n),()=>{s&&s.disconnect()}}}),[e,t]),k().createElement("div",{ref:o,className:n})};var Ve=n(9337);const We=new s.RenderMimeRegistry({initialFactories:s.standardRendererFactories}),Ge=({cell_output_model:e})=>{const t=(0,v.useRef)(null),n=new Ve.OutputAreaModel;return(0,v.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=We.preferredMimeType(t.data);if(a){const e=We.createRenderer(a);e.renderModel(t),o.appendChild(e.node)}}}}),[e]),k().createElement("div",{ref:t,className:"cell-content-container"})},Je=e=>{const t=(0,v.useRef)([]),[n,o]=(0,v.useState)([]),[a,s]=(0,v.useState)(!1),l=(0,v.useRef)(0),i=(0,v.useRef)(7),c=(0,v.useRef)(0),d=(0,ie.useSelector)((e=>e.sidedashboard.navigationState)),h=(0,ie.useSelector)((e=>e.commondashboard.refreshBoolean)),m=(0,ie.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),[p,g]=(0,v.useState)(!0),[b,C]=(0,v.useState)(!0),[w,_]=(0,v.useState)(1),[y,f]=((e=800)=>{const[t,n]=(0,v.useState)(""),[o,a]=(0,v.useState)("");return(0,v.useEffect)((()=>{const t=setTimeout((()=>n(o)),e);return()=>clearTimeout(t)}),[o,e]),[t,a]})(),E=[{name:"All",value:1,status:"all"},{name:"Success",value:2,status:"ok"},{name:"Error",value:3,status:"error"}],S=E.map((e=>e.status)),x=d[d.length-1].content,N=async()=>{const n=++c.current,a=i.current,d=l.current;try{const r=await Rt(`${Kt}/dashboard/${e.notebookId}/cell/${x.cellId}?limit=${a}&offset=${d}&${Tt(m,e.notebookId)}`),h=await r.json();if(n===c.current){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,h);t.current=e,o(e),h.length<a?s(!1):s(!0),l.current+=a,i.current=7}}catch(e){console.error(`${r}: Error cell dashboard fetch: `,e)}};return(0,v.useEffect)((()=>{i.current=Math.max(t.current.length,7),s(!1),l.current=0,t.current=[],N()}),[d,m,h]),(0,v.useEffect)((()=>()=>{s(!1),l.current=0,t.current=[],o([])}),[d]),(0,v.useEffect)((()=>{if(!e.pageRouterNode)return;const t=Math.abs(e.pageRouterNode.scrollHeight-e.pageRouterNode.clientHeight-e.pageRouterNode.scrollTop)<1;a&&t&&N()}),[a,e.pageRouterNode,n,p,b,w,y]),k().createElement(k().Fragment,null,k().createElement("div",{className:"dashboard-title-container"},k().createElement("div",{className:"dashboard-title-text"},"Cell (",x.cellId,")"),k().createElement("div",{className:"dashboard-dropdown-container"},k().createElement(Be,{notebookId:e.notebookId}),k().createElement(De,{notebookId:e.notebookId}),k().createElement(ke,{notebookId:e.notebookId}))),k().createElement(ce.Form,{className:"cell-filter-container",onSubmit:e=>e.preventDefault()},k().createElement("div",{className:"cell-radio-container"},k().createElement(ce.ButtonGroup,{size:"sm"},k().createElement(ce.ToggleButton,{style:{marginRight:"3px"},key:"0",id:"code-checkbox",type:"radio",variant:"outline-primary",value:"Code",checked:p,onClick:e=>{p&&!b?e.preventDefault():(ge.sendInteraction({click_type:p?"OFF":"ON",signal_origin:"CELL_DASHBOARD_FILTER_CODE_INPUT"}),g(!p))}},"Code"),k().createElement(ce.ToggleButton,{key:"1",id:"output-checkbox",type:"radio",variant:"outline-primary",value:"Output",checked:b,onClick:e=>{!p&&b?e.preventDefault():(ge.sendInteraction({click_type:b?"OFF":"ON",signal_origin:"CELL_DASHBOARD_FILTER_CODE_OUTPUT"}),C(!b))}},"Output"))),k().createElement("div",{className:"cell-radio-container"},k().createElement(ce.ButtonGroup,{size:"sm"},E.map(((e,t)=>k().createElement(ce.ToggleButton,{key:t,id:`filter-${t}`,type:"radio",variant:"outline-primary",name:"radio",value:e.value,checked:w===e.value,onChange:e=>{ge.sendInteraction({click_type:"ON",signal_origin:"CELL_DASHBOARD_FILTER_EXECUTION"}),_(Number(e.currentTarget.value))}},e.name))))),k().createElement(ce.Form.Control,{size:"sm",type:"text",placeholder:"Type text to filter...",onChange:e=>f(e.target.value)})),k().createElement(Re(),{style:{overflow:"hidden"},scrollableTarget:u,dataLength:n.length,next:N,hasMore:a,loader:k().createElement(de,null)},(I=n,D=y,0===D.length?I:(D=D.toLowerCase(),I.filter((e=>{var t;return(null===(t=e.cell_input)||void 0===t?void 0:t.toLowerCase().includes(D))||e.cell_output_model&&JSON.stringify(e.cell_output_model).toLowerCase().includes(D)})))).map(((t,n)=>k().createElement(ce.Row,{key:n},"MarkdownExecution"===t.cell_type&&["all","ok"].includes(S[w-1])?k().createElement(je,{value:t,index:n,ExecutionContent:k().createElement(Pe,{markdownContent:t.cell_input,sanitizer:e.sanitizer})}):k().createElement(k().Fragment,null,(1===w||S[w-1]===t.status)&&k().createElement(je,{value:t,index:n,ExecutionContent:k().createElement(k().Fragment,null,p&&k().createElement(ze,{cell_input:t.cell_input,language_mimetype:t.language_mimetype,className:"cell-content-container"}),p&&b&&t.cell_output_model.length>0&&k().createElement("br",null),b&&t.cell_output_model.length>0&&k().createElement(Ge,{cell_output_model:t.cell_output_model}))})))))));var I,D};var Qe=n(8352);Qe.Chart.register(...Qe.registerables);const Ke=e=>{const t=(0,ie.useSelector)((e=>e.sidedashboard.navigationState)),[n,o]=(0,v.useState)(null),a=(0,v.useCallback)((e=>{o(e)}),[]);return k().createElement("div",{ref:a,className:"page-container",id:u},k().createElement(Ce,null),(()=>{switch(t[t.length-1].pageName){case"Notebook":return k().createElement(Oe,{notebookId:e.notebookId,notebookName:e.notebookName});case"Cell":return k().createElement(Je,{notebookId:e.notebookId,sanitizer:e.sanitizer,pageRouterNode:n});default:return null}})())};class Xe extends me{constructor(e,t){super(e),this.addClass("dashboard-react-widget"),this.title.caption="Side Dashboard",this.title.icon=E,this.id="unanalytics-side-dashboard",this.node.setAttribute("role","region"),this.node.setAttribute("aria-label","Side dashboard section"),this._sanitizer=t}onBeforeShow(e){ge.sendInteraction({click_type:"ON",signal_origin:"RIGHT_DASHBOARD_SHOW_HIDE"})}onBeforeHide(e){ge.sendInteraction({click_type:"OFF",signal_origin:"RIGHT_DASHBOARD_SHOW_HIDE"})}computeComponentToRender(){const e=this._panelManager.panel,t=this._panelManager.validityChecks.tag;return e&&t?v.createElement(Ke,{notebookId:t,notebookName:e.sessionContext.name,sanitizer:this._sanitizer}):v.createElement(v.Fragment,null)}}const qe=(e,t)=>{const n=3*e/t+.1;return Math.min(1,n)},Ze=({data:e,cellId:t,commands:n})=>k().createElement(k().Fragment,null,e&&e[0]&&e[1]?k().createElement("div",{onClick:e=>{e.preventDefault(),n.execute(m.dashboardOpenDashboardPlayback,{from:"Toc",cell_id:t})},className:"dashboard-toc-react-component",style:{backgroundColor:`rgba(25, 118, 210, ${qe(e[0],e[1])})`}},k().createElement("span",{className:"dashboard-toc-react-text"},e[0]+"/"+e[1])):k().createElement("div",{className:"dashboard-toc-react-component"}));class Ye extends k().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?k().createElement("li",{className:"dashboard-tocItem",onClick:e=>{ge.sendInteraction({click_type:"ON",signal_origin:"TOC_HEADING_CLICKED"}),e.preventDefault(),e.stopPropagation(),t.onClick()}},r,o&&k().createElement(Ze,{cellId:t.cellRef.model.id,data:a?s:null,commands:l})):null}}const et=e=>{const[t,n]=(0,v.useState)(null),o=(0,ie.useSelector)((e=>e.tocdashboard.displayDashboard)),a=(0,ie.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,ie.useSelector)((e=>e.commondashboard.dashboardQueryArgs));(0,v.useEffect)((()=>{l()}),[e.notebookCells,e.notebookPanel,a,s]),(0,v.useEffect)((()=>()=>{n(null)}),[e.notebookCells,e.notebookPanel]);const l=async()=>{const t=w.getMetadataComp(e.notebookPanel.model,b.notebookId);if(t&&e.notebookCells){try{const e=await Rt(`${Kt}/dashboard/${t}/toc?${Tt(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 k().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),k().createElement(Ye,{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 tt extends ne{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 te.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&&w.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 nt(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 ot="jp-MarkdownHeadingCollapsed",at="dashboard-toc-hr-collapsed";function st(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 lt(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 rt={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 it(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,rt);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,rt);a=a.replace("¶","");let c=parseInt(e.tagName[1],10);l||(c-=1),d=c;const u=ht(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 ct(e,t,n,o,a,s){return e&&"markdown"===e.type&&s?[t,n]=lt(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 dt=6;function ht(e,t){if(null===e)return;let n="";if(e=function(e,t){for(let n=t+1;n<=dt;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 ut(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 mt(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=ut(t);e?(r.push({text:e.text,level:e.level,numbering:ht(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 pt(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 gt=q.dispatch;function bt(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 tt(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 v.Component{constructor(n){super(n),this.state={showCode:!0,showMarkdown:!1,numbering:!1,showVisuDashboard:M.displayDashboard},t.context.ready.then((()=>{if(t){t.content.activeCellChanged.connect((()=>{e.updateWidget()}));const n=w.getMetadataComp(t.model,"dashboard-toc-autonumbering"),o=w.getMetadataComp(t.model,"dashboard-toc-showcode"),a=w.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(){ge.sendInteraction({click_type:e.showCode?"OFF":"ON",signal_origin:"TOC_TOOLBAR_CODE"}),e.setShowCode(!e.showCode,t),this.setState({showCode:e.showCode})}toggleMarkdown(){ge.sendInteraction({click_type:e.showMarkdown?"OFF":"ON",signal_origin:"TOC_TOOLBAR_MARKDOWN"}),e.setShowMarkdown(!e.showMarkdown,t),this.setState({showMarkdown:e.showMarkdown})}toggleNumbering(){ge.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;ge.sendInteraction({click_type:e?"OFF":"ON",signal_origin:"TOC_TOOLBAR_SHOW_HIDE"}),gt(T(!e)),this.setState({showVisuDashboard:!e})}refreshDashboard(){ge.sendInteraction({click_type:"ON",signal_origin:"TOC_TOOLBAR_REFRESH"}),gt(K())}render(){const e=v.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"},v.createElement(_.codeIcon.react,null)),t=v.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"},v.createElement(_.markdownIcon.react,null)),n=v.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"},v.createElement(_.numberingIcon.react,null)),o=v.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?v.createElement(N.react,null):v.createElement(I.react,null)),a=v.createElement("div",{onClick:e=>this.refreshDashboard(),role:"text","aria-label":"Refresh Dashboard",title:"Refresh Dashboard",className:"dashboard-toc-toolbar-icon"},v.createElement(_.refreshIcon.react,null));return v.createElement("div",null,v.createElement("div",{className:"dashboard-toc-toolbar"},v.createElement("div",{className:"dashboard-toc-toolbar-compartment"},e,t,n),v.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?ot:at;if("header"!==n.type&&"markdown"!==n.type||(a="dashboard-toc-level-size-"+n.level),"header"===n.type||e.showMarkdown){let r;r=n.html?v.createElement("span",{dangerouslySetInnerHTML:{__html:s+e.sanitizer.sanitize(n.html,rt)},className:"dashboard-"+n.type+"-cell dashboard-toc-cell-item"}):v.createElement("span",{className:"dashboard-"+n.type+"-cell dashboard-toc-cell-item"},s+n.text);let i=null;return"header"===n.type&&(i=v.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=w.getMetadataComp(null==o?void 0:o.cellRef.model,n);l&&(a=l),o?(ge.sendInteraction({click_type:a?"OFF":"ON",signal_origin:"TOC_COLLAPSE_HEADERS"}),s?t&&Y.NotebookActions.setHeadingCollapse(null==o?void 0:o.cellRef,!a,t.content):a?w.deleteMetadataComp(o.cellRef.model,n):w.setMetadataComp(o.cellRef.model,n,!0),e.updateAndCollapse({heading:o,collapsedState:a})):e.updateWidget()}(t,l,n)}},v.createElement("div",{className:"dashboard-toc-Collapser-child"}))),r=v.createElement("div",{className:"dashboard-toc-entry-holder "+a+(t.content.activeCell===n.cellRef||pt(t,n,o)?" dashboard-toc-active-cell":"")},i,r),r}return null}if(t&&"code"===n.type&&e.showCode){const e=(null===(a=w.getMetadataComp(t.model,"language_info"))||void 0===a?void 0:a.mimetype)||"text";return v.createElement("div",{className:"dashboard-toc-code-cell-div"},v.createElement("div",{className:"dashboard-toc-code-cell-prompt"},n.prompt),v.createElement("span",{className:"dashboard-toc-code-span"},v.createElement(ze,{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?ot:at;let u=w.getMetadataComp(d,h);if(u=u||!1,"code"!==d.type){if("markdown"===d.type){const e=c;let h;const m=nt(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=it(c.node,d,t,l,m,s.numbering,s.numberingH1,c,i);for(h of p)[o,r,a]=ct(h,o,r,a,u,s.showMarkdown)}else{const e=e=>()=>{n.content.activeCellIndex=i,c.node.scrollIntoView()},t=mt(d.sharedModel.getSource(),e,l,m,c,i);for(h of t)[o,r,a]=ct(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=st(d.sharedModel.getSource(),e,s,nt(o),c,i);[o,r]=lt(o,l,r,a)}}return o},collapseChanged:s.collapseChanged}}const Ct=e=>{const[t,n]=(0,v.useState)(e.startT1),[o,a]=(0,v.useState)(e.startT2),s=Ht(new Date),l=t=>{n(t),e.t1Callback(t)},r=t=>{a(t),e.t2Callback(t)};return k().createElement("div",{className:"dashboard-export-dialog-container"},k().createElement("p",null,"Select the time range of the data you want to export (the past week selected by default)."),k().createElement("div",{className:"dashboard-export-dialog-calendar-container"},k().createElement("div",{className:"dashboard-export-dialog-calendar"},k().createElement("p",null,"Start Date :"),k().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:Ht(t),onChange:e=>(e=>{const t=new Date(e);l(t),t>=o&&r(t)})(e.target.value),max:Ht(o)})),k().createElement("div",{className:"dashboard-export-dialog-calendar"},k().createElement("p",null,"End Date :"),k().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:Ht(o),onChange:e=>(e=>{const n=new Date(e);r(n),n<=t&&l(n)})(e.target.value),max:s}))))},wt=e=>{const[t,n]=(0,v.useState)(!1);return k().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,y.showDialog)({title:"Download Notebook Data",body:k().createElement(Ct,{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"},y.Dialog.cancelButton()]}).then((a=>{a.button.accept&&((e,t,o)=>{n(!0);let a="";Rt(`${Kt}/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)}},k().createElement(_.downloadIcon.react,{className:"dashboard-toc-download-icon"}),"Export")};class vt extends me{constructor(e,t,n,o){super(e),this.title.caption="Dashboard ToC",this.title.icon=E,this.id="unianalytics-toc-dashboard",this.node.setAttribute("role","region"),this.node.setAttribute("aria-label","Dashboard ToC section"),this._commands=t,this._notebookGenerator=bt(this,n,o),this._toolbar=null,e.panelSwitched.connect(this._onPanelSwitched,this)}onBeforeShow(e){ge.sendInteraction({click_type:"ON",signal_origin:"TOC_DASHBOARD_SHOW_HIDE"})}onBeforeHide(e){ge.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?v.createElement("div",{className:"dashboard-TableOfContents"},v.createElement("div",{className:"dashboard-stack-panel-header"},v.createElement("span",{className:"dashboard-toc-header-title"},ee.PathExt.basename(e.context.localPath)),v.createElement(wt,{notebookId:this._panelManager.validityChecks.tag})),this._toolbar&&v.createElement(this._toolbar,null),v.createElement(et,{headings:this._notebookGenerator.generate(e),itemRenderer:this._notebookGenerator.itemRenderer,notebookPanel:e,commands:this._commands,notebookCells:this._panelManager.notebookCells})):v.createElement(v.Fragment,null)}}var kt=n(4882);const _t="cell-dashboard-button-container";class yt extends kt.Widget{constructor(e,t){super(),this.addClass(_t);const n=document.createElement("button");n.className="cell-dashboard-button",n.innerHTML=E.svgstr,n.title=n.disabled?"No notebook identifier":"Open Cell Dashboard",n.onclick=()=>{e.execute(m.dashboardOpenDashboardPlayback,{from:"Cell",cell_id:t})},this.node.appendChild(n)}dispose(){super.dispose()}}class ft{constructor(e){this._commands=e}createNew(e){return new Et(e,this._commands)}}class Et{constructor(e,t){this._isDisposed=!1,this._panel=e,this._commands=t,this._previousActiveCell=this._panel.content.activeCell,e.context.ready.then((()=>{Bt(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 yt(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(_t)))||[]}get isDisposed(){return this._isDisposed}dispose(){var e;if(this.isDisposed)return;this._isDisposed=!0;const t=w.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,te.Signal.clearData(this)}}var St=n(7717);class xt{constructor(e){this._commands=e}createNew(e){const t=new y.ToolbarButton({className:"playback-button",icon:S,onClick:()=>{this._commands.execute(m.dashboardOpenDashboardPlayback,{from:"Playback"})},tooltip:"Open Dashboard Playback Widget"});return e.context.ready.then((()=>{Bt(e)&&e.toolbar.insertItem(0,"openDashboardPlayback",t)})),new St.DisposableDelegate((()=>{t.dispose()}))}}const Nt=q.dispatch,It=e=>{const t=(0,v.useRef)(null),n=(0,v.useRef)(null),o=new Date,[a,s]=(0,v.useState)(new Date(o.getTime()-72e5)),[l,r]=(0,v.useState)(new Date(o.getTime()+6e4)),[i,c]=(0,v.useState)(40),[d,h]=((e,t=200)=>{const[n,o]=(0,v.useState)(e),[a,s]=(0,v.useState)(e);return(0,v.useEffect)((()=>{const e=setTimeout((()=>o(a)),t);return()=>clearTimeout(e)}),[a,t]),[n,s]})(40),u=()=>{const e=a.getTime()+i/40*(l.getTime()-a.getTime());return new Date(e)};return(0,v.useEffect)((()=>{const t=u();Nt(V({notebookId:e.notebookId,t2ISOString:t.toISOString()}))}),[d,a,l]),(0,v.useEffect)((()=>()=>{Nt(V({notebookId:e.notebookId,t2ISOString:null}))}),[e.notebookId]),k().createElement("div",{className:"dashboard-playback-widget-container"},k().createElement("div",{className:"dashboard-playback-header"},k().createElement("div",{className:"dashboard-playback-icon-container"},k().createElement(S.react,{className:"dashboard-playback-icon"})),k().createElement("div",{className:"dashboard-playback-mode-title"},"Playback Mode"),k().createElement("div",{className:"dashboard-playback-icon-container-hovering dashboard-playback-icon-container",onClick:e.hideParent},k().createElement(pe.X,{className:"dashboard-playback-icon"}))),k().createElement("div",{className:"dashboard-playback-mode-text"},"Move data cutoff time back in custom range (includes non-active users):"),k().createElement("div",{className:"dashboard-playback-controls"},k().createElement("div",{className:"dashboard-playback-time-button-wrapper"},k().createElement(ce.Button,{className:"dashboard-playback-time-button-container",onClick:()=>{var e;return null===(e=t.current)||void 0===e?void 0:e.showPicker()}},"t",k().createElement("sub",null,"1"),k().createElement("input",{ref:t,id:"unianalytics-datetime-t1",className:"dashboard-playback-hidden-datepicker dashboard-calendar-input",type:"datetime-local",value:Ht(a),max:Ht(l),onChange:e=>{const t=new Date(e.target.value);t.getTime()>=l.getTime()&&r(new Date(t.getTime()+6e4)),s(t)}})),k().createElement("span",{className:"dashboard-playback-label"},"Min cutoff:",k().createElement("br",null)," ",Pt(a))),k().createElement("div",{className:"dashboard-playback-range-wrapper"},k().createElement(ce.Form.Range,{min:0,max:40,onChange:e=>{return t=parseInt(e.target.value),c(t),void h(t);var t},value:i}),k().createElement("span",{className:"dashboard-playback-label"},"Selected cutoff:",k().createElement("br",null)," ",Pt(u()))),k().createElement("div",{className:"dashboard-playback-time-button-wrapper"},k().createElement(ce.Button,{className:"dashboard-playback-time-button-container",onClick:()=>{var e;return null===(e=n.current)||void 0===e?void 0:e.showPicker()}},"t",k().createElement("sub",null,"2"),k().createElement("input",{ref:n,id:"unianalytics-datetime-t2",className:"dashboard-playback-hidden-datepicker dashboard-calendar-input",type:"datetime-local",value:Ht(l),max:Ht(o),onChange:e=>{const t=new Date(e.target.value);t.getTime()<=a.getTime()&&s(new Date(t.getTime()-6e4)),r(t)}})),k().createElement("span",{className:"dashboard-playback-label"},"Max cutoff:",k().createElement("br",null)," ",Pt(l)))))};class Dt extends y.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){ge.sendInteraction({click_type:"ON",signal_origin:"DASHBOARD_PLAYBACK_SHOW_HIDE"}),this.update()}onBeforeHide(e){ge.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?v.createElement(It,{notebookId:t,hideParent:()=>this.hide()}):v.createElement(v.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 Mt=q.dispatch;const Ot=(e,t,n,o,a,s,l)=>{$t(e.auth_notebooks),Gt||(async function(e,t,n,o,a){console.log(`JupyterLab extension ${r}: dashboard plugins activated!`),(e=>{const t=e.shell.widgets();let n=w.getNextWidgetValueComp(t);for(;n;){if(n instanceof Y.NotebookPanel){const t=n,o=new xt(e.commands),a=new ft(e.commands),s=o.createNew(t),l=a.createNew(t);t.disposed.connect((()=>{s.dispose(),l.dispose()}))}n=w.getNextWidgetValueComp(t)}e.docRegistry.addWidgetExtension("Notebook",new ft(e.commands)),e.docRegistry.addWidgetExtension("Notebook",new xt(e.commands))})(e);const s=new re,l=new Xe(s,a.sanitizer),i=new vt(s,e.commands,a.sanitizer,o),c=new Dt(s);function d(){const t=e.shell.currentWidget;if(!t)return;if(!(t instanceof Y.NotebookPanel))return void(s.panel&&s.panel.isDisposed&&(s.panel=null));const n=t;s.panel=n}n.restored.then((()=>{kt.Widget.attach(c,n.node)})),n.add(l,"right",{rank:1e3}),n.add(i,"left",{rank:1e3}),e.commands.addCommand(m.dashboardOpenDashboardPlayback,{label:"Notebook Visualizations",caption:"Open Dashboards",icon:E,iconClass:"jp-icon3",execute:t=>{"Playback"===t.from?(l.isVisible||Mt(B()),i.isVisible||e.shell.activateById(i.id),c.isAttached&&s.validityChecks.registered===Z.SUCCESS&&(c.isHidden?c.show():c.hide())):"Cell"===t.from?(ge.sendInteraction({click_type:"ON",signal_origin:"NOTEBOOK_CELL_BUTTON"}),Mt(j({cellId:t.cell_id}))):"Toc"===t.from&&(ge.sendInteraction({click_type:"ON",signal_origin:"TOC_OPEN_CELL_DASHBOARD"}),Mt(j({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()}))}(t,o,a,l,s),function(e,t){console.log(`JupyterLab extension ${r}: upload plugin is activated!`),e.commands.addCommand(m.uploadNotebook,{label:"Upload notebook to unianalytics",icon:e=>e.isContextMenu?_.fileUploadIcon:void 0,execute:n=>{const o=w.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),Rt(Kt+"/notebook/upload",{method:"POST",body:o}).then((async n=>{const o=await n.json();n.ok?e(o):422===n.status?t("Invalid token"):t(o.error||"Unknown error")})).catch((e=>{t(e)}))}))).then((n=>{const a={...t,content:n};e.serviceManager.contents.save(o.path,a).then((e=>{const t=n.metadata[b.notebookId],a=`${Kt}/notebook/download/${t}`;(0,y.showDialog)({title:o.name,body:k().createElement(f,{url:a,fileName:o.name}),buttons:[y.Dialog.okButton()]}).catch((e=>console.log(e)))})).catch((e=>{(0,y.showDialog)({title:o.name,body:`Error saving the file:\n${e}`,buttons:[y.Dialog.okButton()]}).catch((e=>console.log(e)))}))})).catch((e=>{(0,y.showDialog)({title:o.name,body:`Error uploading the file:\n${e}`,buttons:[y.Dialog.okButton()]}).catch((e=>console.log(e)))}))}))}}),e.commands.addCommand(m.copyDownloadLink,{label:"Copy unianalytics notebook link",icon:e=>e.isContextMenu?_.linkIcon:void 0,execute:n=>{const o=w.getFileComp(t);o&&e.serviceManager.contents.get(o.path).then((e=>{const t=e.content.metadata;if(t){const e=t[b.notebookId];e?navigator.clipboard.writeText(`${Kt}/notebook/download/${e}`).catch((e=>{console.error(`${r}: Error copying link: `,e)})):console.log(`${r}: Notebook not tagged`)}}))}}),e.contextMenu.addItem({selector:p,type:"separator",rank:0}),e.contextMenu.addItem({args:{isContextMenu:!0},command:m.uploadNotebook,selector:p,rank:0}),e.contextMenu.addItem({args:{isContextMenu:!0},command:m.copyDownloadLink,selector:p,rank:0}),e.contextMenu.addItem({selector:p,type:"separator",rank:0})}(t,n),Jt(!0))},Tt=(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])):"")},Rt=async(e,t)=>{const n=await At(e,t);if(401===n.status){const o=await n.clone().json();if("expired_token"===(null==o?void 0:o.status)){if(await Lt())return At(e,t);console.log(`${r}: Token refresh failed.`),zt.registrationStateChanged.emit(Z.EXPIREDTOKEN)}}return n},At=async(e,t)=>{const n={headers:{Authorization:`Bearer ${localStorage.getItem(c)}`}},o={...n,...t,headers:{...n.headers,...(null==t?void 0:t.headers)||{}}};return fetch(e,o)},Lt=async()=>{const e=await fetch(`${Kt}/jwt/refresh`,{method:"POST",headers:{Authorization:`Bearer ${localStorage.getItem(d)}`}});if(e.ok){const t=await e.clone().json();if(null==t?void 0:t.access_token)return console.log(`${r}: access token refreshed`),localStorage.setItem(c,t.access_token),!0}return!1},$t=e=>{window.postMessage({identifier:"unianalytics",authNotebooks:e||[]},window.origin)},Bt=e=>!!(e&&!e.isDisposed&&e.context.isReady&&w.getMetadataComp(e.context.model,b.notebookId)&&w.getMetadataComp(e.context.model,b.cellMapping)),jt=(e,t)=>!(!e||!t)&&e.length===t.length&&e.every(((e,n)=>e===t[n])),Ht=e=>e.toLocaleString("sv-SE").slice(0,-3),Pt=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")}`,Ft=e=>{const[t,n]=(0,v.useState)(""),[o,a]=(0,v.useState)(""),[s,l]=(0,v.useState)(!1),[i,u]=(0,v.useState)({text:"",isSuccess:!1});return k().createElement("div",{className:"dashboard-loginbox-content"},k().createElement(ce.Form,null,k().createElement(ce.Form.Group,{controlId:"formUsername"},k().createElement(ce.Form.Label,null,"Username"),k().createElement(ce.Form.Control,{type:"text",value:t,onChange:e=>n(e.target.value),placeholder:"Enter username"})),k().createElement(ce.Form.Group,{controlId:"formPassword",className:"dashboard-loginbox-password-group"},k().createElement(ce.Form.Label,null,"Password"),k().createElement(ce.Form.Control,{type:"password",value:o,onChange:e=>a(e.target.value),placeholder:"Enter password"})),k().createElement(ce.Button,{variant:"primary",type:"submit",onClick:()=>{l(!0);const n=t;fetch(`${Kt}/jwt/login`,{method:"POST",body:JSON.stringify({username:n,password:o}),headers:{"Content-Type":"application/json"}}).then((async e=>{const t=await e.json();return{responseOk:e.ok,loginJSON:t}})).then((({responseOk:t,loginJSON:o})=>{l(!1),t?(localStorage.setItem(c,o.access_token),localStorage.setItem(d,o.refresh_token),localStorage.setItem(h,n),Ot(o,e.app,e.factory,e.restorer,e.labShell,e.rendermime,e.settings),u({text:"Login successful: dashboards activated.",isSuccess:!0})):u({text:`Login failed: ${o.error||"Unknown reason"}.`,isSuccess:!1})})).catch((e=>{l(!1),console.error(`${r}: Login error, ${e}`),u({text:`${e}`,isSuccess:!1})}))},disabled:!t||!o||s,className:"dashboard-loginbox-btn"},"Log In")),k().createElement("div",{className:"dashboard-loginbox-signup"},k().createElement("a",{href:`${Kt}/jwt/signup`,target:"_blank",rel:"noopener noreferrer"},"Not registered? Sign up",k().createElement(pe.BoxArrowUpRight,{className:"dashboard-loginbox-signup-icon"}))),k().createElement("div",{className:"dashboard-loginbox-response-container"},s?k().createElement("div",{className:"dashboard-loginbox-spinner-container"},k().createElement(ce.Spinner,{animation:"border",role:"status",variant:"primary",className:"dashboard-loginbox-spinner"})):k().createElement("div",{className:"dashboard-loginbox-response "+(i.isSuccess?"":"dashboard-loginbox-error-text")},i.text)))};class Ut{constructor(){this._registrationStateChanged=new te.Signal(this)}get registrationStateChanged(){return this._registrationStateChanged}}const zt=new Ut;let Vt=null;function Wt(e){Vt=e}let Gt=!1;function Jt(e){Gt=e}const Qt="http://localhost:1015";let Kt=Qt,Xt=Qt;const qt={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);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]);w.setJupyterVersion(l).then((async()=>{let l,i;if(s)try{[l,i]=await Promise.all([s.load(`${r}:plugin`),s.load(`${r}:endpoint`)]),c(l),l.changed.connect(c),d(i),i.changed.connect(d)}catch(e){console.error(`${r}: Failed to load settings.\n${e}`)}!function(e,t,n,o,a,s){console.log(`JupyterLab extension ${r}: login plugin is activated!`),e.commands.addCommand(m.openLogin,{label:"Login to Access Unianalytics Dashboards",icon:x,execute:l=>{(0,y.showDialog)({title:k().createElement("div",{className:"dashboard-loginbox-title-container"},k().createElement("div",{className:"dashboard-loginbox-icon-container"},k().createElement(x.react,{className:"dashboard-loginbox-icon"})),k().createElement("div",{className:"dashboard-loginbox-title"},"Login: Unianalytics Dashboards")),body:k().createElement(Ft,{app:e,factory:t,restorer:n,labShell:o,rendermime:a,settings:s}),focusNodeSelector:'input[type="text"]',buttons:[{accept:!1,actions:[],ariaLabel:"Close",caption:"",className:"",displayType:"default",iconClass:"",iconLabel:"",label:"Close"}]}).then((e=>{})).catch((e=>console.log(`${r} Error with Login: ${e}`)))}})}(e,t,n,o,a,l),Rt(`${Kt}/jwt/check`).then((e=>{if(e.ok)return e.json();throw new Error("Unauthorized user")})).then((s=>{Ot(s,e,t,n,o,a,l)})).catch((e=>{$t([]),console.log(`${r}: Authentication error, ${e}`)}))}))}else console.log(`${r}: Use a more recent version of JupyterLab (>=${l})`);function c(e){var t;const n=e.composite.commonDashboardSettings;n?ge.setPermission(n.dashboardCollection||!1):ge.setPermission((null===(t=e.default("commonDashboardSettings"))||void 0===t?void 0:t.dashboardCollection)||!1)}function d(e){const t=e.composite.useLocalBackend,n=e.composite.backendEndpoint;t?(Kt=Qt,Xt=Qt):"string"==typeof n?(Kt=n,Xt=n):(Kt=Qt,Xt=Qt)}}},Zt=qt},2204:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%272%27 fill=%27%23fff%27/%3e%3c/svg%3e"},9609:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%2386b7fe%27/%3e%3c/svg%3e"},2469:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%23fff%27/%3e%3c/svg%3e"},7486:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27rgba%280, 0, 0, 0.25%29%27/%3e%3c/svg%3e"},991:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27rgba%28255, 255, 255, 0.25%29%27/%3e%3c/svg%3e"},4144:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23dc3545%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23dc3545%27 stroke=%27none%27/%3e%3c/svg%3e"},6254:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23000%27%3e%3cpath d=%27M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z%27/%3e%3c/svg%3e"},5321:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23052c65%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"},3460:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23212529%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"},1281:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%236ea8fe%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"},5647:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z%27/%3e%3c/svg%3e"},1692:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"},6770:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e"},6711:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23dee2e6%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e"},8931:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10h8%27/%3e%3c/svg%3e"},6199:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27m6 10 3 3 6-6%27/%3e%3c/svg%3e"},2956:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%28255, 255, 255, 0.55%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e"},2221:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%2833, 37, 41, 0.75%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e"},5122:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3e%3cpath fill=%27%23198754%27 d=%27M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3e%3c/svg%3e"}}]);
@@ -0,0 +1 @@
1
+ var _JUPYTERLAB;(()=>{"use strict";var e,t,r,a,o,n,i,l,d,f,u,c,s,b,p,h,m,v,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(221)]).then((()=>()=>r(3629))),"./extension":()=>Promise.all([r.e(39),r.e(29),r.e(221)]).then((()=>()=>r(3629))),"./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",211:"583fddc965c583e61532",221:"be8ec9ae55ab7f238b28",308:"d9da4ce35f354c6f12e1",373:"37ddee9d229ac254f896",376:"d960746fd943a4ef55b8",426:"a7015f9dfda310972c1b",459:"75a9fe630dfdb00e65b4",533:"f7a454b11ba5cd79dc0c",546:"ee956f25626d9f03fb3d",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",211:"583fddc965c583e61532",221:"be8ec9ae55ab7f238b28",308:"d9da4ce35f354c6f12e1",373:"37ddee9d229ac254f896",376:"d960746fd943a4ef55b8",426:"a7015f9dfda310972c1b",459:"75a9fe630dfdb00e65b4",533:"f7a454b11ba5cd79dc0c",546:"ee956f25626d9f03fb3d",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.19",(()=>Promise.all([x.e(39),x.e(29),x.e(221)]).then((()=>()=>x(3629))))),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)),v(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)},m=(e,t,r,a)=>{h(p(e,t,r,a))},v=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),v(b(t,r,a)||m(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?v(n):o()})),P={},_={6029:()=>j("default","react",[1,18,2,0]),381:()=>j("default","@jupyterlab/settingregistry",[1,4,3,5]),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))))),3108:()=>j("default","@jupyterlab/filebrowser",[1,4,3,5]),3231:()=>w("default","react-infinite-scroll-component",[1,6,1,0],(()=>x.e(738).then((()=>()=>x(8533))))),3352:()=>j("default","@jupyterlab/apputils",[1,4,4,5]),3655:()=>j("default","@jupyterlab/ui-components",[1,4,3,5]),3748:()=>w("default","@reduxjs/toolkit",[1,1,9,5],(()=>x.e(426).then((()=>()=>x(8426))))),4882:()=>j("default","@lumino/widgets",[1,2,3,1,,"alpha",0]),4901:()=>j("default","@lumino/signaling",[1,2,0,0]),6004:()=>j("default","@jupyterlab/coreutils",[1,6,3,5]),6553:()=>j("default","@jupyterlab/rendermime",[1,4,3,5]),7044:()=>j("default","@jupyterlab/codeeditor",[1,4,3,5]),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))))),7765:()=>j("default","@jupyterlab/application",[1,4,3,5]),7885:()=>w("default","react-chartjs-2",[1,5,2,0],(()=>Promise.all([x.e(459),x.e(798)]).then((()=>()=>x(5376))))),8352:()=>w("default","chart.js",[1,4,4,1],(()=>x.e(708).then((()=>()=>x(4708))))),8559:()=>w("default","react-bootstrap",[1,2,10,0],(()=>Promise.all([x.e(18),x.e(704)]).then((()=>()=>x(1018))))),9037:()=>j("default","@jupyterlab/notebook",[1,4,3,5]),9156:()=>w("default","socket.io-client",[1,4,7,5],(()=>x.e(817).then((()=>()=>x(4817))))),9337:()=>g("default","@jupyterlab/outputarea",[1,4,3,5]),9558:()=>j("default","@jupyterlab/codemirror",[1,4,3,5]),7704:()=>j("default","react-dom",[1,18,2,0]),6459:()=>w("default","chart.js",[1,4,1,1],(()=>x.e(708).then((()=>()=>x(4708))))),1373:()=>j("default","@codemirror/language",[1,6,0,0]),6211:()=>j("default","@codemirror/view",[1,6,9,6]),851:()=>j("default","@lezer/common",[1,1,0,0]),7138:()=>j("default","@lezer/highlight",[1,1,0,0]),8204:()=>j("default","@codemirror/state",[1,6,2,0])},k={29:[6029],211:[6211],221:[381,2535,2779,3108,3231,3352,3655,3748,4882,4901,6004,6553,7044,7717,7760,7765,7885,8352,8559,9037,9156,9337,9558],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,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: jupyterlab_unianalytics_dashboard
3
- Version: 4.0.18
3
+ Version: 4.0.19
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,37 +1,37 @@
1
1
  jupyterlab_unianalytics_dashboard/__init__.py,sha256=Za7P6E6Jv74S8VEb4YbFMfhrdWLw9aBjmLGwQg7UszU,1184
2
- jupyterlab_unianalytics_dashboard/_version.py,sha256=B1X_zmJiMFLEb_S2iYM_gWBwHmCxiQ4rJHbfX-ZkdK4,172
2
+ jupyterlab_unianalytics_dashboard/_version.py,sha256=mVMrdOi7sYsNCL3EZlYz4n3viG4X1IVeSAgsLLn4CYY,172
3
3
  jupyterlab_unianalytics_dashboard/handlers.py,sha256=-3HQHnkvyG7YAs9q6BDkC1oL1QMJ4zIs9v5j5PuNaNg,1677
4
4
  jupyterlab_unianalytics_dashboard/tests/__init__.py,sha256=buA7EWWBnEQOljAcEsF8zyfrdTu9B93Khlk10h88Uu0,63
5
5
  jupyterlab_unianalytics_dashboard/tests/test_handlers.py,sha256=kEg161G0pn_N7ghOphUc_FQHb1O7v6-FzxjPfgcOSzo,176
6
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/etc/jupyter/jupyter_server_config.d/jupyterlab_unianalytics_dashboard.json,sha256=FYXMI4pI920t2RK3w0RFVwhs0ymqABl4WwPE9KVjAOc,108
7
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/package.json,sha256=LFvikG0wihyO4pcA-JnDvZjj8Ul820GGObHOUq4WNys,6699
8
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/schemas/jupyterlab_unianalytics_dashboard/endpoint.json,sha256=0nq-MWVjckwP5ddK4dQxMZJTFkug-1lZwQuw8WWDbcs,724
9
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/schemas/jupyterlab_unianalytics_dashboard/package.json.orig,sha256=nuaCNPg7vacScZ_3EBdkPGjg5Duce9Gclq-ldAKbT7g,7591
10
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/schemas/jupyterlab_unianalytics_dashboard/plugin.json,sha256=dLRO78tDnd45DUKsCmij83AFY_4F9CaL6gT61YnlDz0,1895
11
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/10.1e5c908a94fc4b83c2e5.js,sha256=HlyQipT8S4PC5ZaZiR4jl8gvs1l0EjP2CAABadOryzA,3272
12
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/18.759fbf2374edc42b5c3e.js,sha256=OoCQg2OYr0cRReBXDCWZGvXzQuaf4ACT2O75qlyS9pk,119059
13
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/18.759fbf2374edc42b5c3e.js.LICENSE.txt,sha256=LGdwyBXWbtsopwVyjsXCIwoc-zj70yxAOCOR7b1bAc4,371
14
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/221.ea3c0f1d0b0f79bca0cd.js,sha256=6jwPHQsPebygzbNsSEWlOuEd8KHvfjXQOjy3NCtj7es,88812
15
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/308.d9da4ce35f354c6f12e1.js,sha256=2dpM4181TG8S4X9h1smTZxuEj_36_9dnyXP9WAnDc6U,34889
16
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/39.5a3b28a79ba693a9b627.js,sha256=Wjsop5umk6m2JxM1X-FUHXGjLx9VerTKARofOQiIC5Y,232611
17
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/426.a7015f9dfda310972c1b.js,sha256=pwFfnf2jEJcsG33rpOBqjadU2yl8Kjd4VKHiJBS1_Wg,44909
18
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/533.f7a454b11ba5cd79dc0c.js,sha256=96RUsRulzXncDHnRMeE-83L9WkHjRyeskAjMBXcxM9U,7674
19
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/546.ee956f25626d9f03fb3d.js,sha256=7pVvJWJtnwP7PbLQHo58GPFeMfb9EKEpJIYza2wR_rM,25149
20
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/563.b613f734176cb51510ef.js,sha256=thP3NBdstRUQ7z0MMVTt-dRX0zdI1U6SizErxsB6vc8,2553
21
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/638.d37271636c4d956096de.js,sha256=03JxY2xNlWCW3tFQbU-MnQvO_hqaV2wVLdTT5xK5cvA,211595
22
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/708.323c3614d31a5918cfaf.js,sha256=k5bjg7Tc0b_QeKLqQ3GySYfe-fD_Cmk2MrJw6Dy2hdA,202771
23
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/708.323c3614d31a5918cfaf.js.LICENSE.txt,sha256=xIUBoDm2Q1zieFkjrEGq0jGXVbMtAPXzrFW0MnO1d1A,257
24
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/738.f4338fb8d8276b96c3f3.js,sha256=9DOPuNgna5bD8wIHhr93Z5uK0M47OPhsUnVvDiLLrsg,7674
25
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/744.329dc4d1ed2f5c918266.js,sha256=Mp3E0e0vXJGCZhMtTLSgKoSM-NGSX33ZbxwqSwSQEM4,3046069
26
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/798.33a8f0893a66574e9259.js,sha256=M6jwiTpmV06SWWqqAniO0FVkkVtJBOINHU5raofwhrU,2553
27
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/817.6437962faf359015be36.js,sha256=ZDeWL681kBW-Nh_mO8SLNp7Ubys4AvSMEC4MT7tL4f0,40299
28
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/981.ebb9e1d6122980b5ff0e.js,sha256=b3dzzmlqyg5AOql0QCQyFAvZdTOXFSrKNiTWaIYNJf0,14181
29
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/981.ebb9e1d6122980b5ff0e.js.LICENSE.txt,sha256=Al4BU9vlGm0hvL2QgWwO5THo2WCGIoDqSdIpipPsBSw,1023
30
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/remoteEntry.d3168c57b2e946e39927.js,sha256=0xaMV7LpRuOZJ5YXErDXFKWYAK_D0wgOOjciBXgDl4o,11778
31
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/style.js,sha256=rhrGR_lSZihMhH1ui5EcIiqrutyovwjkTWTs-UdKcws,176
32
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/third-party-licenses.json,sha256=nLcszpHEN1Krc4Al2MJvvhJp9HdL9gh9UL2eTvhqtiQ,74820
33
- jupyterlab_unianalytics_dashboard-4.0.18.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/install.json,sha256=LnBFne2_G6SmJApbmJhffpyKMU9sTqEnMQP67RrBoxw,227
34
- jupyterlab_unianalytics_dashboard-4.0.18.dist-info/METADATA,sha256=Ik1Q7zkjKaQUmjwrbfrs-JpBaZLvlgN9WleYolTPyKQ,7959
35
- jupyterlab_unianalytics_dashboard-4.0.18.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
36
- jupyterlab_unianalytics_dashboard-4.0.18.dist-info/licenses/LICENSE,sha256=9_UAg-SCFDakKGE66XAiHBxSWDr1MTZ7xHhXarScTPE,1524
37
- jupyterlab_unianalytics_dashboard-4.0.18.dist-info/RECORD,,
6
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/etc/jupyter/jupyter_server_config.d/jupyterlab_unianalytics_dashboard.json,sha256=FYXMI4pI920t2RK3w0RFVwhs0ymqABl4WwPE9KVjAOc,108
7
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/package.json,sha256=UFas-0nBz8CjGA2isAPxr6T-3qk9MSCpT690pO39gPQ,6699
8
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/schemas/jupyterlab_unianalytics_dashboard/endpoint.json,sha256=0nq-MWVjckwP5ddK4dQxMZJTFkug-1lZwQuw8WWDbcs,724
9
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/schemas/jupyterlab_unianalytics_dashboard/package.json.orig,sha256=lZdig53z21SigcWGXvhrA0YJCcky4PpioJLJCCmU7H4,7591
10
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/schemas/jupyterlab_unianalytics_dashboard/plugin.json,sha256=dLRO78tDnd45DUKsCmij83AFY_4F9CaL6gT61YnlDz0,1895
11
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/10.1e5c908a94fc4b83c2e5.js,sha256=HlyQipT8S4PC5ZaZiR4jl8gvs1l0EjP2CAABadOryzA,3272
12
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/18.759fbf2374edc42b5c3e.js,sha256=OoCQg2OYr0cRReBXDCWZGvXzQuaf4ACT2O75qlyS9pk,119059
13
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/18.759fbf2374edc42b5c3e.js.LICENSE.txt,sha256=LGdwyBXWbtsopwVyjsXCIwoc-zj70yxAOCOR7b1bAc4,371
14
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/221.be8ec9ae55ab7f238b28.js,sha256=vo7JrlWrfyOLKJbaPPXAsUU7B7O_JCV5DL0Wh36mqGY,88820
15
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/308.d9da4ce35f354c6f12e1.js,sha256=2dpM4181TG8S4X9h1smTZxuEj_36_9dnyXP9WAnDc6U,34889
16
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/39.5a3b28a79ba693a9b627.js,sha256=Wjsop5umk6m2JxM1X-FUHXGjLx9VerTKARofOQiIC5Y,232611
17
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/426.a7015f9dfda310972c1b.js,sha256=pwFfnf2jEJcsG33rpOBqjadU2yl8Kjd4VKHiJBS1_Wg,44909
18
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/533.f7a454b11ba5cd79dc0c.js,sha256=96RUsRulzXncDHnRMeE-83L9WkHjRyeskAjMBXcxM9U,7674
19
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/546.ee956f25626d9f03fb3d.js,sha256=7pVvJWJtnwP7PbLQHo58GPFeMfb9EKEpJIYza2wR_rM,25149
20
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/563.b613f734176cb51510ef.js,sha256=thP3NBdstRUQ7z0MMVTt-dRX0zdI1U6SizErxsB6vc8,2553
21
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/638.d37271636c4d956096de.js,sha256=03JxY2xNlWCW3tFQbU-MnQvO_hqaV2wVLdTT5xK5cvA,211595
22
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/708.323c3614d31a5918cfaf.js,sha256=k5bjg7Tc0b_QeKLqQ3GySYfe-fD_Cmk2MrJw6Dy2hdA,202771
23
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/708.323c3614d31a5918cfaf.js.LICENSE.txt,sha256=xIUBoDm2Q1zieFkjrEGq0jGXVbMtAPXzrFW0MnO1d1A,257
24
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/738.f4338fb8d8276b96c3f3.js,sha256=9DOPuNgna5bD8wIHhr93Z5uK0M47OPhsUnVvDiLLrsg,7674
25
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/744.329dc4d1ed2f5c918266.js,sha256=Mp3E0e0vXJGCZhMtTLSgKoSM-NGSX33ZbxwqSwSQEM4,3046069
26
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/798.33a8f0893a66574e9259.js,sha256=M6jwiTpmV06SWWqqAniO0FVkkVtJBOINHU5raofwhrU,2553
27
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/817.6437962faf359015be36.js,sha256=ZDeWL681kBW-Nh_mO8SLNp7Ubys4AvSMEC4MT7tL4f0,40299
28
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/981.ebb9e1d6122980b5ff0e.js,sha256=b3dzzmlqyg5AOql0QCQyFAvZdTOXFSrKNiTWaIYNJf0,14181
29
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/981.ebb9e1d6122980b5ff0e.js.LICENSE.txt,sha256=Al4BU9vlGm0hvL2QgWwO5THo2WCGIoDqSdIpipPsBSw,1023
30
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/remoteEntry.d3a3f8b691a2f85d8804.js,sha256=06P4tpGi-F2IBPpj2DTJWxUDNvmQc2D7QKAVYUe3a-8,11780
31
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/style.js,sha256=rhrGR_lSZihMhH1ui5EcIiqrutyovwjkTWTs-UdKcws,176
32
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/static/third-party-licenses.json,sha256=nLcszpHEN1Krc4Al2MJvvhJp9HdL9gh9UL2eTvhqtiQ,74820
33
+ jupyterlab_unianalytics_dashboard-4.0.19.data/data/share/jupyter/labextensions/jupyterlab_unianalytics_dashboard/install.json,sha256=LnBFne2_G6SmJApbmJhffpyKMU9sTqEnMQP67RrBoxw,227
34
+ jupyterlab_unianalytics_dashboard-4.0.19.dist-info/METADATA,sha256=tEAXmYcu7-S70ToCatL2hq9pOvgMthk0si5MoPfQG-k,7959
35
+ jupyterlab_unianalytics_dashboard-4.0.19.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
36
+ jupyterlab_unianalytics_dashboard-4.0.19.dist-info/licenses/LICENSE,sha256=9_UAg-SCFDakKGE66XAiHBxSWDr1MTZ7xHhXarScTPE,1524
37
+ jupyterlab_unianalytics_dashboard-4.0.19.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.24.2
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkjupyterlab_unianalytics_dashboard=self.webpackChunkjupyterlab_unianalytics_dashboard||[]).push([[221],{3629:(e,t,n)=>{n.r(t),n.d(t,{ARE_DASHBOARD_PLUGINS_ACTIVATED:()=>Gt,AuthSignal:()=>Ut,BACKEND_API_URL:()=>Kt,CURRENT_NOTEBOOK_ID:()=>Vt,WEBSOCKET_API_URL:()=>Xt,authSignal:()=>zt,default:()=>Zt,setCurrentNotebookId:()=>Wt,setDashboardPluginsActivated:()=>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=`${r}/dashboard_username`,u="unianalytics-page-container";var m;!function(e){e.dashboardOpenDashboardPlayback=`${r}:dashboard-open-playback`,e.uploadNotebook=`${r}:dashboard-upload-notebook`,e.copyDownloadLink=`${r}:dashboard-copy-download-link`,e.openLogin=`${r}:dashboard-open-login`}(m||(m={}));const p='.jp-DirListing-item[data-file-type="notebook"]',g="unianalytics";var b,C;!function(e){e.notebookId=`${g}_notebook_id`,e.cellMapping=`${g}_cell_mapping`}(b||(b={}));class w{static async setJupyterVersion(e){w._jupyterVersion=e,await w._setEditorLanguageRegistry(),await w._asyncImports()}static async _setEditorLanguageRegistry(){if(4===w._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)]})}}),w._editorDefaultLanguages=a}}static async _asyncImports(){if(4===w._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===w._jupyterVersion)throw new Error("JupyterLab version is not set in CompatibilityManager before trying to access it.")}static observeEditorVisibility(e){return 3===w._jupyterVersion?new IntersectionObserver((t=>{t[0].isIntersecting&&e.refresh()}),{root:null,threshold:.5}):null}}C=w,w._jupyterVersion=null,w._editorDefaultLanguages=void 0,w._EditorView=void 0,w._jupyterTheme=void 0,w.getMetadataComp=(e,t)=>{var n;return w.checkJupyterVersionSet(),4===w._jupyterVersion?null==e?void 0:e.getMetadata(t):null===(n=null==e?void 0:e.metadata)||void 0===n?void 0:n.get(t)},w.setMetadataComp=(e,t,n)=>{var o;w.checkJupyterVersionSet(),4===w._jupyterVersion?null==e||e.setMetadata(t,n):null===(o=null==e?void 0:e.metadata)||void 0===o||o.set(t,n)},w.deleteMetadataComp=(e,t)=>{var n;return w.checkJupyterVersionSet(),4===w._jupyterVersion?null==e?void 0:e.deleteMetadata(t):null===(n=null==e?void 0:e.metadata)||void 0===n?void 0:n.delete(t)},w.getFileComp=e=>{var t;w.checkJupyterVersionSet();const n=null===(t=e.tracker.currentWidget)||void 0===t?void 0:t.selectedItems().next();return 4===w._jupyterVersion?null==n?void 0:n.value:n},w.getCellsArrComp=e=>(w.checkJupyterVersionSet(),e?Array.from({length:e.length},((t,n)=>e.get(n))):null),w.getCodeMirrorOptionsComp=()=>(w.checkJupyterVersionSet(),4===w._jupyterVersion?{extensions:[C._jupyterTheme,C._EditorView.lineWrapping,C._EditorView.editable.of(!1)],languages:w._editorDefaultLanguages}:{config:{readOnly:!0}}),w.getNextWidgetValueComp=e=>{var t;return w.checkJupyterVersionSet(),4===w._jupyterVersion?null===(t=e.next())||void 0===t?void 0:t.value:e.next()};var v=n(6029),k=n.n(v),_=n(3764),y=n(8690);const f=e=>{const[t,n]=(0,v.useState)(!1);return k().createElement("div",null,k().createElement("p",null,"Successfully uploaded, can be downloaded accessing:"),k().createElement("div",{className:"unianalytics-link-container"},k().createElement("div",{className:"unianalytics-link"},e.url),k().createElement("div",{className:"unianalytics-link-button-container"},k().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?k().createElement(_.checkIcon.react,null):k().createElement(_.copyIcon.react,null)))))};const E=new _.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>'}),S=new _.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>'}),x=new _.LabIcon({name:`${r}:analytics-login-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="\nM738.000000,599.000000 \n\tC737.999878,619.328857 738.009277,639.157654 737.994812,658.986511 \n\tC737.989014,666.934814 733.986572,670.993347 726.122437,670.994324 \n\tC653.972168,671.003296 581.821899,671.004211 509.671600,670.992310 \n\tC502.160278,670.991089 498.008820,666.818481 498.007507,659.276550 \n\tC497.995880,592.625000 497.998016,525.973511 498.003967,459.321991 \n\tC498.004730,450.822723 501.906342,447.017944 510.571411,447.000946 \n\tC513.062195,446.996063 515.552979,447.000214 518.680237,447.000214 \n\tC518.796387,444.999603 518.982727,443.253784 518.985718,441.507599 \n\tC519.010254,427.344208 518.672607,413.171631 519.066162,399.019135 \n\tC519.998840,365.477570 532.933105,337.602509 559.186768,316.270508 \n\tC574.191284,304.078918 591.182678,297.275513 610.632568,295.860992 \n\tC636.322754,293.992645 658.657410,301.480255 678.315552,317.789124 \n\tC698.896729,334.863831 711.618042,356.662292 714.768921,383.084930 \n\tC716.823181,400.311066 716.366150,417.838593 716.979919,435.233063 \n\tC717.108276,438.871582 716.998535,442.518494 716.998535,447.001343 \n\tC720.472961,447.001343 723.562073,446.978119 726.650757,447.005981 \n\tC733.789185,447.070374 737.990417,451.305908 737.992493,458.531281 \n\tC738.006104,505.187531 737.999756,551.843750 738.000000,599.000000 \nM686.169434,386.321167 \n\tC684.202209,372.874786 678.159302,361.412323 669.619812,350.970001 \n\tC656.586304,335.032257 639.597351,327.122864 619.408630,326.113678 \n\tC607.678467,325.527313 596.512085,328.608551 586.218628,334.382050 \n\tC562.178833,347.865814 549.929749,368.957886 548.176208,395.949982 \n\tC547.195801,411.041962 547.989929,426.249786 548.011963,441.405396 \n\tC548.014526,443.160858 548.194458,444.916016 548.289307,446.620117 \n\tC595.092957,446.620117 641.302185,446.620117 688.661255,446.620117 \n\tC687.953979,426.508026 687.261108,406.805328 686.169434,386.321167 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM445.000000,137.000000 \n\tC536.813049,137.000015 628.126404,137.126938 719.438660,136.851227 \n\tC731.881165,136.813644 741.407166,146.194763 741.147888,158.507431 \n\tC740.642883,182.491470 741.009644,206.493652 740.995605,230.488327 \n\tC740.988464,242.735672 732.716858,250.995651 720.446045,250.996033 \n\tC547.484497,251.001495 374.522919,251.001450 201.561340,250.996048 \n\tC189.286880,250.995667 181.011475,242.738358 181.004440,230.495682 \n\tC180.990463,206.167755 180.990570,181.839828 181.004395,157.511902 \n\tC181.011368,145.264450 189.282990,137.005264 201.553741,137.004120 \n\tC282.535828,136.996597 363.517914,137.000092 445.000000,137.000000 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM486.000000,775.998657 \n\tC353.514160,775.998657 221.528183,775.927307 89.542709,776.146667 \n\tC79.949707,776.162598 71.798676,770.599548 71.814911,758.597900 \n\tC72.076706,565.119019 71.999863,371.639648 71.999847,178.160385 \n\tC71.999847,175.691223 71.999847,173.222061 71.999847,170.227814 \n\tC62.611301,170.227814 53.688507,170.227814 43.427563,170.227814 \n\tC57.732803,141.585114 71.557716,113.904144 85.980057,85.026985 \n\tC100.277077,113.596474 114.120583,141.259720 128.424072,169.842133 \n\tC118.648087,169.842133 109.646706,169.842133 100.332687,169.842133 \n\tC100.332687,362.470093 100.332687,554.354919 100.332687,746.620605 \n\tC277.708801,746.620605 454.928070,746.620605 632.829712,746.620605 \n\tC632.829712,737.757935 632.829712,728.888367 632.829712,718.974915 \n\tC661.407043,733.216614 689.020264,746.977905 718.028381,761.434326 \n\tC689.544922,775.690369 661.832214,789.560608 633.203613,803.889282 \n\tC633.203613,794.085144 633.203613,785.506958 633.203613,775.998657 \n\tC583.961853,775.998657 535.230896,775.998657 486.000000,775.998657 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM189.462997,561.267212 \n\tC194.206940,560.057251 198.622803,558.142334 203.043198,558.131836 \n\tC279.851929,557.948914 356.661804,558.147339 433.469818,557.850342 \n\tC445.825714,557.802551 455.411530,567.154968 455.149750,579.537415 \n\tC454.639221,603.685669 454.733429,627.856812 455.137848,652.009094 \n\tC455.288208,660.987854 444.963867,671.157593 436.026642,671.131714 \n\tC357.385376,670.904053 278.742828,670.894165 200.101700,671.145691 \n\tC191.189301,671.174194 180.634293,660.999329 180.833405,651.636475 \n\tC181.336334,627.987915 181.235504,604.317871 180.868591,580.664307 \n\tC180.744949,572.694214 183.081192,566.437134 189.462997,561.267212 \nz"/>\n<path xmlns="http://www.w3.org/2000/svg" fill="#616161" class="jp-custom-icon jp-icon3 jp-icon-selectable" \n\td="\nM242.000000,461.000000 \n\tC227.511383,460.999695 213.522690,461.030701 199.534195,460.988190 \n\tC190.073975,460.959442 181.029373,451.998047 181.014694,442.586761 \n\tC180.974960,417.107574 180.966629,391.628235 181.020004,366.149078 \n\tC181.039078,357.047943 190.144424,348.021454 199.298752,348.016388 \n\tC254.420502,347.985992 309.542297,347.981476 364.664093,348.018463 \n\tC375.257812,348.025574 383.952515,356.668701 383.978577,367.214142 \n\tC384.040710,392.360168 384.027405,417.506531 383.984039,442.652618 \n\tC383.967834,452.056519 374.905334,460.982574 365.399902,460.988464 \n\tC324.433258,461.013885 283.466644,460.999725 242.000000,461.000000 \nz"/>\n</svg>'}),N=new _.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>'}),I=new _.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 D=n(3748);const M={displayDashboard:!0,hasNotebookId:!1},O=(0,D.createSlice)({name:"tocdashboard",initialState:M,reducers:{setDisplayHideDashboard:(e,t)=>{e.displayDashboard=t.payload},setHasNotebookId:(e,t)=>{e.hasNotebookId=t.payload}}}),{setDisplayHideDashboard:T,setHasNotebookId:R}=O.actions,A=O.reducer,L={navigationState:[{pageName:"Notebook"}]},$=(0,D.createSlice)({name:"sidedashboard",initialState:L,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=L.navigationState}}}),{navigateToNotebook:B,navigateToCell:j,navigateToHistory:H,resetNavigationState:P}=$.actions,F=$.reducer,U=(0,D.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(!jt(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:z,setDashboardQueryArgsT2:V,setDashboardQueryArgsSelectedGroups:W,setDashboardQueryArgsDisplayRealTime:G,setSortBy:J,setNotebookCells:Q,refreshDashboards:K}=U.actions,X=U.reducer,q=(0,D.configureStore)({reducer:{tocdashboard:A,sidedashboard:F,commondashboard:X}});var Z,Y=n(9282),ee=n(4705),te=n(4901);class ne{}!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"}(Z||(Z={}));var oe=n(9156);const ae=q.dispatch;class se{constructor(){this._socket=null}_createSocket(e,t){this._socket=(0,oe.io)(`${Xt}?conType=TEACHER&nbId=${e}&userId=${encodeURIComponent(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",(()=>{ae(K()),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();const t=localStorage.getItem(h);e&&t&&this._createSocket(e,t)}closeSocketConnection(){this._socket&&this._socket.close(),this._socket=null}sendMessageToUser(e,t){this._socket&&this._socket.emit("send_message",{userId:e,message:t})}}const le=q.dispatch;class re{constructor(){this._panelUpdatedSignal=new te.Signal(this),this._panelSwitchedSignal=new te.Signal(this),this._ongoingContextId="",this._ongoingCheckId="",this._panel=null,this._monitor=null,this._validityChecks={tag:null,registered:Z.LOADING},this._websocketManager=new se,zt.registrationStateChanged.connect(this._handleRegistrationStateChange,this)}_handleRegistrationStateChange(e,t){this._validityChecks.registered=t,this._panelUpdatedSignal.emit(void 0)}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),Wt(null),this._validityChecks={tag:null,registered:Z.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 ee.ActivityMonitor({signal:this._panel.context.model.contentChanged,timeout:1e3}),this._monitor.activityStopped.connect(this._onPanelUpdated,this),Bt(this._panel)){const e=w.getMetadataComp(this._panel.model,b.notebookId);Wt(e),this._validityChecks={tag:e,registered:Z.LOADING},this._performRegistrationCheck()}this._onPanelUpdated()}}))}_performRegistrationCheck(){const e=crypto.randomUUID();this._ongoingCheckId=e;let t=Z.ERROR;Rt(`${Kt}/dashboard/${this._validityChecks.tag}/check`).then((e=>e.json())).then((e=>{(null==e?void 0:e.status)?"expired_token"===e.status?t=Z.EXPIREDTOKEN:"not_found"===e.status?t=Z.NOTFOUND:"no_user_permission"===e.status?t=Z.USERNOTAUTHORIZED:"success"===e.status&&(t=Z.SUCCESS):t=Z.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===Z.SUCCESS&&(le(P()),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=w.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(!jt(e,this._notebookCells)){this._notebookCells=e;const t=n.map((e=>({id:e.id,cellType:e.type})));return le(Q(t)),!0}}else this._notebookCells=null;return!1}}var ie=n(7760),ce=n(8559);const de=()=>k().createElement("div",{style:{width:"100%",textAlign:"center",margin:"50px 0"}},k().createElement(ce.Spinner,{style:{width:"50px",height:"50px",fontSize:"x-large"},animation:"border",role:"status",variant:"primary"})),he=({title:e,placeholderText:t="No data for the opened notebook"})=>k().createElement("div",{className:"dashboard-TableOfContents"},k().createElement("div",{className:"dashboard-stack-panel-header"},"Side Panel Dashboard"),k().createElement("div",{className:"dashboard-TableOfContents-placeholder"},k().createElement("div",{className:"dashboard-TableOfContents-placeholderContent"},k().createElement("h3",null,e),k().createElement("p",null,t))));class ue extends y.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 v.createElement(he,{title:"No Notebook",placeholderText:"Open a notebook to start viewing its content."});if(!this._panelManager.panel.context.isReady)return v.createElement(de,null);if(!this._panelManager.validityChecks.tag)return v.createElement(he,{title:"Notebook not Tagged for Tracking"});switch(this._panelManager.validityChecks.registered){case Z.LOADING:return v.createElement(de,null);case Z.SUCCESS:return v.createElement(ie.Provider,{store:q},this.computeComponentToRender());default:return v.createElement(he,{title:this._panelManager.validityChecks.registered})}}}const me=ue;var pe=n(2535);class ge{static setPermission(e){ge._isInteractionRecordingEnabled=e}}ge._isInteractionRecordingEnabled=!1,ge.sendInteraction=e=>{ge._isInteractionRecordingEnabled&&Rt(`${Kt}/dashboard_interaction/add`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,time:(new Date).toISOString(),notebook_id:Vt})})};const be=q.dispatch,Ce=()=>{const e=(0,ie.useSelector)((e=>e.sidedashboard.navigationState));return k().createElement(ce.Stack,{className:"breadcrumb-container",direction:"horizontal",gap:2},e.map(((t,n)=>k().createElement("div",{className:n===e.length-1?"breadcrumb-tile-active breadcrumb-tile":"breadcrumb-tile",onClick:()=>{"Notebook"===t.pageName?ge.sendInteraction({click_type:"ON",signal_origin:"BREADCRUMB_TO_NOTEBOOK"}):"Cell"===t.pageName&&ge.sendInteraction({click_type:"ON",signal_origin:"BREADCRUMB_TO_CELL"}),n!==e.length-1&&be(H(n))}},t.pageName))),k().createElement("div",{className:"breadcrumb-buttons-container"},k().createElement(ce.Button,{className:"dashboard-button",onClick:()=>{ge.sendInteraction({click_type:"ON",signal_origin:"DASHBOARD_REFRESH_BUTTON"}),be(K())}},k().createElement(pe.ArrowClockwise,{className:"dashboard-icon"}))))},we=q.dispatch,ve=[{value:1,displayName:"All Data",disabledDatePicker:!0},{value:2,displayName:"From t<sub>1</sub>",disabledDatePicker:!1}],ke=e=>{const[t,n]=(0,v.useState)(!1),o=(0,ie.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),a=()=>{const t=o.t1ISOString[e.notebookId]?1:0;return ve[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,v.useState)(a()),[c,d]=(0,v.useState)(s()),[h,u]=(0,v.useState)(l),m=Ht(new Date);return(0,v.useEffect)((()=>{we(z({notebookId:e.notebookId,t1ISOString:r.disabledDatePicker?null:c.toISOString()})),we(G({notebookId:e.notebookId,displayRealTime:h}))}),[c,r,h]),k().createElement(ce.Dropdown,{show:t,onToggle:()=>{ge.sendInteraction({click_type:t?"OFF":"ON",signal_origin:"DASHBOARD_FILTER_TIME"}),t||(d(s()),i(a()),u(l())),n(!t)},className:"custom-dropdown"},k().createElement(ce.Dropdown.Toggle,{className:"dashboard-button"},!(h&&r.disabledDatePicker)&&k().createElement("span",{className:"dashboard-filter-red-dot"}),k().createElement(pe.CalendarWeek,{className:"dashboard-icon"})),k().createElement(ce.Dropdown.Menu,null,k().createElement(ce.Dropdown.Header,null,"Data Timeframe Selector"),k().createElement(ce.Dropdown.Divider,null),k().createElement("div",{className:"custom-dropdown-container custom-dropdown-item"},k().createElement(ce.Form.Check,{id:"time-checkbox-include-all",type:"checkbox",label:"Only show active users",checked:h,onChange:e=>u(e.target.checked)})),k().createElement(ce.Dropdown.Divider,null),k().createElement("div",{className:"dashboard-calendar-container"},k().createElement("div",{className:"cell-radio-container"},k().createElement(ce.ButtonGroup,{size:"sm"},ve.map(((e,t)=>k().createElement(ce.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(ve[Number(e.currentTarget.value)-1])}},k().createElement("span",{dangerouslySetInnerHTML:{__html:e.displayName}}))))))),k().createElement("div",{className:"dashboard-calendar-container"},k().createElement("div",{className:"dashboard-calendar-input-wrapper "+(r.disabledDatePicker?"disabled":"")},k().createElement("div",null,"t",k().createElement("sub",null,"1")),k().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:Ht(c),onChange:e=>d(new Date(e.target.value)),max:m})))))},_e=({PassedComponent:e,title:t})=>k().createElement(ce.Row,{className:"mb-4"},k().createElement(ce.Card,{className:"chart-card"},k().createElement(ce.Card.Title,{className:"chart-card-title"},t),k().createElement(ce.Card.Body,{className:"chart-card-body"},e)));var ye=n(7885);const fe={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"}}}},Ee=`> ${Math.floor(30)}'`,Se={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: ${xe(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?xe(e):e}},title:{display:!0,text:"Average time spent on the cell",color:"#969696"}}}},xe=e=>{const t=Math.floor(e/60);return e>=1800?Ee:`${t>0?t+"'":""}${(e%60).toFixed(0)}"`},Ne=e=>{const[t,n]=(0,v.useState)({labels:[],datasets:[]}),o=(0,ie.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),a=(0,ie.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,ie.useSelector)((e=>e.commondashboard.notebookCells));return(0,v.useEffect)((()=>{Rt(`${Kt}/dashboard/${e.notebookId}/user_code_execution?${Tt(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]),k().createElement(_e,{PassedComponent:k().createElement(ye.Bar,{data:t,options:fe}),title:"Code cell executions across users"})},Ie=q.dispatch,De=e=>{const[t,n]=(0,v.useState)(!1),o=(0,ie.useSelector)((t=>t.commondashboard.dashboardQueryArgs.selectedGroups[e.notebookId])),[a,s]=(0,v.useState)({includeAllChecked:void 0===o||0===o.length,groupList:[]});(0,v.useEffect)((()=>{if(l){let t;t=a.includeAllChecked?[]:a.groupList.filter((e=>!0===e.checked)).map((e=>e.name)),Ie(W({notebookId:e.notebookId,groups:t}))}}),[a]);const[l,r]=(0,v.useState)(!1);return(0,v.useEffect)((()=>{r(!1),Rt(`${Kt}/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]),k().createElement(ce.Dropdown,{id:"group-dropdown",className:"custom-dropdown",show:t,onToggle:()=>{ge.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)}},k().createElement(ce.Dropdown.Toggle,{className:"dashboard-button"},a.groupList.some((e=>!0===e.checked))&&k().createElement("span",{className:"dashboard-filter-red-dot"}),k().createElement(pe.PeopleFill,{className:"dashboard-icon"})),k().createElement(ce.Dropdown.Menu,null,k().createElement(ce.Dropdown.Header,null,"Filter by group of users"),k().createElement(ce.Dropdown.Divider,null),k().createElement("div",{className:"custom-dropdown-container custom-dropdown-item"},k().createElement(ce.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}})),k().createElement(ce.Dropdown.Divider,null),k().createElement("div",{className:"group-dropdown-scroll "+(a.includeAllChecked?"disabled":"")},a.groupList.length>0?a.groupList.map(((e,t)=>k().createElement("div",{className:"custom-dropdown-item "+(a.includeAllChecked?"disabled":"")},k().createElement(ce.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)})))):k().createElement(ce.Dropdown.Item,{disabled:!0},"No groups available"))))},Me=e=>{const[t,n]=(0,v.useState)({labels:[],datasets:[]}),o=(0,ie.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),a=(0,ie.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,ie.useSelector)((e=>e.commondashboard.notebookCells));return(0,v.useEffect)((()=>{Rt(`${Kt}/dashboard/${e.notebookId}/user_cell_duration_time?${Tt(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]),k().createElement(_e,{PassedComponent:k().createElement(ye.Bubble,{data:t,options:Se}),title:"Time spent on each cell across users"})},Oe=e=>k().createElement(k().Fragment,null,k().createElement("div",{className:"dashboard-title-container"},k().createElement("div",{className:"dashboard-title-text"},e.notebookName),k().createElement("div",{className:"dashboard-dropdown-container"},k().createElement(De,{notebookId:e.notebookId}),k().createElement(ke,{notebookId:e.notebookId}))),k().createElement(ce.Row,null,k().createElement(ce.Col,null,k().createElement(Ne,{notebookId:e.notebookId}),k().createElement(Me,{notebookId:e.notebookId}))));var Te=n(3231),Re=n.n(Te);const Ae=[{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)"}],Le=Ae[0].key,$e=q.dispatch,Be=e=>{const t=(0,ie.useSelector)((t=>t.commondashboard.dashboardQueryArgs.sortBy[e.notebookId]||Le));return k().createElement(ce.Dropdown,{id:"order-by-dropdown",onSelect:t=>{t&&(ge.sendInteraction({click_type:"ON",signal_origin:"CELL_DASHBOARD_FILTER_SORT"}),$e(J({notebookId:e.notebookId,sortCriterion:t})))},className:"custom-dropdown"},k().createElement(ce.Dropdown.Toggle,{className:"dashboard-button"},t!==Le&&k().createElement("span",{className:"dashboard-filter-red-dot"}),k().createElement(pe.SortUp,{className:"dashboard-icon"})),k().createElement(ce.Dropdown.Menu,null,k().createElement(ce.Dropdown.Header,null,"Sort cells by"),k().createElement(ce.Dropdown.Divider,null),Ae.map(((e,n)=>k().createElement(ce.Dropdown.Item,{id:`sort-item-${n}`,eventKey:e.key,className:t===e.key?"highlighted":""},e.label)))))},je=e=>k().createElement(ce.Col,{md:12},k().createElement(ce.Card,{className:"cell-card"},k().createElement(ce.Card.Body,{style:{gap:"10px"}},k().createElement(ce.Row,{className:"cell-card-wrapper"},k().createElement(ce.Col,{md:12,className:"cell-user-title"},k().createElement(ce.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}`)),k().createElement(ce.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 k().createElement(ce.Col,{md:12,className:"cell-execution-displayed-time"},n)}return null})()))));var He=n(2779);const Pe=e=>{const[t,n]=(0,v.useState)(null);return(0,v.useEffect)((()=>{(()=>{const t=He.marked.parser(He.marked.lexer(e.markdownContent));n(e.sanitizer.sanitize(t))})()}),[e.markdownContent]),k().createElement("div",{className:"cell-content-container"},t&&k().createElement("div",{className:"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput",dangerouslySetInnerHTML:{__html:t}}))};var Fe=n(8531),Ue=n(374);const ze=({cell_input:e,language_mimetype:t,className:n})=>{const o=(0,v.useRef)(null);return(0,v.useEffect)((()=>{const n=o.current;if(n){n.innerHTML="";const o=new Ue.CodeEditor.Model;o.mimeType=t,o.sharedModel.setSource(e);const a=new Fe.CodeMirrorEditor({host:n,model:o,...w.getCodeMirrorOptionsComp()}),s=w.observeEditorVisibility(a);return s&&s.observe(n),()=>{s&&s.disconnect()}}}),[e,t]),k().createElement("div",{ref:o,className:n})};var Ve=n(987);const We=new s.RenderMimeRegistry({initialFactories:s.standardRendererFactories}),Ge=({cell_output_model:e})=>{const t=(0,v.useRef)(null),n=new Ve.OutputAreaModel;return(0,v.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=We.preferredMimeType(t.data);if(a){const e=We.createRenderer(a);e.renderModel(t),o.appendChild(e.node)}}}}),[e]),k().createElement("div",{ref:t,className:"cell-content-container"})},Je=e=>{const t=(0,v.useRef)([]),[n,o]=(0,v.useState)([]),[a,s]=(0,v.useState)(!1),l=(0,v.useRef)(0),i=(0,v.useRef)(7),c=(0,v.useRef)(0),d=(0,ie.useSelector)((e=>e.sidedashboard.navigationState)),h=(0,ie.useSelector)((e=>e.commondashboard.refreshBoolean)),m=(0,ie.useSelector)((e=>e.commondashboard.dashboardQueryArgs)),[p,g]=(0,v.useState)(!0),[b,C]=(0,v.useState)(!0),[w,_]=(0,v.useState)(1),[y,f]=((e=800)=>{const[t,n]=(0,v.useState)(""),[o,a]=(0,v.useState)("");return(0,v.useEffect)((()=>{const t=setTimeout((()=>n(o)),e);return()=>clearTimeout(t)}),[o,e]),[t,a]})(),E=[{name:"All",value:1,status:"all"},{name:"Success",value:2,status:"ok"},{name:"Error",value:3,status:"error"}],S=E.map((e=>e.status)),x=d[d.length-1].content,N=async()=>{const n=++c.current,a=i.current,d=l.current;try{const r=await Rt(`${Kt}/dashboard/${e.notebookId}/cell/${x.cellId}?limit=${a}&offset=${d}&${Tt(m,e.notebookId)}`),h=await r.json();if(n===c.current){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,h);t.current=e,o(e),h.length<a?s(!1):s(!0),l.current+=a,i.current=7}}catch(e){console.error(`${r}: Error cell dashboard fetch: `,e)}};return(0,v.useEffect)((()=>{i.current=Math.max(t.current.length,7),s(!1),l.current=0,t.current=[],N()}),[d,m,h]),(0,v.useEffect)((()=>()=>{s(!1),l.current=0,t.current=[],o([])}),[d]),(0,v.useEffect)((()=>{if(!e.pageRouterNode)return;const t=Math.abs(e.pageRouterNode.scrollHeight-e.pageRouterNode.clientHeight-e.pageRouterNode.scrollTop)<1;a&&t&&N()}),[a,e.pageRouterNode,n,p,b,w,y]),k().createElement(k().Fragment,null,k().createElement("div",{className:"dashboard-title-container"},k().createElement("div",{className:"dashboard-title-text"},"Cell (",x.cellId,")"),k().createElement("div",{className:"dashboard-dropdown-container"},k().createElement(Be,{notebookId:e.notebookId}),k().createElement(De,{notebookId:e.notebookId}),k().createElement(ke,{notebookId:e.notebookId}))),k().createElement(ce.Form,{className:"cell-filter-container",onSubmit:e=>e.preventDefault()},k().createElement("div",{className:"cell-radio-container"},k().createElement(ce.ButtonGroup,{size:"sm"},k().createElement(ce.ToggleButton,{style:{marginRight:"3px"},key:"0",id:"code-checkbox",type:"radio",variant:"outline-primary",value:"Code",checked:p,onClick:e=>{p&&!b?e.preventDefault():(ge.sendInteraction({click_type:p?"OFF":"ON",signal_origin:"CELL_DASHBOARD_FILTER_CODE_INPUT"}),g(!p))}},"Code"),k().createElement(ce.ToggleButton,{key:"1",id:"output-checkbox",type:"radio",variant:"outline-primary",value:"Output",checked:b,onClick:e=>{!p&&b?e.preventDefault():(ge.sendInteraction({click_type:b?"OFF":"ON",signal_origin:"CELL_DASHBOARD_FILTER_CODE_OUTPUT"}),C(!b))}},"Output"))),k().createElement("div",{className:"cell-radio-container"},k().createElement(ce.ButtonGroup,{size:"sm"},E.map(((e,t)=>k().createElement(ce.ToggleButton,{key:t,id:`filter-${t}`,type:"radio",variant:"outline-primary",name:"radio",value:e.value,checked:w===e.value,onChange:e=>{ge.sendInteraction({click_type:"ON",signal_origin:"CELL_DASHBOARD_FILTER_EXECUTION"}),_(Number(e.currentTarget.value))}},e.name))))),k().createElement(ce.Form.Control,{size:"sm",type:"text",placeholder:"Type text to filter...",onChange:e=>f(e.target.value)})),k().createElement(Re(),{style:{overflow:"hidden"},scrollableTarget:u,dataLength:n.length,next:N,hasMore:a,loader:k().createElement(de,null)},(I=n,D=y,0===D.length?I:(D=D.toLowerCase(),I.filter((e=>{var t;return(null===(t=e.cell_input)||void 0===t?void 0:t.toLowerCase().includes(D))||e.cell_output_model&&JSON.stringify(e.cell_output_model).toLowerCase().includes(D)})))).map(((t,n)=>k().createElement(ce.Row,{key:n},"MarkdownExecution"===t.cell_type&&["all","ok"].includes(S[w-1])?k().createElement(je,{value:t,index:n,ExecutionContent:k().createElement(Pe,{markdownContent:t.cell_input,sanitizer:e.sanitizer})}):k().createElement(k().Fragment,null,(1===w||S[w-1]===t.status)&&k().createElement(je,{value:t,index:n,ExecutionContent:k().createElement(k().Fragment,null,p&&k().createElement(ze,{cell_input:t.cell_input,language_mimetype:t.language_mimetype,className:"cell-content-container"}),p&&b&&t.cell_output_model.length>0&&k().createElement("br",null),b&&t.cell_output_model.length>0&&k().createElement(Ge,{cell_output_model:t.cell_output_model}))})))))));var I,D};var Qe=n(8352);Qe.Chart.register(...Qe.registerables);const Ke=e=>{const t=(0,ie.useSelector)((e=>e.sidedashboard.navigationState)),[n,o]=(0,v.useState)(null),a=(0,v.useCallback)((e=>{o(e)}),[]);return k().createElement("div",{ref:a,className:"page-container",id:u},k().createElement(Ce,null),(()=>{switch(t[t.length-1].pageName){case"Notebook":return k().createElement(Oe,{notebookId:e.notebookId,notebookName:e.notebookName});case"Cell":return k().createElement(Je,{notebookId:e.notebookId,sanitizer:e.sanitizer,pageRouterNode:n});default:return null}})())};class Xe extends me{constructor(e,t){super(e),this.addClass("dashboard-react-widget"),this.title.caption="Side Dashboard",this.title.icon=E,this.id="unanalytics-side-dashboard",this.node.setAttribute("role","region"),this.node.setAttribute("aria-label","Side dashboard section"),this._sanitizer=t}onBeforeShow(e){ge.sendInteraction({click_type:"ON",signal_origin:"RIGHT_DASHBOARD_SHOW_HIDE"})}onBeforeHide(e){ge.sendInteraction({click_type:"OFF",signal_origin:"RIGHT_DASHBOARD_SHOW_HIDE"})}computeComponentToRender(){const e=this._panelManager.panel,t=this._panelManager.validityChecks.tag;return e&&t?v.createElement(Ke,{notebookId:t,notebookName:e.sessionContext.name,sanitizer:this._sanitizer}):v.createElement(v.Fragment,null)}}const qe=(e,t)=>{const n=3*e/t+.1;return Math.min(1,n)},Ze=({data:e,cellId:t,commands:n})=>k().createElement(k().Fragment,null,e&&e[0]&&e[1]?k().createElement("div",{onClick:e=>{e.preventDefault(),n.execute(m.dashboardOpenDashboardPlayback,{from:"Toc",cell_id:t})},className:"dashboard-toc-react-component",style:{backgroundColor:`rgba(25, 118, 210, ${qe(e[0],e[1])})`}},k().createElement("span",{className:"dashboard-toc-react-text"},e[0]+"/"+e[1])):k().createElement("div",{className:"dashboard-toc-react-component"}));class Ye extends k().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?k().createElement("li",{className:"dashboard-tocItem",onClick:e=>{ge.sendInteraction({click_type:"ON",signal_origin:"TOC_HEADING_CLICKED"}),e.preventDefault(),e.stopPropagation(),t.onClick()}},r,o&&k().createElement(Ze,{cellId:t.cellRef.model.id,data:a?s:null,commands:l})):null}}const et=e=>{const[t,n]=(0,v.useState)(null),o=(0,ie.useSelector)((e=>e.tocdashboard.displayDashboard)),a=(0,ie.useSelector)((e=>e.commondashboard.refreshBoolean)),s=(0,ie.useSelector)((e=>e.commondashboard.dashboardQueryArgs));(0,v.useEffect)((()=>{l()}),[e.notebookCells,e.notebookPanel,a,s]),(0,v.useEffect)((()=>()=>{n(null)}),[e.notebookCells,e.notebookPanel]);const l=async()=>{const t=w.getMetadataComp(e.notebookPanel.model,b.notebookId);if(t&&e.notebookCells){try{const e=await Rt(`${Kt}/dashboard/${t}/toc?${Tt(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 k().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),k().createElement(Ye,{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 tt extends ne{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 te.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&&w.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 nt(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 ot="jp-MarkdownHeadingCollapsed",at="dashboard-toc-hr-collapsed";function st(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 lt(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 rt={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 it(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,rt);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,rt);a=a.replace("¶","");let c=parseInt(e.tagName[1],10);l||(c-=1),d=c;const u=ht(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 ct(e,t,n,o,a,s){return e&&"markdown"===e.type&&s?[t,n]=lt(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 dt=6;function ht(e,t){if(null===e)return;let n="";if(e=function(e,t){for(let n=t+1;n<=dt;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 ut(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 mt(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=ut(t);e?(r.push({text:e.text,level:e.level,numbering:ht(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 pt(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 gt=q.dispatch;function bt(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 tt(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 v.Component{constructor(n){super(n),this.state={showCode:!0,showMarkdown:!1,numbering:!1,showVisuDashboard:M.displayDashboard},t.context.ready.then((()=>{if(t){t.content.activeCellChanged.connect((()=>{e.updateWidget()}));const n=w.getMetadataComp(t.model,"dashboard-toc-autonumbering"),o=w.getMetadataComp(t.model,"dashboard-toc-showcode"),a=w.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(){ge.sendInteraction({click_type:e.showCode?"OFF":"ON",signal_origin:"TOC_TOOLBAR_CODE"}),e.setShowCode(!e.showCode,t),this.setState({showCode:e.showCode})}toggleMarkdown(){ge.sendInteraction({click_type:e.showMarkdown?"OFF":"ON",signal_origin:"TOC_TOOLBAR_MARKDOWN"}),e.setShowMarkdown(!e.showMarkdown,t),this.setState({showMarkdown:e.showMarkdown})}toggleNumbering(){ge.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;ge.sendInteraction({click_type:e?"OFF":"ON",signal_origin:"TOC_TOOLBAR_SHOW_HIDE"}),gt(T(!e)),this.setState({showVisuDashboard:!e})}refreshDashboard(){ge.sendInteraction({click_type:"ON",signal_origin:"TOC_TOOLBAR_REFRESH"}),gt(K())}render(){const e=v.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"},v.createElement(_.codeIcon.react,null)),t=v.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"},v.createElement(_.markdownIcon.react,null)),n=v.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"},v.createElement(_.numberingIcon.react,null)),o=v.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?v.createElement(N.react,null):v.createElement(I.react,null)),a=v.createElement("div",{onClick:e=>this.refreshDashboard(),role:"text","aria-label":"Refresh Dashboard",title:"Refresh Dashboard",className:"dashboard-toc-toolbar-icon"},v.createElement(_.refreshIcon.react,null));return v.createElement("div",null,v.createElement("div",{className:"dashboard-toc-toolbar"},v.createElement("div",{className:"dashboard-toc-toolbar-compartment"},e,t,n),v.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?ot:at;if("header"!==n.type&&"markdown"!==n.type||(a="dashboard-toc-level-size-"+n.level),"header"===n.type||e.showMarkdown){let r;r=n.html?v.createElement("span",{dangerouslySetInnerHTML:{__html:s+e.sanitizer.sanitize(n.html,rt)},className:"dashboard-"+n.type+"-cell dashboard-toc-cell-item"}):v.createElement("span",{className:"dashboard-"+n.type+"-cell dashboard-toc-cell-item"},s+n.text);let i=null;return"header"===n.type&&(i=v.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=w.getMetadataComp(null==o?void 0:o.cellRef.model,n);l&&(a=l),o?(ge.sendInteraction({click_type:a?"OFF":"ON",signal_origin:"TOC_COLLAPSE_HEADERS"}),s?t&&Y.NotebookActions.setHeadingCollapse(null==o?void 0:o.cellRef,!a,t.content):a?w.deleteMetadataComp(o.cellRef.model,n):w.setMetadataComp(o.cellRef.model,n,!0),e.updateAndCollapse({heading:o,collapsedState:a})):e.updateWidget()}(t,l,n)}},v.createElement("div",{className:"dashboard-toc-Collapser-child"}))),r=v.createElement("div",{className:"dashboard-toc-entry-holder "+a+(t.content.activeCell===n.cellRef||pt(t,n,o)?" dashboard-toc-active-cell":"")},i,r),r}return null}if(t&&"code"===n.type&&e.showCode){const e=(null===(a=w.getMetadataComp(t.model,"language_info"))||void 0===a?void 0:a.mimetype)||"text";return v.createElement("div",{className:"dashboard-toc-code-cell-div"},v.createElement("div",{className:"dashboard-toc-code-cell-prompt"},n.prompt),v.createElement("span",{className:"dashboard-toc-code-span"},v.createElement(ze,{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?ot:at;let u=w.getMetadataComp(d,h);if(u=u||!1,"code"!==d.type){if("markdown"===d.type){const e=c;let h;const m=nt(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=it(c.node,d,t,l,m,s.numbering,s.numberingH1,c,i);for(h of p)[o,r,a]=ct(h,o,r,a,u,s.showMarkdown)}else{const e=e=>()=>{n.content.activeCellIndex=i,c.node.scrollIntoView()},t=mt(d.sharedModel.getSource(),e,l,m,c,i);for(h of t)[o,r,a]=ct(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=st(d.sharedModel.getSource(),e,s,nt(o),c,i);[o,r]=lt(o,l,r,a)}}return o},collapseChanged:s.collapseChanged}}const Ct=e=>{const[t,n]=(0,v.useState)(e.startT1),[o,a]=(0,v.useState)(e.startT2),s=Ht(new Date),l=t=>{n(t),e.t1Callback(t)},r=t=>{a(t),e.t2Callback(t)};return k().createElement("div",{className:"dashboard-export-dialog-container"},k().createElement("p",null,"Select the time range of the data you want to export (the past week selected by default)."),k().createElement("div",{className:"dashboard-export-dialog-calendar-container"},k().createElement("div",{className:"dashboard-export-dialog-calendar"},k().createElement("p",null,"Start Date :"),k().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:Ht(t),onChange:e=>(e=>{const t=new Date(e);l(t),t>=o&&r(t)})(e.target.value),max:Ht(o)})),k().createElement("div",{className:"dashboard-export-dialog-calendar"},k().createElement("p",null,"End Date :"),k().createElement("input",{className:"dashboard-calendar-input",type:"datetime-local",value:Ht(o),onChange:e=>(e=>{const n=new Date(e);r(n),n<=t&&l(n)})(e.target.value),max:s}))))},wt=e=>{const[t,n]=(0,v.useState)(!1);return k().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,y.showDialog)({title:"Download Notebook Data",body:k().createElement(Ct,{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"},y.Dialog.cancelButton()]}).then((a=>{a.button.accept&&((e,t,o)=>{n(!0);let a="";Rt(`${Kt}/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)}},k().createElement(_.downloadIcon.react,{className:"dashboard-toc-download-icon"}),"Export")};class vt extends me{constructor(e,t,n,o){super(e),this.title.caption="Dashboard ToC",this.title.icon=E,this.id="unianalytics-toc-dashboard",this.node.setAttribute("role","region"),this.node.setAttribute("aria-label","Dashboard ToC section"),this._commands=t,this._notebookGenerator=bt(this,n,o),this._toolbar=null,e.panelSwitched.connect(this._onPanelSwitched,this)}onBeforeShow(e){ge.sendInteraction({click_type:"ON",signal_origin:"TOC_DASHBOARD_SHOW_HIDE"})}onBeforeHide(e){ge.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?v.createElement("div",{className:"dashboard-TableOfContents"},v.createElement("div",{className:"dashboard-stack-panel-header"},v.createElement("span",{className:"dashboard-toc-header-title"},ee.PathExt.basename(e.context.localPath)),v.createElement(wt,{notebookId:this._panelManager.validityChecks.tag})),this._toolbar&&v.createElement(this._toolbar,null),v.createElement(et,{headings:this._notebookGenerator.generate(e),itemRenderer:this._notebookGenerator.itemRenderer,notebookPanel:e,commands:this._commands,notebookCells:this._panelManager.notebookCells})):v.createElement(v.Fragment,null)}}var kt=n(4882);const _t="cell-dashboard-button-container";class yt extends kt.Widget{constructor(e,t){super(),this.addClass(_t);const n=document.createElement("button");n.className="cell-dashboard-button",n.innerHTML=E.svgstr,n.title=n.disabled?"No notebook identifier":"Open Cell Dashboard",n.onclick=()=>{e.execute(m.dashboardOpenDashboardPlayback,{from:"Cell",cell_id:t})},this.node.appendChild(n)}dispose(){super.dispose()}}class ft{constructor(e){this._commands=e}createNew(e){return new Et(e,this._commands)}}class Et{constructor(e,t){this._isDisposed=!1,this._panel=e,this._commands=t,this._previousActiveCell=this._panel.content.activeCell,e.context.ready.then((()=>{Bt(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 yt(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(_t)))||[]}get isDisposed(){return this._isDisposed}dispose(){var e;if(this.isDisposed)return;this._isDisposed=!0;const t=w.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,te.Signal.clearData(this)}}var St=n(7717);class xt{constructor(e){this._commands=e}createNew(e){const t=new y.ToolbarButton({className:"playback-button",icon:S,onClick:()=>{this._commands.execute(m.dashboardOpenDashboardPlayback,{from:"Playback"})},tooltip:"Open Dashboard Playback Widget"});return e.context.ready.then((()=>{Bt(e)&&e.toolbar.insertItem(0,"openDashboardPlayback",t)})),new St.DisposableDelegate((()=>{t.dispose()}))}}const Nt=q.dispatch,It=e=>{const t=(0,v.useRef)(null),n=(0,v.useRef)(null),o=new Date,[a,s]=(0,v.useState)(new Date(o.getTime()-72e5)),[l,r]=(0,v.useState)(new Date(o.getTime()+6e4)),[i,c]=(0,v.useState)(40),[d,h]=((e,t=200)=>{const[n,o]=(0,v.useState)(e),[a,s]=(0,v.useState)(e);return(0,v.useEffect)((()=>{const e=setTimeout((()=>o(a)),t);return()=>clearTimeout(e)}),[a,t]),[n,s]})(40),u=()=>{const e=a.getTime()+i/40*(l.getTime()-a.getTime());return new Date(e)};return(0,v.useEffect)((()=>{const t=u();Nt(V({notebookId:e.notebookId,t2ISOString:t.toISOString()}))}),[d,a,l]),(0,v.useEffect)((()=>()=>{Nt(V({notebookId:e.notebookId,t2ISOString:null}))}),[e.notebookId]),k().createElement("div",{className:"dashboard-playback-widget-container"},k().createElement("div",{className:"dashboard-playback-header"},k().createElement("div",{className:"dashboard-playback-icon-container"},k().createElement(S.react,{className:"dashboard-playback-icon"})),k().createElement("div",{className:"dashboard-playback-mode-title"},"Playback Mode"),k().createElement("div",{className:"dashboard-playback-icon-container-hovering dashboard-playback-icon-container",onClick:e.hideParent},k().createElement(pe.X,{className:"dashboard-playback-icon"}))),k().createElement("div",{className:"dashboard-playback-mode-text"},"Move data cutoff time back in custom range (includes non-active users):"),k().createElement("div",{className:"dashboard-playback-controls"},k().createElement("div",{className:"dashboard-playback-time-button-wrapper"},k().createElement(ce.Button,{className:"dashboard-playback-time-button-container",onClick:()=>{var e;return null===(e=t.current)||void 0===e?void 0:e.showPicker()}},"t",k().createElement("sub",null,"1"),k().createElement("input",{ref:t,id:"unianalytics-datetime-t1",className:"dashboard-playback-hidden-datepicker dashboard-calendar-input",type:"datetime-local",value:Ht(a),max:Ht(l),onChange:e=>{const t=new Date(e.target.value);t.getTime()>=l.getTime()&&r(new Date(t.getTime()+6e4)),s(t)}})),k().createElement("span",{className:"dashboard-playback-label"},"Min cutoff:",k().createElement("br",null)," ",Pt(a))),k().createElement("div",{className:"dashboard-playback-range-wrapper"},k().createElement(ce.Form.Range,{min:0,max:40,onChange:e=>{return t=parseInt(e.target.value),c(t),void h(t);var t},value:i}),k().createElement("span",{className:"dashboard-playback-label"},"Selected cutoff:",k().createElement("br",null)," ",Pt(u()))),k().createElement("div",{className:"dashboard-playback-time-button-wrapper"},k().createElement(ce.Button,{className:"dashboard-playback-time-button-container",onClick:()=>{var e;return null===(e=n.current)||void 0===e?void 0:e.showPicker()}},"t",k().createElement("sub",null,"2"),k().createElement("input",{ref:n,id:"unianalytics-datetime-t2",className:"dashboard-playback-hidden-datepicker dashboard-calendar-input",type:"datetime-local",value:Ht(l),max:Ht(o),onChange:e=>{const t=new Date(e.target.value);t.getTime()<=a.getTime()&&s(new Date(t.getTime()-6e4)),r(t)}})),k().createElement("span",{className:"dashboard-playback-label"},"Max cutoff:",k().createElement("br",null)," ",Pt(l)))))};class Dt extends y.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){ge.sendInteraction({click_type:"ON",signal_origin:"DASHBOARD_PLAYBACK_SHOW_HIDE"}),this.update()}onBeforeHide(e){ge.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?v.createElement(It,{notebookId:t,hideParent:()=>this.hide()}):v.createElement(v.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 Mt=q.dispatch;const Ot=(e,t,n,o,a,s,l)=>{$t(e.auth_notebooks),Gt||(async function(e,t,n,o,a){console.log(`JupyterLab extension ${r}: dashboard plugins activated!`),(e=>{const t=e.shell.widgets();let n=w.getNextWidgetValueComp(t);for(;n;){if(n instanceof Y.NotebookPanel){const t=n,o=new xt(e.commands),a=new ft(e.commands),s=o.createNew(t),l=a.createNew(t);t.disposed.connect((()=>{s.dispose(),l.dispose()}))}n=w.getNextWidgetValueComp(t)}e.docRegistry.addWidgetExtension("Notebook",new ft(e.commands)),e.docRegistry.addWidgetExtension("Notebook",new xt(e.commands))})(e);const s=new re,l=new Xe(s,a.sanitizer),i=new vt(s,e.commands,a.sanitizer,o),c=new Dt(s);function d(){const t=e.shell.currentWidget;if(!t)return;if(!(t instanceof Y.NotebookPanel))return void(s.panel&&s.panel.isDisposed&&(s.panel=null));const n=t;s.panel=n}n.restored.then((()=>{kt.Widget.attach(c,n.node)})),n.add(l,"right",{rank:1e3}),n.add(i,"left",{rank:1e3}),e.commands.addCommand(m.dashboardOpenDashboardPlayback,{label:"Notebook Visualizations",caption:"Open Dashboards",icon:E,iconClass:"jp-icon3",execute:t=>{"Playback"===t.from?(l.isVisible||Mt(B()),i.isVisible||e.shell.activateById(i.id),c.isAttached&&s.validityChecks.registered===Z.SUCCESS&&(c.isHidden?c.show():c.hide())):"Cell"===t.from?(ge.sendInteraction({click_type:"ON",signal_origin:"NOTEBOOK_CELL_BUTTON"}),Mt(j({cellId:t.cell_id}))):"Toc"===t.from&&(ge.sendInteraction({click_type:"ON",signal_origin:"TOC_OPEN_CELL_DASHBOARD"}),Mt(j({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()}))}(t,o,a,l,s),function(e,t){console.log(`JupyterLab extension ${r}: upload plugin is activated!`),e.commands.addCommand(m.uploadNotebook,{label:"Upload notebook to unianalytics",icon:e=>e.isContextMenu?_.fileUploadIcon:void 0,execute:n=>{const o=w.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),Rt(Kt+"/notebook/upload",{method:"POST",body:o}).then((async n=>{const o=await n.json();n.ok?e(o):422===n.status?t("Invalid token"):t(o.error||"Unknown error")})).catch((e=>{t(e)}))}))).then((n=>{const a={...t,content:n};e.serviceManager.contents.save(o.path,a).then((e=>{const t=n.metadata[b.notebookId],a=`${Kt}/notebook/download/${t}`;(0,y.showDialog)({title:o.name,body:k().createElement(f,{url:a,fileName:o.name}),buttons:[y.Dialog.okButton()]}).catch((e=>console.log(e)))})).catch((e=>{(0,y.showDialog)({title:o.name,body:`Error saving the file:\n${e}`,buttons:[y.Dialog.okButton()]}).catch((e=>console.log(e)))}))})).catch((e=>{(0,y.showDialog)({title:o.name,body:`Error uploading the file:\n${e}`,buttons:[y.Dialog.okButton()]}).catch((e=>console.log(e)))}))}))}}),e.commands.addCommand(m.copyDownloadLink,{label:"Copy unianalytics notebook link",icon:e=>e.isContextMenu?_.linkIcon:void 0,execute:n=>{const o=w.getFileComp(t);o&&e.serviceManager.contents.get(o.path).then((e=>{const t=e.content.metadata;if(t){const e=t[b.notebookId];e?navigator.clipboard.writeText(`${Kt}/notebook/download/${e}`).catch((e=>{console.error(`${r}: Error copying link: `,e)})):console.log(`${r}: Notebook not tagged`)}}))}}),e.contextMenu.addItem({selector:p,type:"separator",rank:0}),e.contextMenu.addItem({args:{isContextMenu:!0},command:m.uploadNotebook,selector:p,rank:0}),e.contextMenu.addItem({args:{isContextMenu:!0},command:m.copyDownloadLink,selector:p,rank:0}),e.contextMenu.addItem({selector:p,type:"separator",rank:0})}(t,n),Jt(!0))},Tt=(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])):"")},Rt=async(e,t)=>{const n=await At(e,t);if(401===n.status){const o=await n.clone().json();if("expired_token"===(null==o?void 0:o.status)){if(await Lt())return At(e,t);console.log(`${r}: Token refresh failed.`),zt.registrationStateChanged.emit(Z.EXPIREDTOKEN)}}return n},At=async(e,t)=>{const n={headers:{Authorization:`Bearer ${localStorage.getItem(c)}`}},o={...n,...t,headers:{...n.headers,...(null==t?void 0:t.headers)||{}}};return fetch(e,o)},Lt=async()=>{const e=await fetch(`${Kt}/jwt/refresh`,{method:"POST",headers:{Authorization:`Bearer ${localStorage.getItem(d)}`}});if(e.ok){const t=await e.clone().json();if(null==t?void 0:t.access_token)return console.log(`${r}: access token refreshed`),localStorage.setItem(c,t.access_token),!0}return!1},$t=e=>{window.postMessage({identifier:"unianalytics",authNotebooks:e||[]},window.origin)},Bt=e=>!!(e&&!e.isDisposed&&e.context.isReady&&w.getMetadataComp(e.context.model,b.notebookId)&&w.getMetadataComp(e.context.model,b.cellMapping)),jt=(e,t)=>!(!e||!t)&&e.length===t.length&&e.every(((e,n)=>e===t[n])),Ht=e=>e.toLocaleString("sv-SE").slice(0,-3),Pt=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")}`,Ft=e=>{const[t,n]=(0,v.useState)(""),[o,a]=(0,v.useState)(""),[s,l]=(0,v.useState)(!1),[i,u]=(0,v.useState)({text:"",isSuccess:!1});return k().createElement("div",{className:"dashboard-loginbox-content"},k().createElement(ce.Form,null,k().createElement(ce.Form.Group,{controlId:"formUsername"},k().createElement(ce.Form.Label,null,"Username"),k().createElement(ce.Form.Control,{type:"text",value:t,onChange:e=>n(e.target.value),placeholder:"Enter username"})),k().createElement(ce.Form.Group,{controlId:"formPassword",className:"dashboard-loginbox-password-group"},k().createElement(ce.Form.Label,null,"Password"),k().createElement(ce.Form.Control,{type:"password",value:o,onChange:e=>a(e.target.value),placeholder:"Enter password"})),k().createElement(ce.Button,{variant:"primary",type:"submit",onClick:()=>{l(!0);const n=t;fetch(`${Kt}/jwt/login`,{method:"POST",body:JSON.stringify({username:n,password:o}),headers:{"Content-Type":"application/json"}}).then((async e=>{const t=await e.json();return{responseOk:e.ok,loginJSON:t}})).then((({responseOk:t,loginJSON:o})=>{l(!1),t?(localStorage.setItem(c,o.access_token),localStorage.setItem(d,o.refresh_token),localStorage.setItem(h,n),Ot(o,e.app,e.factory,e.restorer,e.labShell,e.rendermime,e.settings),u({text:"Login successful: dashboards activated.",isSuccess:!0})):u({text:`Login failed: ${o.error||"Unknown reason"}.`,isSuccess:!1})})).catch((e=>{l(!1),console.error(`${r}: Login error, ${e}`),u({text:`${e}`,isSuccess:!1})}))},disabled:!t||!o||s,className:"dashboard-loginbox-btn"},"Log In")),k().createElement("div",{className:"dashboard-loginbox-signup"},k().createElement("a",{href:`${Kt}/jwt/signup`,target:"_blank",rel:"noopener noreferrer"},"Not registered? Sign up",k().createElement(pe.BoxArrowUpRight,{className:"dashboard-loginbox-signup-icon"}))),k().createElement("div",{className:"dashboard-loginbox-response-container"},s?k().createElement("div",{className:"dashboard-loginbox-spinner-container"},k().createElement(ce.Spinner,{animation:"border",role:"status",variant:"primary",className:"dashboard-loginbox-spinner"})):k().createElement("div",{className:"dashboard-loginbox-response "+(i.isSuccess?"":"dashboard-loginbox-error-text")},i.text)))};class Ut{constructor(){this._registrationStateChanged=new te.Signal(this)}get registrationStateChanged(){return this._registrationStateChanged}}const zt=new Ut;let Vt=null;function Wt(e){Vt=e}let Gt=!1;function Jt(e){Gt=e}const Qt="http://localhost:1015";let Kt=Qt,Xt=Qt;const qt={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);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]);w.setJupyterVersion(l).then((async()=>{let l,i;if(s)try{[l,i]=await Promise.all([s.load(`${r}:plugin`),s.load(`${r}:endpoint`)]),c(l),l.changed.connect(c),d(i),i.changed.connect(d)}catch(e){console.error(`${r}: Failed to load settings.\n${e}`)}!function(e,t,n,o,a,s){console.log(`JupyterLab extension ${r}: login plugin is activated!`),e.commands.addCommand(m.openLogin,{label:"Login to Access Unianalytics Dashboards",icon:x,execute:l=>{(0,y.showDialog)({title:k().createElement("div",{className:"dashboard-loginbox-title-container"},k().createElement("div",{className:"dashboard-loginbox-icon-container"},k().createElement(x.react,{className:"dashboard-loginbox-icon"})),k().createElement("div",{className:"dashboard-loginbox-title"},"Login: Unianalytics Dashboards")),body:k().createElement(Ft,{app:e,factory:t,restorer:n,labShell:o,rendermime:a,settings:s}),focusNodeSelector:'input[type="text"]',buttons:[{accept:!1,actions:[],ariaLabel:"Close",caption:"",className:"",displayType:"default",iconClass:"",iconLabel:"",label:"Close"}]}).then((e=>{})).catch((e=>console.log(`${r} Error with Login: ${e}`)))}})}(e,t,n,o,a,l),Rt(`${Kt}/jwt/check`).then((e=>{if(e.ok)return e.json();throw new Error("Unauthorized user")})).then((s=>{Ot(s,e,t,n,o,a,l)})).catch((e=>{console.log(`${r}: Authentication error, ${e}`)}))}))}else console.log(`${r}: Use a more recent version of JupyterLab (>=${l})`);function c(e){var t;const n=e.composite.commonDashboardSettings;n?ge.setPermission(n.dashboardCollection||!1):ge.setPermission((null===(t=e.default("commonDashboardSettings"))||void 0===t?void 0:t.dashboardCollection)||!1)}function d(e){const t=e.composite.useLocalBackend,n=e.composite.backendEndpoint;t?(Kt=Qt,Xt=Qt):"string"==typeof n?(Kt=n,Xt=n):(Kt=Qt,Xt=Qt)}}},Zt=qt},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 +0,0 @@
1
- var _JUPYTERLAB;(()=>{"use strict";var e,t,r,a,o,n,i,d,l,f,u,c,s,b,p,h,m,v,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(221)]).then((()=>()=>r(3629))),"./extension":()=>Promise.all([r.e(39),r.e(29),r.e(221)]).then((()=>()=>r(3629))),"./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",211:"583fddc965c583e61532",221:"ea3c0f1d0b0f79bca0cd",308:"d9da4ce35f354c6f12e1",373:"37ddee9d229ac254f896",376:"d960746fd943a4ef55b8",426:"a7015f9dfda310972c1b",459:"75a9fe630dfdb00e65b4",533:"f7a454b11ba5cd79dc0c",546:"ee956f25626d9f03fb3d",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",211:"583fddc965c583e61532",221:"ea3c0f1d0b0f79bca0cd",308:"d9da4ce35f354c6f12e1",373:"37ddee9d229ac254f896",376:"d960746fd943a4ef55b8",426:"a7015f9dfda310972c1b",459:"75a9fe630dfdb00e65b4",533:"f7a454b11ba5cd79dc0c",546:"ee956f25626d9f03fb3d",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.18",(()=>Promise.all([x.e(39),x.e(29),x.e(221)]).then((()=>()=>x(3629))))),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)),v(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)},m=(e,t,r,a)=>{h(p(e,t,r,a))},v=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),v(b(t,r,a)||m(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?v(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]),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],211:[6211],221:[374,987,2535,2779,3039,3231,3748,3764,3779,4705,4882,4901,4925,7717,7760,7885,8352,8386,8531,8559,8690,9156,9282],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})();