notebook 7.4.0rc0__py3-none-any.whl → 7.4.1__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.

Potentially problematic release.


This version of notebook might be problematic. Click here for more details.

Files changed (126) hide show
  1. notebook/_version.py +1 -1
  2. notebook/static/{6236.ea8288f99f42bcff0039.js → 131.729c28b8323daf822cbe.js} +1583 -1050
  3. notebook/static/131.729c28b8323daf822cbe.js.map +1 -0
  4. notebook/static/{132.691a95a70c9fe7c1cc8f.js → 132.bbe0fd1e86fe078554cf.js} +2 -2
  5. notebook/static/{132.691a95a70c9fe7c1cc8f.js.map → 132.bbe0fd1e86fe078554cf.js.map} +1 -1
  6. notebook/static/{1650.5f86769d792e2f6834a2.js → 1650.bd3dea9432a7b69e4012.js} +4 -4
  7. notebook/static/{1650.5f86769d792e2f6834a2.js.map → 1650.bd3dea9432a7b69e4012.js.map} +1 -1
  8. notebook/static/{1684.83d8262288c722749256.js → 1684.469ee39cd97efd230d13.js} +5 -5
  9. notebook/static/{1684.83d8262288c722749256.js.map → 1684.469ee39cd97efd230d13.js.map} +1 -1
  10. notebook/static/{1715.31ca8e6a27554059ae6d.js → 1715.eb47d8a8fb23246d8368.js} +2 -2
  11. notebook/static/{1715.31ca8e6a27554059ae6d.js.map → 1715.eb47d8a8fb23246d8368.js.map} +1 -1
  12. notebook/static/{2228.4829c4be5d1369fc8c08.js → 2228.cda3deed71ac4d488b32.js} +2 -2
  13. notebook/static/{2228.4829c4be5d1369fc8c08.js.map → 2228.cda3deed71ac4d488b32.js.map} +1 -1
  14. notebook/static/{2913.5b676d091e1bc049840e.js → 2913.274b19d8f201991f4a69.js} +6 -6
  15. notebook/static/{2913.5b676d091e1bc049840e.js.map → 2913.274b19d8f201991f4a69.js.map} +1 -1
  16. notebook/static/{3146.0b943ef87caf8b2e0a25.js → 3146.b71b9d3886943ad605eb.js} +3 -3
  17. notebook/static/{3146.0b943ef87caf8b2e0a25.js.map → 3146.b71b9d3886943ad605eb.js.map} +1 -1
  18. notebook/static/{3197.9c2bb14fe784ee4c4642.js → 3197.c29a6f351f8c45adc2c5.js} +36 -37
  19. notebook/static/3197.c29a6f351f8c45adc2c5.js.map +1 -0
  20. notebook/static/{35.72c8a277c008cd943d91.js → 35.a486baf38b12aec5500f.js} +8 -22
  21. notebook/static/35.a486baf38b12aec5500f.js.map +1 -0
  22. notebook/static/{3619.94f58ca9f340882ec9c0.js → 3619.2e4bf80097f9890aef49.js} +2 -2
  23. notebook/static/{3619.94f58ca9f340882ec9c0.js.map → 3619.2e4bf80097f9890aef49.js.map} +1 -1
  24. notebook/static/{3768.d16e5254885f02885c3d.js → 3768.c850ec7880427e2d8e7f.js} +19 -19
  25. notebook/static/{7302.210ed2fce68cc9e56baf.js.map → 3768.c850ec7880427e2d8e7f.js.map} +1 -1
  26. notebook/static/{4324.efe0e7d5f17747588b74.js → 4324.fa653693694bd924557b.js} +308 -308
  27. notebook/static/4324.fa653693694bd924557b.js.map +1 -0
  28. notebook/static/{4382.f9db37f20cfcaaf6b192.js → 4382.d1360122785a038484e0.js} +3 -3
  29. notebook/static/{4382.f9db37f20cfcaaf6b192.js.map → 4382.d1360122785a038484e0.js.map} +1 -1
  30. notebook/static/{4406.8f272b06e8189d43ff5f.js → 4406.51814faad101884133fc.js} +5 -5
  31. notebook/static/{4406.8f272b06e8189d43ff5f.js.map → 4406.51814faad101884133fc.js.map} +1 -1
  32. notebook/static/{4645.f4ada6e941739ab9cfe7.js → 4645.9436fccf76f33495a266.js} +5 -5
  33. notebook/static/{4645.f4ada6e941739ab9cfe7.js.map → 4645.9436fccf76f33495a266.js.map} +1 -1
  34. notebook/static/{4837.87ff4e1392eeb22eab68.js → 4837.7d1b7cbf2f7bd5ff4274.js} +3 -3
  35. notebook/static/{4837.87ff4e1392eeb22eab68.js.map → 4837.7d1b7cbf2f7bd5ff4274.js.map} +1 -1
  36. notebook/static/{5135.9e823bbe23ab8fce7485.js → 5135.ca1cde8737ca87b8bf99.js} +11 -11
  37. notebook/static/{5135.9e823bbe23ab8fce7485.js.map → 5135.ca1cde8737ca87b8bf99.js.map} +1 -1
  38. notebook/static/5448.a9016133a2b9389ac102.js +951 -0
  39. notebook/static/5448.a9016133a2b9389ac102.js.map +1 -0
  40. notebook/static/{5573.4e4a07a102aa4b698ad9.js → 5573.99719d9cbf6ef3c79d1b.js} +17 -17
  41. notebook/static/{5573.4e4a07a102aa4b698ad9.js.map → 5573.99719d9cbf6ef3c79d1b.js.map} +1 -1
  42. notebook/static/{5601.46e8997c661be165fdbc.js → 5601.969b0f91318ba0d2c861.js} +5 -5
  43. notebook/static/{5601.46e8997c661be165fdbc.js.map → 5601.969b0f91318ba0d2c861.js.map} +1 -1
  44. notebook/static/{6345.d2829fcc732af2d87e50.js → 6345.fde2b9716946005d7b7e.js} +5 -5
  45. notebook/static/{6345.d2829fcc732af2d87e50.js.map → 6345.fde2b9716946005d7b7e.js.map} +1 -1
  46. notebook/static/{7302.210ed2fce68cc9e56baf.js → 7302.1028638d31004cdf54d7.js} +19 -19
  47. notebook/static/{3768.d16e5254885f02885c3d.js.map → 7302.1028638d31004cdf54d7.js.map} +1 -1
  48. notebook/static/{8218.983a3a002f016180aaab.js → 79.d9f6943863b1ed92fd09.js} +2 -2
  49. notebook/static/79.d9f6943863b1ed92fd09.js.map +1 -0
  50. notebook/static/{7906.2098cc1a1dc3238f8ad2.js → 7906.24a1d6f559e938f1f246.js} +3 -3
  51. notebook/static/{7906.2098cc1a1dc3238f8ad2.js.map → 7906.24a1d6f559e938f1f246.js.map} +1 -1
  52. notebook/static/{7995.d2f86b134a69be502c66.js → 7995.45be6443b704da1daafc.js} +3 -3
  53. notebook/static/{7995.d2f86b134a69be502c66.js.map → 7995.45be6443b704da1daafc.js.map} +1 -1
  54. notebook/static/{8579.ad02e595ead106b0b1ee.js → 8579.0f2ffb7e91b073333052.js} +13 -13
  55. notebook/static/{8579.ad02e595ead106b0b1ee.js.map → 8579.0f2ffb7e91b073333052.js.map} +1 -1
  56. notebook/static/{8781.d81d90b25d80ec2ab1fd.js → 8781.d22825cc38dd63ea198a.js} +60 -60
  57. notebook/static/{8781.d81d90b25d80ec2ab1fd.js.map → 8781.d22825cc38dd63ea198a.js.map} +1 -1
  58. notebook/static/{8845.639ebc34b4688cf4bf1c.js → 8845.ac1c5acb78cea4acee08.js} +7 -7
  59. notebook/static/{8845.639ebc34b4688cf4bf1c.js.map → 8845.ac1c5acb78cea4acee08.js.map} +1 -1
  60. notebook/static/{8875.079217ce5afa19dbc0f9.js → 8875.930af4f2d02cb069202b.js} +4 -4
  61. notebook/static/{8875.079217ce5afa19dbc0f9.js.map → 8875.930af4f2d02cb069202b.js.map} +1 -1
  62. notebook/static/{9068.82ae319a47d720f38db3.js → 9068.540551911cf35d92ccfa.js} +3 -3
  63. notebook/static/{9068.82ae319a47d720f38db3.js.map → 9068.540551911cf35d92ccfa.js.map} +1 -1
  64. notebook/static/{9380.ad0e839141388a05c188.js → 9380.2b805e488d46c14c20a1.js} +5 -5
  65. notebook/static/{9380.ad0e839141388a05c188.js.map → 9380.2b805e488d46c14c20a1.js.map} +1 -1
  66. notebook/static/{7789.3c3f5c1f233554a2add2.js → 9829.721a68fc1383b3bbff0c.js} +2 -2
  67. notebook/static/{7789.3c3f5c1f233554a2add2.js.map → 9829.721a68fc1383b3bbff0c.js.map} +1 -1
  68. notebook/static/main.e0796ccdb91661ecf6f0.js +1180 -0
  69. notebook/static/main.e0796ccdb91661ecf6f0.js.map +1 -0
  70. notebook/static/{notebook_core.9ad1da3c56e4826a4ef1.js → notebook_core.be06dafd0b7aa6754ffa.js} +6623 -856
  71. notebook/static/{notebook_core.9ad1da3c56e4826a4ef1.js.map → notebook_core.be06dafd0b7aa6754ffa.js.map} +1 -1
  72. notebook/static/third-party-licenses.json +105 -105
  73. notebook/templates/consoles.html +1 -1
  74. notebook/templates/edit.html +1 -1
  75. notebook/templates/error.html +1 -1
  76. notebook/templates/notebooks.html +1 -1
  77. notebook/templates/terminals.html +1 -1
  78. notebook/templates/tree.html +1 -1
  79. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/package.json.orig +14 -14
  80. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/documentsearch-extension/package.json.orig +4 -4
  81. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/help-extension/package.json.orig +6 -6
  82. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/package.json.orig +9 -9
  83. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/tree-extension/package.json.orig +15 -15
  84. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/package.json +11 -11
  85. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/schemas/@jupyter-notebook/lab-extension/package.json.orig +10 -10
  86. notebook-7.4.0rc0.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/568.1feb8bd10f19f8a92019.js → notebook-7.4.1.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/568.3cb448443af65777b224.js +1 -1
  87. notebook-7.4.0rc0.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/725.463c10ca93fb80504994.js → notebook-7.4.1.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/644.9e5b98f5332cc9dc3be5.js +1 -1
  88. notebook-7.4.0rc0.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/928.425dc0ea93c5e2c0f71b.js → notebook-7.4.1.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/928.daae2253ddb4a34b8e58.js +1 -1
  89. notebook-7.4.1.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/remoteEntry.642880ef752d818c35bb.js +1 -0
  90. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/third-party-licenses.json +2 -2
  91. {notebook-7.4.0rc0.dist-info → notebook-7.4.1.dist-info}/METADATA +1 -1
  92. {notebook-7.4.0rc0.dist-info → notebook-7.4.1.dist-info}/RECORD +116 -116
  93. notebook/static/131.2d7644b406b0d9c7c44a.js +0 -1421
  94. notebook/static/131.2d7644b406b0d9c7c44a.js.map +0 -1
  95. notebook/static/3197.9c2bb14fe784ee4c4642.js.map +0 -1
  96. notebook/static/35.72c8a277c008cd943d91.js.map +0 -1
  97. notebook/static/4324.efe0e7d5f17747588b74.js.map +0 -1
  98. notebook/static/6236.ea8288f99f42bcff0039.js.map +0 -1
  99. notebook/static/8218.983a3a002f016180aaab.js.map +0 -1
  100. notebook/static/main.dad00688ccd4a81f2089.js +0 -1180
  101. notebook/static/main.dad00688ccd4a81f2089.js.map +0 -1
  102. notebook-7.4.0rc0.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/remoteEntry.e85e1e9e3320da7cee87.js +0 -1
  103. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/etc/jupyter/jupyter_server_config.d/notebook.json +0 -0
  104. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/applications/jupyter-notebook.desktop +0 -0
  105. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/icons/hicolor/scalable/apps/notebook.svg +0 -0
  106. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/menus.json +0 -0
  107. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/pages.json +0 -0
  108. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/shell.json +0 -0
  109. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/title.json +0 -0
  110. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/top.json +0 -0
  111. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/zen.json +0 -0
  112. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/help-extension/open.json +0 -0
  113. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/checkpoints.json +0 -0
  114. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/edit-notebook-metadata.json +0 -0
  115. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/full-width-notebook.json +0 -0
  116. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/kernel-logo.json +0 -0
  117. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/scroll-output.json +0 -0
  118. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/tree-extension/file-actions.json +0 -0
  119. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/tree-extension/widget.json +0 -0
  120. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/schemas/@jupyter-notebook/lab-extension/interface-switcher.json +0 -0
  121. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/schemas/@jupyter-notebook/lab-extension/launch-tree.json +0 -0
  122. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/93.eae3497dd223d842d198.js +0 -0
  123. {notebook-7.4.0rc0.data → notebook-7.4.1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/style.js +0 -0
  124. {notebook-7.4.0rc0.dist-info → notebook-7.4.1.dist-info}/WHEEL +0 -0
  125. {notebook-7.4.0rc0.dist-info → notebook-7.4.1.dist-info}/entry_points.txt +0 -0
  126. {notebook-7.4.0rc0.dist-info → notebook-7.4.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"5448.a9016133a2b9389ac102.js?v=a9016133a2b9389ac102","mappings":";;;;;;AAAa;;AAEb;;;;AAIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,UAAU;AAC/B;;AAEA,qBAAqB,UAAU;AAC/B;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;AC7CY;;AAEZ,QAAQ,kGAAkG,EAAE,mBAAO,CAAC,KAAa;AACjI,gBAAgB,mBAAO,CAAC,KAAe;;AAEvC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,gBAAgB;AAC5D;AACA,+BAA+B,wCAAwC;AACvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,+EAA+E,8BAA8B;AAC7G,IAAI;AACJ,+DAA+D,8BAA8B;AAC7F;;AAEA;AACA;AACA,+EAA+E,8BAA8B;AAC7G,IAAI;AACJ,+DAA+D,8BAA8B;AAC7F;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,aAAa,8BAA8B,QAAQ;;AAElF;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAsB;AACtB,sBAAsB;;;;;;;;AC9SV;;AAEZ,2BAA2B,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG;AAC1E,mCAAmC,KAAK,sBAAsB,aAAa,EAAE;;AAE7E;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,OAAO,GAAG,iCAAiC;AACpE;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,OAAO,GAAG,mBAAmB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,mBAAmB,GAAG,IAAI;;AAEpD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC3LY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;AC7BY;;AAEZ,QAAQ,MAAM,EAAE,mBAAO,CAAC,KAAe;;AAEvC,8CAA8C,EAAE,gBAAgB,EAAE,wBAAwB,EAAE;;AAE5F;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;AACA,aAAa;AACb,IAAI;AACJ,aAAa;AACb;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,wBAAwB;AACxB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,IAAI;AACJ,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,mBAAmB,oBAAoB;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnPa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/fast-deep-equal/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/fast-uri/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/fast-uri/lib/schemes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/fast-uri/lib/scopedChars.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/fast-uri/lib/utils.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/json-schema-traverse/index.js"],"sourcesContent":["'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict'\n\nconst { normalizeIPv6, normalizeIPv4, removeDotSegments, recomposeAuthority, normalizeComponentEncoding } = require('./lib/utils')\nconst SCHEMES = require('./lib/schemes')\n\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = serialize(parse(uri, options), options)\n } else if (typeof uri === 'object') {\n uri = parse(serialize(uri, options), options)\n }\n return uri\n}\n\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = Object.assign({ scheme: 'null' }, options)\n const resolved = resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n return serialize(resolved, { ...schemelessOptions, skipEscape: true })\n}\n\nfunction resolveComponents (base, relative, options, skipNormalization) {\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base components\n relative = parse(serialize(relative, options), options) // normalize relative components\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path.charAt(0) === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\nfunction equal (uriA, uriB, options) {\n if (typeof uriA === 'string') {\n uriA = unescape(uriA)\n uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true })\n } else if (typeof uriA === 'object') {\n uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true })\n }\n\n if (typeof uriB === 'string') {\n uriB = unescape(uriB)\n uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true })\n } else if (typeof uriB === 'object') {\n uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true })\n }\n\n return uriA.toLowerCase() === uriB.toLowerCase()\n}\n\nfunction serialize (cmpts, opts) {\n const components = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || components.scheme || '').toLowerCase()]\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options)\n\n if (components.path !== undefined) {\n if (!options.skipEscape) {\n components.path = escape(components.path)\n\n if (components.scheme !== undefined) {\n components.path = components.path.split('%3A').join(':')\n }\n } else {\n components.path = unescape(components.path)\n }\n }\n\n if (options.reference !== 'suffix' && components.scheme) {\n uriTokens.push(components.scheme, ':')\n }\n\n const authority = recomposeAuthority(components)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (components.path && components.path.charAt(0) !== '/') {\n uriTokens.push('/')\n }\n }\n if (components.path !== undefined) {\n let s = components.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n if (authority === undefined) {\n s = s.replace(/^\\/\\//u, '/%2F') // don't allow the path to start with \"//\"\n }\n\n uriTokens.push(s)\n }\n\n if (components.query !== undefined) {\n uriTokens.push('?', components.query)\n }\n\n if (components.fragment !== undefined) {\n uriTokens.push('#', components.fragment)\n }\n return uriTokens.join('')\n}\n\nconst hexLookUp = Array.from({ length: 127 }, (_v, k) => /[^!\"$&'()*+,\\-.;=_`a-z{}~]/u.test(String.fromCharCode(k)))\n\nfunction nonSimpleDomain (value) {\n let code = 0\n for (let i = 0, len = value.length; i < len; ++i) {\n code = value.charCodeAt(i)\n if (code > 126 || hexLookUp[code]) {\n return true\n }\n }\n return false\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\nfunction parse (uri, opts) {\n const options = Object.assign({}, opts)\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n const gotEncoding = uri.indexOf('%') !== -1\n let isIP = false\n if (options.reference === 'suffix') uri = (options.scheme ? options.scheme + ':' : '') + '//' + uri\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n if (parsed.host) {\n const ipv4result = normalizeIPv4(parsed.host)\n if (ipv4result.isIPV4 === false) {\n const ipv6result = normalizeIPv6(ipv4result.host)\n parsed.host = ipv6result.host.toLowerCase()\n isIP = ipv6result.isIPV6\n } else {\n parsed.host = ipv4result.host\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || parsed.scheme || '').toLowerCase()]\n\n // check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n // if host component is a domain name\n if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n // convert Unicode IDN -> ASCII IDN\n try {\n parsed.host = URL.domainToASCII(parsed.host.toLowerCase())\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n }\n }\n // convert IRI -> URI\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (gotEncoding && parsed.scheme !== undefined) {\n parsed.scheme = unescape(parsed.scheme)\n }\n if (gotEncoding && parsed.host !== undefined) {\n parsed.host = unescape(parsed.host)\n }\n if (parsed.path) {\n parsed.path = escape(unescape(parsed.path))\n }\n if (parsed.fragment) {\n parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return parsed\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponents,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","'use strict'\n\nconst UUID_REG = /^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nfunction isSecure (wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === 'wss'\n}\n\nfunction httpParse (components) {\n if (!components.host) {\n components.error = components.error || 'HTTP URIs must have a host.'\n }\n\n return components\n}\n\nfunction httpSerialize (components) {\n const secure = String(components.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === '') {\n components.port = undefined\n }\n\n // normalize the empty path\n if (!components.path) {\n components.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return components\n}\n\nfunction wsParse (wsComponents) {\n// indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents)\n\n // construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '')\n wsComponents.path = undefined\n wsComponents.query = undefined\n\n return wsComponents\n}\n\nfunction wsSerialize (wsComponents) {\n// normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === '') {\n wsComponents.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws')\n wsComponents.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponents.resourceName) {\n const [path, query] = wsComponents.resourceName.split('?')\n wsComponents.path = (path && path !== '/' ? path : undefined)\n wsComponents.query = query\n wsComponents.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponents.fragment = undefined\n\n return wsComponents\n}\n\nfunction urnParse (urnComponents, options) {\n if (!urnComponents.path) {\n urnComponents.error = 'URN can not be parsed'\n return urnComponents\n }\n const matches = urnComponents.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n urnComponents.nid = matches[1].toLowerCase()\n urnComponents.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponents.nid}`\n const schemeHandler = SCHEMES[urnScheme]\n urnComponents.path = undefined\n\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options)\n }\n } else {\n urnComponents.error = urnComponents.error || 'URN can not be parsed.'\n }\n\n return urnComponents\n}\n\nfunction urnSerialize (urnComponents, options) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n const nid = urnComponents.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = SCHEMES[urnScheme]\n\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options)\n }\n\n const uriComponents = urnComponents\n const nss = urnComponents.nss\n uriComponents.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponents\n}\n\nfunction urnuuidParse (urnComponents, options) {\n const uuidComponents = urnComponents\n uuidComponents.uuid = uuidComponents.nss\n uuidComponents.nss = undefined\n\n if (!options.tolerant && (!uuidComponents.uuid || !UUID_REG.test(uuidComponents.uuid))) {\n uuidComponents.error = uuidComponents.error || 'UUID is not valid.'\n }\n\n return uuidComponents\n}\n\nfunction urnuuidSerialize (uuidComponents) {\n const urnComponents = uuidComponents\n // normalize UUID\n urnComponents.nss = (uuidComponents.uuid || '').toLowerCase()\n return urnComponents\n}\n\nconst http = {\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst https = {\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst ws = {\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n}\n\nconst wss = {\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n}\n\nconst urn = {\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n}\n\nconst urnuuid = {\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n}\n\nconst SCHEMES = {\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n}\n\nmodule.exports = SCHEMES\n","'use strict'\n\nconst HEX = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n a: 10,\n A: 10,\n b: 11,\n B: 11,\n c: 12,\n C: 12,\n d: 13,\n D: 13,\n e: 14,\n E: 14,\n f: 15,\n F: 15\n}\n\nmodule.exports = {\n HEX\n}\n","'use strict'\n\nconst { HEX } = require('./scopedChars')\n\nconst IPV4_REG = /^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u\n\nfunction normalizeIPv4 (host) {\n if (findToken(host, '.') < 3) { return { host, isIPV4: false } }\n const matches = host.match(IPV4_REG) || []\n const [address] = matches\n if (address) {\n return { host: stripLeadingZeros(address, '.'), isIPV4: true }\n } else {\n return { host, isIPV4: false }\n }\n}\n\n/**\n * @param {string[]} input\n * @param {boolean} [keepZero=false]\n * @returns {string|undefined}\n */\nfunction stringArrayToHexStripped (input, keepZero = false) {\n let acc = ''\n let strip = true\n for (const c of input) {\n if (HEX[c] === undefined) return undefined\n if (c !== '0' && strip === true) strip = false\n if (!strip) acc += c\n }\n if (keepZero && acc.length === 0) acc = '0'\n return acc\n}\n\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n const address = []\n const buffer = []\n let isZone = false\n let endipv6Encountered = false\n let endIpv6 = false\n\n function consume () {\n if (buffer.length) {\n if (isZone === false) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== undefined) {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n }\n buffer.length = 0\n }\n return true\n }\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume()) { break }\n tokenCount++\n address.push(':')\n if (tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i - 1 >= 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n continue\n } else if (cursor === '%') {\n if (!consume()) { break }\n // switch to zone detection\n isZone = true\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (isZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\nfunction normalizeIPv6 (host) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, escapedHost, isIPV6: true }\n } else {\n return { host, isIPV6: false }\n }\n}\n\nfunction stripLeadingZeros (str, token) {\n let out = ''\n let skip = true\n const l = str.length\n for (let i = 0; i < l; i++) {\n const c = str[i]\n if (c === '0' && skip) {\n if ((i + 1 <= l && str[i + 1] === token) || i + 1 === l) {\n out += c\n skip = false\n }\n } else {\n if (c === token) {\n skip = true\n } else {\n skip = false\n }\n out += c\n }\n }\n return out\n}\n\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\nconst RDS1 = /^\\.\\.?\\//u\nconst RDS2 = /^\\/\\.(?:\\/|$)/u\nconst RDS3 = /^\\/\\.\\.(?:\\/|$)/u\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/u\n\nfunction removeDotSegments (input) {\n const output = []\n\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, '')\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, '/')\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, '/')\n output.pop()\n } else if (input === '.' || input === '..') {\n input = ''\n } else {\n const im = input.match(RDS5)\n if (im) {\n const s = im[0]\n input = input.slice(s.length)\n output.push(s)\n } else {\n throw new Error('Unexpected dot segment condition')\n }\n }\n }\n return output.join('')\n}\n\nfunction normalizeComponentEncoding (components, esc) {\n const func = esc !== true ? escape : unescape\n if (components.scheme !== undefined) {\n components.scheme = func(components.scheme)\n }\n if (components.userinfo !== undefined) {\n components.userinfo = func(components.userinfo)\n }\n if (components.host !== undefined) {\n components.host = func(components.host)\n }\n if (components.path !== undefined) {\n components.path = func(components.path)\n }\n if (components.query !== undefined) {\n components.query = func(components.query)\n }\n if (components.fragment !== undefined) {\n components.fragment = func(components.fragment)\n }\n return components\n}\n\nfunction recomposeAuthority (components) {\n const uriTokens = []\n\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo)\n uriTokens.push('@')\n }\n\n if (components.host !== undefined) {\n let host = unescape(components.host)\n const ipV4res = normalizeIPv4(host)\n\n if (ipV4res.isIPV4) {\n host = ipV4res.host\n } else {\n const ipV6res = normalizeIPv6(ipV4res.host)\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = components.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof components.port === 'number' || typeof components.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(components.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n normalizeIPv4,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n"],"names":[],"sourceRoot":""}
