notebook 7.5.0b0__py3-none-any.whl → 7.5.0b1__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 (116) hide show
  1. notebook/_version.py +1 -1
  2. notebook/static/{1650.0639a1ecc09e1967b98a.js → 1650.47cd9e070f08139f55e8.js} +4 -4
  3. notebook/static/{1650.0639a1ecc09e1967b98a.js.map → 1650.47cd9e070f08139f55e8.js.map} +1 -1
  4. notebook/static/{1684.ddea5a98d3e5c7a2d766.js → 1684.24d03a35e24c2674a10d.js} +5 -5
  5. notebook/static/{1684.ddea5a98d3e5c7a2d766.js.map → 1684.24d03a35e24c2674a10d.js.map} +1 -1
  6. notebook/static/{1911.cfe3314fd3a9b879389c.js → 1911.4abfc92072fe962c3001.js} +4 -4
  7. notebook/static/{1911.cfe3314fd3a9b879389c.js.map → 1911.4abfc92072fe962c3001.js.map} +1 -1
  8. notebook/static/{3146.27e042b4ffc90ddd0583.js → 3146.5035568d8a8d4f5b62aa.js} +3 -3
  9. notebook/static/{3146.27e042b4ffc90ddd0583.js.map → 3146.5035568d8a8d4f5b62aa.js.map} +1 -1
  10. notebook/static/{3230.29b02fdb14e1bdf52d07.js → 3230.8eb241da192e3549ceb4.js} +2 -2
  11. notebook/static/{3230.29b02fdb14e1bdf52d07.js.map → 3230.8eb241da192e3549ceb4.js.map} +1 -1
  12. notebook/static/{342.a3e25dab93d954ead72e.js → 342.9050eb7b5e4c0ec2b7c0.js} +3 -3
  13. notebook/static/{342.a3e25dab93d954ead72e.js.map → 342.9050eb7b5e4c0ec2b7c0.js.map} +1 -1
  14. notebook/static/{369.5cecdf753e161a6bb7fe.js → 369.df273024816a9ffc4920.js} +3 -3
  15. notebook/static/{369.5cecdf753e161a6bb7fe.js.map → 369.df273024816a9ffc4920.js.map} +1 -1
  16. notebook/static/{3768.018bda823b05290265da.js → 3768.8553ad59deca2c0788a4.js} +19 -19
  17. notebook/static/{3768.018bda823b05290265da.js.map → 3768.8553ad59deca2c0788a4.js.map} +1 -1
  18. notebook/static/{4058.55750d1f42b20c8b59d5.js → 4058.b1c0e96cfa5839e4bb03.js} +2 -2
  19. notebook/static/{4058.55750d1f42b20c8b59d5.js.map → 4058.b1c0e96cfa5839e4bb03.js.map} +1 -1
  20. notebook/static/{4135.0650cd239b6134d4bbee.js → 4135.b90bf12dcb5f9f4581a6.js} +2 -2
  21. notebook/static/{4135.0650cd239b6134d4bbee.js.map → 4135.b90bf12dcb5f9f4581a6.js.map} +1 -1
  22. notebook/static/{4382.80dd015e69164cafe39a.js → 4382.47f2a8979ba66b97d77a.js} +3 -3
  23. notebook/static/{4382.80dd015e69164cafe39a.js.map → 4382.47f2a8979ba66b97d77a.js.map} +1 -1
  24. notebook/static/{4406.c03d078529c4b150677b.js → 4406.63aff226276fb845ba70.js} +2 -2
  25. notebook/static/{4406.c03d078529c4b150677b.js.map → 4406.63aff226276fb845ba70.js.map} +1 -1
  26. notebook/static/{4645.5464810408d3f5a40db1.js → 4645.cdfe90e2cafd62fb0e30.js} +5 -5
  27. notebook/static/{4645.5464810408d3f5a40db1.js.map → 4645.cdfe90e2cafd62fb0e30.js.map} +1 -1
  28. notebook/static/{4682.da8685e8de4873be9af2.js → 4682.fd70eeab2ecc3672afb2.js} +3 -3
  29. notebook/static/{4682.da8685e8de4873be9af2.js.map → 4682.fd70eeab2ecc3672afb2.js.map} +1 -1
  30. notebook/static/{4837.5c3ee4ce0bf1bc03628a.js → 4837.6235a4b53edc3ad69d56.js} +3 -3
  31. notebook/static/{4837.5c3ee4ce0bf1bc03628a.js.map → 4837.6235a4b53edc3ad69d56.js.map} +1 -1
  32. notebook/static/{1225.a84f9ad316be9c1538e1.js → 4885.868deb9c02a6d9584787.js} +4 -4
  33. notebook/static/{1225.a84f9ad316be9c1538e1.js.map → 4885.868deb9c02a6d9584787.js.map} +1 -1
  34. notebook/static/{5135.0714348d8c88f18b7316.js → 5135.a7ae02f35f62138f8999.js} +11 -11
  35. notebook/static/{5135.0714348d8c88f18b7316.js.map → 5135.a7ae02f35f62138f8999.js.map} +1 -1
  36. notebook/static/{5573.8f9c21fe6dc9c281ffa6.js → 5573.c63ea271a8e119e6e756.js} +17 -17
  37. notebook/static/{5573.8f9c21fe6dc9c281ffa6.js.map → 5573.c63ea271a8e119e6e756.js.map} +1 -1
  38. notebook/static/{5601.72a27257e17a85b6ddb9.js → 5601.6731d6ea505349764a2b.js} +5 -5
  39. notebook/static/{5601.72a27257e17a85b6ddb9.js.map → 5601.6731d6ea505349764a2b.js.map} +1 -1
  40. notebook/static/{2755.174636f4594b13074ee1.js → 6295.c983be7744e79e17a279.js} +2 -2
  41. notebook/static/{2755.174636f4594b13074ee1.js.map → 6295.c983be7744e79e17a279.js.map} +1 -1
  42. notebook/static/{6345.0aaa32908554ec9d9a57.js → 6345.5eaacb8b188951d7ba84.js} +5 -5
  43. notebook/static/{6345.0aaa32908554ec9d9a57.js.map → 6345.5eaacb8b188951d7ba84.js.map} +1 -1
  44. notebook/static/{652.b6b5e262205ab840113f.js → 652.038f4d6ab352626c579c.js} +3 -3
  45. notebook/static/{652.b6b5e262205ab840113f.js.map → 652.038f4d6ab352626c579c.js.map} +1 -1
  46. notebook/static/{7302.bd34311fd4b17f4ef111.js → 7302.f3c1e228973028397955.js} +19 -19
  47. notebook/static/{7302.bd34311fd4b17f4ef111.js.map → 7302.f3c1e228973028397955.js.map} +1 -1
  48. notebook/static/{7906.6d53fc208b95642ac413.js → 7906.6f889e8a2c4e92249f6b.js} +3 -3
  49. notebook/static/{7906.6d53fc208b95642ac413.js.map → 7906.6f889e8a2c4e92249f6b.js.map} +1 -1
  50. notebook/static/{8579.2d5ca9a7e59650b99814.js → 8579.85445d32ba835038fcbf.js} +13 -13
  51. notebook/static/{8579.2d5ca9a7e59650b99814.js.map → 8579.85445d32ba835038fcbf.js.map} +1 -1
  52. notebook/static/{8781.0f688ed8f01d2a5f2eea.js → 8781.0f96c09a392269f585f0.js} +64 -64
  53. notebook/static/{8781.0f688ed8f01d2a5f2eea.js.map → 8781.0f96c09a392269f585f0.js.map} +1 -1
  54. notebook/static/{8875.11242381caf56431f174.js → 8875.4fd628996831b2c1a4db.js} +4 -4
  55. notebook/static/{8875.11242381caf56431f174.js.map → 8875.4fd628996831b2c1a4db.js.map} +1 -1
  56. notebook/static/{9068.87c7e9ee6d234f105e47.js → 9068.f602bd0a1e30d1dadeca.js} +3 -3
  57. notebook/static/{9068.87c7e9ee6d234f105e47.js.map → 9068.f602bd0a1e30d1dadeca.js.map} +1 -1
  58. notebook/static/{9380.5482d198e94a457a4c5e.js → 9380.ec8f11f37de465111fbb.js} +5 -5
  59. notebook/static/{9380.5482d198e94a457a4c5e.js.map → 9380.ec8f11f37de465111fbb.js.map} +1 -1
  60. notebook/static/{9619.8568577b14d9b7dafc06.js → 9619.2e1195dd9509c129a67a.js} +3 -3
  61. notebook/static/{9619.8568577b14d9b7dafc06.js.map → 9619.2e1195dd9509c129a67a.js.map} +1 -1
  62. notebook/static/main.2fb55466e1071169814e.js +1201 -0
  63. notebook/static/main.2fb55466e1071169814e.js.map +1 -0
  64. notebook/static/{notebook_core.2af2e7bf7a2e015b1d0c.js → notebook_core.b82f7abeaea916e23d25.js} +1889 -1221
  65. notebook/static/{notebook_core.2af2e7bf7a2e015b1d0c.js.map → notebook_core.b82f7abeaea916e23d25.js.map} +1 -1
  66. notebook/static/third-party-licenses.json +105 -105
  67. notebook/templates/consoles.html +1 -1
  68. notebook/templates/edit.html +1 -1
  69. notebook/templates/error.html +1 -1
  70. notebook/templates/notebooks.html +1 -1
  71. notebook/templates/terminals.html +1 -1
  72. notebook/templates/tree.html +1 -1
  73. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/package.json.orig +14 -14
  74. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/shell.json +1 -1
  75. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/documentsearch-extension/package.json.orig +4 -4
  76. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/help-extension/package.json.orig +6 -6
  77. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/package.json.orig +9 -9
  78. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/tree-extension/package.json.orig +15 -15
  79. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/package.json +11 -11
  80. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/schemas/@jupyter-notebook/lab-extension/package.json.orig +10 -10
  81. notebook-7.5.0b1.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/171.afcda7b996a049a3a908.js +1 -0
  82. notebook-7.5.0b0.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/568.ff959098695753d26074.js → notebook-7.5.0b1.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/568.54b16ed643b5ea42c798.js +1 -1
  83. notebook-7.5.0b1.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/928.fa9e06dd7b9b5d61d3fb.js +1 -0
  84. notebook-7.5.0b1.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/remoteEntry.77e5d91d3e70edfa87c8.js +1 -0
  85. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/third-party-licenses.json +2 -2
  86. {notebook-7.5.0b0.dist-info → notebook-7.5.0b1.dist-info}/METADATA +2 -2
  87. {notebook-7.5.0b0.dist-info → notebook-7.5.0b1.dist-info}/RECORD +111 -111
  88. notebook/static/main.94a810982ab32a351589.js +0 -1201
  89. notebook/static/main.94a810982ab32a351589.js.map +0 -1
  90. notebook-7.5.0b0.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/74.a988dc339f627dd01013.js +0 -1
  91. notebook-7.5.0b0.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/928.844843140389d97f407a.js +0 -1
  92. notebook-7.5.0b0.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/remoteEntry.1257c2dbcfda653213ad.js +0 -1
  93. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/etc/jupyter/jupyter_server_config.d/notebook.json +0 -0
  94. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/applications/jupyter-notebook.desktop +0 -0
  95. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/icons/hicolor/scalable/apps/notebook.svg +0 -0
  96. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/menus.json +0 -0
  97. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/pages.json +0 -0
  98. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/shortcuts.json +0 -0
  99. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/title.json +0 -0
  100. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/top.json +0 -0
  101. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/zen.json +0 -0
  102. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/help-extension/open.json +0 -0
  103. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/checkpoints.json +0 -0
  104. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/edit-notebook-metadata.json +0 -0
  105. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/full-width-notebook.json +0 -0
  106. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/kernel-logo.json +0 -0
  107. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/scroll-output.json +0 -0
  108. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/tree-extension/file-actions.json +0 -0
  109. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/tree-extension/widget.json +0 -0
  110. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/schemas/@jupyter-notebook/lab-extension/interface-switcher.json +0 -0
  111. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/schemas/@jupyter-notebook/lab-extension/launch-tree.json +0 -0
  112. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/93.eae3497dd223d842d198.js +0 -0
  113. {notebook-7.5.0b0.data → notebook-7.5.0b1.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/style.js +0 -0
  114. {notebook-7.5.0b0.dist-info → notebook-7.5.0b1.dist-info}/WHEEL +0 -0
  115. {notebook-7.5.0b0.dist-info → notebook-7.5.0b1.dist-info}/entry_points.txt +0 -0
  116. {notebook-7.5.0b0.dist-info → notebook-7.5.0b1.dist-info}/licenses/LICENSE +0 -0
@@ -12,26 +12,26 @@ __webpack_require__.d(__webpack_exports__, {
12
12
  "default": () => (/* binding */ lib)
13
13
  });
14
14
 
15
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/apputils@~4.6.0-beta.0 (singleton) (fallback: ../node_modules/@jupyterlab/apputils/lib/index.js)
16
- var index_js_ = __webpack_require__(10498);
17
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/coreutils@~6.5.0-beta.0 (singleton) (fallback: ../node_modules/@jupyterlab/coreutils/lib/index.js)
18
- var lib_index_js_ = __webpack_require__(14286);
19
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/filebrowser@~4.5.0-beta.0 (singleton) (fallback: ../node_modules/@jupyterlab/filebrowser/lib/index.js)
20
- var filebrowser_lib_index_js_ = __webpack_require__(77015);
21
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/settingregistry@~4.5.0-beta.0 (singleton) (fallback: ../node_modules/@jupyterlab/settingregistry/lib/index.js)
22
- var settingregistry_lib_index_js_ = __webpack_require__(10378);
23
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/running@^4.5.0-beta.0 (strict) (fallback: ../node_modules/@jupyterlab/running/lib/index.js)
24
- var running_lib_index_js_ = __webpack_require__(53373);
25
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/settingeditor@~4.5.0-beta.0 (singleton) (fallback: ../node_modules/@jupyterlab/settingeditor/lib/index.js)
26
- var settingeditor_lib_index_js_ = __webpack_require__(68793);
27
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/translation@~4.5.0-beta.0 (singleton) (fallback: ../node_modules/@jupyterlab/translation/lib/index.js)
28
- var translation_lib_index_js_ = __webpack_require__(41719);
29
- // EXTERNAL MODULE: consume shared module (default) @jupyterlab/ui-components@~4.5.0-beta.0 (singleton) (fallback: ../node_modules/@jupyterlab/ui-components/lib/index.js)
30
- var ui_components_lib_index_js_ = __webpack_require__(25175);
15
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/apputils@~4.6.0-beta.1 (singleton) (fallback: ../node_modules/@jupyterlab/apputils/lib/index.js)
16
+ var index_js_ = __webpack_require__(63639);
17
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/coreutils@~6.5.0-beta.1 (singleton) (fallback: ../node_modules/@jupyterlab/coreutils/lib/index.js)
18
+ var lib_index_js_ = __webpack_require__(59460);
19
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/filebrowser@~4.5.0-beta.1 (singleton) (fallback: ../node_modules/@jupyterlab/filebrowser/lib/index.js)
20
+ var filebrowser_lib_index_js_ = __webpack_require__(99221);
21
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/settingregistry@~4.5.0-beta.1 (singleton) (fallback: ../node_modules/@jupyterlab/settingregistry/lib/index.js)
22
+ var settingregistry_lib_index_js_ = __webpack_require__(66300);
23
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/running@^4.5.0-beta.1 (strict) (fallback: ../node_modules/@jupyterlab/running/lib/index.js)
24
+ var running_lib_index_js_ = __webpack_require__(52926);
25
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/settingeditor@~4.5.0-beta.1 (singleton) (fallback: ../node_modules/@jupyterlab/settingeditor/lib/index.js)
26
+ var settingeditor_lib_index_js_ = __webpack_require__(59931);
27
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/translation@~4.5.0-beta.1 (singleton) (fallback: ../node_modules/@jupyterlab/translation/lib/index.js)
28
+ var translation_lib_index_js_ = __webpack_require__(97457);
29
+ // EXTERNAL MODULE: consume shared module (default) @jupyterlab/ui-components@~4.5.0-beta.1 (singleton) (fallback: ../node_modules/@jupyterlab/ui-components/lib/index.js)
30
+ var ui_components_lib_index_js_ = __webpack_require__(79492);
31
31
  // EXTERNAL MODULE: consume shared module (default) @lumino/widgets@~2.7.1 (singleton) (fallback: ../node_modules/@lumino/widgets/dist/index.es6.js)
32
32
  var index_es6_js_ = __webpack_require__(60920);
33
- // EXTERNAL MODULE: consume shared module (default) @jupyter-notebook/tree@~7.5.0-beta.0 (singleton) (fallback: ../packages/tree/lib/index.js)
34
- var tree_lib_index_js_ = __webpack_require__(73193);
33
+ // EXTERNAL MODULE: consume shared module (default) @jupyter-notebook/tree@~7.5.0-beta.1 (singleton) (fallback: ../packages/tree/lib/index.js)
34
+ var tree_lib_index_js_ = __webpack_require__(70197);
35
35
  // EXTERNAL MODULE: consume shared module (default) react@~18.2.0 (singleton) (fallback: ../node_modules/react/index.js)
36
36
  var react_index_js_ = __webpack_require__(78156);
37
37
  var react_index_js_default = /*#__PURE__*/__webpack_require__.n(react_index_js_);
@@ -423,4 +423,4 @@ const plugins = [
423
423
  /***/ })