@@ -12,22 +12,22 @@ __webpack_require__.d(__webpack_exports__, {
12
12
  "default": () => (/* binding */ lib)
13
13
  });
14
14
 
15
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/apputils@~4.5.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/apputils/lib/index.js)
16
- var index_js_ = __webpack_require__(39868);
17
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/coreutils@~6.4.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/coreutils/lib/index.js)
18
- var lib_index_js_ = __webpack_require__(3213);
19
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/docmanager@~4.4.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/docmanager/lib/index.js)
20
- var docmanager_lib_index_js_ = __webpack_require__(99868);
21
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/mainmenu@~4.4.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/mainmenu/lib/index.js)
22
- var mainmenu_lib_index_js_ = __webpack_require__(27409);
23
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/notebook@~4.4.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/notebook/lib/index.js)
24
- var notebook_lib_index_js_ = __webpack_require__(85013);
25
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/settingregistry@~4.4.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/settingregistry/lib/index.js)
26
- var settingregistry_lib_index_js_ = __webpack_require__(97904);
27
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/translation@~4.4.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/translation/lib/index.js)
28
- var translation_lib_index_js_ = __webpack_require__(3224);
29
- // EXTERNAL MODULE: consume shared module (default) @jupyter-notebook/application@~7.4.0-rc.0 (strict) (fallback: ../packages/application/lib/index.js)
30
- var application_lib_index_js_ = __webpack_require__(14993);
15
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/apputils@~4.5.1 (singleton) (fallback: ../node_modules/@jupyterlab/apputils/lib/index.js)
16
+ var index_js_ = __webpack_require__(31422);
17
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/coreutils@~6.4.1 (singleton) (fallback: ../node_modules/@jupyterlab/coreutils/lib/index.js)
18
+ var lib_index_js_ = __webpack_require__(55183);
19
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/docmanager@~4.4.1 (singleton) (fallback: ../node_modules/@jupyterlab/docmanager/lib/index.js)
20
+ var docmanager_lib_index_js_ = __webpack_require__(1658);
21
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/mainmenu@~4.4.1 (singleton) (fallback: ../node_modules/@jupyterlab/mainmenu/lib/index.js)
22
+ var mainmenu_lib_index_js_ = __webpack_require__(23306);
23
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/notebook@~4.4.1 (singleton) (fallback: ../node_modules/@jupyterlab/notebook/lib/index.js)
24
+ var notebook_lib_index_js_ = __webpack_require__(63491);
25
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/settingregistry@~4.4.1 (singleton) (fallback: ../node_modules/@jupyterlab/settingregistry/lib/index.js)
26
+ var settingregistry_lib_index_js_ = __webpack_require__(35119);
27
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/translation@~4.4.1 (singleton) (fallback: ../node_modules/@jupyterlab/translation/lib/index.js)
28
+ var translation_lib_index_js_ = __webpack_require__(39715);
29
+ // EXTERNAL MODULE: consume shared module (default) @jupyter-notebook/application@~7.4.1 (strict) (fallback: ../packages/application/lib/index.js)
30
+ var application_lib_index_js_ = __webpack_require__(52387);
31
31
  // EXTERNAL MODULE: consume shared module (default) @lumino/polling@^2.1.3 (strict) (fallback: ../node_modules/@lumino/polling/dist/index.es6.js)
32
32
  var index_es6_js_ = __webpack_require__(32406);
33
33
  // EXTERNAL MODULE: consume shared module (default) @lumino/widgets@~2.7.0 (singleton) (fallback: ../node_modules/@lumino/widgets/dist/index.es6.js)
@@ -662,4 +662,4 @@ const plugins = [
662
662
  /***/ })
663
663
 
664
664
  }]);
665
- //# sourceMappingURL=5573.4e4a07a102aa4b698ad9.js.map?v=4e4a07a102aa4b698ad9
665
+ //# sourceMappingURL=5573.99719d9cbf6ef3c79d1b.js.map?v=99719d9cbf6ef3c79d1b
@@ -1 +1 @@
1
- {"version":3,"file":"5573.4e4a07a102aa4b698ad9.js?v=4e4a07a102aa4b698ad9","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAmD;AACI;AACJ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA,kCAAkC,4BAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA,cAAc,sCAAe;AAC7B;AACA;AACA,IAAI,6BAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,sCAAmB,aAAa,2DAA2D,oBAAoB,IAAI,gBAAgB;AAC/I;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uBAAuB;AACxD,eAAe,qBAAW,QAAQ,sCAAmB,kBAAkB,4CAA4C;AACnH;AACA,CAAC,4CAA4C;;;ACtE7C;AACA;AAC0F;AACnB;AACb;AACT;AACuC;AACzB;AACO;AACP;AACxB;AACE;AACI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yCAAgB,EAAE,qCAAW;AAC5C,eAAe,wCAAc,EAAE,gCAAsB;AACrD;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,mCAAmC,yBAAM,GAAG,MAAM;AAClD,4BAA4B,kBAAQ;AACpC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,kBAAI;AACnE;AACA;AACA;AACA;AACA,YAAY,kBAAI;AAChB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAS;AACxB,eAAe,qCAAW;AAC1B;AACA,gBAAgB,WAAW;AAC3B,iFAAiF,wCAAc;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,iBAAiB;AACtF;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAW;AAC1B;AACA,gBAAgB,WAAW;AAC3B,iFAAiF,wCAAc;AAC/F;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAM,MAAM,wBAAU;AAClD;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uCAAgB;AAC/B,eAAe,yBAAe,EAAE,8CAAgB,EAAE,qCAAW;AAC7D;AACA,mFAAmF,wCAAc;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAc;AAC7B,eAAe,gCAAsB;AACrC;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,qCAAqC,oCAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yBAAM,GAAG,MAAM;AAClD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAc,EAAE,qCAAW;AAC1C;AACA;AACA,2BAA2B,yBAAM;AACjC;AACA,wCAAwC,aAAa;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAI,mBAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oCAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uCAAgB;AAC/B,eAAe,8CAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAc;AAC7B,eAAe,qCAAc;AAC7B;AACA;AACA;AACA,qCAAqC,oCAAa;AAClD;AACA;AACA;AACA;AACA,oDAAoD,4BAA4B;AAChF;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uCAAgB;AAC/B;AACA;AACA,wBAAwB,wBAAU;AAClC,6BAA6B,oBAAM;AACnC,yBAAyB,oBAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAc,EAAE,qCAAW;AAC1C;AACA;AACA;AACA,qCAAqC,oCAAa;AAClD;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB,UAAU,sBAAsB;AAC3E;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAe,EAAE,qCAAW,EAAE,qCAAc;AAC3D;AACA,gBAAgB,kBAAkB;AAClC,iFAAiF,wCAAc;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA,+CAA+C,oCAAa;AAC5D,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAe,OAAO,EAAC","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/notebook-extension/lib/trusted.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/notebook-extension/lib/index.js"],"sourcesContent":["import { ReactWidget } from '@jupyterlab/apputils';\nimport { NotebookActions } from '@jupyterlab/notebook';\nimport React, { useEffect, useState } from 'react';\n/**\n * Check if a notebook is trusted\n * @param notebook The notebook to check\n * @returns true if the notebook is trusted, false otherwise\n */\nconst isTrusted = (notebook) => {\n const model = notebook.model;\n if (!model) {\n return false;\n }\n const cells = Array.from(model.cells);\n let total = 0;\n let trusted = 0;\n for (const currentCell of cells) {\n if (currentCell.type !== 'code') {\n continue;\n }\n total++;\n if (currentCell.trusted) {\n trusted++;\n }\n }\n return trusted === total;\n};\n/**\n * A React component to display the Trusted badge in the menu bar.\n * @param notebook The Notebook\n * @param translator The Translation service\n */\nconst TrustedButton = ({ notebook, translator, }) => {\n const trans = translator.load('notebook');\n const [trusted, setTrusted] = useState(isTrusted(notebook));\n const checkTrust = () => {\n const v = isTrusted(notebook);\n setTrusted(v);\n };\n const trust = async () => {\n await NotebookActions.trust(notebook, translator);\n checkTrust();\n };\n useEffect(() => {\n notebook.modelContentChanged.connect(checkTrust);\n notebook.activeCellChanged.connect(checkTrust);\n checkTrust();\n return () => {\n notebook.modelContentChanged.disconnect(checkTrust);\n notebook.activeCellChanged.disconnect(checkTrust);\n };\n });\n return (React.createElement(\"button\", { className: 'jp-NotebookTrustedStatus', style: !trusted ? { cursor: 'pointer' } : { cursor: 'help' }, onClick: () => !trusted && trust(), title: trusted\n ? trans.__('JavaScript enabled for notebook display')\n : trans.__('JavaScript disabled for notebook display') }, trusted ? trans.__('Trusted') : trans.__('Not Trusted')));\n};\n/**\n * A namespace for TrustedComponent static methods.\n */\nexport var TrustedComponent;\n(function (TrustedComponent) {\n /**\n * Create a new TrustedComponent\n *\n * @param notebook The notebook\n * @param translator The translator\n */\n TrustedComponent.create = ({ notebook, translator, }) => {\n return ReactWidget.create(React.createElement(TrustedButton, { notebook: notebook, translator: translator }));\n };\n})(TrustedComponent || (TrustedComponent = {}));\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { DOMUtils, IToolbarWidgetRegistry, ICommandPalette, } from '@jupyterlab/apputils';\nimport { PageConfig, Text, Time, URLExt } from '@jupyterlab/coreutils';\nimport { IDocumentManager } from '@jupyterlab/docmanager';\nimport { IMainMenu } from '@jupyterlab/mainmenu';\nimport { NotebookPanel, INotebookTracker, INotebookTools, } from '@jupyterlab/notebook';\nimport { ISettingRegistry } from '@jupyterlab/settingregistry';\nimport { ITranslator, nullTranslator } from '@jupyterlab/translation';\nimport { INotebookShell } from '@jupyter-notebook/application';\nimport { Poll } from '@lumino/polling';\nimport { Widget } from '@lumino/widgets';\nimport { TrustedComponent } from './trusted';\n/**\n * The class for kernel status errors.\n */\nconst KERNEL_STATUS_ERROR_CLASS = 'jp-NotebookKernelStatus-error';\n/**\n * The class for kernel status warnings.\n */\nconst KERNEL_STATUS_WARN_CLASS = 'jp-NotebookKernelStatus-warn';\n/**\n * The class for kernel status infos.\n */\nconst KERNEL_STATUS_INFO_CLASS = 'jp-NotebookKernelStatus-info';\n/**\n * The class to fade out the kernel status.\n */\nconst KERNEL_STATUS_FADE_OUT_CLASS = 'jp-NotebookKernelStatus-fade';\n/**\n * The class for scrolled outputs\n */\nconst SCROLLED_OUTPUTS_CLASS = 'jp-mod-outputsScrolled';\n/**\n * The class for the full width notebook\n */\nconst FULL_WIDTH_NOTEBOOK_CLASS = 'jp-mod-fullwidth';\n/**\n * The command IDs used by the notebook plugins.\n */\nvar CommandIDs;\n(function (CommandIDs) {\n /**\n * A command to open right sidebar for Editing Notebook Metadata\n */\n CommandIDs.openEditNotebookMetadata = 'notebook:edit-metadata';\n /**\n * A command to toggle full width of the notebook\n */\n CommandIDs.toggleFullWidth = 'notebook:toggle-full-width';\n})(CommandIDs || (CommandIDs = {}));\n/**\n * A plugin for the checkpoint indicator\n */\nconst checkpoints = {\n id: '@jupyter-notebook/notebook-extension:checkpoints',\n description: 'A plugin for the checkpoint indicator.',\n autoStart: true,\n requires: [IDocumentManager, ITranslator],\n optional: [INotebookShell, IToolbarWidgetRegistry],\n activate: (app, docManager, translator, notebookShell, toolbarRegistry) => {\n const { shell } = app;\n const trans = translator.load('notebook');\n const node = document.createElement('div');\n if (toolbarRegistry) {\n toolbarRegistry.addFactory('TopBar', 'checkpoint', (toolbar) => {\n const widget = new Widget({ node });\n widget.id = DOMUtils.createDomID();\n widget.addClass('jp-NotebookCheckpoint');\n return widget;\n });\n }\n const onChange = async () => {\n const current = shell.currentWidget;\n if (!current) {\n return;\n }\n const context = docManager.contextForWidget(current);\n context === null || context === void 0 ? void 0 : context.fileChanged.disconnect(onChange);\n context === null || context === void 0 ? void 0 : context.fileChanged.connect(onChange);\n const checkpoints = await (context === null || context === void 0 ? void 0 : context.listCheckpoints());\n if (!checkpoints || !checkpoints.length) {\n return;\n }\n const checkpoint = checkpoints[checkpoints.length - 1];\n node.textContent = trans.__('Last Checkpoint: %1', Time.formatHuman(new Date(checkpoint.last_modified)));\n };\n if (notebookShell) {\n notebookShell.currentChanged.connect(onChange);\n }\n new Poll({\n auto: true,\n factory: () => onChange(),\n frequency: {\n interval: 2000,\n backoff: false,\n },\n standby: 'when-hidden',\n });\n },\n};\n/**\n * Add a command to close the browser tab when clicking on \"Close and Shut Down\"\n */\nconst closeTab = {\n id: '@jupyter-notebook/notebook-extension:close-tab',\n description: 'Add a command to close the browser tab when clicking on \"Close and Shut Down\".',\n autoStart: true,\n requires: [IMainMenu],\n optional: [ITranslator],\n activate: (app, menu, translator) => {\n const { commands } = app;\n translator = translator !== null && translator !== void 0 ? translator : nullTranslator;\n const trans = translator.load('notebook');\n const id = 'notebook:close-and-halt';\n commands.addCommand(id, {\n label: trans.__('Close and Shut Down Notebook'),\n execute: async () => {\n // Shut the kernel down, without confirmation\n await commands.execute('notebook:shutdown-kernel', { activate: false });\n window.close();\n },\n });\n menu.fileMenu.closeAndCleaners.add({\n id,\n // use a small rank to it takes precedence over the default\n // shut down action for the notebook\n rank: 0,\n });\n },\n};\n/**\n * Add a command to open the tree view from the notebook view\n */\nconst openTreeTab = {\n id: '@jupyter-notebook/notebook-extension:open-tree-tab',\n description: 'Add a command to open a browser tab on the tree view when clicking \"Open...\".',\n autoStart: true,\n optional: [ITranslator],\n activate: (app, translator) => {\n const { commands } = app;\n translator = translator !== null && translator !== void 0 ? translator : nullTranslator;\n const trans = translator.load('notebook');\n const id = 'notebook:open-tree-tab';\n commands.addCommand(id, {\n label: trans.__('Open…'),\n execute: async () => {\n const url = URLExt.join(PageConfig.getBaseUrl(), 'tree');\n window.open(url);\n },\n });\n },\n};\n/**\n * A plugin to set the notebook to full width.\n */\nconst fullWidthNotebook = {\n id: '@jupyter-notebook/notebook-extension:full-width-notebook',\n description: 'A plugin to set the notebook to full width.',\n autoStart: true,\n requires: [INotebookTracker],\n optional: [ICommandPalette, ISettingRegistry, ITranslator],\n activate: (app, tracker, palette, settingRegistry, translator) => {\n const trans = (translator !== null && translator !== void 0 ? translator : nullTranslator).load('notebook');\n let fullWidth = false;\n const toggleFullWidth = () => {\n const current = tracker.currentWidget;\n fullWidth = !fullWidth;\n if (!current) {\n return;\n }\n const content = current;\n content.toggleClass(FULL_WIDTH_NOTEBOOK_CLASS, fullWidth);\n };\n let notebookSettings;\n if (settingRegistry) {\n const loadSettings = settingRegistry.load(fullWidthNotebook.id);\n const updateSettings = (settings) => {\n const newFullWidth = settings.get('fullWidthNotebook')\n .composite;\n if (newFullWidth !== fullWidth) {\n toggleFullWidth();\n }\n };\n Promise.all([loadSettings, app.restored])\n .then(([settings]) => {\n notebookSettings = settings;\n updateSettings(settings);\n settings.changed.connect((settings) => {\n updateSettings(settings);\n });\n })\n .catch((reason) => {\n console.error(reason.message);\n });\n }\n app.commands.addCommand(CommandIDs.toggleFullWidth, {\n label: trans.__('Enable Full Width Notebook'),\n execute: () => {\n toggleFullWidth();\n if (notebookSettings) {\n notebookSettings.set('fullWidthNotebook', fullWidth);\n }\n },\n isEnabled: () => tracker.currentWidget !== null,\n isToggled: () => fullWidth,\n });\n if (palette) {\n palette.addItem({\n command: CommandIDs.toggleFullWidth,\n category: 'Notebook Operations',\n });\n }\n },\n};\n/**\n * The kernel logo plugin.\n */\nconst kernelLogo = {\n id: '@jupyter-notebook/notebook-extension:kernel-logo',\n description: 'The kernel logo plugin.',\n autoStart: true,\n requires: [INotebookShell],\n optional: [IToolbarWidgetRegistry],\n activate: (app, shell, toolbarRegistry) => {\n const { serviceManager } = app;\n const node = document.createElement('div');\n const img = document.createElement('img');\n const onChange = async () => {\n var _a, _b, _c, _d, _e;\n const current = shell.currentWidget;\n if (!(current instanceof NotebookPanel)) {\n return;\n }\n if (!node.hasChildNodes()) {\n node.appendChild(img);\n }\n await current.sessionContext.ready;\n current.sessionContext.kernelChanged.disconnect(onChange);\n current.sessionContext.kernelChanged.connect(onChange);\n const name = (_c = (_b = (_a = current.sessionContext.session) === null || _a === void 0 ? void 0 : _a.kernel) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : '';\n const spec = (_e = (_d = serviceManager.kernelspecs) === null || _d === void 0 ? void 0 : _d.specs) === null || _e === void 0 ? void 0 : _e.kernelspecs[name];\n if (!spec) {\n node.childNodes[0].remove();\n return;\n }\n const kernelIconUrl = spec.resources['logo-64x64'];\n if (!kernelIconUrl) {\n node.childNodes[0].remove();\n return;\n }\n img.src = kernelIconUrl;\n img.title = spec.display_name;\n };\n if (toolbarRegistry) {\n toolbarRegistry.addFactory('TopBar', 'kernelLogo', (toolbar) => {\n const widget = new Widget({ node });\n widget.addClass('jp-NotebookKernelLogo');\n return widget;\n });\n }\n app.started.then(() => {\n shell.currentChanged.connect(onChange);\n });\n },\n};\n/**\n * A plugin to display the kernel status;\n */\nconst kernelStatus = {\n id: '@jupyter-notebook/notebook-extension:kernel-status',\n description: 'A plugin to display the kernel status.',\n autoStart: true,\n requires: [INotebookShell, ITranslator],\n activate: (app, shell, translator) => {\n const trans = translator.load('notebook');\n const widget = new Widget();\n widget.addClass('jp-NotebookKernelStatus');\n app.shell.add(widget, 'menu', { rank: 10010 });\n const removeClasses = () => {\n widget.removeClass(KERNEL_STATUS_ERROR_CLASS);\n widget.removeClass(KERNEL_STATUS_WARN_CLASS);\n widget.removeClass(KERNEL_STATUS_INFO_CLASS);\n widget.removeClass(KERNEL_STATUS_FADE_OUT_CLASS);\n };\n const onStatusChanged = (sessionContext) => {\n const status = sessionContext.kernelDisplayStatus;\n let text = `Kernel ${Text.titleCase(status)}`;\n removeClasses();\n switch (status) {\n case 'busy':\n case 'idle':\n text = '';\n widget.addClass(KERNEL_STATUS_FADE_OUT_CLASS);\n break;\n case 'dead':\n case 'terminating':\n widget.addClass(KERNEL_STATUS_ERROR_CLASS);\n break;\n case 'unknown':\n widget.addClass(KERNEL_STATUS_WARN_CLASS);\n break;\n default:\n widget.addClass(KERNEL_STATUS_INFO_CLASS);\n widget.addClass(KERNEL_STATUS_FADE_OUT_CLASS);\n break;\n }\n widget.node.textContent = trans.__(text);\n };\n const onChange = async () => {\n const current = shell.currentWidget;\n if (!(current instanceof NotebookPanel)) {\n return;\n }\n const sessionContext = current.sessionContext;\n sessionContext.statusChanged.connect(onStatusChanged);\n };\n shell.currentChanged.connect(onChange);\n },\n};\n/**\n * A plugin to enable scrolling for outputs by default.\n * Mimic the logic from the classic notebook, as found here:\n * https://github.com/jupyter/notebook/blob/a9a31c096eeffe1bff4e9164c6a0442e0e13cdb3/notebook/static/notebook/js/outputarea.js#L96-L120\n */\nconst scrollOutput = {\n id: '@jupyter-notebook/notebook-extension:scroll-output',\n description: 'A plugin to enable scrolling for outputs by default.',\n autoStart: true,\n requires: [INotebookTracker],\n optional: [ISettingRegistry],\n activate: async (app, tracker, settingRegistry) => {\n const autoScrollThreshold = 100;\n let autoScrollOutputs = true;\n // decide whether to scroll the output of the cell based on some heuristics\n const autoScroll = (cell) => {\n if (!autoScrollOutputs) {\n // bail if disabled via the settings\n cell.removeClass(SCROLLED_OUTPUTS_CLASS);\n return;\n }\n const { outputArea } = cell;\n // respect cells with an explicit scrolled state\n const scrolled = cell.model.getMetadata('scrolled');\n if (scrolled !== undefined) {\n return;\n }\n const { node } = outputArea;\n const height = node.scrollHeight;\n const fontSize = parseFloat(node.style.fontSize.replace('px', ''));\n const lineHeight = (fontSize || 14) * 1.3;\n // do not set via cell.outputScrolled = true, as this would\n // otherwise synchronize the scrolled state to the notebook metadata\n const scroll = height > lineHeight * autoScrollThreshold;\n cell.toggleClass(SCROLLED_OUTPUTS_CLASS, scroll);\n };\n const handlers = {};\n const setAutoScroll = (cell) => {\n if (cell.model.type === 'code') {\n const codeCell = cell;\n const id = codeCell.model.id;\n autoScroll(codeCell);\n if (handlers[id]) {\n codeCell.outputArea.model.changed.disconnect(handlers[id]);\n }\n handlers[id] = () => autoScroll(codeCell);\n codeCell.outputArea.model.changed.connect(handlers[id]);\n }\n };\n tracker.widgetAdded.connect((sender, notebook) => {\n var _a;\n // when the notebook widget is created, process all the cells\n notebook.sessionContext.ready.then(() => {\n notebook.content.widgets.forEach(setAutoScroll);\n });\n (_a = notebook.model) === null || _a === void 0 ? void 0 : _a.cells.changed.connect((sender, args) => {\n notebook.content.widgets.forEach(setAutoScroll);\n });\n });\n if (settingRegistry) {\n const loadSettings = settingRegistry.load(scrollOutput.id);\n const updateSettings = (settings) => {\n autoScrollOutputs = settings.get('autoScrollOutputs')\n .composite;\n };\n Promise.all([loadSettings, app.restored])\n .then(([settings]) => {\n updateSettings(settings);\n settings.changed.connect((settings) => {\n updateSettings(settings);\n });\n })\n .catch((reason) => {\n console.error(reason.message);\n });\n }\n },\n};\n/**\n * A plugin to add the NotebookTools to the side panel;\n */\nconst notebookToolsWidget = {\n id: '@jupyter-notebook/notebook-extension:notebook-tools',\n description: 'A plugin to add the NotebookTools to the side panel.',\n autoStart: true,\n requires: [INotebookShell],\n optional: [INotebookTools],\n activate: (app, shell, notebookTools) => {\n const onChange = async () => {\n const current = shell.currentWidget;\n if (!(current instanceof NotebookPanel)) {\n return;\n }\n // Add the notebook tools in right area.\n if (notebookTools) {\n shell.add(notebookTools, 'right', { type: 'Property Inspector' });\n }\n };\n shell.currentChanged.connect(onChange);\n },\n};\n/**\n * A plugin to update the tab icon based on the kernel status.\n */\nconst tabIcon = {\n id: '@jupyter-notebook/notebook-extension:tab-icon',\n description: 'A plugin to update the tab icon based on the kernel status.',\n autoStart: true,\n requires: [INotebookTracker],\n activate: (app, tracker) => {\n // the favicons are provided by Jupyter Server\n const baseURL = PageConfig.getBaseUrl();\n const notebookIcon = URLExt.join(baseURL, 'static/favicons/favicon-notebook.ico');\n const busyIcon = URLExt.join(baseURL, 'static/favicons/favicon-busy-1.ico');\n const updateBrowserFavicon = (status) => {\n const link = document.querySelector(\"link[rel*='icon']\");\n switch (status) {\n case 'busy':\n link.href = busyIcon;\n break;\n case 'idle':\n link.href = notebookIcon;\n break;\n }\n };\n const onChange = async () => {\n const current = tracker.currentWidget;\n const sessionContext = current === null || current === void 0 ? void 0 : current.sessionContext;\n if (!sessionContext) {\n return;\n }\n sessionContext.statusChanged.connect(() => {\n const status = sessionContext.kernelDisplayStatus;\n updateBrowserFavicon(status);\n });\n };\n tracker.currentChanged.connect(onChange);\n },\n};\n/**\n * A plugin that adds a Trusted indicator to the menu area\n */\nconst trusted = {\n id: '@jupyter-notebook/notebook-extension:trusted',\n description: 'A plugin that adds a Trusted indicator to the menu area.',\n autoStart: true,\n requires: [INotebookShell, ITranslator],\n activate: (app, notebookShell, translator) => {\n const onChange = async () => {\n const current = notebookShell.currentWidget;\n if (!(current instanceof NotebookPanel)) {\n return;\n }\n const notebook = current.content;\n await current.context.ready;\n const widget = TrustedComponent.create({ notebook, translator });\n notebookShell.add(widget, 'menu', {\n rank: 11000,\n });\n };\n notebookShell.currentChanged.connect(onChange);\n },\n};\n/**\n * Add a command to open right sidebar for Editing Notebook Metadata when clicking on \"Edit Notebook Metadata\" under Edit menu\n */\nconst editNotebookMetadata = {\n id: '@jupyter-notebook/notebook-extension:edit-notebook-metadata',\n description: 'Add a command to open right sidebar for Editing Notebook Metadata when clicking on \"Edit Notebook Metadata\" under Edit menu',\n autoStart: true,\n optional: [ICommandPalette, ITranslator, INotebookTools],\n activate: (app, palette, translator, notebookTools) => {\n const { commands, shell } = app;\n translator = translator !== null && translator !== void 0 ? translator : nullTranslator;\n const trans = translator.load('notebook');\n commands.addCommand(CommandIDs.openEditNotebookMetadata, {\n label: trans.__('Edit Notebook Metadata'),\n execute: async () => {\n const command = 'application:toggle-panel';\n const args = {\n side: 'right',\n title: 'Show Notebook Tools',\n id: 'notebook-tools',\n };\n // Check if Show Notebook Tools (Right Sidebar) is open (expanded)\n if (!commands.isToggled(command, args)) {\n await commands.execute(command, args).then((_) => {\n // For expanding the 'Advanced Tools' section (default: collapsed)\n if (notebookTools) {\n const tools = (notebookTools === null || notebookTools === void 0 ? void 0 : notebookTools.layout).widgets;\n tools.forEach((tool) => {\n if (tool.widget.title.label === trans.__('Advanced Tools') &&\n tool.collapsed) {\n tool.toggle();\n }\n });\n }\n });\n }\n },\n isVisible: () => shell.currentWidget !== null &&\n shell.currentWidget instanceof NotebookPanel,\n });\n if (palette) {\n palette.addItem({\n command: CommandIDs.openEditNotebookMetadata,\n category: 'Notebook Operations',\n });\n }\n },\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [\n checkpoints,\n closeTab,\n openTreeTab,\n editNotebookMetadata,\n fullWidthNotebook,\n kernelLogo,\n kernelStatus,\n notebookToolsWidget,\n scrollOutput,\n tabIcon,\n trusted,\n];\nexport default plugins;\n"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"5573.99719d9cbf6ef3c79d1b.js?v=99719d9cbf6ef3c79d1b","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAmD;AACI;AACJ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA,kCAAkC,4BAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA,cAAc,sCAAe;AAC7B;AACA;AACA,IAAI,6BAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,sCAAmB,aAAa,2DAA2D,oBAAoB,IAAI,gBAAgB;AAC/I;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uBAAuB;AACxD,eAAe,qBAAW,QAAQ,sCAAmB,kBAAkB,4CAA4C;AACnH;AACA,CAAC,4CAA4C;;;ACtE7C;AACA;AAC0F;AACnB;AACb;AACT;AACuC;AACzB;AACO;AACP;AACxB;AACE;AACI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yCAAgB,EAAE,qCAAW;AAC5C,eAAe,wCAAc,EAAE,gCAAsB;AACrD;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,mCAAmC,yBAAM,GAAG,MAAM;AAClD,4BAA4B,kBAAQ;AACpC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,kBAAI;AACnE;AACA;AACA;AACA;AACA,YAAY,kBAAI;AAChB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAS;AACxB,eAAe,qCAAW;AAC1B;AACA,gBAAgB,WAAW;AAC3B,iFAAiF,wCAAc;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,iBAAiB;AACtF;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAW;AAC1B;AACA,gBAAgB,WAAW;AAC3B,iFAAiF,wCAAc;AAC/F;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAM,MAAM,wBAAU;AAClD;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uCAAgB;AAC/B,eAAe,yBAAe,EAAE,8CAAgB,EAAE,qCAAW;AAC7D;AACA,mFAAmF,wCAAc;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAc;AAC7B,eAAe,gCAAsB;AACrC;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,qCAAqC,oCAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yBAAM,GAAG,MAAM;AAClD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAc,EAAE,qCAAW;AAC1C;AACA;AACA,2BAA2B,yBAAM;AACjC;AACA,wCAAwC,aAAa;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAI,mBAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oCAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uCAAgB;AAC/B,eAAe,8CAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAc;AAC7B,eAAe,qCAAc;AAC7B;AACA;AACA;AACA,qCAAqC,oCAAa;AAClD;AACA;AACA;AACA;AACA,oDAAoD,4BAA4B;AAChF;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uCAAgB;AAC/B;AACA;AACA,wBAAwB,wBAAU;AAClC,6BAA6B,oBAAM;AACnC,yBAAyB,oBAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAc,EAAE,qCAAW;AAC1C;AACA;AACA;AACA,qCAAqC,oCAAa;AAClD;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB,UAAU,sBAAsB;AAC3E;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAe,EAAE,qCAAW,EAAE,qCAAc;AAC3D;AACA,gBAAgB,kBAAkB;AAClC,iFAAiF,wCAAc;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA,+CAA+C,oCAAa;AAC5D,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAe,OAAO,EAAC","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/notebook-extension/lib/trusted.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/notebook-extension/lib/index.js"],"sourcesContent":["import { ReactWidget } from '@jupyterlab/apputils';\nimport { NotebookActions } from '@jupyterlab/notebook';\nimport React, { useEffect, useState } from 'react';\n/**\n * Check if a notebook is trusted\n * @param notebook The notebook to check\n * @returns true if the notebook is trusted, false otherwise\n */\nconst isTrusted = (notebook) => {\n const model = notebook.model;\n if (!model) {\n return false;\n }\n const cells = Array.from(model.cells);\n let total = 0;\n let trusted = 0;\n for (const currentCell of cells) {\n if (currentCell.type !== 'code') {\n continue;\n }\n total++;\n if (currentCell.trusted) {\n trusted++;\n }\n }\n return trusted === total;\n};\n/**\n * A React component to display the Trusted badge in the menu bar.\n * @param notebook The Notebook\n * @param translator The Translation service\n */\nconst TrustedButton = ({ notebook, translator, }) => {\n const trans = translator.load('notebook');\n const [trusted, setTrusted] = useState(isTrusted(notebook));\n const checkTrust = () => {\n const v = isTrusted(notebook);\n setTrusted(v);\n };\n const trust = async () => {\n await NotebookActions.trust(notebook, translator);\n checkTrust();\n };\n useEffect(() => {\n notebook.modelContentChanged.connect(checkTrust);\n notebook.activeCellChanged.connect(checkTrust);\n checkTrust();\n return () => {\n notebook.modelContentChanged.disconnect(checkTrust);\n notebook.activeCellChanged.disconnect(checkTrust);\n };\n });\n return (React.createElement(\"button\", { className: 'jp-NotebookTrustedStatus', style: !trusted ? { cursor: 'pointer' } : { cursor: 'help' }, onClick: () => !trusted && trust(), title: trusted\n ? trans.__('JavaScript enabled for notebook display')\n : trans.__('JavaScript disabled for notebook display') }, trusted ? trans.__('Trusted') : trans.__('Not Trusted')));\n};\n/**\n * A namespace for TrustedComponent static methods.\n */\nexport var TrustedComponent;\n(function (TrustedComponent) {\n /**\n * Create a new TrustedComponent\n *\n * @param notebook The notebook\n * @param translator The translator\n */\n TrustedComponent.create = ({ notebook, translator, }) => {\n return ReactWidget.create(React.createElement(TrustedButton, { notebook: notebook, translator: translator }));\n };\n})(TrustedComponent || (TrustedComponent = {}));\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { DOMUtils, IToolbarWidgetRegistry, ICommandPalette, } from '@jupyterlab/apputils';\nimport { PageConfig, Text, Time, URLExt } from '@jupyterlab/coreutils';\nimport { IDocumentManager } from '@jupyterlab/docmanager';\nimport { IMainMenu } from '@jupyterlab/mainmenu';\nimport { NotebookPanel, INotebookTracker, INotebookTools, } from '@jupyterlab/notebook';\nimport { ISettingRegistry } from '@jupyterlab/settingregistry';\nimport { ITranslator, nullTranslator } from '@jupyterlab/translation';\nimport { INotebookShell } from '@jupyter-notebook/application';\nimport { Poll } from '@lumino/polling';\nimport { Widget } from '@lumino/widgets';\nimport { TrustedComponent } from './trusted';\n/**\n * The class for kernel status errors.\n */\nconst KERNEL_STATUS_ERROR_CLASS = 'jp-NotebookKernelStatus-error';\n/**\n * The class for kernel status warnings.\n */\nconst KERNEL_STATUS_WARN_CLASS = 'jp-NotebookKernelStatus-warn';\n/**\n * The class for kernel status infos.\n */\nconst KERNEL_STATUS_INFO_CLASS = 'jp-NotebookKernelStatus-info';\n/**\n * The class to fade out the kernel status.\n */\nconst KERNEL_STATUS_FADE_OUT_CLASS = 'jp-NotebookKernelStatus-fade';\n/**\n * The class for scrolled outputs\n */\nconst SCROLLED_OUTPUTS_CLASS = 'jp-mod-outputsScrolled';\n/**\n * The class for the full width notebook\n */\nconst FULL_WIDTH_NOTEBOOK_CLASS = 'jp-mod-fullwidth';\n/**\n * The command IDs used by the notebook plugins.\n */\nvar CommandIDs;\n(function (CommandIDs) {\n /**\n * A command to open right sidebar for Editing Notebook Metadata\n */\n CommandIDs.openEditNotebookMetadata = 'notebook:edit-metadata';\n /**\n * A command to toggle full width of the notebook\n */\n CommandIDs.toggleFullWidth = 'notebook:toggle-full-width';\n})(CommandIDs || (CommandIDs = {}));\n/**\n * A plugin for the checkpoint indicator\n */\nconst checkpoints = {\n id: '@jupyter-notebook/notebook-extension:checkpoints',\n description: 'A plugin for the checkpoint indicator.',\n autoStart: true,\n requires: [IDocumentManager, ITranslator],\n optional: [INotebookShell, IToolbarWidgetRegistry],\n activate: (app, docManager, translator, notebookShell, toolbarRegistry) => {\n const { shell } = app;\n const trans = translator.load('notebook');\n const node = document.createElement('div');\n if (toolbarRegistry) {\n toolbarRegistry.addFactory('TopBar', 'checkpoint', (toolbar) => {\n const widget = new Widget({ node });\n widget.id = DOMUtils.createDomID();\n widget.addClass('jp-NotebookCheckpoint');\n return widget;\n });\n }\n const onChange = async () => {\n const current = shell.currentWidget;\n if (!current) {\n return;\n }\n const context = docManager.contextForWidget(current);\n context === null || context === void 0 ? void 0 : context.fileChanged.disconnect(onChange);\n context === null || context === void 0 ? void 0 : context.fileChanged.connect(onChange);\n const checkpoints = await (context === null || context === void 0 ? void 0 : context.listCheckpoints());\n if (!checkpoints || !checkpoints.length) {\n return;\n }\n const checkpoint = checkpoints[checkpoints.length - 1];\n node.textContent = trans.__('Last Checkpoint: %1', Time.formatHuman(new Date(checkpoint.last_modified)));\n };\n if (notebookShell) {\n notebookShell.currentChanged.connect(onChange);\n }\n new Poll({\n auto: true,\n factory: () => onChange(),\n frequency: {\n interval: 2000,\n backoff: false,\n },\n standby: 'when-hidden',\n });\n },\n};\n/**\n * Add a command to close the browser tab when clicking on \"Close and Shut Down\"\n */\nconst closeTab = {\n id: '@jupyter-notebook/notebook-extension:close-tab',\n description: 'Add a command to close the browser tab when clicking on \"Close and Shut Down\".',\n autoStart: true,\n requires: [IMainMenu],\n optional: [ITranslator],\n activate: (app, menu, translator) => {\n const { commands } = app;\n translator = translator !== null && translator !== void 0 ? translator : nullTranslator;\n const trans = translator.load('notebook');\n const id = 'notebook:close-and-halt';\n commands.addCommand(id, {\n label: trans.__('Close and Shut Down Notebook'),\n execute: async () => {\n // Shut the kernel down, without confirmation\n await commands.execute('notebook:shutdown-kernel', { activate: false });\n window.close();\n },\n });\n menu.fileMenu.closeAndCleaners.add({\n id,\n // use a small rank to it takes precedence over the default\n // shut down action for the notebook\n rank: 0,\n });\n },\n};\n/**\n * Add a command to open the tree view from the notebook view\n */\nconst openTreeTab = {\n id: '@jupyter-notebook/notebook-extension:open-tree-tab',\n description: 'Add a command to open a browser tab on the tree view when clicking \"Open...\".',\n autoStart: true,\n optional: [ITranslator],\n activate: (app, translator) => {\n const { commands } = app;\n translator = translator !== null && translator !== void 0 ? translator : nullTranslator;\n const trans = translator.load('notebook');\n const id = 'notebook:open-tree-tab';\n commands.addCommand(id, {\n label: trans.__('Open…'),\n execute: async () => {\n const url = URLExt.join(PageConfig.getBaseUrl(), 'tree');\n window.open(url);\n },\n });\n },\n};\n/**\n * A plugin to set the notebook to full width.\n */\nconst fullWidthNotebook = {\n id: '@jupyter-notebook/notebook-extension:full-width-notebook',\n description: 'A plugin to set the notebook to full width.',\n autoStart: true,\n requires: [INotebookTracker],\n optional: [ICommandPalette, ISettingRegistry, ITranslator],\n activate: (app, tracker, palette, settingRegistry, translator) => {\n const trans = (translator !== null && translator !== void 0 ? translator : nullTranslator).load('notebook');\n let fullWidth = false;\n const toggleFullWidth = () => {\n const current = tracker.currentWidget;\n fullWidth = !fullWidth;\n if (!current) {\n return;\n }\n const content = current;\n content.toggleClass(FULL_WIDTH_NOTEBOOK_CLASS, fullWidth);\n };\n let notebookSettings;\n if (settingRegistry) {\n const loadSettings = settingRegistry.load(fullWidthNotebook.id);\n const updateSettings = (settings) => {\n const newFullWidth = settings.get('fullWidthNotebook')\n .composite;\n if (newFullWidth !== fullWidth) {\n toggleFullWidth();\n }\n };\n Promise.all([loadSettings, app.restored])\n .then(([settings]) => {\n notebookSettings = settings;\n updateSettings(settings);\n settings.changed.connect((settings) => {\n updateSettings(settings);\n });\n })\n .catch((reason) => {\n console.error(reason.message);\n });\n }\n app.commands.addCommand(CommandIDs.toggleFullWidth, {\n label: trans.__('Enable Full Width Notebook'),\n execute: () => {\n toggleFullWidth();\n if (notebookSettings) {\n notebookSettings.set('fullWidthNotebook', fullWidth);\n }\n },\n isEnabled: () => tracker.currentWidget !== null,\n isToggled: () => fullWidth,\n });\n if (palette) {\n palette.addItem({\n command: CommandIDs.toggleFullWidth,\n category: 'Notebook Operations',\n });\n }\n },\n};\n/**\n * The kernel logo plugin.\n */\nconst kernelLogo = {\n id: '@jupyter-notebook/notebook-extension:kernel-logo',\n description: 'The kernel logo plugin.',\n autoStart: true,\n requires: [INotebookShell],\n optional: [IToolbarWidgetRegistry],\n activate: (app, shell, toolbarRegistry) => {\n const { serviceManager } = app;\n const node = document.createElement('div');\n const img = document.createElement('img');\n const onChange = async () => {\n var _a, _b, _c, _d, _e;\n const current = shell.currentWidget;\n if (!(current instanceof NotebookPanel)) {\n return;\n }\n if (!node.hasChildNodes()) {\n node.appendChild(img);\n }\n await current.sessionContext.ready;\n current.sessionContext.kernelChanged.disconnect(onChange);\n current.sessionContext.kernelChanged.connect(onChange);\n const name = (_c = (_b = (_a = current.sessionContext.session) === null || _a === void 0 ? void 0 : _a.kernel) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : '';\n const spec = (_e = (_d = serviceManager.kernelspecs) === null || _d === void 0 ? void 0 : _d.specs) === null || _e === void 0 ? void 0 : _e.kernelspecs[name];\n if (!spec) {\n node.childNodes[0].remove();\n return;\n }\n const kernelIconUrl = spec.resources['logo-64x64'];\n if (!kernelIconUrl) {\n node.childNodes[0].remove();\n return;\n }\n img.src = kernelIconUrl;\n img.title = spec.display_name;\n };\n if (toolbarRegistry) {\n toolbarRegistry.addFactory('TopBar', 'kernelLogo', (toolbar) => {\n const widget = new Widget({ node });\n widget.addClass('jp-NotebookKernelLogo');\n return widget;\n });\n }\n app.started.then(() => {\n shell.currentChanged.connect(onChange);\n });\n },\n};\n/**\n * A plugin to display the kernel status;\n */\nconst kernelStatus = {\n id: '@jupyter-notebook/notebook-extension:kernel-status',\n description: 'A plugin to display the kernel status.',\n autoStart: true,\n requires: [INotebookShell, ITranslator],\n activate: (app, shell, translator) => {\n const trans = translator.load('notebook');\n const widget = new Widget();\n widget.addClass('jp-NotebookKernelStatus');\n app.shell.add(widget, 'menu', { rank: 10010 });\n const removeClasses = () => {\n widget.removeClass(KERNEL_STATUS_ERROR_CLASS);\n widget.removeClass(KERNEL_STATUS_WARN_CLASS);\n widget.removeClass(KERNEL_STATUS_INFO_CLASS);\n widget.removeClass(KERNEL_STATUS_FADE_OUT_CLASS);\n };\n const onStatusChanged = (sessionContext) => {\n const status = sessionContext.kernelDisplayStatus;\n let text = `Kernel ${Text.titleCase(status)}`;\n removeClasses();\n switch (status) {\n case 'busy':\n case 'idle':\n text = '';\n widget.addClass(KERNEL_STATUS_FADE_OUT_CLASS);\n break;\n case 'dead':\n case 'terminating':\n widget.addClass(KERNEL_STATUS_ERROR_CLASS);\n break;\n case 'unknown':\n widget.addClass(KERNEL_STATUS_WARN_CLASS);\n break;\n default:\n widget.addClass(KERNEL_STATUS_INFO_CLASS);\n widget.addClass(KERNEL_STATUS_FADE_OUT_CLASS);\n break;\n }\n widget.node.textContent = trans.__(text);\n };\n const onChange = async () => {\n const current = shell.currentWidget;\n if (!(current instanceof NotebookPanel)) {\n return;\n }\n const sessionContext = current.sessionContext;\n sessionContext.statusChanged.connect(onStatusChanged);\n };\n shell.currentChanged.connect(onChange);\n },\n};\n/**\n * A plugin to enable scrolling for outputs by default.\n * Mimic the logic from the classic notebook, as found here:\n * https://github.com/jupyter/notebook/blob/a9a31c096eeffe1bff4e9164c6a0442e0e13cdb3/notebook/static/notebook/js/outputarea.js#L96-L120\n */\nconst scrollOutput = {\n id: '@jupyter-notebook/notebook-extension:scroll-output',\n description: 'A plugin to enable scrolling for outputs by default.',\n autoStart: true,\n requires: [INotebookTracker],\n optional: [ISettingRegistry],\n activate: async (app, tracker, settingRegistry) => {\n const autoScrollThreshold = 100;\n let autoScrollOutputs = true;\n // decide whether to scroll the output of the cell based on some heuristics\n const autoScroll = (cell) => {\n if (!autoScrollOutputs) {\n // bail if disabled via the settings\n cell.removeClass(SCROLLED_OUTPUTS_CLASS);\n return;\n }\n const { outputArea } = cell;\n // respect cells with an explicit scrolled state\n const scrolled = cell.model.getMetadata('scrolled');\n if (scrolled !== undefined) {\n return;\n }\n const { node } = outputArea;\n const height = node.scrollHeight;\n const fontSize = parseFloat(node.style.fontSize.replace('px', ''));\n const lineHeight = (fontSize || 14) * 1.3;\n // do not set via cell.outputScrolled = true, as this would\n // otherwise synchronize the scrolled state to the notebook metadata\n const scroll = height > lineHeight * autoScrollThreshold;\n cell.toggleClass(SCROLLED_OUTPUTS_CLASS, scroll);\n };\n const handlers = {};\n const setAutoScroll = (cell) => {\n if (cell.model.type === 'code') {\n const codeCell = cell;\n const id = codeCell.model.id;\n autoScroll(codeCell);\n if (handlers[id]) {\n codeCell.outputArea.model.changed.disconnect(handlers[id]);\n }\n handlers[id] = () => autoScroll(codeCell);\n codeCell.outputArea.model.changed.connect(handlers[id]);\n }\n };\n tracker.widgetAdded.connect((sender, notebook) => {\n var _a;\n // when the notebook widget is created, process all the cells\n notebook.sessionContext.ready.then(() => {\n notebook.content.widgets.forEach(setAutoScroll);\n });\n (_a = notebook.model) === null || _a === void 0 ? void 0 : _a.cells.changed.connect((sender, args) => {\n notebook.content.widgets.forEach(setAutoScroll);\n });\n });\n if (settingRegistry) {\n const loadSettings = settingRegistry.load(scrollOutput.id);\n const updateSettings = (settings) => {\n autoScrollOutputs = settings.get('autoScrollOutputs')\n .composite;\n };\n Promise.all([loadSettings, app.restored])\n .then(([settings]) => {\n updateSettings(settings);\n settings.changed.connect((settings) => {\n updateSettings(settings);\n });\n })\n .catch((reason) => {\n console.error(reason.message);\n });\n }\n },\n};\n/**\n * A plugin to add the NotebookTools to the side panel;\n */\nconst notebookToolsWidget = {\n id: '@jupyter-notebook/notebook-extension:notebook-tools',\n description: 'A plugin to add the NotebookTools to the side panel.',\n autoStart: true,\n requires: [INotebookShell],\n optional: [INotebookTools],\n activate: (app, shell, notebookTools) => {\n const onChange = async () => {\n const current = shell.currentWidget;\n if (!(current instanceof NotebookPanel)) {\n return;\n }\n // Add the notebook tools in right area.\n if (notebookTools) {\n shell.add(notebookTools, 'right', { type: 'Property Inspector' });\n }\n };\n shell.currentChanged.connect(onChange);\n },\n};\n/**\n * A plugin to update the tab icon based on the kernel status.\n */\nconst tabIcon = {\n id: '@jupyter-notebook/notebook-extension:tab-icon',\n description: 'A plugin to update the tab icon based on the kernel status.',\n autoStart: true,\n requires: [INotebookTracker],\n activate: (app, tracker) => {\n // the favicons are provided by Jupyter Server\n const baseURL = PageConfig.getBaseUrl();\n const notebookIcon = URLExt.join(baseURL, 'static/favicons/favicon-notebook.ico');\n const busyIcon = URLExt.join(baseURL, 'static/favicons/favicon-busy-1.ico');\n const updateBrowserFavicon = (status) => {\n const link = document.querySelector(\"link[rel*='icon']\");\n switch (status) {\n case 'busy':\n link.href = busyIcon;\n break;\n case 'idle':\n link.href = notebookIcon;\n break;\n }\n };\n const onChange = async () => {\n const current = tracker.currentWidget;\n const sessionContext = current === null || current === void 0 ? void 0 : current.sessionContext;\n if (!sessionContext) {\n return;\n }\n sessionContext.statusChanged.connect(() => {\n const status = sessionContext.kernelDisplayStatus;\n updateBrowserFavicon(status);\n });\n };\n tracker.currentChanged.connect(onChange);\n },\n};\n/**\n * A plugin that adds a Trusted indicator to the menu area\n */\nconst trusted = {\n id: '@jupyter-notebook/notebook-extension:trusted',\n description: 'A plugin that adds a Trusted indicator to the menu area.',\n autoStart: true,\n requires: [INotebookShell, ITranslator],\n activate: (app, notebookShell, translator) => {\n const onChange = async () => {\n const current = notebookShell.currentWidget;\n if (!(current instanceof NotebookPanel)) {\n return;\n }\n const notebook = current.content;\n await current.context.ready;\n const widget = TrustedComponent.create({ notebook, translator });\n notebookShell.add(widget, 'menu', {\n rank: 11000,\n });\n };\n notebookShell.currentChanged.connect(onChange);\n },\n};\n/**\n * Add a command to open right sidebar for Editing Notebook Metadata when clicking on \"Edit Notebook Metadata\" under Edit menu\n */\nconst editNotebookMetadata = {\n id: '@jupyter-notebook/notebook-extension:edit-notebook-metadata',\n description: 'Add a command to open right sidebar for Editing Notebook Metadata when clicking on \"Edit Notebook Metadata\" under Edit menu',\n autoStart: true,\n optional: [ICommandPalette, ITranslator, INotebookTools],\n activate: (app, palette, translator, notebookTools) => {\n const { commands, shell } = app;\n translator = translator !== null && translator !== void 0 ? translator : nullTranslator;\n const trans = translator.load('notebook');\n commands.addCommand(CommandIDs.openEditNotebookMetadata, {\n label: trans.__('Edit Notebook Metadata'),\n execute: async () => {\n const command = 'application:toggle-panel';\n const args = {\n side: 'right',\n title: 'Show Notebook Tools',\n id: 'notebook-tools',\n };\n // Check if Show Notebook Tools (Right Sidebar) is open (expanded)\n if (!commands.isToggled(command, args)) {\n await commands.execute(command, args).then((_) => {\n // For expanding the 'Advanced Tools' section (default: collapsed)\n if (notebookTools) {\n const tools = (notebookTools === null || notebookTools === void 0 ? void 0 : notebookTools.layout).widgets;\n tools.forEach((tool) => {\n if (tool.widget.title.label === trans.__('Advanced Tools') &&\n tool.collapsed) {\n tool.toggle();\n }\n });\n }\n });\n }\n },\n isVisible: () => shell.currentWidget !== null &&\n shell.currentWidget instanceof NotebookPanel,\n });\n if (palette) {\n palette.addItem({\n command: CommandIDs.openEditNotebookMetadata,\n category: 'Notebook Operations',\n });\n }\n },\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [\n checkpoints,\n closeTab,\n openTreeTab,\n editNotebookMetadata,\n fullWidthNotebook,\n kernelLogo,\n kernelStatus,\n notebookToolsWidget,\n scrollOutput,\n tabIcon,\n trusted,\n];\nexport default plugins;\n"],"names":[],"sourceRoot":""}
@@ -8,13 +8,13 @@ __webpack_require__.r(__webpack_exports__);
8
8
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9
9
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10
10
  /* harmony export */ });