424
424
 
425
425
  }]);
426
- //# sourceMappingURL=7302.bd34311fd4b17f4ef111.js.map?v=bd34311fd4b17f4ef111
426
+ //# sourceMappingURL=7302.f3c1e228973028397955.js.map?v=f3c1e228973028397955
@@ -1 +1 @@
1
- {"version":3,"file":"7302.bd34311fd4b17f4ef111.js?v=bd34311fd4b17f4ef111","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;AACpC;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,qBAAO;AACnC,4BAA4B,kBAAI,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,qBAAO;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,gBAAgB,WAAW;AAC3B,gBAAgB,mBAAmB;AACnC,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 { 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 // 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 { selectionChanged } = browser;\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.f3c1e228973028397955.js?v=f3c1e228973028397955","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;AACpC;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,qBAAO;AACnC,4BAA4B,kBAAI,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,qBAAO;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,gBAAgB,WAAW;AAC3B,gBAAgB,mBAAmB;AACnC,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 { 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 // 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 { selectionChanged } = browser;\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":""}
@@ -8,9 +8,9 @@ __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_documentsearch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38458);
11
+ /* harmony import */ var _jupyterlab_documentsearch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78590);
12
12
  /* harmony import */ var _jupyterlab_documentsearch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_documentsearch__WEBPACK_IMPORTED_MODULE_0__);
13
- /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9829);
13
+ /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(93115);
14
14
  /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_1__);
15
15
 
16
16
 
@@ -61,4 +61,4 @@ const plugins = [notebookShellWidgetListener];
61
61
  /***/ })
62
62
 
63
63
  }]);
64
- //# sourceMappingURL=7906.6d53fc208b95642ac413.js.map?v=6d53fc208b95642ac413
64
+ //# sourceMappingURL=7906.6f889e8a2c4e92249f6b.js.map?v=6f889e8a2c4e92249f6b
@@ -1 +1 @@
1
- {"version":3,"file":"7906.6d53fc208b95642ac413.js?v=6d53fc208b95642ac413","mappings":";;;;;;;;;;;;;;AAAqE;AACN;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yEAAc,EAAE,+EAAuB;AACtD;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,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iEAAe,OAAO,EAAC","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/documentsearch-extension/lib/index.js"],"sourcesContent":["import { ISearchProviderRegistry } from '@jupyterlab/documentsearch';\nimport { INotebookShell } from '@jupyter-notebook/application';\nconst SEARCHABLE_CLASS = 'jp-mod-searchable';\n/**\n * A plugin to add document search functionalities.\n */\nconst notebookShellWidgetListener = {\n id: '@jupyter-notebook/documentsearch-extension:notebookShellWidgetListener',\n requires: [INotebookShell, ISearchProviderRegistry],\n autoStart: true,\n description: 'A plugin to add document search functionalities',\n activate: (app, notebookShell, registry) => {\n // If a given widget is searchable, apply the searchable class.\n // If it's not searchable, remove the class.\n const transformWidgetSearchability = (widget) => {\n if (!widget) {\n return;\n }\n if (registry.hasProvider(widget)) {\n widget.addClass(SEARCHABLE_CLASS);\n }\n else {\n widget.removeClass(SEARCHABLE_CLASS);\n }\n };\n // Update searchability of the active widget when the registry\n // changes, in case a provider for the current widget was added\n // or removed\n registry.changed.connect(() => transformWidgetSearchability(notebookShell.currentWidget));\n // Apply the searchable class only to the active widget if it is actually\n // searchable. Remove the searchable class from a widget when it's\n // no longer active.\n notebookShell.currentChanged.connect((_, args) => {\n if (notebookShell.currentWidget) {\n transformWidgetSearchability(notebookShell.currentWidget);\n }\n });\n },\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [notebookShellWidgetListener];\nexport default plugins;\n"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"7906.6f889e8a2c4e92249f6b.js?v=6f889e8a2c4e92249f6b","mappings":";;;;;;;;;;;;;;AAAqE;AACN;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yEAAc,EAAE,+EAAuB;AACtD;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,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iEAAe,OAAO,EAAC","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/documentsearch-extension/lib/index.js"],"sourcesContent":["import { ISearchProviderRegistry } from '@jupyterlab/documentsearch';\nimport { INotebookShell } from '@jupyter-notebook/application';\nconst SEARCHABLE_CLASS = 'jp-mod-searchable';\n/**\n * A plugin to add document search functionalities.\n */\nconst notebookShellWidgetListener = {\n id: '@jupyter-notebook/documentsearch-extension:notebookShellWidgetListener',\n requires: [INotebookShell, ISearchProviderRegistry],\n autoStart: true,\n description: 'A plugin to add document search functionalities',\n activate: (app, notebookShell, registry) => {\n // If a given widget is searchable, apply the searchable class.\n // If it's not searchable, remove the class.\n const transformWidgetSearchability = (widget) => {\n if (!widget) {\n return;\n }\n if (registry.hasProvider(widget)) {\n widget.addClass(SEARCHABLE_CLASS);\n }\n else {\n widget.removeClass(SEARCHABLE_CLASS);\n }\n };\n // Update searchability of the active widget when the registry\n // changes, in case a provider for the current widget was added\n // or removed\n registry.changed.connect(() => transformWidgetSearchability(notebookShell.currentWidget));\n // Apply the searchable class only to the active widget if it is actually\n // searchable. Remove the searchable class from a widget when it's\n // no longer active.\n notebookShell.currentChanged.connect((_, args) => {\n if (notebookShell.currentWidget) {\n transformWidgetSearchability(notebookShell.currentWidget);\n }\n });\n },\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [notebookShellWidgetListener];\nexport default plugins;\n"],"names":[],"sourceRoot":""}
@@ -8,29 +8,29 @@ __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__(9268);
11
+ /* harmony import */ var _jupyterlab_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(83743);
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_apputils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10498);
13
+ /* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63639);
14
14
  /* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__);
15
- /* harmony import */ var _jupyterlab_console__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51734);
15
+ /* harmony import */ var _jupyterlab_console__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51430);
16
16
  /* harmony import */ var _jupyterlab_console__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_console__WEBPACK_IMPORTED_MODULE_2__);
17
- /* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14286);
17
+ /* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59460);
18
18
  /* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_3__);
19
- /* harmony import */ var _jupyterlab_docmanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(71574);
19
+ /* harmony import */ var _jupyterlab_docmanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44704);
20
20
  /* harmony import */ var _jupyterlab_docmanager__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_docmanager__WEBPACK_IMPORTED_MODULE_4__);
21
- /* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(35915);
21
+ /* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(99587);
22
22
  /* harmony import */ var _jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_docregistry__WEBPACK_IMPORTED_MODULE_5__);
23
- /* harmony import */ var _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(68147);
23
+ /* harmony import */ var _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(97958);
24
24
  /* harmony import */ var _jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_mainmenu__WEBPACK_IMPORTED_MODULE_6__);
25
- /* harmony import */ var _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(6129);
25
+ /* harmony import */ var _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(36157);
26
26
  /* harmony import */ var _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_7__);