11
- /* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52537);
11
+ /* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12210);
12
12
  /* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__);
13
- /* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3213);
13
+ /* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55183);
14
14
  /* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__);
15
- /* harmony import */ var _jupyterlab_terminal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(64515);
15
+ /* harmony import */ var _jupyterlab_terminal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(70075);
16
16
  /* harmony import */ var _jupyterlab_terminal__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_terminal__WEBPACK_IMPORTED_MODULE_2__);
17
- /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14993);
17
+ /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(52387);
18
18
  /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_3__);
19
19
  /* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56114);
20
20
  /* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_4__);
@@ -96,4 +96,4 @@ const plugins = [opener, redirect];
96
96
  /***/ })
97
97
 
98
98
  }]);
99
- //# sourceMappingURL=5601.46e8997c661be165fdbc.js.map?v=46e8997c661be165fdbc
99
+ //# sourceMappingURL=5601.969b0f91318ba0d2c861.js.map?v=969b0f91318ba0d2c861
@@ -1 +1 @@
1
- {"version":3,"file":"5601.46e8997c661be165fdbc.js?v=46e8997c661be165fdbc","mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACmD;AACQ;AACH;AACwC;AACvD;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAO,EAAE,kEAAgB;AACxC;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,oDAAoD,MAAM;AAC1D,aAAa;AACb,SAAS;AACT,0BAA0B,mCAAmC;AAC7D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAgB;AAC/B,eAAe,8EAAmB;AAClC;AACA;AACA,wBAAwB,6DAAU;AAClC,2GAA2G,oFAAyB;AACpI;AACA,2BAA2B,uDAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAM;AAC9B;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iEAAe,OAAO,EAAC","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/terminal-extension/lib/index.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { IRouter, } from '@jupyterlab/application';\nimport { PageConfig, URLExt } from '@jupyterlab/coreutils';\nimport { ITerminalTracker } from '@jupyterlab/terminal';\nimport { INotebookPathOpener, defaultNotebookPathOpener, } from '@jupyter-notebook/application';\nimport { find } from '@lumino/algorithm';\n/**\n * A plugin to open terminals in a new tab\n */\nconst opener = {\n id: '@jupyter-notebook/terminal-extension:opener',\n description: 'A plugin to open terminals in a new tab.',\n requires: [IRouter, ITerminalTracker],\n autoStart: true,\n activate: (app, router, tracker) => {\n const { commands } = app;\n const terminalPattern = new RegExp('/terminals/(.*)');\n const command = 'router:terminal';\n commands.addCommand(command, {\n execute: (args) => {\n const parsed = args;\n const matches = parsed.path.match(terminalPattern);\n if (!matches) {\n return;\n }\n const [, name] = matches;\n if (!name) {\n return;\n }\n tracker.widgetAdded.connect((send, terminal) => {\n terminal.content.setOption('closeOnExit', false);\n });\n commands.execute('terminal:open', { name });\n },\n });\n router.register({ command, pattern: terminalPattern });\n },\n};\n/**\n * Open terminals in a new tab.\n */\nconst redirect = {\n id: '@jupyter-notebook/terminal-extension:redirect',\n description: 'Open terminals in a new tab.',\n requires: [ITerminalTracker],\n optional: [INotebookPathOpener],\n autoStart: true,\n activate: (app, tracker, notebookPathOpener) => {\n const baseUrl = PageConfig.getBaseUrl();\n const opener = notebookPathOpener !== null && notebookPathOpener !== void 0 ? notebookPathOpener : defaultNotebookPathOpener;\n tracker.widgetAdded.connect((send, terminal) => {\n const widget = find(app.shell.widgets('main'), (w) => w.id === terminal.id);\n if (widget) {\n // bail if the terminal is already added to the main area\n return;\n }\n const name = terminal.content.session.name;\n opener.open({\n prefix: URLExt.join(baseUrl, 'terminals'),\n path: name,\n target: '_blank',\n });\n // dispose the widget since it is not used on this page\n terminal.dispose();\n });\n },\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [opener, redirect];\nexport default plugins;\n"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"5601.969b0f91318ba0d2c861.js?v=969b0f91318ba0d2c861","mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACmD;AACQ;AACH;AACwC;AACvD;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAO,EAAE,kEAAgB;AACxC;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,oDAAoD,MAAM;AAC1D,aAAa;AACb,SAAS;AACT,0BAA0B,mCAAmC;AAC7D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAgB;AAC/B,eAAe,8EAAmB;AAClC;AACA;AACA,wBAAwB,6DAAU;AAClC,2GAA2G,oFAAyB;AACpI;AACA,2BAA2B,uDAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAM;AAC9B;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iEAAe,OAAO,EAAC","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/terminal-extension/lib/index.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { IRouter, } from '@jupyterlab/application';\nimport { PageConfig, URLExt } from '@jupyterlab/coreutils';\nimport { ITerminalTracker } from '@jupyterlab/terminal';\nimport { INotebookPathOpener, defaultNotebookPathOpener, } from '@jupyter-notebook/application';\nimport { find } from '@lumino/algorithm';\n/**\n * A plugin to open terminals in a new tab\n */\nconst opener = {\n id: '@jupyter-notebook/terminal-extension:opener',\n description: 'A plugin to open terminals in a new tab.',\n requires: [IRouter, ITerminalTracker],\n autoStart: true,\n activate: (app, router, tracker) => {\n const { commands } = app;\n const terminalPattern = new RegExp('/terminals/(.*)');\n const command = 'router:terminal';\n commands.addCommand(command, {\n execute: (args) => {\n const parsed = args;\n const matches = parsed.path.match(terminalPattern);\n if (!matches) {\n return;\n }\n const [, name] = matches;\n if (!name) {\n return;\n }\n tracker.widgetAdded.connect((send, terminal) => {\n terminal.content.setOption('closeOnExit', false);\n });\n commands.execute('terminal:open', { name });\n },\n });\n router.register({ command, pattern: terminalPattern });\n },\n};\n/**\n * Open terminals in a new tab.\n */\nconst redirect = {\n id: '@jupyter-notebook/terminal-extension:redirect',\n description: 'Open terminals in a new tab.',\n requires: [ITerminalTracker],\n optional: [INotebookPathOpener],\n autoStart: true,\n activate: (app, tracker, notebookPathOpener) => {\n const baseUrl = PageConfig.getBaseUrl();\n const opener = notebookPathOpener !== null && notebookPathOpener !== void 0 ? notebookPathOpener : defaultNotebookPathOpener;\n tracker.widgetAdded.connect((send, terminal) => {\n const widget = find(app.shell.widgets('main'), (w) => w.id === terminal.id);\n if (widget) {\n // bail if the terminal is already added to the main area\n return;\n }\n const name = terminal.content.session.name;\n opener.open({\n prefix: URLExt.join(baseUrl, 'terminals'),\n path: name,\n target: '_blank',\n });\n // dispose the widget since it is not used on this page\n terminal.dispose();\n });\n },\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [opener, redirect];\nexport default plugins;\n"],"names":[],"sourceRoot":""}
@@ -8,13 +8,13 @@ __webpack_require__.r(__webpack_exports__);
8
8
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9
9
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10
10
  /* harmony export */ });
11
- /* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52537);
11
+ /* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12210);
12
12
  /* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__);
13
- /* harmony import */ var _jupyterlab_console__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63572);
13
+ /* harmony import */ var _jupyterlab_console__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(73992);
14
14
  /* harmony import */ var _jupyterlab_console__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_console__WEBPACK_IMPORTED_MODULE_1__);
15
- /* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3213);
15
+ /* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55183);
16
16
  /* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_2__);
17
- /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14993);
17
+ /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(52387);
18
18
  /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_3__);
19
19
  /* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56114);
20
20
  /* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_4__);
@@ -95,4 +95,4 @@ const plugins = [opener, redirect];
95
95
  /***/ })
96
96
 
97
97
  }]);
98
- //# sourceMappingURL=6345.d2829fcc732af2d87e50.js.map?v=d2829fcc732af2d87e50
98
+ //# sourceMappingURL=6345.fde2b9716946005d7b7e.js.map?v=fde2b9716946005d7b7e
@@ -1 +1 @@
1
- {"version":3,"file":"6345.d2829fcc732af2d87e50.js?v=d2829fcc732af2d87e50","mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACmD;AACG;AACK;AACqC;AACvD;AACzC;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAO;AACtB;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,MAAM;AAC3D,aAAa;AACb,SAAS;AACT,0BAA0B,kCAAkC;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gEAAe;AAC9B,eAAe,8EAAmB;AAClC;AACA;AACA;AACA,wBAAwB,6DAAU;AAClC,2GAA2G,oFAAyB;AACpI;AACA,oBAAoB,iBAAiB;AACrC;AACA,2BAA2B,uDAAI;AAC/B;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAM;AAC9B;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iEAAe,OAAO,EAAC","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/console-extension/lib/index.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { IRouter, } from '@jupyterlab/application';\nimport { IConsoleTracker } from '@jupyterlab/console';\nimport { PageConfig, URLExt } from '@jupyterlab/coreutils';\nimport { INotebookPathOpener, defaultNotebookPathOpener, } from '@jupyter-notebook/application';\nimport { find } from '@lumino/algorithm';\n/**\n * A plugin to open consoles in a new tab\n */\nconst opener = {\n id: '@jupyter-notebook/console-extension:opener',\n requires: [IRouter],\n autoStart: true,\n description: 'A plugin to open consoles in a new tab',\n activate: (app, router) => {\n const { commands } = app;\n const consolePattern = new RegExp('/consoles/(.*)');\n const command = 'router:console';\n commands.addCommand(command, {\n execute: (args) => {\n const parsed = args;\n const matches = parsed.path.match(consolePattern);\n if (!matches) {\n return;\n }\n const [, match] = matches;\n if (!match) {\n return;\n }\n const path = decodeURIComponent(match);\n commands.execute('console:create', { path });\n },\n });\n router.register({ command, pattern: consolePattern });\n },\n};\n/**\n * Open consoles in a new tab.\n */\nconst redirect = {\n id: '@jupyter-notebook/console-extension:redirect',\n requires: [IConsoleTracker],\n optional: [INotebookPathOpener],\n autoStart: true,\n description: 'Open consoles in a new tab',\n activate: (app, tracker, notebookPathOpener) => {\n const baseUrl = PageConfig.getBaseUrl();\n const opener = notebookPathOpener !== null && notebookPathOpener !== void 0 ? notebookPathOpener : defaultNotebookPathOpener;\n tracker.widgetAdded.connect(async (send, console) => {\n const { sessionContext } = console;\n await sessionContext.ready;\n const widget = find(app.shell.widgets('main'), (w) => w.id === console.id);\n if (widget) {\n // bail if the console is already added to the main area\n return;\n }\n opener.open({\n prefix: URLExt.join(baseUrl, 'consoles'),\n path: sessionContext.path,\n target: '_blank',\n });\n // the widget is not needed anymore\n console.dispose();\n });\n },\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [opener, redirect];\nexport default plugins;\n"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"6345.fde2b9716946005d7b7e.js?v=fde2b9716946005d7b7e","mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACmD;AACG;AACK;AACqC;AACvD;AACzC;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAO;AACtB;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,MAAM;AAC3D,aAAa;AACb,SAAS;AACT,0BAA0B,kCAAkC;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gEAAe;AAC9B,eAAe,8EAAmB;AAClC;AACA;AACA;AACA,wBAAwB,6DAAU;AAClC,2GAA2G,oFAAyB;AACpI;AACA,oBAAoB,iBAAiB;AACrC;AACA,2BAA2B,uDAAI;AAC/B;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAM;AAC9B;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iEAAe,OAAO,EAAC","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/console-extension/lib/index.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { IRouter, } from '@jupyterlab/application';\nimport { IConsoleTracker } from '@jupyterlab/console';\nimport { PageConfig, URLExt } from '@jupyterlab/coreutils';\nimport { INotebookPathOpener, defaultNotebookPathOpener, } from '@jupyter-notebook/application';\nimport { find } from '@lumino/algorithm';\n/**\n * A plugin to open consoles in a new tab\n */\nconst opener = {\n id: '@jupyter-notebook/console-extension:opener',\n requires: [IRouter],\n autoStart: true,\n description: 'A plugin to open consoles in a new tab',\n activate: (app, router) => {\n const { commands } = app;\n const consolePattern = new RegExp('/consoles/(.*)');\n const command = 'router:console';\n commands.addCommand(command, {\n execute: (args) => {\n const parsed = args;\n const matches = parsed.path.match(consolePattern);\n if (!matches) {\n return;\n }\n const [, match] = matches;\n if (!match) {\n return;\n }\n const path = decodeURIComponent(match);\n commands.execute('console:create', { path });\n },\n });\n router.register({ command, pattern: consolePattern });\n },\n};\n/**\n * Open consoles in a new tab.\n */\nconst redirect = {\n id: '@jupyter-notebook/console-extension:redirect',\n requires: [IConsoleTracker],\n optional: [INotebookPathOpener],\n autoStart: true,\n description: 'Open consoles in a new tab',\n activate: (app, tracker, notebookPathOpener) => {\n const baseUrl = PageConfig.getBaseUrl();\n const opener = notebookPathOpener !== null && notebookPathOpener !== void 0 ? notebookPathOpener : defaultNotebookPathOpener;\n tracker.widgetAdded.connect(async (send, console) => {\n const { sessionContext } = console;\n await sessionContext.ready;\n const widget = find(app.shell.widgets('main'), (w) => w.id === console.id);\n if (widget) {\n // bail if the console is already added to the main area\n return;\n }\n opener.open({\n prefix: URLExt.join(baseUrl, 'consoles'),\n path: sessionContext.path,\n target: '_blank',\n });\n // the widget is not needed anymore\n console.dispose();\n });\n },\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [opener, redirect];\nexport default plugins;\n"],"names":[],"sourceRoot":""}
@@ -12,28 +12,28 @@ __webpack_require__.d(__webpack_exports__, {
12
12
  "default": () => (/* binding */ lib)
13
13
  });