27
- /* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(10378);
27
+ /* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(66300);
28
28
  /* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_8__);
29
- /* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(41719);
29
+ /* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(97457);
30
30
  /* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_9__);
31
- /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(9829);
31
+ /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(93115);
32
32
  /* harmony import */ var _jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_jupyter_notebook_application__WEBPACK_IMPORTED_MODULE_10__);
33
- /* harmony import */ var _jupyter_notebook_ui_components__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(35918);
33
+ /* harmony import */ var _jupyter_notebook_ui_components__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(41783);
34
34
  /* harmony import */ var _jupyter_notebook_ui_components__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_jupyter_notebook_ui_components__WEBPACK_IMPORTED_MODULE_11__);
35
35
  /* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(5406);
36
36
  /* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_12__);
@@ -1023,4 +1023,4 @@ const plugins = [
1023
1023
  /***/ })
1024
1024
 
1025
1025
  }]);
1026
- //# sourceMappingURL=8579.2d5ca9a7e59650b99814.js.map?v=2d5ca9a7e59650b99814
1026
+ //# sourceMappingURL=8579.85445d32ba835038fcbf.js.map?v=85445d32ba835038fcbf
@@ -1 +1 @@
1
- {"version":3,"file":"8579.2d5ca9a7e59650b99814.js?v=2d5ca9a7e59650b99814","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAC8G;AACyB;AACpF;AACiB;AACI;AACf;AACR;AAC+F;AACjF;AACO;AACwF;AAChG;AACV;AACoB;AACzB;AAC/C;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;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,+DAAU,EAAE,gEAAW;AACtC;AACA,6BAA6B,uEAAW;AACxC,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,+DAAU;AACxB;AACA,6BAA6B,uEAAW;AACxC,+BAA+B,SAAS;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6DAAU;AAClC;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA,yBAAyB,oDAAM,GAAG,MAAM;AACxC,QAAQ,yEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qCAAqC,SAAS;AAC9C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAO,EAAE,oEAAgB;AACxC,eAAe,yEAAgB;AAC/B;AACA,gBAAgB,wBAAwB;AACxC;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,yBAAyB;AACzB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,0BAA0B,gCAAgC;AAC1D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2DAAS;AACxB;AACA;AACA;AACA;AACA,qBAAqB,6DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oDAAM;AAC/B,kBAAkB,0DAAQ;AAC1B;AACA,sCAAsC,WAAW;AACjD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gEAAW;AAC1B,eAAe,iEAAe;AAC9B;AACA;AACA,wBAAwB,6DAAU;AAClC;AACA;AACA;AACA,4BAA4B,yDAAM;AAClC,aAAa;AACb,SAAS;AACT,qBAAqB,6DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yDAAM;AACtC;AACA,aAAa;AACb,SAAS;AACT;AACA,8BAA8B,+CAA+C;AAC7E,8BAA8B,gDAAgD;AAC9E;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,+EAAmB;AACjC;AACA,eAAe,qFAAyB;AACxC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oEAAe;AAC7B;AACA,6BAA6B,uEAAW;AACxC,+BAA+B,UAAU;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uEAAmB;AACjC;AACA,QAAQ,oEAAgB;AACxB,QAAQ,oEAAgB;AACxB,QAAQ,4DAAU;AAClB,QAAQ,mEAAe;AACvB,QAAQ,gEAAW;AACnB,QAAQ,+EAAmB;AAC3B;AACA;AACA,mFAAmF,mEAAc;AACjG,2GAA2G,qFAAyB;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA,wCAAwC,6DAAU;AAClD;AACA,oCAAoC,yDAAM;AAC1C;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA,mBAAmB,sEAAkB;AACrC,8BAA8B,6EAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0EAAc;AAC5B,eAAe,yEAAgB;AAC/B;AACA,mCAAmC,yEAAa;AAChD,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,+DAAa;AAC3B;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mEAAkB;AAC7C;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,+DAAU;AACxB;AACA,6BAA6B,uEAAW;AACxC,+BAA+B,WAAW;AAC1C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAc;AAC7B;AACA;AACA;AACA,mCAAmC,6DAAY;AAC/C;AACA;AACA,qCAAqC,0DAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mEAAc;AACtD;AACA,qCAAqC,0DAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAc,EAAE,gEAAW;AAC1C,eAAe,oEAAgB,EAAE,4DAAO,EAAE,wEAAsB;AAChE;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA,mCAAmC,oDAAM,GAAG,MAAM;AAClD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iDAAiD,mEAAc;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,mBAAmB;AACnF,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oEAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAgB;AACxC;AACA;AACA;AACA;AACA,qCAAqC,0DAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,MAAM,GAAG,QAAQ;AACzD;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAc,EAAE,gEAAW;AAC1C,eAAe,yEAAgB,EAAE,iEAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;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,8BAA8B,iDAAiD;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAc,EAAE,gEAAW;AAC1C,eAAe,2DAAS,EAAE,iEAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kDAAI,GAAG,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qBAAqB;AAC5D;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;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,6CAA6C,4EAAgB;AAC7D;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAO;AACtB,cAAc,oEAAe;AAC7B;AACA,gBAAgB,WAAW;AAC3B,wBAAwB,8DAAa;AACrC,6BAA6B,+DAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yDAAM;AACpC;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe,6DAAU,wBAAwB;AACpF,aAAa;AACb,SAAS;AACT,kCAAkC,uDAAuD;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAkB;AACtC;AACA,SAAS;AACT,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAO;AACtB,cAAc,qEAAgB;AAC9B;AACA;AACA,6BAA6B,6DAAU;AACvC,6BAA6B,yDAAM,MAAM,6DAAU,sCAAsC,yDAAM;AAC/F,wCAAwC,mBAAmB;AAC3D;AACA,gBAAgB,6DAAU;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAc,EAAE,gEAAW;AAC1C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gEAAW;AAC1B,eAAe,iEAAe,EAAE,0EAAc;AAC9C;AACA,gBAAgB,WAAW;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,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,8BAA8B,iDAAiD;AAC/E;AACA,KAAK;AACL;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,iEAAe,OAAO,EAAC","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/application-extension/lib/index.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { ILabStatus, IRouter, ITreePathUpdater, JupyterFrontEnd, JupyterLab, } from '@jupyterlab/application';\nimport { DOMUtils, ICommandPalette, ISanitizer, ISplashScreen, IToolbarWidgetRegistry, showErrorMessage, } from '@jupyterlab/apputils';\nimport { ConsolePanel } from '@jupyterlab/console';\nimport { PageConfig, PathExt, URLExt } from '@jupyterlab/coreutils';\nimport { IDocumentManager, renameDialog } from '@jupyterlab/docmanager';\nimport { DocumentWidget } from '@jupyterlab/docregistry';\nimport { IMainMenu } from '@jupyterlab/mainmenu';\nimport { ILatexTypesetter, IMarkdownParser, IRenderMimeRegistry, RenderMimeRegistry, standardRendererFactories, } from '@jupyterlab/rendermime';\nimport { ISettingRegistry } from '@jupyterlab/settingregistry';\nimport { ITranslator, nullTranslator } from '@jupyterlab/translation';\nimport { NotebookApp, NotebookShell, INotebookShell, SidePanelPalette, INotebookPathOpener, defaultNotebookPathOpener, } from '@jupyter-notebook/application';\nimport { jupyterIcon } from '@jupyter-notebook/ui-components';\nimport { PromiseDelegate } from '@lumino/coreutils';\nimport { DisposableDelegate, DisposableSet, } from '@lumino/disposable';\nimport { Menu, Widget } from '@lumino/widgets';\n/**\n * A regular expression to match path to notebooks and documents\n */\nconst TREE_PATTERN = new RegExp('/(notebooks|edit)/(.*)');\n/**\n * A regular expression to suppress the file extension from display for .ipynb files.\n */\nconst STRIP_IPYNB = /\\.ipynb$/;\n/**\n * The JupyterLab document manager plugin id.\n */\nconst JUPYTERLAB_DOCMANAGER_PLUGIN_ID = '@jupyterlab/docmanager-extension:plugin';\n/**\n * The command IDs used by the application plugin.\n */\nvar CommandIDs;\n(function (CommandIDs) {\n /**\n * Duplicate the current document and open the new document\n */\n CommandIDs.duplicate = 'application:duplicate';\n /**\n * Handle local links\n */\n CommandIDs.handleLink = 'application:handle-local-link';\n /**\n * Toggle Top Bar visibility\n */\n CommandIDs.toggleTop = 'application:toggle-top';\n /**\n * Toggle side panel visibility\n */\n CommandIDs.togglePanel = 'application:toggle-panel';\n /**\n * Toggle the Zen mode\n */\n CommandIDs.toggleZen = 'application:toggle-zen';\n /**\n * Open JupyterLab\n */\n CommandIDs.openLab = 'application:open-lab';\n /**\n * Open the tree page.\n */\n CommandIDs.openTree = 'application:open-tree';\n /**\n * Rename the current document\n */\n CommandIDs.rename = 'application:rename';\n /**\n * Resolve tree path\n */\n CommandIDs.resolveTree = 'application:resolve-tree';\n})(CommandIDs || (CommandIDs = {}));\n/**\n * Check if the application is dirty before closing the browser tab.\n */\nconst dirty = {\n id: '@jupyter-notebook/application-extension:dirty',\n description: 'Check if the application is dirty before closing the browser tab.',\n autoStart: true,\n requires: [ILabStatus, ITranslator],\n activate: (app, status, translator) => {\n if (!(app instanceof NotebookApp)) {\n throw new Error(`${dirty.id} must be activated in Jupyter Notebook.`);\n }\n const trans = translator.load('notebook');\n const message = trans.__('Are you sure you want to exit Jupyter Notebook?\\n\\nAny unsaved changes will be lost.');\n window.addEventListener('beforeunload', (event) => {\n if (app.status.isDirty) {\n return (event.returnValue = message);\n }\n });\n },\n};\n/**\n * The application info.\n */\nconst info = {\n id: '@jupyter-notebook/application-extension:info',\n autoStart: true,\n provides: JupyterLab.IInfo,\n activate: (app) => {\n if (!(app instanceof NotebookApp)) {\n throw new Error(`${info.id} must be activated in Jupyter Notebook.`);\n }\n return app.info;\n },\n};\n/**\n * The logo plugin.\n */\nconst logo = {\n id: '@jupyter-notebook/application-extension:logo',\n description: 'The logo plugin.',\n autoStart: true,\n activate: (app) => {\n const baseUrl = PageConfig.getBaseUrl();\n const node = document.createElement('a');\n node.href = `${baseUrl}tree`;\n node.target = '_blank';\n node.rel = 'noopener noreferrer';\n const logo = new Widget({ node });\n jupyterIcon.element({\n container: node,\n elementPosition: 'center',\n padding: '2px 2px 2px 8px',\n height: '28px',\n width: 'auto',\n cursor: 'pointer',\n margin: 'auto',\n });\n logo.id = 'jp-NotebookLogo';\n app.shell.add(logo, 'top', { rank: 0 });\n },\n};\n/**\n * A plugin to open documents in the main area.\n */\nconst opener = {\n id: '@jupyter-notebook/application-extension:opener',\n description: 'A plugin to open documents in the main area.',\n autoStart: true,\n requires: [IRouter, IDocumentManager],\n optional: [ISettingRegistry],\n activate: (app, router, docManager, settingRegistry) => {\n const { commands, docRegistry } = app;\n const command = 'router:tree';\n commands.addCommand(command, {\n execute: (args) => {\n var _a;\n const parsed = args;\n const matches = (_a = parsed.path.match(TREE_PATTERN)) !== null && _a !== void 0 ? _a : [];\n const [, , path] = matches;\n if (!path) {\n return;\n }\n app.started.then(async () => {\n var _a;\n const file = decodeURIComponent(path);\n const urlParams = new URLSearchParams(parsed.search);\n let defaultFactory = docRegistry.defaultWidgetFactory(path).name;\n // Explicitly get the default viewers from the settings because\n // JupyterLab might not have had the time to load the settings yet (race condition)\n // Relevant code: https://github.com/jupyterlab/jupyterlab/blob/d56ff811f39b3c10c6d8b6eb27a94624b753eb53/packages/docmanager-extension/src/index.tsx#L265-L293\n if (settingRegistry) {\n const settings = await settingRegistry.load(JUPYTERLAB_DOCMANAGER_PLUGIN_ID);\n const defaultViewers = settings.get('defaultViewers').composite;\n // get the file types for the path\n const types = docRegistry.getFileTypesForPath(path);\n // for each file type, check if there is a default viewer and if it\n // is available in the docRegistry. If it is the case, use it as the\n // default factory\n types.forEach((ft) => {\n if (defaultViewers[ft.name] !== undefined &&\n docRegistry.getWidgetFactory(defaultViewers[ft.name])) {\n defaultFactory = defaultViewers[ft.name];\n }\n });\n }\n const factory = (_a = urlParams.get('factory')) !== null && _a !== void 0 ? _a : defaultFactory;\n docManager.open(file, factory, undefined, {\n ref: '_noref',\n });\n });\n },\n });\n router.register({ command, pattern: TREE_PATTERN });\n },\n};\n/**\n * A plugin to customize menus\n */\nconst menus = {\n id: '@jupyter-notebook/application-extension:menus',\n description: 'A plugin to customize menus.',\n requires: [IMainMenu],\n autoStart: true,\n activate: (app, menu) => {\n // always disable the Tabs menu\n menu.tabsMenu.dispose();\n const page = PageConfig.getOption('notebookPage');\n switch (page) {\n case 'consoles':\n case 'terminals':\n case 'tree':\n menu.editMenu.dispose();\n menu.kernelMenu.dispose();\n menu.runMenu.dispose();\n break;\n case 'edit':\n menu.kernelMenu.dispose();\n menu.runMenu.dispose();\n break;\n default:\n break;\n }\n },\n};\n/**\n * A plugin to provide a spacer at rank 900 in the menu area\n */\nconst menuSpacer = {\n id: '@jupyter-notebook/application-extension:menu-spacer',\n description: 'A plugin to provide a spacer at rank 900 in the menu area.',\n autoStart: true,\n activate: (app) => {\n const menu = new Widget();\n menu.id = DOMUtils.createDomID();\n menu.addClass('jp-NotebookSpacer');\n app.shell.add(menu, 'menu', { rank: 900 });\n },\n};\n/**\n * Add commands to open the tree and running pages.\n */\nconst pages = {\n id: '@jupyter-notebook/application-extension:pages',\n description: 'Add commands to open the tree and running pages.',\n autoStart: true,\n requires: [ITranslator],\n optional: [ICommandPalette],\n activate: (app, translator, palette) => {\n const trans = translator.load('notebook');\n const baseUrl = PageConfig.getBaseUrl();\n app.commands.addCommand(CommandIDs.openLab, {\n label: trans.__('Open JupyterLab'),\n execute: () => {\n window.open(URLExt.join(baseUrl, 'lab'));\n },\n });\n const page = PageConfig.getOption('notebookPage');\n app.commands.addCommand(CommandIDs.openTree, {\n label: trans.__('File Browser'),\n execute: () => {\n if (page === 'tree') {\n app.commands.execute('filebrowser:activate');\n }\n else {\n window.open(URLExt.join(baseUrl, 'tree'));\n }\n },\n });\n if (palette) {\n palette.addItem({ command: CommandIDs.openLab, category: 'View' });\n palette.addItem({ command: CommandIDs.openTree, category: 'View' });\n }\n },\n};\n/**\n * A plugin to open paths in new browser tabs.\n */\nconst pathOpener = {\n id: '@jupyter-notebook/application-extension:path-opener',\n description: 'A plugin to open paths in new browser tabs.',\n autoStart: true,\n provides: INotebookPathOpener,\n activate: (app) => {\n return defaultNotebookPathOpener;\n },\n};\n/**\n * The default paths for a Jupyter Notebook app.\n */\nconst paths = {\n id: '@jupyter-notebook/application-extension:paths',\n description: 'The default paths for a Jupyter Notebook app.',\n autoStart: true,\n provides: JupyterFrontEnd.IPaths,\n activate: (app) => {\n if (!(app instanceof NotebookApp)) {\n throw new Error(`${paths.id} must be activated in Jupyter Notebook.`);\n }\n return app.paths;\n },\n};\n/**\n * A plugin providing a rendermime registry.\n */\nconst rendermime = {\n id: '@jupyter-notebook/application-extension:rendermime',\n description: 'A plugin providing a rendermime registry.',\n autoStart: true,\n provides: IRenderMimeRegistry,\n optional: [\n IDocumentManager,\n ILatexTypesetter,\n ISanitizer,\n IMarkdownParser,\n ITranslator,\n INotebookPathOpener,\n ],\n activate: (app, docManager, latexTypesetter, sanitizer, markdownParser, translator, notebookPathOpener) => {\n const trans = (translator !== null && translator !== void 0 ? translator : nullTranslator).load('jupyterlab');\n const opener = notebookPathOpener !== null && notebookPathOpener !== void 0 ? notebookPathOpener : defaultNotebookPathOpener;\n if (docManager) {\n app.commands.addCommand(CommandIDs.handleLink, {\n label: trans.__('Handle Local Link'),\n execute: (args) => {\n const path = args['path'];\n if (path === undefined || path === null) {\n return;\n }\n return docManager.services.contents\n .get(path, { content: false })\n .then((model) => {\n const baseUrl = PageConfig.getBaseUrl();\n opener.open({\n prefix: URLExt.join(baseUrl, 'tree'),\n path: model.path,\n target: '_blank',\n });\n });\n },\n });\n }\n return new RenderMimeRegistry({\n initialFactories: standardRendererFactories,\n linkHandler: !docManager\n ? undefined\n : {\n handleLink: (node, path, id) => {\n // If node has the download attribute explicitly set, use the\n // default browser downloading behavior.\n if (node.tagName === 'A' && node.hasAttribute('download')) {\n return;\n }\n app.commandLinker.connectNode(node, CommandIDs.handleLink, {\n path,\n id,\n });\n },\n },\n latexTypesetter: latexTypesetter !== null && latexTypesetter !== void 0 ? latexTypesetter : undefined,\n markdownParser: markdownParser !== null && markdownParser !== void 0 ? markdownParser : undefined,\n translator: translator !== null && translator !== void 0 ? translator : undefined,\n sanitizer: sanitizer !== null && sanitizer !== void 0 ? sanitizer : undefined,\n });\n },\n};\n/**\n * The default Jupyter Notebook application shell.\n */\nconst shell = {\n id: '@jupyter-notebook/application-extension:shell',\n description: 'The default Jupyter Notebook application shell.',\n autoStart: true,\n provides: INotebookShell,\n optional: [ISettingRegistry],\n activate: (app, settingRegistry) => {\n if (!(app.shell instanceof NotebookShell)) {\n throw new Error(`${shell.id} did not find a NotebookShell instance.`);\n }\n const notebookShell = app.shell;\n if (settingRegistry) {\n settingRegistry\n .load(shell.id)\n .then((settings) => {\n // Add a layer of customization to support app shell mode\n const customLayout = settings.composite['layout'];\n // Restore the layout.\n void notebookShell.restoreLayout(customLayout);\n })\n .catch((reason) => {\n console.error('Fail to load settings for the layout restorer.');\n console.error(reason);\n });\n }\n return notebookShell;\n },\n};\n/**\n * The default splash screen provider.\n */\nconst splash = {\n id: '@jupyter-notebook/application-extension:splash',\n description: 'Provides an empty splash screen.',\n autoStart: true,\n provides: ISplashScreen,\n activate: (app) => {\n const { restored } = app;\n const splash = document.createElement('div');\n splash.style.position = 'absolute';\n splash.style.width = '100%';\n splash.style.height = '100%';\n splash.style.zIndex = '10';\n return {\n show: (light = true) => {\n splash.style.backgroundColor = light ? 'white' : '#111111';\n document.body.appendChild(splash);\n return new DisposableDelegate(async () => {\n await restored;\n document.body.removeChild(splash);\n });\n },\n };\n },\n};\n/**\n * The default JupyterLab application status provider.\n */\nconst status = {\n id: '@jupyter-notebook/application-extension:status',\n description: 'The default JupyterLab application status provider.',\n autoStart: true,\n provides: ILabStatus,\n activate: (app) => {\n if (!(app instanceof NotebookApp)) {\n throw new Error(`${status.id} must be activated in Jupyter Notebook.`);\n }\n return app.status;\n },\n};\n/**\n * A plugin to display the document title in the browser tab title\n */\nconst tabTitle = {\n id: '@jupyter-notebook/application-extension:tab-title',\n description: 'A plugin to display the document title in the browser tab title.',\n autoStart: true,\n requires: [INotebookShell],\n activate: (app, shell) => {\n const setTabTitle = () => {\n const current = shell.currentWidget;\n if (current instanceof ConsolePanel) {\n const update = () => {\n const title = current.sessionContext.path || current.sessionContext.name;\n const basename = PathExt.basename(title);\n // Strip the \".ipynb\" suffix from filenames for display in tab titles.\n document.title = basename.replace(STRIP_IPYNB, '');\n };\n current.sessionContext.sessionChanged.connect(update);\n update();\n return;\n }\n else if (current instanceof DocumentWidget) {\n const update = () => {\n const basename = PathExt.basename(current.context.path);\n document.title = basename.replace(STRIP_IPYNB, '');\n };\n current.context.pathChanged.connect(update);\n update();\n }\n };\n shell.currentChanged.connect(setTabTitle);\n setTabTitle();\n },\n};\n/**\n * A plugin to display and rename the title of a file\n */\nconst title = {\n id: '@jupyter-notebook/application-extension:title',\n description: 'A plugin to display and rename the title of a file.',\n autoStart: true,\n requires: [INotebookShell, ITranslator],\n optional: [IDocumentManager, IRouter, IToolbarWidgetRegistry],\n activate: (app, shell, translator, docManager, router, toolbarRegistry) => {\n const { commands } = app;\n const trans = translator.load('notebook');\n const node = document.createElement('div');\n if (toolbarRegistry) {\n toolbarRegistry.addFactory('TopBar', 'widgetTitle', (toolbar) => {\n const widget = new Widget({ node });\n widget.id = 'jp-title';\n return widget;\n });\n }\n const addTitle = async () => {\n const current = shell.currentWidget;\n if (!current || !(current instanceof DocumentWidget)) {\n return;\n }\n if (node.children.length > 0) {\n return;\n }\n const h = document.createElement('h1');\n h.textContent = current.title.label.replace(STRIP_IPYNB, '');\n node.appendChild(h);\n node.style.marginLeft = '10px';\n if (!docManager) {\n return;\n }\n const isEnabled = () => {\n const { currentWidget } = shell;\n return !!(currentWidget && docManager.contextForWidget(currentWidget));\n };\n commands.addCommand(CommandIDs.duplicate, {\n label: () => trans.__('Duplicate'),\n isEnabled,\n execute: async () => {\n if (!isEnabled()) {\n return;\n }\n // Duplicate the file, and open the new file.\n const result = await docManager.duplicate(current.context.path);\n await commands.execute('docmanager:open', { path: result.path });\n },\n });\n commands.addCommand(CommandIDs.rename, {\n label: () => trans.__('Rename…'),\n isEnabled,\n execute: async () => {\n var _a;\n if (!isEnabled()) {\n return;\n }\n try {\n const result = await renameDialog(docManager, current.context);\n // activate the current widget to bring the focus\n if (current) {\n current.activate();\n }\n if (result === null) {\n return;\n }\n }\n catch (error) {\n showErrorMessage(trans.__('Rename Error'), error.message ||\n trans.__('An error occurred while renaming the file.'));\n return;\n }\n const newPath = current.context.path;\n const basename = PathExt.basename(newPath);\n h.textContent = basename.replace(STRIP_IPYNB, '');\n if (!router) {\n return;\n }\n const matches = (_a = router.current.path.match(TREE_PATTERN)) !== null && _a !== void 0 ? _a : [];\n const [, route, path] = matches;\n if (!route || !path) {\n return;\n }\n const encoded = encodeURIComponent(newPath);\n router.navigate(`/${route}/${encoded}`, {\n skipRouting: true,\n });\n },\n });\n node.onclick = async () => {\n void commands.execute(CommandIDs.rename);\n };\n };\n shell.currentChanged.connect(addTitle);\n void addTitle();\n },\n};\n/**\n * Plugin to toggle the top header visibility.\n */\nconst topVisibility = {\n id: '@jupyter-notebook/application-extension:top',\n description: 'Plugin to toggle the top header visibility.',\n requires: [INotebookShell, ITranslator],\n optional: [ISettingRegistry, ICommandPalette],\n activate: (app, notebookShell, translator, settingRegistry, palette) => {\n const trans = translator.load('notebook');\n const top = notebookShell.top;\n const pluginId = topVisibility.id;\n app.commands.addCommand(CommandIDs.toggleTop, {\n label: trans.__('Show Header'),\n execute: () => {\n top.setHidden(top.isVisible);\n if (settingRegistry) {\n void settingRegistry.set(pluginId, 'visible', top.isVisible ? 'yes' : 'no');\n }\n },\n isToggled: () => top.isVisible,\n });\n let adjustToScreen = false;\n if (settingRegistry) {\n const loadSettings = settingRegistry.load(pluginId);\n const updateSettings = (settings) => {\n // 'visible' property from user preferences or default settings\n let visible = settings.get('visible').composite;\n if (settings.user.visible !== undefined) {\n visible = settings.user.visible;\n }\n top.setHidden(visible === 'no');\n // adjust to screen from user preferences or default settings\n adjustToScreen = visible === 'automatic';\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 if (palette) {\n palette.addItem({ command: CommandIDs.toggleTop, category: 'View' });\n }\n const onChanged = () => {\n if (!adjustToScreen) {\n return;\n }\n if (app.format === 'desktop') {\n notebookShell.expandTop();\n }\n else {\n notebookShell.collapseTop();\n }\n };\n // listen on format change (mobile and desktop) to make the view more compact\n app.formatChanged.connect(onChanged);\n },\n autoStart: true,\n};\n/**\n * Plugin to toggle the left or right side panel's visibility.\n */\nconst sidePanelVisibility = {\n id: '@jupyter-notebook/application-extension:sidepanel',\n description: 'Plugin to toggle the visibility of left or right side panel.',\n requires: [INotebookShell, ITranslator],\n optional: [IMainMenu, ICommandPalette],\n autoStart: true,\n activate: (app, notebookShell, translator, menu, palette) => {\n const trans = translator.load('notebook');\n /* Arguments for togglePanel command:\n * side, left or right area\n * title, widget title to show in the menu\n * id, widget ID to activate in the side panel\n */\n app.commands.addCommand(CommandIDs.togglePanel, {\n label: (args) => args['title'],\n caption: (args) => {\n // We do not substitute the parameter into the string because the parameter is not\n // localized (e.g., it is always 'left') even though the string is localized.\n if (args['side'] === 'left') {\n return trans.__('Show %1 in the left sidebar', args['title']);\n }\n else if (args['side'] === 'right') {\n return trans.__('Show %1 in the right sidebar', args['title']);\n }\n return trans.__('Show %1 in the sidebar', args['title']);\n },\n execute: (args) => {\n var _a, _b;\n switch (args['side']) {\n case 'left':\n if (notebookShell.leftCollapsed) {\n notebookShell.expandLeft(args.id);\n }\n else if (((_a = notebookShell.leftHandler.currentWidget) === null || _a === void 0 ? void 0 : _a.id) !== args.id) {\n notebookShell.expandLeft(args.id);\n }\n else {\n notebookShell.collapseLeft();\n if (notebookShell.currentWidget) {\n notebookShell.activateById(notebookShell.currentWidget.id);\n }\n }\n break;\n case 'right':\n if (notebookShell.rightCollapsed) {\n notebookShell.expandRight(args.id);\n }\n else if (((_b = notebookShell.rightHandler.currentWidget) === null || _b === void 0 ? void 0 : _b.id) !== args.id) {\n notebookShell.expandRight(args.id);\n }\n else {\n notebookShell.collapseRight();\n if (notebookShell.currentWidget) {\n notebookShell.activateById(notebookShell.currentWidget.id);\n }\n }\n break;\n }\n },\n isToggled: (args) => {\n switch (args['side']) {\n case 'left': {\n if (notebookShell.leftCollapsed) {\n return false;\n }\n const currentWidget = notebookShell.leftHandler.currentWidget;\n if (!currentWidget) {\n return false;\n }\n return currentWidget.id === args['id'];\n }\n case 'right': {\n if (notebookShell.rightCollapsed) {\n return false;\n }\n const currentWidget = notebookShell.rightHandler.currentWidget;\n if (!currentWidget) {\n return false;\n }\n return currentWidget.id === args['id'];\n }\n }\n return false;\n },\n });\n const sidePanelMenu = {\n left: null,\n right: null,\n };\n /**\n * The function which adds entries to the View menu for each widget of a side panel.\n *\n * @param area - 'left' or 'right', the area of the side panel.\n * @param entryLabel - the name of the main entry in the View menu for that side panel.\n * @returns - The disposable menu added to the View menu or null.\n */\n const updateMenu = (area, entryLabel) => {\n var _a;\n if (menu === null) {\n return null;\n }\n // Remove the previous menu entry for this side panel.\n (_a = sidePanelMenu[area]) === null || _a === void 0 ? void 0 : _a.dispose();\n // Creates a new menu entry and populates it with side panel widgets.\n const newMenu = new Menu({ commands: app.commands });\n newMenu.title.label = entryLabel;\n const widgets = notebookShell.widgets(area);\n let menuToAdd = false;\n for (const widget of widgets) {\n newMenu.addItem({\n command: CommandIDs.togglePanel,\n args: {\n side: area,\n title: `Show ${widget.title.caption}`,\n id: widget.id,\n },\n });\n menuToAdd = true;\n }\n // If there are widgets, add the menu to the main menu entry.\n if (menuToAdd) {\n sidePanelMenu[area] = menu.viewMenu.addItem({\n type: 'submenu',\n submenu: newMenu,\n });\n }\n };\n app.restored.then(() => {\n // Create menu entries for the left and right panel.\n if (menu) {\n const getSidePanelLabel = (area) => {\n if (area === 'left') {\n return trans.__('Left Sidebar');\n }\n else {\n return trans.__('Right Sidebar');\n }\n };\n const leftArea = notebookShell.leftHandler.area;\n const leftLabel = getSidePanelLabel(leftArea);\n updateMenu(leftArea, leftLabel);\n const rightArea = notebookShell.rightHandler.area;\n const rightLabel = getSidePanelLabel(rightArea);\n updateMenu(rightArea, rightLabel);\n const handleSidePanelChange = (sidePanel, widget) => {\n const label = getSidePanelLabel(sidePanel.area);\n updateMenu(sidePanel.area, label);\n };\n notebookShell.leftHandler.widgetAdded.connect(handleSidePanelChange);\n notebookShell.leftHandler.widgetRemoved.connect(handleSidePanelChange);\n notebookShell.rightHandler.widgetAdded.connect(handleSidePanelChange);\n notebookShell.rightHandler.widgetRemoved.connect(handleSidePanelChange);\n }\n // Add palette entries for side panels.\n if (palette) {\n const sidePanelPalette = new SidePanelPalette({\n commandPalette: palette,\n command: CommandIDs.togglePanel,\n });\n notebookShell.leftHandler.widgets.forEach((widget) => {\n sidePanelPalette.addItem(widget, notebookShell.leftHandler.area);\n });\n notebookShell.rightHandler.widgets.forEach((widget) => {\n sidePanelPalette.addItem(widget, notebookShell.rightHandler.area);\n });\n // Update menu and palette when widgets are added or removed from side panels.\n notebookShell.leftHandler.widgetAdded.connect((sidePanel, widget) => {\n sidePanelPalette.addItem(widget, sidePanel.area);\n });\n notebookShell.leftHandler.widgetRemoved.connect((sidePanel, widget) => {\n sidePanelPalette.removeItem(widget, sidePanel.area);\n });\n notebookShell.rightHandler.widgetAdded.connect((sidePanel, widget) => {\n sidePanelPalette.addItem(widget, sidePanel.area);\n });\n notebookShell.rightHandler.widgetRemoved.connect((sidePanel, widget) => {\n sidePanelPalette.removeItem(widget, sidePanel.area);\n });\n }\n });\n },\n};\n/**\n * A plugin for defining keyboard shortcuts specific to the notebook application.\n */\nconst shortcuts = {\n id: '@jupyter-notebook/application-extension:shortcuts',\n description: 'A plugin for defining keyboard shortcuts specific to the notebook application.',\n autoStart: true,\n activate: (app) => {\n // for now this plugin is mostly useful for defining keyboard shortcuts\n // specific to the notebook application\n },\n};\n/**\n * The default tree route resolver plugin.\n */\nconst tree = {\n id: '@jupyter-notebook/application-extension:tree-resolver',\n description: 'The default tree route resolver plugin.',\n autoStart: true,\n requires: [IRouter],\n provides: JupyterFrontEnd.ITreeResolver,\n activate: (app, router) => {\n const { commands } = app;\n const set = new DisposableSet();\n const delegate = new PromiseDelegate();\n const treePattern = new RegExp('/(/tree/.*)?');\n set.add(commands.addCommand(CommandIDs.resolveTree, {\n execute: (async (args) => {\n var _a;\n if (set.isDisposed) {\n return;\n }\n const query = URLExt.queryStringToObject((_a = args.search) !== null && _a !== void 0 ? _a : '');\n const browser = query['file-browser-path'] || '';\n // Remove the file browser path from the query string.\n delete query['file-browser-path'];\n // Clean up artifacts immediately upon routing.\n set.dispose();\n delegate.resolve({ browser, file: PageConfig.getOption('treePath') });\n }),\n }));\n set.add(router.register({ command: CommandIDs.resolveTree, pattern: treePattern }));\n // If a route is handled by the router without the tree command being\n // invoked, resolve to `null` and clean up artifacts.\n const listener = () => {\n if (set.isDisposed) {\n return;\n }\n set.dispose();\n delegate.resolve(null);\n };\n router.routed.connect(listener);\n set.add(new DisposableDelegate(() => {\n router.routed.disconnect(listener);\n }));\n return { paths: delegate.promise };\n },\n};\n/**\n * Plugin to update tree path.\n */\nconst treePathUpdater = {\n id: '@jupyter-notebook/application-extension:tree-updater',\n description: 'Plugin to update tree path.',\n requires: [IRouter],\n provides: ITreePathUpdater,\n activate: (app, router) => {\n function updateTreePath(treePath) {\n if (treePath !== PageConfig.getOption('treePath')) {\n const path = URLExt.join(PageConfig.getOption('baseUrl') || '/', 'tree', URLExt.encodeParts(treePath));\n router.navigate(path, { skipRouting: true });\n // Persist the new tree path to PageConfig as it is used elsewhere at runtime.\n PageConfig.setOption('treePath', treePath);\n }\n }\n return updateTreePath;\n },\n autoStart: true,\n};\n/**\n * Translator plugin\n */\nconst translator = {\n id: '@jupyter-notebook/application-extension:translator',\n description: 'Translator plugin',\n requires: [INotebookShell, ITranslator],\n autoStart: true,\n activate: (app, notebookShell, translator) => {\n notebookShell.translator = translator;\n },\n};\n/**\n * Zen mode plugin\n */\nconst zen = {\n id: '@jupyter-notebook/application-extension:zen',\n description: 'Zen mode plugin.',\n autoStart: true,\n requires: [ITranslator],\n optional: [ICommandPalette, INotebookShell],\n activate: (app, translator, palette, notebookShell) => {\n const { commands } = app;\n const elem = document.documentElement;\n const trans = translator.load('notebook');\n const toggleOn = () => {\n notebookShell === null || notebookShell === void 0 ? void 0 : notebookShell.collapseTop();\n notebookShell === null || notebookShell === void 0 ? void 0 : notebookShell.menu.setHidden(true);\n zenModeEnabled = true;\n };\n const toggleOff = () => {\n notebookShell === null || notebookShell === void 0 ? void 0 : notebookShell.expandTop();\n notebookShell === null || notebookShell === void 0 ? void 0 : notebookShell.menu.setHidden(false);\n zenModeEnabled = false;\n };\n let zenModeEnabled = false;\n commands.addCommand(CommandIDs.toggleZen, {\n label: trans.__('Toggle Zen Mode'),\n execute: () => {\n if (!zenModeEnabled) {\n elem.requestFullscreen();\n toggleOn();\n }\n else {\n document.exitFullscreen();\n toggleOff();\n }\n },\n });\n document.addEventListener('fullscreenchange', () => {\n if (!document.fullscreenElement) {\n toggleOff();\n }\n });\n if (palette) {\n palette.addItem({ command: CommandIDs.toggleZen, category: 'Mode' });\n }\n },\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [\n dirty,\n info,\n logo,\n menus,\n menuSpacer,\n opener,\n pages,\n pathOpener,\n paths,\n rendermime,\n shell,\n sidePanelVisibility,\n shortcuts,\n splash,\n status,\n tabTitle,\n title,\n topVisibility,\n tree,\n treePathUpdater,\n translator,\n zen,\n];\nexport default plugins;\n"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"8579.85445d32ba835038fcbf.js?v=85445d32ba835038fcbf","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAC8G;AACyB;AACpF;AACiB;AACI;AACf;AACR;AAC+F;AACjF;AACO;AACwF;AAChG;AACV;AACoB;AACzB;AAC/C;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;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,+DAAU,EAAE,gEAAW;AACtC;AACA,6BAA6B,uEAAW;AACxC,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,+DAAU;AACxB;AACA,6BAA6B,uEAAW;AACxC,+BAA+B,SAAS;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6DAAU;AAClC;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA,yBAAyB,oDAAM,GAAG,MAAM;AACxC,QAAQ,yEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qCAAqC,SAAS;AAC9C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAO,EAAE,oEAAgB;AACxC,eAAe,yEAAgB;AAC/B;AACA,gBAAgB,wBAAwB;AACxC;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,yBAAyB;AACzB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,0BAA0B,gCAAgC;AAC1D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2DAAS;AACxB;AACA;AACA;AACA;AACA,qBAAqB,6DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oDAAM;AAC/B,kBAAkB,0DAAQ;AAC1B;AACA,sCAAsC,WAAW;AACjD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gEAAW;AAC1B,eAAe,iEAAe;AAC9B;AACA;AACA,wBAAwB,6DAAU;AAClC;AACA;AACA;AACA,4BAA4B,yDAAM;AAClC,aAAa;AACb,SAAS;AACT,qBAAqB,6DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yDAAM;AACtC;AACA,aAAa;AACb,SAAS;AACT;AACA,8BAA8B,+CAA+C;AAC7E,8BAA8B,gDAAgD;AAC9E;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,+EAAmB;AACjC;AACA,eAAe,qFAAyB;AACxC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oEAAe;AAC7B;AACA,6BAA6B,uEAAW;AACxC,+BAA+B,UAAU;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uEAAmB;AACjC;AACA,QAAQ,oEAAgB;AACxB,QAAQ,oEAAgB;AACxB,QAAQ,4DAAU;AAClB,QAAQ,mEAAe;AACvB,QAAQ,gEAAW;AACnB,QAAQ,+EAAmB;AAC3B;AACA;AACA,mFAAmF,mEAAc;AACjG,2GAA2G,qFAAyB;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA,wCAAwC,6DAAU;AAClD;AACA,oCAAoC,yDAAM;AAC1C;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA,mBAAmB,sEAAkB;AACrC,8BAA8B,6EAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0EAAc;AAC5B,eAAe,yEAAgB;AAC/B;AACA,mCAAmC,yEAAa;AAChD,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,+DAAa;AAC3B;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mEAAkB;AAC7C;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,+DAAU;AACxB;AACA,6BAA6B,uEAAW;AACxC,+BAA+B,WAAW;AAC1C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAc;AAC7B;AACA;AACA;AACA,mCAAmC,6DAAY;AAC/C;AACA;AACA,qCAAqC,0DAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mEAAc;AACtD;AACA,qCAAqC,0DAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAc,EAAE,gEAAW;AAC1C,eAAe,oEAAgB,EAAE,4DAAO,EAAE,wEAAsB;AAChE;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA,mCAAmC,oDAAM,GAAG,MAAM;AAClD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iDAAiD,mEAAc;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,mBAAmB;AACnF,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oEAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAgB;AACxC;AACA;AACA;AACA;AACA,qCAAqC,0DAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,MAAM,GAAG,QAAQ;AACzD;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAc,EAAE,gEAAW;AAC1C,eAAe,yEAAgB,EAAE,iEAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;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,8BAA8B,iDAAiD;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAc,EAAE,gEAAW;AAC1C,eAAe,2DAAS,EAAE,iEAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kDAAI,GAAG,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qBAAqB;AAC5D;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;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,6CAA6C,4EAAgB;AAC7D;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAO;AACtB,cAAc,oEAAe;AAC7B;AACA,gBAAgB,WAAW;AAC3B,wBAAwB,8DAAa;AACrC,6BAA6B,+DAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yDAAM;AACpC;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe,6DAAU,wBAAwB;AACpF,aAAa;AACb,SAAS;AACT,kCAAkC,uDAAuD;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAkB;AACtC;AACA,SAAS;AACT,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAO;AACtB,cAAc,qEAAgB;AAC9B;AACA;AACA,6BAA6B,6DAAU;AACvC,6BAA6B,yDAAM,MAAM,6DAAU,sCAAsC,yDAAM;AAC/F,wCAAwC,mBAAmB;AAC3D;AACA,gBAAgB,6DAAU;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAc,EAAE,gEAAW;AAC1C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gEAAW;AAC1B,eAAe,iEAAe,EAAE,0EAAc;AAC9C;AACA,gBAAgB,WAAW;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,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,8BAA8B,iDAAiD;AAC/E;AACA,KAAK;AACL;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,iEAAe,OAAO,EAAC","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/application-extension/lib/index.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { ILabStatus, IRouter, ITreePathUpdater, JupyterFrontEnd, JupyterLab, } from '@jupyterlab/application';\nimport { DOMUtils, ICommandPalette, ISanitizer, ISplashScreen, IToolbarWidgetRegistry, showErrorMessage, } from '@jupyterlab/apputils';\nimport { ConsolePanel } from '@jupyterlab/console';\nimport { PageConfig, PathExt, URLExt } from '@jupyterlab/coreutils';\nimport { IDocumentManager, renameDialog } from '@jupyterlab/docmanager';\nimport { DocumentWidget } from '@jupyterlab/docregistry';\nimport { IMainMenu } from '@jupyterlab/mainmenu';\nimport { ILatexTypesetter, IMarkdownParser, IRenderMimeRegistry, RenderMimeRegistry, standardRendererFactories, } from '@jupyterlab/rendermime';\nimport { ISettingRegistry } from '@jupyterlab/settingregistry';\nimport { ITranslator, nullTranslator } from '@jupyterlab/translation';\nimport { NotebookApp, NotebookShell, INotebookShell, SidePanelPalette, INotebookPathOpener, defaultNotebookPathOpener, } from '@jupyter-notebook/application';\nimport { jupyterIcon } from '@jupyter-notebook/ui-components';\nimport { PromiseDelegate } from '@lumino/coreutils';\nimport { DisposableDelegate, DisposableSet, } from '@lumino/disposable';\nimport { Menu, Widget } from '@lumino/widgets';\n/**\n * A regular expression to match path to notebooks and documents\n */\nconst TREE_PATTERN = new RegExp('/(notebooks|edit)/(.*)');\n/**\n * A regular expression to suppress the file extension from display for .ipynb files.\n */\nconst STRIP_IPYNB = /\\.ipynb$/;\n/**\n * The JupyterLab document manager plugin id.\n */\nconst JUPYTERLAB_DOCMANAGER_PLUGIN_ID = '@jupyterlab/docmanager-extension:plugin';\n/**\n * The command IDs used by the application plugin.\n */\nvar CommandIDs;\n(function (CommandIDs) {\n /**\n * Duplicate the current document and open the new document\n */\n CommandIDs.duplicate = 'application:duplicate';\n /**\n * Handle local links\n */\n CommandIDs.handleLink = 'application:handle-local-link';\n /**\n * Toggle Top Bar visibility\n */\n CommandIDs.toggleTop = 'application:toggle-top';\n /**\n * Toggle side panel visibility\n */\n CommandIDs.togglePanel = 'application:toggle-panel';\n /**\n * Toggle the Zen mode\n */\n CommandIDs.toggleZen = 'application:toggle-zen';\n /**\n * Open JupyterLab\n */\n CommandIDs.openLab = 'application:open-lab';\n /**\n * Open the tree page.\n */\n CommandIDs.openTree = 'application:open-tree';\n /**\n * Rename the current document\n */\n CommandIDs.rename = 'application:rename';\n /**\n * Resolve tree path\n */\n CommandIDs.resolveTree = 'application:resolve-tree';\n})(CommandIDs || (CommandIDs = {}));\n/**\n * Check if the application is dirty before closing the browser tab.\n */\nconst dirty = {\n id: '@jupyter-notebook/application-extension:dirty',\n description: 'Check if the application is dirty before closing the browser tab.',\n autoStart: true,\n requires: [ILabStatus, ITranslator],\n activate: (app, status, translator) => {\n if (!(app instanceof NotebookApp)) {\n throw new Error(`${dirty.id} must be activated in Jupyter Notebook.`);\n }\n const trans = translator.load('notebook');\n const message = trans.__('Are you sure you want to exit Jupyter Notebook?\\n\\nAny unsaved changes will be lost.');\n window.addEventListener('beforeunload', (event) => {\n if (app.status.isDirty) {\n return (event.returnValue = message);\n }\n });\n },\n};\n/**\n * The application info.\n */\nconst info = {\n id: '@jupyter-notebook/application-extension:info',\n autoStart: true,\n provides: JupyterLab.IInfo,\n activate: (app) => {\n if (!(app instanceof NotebookApp)) {\n throw new Error(`${info.id} must be activated in Jupyter Notebook.`);\n }\n return app.info;\n },\n};\n/**\n * The logo plugin.\n */\nconst logo = {\n id: '@jupyter-notebook/application-extension:logo',\n description: 'The logo plugin.',\n autoStart: true,\n activate: (app) => {\n const baseUrl = PageConfig.getBaseUrl();\n const node = document.createElement('a');\n node.href = `${baseUrl}tree`;\n node.target = '_blank';\n node.rel = 'noopener noreferrer';\n const logo = new Widget({ node });\n jupyterIcon.element({\n container: node,\n elementPosition: 'center',\n padding: '2px 2px 2px 8px',\n height: '28px',\n width: 'auto',\n cursor: 'pointer',\n margin: 'auto',\n });\n logo.id = 'jp-NotebookLogo';\n app.shell.add(logo, 'top', { rank: 0 });\n },\n};\n/**\n * A plugin to open documents in the main area.\n */\nconst opener = {\n id: '@jupyter-notebook/application-extension:opener',\n description: 'A plugin to open documents in the main area.',\n autoStart: true,\n requires: [IRouter, IDocumentManager],\n optional: [ISettingRegistry],\n activate: (app, router, docManager, settingRegistry) => {\n const { commands, docRegistry } = app;\n const command = 'router:tree';\n commands.addCommand(command, {\n execute: (args) => {\n var _a;\n const parsed = args;\n const matches = (_a = parsed.path.match(TREE_PATTERN)) !== null && _a !== void 0 ? _a : [];\n const [, , path] = matches;\n if (!path) {\n return;\n }\n app.started.then(async () => {\n var _a;\n const file = decodeURIComponent(path);\n const urlParams = new URLSearchParams(parsed.search);\n let defaultFactory = docRegistry.defaultWidgetFactory(path).name;\n // Explicitly get the default viewers from the settings because\n // JupyterLab might not have had the time to load the settings yet (race condition)\n // Relevant code: https://github.com/jupyterlab/jupyterlab/blob/d56ff811f39b3c10c6d8b6eb27a94624b753eb53/packages/docmanager-extension/src/index.tsx#L265-L293\n if (settingRegistry) {\n const settings = await settingRegistry.load(JUPYTERLAB_DOCMANAGER_PLUGIN_ID);\n const defaultViewers = settings.get('defaultViewers').composite;\n // get the file types for the path\n const types = docRegistry.getFileTypesForPath(path);\n // for each file type, check if there is a default viewer and if it\n // is available in the docRegistry. If it is the case, use it as the\n // default factory\n types.forEach((ft) => {\n if (defaultViewers[ft.name] !== undefined &&\n docRegistry.getWidgetFactory(defaultViewers[ft.name])) {\n defaultFactory = defaultViewers[ft.name];\n }\n });\n }\n const factory = (_a = urlParams.get('factory')) !== null && _a !== void 0 ? _a : defaultFactory;\n docManager.open(file, factory, undefined, {\n ref: '_noref',\n });\n });\n },\n });\n router.register({ command, pattern: TREE_PATTERN });\n },\n};\n/**\n * A plugin to customize menus\n */\nconst menus = {\n id: '@jupyter-notebook/application-extension:menus',\n description: 'A plugin to customize menus.',\n requires: [IMainMenu],\n autoStart: true,\n activate: (app, menu) => {\n // always disable the Tabs menu\n menu.tabsMenu.dispose();\n const page = PageConfig.getOption('notebookPage');\n switch (page) {\n case 'consoles':\n case 'terminals':\n case 'tree':\n menu.editMenu.dispose();\n menu.kernelMenu.dispose();\n menu.runMenu.dispose();\n break;\n case 'edit':\n menu.kernelMenu.dispose();\n menu.runMenu.dispose();\n break;\n default:\n break;\n }\n },\n};\n/**\n * A plugin to provide a spacer at rank 900 in the menu area\n */\nconst menuSpacer = {\n id: '@jupyter-notebook/application-extension:menu-spacer',\n description: 'A plugin to provide a spacer at rank 900 in the menu area.',\n autoStart: true,\n activate: (app) => {\n const menu = new Widget();\n menu.id = DOMUtils.createDomID();\n menu.addClass('jp-NotebookSpacer');\n app.shell.add(menu, 'menu', { rank: 900 });\n },\n};\n/**\n * Add commands to open the tree and running pages.\n */\nconst pages = {\n id: '@jupyter-notebook/application-extension:pages',\n description: 'Add commands to open the tree and running pages.',\n autoStart: true,\n requires: [ITranslator],\n optional: [ICommandPalette],\n activate: (app, translator, palette) => {\n const trans = translator.load('notebook');\n const baseUrl = PageConfig.getBaseUrl();\n app.commands.addCommand(CommandIDs.openLab, {\n label: trans.__('Open JupyterLab'),\n execute: () => {\n window.open(URLExt.join(baseUrl, 'lab'));\n },\n });\n const page = PageConfig.getOption('notebookPage');\n app.commands.addCommand(CommandIDs.openTree, {\n label: trans.__('File Browser'),\n execute: () => {\n if (page === 'tree') {\n app.commands.execute('filebrowser:activate');\n }\n else {\n window.open(URLExt.join(baseUrl, 'tree'));\n }\n },\n });\n if (palette) {\n palette.addItem({ command: CommandIDs.openLab, category: 'View' });\n palette.addItem({ command: CommandIDs.openTree, category: 'View' });\n }\n },\n};\n/**\n * A plugin to open paths in new browser tabs.\n */\nconst pathOpener = {\n id: '@jupyter-notebook/application-extension:path-opener',\n description: 'A plugin to open paths in new browser tabs.',\n autoStart: true,\n provides: INotebookPathOpener,\n activate: (app) => {\n return defaultNotebookPathOpener;\n },\n};\n/**\n * The default paths for a Jupyter Notebook app.\n */\nconst paths = {\n id: '@jupyter-notebook/application-extension:paths',\n description: 'The default paths for a Jupyter Notebook app.',\n autoStart: true,\n provides: JupyterFrontEnd.IPaths,\n activate: (app) => {\n if (!(app instanceof NotebookApp)) {\n throw new Error(`${paths.id} must be activated in Jupyter Notebook.`);\n }\n return app.paths;\n },\n};\n/**\n * A plugin providing a rendermime registry.\n */\nconst rendermime = {\n id: '@jupyter-notebook/application-extension:rendermime',\n description: 'A plugin providing a rendermime registry.',\n autoStart: true,\n provides: IRenderMimeRegistry,\n optional: [\n IDocumentManager,\n ILatexTypesetter,\n ISanitizer,\n IMarkdownParser,\n ITranslator,\n INotebookPathOpener,\n ],\n activate: (app, docManager, latexTypesetter, sanitizer, markdownParser, translator, notebookPathOpener) => {\n const trans = (translator !== null && translator !== void 0 ? translator : nullTranslator).load('jupyterlab');\n const opener = notebookPathOpener !== null && notebookPathOpener !== void 0 ? notebookPathOpener : defaultNotebookPathOpener;\n if (docManager) {\n app.commands.addCommand(CommandIDs.handleLink, {\n label: trans.__('Handle Local Link'),\n execute: (args) => {\n const path = args['path'];\n if (path === undefined || path === null) {\n return;\n }\n return docManager.services.contents\n .get(path, { content: false })\n .then((model) => {\n const baseUrl = PageConfig.getBaseUrl();\n opener.open({\n prefix: URLExt.join(baseUrl, 'tree'),\n path: model.path,\n target: '_blank',\n });\n });\n },\n });\n }\n return new RenderMimeRegistry({\n initialFactories: standardRendererFactories,\n linkHandler: !docManager\n ? undefined\n : {\n handleLink: (node, path, id) => {\n // If node has the download attribute explicitly set, use the\n // default browser downloading behavior.\n if (node.tagName === 'A' && node.hasAttribute('download')) {\n return;\n }\n app.commandLinker.connectNode(node, CommandIDs.handleLink, {\n path,\n id,\n });\n },\n },\n latexTypesetter: latexTypesetter !== null && latexTypesetter !== void 0 ? latexTypesetter : undefined,\n markdownParser: markdownParser !== null && markdownParser !== void 0 ? markdownParser : undefined,\n translator: translator !== null && translator !== void 0 ? translator : undefined,\n sanitizer: sanitizer !== null && sanitizer !== void 0 ? sanitizer : undefined,\n });\n },\n};\n/**\n * The default Jupyter Notebook application shell.\n */\nconst shell = {\n id: '@jupyter-notebook/application-extension:shell',\n description: 'The default Jupyter Notebook application shell.',\n autoStart: true,\n provides: INotebookShell,\n optional: [ISettingRegistry],\n activate: (app, settingRegistry) => {\n if (!(app.shell instanceof NotebookShell)) {\n throw new Error(`${shell.id} did not find a NotebookShell instance.`);\n }\n const notebookShell = app.shell;\n if (settingRegistry) {\n settingRegistry\n .load(shell.id)\n .then((settings) => {\n // Add a layer of customization to support app shell mode\n const customLayout = settings.composite['layout'];\n // Restore the layout.\n void notebookShell.restoreLayout(customLayout);\n })\n .catch((reason) => {\n console.error('Fail to load settings for the layout restorer.');\n console.error(reason);\n });\n }\n return notebookShell;\n },\n};\n/**\n * The default splash screen provider.\n */\nconst splash = {\n id: '@jupyter-notebook/application-extension:splash',\n description: 'Provides an empty splash screen.',\n autoStart: true,\n provides: ISplashScreen,\n activate: (app) => {\n const { restored } = app;\n const splash = document.createElement('div');\n splash.style.position = 'absolute';\n splash.style.width = '100%';\n splash.style.height = '100%';\n splash.style.zIndex = '10';\n return {\n show: (light = true) => {\n splash.style.backgroundColor = light ? 'white' : '#111111';\n document.body.appendChild(splash);\n return new DisposableDelegate(async () => {\n await restored;\n document.body.removeChild(splash);\n });\n },\n };\n },\n};\n/**\n * The default JupyterLab application status provider.\n */\nconst status = {\n id: '@jupyter-notebook/application-extension:status',\n description: 'The default JupyterLab application status provider.',\n autoStart: true,\n provides: ILabStatus,\n activate: (app) => {\n if (!(app instanceof NotebookApp)) {\n throw new Error(`${status.id} must be activated in Jupyter Notebook.`);\n }\n return app.status;\n },\n};\n/**\n * A plugin to display the document title in the browser tab title\n */\nconst tabTitle = {\n id: '@jupyter-notebook/application-extension:tab-title',\n description: 'A plugin to display the document title in the browser tab title.',\n autoStart: true,\n requires: [INotebookShell],\n activate: (app, shell) => {\n const setTabTitle = () => {\n const current = shell.currentWidget;\n if (current instanceof ConsolePanel) {\n const update = () => {\n const title = current.sessionContext.path || current.sessionContext.name;\n const basename = PathExt.basename(title);\n // Strip the \".ipynb\" suffix from filenames for display in tab titles.\n document.title = basename.replace(STRIP_IPYNB, '');\n };\n current.sessionContext.sessionChanged.connect(update);\n update();\n return;\n }\n else if (current instanceof DocumentWidget) {\n const update = () => {\n const basename = PathExt.basename(current.context.path);\n document.title = basename.replace(STRIP_IPYNB, '');\n };\n current.context.pathChanged.connect(update);\n update();\n }\n };\n shell.currentChanged.connect(setTabTitle);\n setTabTitle();\n },\n};\n/**\n * A plugin to display and rename the title of a file\n */\nconst title = {\n id: '@jupyter-notebook/application-extension:title',\n description: 'A plugin to display and rename the title of a file.',\n autoStart: true,\n requires: [INotebookShell, ITranslator],\n optional: [IDocumentManager, IRouter, IToolbarWidgetRegistry],\n activate: (app, shell, translator, docManager, router, toolbarRegistry) => {\n const { commands } = app;\n const trans = translator.load('notebook');\n const node = document.createElement('div');\n if (toolbarRegistry) {\n toolbarRegistry.addFactory('TopBar', 'widgetTitle', (toolbar) => {\n const widget = new Widget({ node });\n widget.id = 'jp-title';\n return widget;\n });\n }\n const addTitle = async () => {\n const current = shell.currentWidget;\n if (!current || !(current instanceof DocumentWidget)) {\n return;\n }\n if (node.children.length > 0) {\n return;\n }\n const h = document.createElement('h1');\n h.textContent = current.title.label.replace(STRIP_IPYNB, '');\n node.appendChild(h);\n node.style.marginLeft = '10px';\n if (!docManager) {\n return;\n }\n const isEnabled = () => {\n const { currentWidget } = shell;\n return !!(currentWidget && docManager.contextForWidget(currentWidget));\n };\n commands.addCommand(CommandIDs.duplicate, {\n label: () => trans.__('Duplicate'),\n isEnabled,\n execute: async () => {\n if (!isEnabled()) {\n return;\n }\n // Duplicate the file, and open the new file.\n const result = await docManager.duplicate(current.context.path);\n await commands.execute('docmanager:open', { path: result.path });\n },\n });\n commands.addCommand(CommandIDs.rename, {\n label: () => trans.__('Rename…'),\n isEnabled,\n execute: async () => {\n var _a;\n if (!isEnabled()) {\n return;\n }\n try {\n const result = await renameDialog(docManager, current.context);\n // activate the current widget to bring the focus\n if (current) {\n current.activate();\n }\n if (result === null) {\n return;\n }\n }\n catch (error) {\n showErrorMessage(trans.__('Rename Error'), error.message ||\n trans.__('An error occurred while renaming the file.'));\n return;\n }\n const newPath = current.context.path;\n const basename = PathExt.basename(newPath);\n h.textContent = basename.replace(STRIP_IPYNB, '');\n if (!router) {\n return;\n }\n const matches = (_a = router.current.path.match(TREE_PATTERN)) !== null && _a !== void 0 ? _a : [];\n const [, route, path] = matches;\n if (!route || !path) {\n return;\n }\n const encoded = encodeURIComponent(newPath);\n router.navigate(`/${route}/${encoded}`, {\n skipRouting: true,\n });\n },\n });\n node.onclick = async () => {\n void commands.execute(CommandIDs.rename);\n };\n };\n shell.currentChanged.connect(addTitle);\n void addTitle();\n },\n};\n/**\n * Plugin to toggle the top header visibility.\n */\nconst topVisibility = {\n id: '@jupyter-notebook/application-extension:top',\n description: 'Plugin to toggle the top header visibility.',\n requires: [INotebookShell, ITranslator],\n optional: [ISettingRegistry, ICommandPalette],\n activate: (app, notebookShell, translator, settingRegistry, palette) => {\n const trans = translator.load('notebook');\n const top = notebookShell.top;\n const pluginId = topVisibility.id;\n app.commands.addCommand(CommandIDs.toggleTop, {\n label: trans.__('Show Header'),\n execute: () => {\n top.setHidden(top.isVisible);\n if (settingRegistry) {\n void settingRegistry.set(pluginId, 'visible', top.isVisible ? 'yes' : 'no');\n }\n },\n isToggled: () => top.isVisible,\n });\n let adjustToScreen = false;\n if (settingRegistry) {\n const loadSettings = settingRegistry.load(pluginId);\n const updateSettings = (settings) => {\n // 'visible' property from user preferences or default settings\n let visible = settings.get('visible').composite;\n if (settings.user.visible !== undefined) {\n visible = settings.user.visible;\n }\n top.setHidden(visible === 'no');\n // adjust to screen from user preferences or default settings\n adjustToScreen = visible === 'automatic';\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 if (palette) {\n palette.addItem({ command: CommandIDs.toggleTop, category: 'View' });\n }\n const onChanged = () => {\n if (!adjustToScreen) {\n return;\n }\n if (app.format === 'desktop') {\n notebookShell.expandTop();\n }\n else {\n notebookShell.collapseTop();\n }\n };\n // listen on format change (mobile and desktop) to make the view more compact\n app.formatChanged.connect(onChanged);\n },\n autoStart: true,\n};\n/**\n * Plugin to toggle the left or right side panel's visibility.\n */\nconst sidePanelVisibility = {\n id: '@jupyter-notebook/application-extension:sidepanel',\n description: 'Plugin to toggle the visibility of left or right side panel.',\n requires: [INotebookShell, ITranslator],\n optional: [IMainMenu, ICommandPalette],\n autoStart: true,\n activate: (app, notebookShell, translator, menu, palette) => {\n const trans = translator.load('notebook');\n /* Arguments for togglePanel command:\n * side, left or right area\n * title, widget title to show in the menu\n * id, widget ID to activate in the side panel\n */\n app.commands.addCommand(CommandIDs.togglePanel, {\n label: (args) => args['title'],\n caption: (args) => {\n // We do not substitute the parameter into the string because the parameter is not\n // localized (e.g., it is always 'left') even though the string is localized.\n if (args['side'] === 'left') {\n return trans.__('Show %1 in the left sidebar', args['title']);\n }\n else if (args['side'] === 'right') {\n return trans.__('Show %1 in the right sidebar', args['title']);\n }\n return trans.__('Show %1 in the sidebar', args['title']);\n },\n execute: (args) => {\n var _a, _b;\n switch (args['side']) {\n case 'left':\n if (notebookShell.leftCollapsed) {\n notebookShell.expandLeft(args.id);\n }\n else if (((_a = notebookShell.leftHandler.currentWidget) === null || _a === void 0 ? void 0 : _a.id) !== args.id) {\n notebookShell.expandLeft(args.id);\n }\n else {\n notebookShell.collapseLeft();\n if (notebookShell.currentWidget) {\n notebookShell.activateById(notebookShell.currentWidget.id);\n }\n }\n break;\n case 'right':\n if (notebookShell.rightCollapsed) {\n notebookShell.expandRight(args.id);\n }\n else if (((_b = notebookShell.rightHandler.currentWidget) === null || _b === void 0 ? void 0 : _b.id) !== args.id) {\n notebookShell.expandRight(args.id);\n }\n else {\n notebookShell.collapseRight();\n if (notebookShell.currentWidget) {\n notebookShell.activateById(notebookShell.currentWidget.id);\n }\n }\n break;\n }\n },\n isToggled: (args) => {\n switch (args['side']) {\n case 'left': {\n if (notebookShell.leftCollapsed) {\n return false;\n }\n const currentWidget = notebookShell.leftHandler.currentWidget;\n if (!currentWidget) {\n return false;\n }\n return currentWidget.id === args['id'];\n }\n case 'right': {\n if (notebookShell.rightCollapsed) {\n return false;\n }\n const currentWidget = notebookShell.rightHandler.currentWidget;\n if (!currentWidget) {\n return false;\n }\n return currentWidget.id === args['id'];\n }\n }\n return false;\n },\n });\n const sidePanelMenu = {\n left: null,\n right: null,\n };\n /**\n * The function which adds entries to the View menu for each widget of a side panel.\n *\n * @param area - 'left' or 'right', the area of the side panel.\n * @param entryLabel - the name of the main entry in the View menu for that side panel.\n * @returns - The disposable menu added to the View menu or null.\n */\n const updateMenu = (area, entryLabel) => {\n var _a;\n if (menu === null) {\n return null;\n }\n // Remove the previous menu entry for this side panel.\n (_a = sidePanelMenu[area]) === null || _a === void 0 ? void 0 : _a.dispose();\n // Creates a new menu entry and populates it with side panel widgets.\n const newMenu = new Menu({ commands: app.commands });\n newMenu.title.label = entryLabel;\n const widgets = notebookShell.widgets(area);\n let menuToAdd = false;\n for (const widget of widgets) {\n newMenu.addItem({\n command: CommandIDs.togglePanel,\n args: {\n side: area,\n title: `Show ${widget.title.caption}`,\n id: widget.id,\n },\n });\n menuToAdd = true;\n }\n // If there are widgets, add the menu to the main menu entry.\n if (menuToAdd) {\n sidePanelMenu[area] = menu.viewMenu.addItem({\n type: 'submenu',\n submenu: newMenu,\n });\n }\n };\n app.restored.then(() => {\n // Create menu entries for the left and right panel.\n if (menu) {\n const getSidePanelLabel = (area) => {\n if (area === 'left') {\n return trans.__('Left Sidebar');\n }\n else {\n return trans.__('Right Sidebar');\n }\n };\n const leftArea = notebookShell.leftHandler.area;\n const leftLabel = getSidePanelLabel(leftArea);\n updateMenu(leftArea, leftLabel);\n const rightArea = notebookShell.rightHandler.area;\n const rightLabel = getSidePanelLabel(rightArea);\n updateMenu(rightArea, rightLabel);\n const handleSidePanelChange = (sidePanel, widget) => {\n const label = getSidePanelLabel(sidePanel.area);\n updateMenu(sidePanel.area, label);\n };\n notebookShell.leftHandler.widgetAdded.connect(handleSidePanelChange);\n notebookShell.leftHandler.widgetRemoved.connect(handleSidePanelChange);\n notebookShell.rightHandler.widgetAdded.connect(handleSidePanelChange);\n notebookShell.rightHandler.widgetRemoved.connect(handleSidePanelChange);\n }\n // Add palette entries for side panels.\n if (palette) {\n const sidePanelPalette = new SidePanelPalette({\n commandPalette: palette,\n command: CommandIDs.togglePanel,\n });\n notebookShell.leftHandler.widgets.forEach((widget) => {\n sidePanelPalette.addItem(widget, notebookShell.leftHandler.area);\n });\n notebookShell.rightHandler.widgets.forEach((widget) => {\n sidePanelPalette.addItem(widget, notebookShell.rightHandler.area);\n });\n // Update menu and palette when widgets are added or removed from side panels.\n notebookShell.leftHandler.widgetAdded.connect((sidePanel, widget) => {\n sidePanelPalette.addItem(widget, sidePanel.area);\n });\n notebookShell.leftHandler.widgetRemoved.connect((sidePanel, widget) => {\n sidePanelPalette.removeItem(widget, sidePanel.area);\n });\n notebookShell.rightHandler.widgetAdded.connect((sidePanel, widget) => {\n sidePanelPalette.addItem(widget, sidePanel.area);\n });\n notebookShell.rightHandler.widgetRemoved.connect((sidePanel, widget) => {\n sidePanelPalette.removeItem(widget, sidePanel.area);\n });\n }\n });\n },\n};\n/**\n * A plugin for defining keyboard shortcuts specific to the notebook application.\n */\nconst shortcuts = {\n id: '@jupyter-notebook/application-extension:shortcuts',\n description: 'A plugin for defining keyboard shortcuts specific to the notebook application.',\n autoStart: true,\n activate: (app) => {\n // for now this plugin is mostly useful for defining keyboard shortcuts\n // specific to the notebook application\n },\n};\n/**\n * The default tree route resolver plugin.\n */\nconst tree = {\n id: '@jupyter-notebook/application-extension:tree-resolver',\n description: 'The default tree route resolver plugin.',\n autoStart: true,\n requires: [IRouter],\n provides: JupyterFrontEnd.ITreeResolver,\n activate: (app, router) => {\n const { commands } = app;\n const set = new DisposableSet();\n const delegate = new PromiseDelegate();\n const treePattern = new RegExp('/(/tree/.*)?');\n set.add(commands.addCommand(CommandIDs.resolveTree, {\n execute: (async (args) => {\n var _a;\n if (set.isDisposed) {\n return;\n }\n const query = URLExt.queryStringToObject((_a = args.search) !== null && _a !== void 0 ? _a : '');\n const browser = query['file-browser-path'] || '';\n // Remove the file browser path from the query string.\n delete query['file-browser-path'];\n // Clean up artifacts immediately upon routing.\n set.dispose();\n delegate.resolve({ browser, file: PageConfig.getOption('treePath') });\n }),\n }));\n set.add(router.register({ command: CommandIDs.resolveTree, pattern: treePattern }));\n // If a route is handled by the router without the tree command being\n // invoked, resolve to `null` and clean up artifacts.\n const listener = () => {\n if (set.isDisposed) {\n return;\n }\n set.dispose();\n delegate.resolve(null);\n };\n router.routed.connect(listener);\n set.add(new DisposableDelegate(() => {\n router.routed.disconnect(listener);\n }));\n return { paths: delegate.promise };\n },\n};\n/**\n * Plugin to update tree path.\n */\nconst treePathUpdater = {\n id: '@jupyter-notebook/application-extension:tree-updater',\n description: 'Plugin to update tree path.',\n requires: [IRouter],\n provides: ITreePathUpdater,\n activate: (app, router) => {\n function updateTreePath(treePath) {\n if (treePath !== PageConfig.getOption('treePath')) {\n const path = URLExt.join(PageConfig.getOption('baseUrl') || '/', 'tree', URLExt.encodeParts(treePath));\n router.navigate(path, { skipRouting: true });\n // Persist the new tree path to PageConfig as it is used elsewhere at runtime.\n PageConfig.setOption('treePath', treePath);\n }\n }\n return updateTreePath;\n },\n autoStart: true,\n};\n/**\n * Translator plugin\n */\nconst translator = {\n id: '@jupyter-notebook/application-extension:translator',\n description: 'Translator plugin',\n requires: [INotebookShell, ITranslator],\n autoStart: true,\n activate: (app, notebookShell, translator) => {\n notebookShell.translator = translator;\n },\n};\n/**\n * Zen mode plugin\n */\nconst zen = {\n id: '@jupyter-notebook/application-extension:zen',\n description: 'Zen mode plugin.',\n autoStart: true,\n requires: [ITranslator],\n optional: [ICommandPalette, INotebookShell],\n activate: (app, translator, palette, notebookShell) => {\n const { commands } = app;\n const elem = document.documentElement;\n const trans = translator.load('notebook');\n const toggleOn = () => {\n notebookShell === null || notebookShell === void 0 ? void 0 : notebookShell.collapseTop();\n notebookShell === null || notebookShell === void 0 ? void 0 : notebookShell.menu.setHidden(true);\n zenModeEnabled = true;\n };\n const toggleOff = () => {\n notebookShell === null || notebookShell === void 0 ? void 0 : notebookShell.expandTop();\n notebookShell === null || notebookShell === void 0 ? void 0 : notebookShell.menu.setHidden(false);\n zenModeEnabled = false;\n };\n let zenModeEnabled = false;\n commands.addCommand(CommandIDs.toggleZen, {\n label: trans.__('Toggle Zen Mode'),\n execute: () => {\n if (!zenModeEnabled) {\n elem.requestFullscreen();\n toggleOn();\n }\n else {\n document.exitFullscreen();\n toggleOff();\n }\n },\n });\n document.addEventListener('fullscreenchange', () => {\n if (!document.fullscreenElement) {\n toggleOff();\n }\n });\n if (palette) {\n palette.addItem({ command: CommandIDs.toggleZen, category: 'Mode' });\n }\n },\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [\n dirty,\n info,\n logo,\n menus,\n menuSpacer,\n opener,\n pages,\n pathOpener,\n paths,\n rendermime,\n shell,\n sidePanelVisibility,\n shortcuts,\n splash,\n status,\n tabTitle,\n title,\n topVisibility,\n tree,\n treePathUpdater,\n translator,\n zen,\n];\nexport default plugins;\n"],"names":[],"sourceRoot":""}