14
14
 
15
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/apputils@~4.5.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/apputils/lib/index.js)
16
- var index_js_ = __webpack_require__(39868);
17
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/coreutils@~6.4.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/coreutils/lib/index.js)
18
- var lib_index_js_ = __webpack_require__(3213);
19
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/filebrowser@~4.4.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/filebrowser/lib/index.js)
20
- var filebrowser_lib_index_js_ = __webpack_require__(13165);
21
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/settingregistry@~4.4.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/settingregistry/lib/index.js)
22
- var settingregistry_lib_index_js_ = __webpack_require__(97904);
23
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/running@^4.4.0-rc.1 (strict) (fallback: ../node_modules/@jupyterlab/running/lib/index.js)
24
- var running_lib_index_js_ = __webpack_require__(55965);
25
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/settingeditor@~4.4.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/settingeditor/lib/index.js)
26
- var settingeditor_lib_index_js_ = __webpack_require__(89100);
27
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/translation@~4.4.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/translation/lib/index.js)
28
- var translation_lib_index_js_ = __webpack_require__(3224);
29
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/ui-components@~4.4.0-rc.1 (singleton) (fallback: ../node_modules/@jupyterlab/ui-components/lib/index.js)
30
- var ui_components_lib_index_js_ = __webpack_require__(83448);
15
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/apputils@~4.5.1 (singleton) (fallback: ../node_modules/@jupyterlab/apputils/lib/index.js)
16
+ var index_js_ = __webpack_require__(31422);
17
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/coreutils@~6.4.1 (singleton) (fallback: ../node_modules/@jupyterlab/coreutils/lib/index.js)
18
+ var lib_index_js_ = __webpack_require__(55183);
19
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/filebrowser@~4.4.1 (singleton) (fallback: ../node_modules/@jupyterlab/filebrowser/lib/index.js)
20
+ var filebrowser_lib_index_js_ = __webpack_require__(27280);
21
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/settingregistry@~4.4.1 (singleton) (fallback: ../node_modules/@jupyterlab/settingregistry/lib/index.js)
22
+ var settingregistry_lib_index_js_ = __webpack_require__(35119);
23
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/running@^4.4.1 (strict) (fallback: ../node_modules/@jupyterlab/running/lib/index.js)
24
+ var running_lib_index_js_ = __webpack_require__(85914);
25
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/settingeditor@~4.4.1 (singleton) (fallback: ../node_modules/@jupyterlab/settingeditor/lib/index.js)
26
+ var settingeditor_lib_index_js_ = __webpack_require__(11510);
27
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/translation@~4.4.1 (singleton) (fallback: ../node_modules/@jupyterlab/translation/lib/index.js)
28
+ var translation_lib_index_js_ = __webpack_require__(39715);
29
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/ui-components@~4.4.1 (singleton) (fallback: ../node_modules/@jupyterlab/ui-components/lib/index.js)
30
+ var ui_components_lib_index_js_ = __webpack_require__(62169);
31
31
  // EXTERNAL MODULE: consume shared module (default) @lumino/signaling@~2.1.4 (singleton) (fallback: ../node_modules/@lumino/signaling/dist/index.es6.js)
32
32
  var index_es6_js_ = __webpack_require__(2536);
33
33
  // EXTERNAL MODULE: consume shared module (default) @lumino/widgets@~2.7.0 (singleton) (fallback: ../node_modules/@lumino/widgets/dist/index.es6.js)
34
34
  var dist_index_es6_js_ = __webpack_require__(47659);
35
- // EXTERNAL MODULE: consume shared module (default) @jupyter-notebook/tree@~7.4.0-rc.0 (singleton) (fallback: ../packages/tree/lib/index.js)
36
- var tree_lib_index_js_ = __webpack_require__(53350);
35
+ // EXTERNAL MODULE: consume shared module (default) @jupyter-notebook/tree@~7.4.1 (singleton) (fallback: ../packages/tree/lib/index.js)
36
+ var tree_lib_index_js_ = __webpack_require__(59276);
37
37
  // EXTERNAL MODULE: consume shared module (default) react@~18.2.0 (singleton) (fallback: ../node_modules/react/index.js)
38
38
  var react_index_js_ = __webpack_require__(78156);
39
39
  var react_index_js_default = /*#__PURE__*/__webpack_require__.n(react_index_js_);
@@ -443,4 +443,4 @@ const plugins = [
443
443
  /***/ })
444
444
 
445
445
  }]);
446
- //# sourceMappingURL=7302.210ed2fce68cc9e56baf.js.map?v=210ed2fce68cc9e56baf
446
+ //# sourceMappingURL=7302.1028638d31004cdf54d7.js.map?v=1028638d31004cdf54d7
@@ -1 +1 @@
1
- {"version":3,"file":"3768.d16e5254885f02885c3d.js?v=d16e5254885f02885c3d","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACmF;AACzD;AACnB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA,4BAA4B,qBAAW,QAAQ,sCAAmB,UAAU,oBAAoB;AAChG;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW,QAAQ,sCAAmB,CAAC,uCAA6B,IAAI,oDAAoD,OAAO,WAAW,eAAe,mBAAmB;AAC3M,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnDA;AACA;AACkH;AAC/D;AAC2C;AAC/B;AACgB;AACe;AACxC;AAC8B;AACzC;AACK;AAC2B;AACxB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAW;AAC1B,eAAe,gCAAsB;AACrC;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA,4BAA4B,0BAAO;AACnC,4BAA4B,uBAAI,GAAG,UAAU;AAC7C;AACA,6BAA6B,yCAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,SAAS;AAC3C,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oCAAoC,0BAAO;AAC3C;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6CAAmB,EAAE,gCAAsB,EAAE,qCAAW;AACvE;AACA;AACA;AACA,qCAAqC,oBAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB,WAAW;AAC3B,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6CAAmB;AAClC,eAAe,8CAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8CAAgB;AAC/B;AACA,gBAAgB,aAAa,EAAE,wBAAU;AACzC;AACA,iCAAiC,wBAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,GAAG;AACpE;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAa,EAAE,6CAAmB;AACjD;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6CAAmB;AAC3B,QAAQ,qCAAW;AACnB,QAAQ,8CAAgB;AACxB,QAAQ,gCAAsB;AAC9B,QAAQ,6CAAmB;AAC3B;AACA;AACA,QAAQ,6CAAuB;AAC/B,QAAQ,iDAAqB;AAC7B,QAAQ,qDAAyB;AACjC;AACA;AACA,cAAc,gCAAa;AAC3B;AACA,iCAAiC,qCAAkB;AACnD;AACA;AACA;AACA;AACA,6BAA6B,sCAAU;AACvC;AACA;AACA;AACA,sFAAsF,kCAAQ;AAC9F;AACA;AACA;AACA,SAAS;AACT,QAAQ,wBAAU,UAAU,kCAAoB;AAChD;AACA,gCAAgC,qCAAe;AAC/C;AACA;AACA,iCAAiC,uCAAW;AAC5C;AACA;AACA;AACA,8CAA8C,WAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAe,OAAO,EAAC","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/tree-extension/lib/fileactions.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/tree-extension/lib/index.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { CommandToolbarButtonComponent, ReactWidget, } from '@jupyterlab/apputils';\nimport React from 'react';\nexport class FilesActionButtons {\n /**\n * The constructor of FilesActionButtons.\n * @param options\n */\n constructor(options) {\n /**\n * Triggered when the selection change in file browser.\n */\n this._onSelectionChanged = () => {\n var _a, _b, _c, _d, _e, _f;\n const selectedItems = Array.from(this._browser.selectedItems());\n const selection = selectedItems.length > 0;\n const oneFolder = selectedItems.some((item) => item.type === 'directory');\n (_a = this._widgets.get('placeholder')) === null || _a === void 0 ? void 0 : _a.setHidden(selection);\n (_b = this._widgets.get('delete')) === null || _b === void 0 ? void 0 : _b.setHidden(!selection);\n (_c = this._widgets.get('duplicate')) === null || _c === void 0 ? void 0 : _c.setHidden(!selection || oneFolder);\n (_d = this._widgets.get('download')) === null || _d === void 0 ? void 0 : _d.setHidden(!selection || oneFolder);\n (_e = this._widgets.get('open')) === null || _e === void 0 ? void 0 : _e.setHidden(!selection || oneFolder);\n (_f = this._widgets.get('rename')) === null || _f === void 0 ? void 0 : _f.setHidden(selectedItems.length !== 1);\n };\n this._widgets = new Map();\n this._browser = options.browser;\n const { commands, selectionChanged, translator } = options;\n const trans = translator.load('notebook');\n // Placeholder, when no file is selected.\n const placeholder = ReactWidget.create(React.createElement(\"div\", { key: 'placeholder' }, trans.__('Select items to perform actions on them.')));\n placeholder.id = 'fileAction-placeholder';\n this._widgets.set('placeholder', placeholder);\n // The action buttons.\n const actions = ['open', 'download', 'rename', 'duplicate', 'delete'];\n actions.forEach((action) => {\n const widget = ReactWidget.create(React.createElement(CommandToolbarButtonComponent, { key: action, commands: commands, id: `filebrowser:${action}`, args: { toolbar: true }, icon: undefined }));\n widget.id = `fileAction-${action}`;\n widget.addClass('jp-ToolbarButton');\n widget.addClass('jp-FileAction');\n this._widgets.set(action, widget);\n });\n selectionChanged.connect(this._onSelectionChanged, this);\n this._onSelectionChanged();\n }\n /**\n * Return an iterator with all the action widgets.\n */\n get widgets() {\n return this._widgets.values();\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { ICommandPalette, IToolbarWidgetRegistry, createToolbarFactory, setToolbar, } from '@jupyterlab/apputils';\nimport { PageConfig } from '@jupyterlab/coreutils';\nimport { Uploader, IDefaultFileBrowser, IFileBrowserFactory, } from '@jupyterlab/filebrowser';\nimport { ISettingRegistry } from '@jupyterlab/settingregistry';\nimport { IRunningSessionManagers, RunningSessions } from '@jupyterlab/running';\nimport { IJSONSettingEditorTracker, ISettingEditorTracker, } from '@jupyterlab/settingeditor';\nimport { ITranslator } from '@jupyterlab/translation';\nimport { caretDownIcon, folderIcon, runningIcon, } from '@jupyterlab/ui-components';\nimport { Signal } from '@lumino/signaling';\nimport { Menu, MenuBar } from '@lumino/widgets';\nimport { NotebookTreeWidget, INotebookTree } from '@jupyter-notebook/tree';\nimport { FilesActionButtons } from './fileactions';\n/**\n * The file browser factory.\n */\nconst FILE_BROWSER_FACTORY = 'FileBrowser';\n/**\n * The file browser plugin id.\n */\nconst FILE_BROWSER_PLUGIN_ID = '@jupyterlab/filebrowser-extension:browser';\n/**\n * The namespace for command IDs.\n */\nvar CommandIDs;\n(function (CommandIDs) {\n // The command to activate the filebrowser widget in tree view.\n CommandIDs.activate = 'filebrowser:activate';\n // Activate the file filter in the file browser\n CommandIDs.toggleFileFilter = 'filebrowser:toggle-file-filter';\n})(CommandIDs || (CommandIDs = {}));\n/**\n * Plugin to add extra commands to the file browser to create\n * new notebooks, files, consoles and terminals\n */\nconst createNew = {\n id: '@jupyter-notebook/tree-extension:new',\n description: 'Plugin to add extra commands to the file browser to create new notebooks, files, consoles and terminals.',\n requires: [ITranslator],\n optional: [IToolbarWidgetRegistry],\n autoStart: true,\n activate: (app, translator, toolbarRegistry) => {\n var _a;\n const { commands, serviceManager } = app;\n const trans = translator.load('notebook');\n const overflowOptions = {\n overflowMenuOptions: { isVisible: false },\n };\n const menubar = new MenuBar(overflowOptions);\n const newMenu = new Menu({ commands });\n newMenu.title.label = trans.__('New');\n newMenu.title.icon = caretDownIcon;\n menubar.addMenu(newMenu);\n const populateNewMenu = () => {\n var _a, _b;\n // create an entry per kernel spec for creating a new notebook\n const specs = (_b = (_a = serviceManager.kernelspecs) === null || _a === void 0 ? void 0 : _a.specs) === null || _b === void 0 ? void 0 : _b.kernelspecs;\n for (const name in specs) {\n newMenu.addItem({\n args: { kernelName: name, isLauncher: true },\n command: 'notebook:create-new',\n });\n }\n const baseCommands = [\n 'terminal:create-new',\n 'console:create',\n 'filebrowser:create-new-file',\n 'filebrowser:create-new-directory',\n ];\n baseCommands.forEach((command) => {\n newMenu.addItem({ command });\n });\n };\n (_a = serviceManager.kernelspecs) === null || _a === void 0 ? void 0 : _a.specsChanged.connect(() => {\n newMenu.clearItems();\n populateNewMenu();\n });\n populateNewMenu();\n if (toolbarRegistry) {\n toolbarRegistry.addFactory(FILE_BROWSER_FACTORY, 'new-dropdown', (browser) => {\n const menubar = new MenuBar(overflowOptions);\n menubar.addMenu(newMenu);\n menubar.addClass('jp-DropdownMenu');\n return menubar;\n });\n }\n },\n};\n/**\n * A plugin to add file browser actions to the file browser toolbar.\n */\nconst fileActions = {\n id: '@jupyter-notebook/tree-extension:file-actions',\n description: 'A plugin to add file browser actions to the file browser toolbar.',\n autoStart: true,\n requires: [IDefaultFileBrowser, IToolbarWidgetRegistry, ITranslator],\n activate: (app, browser, toolbarRegistry, translator) => {\n // TODO: use upstream signal when available to detect selection changes\n // https://github.com/jupyterlab/jupyterlab/issues/14598\n const selectionChanged = new Signal(browser);\n const methods = [\n '_selectItem',\n '_handleMultiSelect',\n 'handleFileSelect',\n ];\n methods.forEach((method) => {\n const original = browser['listing'][method];\n browser['listing'][method] = (...args) => {\n original.call(browser['listing'], ...args);\n selectionChanged.emit(void 0);\n };\n });\n browser.model.pathChanged.connect(() => {\n selectionChanged.emit(void 0);\n });\n // Create a toolbar item that adds buttons to the file browser toolbar\n // to perform actions on the files\n const { commands } = app;\n const fileActions = new FilesActionButtons({\n commands,\n browser,\n selectionChanged,\n translator,\n });\n for (const widget of fileActions.widgets) {\n toolbarRegistry.addFactory(FILE_BROWSER_FACTORY, widget.id, () => widget);\n }\n },\n};\n/**\n * A plugin to set the default file browser settings.\n */\nconst fileBrowserSettings = {\n id: '@jupyter-notebook/tree-extension:settings',\n description: 'Set up the default file browser settings',\n requires: [IDefaultFileBrowser],\n optional: [ISettingRegistry],\n autoStart: true,\n activate: (app, browser, settingRegistry) => {\n // Default config for notebook.\n // This is a different set of defaults than JupyterLab.\n const defaultFileBrowserConfig = {\n navigateToCurrentDirectory: false,\n singleClickNavigation: true,\n showLastModifiedColumn: true,\n showFileSizeColumn: true,\n showHiddenFiles: false,\n showFileCheckboxes: true,\n sortNotebooksFirst: true,\n showFullPath: false,\n };\n // Apply defaults on plugin activation\n let key;\n for (key in defaultFileBrowserConfig) {\n browser[key] = defaultFileBrowserConfig[key];\n }\n if (settingRegistry) {\n void settingRegistry.load(FILE_BROWSER_PLUGIN_ID).then((settings) => {\n function onSettingsChanged(settings) {\n let key;\n for (key in defaultFileBrowserConfig) {\n const value = settings.get(key).user;\n // only set the setting if it is defined by the user\n if (value !== undefined) {\n browser[key] = value;\n }\n }\n }\n settings.changed.connect(onSettingsChanged);\n onSettingsChanged(settings);\n });\n }\n },\n};\n/**\n * A plugin to add the file filter toggle command to the palette\n */\nconst fileFilterCommand = {\n id: '@jupyter-notebook/tree-extension:file-filter-command',\n description: 'A plugin to add file filter command to the palette.',\n autoStart: true,\n optional: [ICommandPalette],\n activate: (app, palette) => {\n if (palette) {\n palette.addItem({\n command: CommandIDs.toggleFileFilter,\n category: 'File Browser',\n });\n }\n },\n};\n/**\n * Plugin to load the default plugins that are loaded on all the Notebook pages\n * (tree, edit, view, etc.) so they are visible in the settings editor.\n */\nconst loadPlugins = {\n id: '@jupyter-notebook/tree-extension:load-plugins',\n description: 'Plugin to load the default plugins that are loaded on all the Notebook pages (tree, edit, view, etc.) so they are visible in the settings editor.',\n autoStart: true,\n requires: [ISettingRegistry],\n activate(app, settingRegistry) {\n const { isDisabled } = PageConfig.Extension;\n const connector = settingRegistry.connector;\n const allPluginsOption = PageConfig.getOption('allPlugins');\n if (!allPluginsOption) {\n return;\n }\n // build the list of plugins shipped by default on the all the notebook pages\n // this avoid explicitly loading `'all'` plugins such as the ones used\n // in JupyterLab only\n const allPlugins = JSON.parse(allPluginsOption);\n const pluginsSet = new Set();\n Object.keys(allPlugins).forEach((key) => {\n const extensionsAndPlugins = allPlugins[key];\n Object.keys(extensionsAndPlugins).forEach((plugin) => {\n const value = extensionsAndPlugins[plugin];\n if (typeof value === 'boolean' && value) {\n pluginsSet.add(plugin);\n }\n else if (Array.isArray(value)) {\n value.forEach((v) => {\n pluginsSet.add(v);\n });\n }\n });\n });\n app.restored.then(async () => {\n const plugins = await connector.list('all');\n plugins.ids.forEach(async (id) => {\n const [extension] = id.split(':');\n // load the plugin if it is built-in the notebook application explicitly\n // either included as an extension or as a plugin directly\n const hasPlugin = pluginsSet.has(extension) || pluginsSet.has(id);\n if (!hasPlugin || isDisabled(id) || id in settingRegistry.plugins) {\n return;\n }\n try {\n await settingRegistry.load(id);\n }\n catch (error) {\n console.warn(`Settings failed to load for (${id})`, error);\n }\n });\n });\n },\n};\n/**\n * A plugin to add file browser commands for the tree view.\n */\nconst openFileBrowser = {\n id: '@jupyter-notebook/tree-extension:open-file-browser',\n description: 'A plugin to add file browser commands for the tree view.',\n requires: [INotebookTree, IDefaultFileBrowser],\n autoStart: true,\n activate: (app, notebookTree, browser) => {\n const { commands } = app;\n commands.addCommand(CommandIDs.activate, {\n execute: () => {\n notebookTree.currentWidget = browser;\n },\n });\n },\n};\n/**\n * A plugin to add the file browser widget to an INotebookShell\n */\nconst notebookTreeWidget = {\n id: '@jupyter-notebook/tree-extension:widget',\n description: 'A plugin to add the file browser widget to an INotebookShell.',\n requires: [\n IDefaultFileBrowser,\n ITranslator,\n ISettingRegistry,\n IToolbarWidgetRegistry,\n IFileBrowserFactory,\n ],\n optional: [\n IRunningSessionManagers,\n ISettingEditorTracker,\n IJSONSettingEditorTracker,\n ],\n autoStart: true,\n provides: INotebookTree,\n activate: (app, browser, translator, settingRegistry, toolbarRegistry, factory, manager, settingEditorTracker, jsonSettingEditorTracker) => {\n const nbTreeWidget = new NotebookTreeWidget();\n const trans = translator.load('notebook');\n browser.title.label = trans.__('Files');\n browser.node.setAttribute('role', 'region');\n browser.node.setAttribute('aria-label', trans.__('File Browser Section'));\n browser.title.icon = folderIcon;\n nbTreeWidget.addWidget(browser);\n nbTreeWidget.tabBar.addTab(browser.title);\n nbTreeWidget.tabsMovable = false;\n toolbarRegistry.addFactory(FILE_BROWSER_FACTORY, 'uploader', (browser) => new Uploader({\n model: browser.model,\n translator,\n label: trans.__('Upload'),\n }));\n setToolbar(browser, createToolbarFactory(toolbarRegistry, settingRegistry, FILE_BROWSER_FACTORY, notebookTreeWidget.id, translator));\n if (manager) {\n const running = new RunningSessions(manager, translator);\n running.id = 'jp-running-sessions-tree';\n running.title.label = trans.__('Running');\n running.title.icon = runningIcon;\n nbTreeWidget.addWidget(running);\n nbTreeWidget.tabBar.addTab(running.title);\n }\n app.shell.add(nbTreeWidget, 'main', { rank: 100 });\n // add a separate tab for each setting editor\n [settingEditorTracker, jsonSettingEditorTracker].forEach((editorTracker) => {\n if (editorTracker) {\n editorTracker.widgetAdded.connect((_, editor) => {\n nbTreeWidget.addWidget(editor);\n nbTreeWidget.tabBar.addTab(editor.title);\n nbTreeWidget.currentWidget = editor;\n });\n }\n });\n const { tracker } = factory;\n // TODO: remove\n // Workaround to force the focus on the default file browser\n // See https://github.com/jupyterlab/jupyterlab/issues/15629 for more info\n const setCurrentToDefaultBrower = () => {\n tracker['_pool'].current = browser;\n };\n tracker.widgetAdded.connect((sender, widget) => {\n setCurrentToDefaultBrower();\n });\n setCurrentToDefaultBrower();\n return nbTreeWidget;\n },\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [\n createNew,\n fileActions,\n fileBrowserSettings,\n fileFilterCommand,\n loadPlugins,\n openFileBrowser,\n notebookTreeWidget,\n];\nexport default plugins;\n"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"7302.1028638d31004cdf54d7.js?v=1028638d31004cdf54d7","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACmF;AACzD;AACnB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA,4BAA4B,qBAAW,QAAQ,sCAAmB,UAAU,oBAAoB;AAChG;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW,QAAQ,sCAAmB,CAAC,uCAA6B,IAAI,oDAAoD,OAAO,WAAW,eAAe,mBAAmB;AAC3M,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnDA;AACA;AACkH;AAC/D;AAC2C;AAC/B;AACgB;AACe;AACxC;AAC8B;AACzC;AACK;AAC2B;AACxB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAW;AAC1B,eAAe,gCAAsB;AACrC;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA,4BAA4B,0BAAO;AACnC,4BAA4B,uBAAI,GAAG,UAAU;AAC7C;AACA,6BAA6B,yCAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,SAAS;AAC3C,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oCAAoC,0BAAO;AAC3C;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6CAAmB,EAAE,gCAAsB,EAAE,qCAAW;AACvE;AACA;AACA;AACA,qCAAqC,oBAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB,WAAW;AAC3B,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6CAAmB;AAClC,eAAe,8CAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8CAAgB;AAC/B;AACA,gBAAgB,aAAa,EAAE,wBAAU;AACzC;AACA,iCAAiC,wBAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,GAAG;AACpE;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAa,EAAE,6CAAmB;AACjD;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6CAAmB;AAC3B,QAAQ,qCAAW;AACnB,QAAQ,8CAAgB;AACxB,QAAQ,gCAAsB;AAC9B,QAAQ,6CAAmB;AAC3B;AACA;AACA,QAAQ,6CAAuB;AAC/B,QAAQ,iDAAqB;AAC7B,QAAQ,qDAAyB;AACjC;AACA;AACA,cAAc,gCAAa;AAC3B;AACA,iCAAiC,qCAAkB;AACnD;AACA;AACA;AACA;AACA,6BAA6B,sCAAU;AACvC;AACA;AACA;AACA,sFAAsF,kCAAQ;AAC9F;AACA;AACA;AACA,SAAS;AACT,QAAQ,wBAAU,UAAU,kCAAoB;AAChD;AACA,gCAAgC,qCAAe;AAC/C;AACA;AACA,iCAAiC,uCAAW;AAC5C;AACA;AACA;AACA,8CAA8C,WAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAe,OAAO,EAAC","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/tree-extension/lib/fileactions.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/tree-extension/lib/index.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { CommandToolbarButtonComponent, ReactWidget, } from '@jupyterlab/apputils';\nimport React from 'react';\nexport class FilesActionButtons {\n /**\n * The constructor of FilesActionButtons.\n * @param options\n */\n constructor(options) {\n /**\n * Triggered when the selection change in file browser.\n */\n this._onSelectionChanged = () => {\n var _a, _b, _c, _d, _e, _f;\n const selectedItems = Array.from(this._browser.selectedItems());\n const selection = selectedItems.length > 0;\n const oneFolder = selectedItems.some((item) => item.type === 'directory');\n (_a = this._widgets.get('placeholder')) === null || _a === void 0 ? void 0 : _a.setHidden(selection);\n (_b = this._widgets.get('delete')) === null || _b === void 0 ? void 0 : _b.setHidden(!selection);\n (_c = this._widgets.get('duplicate')) === null || _c === void 0 ? void 0 : _c.setHidden(!selection || oneFolder);\n (_d = this._widgets.get('download')) === null || _d === void 0 ? void 0 : _d.setHidden(!selection || oneFolder);\n (_e = this._widgets.get('open')) === null || _e === void 0 ? void 0 : _e.setHidden(!selection || oneFolder);\n (_f = this._widgets.get('rename')) === null || _f === void 0 ? void 0 : _f.setHidden(selectedItems.length !== 1);\n };\n this._widgets = new Map();\n this._browser = options.browser;\n const { commands, selectionChanged, translator } = options;\n const trans = translator.load('notebook');\n // Placeholder, when no file is selected.\n const placeholder = ReactWidget.create(React.createElement(\"div\", { key: 'placeholder' }, trans.__('Select items to perform actions on them.')));\n placeholder.id = 'fileAction-placeholder';\n this._widgets.set('placeholder', placeholder);\n // The action buttons.\n const actions = ['open', 'download', 'rename', 'duplicate', 'delete'];\n actions.forEach((action) => {\n const widget = ReactWidget.create(React.createElement(CommandToolbarButtonComponent, { key: action, commands: commands, id: `filebrowser:${action}`, args: { toolbar: true }, icon: undefined }));\n widget.id = `fileAction-${action}`;\n widget.addClass('jp-ToolbarButton');\n widget.addClass('jp-FileAction');\n this._widgets.set(action, widget);\n });\n selectionChanged.connect(this._onSelectionChanged, this);\n this._onSelectionChanged();\n }\n /**\n * Return an iterator with all the action widgets.\n */\n get widgets() {\n return this._widgets.values();\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { ICommandPalette, IToolbarWidgetRegistry, createToolbarFactory, setToolbar, } from '@jupyterlab/apputils';\nimport { PageConfig } from '@jupyterlab/coreutils';\nimport { Uploader, IDefaultFileBrowser, IFileBrowserFactory, } from '@jupyterlab/filebrowser';\nimport { ISettingRegistry } from '@jupyterlab/settingregistry';\nimport { IRunningSessionManagers, RunningSessions } from '@jupyterlab/running';\nimport { IJSONSettingEditorTracker, ISettingEditorTracker, } from '@jupyterlab/settingeditor';\nimport { ITranslator } from '@jupyterlab/translation';\nimport { caretDownIcon, folderIcon, runningIcon, } from '@jupyterlab/ui-components';\nimport { Signal } from '@lumino/signaling';\nimport { Menu, MenuBar } from '@lumino/widgets';\nimport { NotebookTreeWidget, INotebookTree } from '@jupyter-notebook/tree';\nimport { FilesActionButtons } from './fileactions';\n/**\n * The file browser factory.\n */\nconst FILE_BROWSER_FACTORY = 'FileBrowser';\n/**\n * The file browser plugin id.\n */\nconst FILE_BROWSER_PLUGIN_ID = '@jupyterlab/filebrowser-extension:browser';\n/**\n * The namespace for command IDs.\n */\nvar CommandIDs;\n(function (CommandIDs) {\n // The command to activate the filebrowser widget in tree view.\n CommandIDs.activate = 'filebrowser:activate';\n // Activate the file filter in the file browser\n CommandIDs.toggleFileFilter = 'filebrowser:toggle-file-filter';\n})(CommandIDs || (CommandIDs = {}));\n/**\n * Plugin to add extra commands to the file browser to create\n * new notebooks, files, consoles and terminals\n */\nconst createNew = {\n id: '@jupyter-notebook/tree-extension:new',\n description: 'Plugin to add extra commands to the file browser to create new notebooks, files, consoles and terminals.',\n requires: [ITranslator],\n optional: [IToolbarWidgetRegistry],\n autoStart: true,\n activate: (app, translator, toolbarRegistry) => {\n var _a;\n const { commands, serviceManager } = app;\n const trans = translator.load('notebook');\n const overflowOptions = {\n overflowMenuOptions: { isVisible: false },\n };\n const menubar = new MenuBar(overflowOptions);\n const newMenu = new Menu({ commands });\n newMenu.title.label = trans.__('New');\n newMenu.title.icon = caretDownIcon;\n menubar.addMenu(newMenu);\n const populateNewMenu = () => {\n var _a, _b;\n // create an entry per kernel spec for creating a new notebook\n const specs = (_b = (_a = serviceManager.kernelspecs) === null || _a === void 0 ? void 0 : _a.specs) === null || _b === void 0 ? void 0 : _b.kernelspecs;\n for (const name in specs) {\n newMenu.addItem({\n args: { kernelName: name, isLauncher: true },\n command: 'notebook:create-new',\n });\n }\n const baseCommands = [\n 'terminal:create-new',\n 'console:create',\n 'filebrowser:create-new-file',\n 'filebrowser:create-new-directory',\n ];\n baseCommands.forEach((command) => {\n newMenu.addItem({ command });\n });\n };\n (_a = serviceManager.kernelspecs) === null || _a === void 0 ? void 0 : _a.specsChanged.connect(() => {\n newMenu.clearItems();\n populateNewMenu();\n });\n populateNewMenu();\n if (toolbarRegistry) {\n toolbarRegistry.addFactory(FILE_BROWSER_FACTORY, 'new-dropdown', (browser) => {\n const menubar = new MenuBar(overflowOptions);\n menubar.addMenu(newMenu);\n menubar.addClass('jp-DropdownMenu');\n return menubar;\n });\n }\n },\n};\n/**\n * A plugin to add file browser actions to the file browser toolbar.\n */\nconst fileActions = {\n id: '@jupyter-notebook/tree-extension:file-actions',\n description: 'A plugin to add file browser actions to the file browser toolbar.',\n autoStart: true,\n requires: [IDefaultFileBrowser, IToolbarWidgetRegistry, ITranslator],\n activate: (app, browser, toolbarRegistry, translator) => {\n // TODO: use upstream signal when available to detect selection changes\n // https://github.com/jupyterlab/jupyterlab/issues/14598\n const selectionChanged = new Signal(browser);\n const methods = [\n '_selectItem',\n '_handleMultiSelect',\n 'handleFileSelect',\n ];\n methods.forEach((method) => {\n const original = browser['listing'][method];\n browser['listing'][method] = (...args) => {\n original.call(browser['listing'], ...args);\n selectionChanged.emit(void 0);\n };\n });\n browser.model.pathChanged.connect(() => {\n selectionChanged.emit(void 0);\n });\n // Create a toolbar item that adds buttons to the file browser toolbar\n // to perform actions on the files\n const { commands } = app;\n const fileActions = new FilesActionButtons({\n commands,\n browser,\n selectionChanged,\n translator,\n });\n for (const widget of fileActions.widgets) {\n toolbarRegistry.addFactory(FILE_BROWSER_FACTORY, widget.id, () => widget);\n }\n },\n};\n/**\n * A plugin to set the default file browser settings.\n */\nconst fileBrowserSettings = {\n id: '@jupyter-notebook/tree-extension:settings',\n description: 'Set up the default file browser settings',\n requires: [IDefaultFileBrowser],\n optional: [ISettingRegistry],\n autoStart: true,\n activate: (app, browser, settingRegistry) => {\n // Default config for notebook.\n // This is a different set of defaults than JupyterLab.\n const defaultFileBrowserConfig = {\n navigateToCurrentDirectory: false,\n singleClickNavigation: true,\n showLastModifiedColumn: true,\n showFileSizeColumn: true,\n showHiddenFiles: false,\n showFileCheckboxes: true,\n sortNotebooksFirst: true,\n showFullPath: false,\n };\n // Apply defaults on plugin activation\n let key;\n for (key in defaultFileBrowserConfig) {\n browser[key] = defaultFileBrowserConfig[key];\n }\n if (settingRegistry) {\n void settingRegistry.load(FILE_BROWSER_PLUGIN_ID).then((settings) => {\n function onSettingsChanged(settings) {\n let key;\n for (key in defaultFileBrowserConfig) {\n const value = settings.get(key).user;\n // only set the setting if it is defined by the user\n if (value !== undefined) {\n browser[key] = value;\n }\n }\n }\n settings.changed.connect(onSettingsChanged);\n onSettingsChanged(settings);\n });\n }\n },\n};\n/**\n * A plugin to add the file filter toggle command to the palette\n */\nconst fileFilterCommand = {\n id: '@jupyter-notebook/tree-extension:file-filter-command',\n description: 'A plugin to add file filter command to the palette.',\n autoStart: true,\n optional: [ICommandPalette],\n activate: (app, palette) => {\n if (palette) {\n palette.addItem({\n command: CommandIDs.toggleFileFilter,\n category: 'File Browser',\n });\n }\n },\n};\n/**\n * Plugin to load the default plugins that are loaded on all the Notebook pages\n * (tree, edit, view, etc.) so they are visible in the settings editor.\n */\nconst loadPlugins = {\n id: '@jupyter-notebook/tree-extension:load-plugins',\n description: 'Plugin to load the default plugins that are loaded on all the Notebook pages (tree, edit, view, etc.) so they are visible in the settings editor.',\n autoStart: true,\n requires: [ISettingRegistry],\n activate(app, settingRegistry) {\n const { isDisabled } = PageConfig.Extension;\n const connector = settingRegistry.connector;\n const allPluginsOption = PageConfig.getOption('allPlugins');\n if (!allPluginsOption) {\n return;\n }\n // build the list of plugins shipped by default on the all the notebook pages\n // this avoid explicitly loading `'all'` plugins such as the ones used\n // in JupyterLab only\n const allPlugins = JSON.parse(allPluginsOption);\n const pluginsSet = new Set();\n Object.keys(allPlugins).forEach((key) => {\n const extensionsAndPlugins = allPlugins[key];\n Object.keys(extensionsAndPlugins).forEach((plugin) => {\n const value = extensionsAndPlugins[plugin];\n if (typeof value === 'boolean' && value) {\n pluginsSet.add(plugin);\n }\n else if (Array.isArray(value)) {\n value.forEach((v) => {\n pluginsSet.add(v);\n });\n }\n });\n });\n app.restored.then(async () => {\n const plugins = await connector.list('all');\n plugins.ids.forEach(async (id) => {\n const [extension] = id.split(':');\n // load the plugin if it is built-in the notebook application explicitly\n // either included as an extension or as a plugin directly\n const hasPlugin = pluginsSet.has(extension) || pluginsSet.has(id);\n if (!hasPlugin || isDisabled(id) || id in settingRegistry.plugins) {\n return;\n }\n try {\n await settingRegistry.load(id);\n }\n catch (error) {\n console.warn(`Settings failed to load for (${id})`, error);\n }\n });\n });\n },\n};\n/**\n * A plugin to add file browser commands for the tree view.\n */\nconst openFileBrowser = {\n id: '@jupyter-notebook/tree-extension:open-file-browser',\n description: 'A plugin to add file browser commands for the tree view.',\n requires: [INotebookTree, IDefaultFileBrowser],\n autoStart: true,\n activate: (app, notebookTree, browser) => {\n const { commands } = app;\n commands.addCommand(CommandIDs.activate, {\n execute: () => {\n notebookTree.currentWidget = browser;\n },\n });\n },\n};\n/**\n * A plugin to add the file browser widget to an INotebookShell\n */\nconst notebookTreeWidget = {\n id: '@jupyter-notebook/tree-extension:widget',\n description: 'A plugin to add the file browser widget to an INotebookShell.',\n requires: [\n IDefaultFileBrowser,\n ITranslator,\n ISettingRegistry,\n IToolbarWidgetRegistry,\n IFileBrowserFactory,\n ],\n optional: [\n IRunningSessionManagers,\n ISettingEditorTracker,\n IJSONSettingEditorTracker,\n ],\n autoStart: true,\n provides: INotebookTree,\n activate: (app, browser, translator, settingRegistry, toolbarRegistry, factory, manager, settingEditorTracker, jsonSettingEditorTracker) => {\n const nbTreeWidget = new NotebookTreeWidget();\n const trans = translator.load('notebook');\n browser.title.label = trans.__('Files');\n browser.node.setAttribute('role', 'region');\n browser.node.setAttribute('aria-label', trans.__('File Browser Section'));\n browser.title.icon = folderIcon;\n nbTreeWidget.addWidget(browser);\n nbTreeWidget.tabBar.addTab(browser.title);\n nbTreeWidget.tabsMovable = false;\n toolbarRegistry.addFactory(FILE_BROWSER_FACTORY, 'uploader', (browser) => new Uploader({\n model: browser.model,\n translator,\n label: trans.__('Upload'),\n }));\n setToolbar(browser, createToolbarFactory(toolbarRegistry, settingRegistry, FILE_BROWSER_FACTORY, notebookTreeWidget.id, translator));\n if (manager) {\n const running = new RunningSessions(manager, translator);\n running.id = 'jp-running-sessions-tree';\n running.title.label = trans.__('Running');\n running.title.icon = runningIcon;\n nbTreeWidget.addWidget(running);\n nbTreeWidget.tabBar.addTab(running.title);\n }\n app.shell.add(nbTreeWidget, 'main', { rank: 100 });\n // add a separate tab for each setting editor\n [settingEditorTracker, jsonSettingEditorTracker].forEach((editorTracker) => {\n if (editorTracker) {\n editorTracker.widgetAdded.connect((_, editor) => {\n nbTreeWidget.addWidget(editor);\n nbTreeWidget.tabBar.addTab(editor.title);\n nbTreeWidget.currentWidget = editor;\n });\n }\n });\n const { tracker } = factory;\n // TODO: remove\n // Workaround to force the focus on the default file browser\n // See https://github.com/jupyterlab/jupyterlab/issues/15629 for more info\n const setCurrentToDefaultBrower = () => {\n tracker['_pool'].current = browser;\n };\n tracker.widgetAdded.connect((sender, widget) => {\n setCurrentToDefaultBrower();\n });\n setCurrentToDefaultBrower();\n return nbTreeWidget;\n },\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [\n createNew,\n fileActions,\n fileBrowserSettings,\n fileFilterCommand,\n loadPlugins,\n openFileBrowser,\n notebookTreeWidget,\n];\nexport default plugins;\n"],"names":[],"sourceRoot":""}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- (self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] = self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] || []).push([[8218],{
2
+ (self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] = self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] || []).push([[79],{
3
3
 
4
4
  /***/ 68218:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -2103,4 +2103,4 @@ var createViewBox = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MOD
2103
2103
  /***/ })
2104
2104
 
2105
2105
  }]);
2106
- //# sourceMappingURL=8218.983a3a002f016180aaab.js.map?v=983a3a002f016180aaab
2106
+ //# sourceMappingURL=79.d9f6943863b1ed92fd09.js.map?v=d9f6943863b1ed92fd09