notebook 7.2.1__py3-none-any.whl → 7.2.2__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 (168) hide show
  1. notebook/_version.py +1 -1
  2. notebook/static/{6078.bundle.js → 1053.bundle.js} +1 -1
  3. notebook/static/113.bundle.js +1 -1
  4. notebook/static/1198.bundle.js +1 -1
  5. notebook/static/134.bundle.js +1 -1
  6. notebook/static/1408.bundle.js +1 -1
  7. notebook/static/1496.bundle.js +1 -1
  8. notebook/static/1647.bundle.js +1 -1
  9. notebook/static/1650.bundle.js +1 -1
  10. notebook/static/1684.bundle.js +1 -1
  11. notebook/static/1809.bundle.js +1 -1
  12. notebook/static/1827.bundle.js +1 -1
  13. notebook/static/1833.bundle.js +1 -1
  14. notebook/static/1846.bundle.js +1 -1
  15. notebook/static/1958.bundle.js +1 -1
  16. notebook/static/1962.bundle.js +1 -1
  17. notebook/static/2007.bundle.js +1 -1
  18. notebook/static/2088.bundle.js +1 -1
  19. notebook/static/2089.bundle.js +1 -1
  20. notebook/static/2122.bundle.js +1 -1
  21. notebook/static/2167.bundle.js +1 -1
  22. notebook/static/2184.bundle.js +1 -1
  23. notebook/static/2311.bundle.js +1 -1
  24. notebook/static/2401.bundle.js +1 -1
  25. notebook/static/2479.bundle.js +1 -1
  26. notebook/static/2489.bundle.js +1 -1
  27. notebook/static/2607.bundle.js +1 -1
  28. notebook/static/2615.bundle.js +1 -1
  29. notebook/static/2636.bundle.js +1 -1
  30. notebook/static/2924.bundle.js +1 -1
  31. notebook/static/2944.bundle.js +1 -1
  32. notebook/static/3129.bundle.js +1 -1
  33. notebook/static/3146.bundle.js +1 -1
  34. notebook/static/3187.bundle.js +1 -1
  35. notebook/static/3213.bundle.js +1 -1
  36. notebook/static/3340.bundle.js +1 -1
  37. notebook/static/3360.bundle.js +1 -1
  38. notebook/static/3466.bundle.js +1 -1
  39. notebook/static/3512.bundle.js +1 -1
  40. notebook/static/3676.bundle.js +1 -1
  41. notebook/static/3680.bundle.js +1 -1
  42. notebook/static/374.bundle.js +1 -1
  43. notebook/static/3768.bundle.js +1 -1
  44. notebook/static/377.bundle.js +1 -1
  45. notebook/static/3863.bundle.js +1 -1
  46. notebook/static/3881.bundle.js +1 -1
  47. notebook/static/4042.bundle.js +1 -1
  48. notebook/static/4212.bundle.js +1 -1
  49. notebook/static/4382.bundle.js +1 -1
  50. notebook/static/4630.bundle.js +1 -1
  51. notebook/static/4645.bundle.js +1 -1
  52. notebook/static/4811.bundle.js +1 -1
  53. notebook/static/4837.bundle.js +1 -1
  54. notebook/static/5099.bundle.js +1 -1
  55. notebook/static/5135.bundle.js +1 -1
  56. notebook/static/5254.bundle.js +1 -1
  57. notebook/static/5263.bundle.js +1 -1
  58. notebook/static/5313.bundle.js +1 -1
  59. notebook/static/5325.bundle.js +1 -1
  60. notebook/static/5346.bundle.js +1 -1
  61. notebook/static/5425.bundle.js +1 -1
  62. notebook/static/5426.bundle.js +1 -1
  63. notebook/static/545.bundle.js +1 -1
  64. notebook/static/5573.bundle.js +1 -1
  65. notebook/static/5601.bundle.js +1 -1
  66. notebook/static/5733.bundle.js +1 -1
  67. notebook/static/5912.bundle.js +1 -1
  68. notebook/static/5921.bundle.js +1 -1
  69. notebook/static/6017.bundle.js +1 -1
  70. notebook/static/6139.bundle.js +1 -1
  71. notebook/static/62.bundle.js +1 -1
  72. notebook/static/6281.bundle.js +1 -1
  73. notebook/static/6345.bundle.js +1 -1
  74. notebook/static/{2756.bundle.js → 6593.bundle.js} +1 -1
  75. notebook/static/6604.bundle.js +1 -1
  76. notebook/static/6621.bundle.js +1 -1
  77. notebook/static/6627.bundle.js +1 -1
  78. notebook/static/6748.bundle.js +1 -1
  79. notebook/static/6815.bundle.js +1 -1
  80. notebook/static/6853.bundle.js +1 -1
  81. notebook/static/6893.bundle.js +1 -1
  82. notebook/static/690.bundle.js +1 -1
  83. notebook/static/6962.bundle.js +1 -1
  84. notebook/static/6999.bundle.js +1 -1
  85. notebook/static/7226.bundle.js +1 -1
  86. notebook/static/7252.bundle.js +1 -1
  87. notebook/static/7259.bundle.js +1 -1
  88. notebook/static/7302.bundle.js +1 -1
  89. notebook/static/7386.bundle.js +1 -1
  90. notebook/static/7391.bundle.js +1 -1
  91. notebook/static/7506.bundle.js +2 -2
  92. notebook/static/7543.bundle.js +1 -1
  93. notebook/static/7603.bundle.js +1 -1
  94. notebook/static/7639.bundle.js +1 -1
  95. notebook/static/7655.bundle.js +1 -1
  96. notebook/static/7684.bundle.js +1 -1
  97. notebook/static/7812.bundle.js +1 -1
  98. notebook/static/7819.bundle.js +1 -1
  99. notebook/static/7854.bundle.js +1 -1
  100. notebook/static/7900.bundle.js +1 -1
  101. notebook/static/7906.bundle.js +1 -1
  102. notebook/static/8471.bundle.js +1 -1
  103. notebook/static/8579.bundle.js +1 -1
  104. notebook/static/8633.bundle.js +1 -1
  105. notebook/static/8771.bundle.js +1 -1
  106. notebook/static/8781.bundle.js +1 -1
  107. notebook/static/8845.bundle.js +1 -1
  108. notebook/static/8875.bundle.js +1 -1
  109. notebook/static/8907.bundle.js +1 -1
  110. notebook/static/8928.bundle.js +1 -1
  111. notebook/static/893.bundle.js +1 -1
  112. notebook/static/901.bundle.js +1 -1
  113. notebook/static/9068.bundle.js +1 -1
  114. notebook/static/9136.bundle.js +1 -1
  115. notebook/static/9151.bundle.js +1 -1
  116. notebook/static/9161.bundle.js +1 -1
  117. notebook/static/9268.bundle.js +1 -1
  118. notebook/static/9335.bundle.js +1 -1
  119. notebook/static/9341.bundle.js +1 -1
  120. notebook/static/9380.bundle.js +1 -1
  121. notebook/static/9605.bundle.js +1 -1
  122. notebook/static/9638.bundle.js +1 -1
  123. notebook/static/9680.bundle.js +1 -1
  124. notebook/static/9685.bundle.js +1 -1
  125. notebook/static/9752.bundle.js +1 -1
  126. notebook/static/9821.bundle.js +1 -1
  127. notebook/static/9852.bundle.js +1 -1
  128. notebook/static/bundle.js +1 -1
  129. notebook/static/third-party-licenses.json +101 -101
  130. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/package.json.orig +14 -14
  131. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/documentsearch-extension/package.json.orig +4 -4
  132. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/help-extension/package.json.orig +6 -6
  133. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/package.json.orig +9 -9
  134. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/tree-extension/package.json.orig +15 -15
  135. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/package.json +11 -11
  136. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/schemas/@jupyter-notebook/lab-extension/package.json.orig +10 -10
  137. notebook-7.2.1.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/678.af323c3ff765541c6aa4.js → notebook-7.2.2.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/42.33f638f0a4239bed9676.js +1 -1
  138. notebook-7.2.1.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/568.9cd06af416befd593828.js → notebook-7.2.2.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/568.3dd58d88e32a98358776.js +1 -1
  139. notebook-7.2.2.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/928.bf5955f09ff1e05edfbb.js +1 -0
  140. notebook-7.2.2.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/remoteEntry.04dfa589925e7e7c6a3d.js +1 -0
  141. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/third-party-licenses.json +2 -2
  142. {notebook-7.2.1.dist-info → notebook-7.2.2.dist-info}/METADATA +1 -1
  143. {notebook-7.2.1.dist-info → notebook-7.2.2.dist-info}/RECORD +166 -166
  144. {notebook-7.2.1.dist-info → notebook-7.2.2.dist-info}/WHEEL +1 -1
  145. notebook-7.2.1.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/928.6d26fccf0ddab13bf5bb.js +0 -1
  146. notebook-7.2.1.data/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/remoteEntry.d04be841d48ffe2a9bdd.js +0 -1
  147. {notebook-7.2.1.data → notebook-7.2.2.data}/data/etc/jupyter/jupyter_server_config.d/notebook.json +0 -0
  148. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/applications/jupyter-notebook.desktop +0 -0
  149. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/icons/hicolor/scalable/apps/notebook.svg +0 -0
  150. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/menus.json +0 -0
  151. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/pages.json +0 -0
  152. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/shell.json +0 -0
  153. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/title.json +0 -0
  154. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/top.json +0 -0
  155. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/application-extension/zen.json +0 -0
  156. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/help-extension/open.json +0 -0
  157. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/checkpoints.json +0 -0
  158. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/edit-notebook-metadata.json +0 -0
  159. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/kernel-logo.json +0 -0
  160. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/notebook-extension/scroll-output.json +0 -0
  161. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/tree-extension/file-actions.json +0 -0
  162. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/lab/schemas/@jupyter-notebook/tree-extension/widget.json +0 -0
  163. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/schemas/@jupyter-notebook/lab-extension/interface-switcher.json +0 -0
  164. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/schemas/@jupyter-notebook/lab-extension/launch-tree.json +0 -0
  165. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/93.eae3497dd223d842d198.js +0 -0
  166. {notebook-7.2.1.data → notebook-7.2.2.data}/data/share/jupyter/labextensions/@jupyter-notebook/lab-extension/static/style.js +0 -0
  167. {notebook-7.2.1.dist-info → notebook-7.2.2.dist-info}/entry_points.txt +0 -0
  168. {notebook-7.2.1.dist-info → notebook-7.2.2.dist-info}/licenses/LICENSE +0 -0
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[8471],{8471:(e,t,n)=>{n.r(t),n.d(t,{ToolbarItems:()=>E,default:()=>T,downloadPlugin:()=>W,openBrowserTabPlugin:()=>F,pathStatusPlugin:()=>I,savingStatusPlugin:()=>S});var o,a,r=n(44604),i=n(53312),l=n(68722),d=n(5094),s=n(23295),c=n(71098),u=n(12030),m=n(35613),g=n(33625),p=n(20998),h=n(81997),v=n(63485),f=n(78156),w=n(41053);!function(e){e.clearRecents="docmanager:clear-recents"}(o||(o={})),function(e){e.recentsManager="@jupyterlab/docmanager-extension:recents",e.reopenClosed="@jupyterlab/docmanager-extension:reopen-recently-closed",e.mainPlugin="@jupyterlab/docmanager-extension:plugin"}(a||(a={}));const _={id:a.recentsManager,description:"Provides a manager of recently opened and closed documents.",autoStart:!0,requires:[w.IStateDB],optional:[s.ISettingRegistry,u.ITranslator],provides:d.IRecentsManager,activate:(e,t,n,r)=>{const{serviceManager:i}=e,l=(null!=r?r:u.nullTranslator).load("jupyterlab"),s=new d.RecentsManager({stateDB:t,contents:i.contents}),c=e=>{s.maximalRecentsLength=e.get("maxNumberRecents").composite};return n&&Promise.all([e.restored,n.load(a.mainPlugin)]).then((([e,t])=>{t.changed.connect(c),c(t)})),e.commands.addCommand(o.clearRecents,{execute:()=>{s.clearRecents()},isEnabled:()=>0!=s.recentlyOpened.length||0!=s.recentlyClosed.length,label:l.__("Clear Recent Documents"),caption:l.__("Clear the list of recently opened items.")}),s}};var b;!function(e){e.clone="docmanager:clone",e.deleteFile="docmanager:delete-file",e.newUntitled="docmanager:new-untitled",e.open="docmanager:open",e.openBrowserTab="docmanager:open-browser-tab",e.reload="docmanager:reload",e.rename="docmanager:rename",e.del="docmanager:delete",e.duplicate="docmanager:duplicate",e.restoreCheckpoint="docmanager:restore-checkpoint",e.save="docmanager:save",e.saveAll="docmanager:save-all",e.saveAs="docmanager:save-as",e.download="docmanager:download",e.toggleAutosave="docmanager:toggle-autosave",e.showInFileBrowser="docmanager:show-in-file-browser"}(b||(b={}));const y="@jupyterlab/docmanager-extension:plugin",C={id:"@jupyterlab/docmanager-extension:opener",description:"Provides the widget opener.",autoStart:!0,provides:d.IDocumentWidgetOpener,activate:e=>{const{shell:t}=e;return new class{constructor(){this._opened=new h.Signal(this)}open(e,n){e.id||(e.id="document-manager-"+ ++R.id),e.title.dataset={type:"document-title",...e.title.dataset},e.isAttached||t.add(e,"main",n||{}),t.activateById(e.id),this._opened.emit(e)}get opened(){return this._opened}}}},x={id:"@jupyterlab/docmanager-extension:contexts",description:"Adds the handling of opened documents dirty state.",autoStart:!0,requires:[d.IDocumentManager,d.IDocumentWidgetOpener],optional:[r.ILabStatus],activate:(e,t,n,o)=>{const a=new WeakSet;n.opened.connect(((e,n)=>{const r=t.contextForWidget(n);r&&!a.has(r)&&(o&&function(e,t){let n=null;const o=(t,o)=>{"dirty"===o.name&&(!0===o.newValue?n||(n=e.setDirty()):n&&(n.dispose(),n=null))};t.ready.then((()=>{t.model.stateChanged.connect(o),t.model.dirty&&(n=e.setDirty())})),t.disposed.connect((()=>{n&&n.dispose()}))}(o,r),a.add(r))}))}},D={id:"@jupyterlab/docmanager-extension:manager",description:"Provides the document manager.",provides:d.IDocumentManager,requires:[d.IDocumentWidgetOpener],optional:[u.ITranslator,r.ILabStatus,i.ISessionContextDialogs,r.JupyterLab.IInfo,d.IRecentsManager],activate:(e,t,n,o,a,r,l)=>{var s;const{serviceManager:c,docRegistry:m}=e,g=null!=n?n:u.nullTranslator,p=null!=a?a:new i.SessionContextDialogs({translator:g}),h=e.restored.then((()=>{}));return new d.DocumentManager({registry:m,manager:c,opener:t,when:h,setBusy:null!==(s=o&&(()=>o.setBusy()))&&void 0!==s?s:void 0,sessionDialogs:p,translator:null!=g?g:u.nullTranslator,isConnectedCallback:()=>!r||r.isConnected,recentsManager:null!=l?l:void 0})}},k={id:y,description:"Adds commands and settings to the document manager.",autoStart:!0,requires:[d.IDocumentManager,d.IDocumentWidgetOpener,s.ISettingRegistry],optional:[u.ITranslator,i.ICommandPalette,r.ILabShell],activate:(e,t,n,o,a,r,s)=>{const c=(a=null!=a?a:u.nullTranslator).load("jupyterlab"),h=e.docRegistry;!function(e,t,n,o,a,r,s){var c;const u=a.load("jupyterlab"),{commands:p,shell:h}=e,v=u.__("File Operations"),f=()=>{const{currentWidget:e}=h;return!(!e||!t.contextForWidget(e))},w=()=>{var e;const{currentWidget:n}=h;if(!n)return!1;const o=t.contextForWidget(n);return!!(null===(e=null==o?void 0:o.contentsModel)||void 0===e?void 0:e.writable)},_=e=>i.Notification.warning(u.__('%1 is read-only. Use "Save as…" instead.',e),{autoClose:5e3});r&&function(e,t,n,o,a){const r=a.load("jupyterlab"),{commands:l}=e,s=()=>{var o;const a=/[Pp]ath:\s?(.*)\n?/,r=e.contextMenuHitTest((e=>{var t;return!!(null===(t=e.title)||void 0===t?void 0:t.match(a))})),i=null==r?void 0:r.title.match(a);return null!==(o=i&&t.findWidget(i[1],null))&&void 0!==o?o:n.currentWidget},c=()=>{const{currentWidget:e}=n;return!(!e||!t.contextForWidget(e))};l.addCommand(b.clone,{label:()=>r.__("New View for %1",M(s(),t)),isEnabled:c,execute:e=>{const n=s(),a=e.options||{mode:"split-right"};if(!n)return;const r=t.cloneWidget(n);r&&o.open(r,a)}}),l.addCommand(b.rename,{label:()=>{let e=M(s(),t);return e&&(e=" "+e),r.__("Rename%1…",e)},isEnabled:c,execute:()=>{if(c()){const e=t.contextForWidget(s());return(0,d.renameDialog)(t,e)}}}),l.addCommand(b.duplicate,{label:()=>r.__("Duplicate %1",M(s(),t)),isEnabled:c,execute:()=>{if(c()){const e=t.contextForWidget(s());if(!e)return;return t.duplicate(e.path)}}}),l.addCommand(b.del,{label:()=>r.__("Delete %1",M(s(),t)),isEnabled:c,execute:async()=>{if(c()){const n=t.contextForWidget(s());if(!n)return;(await(0,i.showDialog)({title:r.__("Delete"),body:r.__("Are you sure you want to delete %1",n.path),buttons:[i.Dialog.cancelButton(),i.Dialog.warnButton({label:r.__("Delete")})]})).button.accept&&await e.commands.execute("docmanager:delete-file",{path:n.path})}}}),l.addCommand(b.showInFileBrowser,{label:()=>r.__("Show in File Browser"),isEnabled:c,execute:async()=>{const e=s(),n=e&&t.contextForWidget(e);n&&(await l.execute("filebrowser:activate",{path:n.path}),await l.execute("filebrowser:go-to-path",{path:n.path}))}}),n.currentChanged.connect((()=>{[b.clone,b.rename,b.duplicate,b.del,b.showInFileBrowser].forEach((t=>{e.commands.notifyCommandChanged(t)}))}))}(e,t,r,n,a),p.addCommand(b.deleteFile,{label:()=>`Delete ${M(h.currentWidget,t)}`,execute:e=>{const n=void 0===e.path?"":e.path;if(!n){const e=b.deleteFile;throw new Error(`A non-empty path is required for ${e}.`)}return t.deleteFile(n)}}),p.addCommand(b.newUntitled,{execute:e=>{const n=e.error||u.__("Error"),o=void 0===e.path?"":e.path,a={type:e.type,path:o};return"file"===e.type&&(a.ext=e.ext||".txt"),t.services.contents.newUntitled(a).catch((e=>(0,i.showErrorMessage)(n,e)))},label:e=>e.label||`New ${e.type}`}),p.addCommand(b.open,{execute:e=>{const n=void 0===e.path?"":e.path,o=e.factory||void 0,a=null==e?void 0:e.kernel,r=e.options||void 0;return t.services.contents.get(n,{content:!1}).then((()=>t.openOrReveal(n,o,a,r)))},iconClass:e=>e.icon||"",label:e=>{var t;return null!==(t=e.label||e.factory)&&void 0!==t?t:u.__("Open the provided `path`.")},mnemonic:e=>e.mnemonic||-1}),p.addCommand(b.reload,{label:()=>u.__("Reload %1 from Disk",M(h.currentWidget,t)),caption:u.__("Reload contents from disk"),isEnabled:f,execute:()=>{if(!f())return;const e=t.contextForWidget(h.currentWidget),n=M(h.currentWidget,t);return e?e.model.dirty?(0,i.showDialog)({title:u.__("Reload %1 from Disk",n),body:u.__("Are you sure you want to reload the %1 from the disk?",n),buttons:[i.Dialog.cancelButton(),i.Dialog.warnButton({label:u.__("Reload")})]}).then((t=>{if(t.button.accept&&!e.isDisposed)return e.revert()})):e.isDisposed?void 0:e.revert():(0,i.showDialog)({title:u.__("Cannot Reload"),body:u.__("No context found for current widget!"),buttons:[i.Dialog.okButton()]})}}),p.addCommand(b.restoreCheckpoint,{label:()=>u.__("Revert %1 to Checkpoint…",M(h.currentWidget,t)),caption:u.__("Revert contents to previous checkpoint"),isEnabled:f,execute:()=>{if(!f())return;const e=t.contextForWidget(h.currentWidget);return e?e.listCheckpoints().then((async n=>{const o=M(h.currentWidget,t);if(n.length<1)return void await(0,i.showErrorMessage)(u.__("No checkpoints"),u.__("No checkpoints are available for this %1.",o));const a=1===n.length?n[0]:await R.getTargetCheckpoint(n.reverse(),u);return a?(0,i.showDialog)({title:u.__("Revert %1 to checkpoint",o),body:new A(a,u,o),buttons:[i.Dialog.cancelButton(),i.Dialog.warnButton({label:u.__("Revert"),ariaLabel:u.__("Revert to Checkpoint")})]}).then((t=>{if(!e.isDisposed)return t.button.accept?e.model.readOnly?e.revert():e.restoreCheckpoint(a.id).then((()=>e.revert())):void 0})):void 0})):(0,i.showDialog)({title:u.__("Cannot Revert"),body:u.__("No context found for current widget!"),buttons:[i.Dialog.okButton()]})}});const C=new WeakSet;p.addCommand(b.save,{label:()=>u.__("Save %1",M(h.currentWidget,t)),caption:()=>{if(h.currentWidget){const e=t.contextForWidget(h.currentWidget);if(null==e?void 0:e.model.collaborative)return u.__("In collaborative mode, the document is saved automatically after every change");if(!w())return u.__('Document is read-only. "Save" is disabled; use "Save as…" instead')}return u.__("Save and create checkpoint")},icon:e=>e.toolbar?m.saveIcon:void 0,isEnabled:e=>e._luminoEvent&&"keybinding"===e._luminoEvent.type||w(),execute:async e=>{var n,a,r,d,s;const c=h.currentWidget,m=t.contextForWidget(c);if(f()){if(!m)return(0,i.showDialog)({title:u.__("Cannot Save"),body:u.__("No context found for current widget!"),buttons:[i.Dialog.okButton()]});{if(C.has(m))return;if(!(null===(n=m.contentsModel)||void 0===n?void 0:n.writable)&&!m.model.collaborative){let t=null===(a=e._luminoEvent)||void 0===a?void 0:a.type;return e._luminoEvent&&"keybinding"===t?void _(m.path):(0,i.showDialog)({title:u.__("Cannot Save"),body:u.__("Document is read-only"),buttons:[i.Dialog.okButton()]})}C.add(m);const g=l.PathExt.basename(null!==(d=null===(r=m.contentsModel)||void 0===r?void 0:r.path)&&void 0!==d?d:"");let p=g;if(t.renameUntitledFileOnSave&&!0===c.isUntitled){const e=await i.InputDialog.getText({title:u.__("Rename file"),okLabel:u.__("Rename"),placeholder:u.__("File name"),text:g,selectionRange:g.length-l.PathExt.extname(g).length,checkbox:{label:u.__("Do not ask me again."),caption:u.__("If checked, you will not be asked to rename future untitled files when saving them.")}});if(e.button.accept&&(p=null!==(s=e.value)&&void 0!==s?s:g,c.isUntitled=!1,"boolean"==typeof e.isChecked)){const t=(await o.get(y,"renameUntitledFileOnSave")).composite;e.isChecked===t&&o.set(y,"renameUntitledFileOnSave",!e.isChecked).catch((e=>{console.error(`Fail to set 'renameUntitledFileOnSave:\n${e}`)}))}}try{if(await m.save(),!(null==c?void 0:c.isDisposed))return m.createCheckpoint()}catch(e){if("ModalCancelError"===e.name)return;throw e}finally{C.delete(m),p!==g&&await m.rename(p)}}}}}),p.addCommand(b.saveAll,{label:()=>u.__("Save All"),caption:u.__("Save all open documents"),isEnabled:()=>(0,g.some)(h.widgets("main"),(e=>{var n,o,a;return null!==(a=null===(o=null===(n=t.contextForWidget(e))||void 0===n?void 0:n.contentsModel)||void 0===o?void 0:o.writable)&&void 0!==a&&a})),execute:()=>{var e;const n=[],o=new Set;for(const a of h.widgets("main")){const r=t.contextForWidget(a);r&&!o.has(r.path)&&((null===(e=r.contentsModel)||void 0===e?void 0:e.writable)?(o.add(r.path),n.push(r.save())):_(r.path))}return Promise.all(n)}}),p.addCommand(b.saveAs,{label:()=>u.__("Save %1 As…",M(h.currentWidget,t)),caption:u.__("Save with new path"),isEnabled:f,execute:()=>{if(f()){const e=t.contextForWidget(h.currentWidget);if(!e)return(0,i.showDialog)({title:u.__("Cannot Save"),body:u.__("No context found for current widget!"),buttons:[i.Dialog.okButton()]});const n=(n,o)=>{"save"===o.type&&o.newValue&&o.newValue.path!==e.path&&(t.closeFile(e.path),p.execute(b.open,{path:o.newValue.path}))};t.services.contents.fileChanged.connect(n),e.saveAs().finally((()=>t.services.contents.fileChanged.disconnect(n)))}}}),null===(c=e.shell.currentChanged)||void 0===c||c.connect((()=>{[b.reload,b.restoreCheckpoint,b.save,b.saveAll,b.saveAs].forEach((t=>{e.commands.notifyCommandChanged(t)}))})),p.addCommand(b.toggleAutosave,{label:u.__("Autosave Documents"),isToggled:()=>t.autosave,execute:()=>{const e=!t.autosave,n="autosave";return o.set(y,n,e).catch((e=>{console.error(`Failed to set ${y}:${n} - ${e.message}`)}))}}),s&&[b.reload,b.restoreCheckpoint,b.save,b.saveAs,b.toggleAutosave,b.duplicate].forEach((e=>{s.addItem({command:e,category:v})}))}(e,t,n,o,a,s,r);const v=n=>{const o=n.get("autosave").composite;t.autosave=!0!==o&&!1!==o||o,e.commands.notifyCommandChanged(b.toggleAutosave);const a=n.get("confirmClosingDocument").composite;t.confirmClosingDocument=null==a||a;const r=n.get("autosaveInterval").composite;t.autosaveInterval=r||120;const i=n.get("lastModifiedCheckMargin").composite;t.lastModifiedCheckMargin=i||500;const l=n.get("renameUntitledFileOnSave").composite;t.renameUntitledFileOnSave=null==l||l;const d=n.get("defaultViewers").composite,s={};Object.keys(d).forEach((e=>{h.getFileType(e)?(h.getWidgetFactory(d[e])||console.warn(`Document viewer ${d[e]} not found`),s[e]=d[e]):console.warn(`File Type ${e} not found`)}));for(const e of h.fileTypes())try{h.setDefaultWidgetFactory(e.name,s[e.name])}catch(t){console.warn(`Failed to set default viewer ${s[e.name]} for file type ${e.name}`)}};Promise.all([o.load(y),e.restored]).then((([e])=>{e.changed.connect(v),v(e),t.stateChanged.connect(((t,n)=>{["autosave","autosaveInterval","confirmClosingDocument","lastModifiedCheckMargin","renameUntitledFileOnSave"].includes(n.name)&&e.get(n.name).composite!==n.newValue&&e.set(n.name,n.newValue).catch((e=>{console.error(`Failed to set the setting '${n.name}':\n${e}`)}))}))})).catch((e=>{console.error(e.message)})),o.transform(y,{fetch:e=>{const t=Array.from(h.fileTypes()).map((e=>e.name)).join(" \n"),n=Array.from(h.widgetFactories()).map((e=>e.name)).join(" \n"),o=c.__('Overrides for the default viewers for file types.\nSpecify a mapping from file type name to document viewer name, for example:\n\ndefaultViewers: {\n markdown: "Markdown Preview"\n}\n\nIf you specify non-existent file types or viewers, or if a viewer cannot\nopen a given file type, the override will not function.\n\nAvailable viewers:\n%1\n\nAvailable file types:\n%2',n,t),a=p.JSONExt.deepCopy(e.schema);return a.properties.defaultViewers.description=o,{...e,schema:a}}}),h.changed.connect((()=>o.load(y,!0)))}},S={id:"@jupyterlab/docmanager-extension:saving-status",description:"Adds a saving status indicator.",autoStart:!0,requires:[d.IDocumentManager,r.ILabShell],optional:[u.ITranslator,c.IStatusBar],activate:(e,t,n,o,a)=>{if(!a)return;const r=new d.SavingStatus({docManager:t,translator:null!=o?o:u.nullTranslator});r.model.widget=n.currentWidget,n.currentChanged.connect((()=>{r.model.widget=n.currentWidget})),a.registerStatusItem(S.id,{item:r,align:"middle",isActive:()=>null!==r.model&&null!==r.model.status,activeStateChanged:r.model.stateChanged})}},I={id:"@jupyterlab/docmanager-extension:path-status",description:"Adds a file path indicator in the status bar.",autoStart:!0,requires:[d.IDocumentManager,r.ILabShell],optional:[c.IStatusBar],activate:(e,t,n,o)=>{if(!o)return;const a=new d.PathStatus({docManager:t});a.model.widget=n.currentWidget,n.currentChanged.connect((()=>{a.model.widget=n.currentWidget})),o.registerStatusItem(I.id,{item:a,align:"right",rank:0})}},W={id:"@jupyterlab/docmanager-extension:download",description:"Adds command to download files.",autoStart:!0,requires:[d.IDocumentManager],optional:[u.ITranslator,i.ICommandPalette],activate:(e,t,n,o)=>{var a;const r=(null!=n?n:u.nullTranslator).load("jupyterlab"),{commands:l,shell:d}=e,s=()=>{const{currentWidget:e}=d;return!(!e||!t.contextForWidget(e))};l.addCommand(b.download,{label:r.__("Download"),caption:r.__("Download the file to your computer"),isEnabled:s,execute:()=>{if(s()){const e=t.contextForWidget(d.currentWidget);return e?e.download():(0,i.showDialog)({title:r.__("Cannot Download"),body:r.__("No context found for current widget!"),buttons:[i.Dialog.okButton()]})}}}),null===(a=e.shell.currentChanged)||void 0===a||a.connect((()=>{e.commands.notifyCommandChanged(b.download)}));const c=r.__("File Operations");o&&o.addItem({command:b.download,category:c})}},F={id:"@jupyterlab/docmanager-extension:open-browser-tab",description:"Adds command to open a browser tab.",autoStart:!0,requires:[d.IDocumentManager],optional:[u.ITranslator],activate:(e,t,n)=>{const o=(null!=n?n:u.nullTranslator).load("jupyterlab"),{commands:a}=e;a.addCommand(b.openBrowserTab,{execute:e=>{const n=void 0===e.path?"":e.path;if(n)return t.services.contents.getDownloadUrl(n).then((e=>{const t=window.open();if(!t)throw new Error("Failed to open new browser tab.");t.opener=null,t.location.href=e}))},iconClass:e=>e.icon||"",label:()=>o.__("Open in New Browser Tab")})}},T=[D,k,x,I,S,W,F,C,_];var E,R;!function(e){e.createSaveButton=function(e,t){return(0,i.addCommandToolbarButtonClass)(i.ReactWidget.create(f.createElement(i.UseSignal,{signal:t},(()=>f.createElement(i.CommandToolbarButtonComponent,{commands:e,id:b.save,label:"",args:{toolbar:!0}})))))}}(E||(E={}));class A extends v.Widget{constructor(e,t,n="notebook"){super({node:R.createRevertConfirmNode(e,n,t)})}}function M(e,t){if(!e)return"File";const n=t.contextForWidget(e);if(!n)return"";const o=t.registry.getFileTypesForPath(n.path);return o.length&&o[0].displayName?o[0].displayName:"File"}!function(e){e.id=0,e.createRevertConfirmNode=function(e,t,n){const o=document.createElement("div"),a=document.createElement("p"),r=document.createTextNode(n.__("Are you sure you want to revert the %1 to checkpoint? ",t)),i=document.createElement("strong");i.textContent=n.__("This cannot be undone."),a.appendChild(r),a.appendChild(i);const d=document.createElement("p"),s=document.createTextNode(n.__("The checkpoint was last updated at: ")),c=document.createElement("p"),u=new Date(e.last_modified);return c.style.textAlign="center",c.textContent=l.Time.format(u)+" ("+l.Time.formatHuman(u)+")",d.appendChild(s),d.appendChild(c),o.appendChild(a),o.appendChild(d),o},e.getTargetCheckpoint=async function(e,t){const n=e.map(((e,t)=>`${t}. ${l.Time.format(e.last_modified)} (${l.Time.formatHuman(e.last_modified)})`)),o=(await i.InputDialog.getItem({items:n,title:t.__("Choose a checkpoint")})).value;if(!o)return;const a=o.split(".",1)[0];return e[parseInt(a,10)]}}(R||(R={}))}}]);
1
+ "use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[8471],{8471:(e,t,n)=>{n.r(t),n.d(t,{ToolbarItems:()=>E,default:()=>T,downloadPlugin:()=>W,openBrowserTabPlugin:()=>F,pathStatusPlugin:()=>I,savingStatusPlugin:()=>S});var o,a,r=n(2756),i=n(20005),l=n(64145),d=n(50712),s=n(3339),c=n(47652),u=n(90646),m=n(14576),g=n(33625),p=n(20998),h=n(81997),v=n(63485),f=n(78156),w=n(48218);!function(e){e.clearRecents="docmanager:clear-recents"}(o||(o={})),function(e){e.recentsManager="@jupyterlab/docmanager-extension:recents",e.reopenClosed="@jupyterlab/docmanager-extension:reopen-recently-closed",e.mainPlugin="@jupyterlab/docmanager-extension:plugin"}(a||(a={}));const _={id:a.recentsManager,description:"Provides a manager of recently opened and closed documents.",autoStart:!0,requires:[w.IStateDB],optional:[s.ISettingRegistry,u.ITranslator],provides:d.IRecentsManager,activate:(e,t,n,r)=>{const{serviceManager:i}=e,l=(null!=r?r:u.nullTranslator).load("jupyterlab"),s=new d.RecentsManager({stateDB:t,contents:i.contents}),c=e=>{s.maximalRecentsLength=e.get("maxNumberRecents").composite};return n&&Promise.all([e.restored,n.load(a.mainPlugin)]).then((([e,t])=>{t.changed.connect(c),c(t)})),e.commands.addCommand(o.clearRecents,{execute:()=>{s.clearRecents()},isEnabled:()=>0!=s.recentlyOpened.length||0!=s.recentlyClosed.length,label:l.__("Clear Recent Documents"),caption:l.__("Clear the list of recently opened items.")}),s}};var b;!function(e){e.clone="docmanager:clone",e.deleteFile="docmanager:delete-file",e.newUntitled="docmanager:new-untitled",e.open="docmanager:open",e.openBrowserTab="docmanager:open-browser-tab",e.reload="docmanager:reload",e.rename="docmanager:rename",e.del="docmanager:delete",e.duplicate="docmanager:duplicate",e.restoreCheckpoint="docmanager:restore-checkpoint",e.save="docmanager:save",e.saveAll="docmanager:save-all",e.saveAs="docmanager:save-as",e.download="docmanager:download",e.toggleAutosave="docmanager:toggle-autosave",e.showInFileBrowser="docmanager:show-in-file-browser"}(b||(b={}));const y="@jupyterlab/docmanager-extension:plugin",C={id:"@jupyterlab/docmanager-extension:opener",description:"Provides the widget opener.",autoStart:!0,provides:d.IDocumentWidgetOpener,activate:e=>{const{shell:t}=e;return new class{constructor(){this._opened=new h.Signal(this)}open(e,n){e.id||(e.id="document-manager-"+ ++R.id),e.title.dataset={type:"document-title",...e.title.dataset},e.isAttached||t.add(e,"main",n||{}),t.activateById(e.id),this._opened.emit(e)}get opened(){return this._opened}}}},x={id:"@jupyterlab/docmanager-extension:contexts",description:"Adds the handling of opened documents dirty state.",autoStart:!0,requires:[d.IDocumentManager,d.IDocumentWidgetOpener],optional:[r.ILabStatus],activate:(e,t,n,o)=>{const a=new WeakSet;n.opened.connect(((e,n)=>{const r=t.contextForWidget(n);r&&!a.has(r)&&(o&&function(e,t){let n=null;const o=(t,o)=>{"dirty"===o.name&&(!0===o.newValue?n||(n=e.setDirty()):n&&(n.dispose(),n=null))};t.ready.then((()=>{t.model.stateChanged.connect(o),t.model.dirty&&(n=e.setDirty())})),t.disposed.connect((()=>{n&&n.dispose()}))}(o,r),a.add(r))}))}},D={id:"@jupyterlab/docmanager-extension:manager",description:"Provides the document manager.",provides:d.IDocumentManager,requires:[d.IDocumentWidgetOpener],optional:[u.ITranslator,r.ILabStatus,i.ISessionContextDialogs,r.JupyterLab.IInfo,d.IRecentsManager],activate:(e,t,n,o,a,r,l)=>{var s;const{serviceManager:c,docRegistry:m}=e,g=null!=n?n:u.nullTranslator,p=null!=a?a:new i.SessionContextDialogs({translator:g}),h=e.restored.then((()=>{}));return new d.DocumentManager({registry:m,manager:c,opener:t,when:h,setBusy:null!==(s=o&&(()=>o.setBusy()))&&void 0!==s?s:void 0,sessionDialogs:p,translator:null!=g?g:u.nullTranslator,isConnectedCallback:()=>!r||r.isConnected,recentsManager:null!=l?l:void 0})}},k={id:y,description:"Adds commands and settings to the document manager.",autoStart:!0,requires:[d.IDocumentManager,d.IDocumentWidgetOpener,s.ISettingRegistry],optional:[u.ITranslator,i.ICommandPalette,r.ILabShell],activate:(e,t,n,o,a,r,s)=>{const c=(a=null!=a?a:u.nullTranslator).load("jupyterlab"),h=e.docRegistry;!function(e,t,n,o,a,r,s){var c;const u=a.load("jupyterlab"),{commands:p,shell:h}=e,v=u.__("File Operations"),f=()=>{const{currentWidget:e}=h;return!(!e||!t.contextForWidget(e))},w=()=>{var e;const{currentWidget:n}=h;if(!n)return!1;const o=t.contextForWidget(n);return!!(null===(e=null==o?void 0:o.contentsModel)||void 0===e?void 0:e.writable)},_=e=>i.Notification.warning(u.__('%1 is read-only. Use "Save as…" instead.',e),{autoClose:5e3});r&&function(e,t,n,o,a){const r=a.load("jupyterlab"),{commands:l}=e,s=()=>{var o;const a=/[Pp]ath:\s?(.*)\n?/,r=e.contextMenuHitTest((e=>{var t;return!!(null===(t=e.title)||void 0===t?void 0:t.match(a))})),i=null==r?void 0:r.title.match(a);return null!==(o=i&&t.findWidget(i[1],null))&&void 0!==o?o:n.currentWidget},c=()=>{const{currentWidget:e}=n;return!(!e||!t.contextForWidget(e))};l.addCommand(b.clone,{label:()=>r.__("New View for %1",M(s(),t)),isEnabled:c,execute:e=>{const n=s(),a=e.options||{mode:"split-right"};if(!n)return;const r=t.cloneWidget(n);r&&o.open(r,a)}}),l.addCommand(b.rename,{label:()=>{let e=M(s(),t);return e&&(e=" "+e),r.__("Rename%1…",e)},isEnabled:c,execute:()=>{if(c()){const e=t.contextForWidget(s());return(0,d.renameDialog)(t,e)}}}),l.addCommand(b.duplicate,{label:()=>r.__("Duplicate %1",M(s(),t)),isEnabled:c,execute:()=>{if(c()){const e=t.contextForWidget(s());if(!e)return;return t.duplicate(e.path)}}}),l.addCommand(b.del,{label:()=>r.__("Delete %1",M(s(),t)),isEnabled:c,execute:async()=>{if(c()){const n=t.contextForWidget(s());if(!n)return;(await(0,i.showDialog)({title:r.__("Delete"),body:r.__("Are you sure you want to delete %1",n.path),buttons:[i.Dialog.cancelButton(),i.Dialog.warnButton({label:r.__("Delete")})]})).button.accept&&await e.commands.execute("docmanager:delete-file",{path:n.path})}}}),l.addCommand(b.showInFileBrowser,{label:()=>r.__("Show in File Browser"),isEnabled:c,execute:async()=>{const e=s(),n=e&&t.contextForWidget(e);n&&(await l.execute("filebrowser:activate",{path:n.path}),await l.execute("filebrowser:go-to-path",{path:n.path}))}}),n.currentChanged.connect((()=>{[b.clone,b.rename,b.duplicate,b.del,b.showInFileBrowser].forEach((t=>{e.commands.notifyCommandChanged(t)}))}))}(e,t,r,n,a),p.addCommand(b.deleteFile,{label:()=>`Delete ${M(h.currentWidget,t)}`,execute:e=>{const n=void 0===e.path?"":e.path;if(!n){const e=b.deleteFile;throw new Error(`A non-empty path is required for ${e}.`)}return t.deleteFile(n)}}),p.addCommand(b.newUntitled,{execute:async e=>{const n=e.error||u.__("Error"),o=void 0===e.path?"":e.path,a={type:e.type,path:o};return"file"===e.type&&(a.ext=e.ext||".txt"),t.services.contents.newUntitled(a).catch((e=>(0,i.showErrorMessage)(n,e)))},label:e=>e.label||`New ${e.type}`}),p.addCommand(b.open,{execute:async e=>{const n=void 0===e.path?"":e.path,o=e.factory||void 0,a=null==e?void 0:e.kernel,r=e.options||void 0;return t.services.contents.get(n,{content:!1}).then((()=>t.openOrReveal(n,o,a,r)))},iconClass:e=>e.icon||"",label:e=>{var t;return null!==(t=e.label||e.factory)&&void 0!==t?t:u.__("Open the provided `path`.")},mnemonic:e=>e.mnemonic||-1}),p.addCommand(b.reload,{label:()=>u.__("Reload %1 from Disk",M(h.currentWidget,t)),caption:u.__("Reload contents from disk"),isEnabled:f,execute:()=>{if(!f())return;const e=t.contextForWidget(h.currentWidget),n=M(h.currentWidget,t);return e?e.model.dirty?(0,i.showDialog)({title:u.__("Reload %1 from Disk",n),body:u.__("Are you sure you want to reload the %1 from the disk?",n),buttons:[i.Dialog.cancelButton(),i.Dialog.warnButton({label:u.__("Reload")})]}).then((t=>{if(t.button.accept&&!e.isDisposed)return e.revert()})):e.isDisposed?void 0:e.revert():(0,i.showDialog)({title:u.__("Cannot Reload"),body:u.__("No context found for current widget!"),buttons:[i.Dialog.okButton()]})}}),p.addCommand(b.restoreCheckpoint,{label:()=>u.__("Revert %1 to Checkpoint…",M(h.currentWidget,t)),caption:u.__("Revert contents to previous checkpoint"),isEnabled:f,execute:()=>{if(!f())return;const e=t.contextForWidget(h.currentWidget);return e?e.listCheckpoints().then((async n=>{const o=M(h.currentWidget,t);if(n.length<1)return void await(0,i.showErrorMessage)(u.__("No checkpoints"),u.__("No checkpoints are available for this %1.",o));const a=1===n.length?n[0]:await R.getTargetCheckpoint(n.reverse(),u);return a?(0,i.showDialog)({title:u.__("Revert %1 to checkpoint",o),body:new A(a,u,o),buttons:[i.Dialog.cancelButton(),i.Dialog.warnButton({label:u.__("Revert"),ariaLabel:u.__("Revert to Checkpoint")})]}).then((t=>{if(!e.isDisposed)return t.button.accept?e.model.readOnly?e.revert():e.restoreCheckpoint(a.id).then((()=>e.revert())):void 0})):void 0})):(0,i.showDialog)({title:u.__("Cannot Revert"),body:u.__("No context found for current widget!"),buttons:[i.Dialog.okButton()]})}});const C=new WeakSet;p.addCommand(b.save,{label:()=>u.__("Save %1",M(h.currentWidget,t)),caption:()=>{if(h.currentWidget){const e=t.contextForWidget(h.currentWidget);if(null==e?void 0:e.model.collaborative)return u.__("In collaborative mode, the document is saved automatically after every change");if(!w())return u.__('Document is read-only. "Save" is disabled; use "Save as…" instead')}return u.__("Save and create checkpoint")},icon:e=>e.toolbar?m.saveIcon:void 0,isEnabled:e=>e._luminoEvent&&"keybinding"===e._luminoEvent.type||w(),execute:async e=>{var n,a,r,d,s;const c=h.currentWidget,m=t.contextForWidget(c);if(f()){if(!m)return(0,i.showDialog)({title:u.__("Cannot Save"),body:u.__("No context found for current widget!"),buttons:[i.Dialog.okButton()]});{if(C.has(m))return;if(!(null===(n=m.contentsModel)||void 0===n?void 0:n.writable)&&!m.model.collaborative){let t=null===(a=e._luminoEvent)||void 0===a?void 0:a.type;return e._luminoEvent&&"keybinding"===t?void _(m.path):(0,i.showDialog)({title:u.__("Cannot Save"),body:u.__("Document is read-only"),buttons:[i.Dialog.okButton()]})}C.add(m);const g=l.PathExt.basename(null!==(d=null===(r=m.contentsModel)||void 0===r?void 0:r.path)&&void 0!==d?d:"");let p=g;if(t.renameUntitledFileOnSave&&!0===c.isUntitled){const e=await i.InputDialog.getText({title:u.__("Rename file"),okLabel:u.__("Rename"),placeholder:u.__("File name"),text:g,selectionRange:g.length-l.PathExt.extname(g).length,checkbox:{label:u.__("Do not ask me again."),caption:u.__("If checked, you will not be asked to rename future untitled files when saving them.")}});if(e.button.accept&&(p=null!==(s=e.value)&&void 0!==s?s:g,c.isUntitled=!1,"boolean"==typeof e.isChecked)){const t=(await o.get(y,"renameUntitledFileOnSave")).composite;e.isChecked===t&&o.set(y,"renameUntitledFileOnSave",!e.isChecked).catch((e=>{console.error(`Fail to set 'renameUntitledFileOnSave:\n${e}`)}))}}try{if(await m.save(),!(null==c?void 0:c.isDisposed))return m.createCheckpoint()}catch(e){if("ModalCancelError"===e.name)return;throw e}finally{C.delete(m),p!==g&&await m.rename(p)}}}}}),p.addCommand(b.saveAll,{label:()=>u.__("Save All"),caption:u.__("Save all open documents"),isEnabled:()=>(0,g.some)(h.widgets("main"),(e=>{var n,o,a;return null!==(a=null===(o=null===(n=t.contextForWidget(e))||void 0===n?void 0:n.contentsModel)||void 0===o?void 0:o.writable)&&void 0!==a&&a})),execute:()=>{var e;const n=[],o=new Set;for(const a of h.widgets("main")){const r=t.contextForWidget(a);r&&!o.has(r.path)&&((null===(e=r.contentsModel)||void 0===e?void 0:e.writable)?(o.add(r.path),n.push(r.save())):_(r.path))}return Promise.all(n)}}),p.addCommand(b.saveAs,{label:()=>u.__("Save %1 As…",M(h.currentWidget,t)),caption:u.__("Save with new path"),isEnabled:f,execute:()=>{if(f()){const e=t.contextForWidget(h.currentWidget);if(!e)return(0,i.showDialog)({title:u.__("Cannot Save"),body:u.__("No context found for current widget!"),buttons:[i.Dialog.okButton()]});const n=(n,o)=>{"save"===o.type&&o.newValue&&o.newValue.path!==e.path&&(t.closeFile(e.path),p.execute(b.open,{path:o.newValue.path}))};t.services.contents.fileChanged.connect(n),e.saveAs().finally((()=>t.services.contents.fileChanged.disconnect(n)))}}}),null===(c=e.shell.currentChanged)||void 0===c||c.connect((()=>{[b.reload,b.restoreCheckpoint,b.save,b.saveAll,b.saveAs].forEach((t=>{e.commands.notifyCommandChanged(t)}))})),p.addCommand(b.toggleAutosave,{label:u.__("Autosave Documents"),isToggled:()=>t.autosave,execute:()=>{const e=!t.autosave,n="autosave";return o.set(y,n,e).catch((e=>{console.error(`Failed to set ${y}:${n} - ${e.message}`)}))}}),s&&[b.reload,b.restoreCheckpoint,b.save,b.saveAs,b.toggleAutosave,b.duplicate].forEach((e=>{s.addItem({command:e,category:v})}))}(e,t,n,o,a,s,r);const v=n=>{const o=n.get("autosave").composite;t.autosave=!0!==o&&!1!==o||o,e.commands.notifyCommandChanged(b.toggleAutosave);const a=n.get("confirmClosingDocument").composite;t.confirmClosingDocument=null==a||a;const r=n.get("autosaveInterval").composite;t.autosaveInterval=r||120;const i=n.get("lastModifiedCheckMargin").composite;t.lastModifiedCheckMargin=i||500;const l=n.get("renameUntitledFileOnSave").composite;t.renameUntitledFileOnSave=null==l||l;const d=n.get("defaultViewers").composite,s={};Object.keys(d).forEach((e=>{h.getFileType(e)?(h.getWidgetFactory(d[e])||console.warn(`Document viewer ${d[e]} not found`),s[e]=d[e]):console.warn(`File Type ${e} not found`)}));for(const e of h.fileTypes())try{h.setDefaultWidgetFactory(e.name,s[e.name])}catch(t){console.warn(`Failed to set default viewer ${s[e.name]} for file type ${e.name}`)}};Promise.all([o.load(y),e.restored]).then((([e])=>{e.changed.connect(v),v(e),t.stateChanged.connect(((t,n)=>{["autosave","autosaveInterval","confirmClosingDocument","lastModifiedCheckMargin","renameUntitledFileOnSave"].includes(n.name)&&e.get(n.name).composite!==n.newValue&&e.set(n.name,n.newValue).catch((e=>{console.error(`Failed to set the setting '${n.name}':\n${e}`)}))}))})).catch((e=>{console.error(e.message)})),o.transform(y,{fetch:e=>{const t=Array.from(h.fileTypes()).map((e=>e.name)).join(" \n"),n=Array.from(h.widgetFactories()).map((e=>e.name)).join(" \n"),o=c.__('Overrides for the default viewers for file types.\nSpecify a mapping from file type name to document viewer name, for example:\n\ndefaultViewers: {\n markdown: "Markdown Preview"\n}\n\nIf you specify non-existent file types or viewers, or if a viewer cannot\nopen a given file type, the override will not function.\n\nAvailable viewers:\n%1\n\nAvailable file types:\n%2',n,t),a=p.JSONExt.deepCopy(e.schema);return a.properties.defaultViewers.description=o,{...e,schema:a}}}),h.changed.connect((()=>o.load(y,!0)))}},S={id:"@jupyterlab/docmanager-extension:saving-status",description:"Adds a saving status indicator.",autoStart:!0,requires:[d.IDocumentManager,r.ILabShell],optional:[u.ITranslator,c.IStatusBar],activate:(e,t,n,o,a)=>{if(!a)return;const r=new d.SavingStatus({docManager:t,translator:null!=o?o:u.nullTranslator});r.model.widget=n.currentWidget,n.currentChanged.connect((()=>{r.model.widget=n.currentWidget})),a.registerStatusItem(S.id,{item:r,align:"middle",isActive:()=>null!==r.model&&null!==r.model.status,activeStateChanged:r.model.stateChanged})}},I={id:"@jupyterlab/docmanager-extension:path-status",description:"Adds a file path indicator in the status bar.",autoStart:!0,requires:[d.IDocumentManager,r.ILabShell],optional:[c.IStatusBar],activate:(e,t,n,o)=>{if(!o)return;const a=new d.PathStatus({docManager:t});a.model.widget=n.currentWidget,n.currentChanged.connect((()=>{a.model.widget=n.currentWidget})),o.registerStatusItem(I.id,{item:a,align:"right",rank:0})}},W={id:"@jupyterlab/docmanager-extension:download",description:"Adds command to download files.",autoStart:!0,requires:[d.IDocumentManager],optional:[u.ITranslator,i.ICommandPalette],activate:(e,t,n,o)=>{var a;const r=(null!=n?n:u.nullTranslator).load("jupyterlab"),{commands:l,shell:d}=e,s=()=>{const{currentWidget:e}=d;return!(!e||!t.contextForWidget(e))};l.addCommand(b.download,{label:r.__("Download"),caption:r.__("Download the file to your computer"),isEnabled:s,execute:()=>{if(s()){const e=t.contextForWidget(d.currentWidget);return e?e.download():(0,i.showDialog)({title:r.__("Cannot Download"),body:r.__("No context found for current widget!"),buttons:[i.Dialog.okButton()]})}}}),null===(a=e.shell.currentChanged)||void 0===a||a.connect((()=>{e.commands.notifyCommandChanged(b.download)}));const c=r.__("File Operations");o&&o.addItem({command:b.download,category:c})}},F={id:"@jupyterlab/docmanager-extension:open-browser-tab",description:"Adds command to open a browser tab.",autoStart:!0,requires:[d.IDocumentManager],optional:[u.ITranslator],activate:(e,t,n)=>{const o=(null!=n?n:u.nullTranslator).load("jupyterlab"),{commands:a}=e;a.addCommand(b.openBrowserTab,{execute:e=>{const n=void 0===e.path?"":e.path;if(n)return t.services.contents.getDownloadUrl(n).then((e=>{const t=window.open();if(!t)throw new Error("Failed to open new browser tab.");t.opener=null,t.location.href=e}))},iconClass:e=>e.icon||"",label:()=>o.__("Open in New Browser Tab")})}},T=[D,k,x,I,S,W,F,C,_];var E,R;!function(e){e.createSaveButton=function(e,t){return(0,i.addCommandToolbarButtonClass)(i.ReactWidget.create(f.createElement(i.UseSignal,{signal:t},(()=>f.createElement(i.CommandToolbarButtonComponent,{commands:e,id:b.save,label:"",args:{toolbar:!0}})))))}}(E||(E={}));class A extends v.Widget{constructor(e,t,n="notebook"){super({node:R.createRevertConfirmNode(e,n,t)})}}function M(e,t){if(!e)return"File";const n=t.contextForWidget(e);if(!n)return"";const o=t.registry.getFileTypesForPath(n.path);return o.length&&o[0].displayName?o[0].displayName:"File"}!function(e){e.id=0,e.createRevertConfirmNode=function(e,t,n){const o=document.createElement("div"),a=document.createElement("p"),r=document.createTextNode(n.__("Are you sure you want to revert the %1 to checkpoint? ",t)),i=document.createElement("strong");i.textContent=n.__("This cannot be undone."),a.appendChild(r),a.appendChild(i);const d=document.createElement("p"),s=document.createTextNode(n.__("The checkpoint was last updated at: ")),c=document.createElement("p"),u=new Date(e.last_modified);return c.style.textAlign="center",c.textContent=l.Time.format(u)+" ("+l.Time.formatHuman(u)+")",d.appendChild(s),d.appendChild(c),o.appendChild(a),o.appendChild(d),o},e.getTargetCheckpoint=async function(e,t){const n=e.map(((e,t)=>`${t}. ${l.Time.format(e.last_modified)} (${l.Time.formatHuman(e.last_modified)})`)),o=(await i.InputDialog.getItem({items:n,title:t.__("Choose a checkpoint")})).value;if(!o)return;const a=o.split(".",1)[0];return e[parseInt(a,10)]}}(R||(R={}))}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[8579],{88579:(e,t,o)=>{o.r(t),o.d(t,{default:()=>q});var n=o(44604),a=o(53312),i=o(67260),r=o(68722),d=o(5094),l=o(65903),s=o(29879),c=o(81221),p=o(23295),u=o(12030),g=o(1635),m=o(28425),h=o(20998),b=o(2549),f=o(63485);const v=new RegExp("/(notebooks|edit)/(.*)"),y=/\.ipynb$/;var k;!function(e){e.handleLink="application:handle-local-link",e.toggleTop="application:toggle-top",e.togglePanel="application:toggle-panel",e.toggleZen="application:toggle-zen",e.openLab="application:open-lab",e.openTree="application:open-tree",e.rename="application:rename",e.resolveTree="application:resolve-tree"}(k||(k={}));const w={id:"@jupyter-notebook/application-extension:dirty",description:"Check if the application is dirty before closing the browser tab.",autoStart:!0,requires:[n.ILabStatus,u.ITranslator],activate:(e,t,o)=>{if(!(e instanceof g.NotebookApp))throw new Error(`${w.id} must be activated in Jupyter Notebook.`);const n=o.load("notebook").__("Are you sure you want to exit Jupyter Notebook?\n\nAny unsaved changes will be lost.");window.addEventListener("beforeunload",(t=>{if(e.status.isDirty)return t.returnValue=n}))}},x={id:"@jupyter-notebook/application-extension:logo",description:"The logo plugin.",autoStart:!0,activate:e=>{const t=r.PageConfig.getBaseUrl(),o=document.createElement("a");o.href=`${t}tree`,o.target="_blank",o.rel="noopener noreferrer";const n=new f.Widget({node:o});m.jupyterIcon.element({container:o,elementPosition:"center",padding:"2px 2px 2px 8px",height:"28px",width:"auto",cursor:"pointer",margin:"auto"}),n.id="jp-NotebookLogo",e.shell.add(n,"top",{rank:0})}},I={id:"@jupyter-notebook/application-extension:opener",description:"A plugin to open documents in the main area.",autoStart:!0,requires:[n.IRouter,d.IDocumentManager],optional:[p.ISettingRegistry],activate:(e,t,o,n)=>{const{commands:a,docRegistry:i}=e,r="router:tree";a.addCommand(r,{execute:t=>{var a;const r=t,d=null!==(a=r.path.match(v))&&void 0!==a?a:[],[,,l]=d;l&&e.started.then((async()=>{var e;const t=decodeURIComponent(l),a=new URLSearchParams(r.search);let d=i.defaultWidgetFactory(l).name;if(n){const e=(await n.load("@jupyterlab/docmanager-extension:plugin")).get("defaultViewers").composite;i.getFileTypesForPath(l).forEach((t=>{void 0!==e[t.name]&&i.getWidgetFactory(e[t.name])&&(d=e[t.name])}))}const s=null!==(e=a.get("factory"))&&void 0!==e?e:d;o.open(t,s,void 0,{ref:"_noref"})}))}}),t.register({command:r,pattern:v})}},P={id:"@jupyter-notebook/application-extension:menus",description:"A plugin to customize menus.",requires:[s.IMainMenu],autoStart:!0,activate:(e,t)=>{switch(t.tabsMenu.dispose(),r.PageConfig.getOption("notebookPage")){case"consoles":case"terminals":case"tree":t.editMenu.dispose(),t.kernelMenu.dispose(),t.runMenu.dispose();break;case"edit":t.kernelMenu.dispose(),t.runMenu.dispose()}}},C={id:"@jupyter-notebook/application-extension:menu-spacer",description:"A plugin to provide a spacer at rank 900 in the menu area.",autoStart:!0,activate:e=>{const t=new f.Widget;t.id=a.DOMUtils.createDomID(),t.addClass("jp-NotebookSpacer"),e.shell.add(t,"menu",{rank:900})}},S={id:"@jupyter-notebook/application-extension:pages",description:"Add commands to open the tree and running pages.",autoStart:!0,requires:[u.ITranslator],optional:[a.ICommandPalette],activate:(e,t,o)=>{const n=t.load("notebook"),a=r.PageConfig.getBaseUrl();e.commands.addCommand(k.openLab,{label:n.__("Open JupyterLab"),execute:()=>{window.open(r.URLExt.join(a,"lab"))}});const i=r.PageConfig.getOption("notebookPage");e.commands.addCommand(k.openTree,{label:n.__("File Browser"),execute:()=>{"tree"===i?e.commands.execute("filebrowser:activate"):window.open(r.URLExt.join(a,"tree"))}}),o&&(o.addItem({command:k.openLab,category:"View"}),o.addItem({command:k.openTree,category:"View"}))}},T={id:"@jupyter-notebook/application-extension:path-opener",description:"A plugin to open paths in new browser tabs.",autoStart:!0,provides:g.INotebookPathOpener,activate:e=>g.defaultNotebookPathOpener},R={id:"@jupyter-notebook/application-extension:paths",description:"The default paths for a Jupyter Notebook app.",autoStart:!0,provides:n.JupyterFrontEnd.IPaths,activate:e=>{if(!(e instanceof g.NotebookApp))throw new Error(`${R.id} must be activated in Jupyter Notebook.`);return e.paths}},E={id:"@jupyter-notebook/application-extension:rendermime",description:"A plugin providing a rendermime registry.",autoStart:!0,provides:c.IRenderMimeRegistry,optional:[d.IDocumentManager,c.ILatexTypesetter,a.ISanitizer,c.IMarkdownParser,u.ITranslator,g.INotebookPathOpener],activate:(e,t,o,n,a,i,d)=>{const l=(null!=i?i:u.nullTranslator).load("jupyterlab"),s=null!=d?d:g.defaultNotebookPathOpener;return t&&e.commands.addCommand(k.handleLink,{label:l.__("Handle Local Link"),execute:e=>{const o=e.path;if(null!=o)return t.services.contents.get(o,{content:!1}).then((e=>{const t=r.PageConfig.getBaseUrl();s.open({prefix:r.URLExt.join(t,"tree"),path:e.path,target:"_blank"})}))}}),new c.RenderMimeRegistry({initialFactories:c.standardRendererFactories,linkHandler:t?{handleLink:(t,o,n)=>{"A"===t.tagName&&t.hasAttribute("download")||e.commandLinker.connectNode(t,k.handleLink,{path:o,id:n})}}:void 0,latexTypesetter:null!=o?o:void 0,markdownParser:null!=a?a:void 0,translator:null!=i?i:void 0,sanitizer:null!=n?n:void 0})}},_={id:"@jupyter-notebook/application-extension:shell",description:"The default Jupyter Notebook application shell.",autoStart:!0,provides:g.INotebookShell,optional:[p.ISettingRegistry],activate:(e,t)=>{if(!(e.shell instanceof g.NotebookShell))throw new Error(`${_.id} did not find a NotebookShell instance.`);const o=e.shell;return t&&t.load(_.id).then((e=>{const t=e.composite.layout;o.restoreLayout(t)})).catch((e=>{console.error("Fail to load settings for the layout restorer."),console.error(e)})),o}},L={id:"@jupyter-notebook/application-extension:splash",description:"Provides an empty splash screen.",autoStart:!0,provides:a.ISplashScreen,activate:e=>{const{restored:t}=e,o=document.createElement("div");return o.style.position="absolute",o.style.width="100%",o.style.height="100%",o.style.zIndex="10",{show:(e=!0)=>(o.style.backgroundColor=e?"white":"#111111",document.body.appendChild(o),new b.DisposableDelegate((async()=>{await t,document.body.removeChild(o)})))}}},j={id:"@jupyter-notebook/application-extension:status",description:"The default JupyterLab application status provider.",autoStart:!0,provides:n.ILabStatus,activate:e=>{if(!(e instanceof g.NotebookApp))throw new Error(`${j.id} must be activated in Jupyter Notebook.`);return e.status}},N={id:"@jupyter-notebook/application-extension:tab-title",description:"A plugin to display the document title in the browser tab title.",autoStart:!0,requires:[g.INotebookShell],activate:(e,t)=>{const o=()=>{const e=t.currentWidget;if(e instanceof i.ConsolePanel){const t=()=>{const t=e.sessionContext.path||e.sessionContext.name,o=r.PathExt.basename(t);document.title=o.replace(y,"")};return e.sessionContext.sessionChanged.connect(t),void t()}if(e instanceof l.DocumentWidget){const t=()=>{const t=r.PathExt.basename(e.context.path);document.title=t.replace(y,"")};e.context.pathChanged.connect(t),t()}};t.currentChanged.connect(o),o()}},H={id:"@jupyter-notebook/application-extension:title",description:"A plugin to display and rename the title of a file.",autoStart:!0,requires:[g.INotebookShell,u.ITranslator],optional:[d.IDocumentManager,n.IRouter,a.IToolbarWidgetRegistry],activate:(e,t,o,n,a,i)=>{const{commands:s}=e,c=o.load("notebook"),p=document.createElement("div");i&&i.addFactory("TopBar","widgetTitle",(e=>{const t=new f.Widget({node:p});return t.id="jp-title",t}));const u=async()=>{const e=t.currentWidget;if(!(e&&e instanceof l.DocumentWidget))return;if(p.children.length>0)return;const o=document.createElement("h1");if(o.textContent=e.title.label.replace(y,""),p.appendChild(o),p.style.marginLeft="10px",!n)return;const i=()=>{const{currentWidget:e}=t;return!(!e||!n.contextForWidget(e))};s.addCommand(k.rename,{label:()=>c.__("Rename…"),isEnabled:i,execute:async()=>{var t;if(!i())return;const l=await(0,d.renameDialog)(n,e.context);if(e&&e.activate(),null===l)return;const s=e.context.path,c=r.PathExt.basename(s);if(o.textContent=c.replace(y,""),!a)return;const p=null!==(t=a.current.path.match(v))&&void 0!==t?t:[],[,u,g]=p;if(!u||!g)return;const m=encodeURIComponent(s);a.navigate(`/${u}/${m}`,{skipRouting:!0})}}),p.onclick=async()=>{s.execute(k.rename)}};t.currentChanged.connect(u),u()}},A={id:"@jupyter-notebook/application-extension:top",description:"Plugin to toggle the top header visibility.",requires:[g.INotebookShell,u.ITranslator],optional:[p.ISettingRegistry,a.ICommandPalette],activate:(e,t,o,n,a)=>{const i=o.load("notebook"),r=t.top,d=A.id;e.commands.addCommand(k.toggleTop,{label:i.__("Show Header"),execute:()=>{r.setHidden(r.isVisible),n&&n.set(d,"visible",r.isVisible?"yes":"no")},isToggled:()=>r.isVisible});let l=!1;if(n){const t=n.load(d),o=e=>{let t=e.get("visible").composite;void 0!==e.user.visible&&(t=e.user.visible),r.setHidden("no"===t),l="automatic"===t};Promise.all([t,e.restored]).then((([e])=>{o(e),e.changed.connect((e=>{o(e)}))})).catch((e=>{console.error(e.message)}))}a&&a.addItem({command:k.toggleTop,category:"View"}),e.formatChanged.connect((()=>{l&&("desktop"===e.format?t.expandTop():t.collapseTop())}))},autoStart:!0},M={id:"@jupyter-notebook/application-extension:sidepanel",description:"Plugin to toggle the visibility of left or right side panel.",requires:[g.INotebookShell,u.ITranslator],optional:[s.IMainMenu,a.ICommandPalette],autoStart:!0,activate:(e,t,o,n,a)=>{const i=o.load("notebook");e.commands.addCommand(k.togglePanel,{label:e=>e.title,caption:e=>"left"===e.side?i.__("Show %1 in the left sidebar",e.title):"right"===e.side?i.__("Show %1 in the right sidebar",e.title):i.__("Show %1 in the sidebar",e.title),execute:e=>{var o,n;switch(e.side){case"left":t.leftCollapsed||(null===(o=t.leftHandler.currentWidget)||void 0===o?void 0:o.id)!==e.id?t.expandLeft(e.id):(t.collapseLeft(),t.currentWidget&&t.activateById(t.currentWidget.id));break;case"right":t.rightCollapsed||(null===(n=t.rightHandler.currentWidget)||void 0===n?void 0:n.id)!==e.id?t.expandRight(e.id):(t.collapseRight(),t.currentWidget&&t.activateById(t.currentWidget.id))}},isToggled:e=>{switch(e.side){case"left":{if(t.leftCollapsed)return!1;const o=t.leftHandler.currentWidget;return!!o&&o.id===e.id}case"right":{if(t.rightCollapsed)return!1;const o=t.rightHandler.currentWidget;return!!o&&o.id===e.id}}return!1}});const r={left:null,right:null},d=(o,a)=>{var i;if(null===n)return null;null===(i=r[o])||void 0===i||i.dispose();const d=new f.Menu({commands:e.commands});d.title.label=a;const l=t.widgets(o);let s=!1;for(const e of l)d.addItem({command:k.togglePanel,args:{side:o,title:`Show ${e.title.caption}`,id:e.id}}),s=!0;s&&(r[o]=n.viewMenu.addItem({type:"submenu",submenu:d}))};e.restored.then((()=>{if(n){const e=e=>"left"===e?i.__("Left Sidebar"):i.__("Right Sidebar"),o=t.leftHandler.area,n=e(o);d(o,n);const a=t.rightHandler.area,r=e(a);d(a,r);const l=(t,o)=>{const n=e(t.area);d(t.area,n)};t.leftHandler.widgetAdded.connect(l),t.leftHandler.widgetRemoved.connect(l),t.rightHandler.widgetAdded.connect(l),t.rightHandler.widgetRemoved.connect(l)}if(a){const e=new g.SidePanelPalette({commandPalette:a,command:k.togglePanel});t.leftHandler.widgets.forEach((o=>{e.addItem(o,t.leftHandler.area)})),t.rightHandler.widgets.forEach((o=>{e.addItem(o,t.rightHandler.area)})),t.leftHandler.widgetAdded.connect(((t,o)=>{e.addItem(o,t.area)})),t.leftHandler.widgetRemoved.connect(((t,o)=>{e.removeItem(o,t.area)})),t.rightHandler.widgetAdded.connect(((t,o)=>{e.addItem(o,t.area)})),t.rightHandler.widgetRemoved.connect(((t,o)=>{e.removeItem(o,t.area)}))}}))}},U={id:"@jupyter-notebook/application-extension:tree-resolver",description:"The default tree route resolver plugin.",autoStart:!0,requires:[n.IRouter],provides:n.JupyterFrontEnd.ITreeResolver,activate:(e,t)=>{const{commands:o}=e,n=new b.DisposableSet,a=new h.PromiseDelegate,i=new RegExp("/(/tree/.*)?");n.add(o.addCommand(k.resolveTree,{execute:async e=>{var t;if(n.isDisposed)return;const o=r.URLExt.queryStringToObject(null!==(t=e.search)&&void 0!==t?t:""),i=o["file-browser-path"]||"";delete o["file-browser-path"],n.dispose(),a.resolve({browser:i,file:r.PageConfig.getOption("treePath")})}})),n.add(t.register({command:k.resolveTree,pattern:i}));const d=()=>{n.isDisposed||(n.dispose(),a.resolve(null))};return t.routed.connect(d),n.add(new b.DisposableDelegate((()=>{t.routed.disconnect(d)}))),{paths:a.promise}}},W={id:"@jupyter-notebook/application-extension:tree-updater",description:"Plugin to update tree path.",requires:[n.IRouter],provides:n.ITreePathUpdater,activate:(e,t)=>function(e){if(e!==r.PageConfig.getOption("treePath")){const o=r.URLExt.join(r.PageConfig.getOption("baseUrl")||"/","tree",r.URLExt.encodeParts(e));t.navigate(o,{skipRouting:!0}),r.PageConfig.setOption("treePath",e)}},autoStart:!0},D={id:"@jupyter-notebook/application-extension:translator",description:"Translator plugin",requires:[g.INotebookShell,u.ITranslator],autoStart:!0,activate:(e,t,o)=>{t.translator=o}},O={id:"@jupyter-notebook/application-extension:zen",description:"Zen mode plugin.",autoStart:!0,requires:[u.ITranslator],optional:[a.ICommandPalette,g.INotebookShell],activate:(e,t,o,n)=>{const{commands:a}=e,i=document.documentElement,r=t.load("notebook"),d=()=>{null==n||n.expandTop(),null==n||n.menu.setHidden(!1),l=!1};let l=!1;a.addCommand(k.toggleZen,{label:r.__("Toggle Zen Mode"),execute:()=>{l?(document.exitFullscreen(),d()):(i.requestFullscreen(),null==n||n.collapseTop(),null==n||n.menu.setHidden(!0),l=!0)}}),document.addEventListener("fullscreenchange",(()=>{document.fullscreenElement||d()})),o&&o.addItem({command:k.toggleZen,category:"Mode"})}},q=[w,x,P,C,I,S,T,R,E,_,M,L,j,N,H,A,U,W,D,O]}}]);
1
+ "use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[8579],{88579:(e,t,o)=>{o.r(t),o.d(t,{default:()=>q});var n=o(2756),a=o(20005),i=o(92681),r=o(64145),d=o(50712),l=o(87973),s=o(98979),c=o(1323),p=o(3339),u=o(90646),g=o(69867),m=o(81947),h=o(20998),b=o(2549),f=o(63485);const v=new RegExp("/(notebooks|edit)/(.*)"),y=/\.ipynb$/;var k;!function(e){e.handleLink="application:handle-local-link",e.toggleTop="application:toggle-top",e.togglePanel="application:toggle-panel",e.toggleZen="application:toggle-zen",e.openLab="application:open-lab",e.openTree="application:open-tree",e.rename="application:rename",e.resolveTree="application:resolve-tree"}(k||(k={}));const w={id:"@jupyter-notebook/application-extension:dirty",description:"Check if the application is dirty before closing the browser tab.",autoStart:!0,requires:[n.ILabStatus,u.ITranslator],activate:(e,t,o)=>{if(!(e instanceof g.NotebookApp))throw new Error(`${w.id} must be activated in Jupyter Notebook.`);const n=o.load("notebook").__("Are you sure you want to exit Jupyter Notebook?\n\nAny unsaved changes will be lost.");window.addEventListener("beforeunload",(t=>{if(e.status.isDirty)return t.returnValue=n}))}},x={id:"@jupyter-notebook/application-extension:logo",description:"The logo plugin.",autoStart:!0,activate:e=>{const t=r.PageConfig.getBaseUrl(),o=document.createElement("a");o.href=`${t}tree`,o.target="_blank",o.rel="noopener noreferrer";const n=new f.Widget({node:o});m.jupyterIcon.element({container:o,elementPosition:"center",padding:"2px 2px 2px 8px",height:"28px",width:"auto",cursor:"pointer",margin:"auto"}),n.id="jp-NotebookLogo",e.shell.add(n,"top",{rank:0})}},I={id:"@jupyter-notebook/application-extension:opener",description:"A plugin to open documents in the main area.",autoStart:!0,requires:[n.IRouter,d.IDocumentManager],optional:[p.ISettingRegistry],activate:(e,t,o,n)=>{const{commands:a,docRegistry:i}=e,r="router:tree";a.addCommand(r,{execute:t=>{var a;const r=t,d=null!==(a=r.path.match(v))&&void 0!==a?a:[],[,,l]=d;l&&e.started.then((async()=>{var e;const t=decodeURIComponent(l),a=new URLSearchParams(r.search);let d=i.defaultWidgetFactory(l).name;if(n){const e=(await n.load("@jupyterlab/docmanager-extension:plugin")).get("defaultViewers").composite;i.getFileTypesForPath(l).forEach((t=>{void 0!==e[t.name]&&i.getWidgetFactory(e[t.name])&&(d=e[t.name])}))}const s=null!==(e=a.get("factory"))&&void 0!==e?e:d;o.open(t,s,void 0,{ref:"_noref"})}))}}),t.register({command:r,pattern:v})}},P={id:"@jupyter-notebook/application-extension:menus",description:"A plugin to customize menus.",requires:[s.IMainMenu],autoStart:!0,activate:(e,t)=>{switch(t.tabsMenu.dispose(),r.PageConfig.getOption("notebookPage")){case"consoles":case"terminals":case"tree":t.editMenu.dispose(),t.kernelMenu.dispose(),t.runMenu.dispose();break;case"edit":t.kernelMenu.dispose(),t.runMenu.dispose()}}},C={id:"@jupyter-notebook/application-extension:menu-spacer",description:"A plugin to provide a spacer at rank 900 in the menu area.",autoStart:!0,activate:e=>{const t=new f.Widget;t.id=a.DOMUtils.createDomID(),t.addClass("jp-NotebookSpacer"),e.shell.add(t,"menu",{rank:900})}},S={id:"@jupyter-notebook/application-extension:pages",description:"Add commands to open the tree and running pages.",autoStart:!0,requires:[u.ITranslator],optional:[a.ICommandPalette],activate:(e,t,o)=>{const n=t.load("notebook"),a=r.PageConfig.getBaseUrl();e.commands.addCommand(k.openLab,{label:n.__("Open JupyterLab"),execute:()=>{window.open(r.URLExt.join(a,"lab"))}});const i=r.PageConfig.getOption("notebookPage");e.commands.addCommand(k.openTree,{label:n.__("File Browser"),execute:()=>{"tree"===i?e.commands.execute("filebrowser:activate"):window.open(r.URLExt.join(a,"tree"))}}),o&&(o.addItem({command:k.openLab,category:"View"}),o.addItem({command:k.openTree,category:"View"}))}},T={id:"@jupyter-notebook/application-extension:path-opener",description:"A plugin to open paths in new browser tabs.",autoStart:!0,provides:g.INotebookPathOpener,activate:e=>g.defaultNotebookPathOpener},R={id:"@jupyter-notebook/application-extension:paths",description:"The default paths for a Jupyter Notebook app.",autoStart:!0,provides:n.JupyterFrontEnd.IPaths,activate:e=>{if(!(e instanceof g.NotebookApp))throw new Error(`${R.id} must be activated in Jupyter Notebook.`);return e.paths}},E={id:"@jupyter-notebook/application-extension:rendermime",description:"A plugin providing a rendermime registry.",autoStart:!0,provides:c.IRenderMimeRegistry,optional:[d.IDocumentManager,c.ILatexTypesetter,a.ISanitizer,c.IMarkdownParser,u.ITranslator,g.INotebookPathOpener],activate:(e,t,o,n,a,i,d)=>{const l=(null!=i?i:u.nullTranslator).load("jupyterlab"),s=null!=d?d:g.defaultNotebookPathOpener;return t&&e.commands.addCommand(k.handleLink,{label:l.__("Handle Local Link"),execute:e=>{const o=e.path;if(null!=o)return t.services.contents.get(o,{content:!1}).then((e=>{const t=r.PageConfig.getBaseUrl();s.open({prefix:r.URLExt.join(t,"tree"),path:e.path,target:"_blank"})}))}}),new c.RenderMimeRegistry({initialFactories:c.standardRendererFactories,linkHandler:t?{handleLink:(t,o,n)=>{"A"===t.tagName&&t.hasAttribute("download")||e.commandLinker.connectNode(t,k.handleLink,{path:o,id:n})}}:void 0,latexTypesetter:null!=o?o:void 0,markdownParser:null!=a?a:void 0,translator:null!=i?i:void 0,sanitizer:null!=n?n:void 0})}},_={id:"@jupyter-notebook/application-extension:shell",description:"The default Jupyter Notebook application shell.",autoStart:!0,provides:g.INotebookShell,optional:[p.ISettingRegistry],activate:(e,t)=>{if(!(e.shell instanceof g.NotebookShell))throw new Error(`${_.id} did not find a NotebookShell instance.`);const o=e.shell;return t&&t.load(_.id).then((e=>{const t=e.composite.layout;o.restoreLayout(t)})).catch((e=>{console.error("Fail to load settings for the layout restorer."),console.error(e)})),o}},L={id:"@jupyter-notebook/application-extension:splash",description:"Provides an empty splash screen.",autoStart:!0,provides:a.ISplashScreen,activate:e=>{const{restored:t}=e,o=document.createElement("div");return o.style.position="absolute",o.style.width="100%",o.style.height="100%",o.style.zIndex="10",{show:(e=!0)=>(o.style.backgroundColor=e?"white":"#111111",document.body.appendChild(o),new b.DisposableDelegate((async()=>{await t,document.body.removeChild(o)})))}}},j={id:"@jupyter-notebook/application-extension:status",description:"The default JupyterLab application status provider.",autoStart:!0,provides:n.ILabStatus,activate:e=>{if(!(e instanceof g.NotebookApp))throw new Error(`${j.id} must be activated in Jupyter Notebook.`);return e.status}},N={id:"@jupyter-notebook/application-extension:tab-title",description:"A plugin to display the document title in the browser tab title.",autoStart:!0,requires:[g.INotebookShell],activate:(e,t)=>{const o=()=>{const e=t.currentWidget;if(e instanceof i.ConsolePanel){const t=()=>{const t=e.sessionContext.path||e.sessionContext.name,o=r.PathExt.basename(t);document.title=o.replace(y,"")};return e.sessionContext.sessionChanged.connect(t),void t()}if(e instanceof l.DocumentWidget){const t=()=>{const t=r.PathExt.basename(e.context.path);document.title=t.replace(y,"")};e.context.pathChanged.connect(t),t()}};t.currentChanged.connect(o),o()}},H={id:"@jupyter-notebook/application-extension:title",description:"A plugin to display and rename the title of a file.",autoStart:!0,requires:[g.INotebookShell,u.ITranslator],optional:[d.IDocumentManager,n.IRouter,a.IToolbarWidgetRegistry],activate:(e,t,o,n,a,i)=>{const{commands:s}=e,c=o.load("notebook"),p=document.createElement("div");i&&i.addFactory("TopBar","widgetTitle",(e=>{const t=new f.Widget({node:p});return t.id="jp-title",t}));const u=async()=>{const e=t.currentWidget;if(!(e&&e instanceof l.DocumentWidget))return;if(p.children.length>0)return;const o=document.createElement("h1");if(o.textContent=e.title.label.replace(y,""),p.appendChild(o),p.style.marginLeft="10px",!n)return;const i=()=>{const{currentWidget:e}=t;return!(!e||!n.contextForWidget(e))};s.addCommand(k.rename,{label:()=>c.__("Rename…"),isEnabled:i,execute:async()=>{var t;if(!i())return;const l=await(0,d.renameDialog)(n,e.context);if(e&&e.activate(),null===l)return;const s=e.context.path,c=r.PathExt.basename(s);if(o.textContent=c.replace(y,""),!a)return;const p=null!==(t=a.current.path.match(v))&&void 0!==t?t:[],[,u,g]=p;if(!u||!g)return;const m=encodeURIComponent(s);a.navigate(`/${u}/${m}`,{skipRouting:!0})}}),p.onclick=async()=>{s.execute(k.rename)}};t.currentChanged.connect(u),u()}},A={id:"@jupyter-notebook/application-extension:top",description:"Plugin to toggle the top header visibility.",requires:[g.INotebookShell,u.ITranslator],optional:[p.ISettingRegistry,a.ICommandPalette],activate:(e,t,o,n,a)=>{const i=o.load("notebook"),r=t.top,d=A.id;e.commands.addCommand(k.toggleTop,{label:i.__("Show Header"),execute:()=>{r.setHidden(r.isVisible),n&&n.set(d,"visible",r.isVisible?"yes":"no")},isToggled:()=>r.isVisible});let l=!1;if(n){const t=n.load(d),o=e=>{let t=e.get("visible").composite;void 0!==e.user.visible&&(t=e.user.visible),r.setHidden("no"===t),l="automatic"===t};Promise.all([t,e.restored]).then((([e])=>{o(e),e.changed.connect((e=>{o(e)}))})).catch((e=>{console.error(e.message)}))}a&&a.addItem({command:k.toggleTop,category:"View"}),e.formatChanged.connect((()=>{l&&("desktop"===e.format?t.expandTop():t.collapseTop())}))},autoStart:!0},M={id:"@jupyter-notebook/application-extension:sidepanel",description:"Plugin to toggle the visibility of left or right side panel.",requires:[g.INotebookShell,u.ITranslator],optional:[s.IMainMenu,a.ICommandPalette],autoStart:!0,activate:(e,t,o,n,a)=>{const i=o.load("notebook");e.commands.addCommand(k.togglePanel,{label:e=>e.title,caption:e=>"left"===e.side?i.__("Show %1 in the left sidebar",e.title):"right"===e.side?i.__("Show %1 in the right sidebar",e.title):i.__("Show %1 in the sidebar",e.title),execute:e=>{var o,n;switch(e.side){case"left":t.leftCollapsed||(null===(o=t.leftHandler.currentWidget)||void 0===o?void 0:o.id)!==e.id?t.expandLeft(e.id):(t.collapseLeft(),t.currentWidget&&t.activateById(t.currentWidget.id));break;case"right":t.rightCollapsed||(null===(n=t.rightHandler.currentWidget)||void 0===n?void 0:n.id)!==e.id?t.expandRight(e.id):(t.collapseRight(),t.currentWidget&&t.activateById(t.currentWidget.id))}},isToggled:e=>{switch(e.side){case"left":{if(t.leftCollapsed)return!1;const o=t.leftHandler.currentWidget;return!!o&&o.id===e.id}case"right":{if(t.rightCollapsed)return!1;const o=t.rightHandler.currentWidget;return!!o&&o.id===e.id}}return!1}});const r={left:null,right:null},d=(o,a)=>{var i;if(null===n)return null;null===(i=r[o])||void 0===i||i.dispose();const d=new f.Menu({commands:e.commands});d.title.label=a;const l=t.widgets(o);let s=!1;for(const e of l)d.addItem({command:k.togglePanel,args:{side:o,title:`Show ${e.title.caption}`,id:e.id}}),s=!0;s&&(r[o]=n.viewMenu.addItem({type:"submenu",submenu:d}))};e.restored.then((()=>{if(n){const e=e=>"left"===e?i.__("Left Sidebar"):i.__("Right Sidebar"),o=t.leftHandler.area,n=e(o);d(o,n);const a=t.rightHandler.area,r=e(a);d(a,r);const l=(t,o)=>{const n=e(t.area);d(t.area,n)};t.leftHandler.widgetAdded.connect(l),t.leftHandler.widgetRemoved.connect(l),t.rightHandler.widgetAdded.connect(l),t.rightHandler.widgetRemoved.connect(l)}if(a){const e=new g.SidePanelPalette({commandPalette:a,command:k.togglePanel});t.leftHandler.widgets.forEach((o=>{e.addItem(o,t.leftHandler.area)})),t.rightHandler.widgets.forEach((o=>{e.addItem(o,t.rightHandler.area)})),t.leftHandler.widgetAdded.connect(((t,o)=>{e.addItem(o,t.area)})),t.leftHandler.widgetRemoved.connect(((t,o)=>{e.removeItem(o,t.area)})),t.rightHandler.widgetAdded.connect(((t,o)=>{e.addItem(o,t.area)})),t.rightHandler.widgetRemoved.connect(((t,o)=>{e.removeItem(o,t.area)}))}}))}},U={id:"@jupyter-notebook/application-extension:tree-resolver",description:"The default tree route resolver plugin.",autoStart:!0,requires:[n.IRouter],provides:n.JupyterFrontEnd.ITreeResolver,activate:(e,t)=>{const{commands:o}=e,n=new b.DisposableSet,a=new h.PromiseDelegate,i=new RegExp("/(/tree/.*)?");n.add(o.addCommand(k.resolveTree,{execute:async e=>{var t;if(n.isDisposed)return;const o=r.URLExt.queryStringToObject(null!==(t=e.search)&&void 0!==t?t:""),i=o["file-browser-path"]||"";delete o["file-browser-path"],n.dispose(),a.resolve({browser:i,file:r.PageConfig.getOption("treePath")})}})),n.add(t.register({command:k.resolveTree,pattern:i}));const d=()=>{n.isDisposed||(n.dispose(),a.resolve(null))};return t.routed.connect(d),n.add(new b.DisposableDelegate((()=>{t.routed.disconnect(d)}))),{paths:a.promise}}},W={id:"@jupyter-notebook/application-extension:tree-updater",description:"Plugin to update tree path.",requires:[n.IRouter],provides:n.ITreePathUpdater,activate:(e,t)=>function(e){if(e!==r.PageConfig.getOption("treePath")){const o=r.URLExt.join(r.PageConfig.getOption("baseUrl")||"/","tree",r.URLExt.encodeParts(e));t.navigate(o,{skipRouting:!0}),r.PageConfig.setOption("treePath",e)}},autoStart:!0},D={id:"@jupyter-notebook/application-extension:translator",description:"Translator plugin",requires:[g.INotebookShell,u.ITranslator],autoStart:!0,activate:(e,t,o)=>{t.translator=o}},O={id:"@jupyter-notebook/application-extension:zen",description:"Zen mode plugin.",autoStart:!0,requires:[u.ITranslator],optional:[a.ICommandPalette,g.INotebookShell],activate:(e,t,o,n)=>{const{commands:a}=e,i=document.documentElement,r=t.load("notebook"),d=()=>{null==n||n.expandTop(),null==n||n.menu.setHidden(!1),l=!1};let l=!1;a.addCommand(k.toggleZen,{label:r.__("Toggle Zen Mode"),execute:()=>{l?(document.exitFullscreen(),d()):(i.requestFullscreen(),null==n||n.collapseTop(),null==n||n.menu.setHidden(!0),l=!0)}}),document.addEventListener("fullscreenchange",(()=>{document.fullscreenElement||d()})),o&&o.addItem({command:k.toggleZen,category:"Mode"})}},q=[w,x,P,C,I,S,T,R,E,_,M,L,j,N,H,A,U,W,D,O]}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[8633],{98633:(e,t,n)=>{n.r(t),n.d(t,{default:()=>y});var i,r=n(44604),a=n(53312),o=n(51429),d=n(35613),s=n(81221),c=n(24758),l=n(9033),g=n(23295),u=n(41053),p=n(12030);!function(e){e.open="settingeditor:open",e.openJSON="settingeditor:open-json",e.revert="settingeditor:revert",e.save="settingeditor:save"}(i||(i={}));const m={id:"@jupyterlab/settingeditor-extension:form-ui",description:"Adds the interactive settings editor and provides its tracker.",requires:[g.ISettingRegistry,u.IStateDB,p.ITranslator,d.IFormRendererRegistry,r.ILabStatus],optional:[r.ILayoutRestorer,a.ICommandPalette,c.g,l.IPluginManager],autoStart:!0,provides:c.O,activate:function(e,t,r,o,s,c,l,g,u,p){const v=o.load("jupyterlab"),{commands:y,shell:S}=e,b="setting-editor",I=new a.WidgetTracker({namespace:b});return l&&l.restore(I,{command:i.open,args:e=>({}),name:e=>b}),y.addCommand(i.open,{execute:async e=>{var l;"ui"===e.settingEditorType?y.execute(i.open,{query:null!==(l=e.query)&&void 0!==l?l:""}):"json"===e.settingEditorType?y.execute(i.openJSON):t.load(m.id).then((l=>{var g;"json"===l.get("settingEditorType").composite?y.execute(i.openJSON):(async e=>{if(I.currentWidget&&!I.currentWidget.isDisposed)return I.currentWidget.isAttached||S.add(I.currentWidget,"main",{type:"Settings"}),void S.activateById(I.currentWidget.id);const l=m.id,{SettingsEditor:g}=await n.e(4258).then(n.t.bind(n,74258,23)),h=new a.MainAreaWidget({content:new g({editorRegistry:s,key:l,registry:t,state:r,commands:y,toSkip:["@jupyterlab/application-extension:context-menu","@jupyterlab/mainmenu-extension:plugin"],translator:o,status:c,query:e.query})});h.toolbar.addItem("spacer",d.Toolbar.createSpacerItem()),p&&h.toolbar.addItem("open-plugin-manager",new d.ToolbarButton({onClick:async()=>{await p.open()},icon:d.launchIcon,label:v.__("Plugin Manager")})),u&&h.toolbar.addItem("open-json-editor",new d.CommandToolbarButton({commands:y,id:i.openJSON,icon:d.launchIcon,label:v.__("JSON Settings Editor")})),h.id=b,h.title.icon=d.settingsIcon,h.title.label=v.__("Settings"),h.title.closable=!0,I.add(h),S.add(h,"main",{type:"Settings"})})({query:null!==(g=e.query)&&void 0!==g?g:""})}))},label:e=>e.label?e.label:v.__("Settings Editor")}),g&&g.addItem({category:v.__("Settings"),command:i.open,args:{settingEditorType:"ui"}}),I}},v={id:"@jupyterlab/settingeditor-extension:plugin",description:"Adds the JSON settings editor and provides its tracker.",requires:[g.ISettingRegistry,o.IEditorServices,u.IStateDB,s.IRenderMimeRegistry,r.ILabStatus,p.ITranslator],optional:[r.ILayoutRestorer,a.ICommandPalette],autoStart:!0,provides:c.g,activate:function(e,t,r,o,s,c,l,g,u){const p=l.load("jupyterlab"),{commands:v,shell:y}=e,S="json-setting-editor",b=r.factoryService.newInlineEditor,I=new a.WidgetTracker({namespace:S});return g&&g.restore(I,{command:i.openJSON,args:e=>({}),name:e=>S}),v.addCommand(i.openJSON,{execute:async()=>{if(I.currentWidget&&!I.currentWidget.isDisposed)return I.currentWidget.isAttached||y.add(I.currentWidget,"main",{type:"Advanced Settings"}),void y.activateById(I.currentWidget.id);const r=m.id,g=e.restored,{JsonSettingEditor:u}=await n.e(4258).then(n.t.bind(n,74258,23)),h=new u({commands:{registry:v,revert:i.revert,save:i.save},editorFactory:b,key:r,registry:t,rendermime:s,state:o,translator:l,when:g});let w=null;h.commandsChanged.connect(((e,t)=>{t.forEach((e=>{v.notifyCommandChanged(e)})),h.canSaveRaw?w||(w=c.setDirty()):w&&(w.dispose(),w=null),h.disposed.connect((()=>{w&&w.dispose()}))}));const _=new a.MainAreaWidget({content:h});_.id=S,_.title.icon=d.settingsIcon,_.title.label=p.__("Advanced Settings Editor"),_.title.closable=!0,I.add(_),y.add(_,"main",{type:"Advanced Settings"})},label:p.__("Advanced Settings Editor")}),u&&u.addItem({category:p.__("Settings"),command:i.openJSON}),v.addCommand(i.revert,{execute:()=>{var e;null===(e=I.currentWidget)||void 0===e||e.content.revert()},icon:d.undoIcon,label:p.__("Revert User Settings"),isEnabled:()=>{var e,t;return null!==(t=null===(e=I.currentWidget)||void 0===e?void 0:e.content.canRevertRaw)&&void 0!==t&&t}}),v.addCommand(i.save,{execute:()=>{var e;return null===(e=I.currentWidget)||void 0===e?void 0:e.content.save()},icon:d.saveIcon,label:p.__("Save User Settings"),isEnabled:()=>{var e,t;return null!==(t=null===(e=I.currentWidget)||void 0===e?void 0:e.content.canSaveRaw)&&void 0!==t&&t}}),I}},y=[m,v]},24758:(e,t,n)=>{n.d(t,{O:()=>r,g:()=>a});var i=n(20998);const r=new i.Token("@jupyterlab/settingeditor:ISettingEditorTracker","A widget tracker for the interactive setting editor.\n Use this if you want to be able to iterate over and interact with setting editors\n created by the application."),a=new i.Token("@jupyterlab/settingeditor:IJSONSettingEditorTracker","A widget tracker for the JSON setting editor.\n Use this if you want to be able to iterate over and interact with setting editors\n created by the application.")}}]);
1
+ "use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[8633],{98633:(e,t,n)=>{n.r(t),n.d(t,{default:()=>y});var i,r=n(2756),a=n(20005),o=n(68481),d=n(14576),s=n(1323),c=n(24758),l=n(84545),g=n(3339),u=n(48218),p=n(90646);!function(e){e.open="settingeditor:open",e.openJSON="settingeditor:open-json",e.revert="settingeditor:revert",e.save="settingeditor:save"}(i||(i={}));const m={id:"@jupyterlab/settingeditor-extension:form-ui",description:"Adds the interactive settings editor and provides its tracker.",requires:[g.ISettingRegistry,u.IStateDB,p.ITranslator,d.IFormRendererRegistry,r.ILabStatus],optional:[r.ILayoutRestorer,a.ICommandPalette,c.g,l.IPluginManager],autoStart:!0,provides:c.O,activate:function(e,t,r,o,s,c,l,g,u,p){const v=o.load("jupyterlab"),{commands:y,shell:S}=e,b="setting-editor",I=new a.WidgetTracker({namespace:b});return l&&l.restore(I,{command:i.open,args:e=>({}),name:e=>b}),y.addCommand(i.open,{execute:async e=>{var l;"ui"===e.settingEditorType?y.execute(i.open,{query:null!==(l=e.query)&&void 0!==l?l:""}):"json"===e.settingEditorType?y.execute(i.openJSON):t.load(m.id).then((l=>{var g;"json"===l.get("settingEditorType").composite?y.execute(i.openJSON):(async e=>{if(I.currentWidget&&!I.currentWidget.isDisposed)return I.currentWidget.isAttached||S.add(I.currentWidget,"main",{type:"Settings"}),void S.activateById(I.currentWidget.id);const l=m.id,{SettingsEditor:g}=await n.e(1223).then(n.t.bind(n,91223,23)),h=new a.MainAreaWidget({content:new g({editorRegistry:s,key:l,registry:t,state:r,commands:y,toSkip:["@jupyterlab/application-extension:context-menu","@jupyterlab/mainmenu-extension:plugin"],translator:o,status:c,query:e.query})});h.toolbar.addItem("spacer",d.Toolbar.createSpacerItem()),p&&h.toolbar.addItem("open-plugin-manager",new d.ToolbarButton({onClick:async()=>{await p.open()},icon:d.launchIcon,label:v.__("Plugin Manager")})),u&&h.toolbar.addItem("open-json-editor",new d.CommandToolbarButton({commands:y,id:i.openJSON,icon:d.launchIcon,label:v.__("JSON Settings Editor")})),h.id=b,h.title.icon=d.settingsIcon,h.title.label=v.__("Settings"),h.title.closable=!0,I.add(h),S.add(h,"main",{type:"Settings"})})({query:null!==(g=e.query)&&void 0!==g?g:""})}))},label:e=>e.label?e.label:v.__("Settings Editor")}),g&&g.addItem({category:v.__("Settings"),command:i.open,args:{settingEditorType:"ui"}}),I}},v={id:"@jupyterlab/settingeditor-extension:plugin",description:"Adds the JSON settings editor and provides its tracker.",requires:[g.ISettingRegistry,o.IEditorServices,u.IStateDB,s.IRenderMimeRegistry,r.ILabStatus,p.ITranslator],optional:[r.ILayoutRestorer,a.ICommandPalette],autoStart:!0,provides:c.g,activate:function(e,t,r,o,s,c,l,g,u){const p=l.load("jupyterlab"),{commands:v,shell:y}=e,S="json-setting-editor",b=r.factoryService.newInlineEditor,I=new a.WidgetTracker({namespace:S});return g&&g.restore(I,{command:i.openJSON,args:e=>({}),name:e=>S}),v.addCommand(i.openJSON,{execute:async()=>{if(I.currentWidget&&!I.currentWidget.isDisposed)return I.currentWidget.isAttached||y.add(I.currentWidget,"main",{type:"Advanced Settings"}),void y.activateById(I.currentWidget.id);const r=m.id,g=e.restored,{JsonSettingEditor:u}=await n.e(1223).then(n.t.bind(n,91223,23)),h=new u({commands:{registry:v,revert:i.revert,save:i.save},editorFactory:b,key:r,registry:t,rendermime:s,state:o,translator:l,when:g});let w=null;h.commandsChanged.connect(((e,t)=>{t.forEach((e=>{v.notifyCommandChanged(e)})),h.canSaveRaw?w||(w=c.setDirty()):w&&(w.dispose(),w=null),h.disposed.connect((()=>{w&&w.dispose()}))}));const _=new a.MainAreaWidget({content:h});_.id=S,_.title.icon=d.settingsIcon,_.title.label=p.__("Advanced Settings Editor"),_.title.closable=!0,I.add(_),y.add(_,"main",{type:"Advanced Settings"})},label:p.__("Advanced Settings Editor")}),u&&u.addItem({category:p.__("Settings"),command:i.openJSON}),v.addCommand(i.revert,{execute:()=>{var e;null===(e=I.currentWidget)||void 0===e||e.content.revert()},icon:d.undoIcon,label:p.__("Revert User Settings"),isEnabled:()=>{var e,t;return null!==(t=null===(e=I.currentWidget)||void 0===e?void 0:e.content.canRevertRaw)&&void 0!==t&&t}}),v.addCommand(i.save,{execute:()=>{var e;return null===(e=I.currentWidget)||void 0===e?void 0:e.content.save()},icon:d.saveIcon,label:p.__("Save User Settings"),isEnabled:()=>{var e,t;return null!==(t=null===(e=I.currentWidget)||void 0===e?void 0:e.content.canSaveRaw)&&void 0!==t&&t}}),I}},y=[m,v]},24758:(e,t,n)=>{n.d(t,{O:()=>r,g:()=>a});var i=n(20998);const r=new i.Token("@jupyterlab/settingeditor:ISettingEditorTracker","A widget tracker for the interactive setting editor.\n Use this if you want to be able to iterate over and interact with setting editors\n created by the application."),a=new i.Token("@jupyterlab/settingeditor:IJSONSettingEditorTracker","A widget tracker for the JSON setting editor.\n Use this if you want to be able to iterate over and interact with setting editors\n created by the application.")}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[8771,9638],{68771:(e,t,n)=>{n.r(t),n.d(t,{ILauncher:()=>a,Launcher:()=>p,LauncherModel:()=>u});const a=new(n(20998).Token)("@jupyterlab/launcher:ILauncher","A service for the application activity launcher.\n Use this to add your extension activities to the launcher panel.");var s,r=n(53312),c=n(12030),o=n(35613),i=n(33625),l=n(2549),d=n(14421),h=n(63485),m=n(78156);class u extends o.VDomModel{constructor(){super(...arguments),this.itemsList=[]}add(e){const t=s.createItem(e);return this.itemsList.push(t),this.stateChanged.emit(void 0),new l.DisposableDelegate((()=>{i.ArrayExt.removeFirstOf(this.itemsList,t),this.stateChanged.emit(void 0)}))}items(){return this.itemsList[Symbol.iterator]()}}class p extends o.VDomRenderer{constructor(e){super(e.model),this._pending=!1,this._cwd="",this._cwd=e.cwd,this.translator=e.translator||c.nullTranslator,this._trans=this.translator.load("jupyterlab"),this._callback=e.callback,this._commands=e.commands,this.addClass("jp-Launcher")}get cwd(){return this._cwd}set cwd(e){this._cwd=e,this.update()}get pending(){return this._pending}set pending(e){this._pending=e}render(){if(!this.model)return null;const e=[this._trans.__("Notebook"),this._trans.__("Console"),this._trans.__("Other")],t=[this._trans.__("Notebook"),this._trans.__("Console")],n=Object.create(null);for(const e of this.model.items()){const t=e.category||this._trans.__("Other");t in n||(n[t]=[]),n[t].push(e)}for(const e in n)n[e]=n[e].sort(((e,t)=>s.sortCmp(e,t,this._cwd,this._commands)));const a=[];let c;const l=[];for(const t of e)l.push(t);for(const t in n)-1===e.indexOf(t)&&l.push(t);return l.forEach((e=>{if(!n[e])return;const l=n[e][0],d={...l.args,cwd:this.cwd},u=t.indexOf(e)>-1,p=this._commands.iconClass(l.command,d),_=this._commands.icon(l.command,d);e in n&&(c=m.createElement("div",{className:"jp-Launcher-section",key:e},m.createElement("div",{className:"jp-Launcher-sectionHeader"},m.createElement(o.LabIcon.resolveReact,{icon:_,iconClass:(0,o.classes)(p,"jp-Icon-cover"),stylesheet:"launcherSection","aria-hidden":"true"}),m.createElement("h2",{className:"jp-Launcher-sectionTitle"},e)),m.createElement("div",{className:"jp-Launcher-cardContainer"},Array.from((0,i.map)(n[e],(e=>function(e,t,n,a,c,i){const l=t.command,d={...t.args,cwd:n.cwd},u=a.caption(l,d),p=a.label(l,d),_=e?p:u||p,g=()=>{!0!==n.pending&&(n.pending=!0,a.execute(l,{...t.args,cwd:n.cwd}).then((e=>{n.pending=!1,e instanceof h.Widget&&i(e)})).catch((e=>{console.error(e),n.pending=!1,(0,r.showErrorMessage)(c._p("Error","Launcher Error"),e)})))},E=a.iconClass(l,d),L=a.icon(l,d);return m.createElement("div",{className:"jp-LauncherCard",title:_,onClick:g,onKeyPress:e=>{"Enter"===e.key&&g()},tabIndex:0,"data-category":t.category||c.__("Other"),key:s.keyProperty.get(t)},m.createElement("div",{className:"jp-LauncherCard-icon"},e?t.kernelIconUrl?m.createElement("img",{src:t.kernelIconUrl,className:"jp-Launcher-kernelIcon",alt:_}):m.createElement("div",{className:"jp-LauncherCard-noKernelIcon"},p[0].toUpperCase()):m.createElement(o.LabIcon.resolveReact,{icon:L,iconClass:(0,o.classes)(E,"jp-Icon-cover"),stylesheet:"launcherCard"})),m.createElement("div",{className:"jp-LauncherCard-label",title:_},m.createElement("p",null,p)))}(u,e,this,this._commands,this._trans,this._callback)))))),a.push(c))})),m.createElement("div",{className:"jp-Launcher-body"},m.createElement("div",{className:"jp-Launcher-content"},m.createElement("div",{className:"jp-Launcher-cwd"},m.createElement("h3",null,this.cwd)),a))}}!function(e){let t=0;e.keyProperty=new d.AttachedProperty({name:"key",create:()=>t++}),e.createItem=function(e){return{...e,category:e.category||"",rank:void 0!==e.rank?e.rank:1/0}},e.sortCmp=function(e,t,n,a){const s=e.rank,r=t.rank;if(s!==r&&void 0!==s&&void 0!==r)return s<r?-1:1;const c=a.label(e.command,{...e.args,cwd:n}),o=a.label(t.command,{...t.args,cwd:n});return c.localeCompare(o)}}(s||(s={}))}}]);
1
+ "use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[8771,9638],{68771:(e,t,n)=>{n.r(t),n.d(t,{ILauncher:()=>a,Launcher:()=>p,LauncherModel:()=>u});const a=new(n(20998).Token)("@jupyterlab/launcher:ILauncher","A service for the application activity launcher.\n Use this to add your extension activities to the launcher panel.");var s,r=n(20005),c=n(90646),o=n(14576),i=n(33625),l=n(2549),d=n(14421),h=n(63485),m=n(78156);class u extends o.VDomModel{constructor(){super(...arguments),this.itemsList=[]}add(e){const t=s.createItem(e);return this.itemsList.push(t),this.stateChanged.emit(void 0),new l.DisposableDelegate((()=>{i.ArrayExt.removeFirstOf(this.itemsList,t),this.stateChanged.emit(void 0)}))}items(){return this.itemsList[Symbol.iterator]()}}class p extends o.VDomRenderer{constructor(e){super(e.model),this._pending=!1,this._cwd="",this._cwd=e.cwd,this.translator=e.translator||c.nullTranslator,this._trans=this.translator.load("jupyterlab"),this._callback=e.callback,this._commands=e.commands,this.addClass("jp-Launcher")}get cwd(){return this._cwd}set cwd(e){this._cwd=e,this.update()}get pending(){return this._pending}set pending(e){this._pending=e}render(){if(!this.model)return null;const e=[this._trans.__("Notebook"),this._trans.__("Console"),this._trans.__("Other")],t=[this._trans.__("Notebook"),this._trans.__("Console")],n=Object.create(null);for(const e of this.model.items()){const t=e.category||this._trans.__("Other");t in n||(n[t]=[]),n[t].push(e)}for(const e in n)n[e]=n[e].sort(((e,t)=>s.sortCmp(e,t,this._cwd,this._commands)));const a=[];let c;const l=[];for(const t of e)l.push(t);for(const t in n)-1===e.indexOf(t)&&l.push(t);return l.forEach((e=>{if(!n[e])return;const l=n[e][0],d={...l.args,cwd:this.cwd},u=t.indexOf(e)>-1,p=this._commands.iconClass(l.command,d),_=this._commands.icon(l.command,d);e in n&&(c=m.createElement("div",{className:"jp-Launcher-section",key:e},m.createElement("div",{className:"jp-Launcher-sectionHeader"},m.createElement(o.LabIcon.resolveReact,{icon:_,iconClass:(0,o.classes)(p,"jp-Icon-cover"),stylesheet:"launcherSection","aria-hidden":"true"}),m.createElement("h2",{className:"jp-Launcher-sectionTitle"},e)),m.createElement("div",{className:"jp-Launcher-cardContainer"},Array.from((0,i.map)(n[e],(e=>function(e,t,n,a,c,i){const l=t.command,d={...t.args,cwd:n.cwd},u=a.caption(l,d),p=a.label(l,d),_=e?p:u||p,g=()=>{!0!==n.pending&&(n.pending=!0,a.execute(l,{...t.args,cwd:n.cwd}).then((e=>{n.pending=!1,e instanceof h.Widget&&i(e)})).catch((e=>{console.error(e),n.pending=!1,(0,r.showErrorMessage)(c._p("Error","Launcher Error"),e)})))},E=a.iconClass(l,d),L=a.icon(l,d);return m.createElement("div",{className:"jp-LauncherCard",title:_,onClick:g,onKeyPress:e=>{"Enter"===e.key&&g()},tabIndex:0,"data-category":t.category||c.__("Other"),key:s.keyProperty.get(t)},m.createElement("div",{className:"jp-LauncherCard-icon"},e?t.kernelIconUrl?m.createElement("img",{src:t.kernelIconUrl,className:"jp-Launcher-kernelIcon",alt:_}):m.createElement("div",{className:"jp-LauncherCard-noKernelIcon"},p[0].toUpperCase()):m.createElement(o.LabIcon.resolveReact,{icon:L,iconClass:(0,o.classes)(E,"jp-Icon-cover"),stylesheet:"launcherCard"})),m.createElement("div",{className:"jp-LauncherCard-label",title:_},m.createElement("p",null,p)))}(u,e,this,this._commands,this._trans,this._callback)))))),a.push(c))})),m.createElement("div",{className:"jp-Launcher-body"},m.createElement("div",{className:"jp-Launcher-content"},m.createElement("div",{className:"jp-Launcher-cwd"},m.createElement("h3",null,this.cwd)),a))}}!function(e){let t=0;e.keyProperty=new d.AttachedProperty({name:"key",create:()=>t++}),e.createItem=function(e){return{...e,category:e.category||"",rank:void 0!==e.rank?e.rank:1/0}},e.sortCmp=function(e,t,n,a){const s=e.rank,r=t.rank;if(s!==r&&void 0!==s&&void 0!==r)return s<r?-1:1;const c=a.label(e.command,{...e.args,cwd:n}),o=a.label(t.command,{...t.args,cwd:n});return c.localeCompare(o)}}(s||(s={}))}}]);
@@ -1 +1 @@
1
- (self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[8781],{67417:()=>{},60880:(e,n,t)=>{"use strict";t.r(n);var o=t(68722);async function a(e,n){try{const t=(await window._JUPYTERLAB[e].get(n))();return t.__scope__=e,t}catch(t){throw console.warn(`Failed to create module: package: ${e}; module: ${n}`),t}}t(72761),t(67417),window.addEventListener("load",(async function(){const e=[t(46037),t(87360),t(27854),t(92783)],n=await Promise.all(e);let r=[t(55777),t(336),t(89098),t(88020),t(88580),t(68630),t(22257),t(61072).default.filter((({id:e})=>["@jupyterlab/application-extension:commands","@jupyterlab/application-extension:context-menu","@jupyterlab/application-extension:faviconbusy","@jupyterlab/application-extension:router","@jupyterlab/application-extension:top-bar","@jupyterlab/application-extension:top-spacer"].includes(e))),t(47494).default.filter((({id:e})=>["@jupyterlab/apputils-extension:palette","@jupyterlab/apputils-extension:notification","@jupyterlab/apputils-extension:sanitizer","@jupyterlab/apputils-extension:sessionDialogs","@jupyterlab/apputils-extension:settings","@jupyterlab/apputils-extension:state","@jupyterlab/apputils-extension:themes","@jupyterlab/apputils-extension:themes-palette-menu","@jupyterlab/apputils-extension:toolbar-registry","@jupyterlab/apputils-extension:utilityCommands"].includes(e))),t(60323),t(78917).default.filter((({id:e})=>["@jupyterlab/completer-extension:base-service","@jupyterlab/completer-extension:inline-completer","@jupyterlab/completer-extension:inline-completer-factory","@jupyterlab/completer-extension:inline-history","@jupyterlab/completer-extension:manager"].includes(e))),t(77089).default.filter((({id:e})=>["@jupyterlab/console-extension:cell-executor","@jupyterlab/console-extension:completer","@jupyterlab/console-extension:factory","@jupyterlab/console-extension:foreign","@jupyterlab/console-extension:tracker"].includes(e))),t(20671),t(97708).default.filter((({id:e})=>["@jupyterlab/docmanager-extension:plugin","@jupyterlab/docmanager-extension:download","@jupyterlab/docmanager-extension:contexts","@jupyterlab/docmanager-extension:manager"].includes(e))),t(94414).default.filter((({id:e})=>["@jupyterlab/documentsearch-extension:plugin"].includes(e))),t(34409).default.filter((({id:e})=>["@jupyterlab/filebrowser-extension:factory","@jupyterlab/filebrowser-extension:default-file-browser"].includes(e))),t(43258).default.filter((({id:e})=>["@jupyterlab/fileeditor-extension:plugin"].includes(e))),t(74516).default.filter((({id:e})=>["@jupyterlab/help-extension:resources"].includes(e))),t(89770),t(90388),t(77659),t(53440).default.filter((({id:e})=>["@jupyterlab/mainmenu-extension:plugin"].includes(e))),t(41145),t(40364),t(75347),t(79680).default.filter((({id:e})=>["@jupyterlab/notebook-extension:cell-executor","@jupyterlab/notebook-extension:code-console","@jupyterlab/notebook-extension:export","@jupyterlab/notebook-extension:factory","@jupyterlab/notebook-extension:tracker","@jupyterlab/notebook-extension:widget-factory"].includes(e))),t(22413),t(57926),t(96291),t(1262),t(84228),t(97818),t(78608),t(53929),t(20531)];switch(`/${o.PageConfig.getOption("notebookPage")}`){case"/tree":r=r.concat([t(36488),t(34409).default.filter((({id:e})=>["@jupyterlab/filebrowser-extension:browser","@jupyterlab/filebrowser-extension:download","@jupyterlab/filebrowser-extension:file-upload-status","@jupyterlab/filebrowser-extension:open-with","@jupyterlab/filebrowser-extension:search","@jupyterlab/filebrowser-extension:share-file"].includes(e))),t(71812),t(27993).default.filter((({id:e})=>["@jupyterlab/running-extension:plugin"].includes(e))),t(86652)]);break;case"/notebooks":r=r.concat([t(54669),t(78007),t(98128).default.filter((({id:e})=>["@jupyterlab/debugger-extension:config","@jupyterlab/debugger-extension:main","@jupyterlab/debugger-extension:notebooks","@jupyterlab/debugger-extension:service","@jupyterlab/debugger-extension:sidebar","@jupyterlab/debugger-extension:sources"].includes(e))),t(1598),t(79680).default.filter((({id:e})=>["@jupyterlab/notebook-extension:active-cell-tool","@jupyterlab/notebook-extension:completer","@jupyterlab/notebook-extension:copy-output","@jupyterlab/notebook-extension:metadata-editor","@jupyterlab/notebook-extension:search","@jupyterlab/notebook-extension:toc","@jupyterlab/notebook-extension:tools","@jupyterlab/notebook-extension:update-raw-mimetype"].includes(e))),t(77619).default.filter((({id:e})=>["@jupyterlab/toc-extension:registry","@jupyterlab/toc-extension:tracker"].includes(e))),t(33e3).default.filter((({id:e})=>["@jupyterlab/tooltip-extension:manager","@jupyterlab/tooltip-extension:notebooks"].includes(e)))]);break;case"/consoles":r=r.concat([t(33e3).default.filter((({id:e})=>["@jupyterlab/tooltip-extension:manager","@jupyterlab/tooltip-extension:consoles"].includes(e)))]);break;case"/edit":r=r.concat([t(43258).default.filter((({id:e})=>["@jupyterlab/fileeditor-extension:completer","@jupyterlab/fileeditor-extension:search"].includes(e))),t(66299)])}const i=[],l=[];function*s(e){let n;n=Object.prototype.hasOwnProperty.call(e,"__esModule")?e.default:e;let t=Array.isArray(n)?n:[n];for(let n of t){const t=o.PageConfig.Extension.isDisabled(n.id);l.push({id:n.id,description:n.description,requires:n.requires??[],optional:n.optional??[],provides:n.provides??null,autoStart:n.autoStart,enabled:!t,extension:e.__scope__}),t?i.push(n.id):yield n}}const p=JSON.parse(o.PageConfig.getOption("federated_extensions")),u=[],b=[],d=[],c=[];(await Promise.allSettled(p.map((async e=>(await async function(e,n){await function(e){return new Promise(((n,t)=>{const o=document.createElement("script");o.onerror=t,o.onload=n,o.async=!0,document.head.appendChild(o),o.src=e}))}(e),await t.I("default");const o=window._JUPYTERLAB[n];await o.init(t.S.default)}(`${o.URLExt.join(o.PageConfig.getOption("fullLabextensionsUrl"),e.name,e.load)}`,e.name),e))))).forEach((e=>{if("rejected"===e.status)return void console.error(e.reason);const n=e.value;n.extension&&b.push(a(n.name,n.extension)),n.mimeExtension&&d.push(a(n.name,n.mimeExtension)),n.style&&!o.PageConfig.Extension.isDisabled(n.name)&&c.push(a(n.name,n.style))})),(await Promise.all(r)).forEach((e=>{for(let n of s(e))u.push(n)})),(await Promise.allSettled(b)).forEach((e=>{if("fulfilled"===e.status)for(let n of s(e.value))u.push(n);else console.error(e.reason)})),(await Promise.allSettled(d)).forEach((e=>{if("fulfilled"===e.status)for(let t of s(e.value))n.push(t);else console.error(e.reason)})),(await Promise.allSettled(c)).filter((({status:e})=>"rejected"===e)).forEach((({reason:e})=>{console.error(e)})),o.PageConfig.setOption("allPlugins",'{"/":{"@jupyter-notebook/application-extension":true,"@jupyter-notebook/console-extension":true,"@jupyter-notebook/docmanager-extension":true,"@jupyter-notebook/documentsearch-extension":true,"@jupyter-notebook/help-extension":true,"@jupyter-notebook/notebook-extension":true,"@jupyter-notebook/terminal-extension":true,"@jupyterlab/application-extension":["@jupyterlab/application-extension:commands","@jupyterlab/application-extension:context-menu","@jupyterlab/application-extension:faviconbusy","@jupyterlab/application-extension:router","@jupyterlab/application-extension:top-bar","@jupyterlab/application-extension:top-spacer"],"@jupyterlab/apputils-extension":["@jupyterlab/apputils-extension:palette","@jupyterlab/apputils-extension:notification","@jupyterlab/apputils-extension:sanitizer","@jupyterlab/apputils-extension:sessionDialogs","@jupyterlab/apputils-extension:settings","@jupyterlab/apputils-extension:state","@jupyterlab/apputils-extension:themes","@jupyterlab/apputils-extension:themes-palette-menu","@jupyterlab/apputils-extension:toolbar-registry","@jupyterlab/apputils-extension:utilityCommands"],"@jupyterlab/codemirror-extension":true,"@jupyterlab/completer-extension":["@jupyterlab/completer-extension:base-service","@jupyterlab/completer-extension:inline-completer","@jupyterlab/completer-extension:inline-completer-factory","@jupyterlab/completer-extension:inline-history","@jupyterlab/completer-extension:manager"],"@jupyterlab/console-extension":["@jupyterlab/console-extension:cell-executor","@jupyterlab/console-extension:completer","@jupyterlab/console-extension:factory","@jupyterlab/console-extension:foreign","@jupyterlab/console-extension:tracker"],"@jupyterlab/csvviewer-extension":true,"@jupyterlab/docmanager-extension":["@jupyterlab/docmanager-extension:plugin","@jupyterlab/docmanager-extension:download","@jupyterlab/docmanager-extension:contexts","@jupyterlab/docmanager-extension:manager"],"@jupyterlab/documentsearch-extension":["@jupyterlab/documentsearch-extension:plugin"],"@jupyterlab/filebrowser-extension":["@jupyterlab/filebrowser-extension:factory","@jupyterlab/filebrowser-extension:default-file-browser"],"@jupyterlab/fileeditor-extension":["@jupyterlab/fileeditor-extension:plugin"],"@jupyterlab/help-extension":["@jupyterlab/help-extension:resources"],"@jupyterlab/htmlviewer-extension":true,"@jupyterlab/imageviewer-extension":true,"@jupyterlab/lsp-extension":true,"@jupyterlab/mainmenu-extension":["@jupyterlab/mainmenu-extension:plugin"],"@jupyterlab/markedparser-extension":true,"@jupyterlab/mathjax-extension":true,"@jupyterlab/mermaid-extension":true,"@jupyterlab/notebook-extension":["@jupyterlab/notebook-extension:cell-executor","@jupyterlab/notebook-extension:code-console","@jupyterlab/notebook-extension:export","@jupyterlab/notebook-extension:factory","@jupyterlab/notebook-extension:tracker","@jupyterlab/notebook-extension:widget-factory"],"@jupyterlab/pluginmanager-extension":true,"@jupyterlab/shortcuts-extension":true,"@jupyterlab/terminal-extension":true,"@jupyterlab/theme-light-extension":true,"@jupyterlab/theme-dark-extension":true,"@jupyterlab/theme-dark-high-contrast-extension":true,"@jupyterlab/translation-extension":true,"@jupyterlab/ui-components-extension":true,"@jupyterlab/hub-extension":true},"/tree":{"@jupyterlab/extensionmanager-extension":true,"@jupyterlab/filebrowser-extension":["@jupyterlab/filebrowser-extension:browser","@jupyterlab/filebrowser-extension:download","@jupyterlab/filebrowser-extension:file-upload-status","@jupyterlab/filebrowser-extension:open-with","@jupyterlab/filebrowser-extension:search","@jupyterlab/filebrowser-extension:share-file"],"@jupyter-notebook/tree-extension":true,"@jupyterlab/running-extension":["@jupyterlab/running-extension:plugin"],"@jupyterlab/settingeditor-extension":true},"/notebooks":{"@jupyterlab/celltags-extension":true,"@jupyterlab/cell-toolbar-extension":true,"@jupyterlab/debugger-extension":["@jupyterlab/debugger-extension:config","@jupyterlab/debugger-extension:main","@jupyterlab/debugger-extension:notebooks","@jupyterlab/debugger-extension:service","@jupyterlab/debugger-extension:sidebar","@jupyterlab/debugger-extension:sources"],"@jupyterlab/metadataform-extension":true,"@jupyterlab/notebook-extension":["@jupyterlab/notebook-extension:active-cell-tool","@jupyterlab/notebook-extension:completer","@jupyterlab/notebook-extension:copy-output","@jupyterlab/notebook-extension:metadata-editor","@jupyterlab/notebook-extension:search","@jupyterlab/notebook-extension:toc","@jupyterlab/notebook-extension:tools","@jupyterlab/notebook-extension:update-raw-mimetype"],"@jupyterlab/toc-extension":["@jupyterlab/toc-extension:registry","@jupyterlab/toc-extension:tracker"],"@jupyterlab/tooltip-extension":["@jupyterlab/tooltip-extension:manager","@jupyterlab/tooltip-extension:notebooks"]},"/consoles":{"@jupyterlab/tooltip-extension":["@jupyterlab/tooltip-extension:manager","@jupyterlab/tooltip-extension:consoles"]},"/edit":{"@jupyterlab/fileeditor-extension":["@jupyterlab/fileeditor-extension:completer","@jupyterlab/fileeditor-extension:search"],"@jupyterlab/markdownviewer-extension":true}}');const j=new(0,t(1635).NotebookApp)({mimeExtensions:n,availablePlugins:l});j.registerPluginModules(u),"true"===(o.PageConfig.getOption("exposeAppInBrowser")||"").toLowerCase()&&(window.jupyterapp=j),await j.start()}))},72761:(e,n,t)=>{"use strict";t.r(n),t(71818),t(70022),t(26238);var o=t(94830),a=t.n(o),r=t(80592),i=t.n(r),l=t(99763),s=t.n(l),p=t(28915),u=t.n(p),b=t(80366),d=t.n(b),c=t(17352),j=t.n(c),m=t(26633),y={};y.styleTagTransform=j(),y.setAttributes=u(),y.insert=s().bind(null,"head"),y.domAPI=i(),y.insertStyleElement=d(),a()(m.Z,y),m.Z&&m.Z.locals&&m.Z.locals;var x=t(93862),g={};g.styleTagTransform=j(),g.setAttributes=u(),g.insert=s().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=d(),a()(x.Z,g),x.Z&&x.Z.locals&&x.Z.locals,t(20959);var h=t(58027),f={};f.styleTagTransform=j(),f.setAttributes=u(),f.insert=s().bind(null,"head"),f.domAPI=i(),f.insertStyleElement=d(),a()(h.Z,f),h.Z&&h.Z.locals&&h.Z.locals;var A=t(99776),k={};k.styleTagTransform=j(),k.setAttributes=u(),k.insert=s().bind(null,"head"),k.domAPI=i(),k.insertStyleElement=d(),a()(A.Z,k),A.Z&&A.Z.locals&&A.Z.locals;var v=t(64399),w={};w.styleTagTransform=j(),w.setAttributes=u(),w.insert=s().bind(null,"head"),w.domAPI=i(),w.insertStyleElement=d(),a()(v.Z,w),v.Z&&v.Z.locals&&v.Z.locals;var T=t(11112),P={};P.styleTagTransform=j(),P.setAttributes=u(),P.insert=s().bind(null,"head"),P.domAPI=i(),P.insertStyleElement=d(),a()(T.Z,P),T.Z&&T.Z.locals&&T.Z.locals;var Z=t(49482),B={};B.styleTagTransform=j(),B.setAttributes=u(),B.insert=s().bind(null,"head"),B.domAPI=i(),B.insertStyleElement=d(),a()(Z.Z,B),Z.Z&&Z.Z.locals&&Z.Z.locals;var S=t(71564),C={};C.styleTagTransform=j(),C.setAttributes=u(),C.insert=s().bind(null,"head"),C.domAPI=i(),C.insertStyleElement=d(),a()(S.Z,C),S.Z&&S.Z.locals&&S.Z.locals;var N=t(8173),E={};E.styleTagTransform=j(),E.setAttributes=u(),E.insert=s().bind(null,"head"),E.domAPI=i(),E.insertStyleElement=d(),a()(N.Z,E),N.Z&&N.Z.locals&&N.Z.locals,t(40360);var D=t(30546),z={};z.styleTagTransform=j(),z.setAttributes=u(),z.insert=s().bind(null,"head"),z.domAPI=i(),z.insertStyleElement=d(),a()(D.Z,z),D.Z&&D.Z.locals&&D.Z.locals;var F=t(94623),L={};L.styleTagTransform=j(),L.setAttributes=u(),L.insert=s().bind(null,"head"),L.domAPI=i(),L.insertStyleElement=d(),a()(F.Z,L),F.Z&&F.Z.locals&&F.Z.locals;var M=t(99402),I={};I.styleTagTransform=j(),I.setAttributes=u(),I.insert=s().bind(null,"head"),I.domAPI=i(),I.insertStyleElement=d(),a()(M.Z,I),M.Z&&M.Z.locals&&M.Z.locals,t(32723),t(82649),t(15491),t(92645),t(18934),t(24017),t(72867),t(93751),t(75617),t(91532),t(20603),t(17066),t(39380),t(9755),t(82164),t(94938),t(53555),t(86258),t(11575),t(10887),t(26449),t(3727),t(97635),t(16856),t(46165),t(8604),t(26053),t(84221),t(53927),t(67074),t(47275),t(58068),t(41346),t(74768),t(65315),t(87635),t(37609),t(49733),t(40745)},58027:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n|\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-NotebookSpacer {\n flex-grow: 1;\n flex-shrink: 1;\n}\n\n.jp-MainAreaWidget {\n height: 100%;\n}\n\n.jp-Toolbar > .jp-Toolbar-item {\n height: unset;\n}\n\n#jp-UserMenu {\n flex: 0 0 auto;\n display: flex;\n text-align: center;\n margin-top: 8px;\n}\n\n.jp-MimeDocument .jp-RenderedJSON {\n background: var(--jp-layout-color0);\n}\n\n/* Hide the stub toolbar that appears above terminals and documents */\n\n.jp-MainAreaWidget > .jp-Toolbar-micro {\n display: none;\n}\n\n#jp-NotebookLogo {\n /* bring logo to the front so it is selectable by tab*/\n z-index: 10;\n}\n\n/* Hide the notification status item */\n.jp-Notification-Status {\n display: none;\n}\n",""]);const l=i},26633:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-topbar-height: 28px;\n /* Override the layout-2 color for the dark theme */\n --md-grey-800: #323232;\n --jp-notebook-max-width: 1200px;\n}\n\nbody {\n margin: 0;\n padding: 0;\n background: var(--jp-layout-color2);\n}\n\n#main {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n#top-panel-wrapper {\n min-height: calc(1.5 * var(--jp-private-topbar-height));\n border-bottom: var(--jp-border-width) solid var(--jp-border-color0);\n background: var(--jp-layout-color1);\n}\n\n#top-panel {\n display: flex;\n min-height: calc(1.5 * var(--jp-private-topbar-height));\n padding-left: 5px;\n padding-right: 5px;\n margin-left: auto;\n margin-right: auto;\n max-width: 1200px;\n}\n\n#menu-panel-wrapper {\n min-height: var(--jp-private-topbar-height);\n background: var(--jp-layout-color1);\n border-bottom: var(--jp-border-width) solid var(--jp-border-color0);\n box-shadow: var(--jp-elevation-z1);\n}\n\n#menu-panel {\n display: flex;\n min-height: var(--jp-private-topbar-height);\n background: var(--jp-layout-color1);\n padding-left: 5px;\n padding-right: 5px;\n margin-left: auto;\n margin-right: auto;\n max-width: var(--jp-notebook-max-width);\n}\n\n#main-panel {\n margin-left: auto;\n margin-right: auto;\n max-width: var(--jp-notebook-max-width);\n}\n\n#spacer-widget-top {\n min-height: 16px;\n}\n\n/* Only edit pages should have a bottom space */\n\nbody[data-notebook='edit'] #spacer-widget-bottom {\n min-height: 16px;\n}\n\n/* Special case notebooks as document oriented pages */\n\n[data-notebook]:not(body[data-notebook='notebooks']) #main-panel {\n box-shadow: var(--jp-elevation-z4);\n}\n\n.jp-TreePanel > .lm-TabPanel-stackedPanel {\n box-shadow: var(--jp-elevation-z4);\n}\n\nbody[data-notebook='notebooks'] #main-panel {\n margin-left: unset;\n margin-right: unset;\n max-width: unset;\n}\n\nbody[data-notebook='notebooks'] #spacer-widget-top {\n min-height: unset;\n}\n\n#main-panel > .jp-TreePanel {\n padding: 0px 5px;\n}\n\n@media only screen and (max-width: 760px) {\n #main-panel > .jp-TreePanel {\n margin: 0px -5px;\n }\n}\n",""]);const l=i},93862:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|\n| Adapted from JupyterLab's packages/application/style/sidepanel.css.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-sidebar-tab-width: 32px;\n}\n\n/*-----------------------------------------------------------------------------\n| SideBar\n|----------------------------------------------------------------------------*/\n\n/* Stack panels */\n\n#jp-right-stack,\n#jp-left-stack {\n display: flex;\n flex-direction: column;\n min-width: var(--jp-sidebar-min-width);\n}\n\n#jp-left-stack .jp-SidePanel-collapse,\n#jp-right-stack .jp-SidePanel-collapse {\n display: flex;\n flex: 0 0 auto;\n min-height: 0;\n padding: 0;\n}\n\n#jp-left-stack .jp-SidePanel-collapse {\n justify-content: right;\n}\n\n#jp-right-stack .jp-SidePanel-collapse {\n justify-content: left;\n}\n\n#jp-left-stack .lm-StackedPanel,\n#jp-right-stack .lm-StackedPanel {\n flex: 1 1 auto;\n}\n",""]);const l=i},99776:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"",""]);const l=i},64399:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,".jp-Document {\n height: 100%;\n}\n",""]);const l=i},11112:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"",""]);const l=i},49482:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,".jp-AboutNotebook .jp-Dialog-header {\n justify-content: center;\n padding: 0;\n}\n\n.jp-AboutNotebook-header {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: var(--jp-flat-button-padding);\n}\n\n.jp-AboutNotebook-header-text {\n margin-left: 16px;\n}\n\n.jp-AboutNotebook-version {\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n padding-bottom: 30px;\n font-weight: 400;\n letter-spacing: 0.4px;\n line-height: 1.12;\n min-width: 360px;\n text-align: center;\n}\n\n.jp-AboutNotebook-body {\n display: flex;\n font-size: var(--jp-ui-font-size2);\n padding: var(--jp-flat-button-padding);\n color: var(--jp-ui-font-color1);\n text-align: center;\n flex-direction: column;\n min-width: 360px;\n overflow: hidden;\n}\n\n.jp-AboutNotebook-about-body pre {\n white-space: pre-wrap;\n}\n\n.jp-AboutNotebook-about-externalLinks {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n color: var(--jp-warn-color0);\n}\n\n.jp-AboutNotebook-about-copyright {\n padding-top: 25px;\n}\n",""]);const l=i},71564:(e,n,t)=>{"use strict";t.d(n,{Z:()=>p});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r),l=t(99686),s=i()(a());s.i(l.Z),s.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n|\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/**\n Document oriented look for the notebook.\n This includes changes to the look and feel of the JupyterLab Notebook\n component like:\n - scrollbar to the right of the page\n - drop shadow on the notebook\n - smaller empty space at the bottom of the notebook\n - compact view on mobile\n*/\n\n/* Keep the notebook centered on the page */\n\nbody[data-notebook='notebooks'] .jp-NotebookPanel-toolbar {\n padding-left: calc(calc(100% - var(--jp-notebook-max-width)) * 0.5);\n padding-right: calc(calc(100% - var(--jp-notebook-max-width)) * 0.5);\n}\n\nbody[data-notebook='notebooks'] .jp-WindowedPanel-outer {\n width: unset !important;\n padding-top: unset;\n padding-left: calc(calc(100% - var(--jp-notebook-max-width)) * 0.5);\n padding-right: calc(\n calc(\n 100% - var(--jp-notebook-max-width) - var(--jp-notebook-padding-offset)\n ) * 0.5\n ) !important;\n background: var(--jp-layout-color2);\n}\n\nbody[data-notebook='notebooks'] .jp-WindowedPanel-inner {\n margin-top: var(--jp-notebook-toolbar-margin-bottom);\n /* Adjustments for the extra top and bottom notebook padding */\n margin-bottom: calc(4 * var(--jp-notebook-padding));\n}\n\nbody[data-notebook='notebooks'] .jp-Notebook-cell {\n background: var(--jp-layout-color0);\n padding-left: calc(2 * var(--jp-cell-padding));\n padding-right: calc(2 * var(--jp-cell-padding));\n}\n\n/* Empty space at the bottom of the notebook (similar to classic) */\nbody[data-notebook='notebooks']\n .jp-Notebook.jp-mod-scrollPastEnd\n .jp-WindowedPanel-outer::after {\n min-height: 100px;\n}\n\n/* Fix background colors */\n\nbody[data-notebook='notebooks'] .jp-WindowedPanel-outer > * {\n background: var(--jp-layout-color0);\n}\n\nbody[data-notebook='notebooks']\n .jp-Notebook.jp-mod-commandMode\n .jp-Cell.jp-mod-active.jp-mod-selected:not(.jp-mod-multiSelected) {\n background: var(--jp-layout-color0) !important;\n}\n\nbody[data-notebook='notebooks']\n .jp-Notebook\n .jp-Notebook-cell:not(:first-child)::before {\n content: ' ';\n height: 100%;\n position: absolute;\n top: 0;\n width: 11px;\n}\n\n/* Cell toolbar adjustments */\n\nbody[data-notebook='notebooks'] .jp-cell-toolbar {\n background: unset;\n box-shadow: unset;\n}\n\n/** first code cell on mobile\n (keep the selector above the media query)\n*/\nbody[data-notebook='notebooks']\n .jp-CodeCell[data-windowed-list-index='0']\n .jp-cell-toolbar {\n top: unset;\n}\n\n@media only screen and (max-width: 760px) {\n /* first code cell on mobile */\n body[data-notebook='notebooks']\n .jp-CodeCell[data-windowed-list-index='0']\n .jp-cell-toolbar {\n top: var(--jp-notebook-padding);\n }\n\n body[data-notebook='notebooks'] .jp-MarkdownCell .jp-cell-toolbar,\n body[data-notebook='notebooks'] .jp-RawCell .jp-cell-toolbar {\n top: calc(0.5 * var(--jp-notebook-padding));\n }\n}\n\n/* Tweak the notebook footer (to add a new cell) */\nbody[data-notebook='notebooks'] .jp-Notebook-footer {\n background: unset;\n width: 100%;\n margin-left: unset;\n}\n\n/* Mobile View */\n\nbody[data-format='mobile'] .jp-NotebookCheckpoint {\n display: none;\n}\n\nbody[data-format='mobile'] .jp-WindowedPanel-outer > *:first-child {\n margin-top: 0;\n}\n\nbody[data-format='mobile'] .jp-ToolbarButton .jp-DebuggerBugButton {\n display: none;\n}\n\nbody[data-notebook='notebooks'] .jp-WindowedPanel-viewport {\n background: var(--jp-layout-color0);\n box-shadow: var(--jp-elevation-z4);\n padding: unset;\n\n /* Extra padding at the top and bottom so the notebook looks nicer */\n padding-top: calc(2 * var(--jp-notebook-padding));\n padding-bottom: calc(2 * var(--jp-notebook-padding));\n}\n\n/* Notebook box shadow */\n\nbody[data-notebook='notebooks']\n .jp-Notebook\n > *:first-child:last-child::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n box-shadow: 0px 0px 12px 1px var(--jp-shadow-umbra-color);\n}\n\n/* Additional customizations of the components on the notebook page */\n\n.jp-NotebookKernelLogo {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n text-align: center;\n margin-right: 8px;\n}\n\n.jp-NotebookKernelLogo img {\n max-width: 28px;\n max-height: 28px;\n display: flex;\n}\n\n.jp-NotebookKernelStatus {\n margin: 0;\n font-weight: normal;\n font-size: var(--jp-ui-font-size1);\n color: var(--jp-ui-font-color0);\n font-family: var(--jp-ui-font-family);\n line-height: var(--jp-private-title-panel-height);\n padding-left: var(--jp-kernel-status-padding);\n padding-right: var(--jp-kernel-status-padding);\n}\n\n.jp-NotebookKernelStatus-error {\n background-color: var(--jp-error-color0);\n}\n\n.jp-NotebookKernelStatus-warn {\n background-color: var(--jp-warn-color0);\n}\n\n.jp-NotebookKernelStatus-info {\n background-color: var(--jp-info-color0);\n}\n\n.jp-NotebookKernelStatus-fade {\n animation: 0.5s fade-out forwards;\n}\n\n.jp-NotebookTrustedStatus {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n margin-top: 4px;\n margin-bottom: 4px;\n border: solid 1px var(--jp-border-color2);\n cursor: help;\n}\n\n.jp-NotebookTrustedStatus-not-trusted {\n cursor: pointer;\n}\n\n@keyframes fade-out {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n\n#jp-title h1 {\n cursor: pointer;\n font-size: 18px;\n margin: 0;\n font-weight: normal;\n color: var(--jp-ui-font-color0);\n font-family: var(--jp-ui-font-family);\n line-height: calc(1.5 * var(--jp-private-title-panel-height));\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\n#jp-title h1:hover {\n background: var(--jp-layout-color2);\n}\n\n.jp-NotebookCheckpoint {\n font-size: 14px;\n margin-left: 5px;\n margin-right: 5px;\n font-weight: normal;\n color: var(--jp-ui-font-color0);\n font-family: var(--jp-ui-font-family);\n line-height: calc(1.5 * var(--jp-private-title-panel-height));\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.jp-skiplink {\n position: absolute;\n top: -100em;\n}\n\n.jp-skiplink:focus-within {\n position: absolute;\n z-index: 10000;\n top: 0;\n left: 46%;\n margin: 0 auto;\n padding: 1em;\n width: 15%;\n box-shadow: var(--jp-elevation-z4);\n border-radius: 4px;\n background: var(--jp-layout-color0);\n text-align: center;\n}\n\n.jp-skiplink:focus-within a {\n text-decoration: underline;\n color: var(--jp-content-link-color);\n}\n",""]);const p=s},99686:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,":root {\n --jp-notebook-toolbar-margin-bottom: 20px;\n --jp-notebook-padding-offset: 20px;\n\n --jp-kernel-status-padding: 5px;\n}\n",""]);const l=i},8173:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"",""]);const l=i},94623:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n|\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-FileBrowser-toolbar .jp-Toolbar-item.jp-DropdownMenu,\n.jp-FileBrowser-toolbar .jp-Toolbar-item.jp-ToolbarButton,\n.jp-FileBrowser-toolbar .jp-Toolbar-item.jp-CommandToolbarButton {\n border: solid 1px var(--jp-border-color2);\n margin: 1px;\n padding: 0px;\n}\n\n.jp-FileBrowser-toolbar > .jp-Toolbar-item.jp-ToolbarButton:hover,\n.jp-FileBrowser-toolbar > .jp-Toolbar-item.jp-CommandToolbarButton:hover,\n.jp-FileBrowser-toolbar > .jp-Toolbar-item.jp-DropdownMenu:hover {\n background: var(--neutral-fill-stealth-hover);\n}\n\n.jp-FileBrowser-toolbar .lm-MenuBar-item {\n height: var(--jp-private-toolbar-height);\n display: inline-flex;\n align-items: center;\n}\n\n.jp-FileBrowser-toolbar .jp-ToolbarButtonComponent {\n height: var(--jp-flat-button-height);\n}\n\n.jp-FileBrowser-toolbar jp-button.jp-ToolbarButtonComponent:hover {\n background: inherit;\n}\n\n.jp-FileBrowser-filterBox {\n padding: 0;\n flex: 0 0 auto;\n}\n\n.jp-FileBrowser-filterBox input {\n line-height: 24px;\n}\n\n.jp-DirListing-content .jp-DirListing-checkboxWrapper {\n visibility: visible;\n}\n\n/* Action buttons */\n\n.jp-FileBrowser-toolbar > .jp-FileAction > .jp-ToolbarButtonComponent > svg {\n display: none;\n}\n\n.jp-FileBrowser-toolbar > #fileAction-delete {\n background-color: var(--jp-error-color1);\n}\n\n.jp-FileBrowser-toolbar\n .jp-ToolbarButtonComponent[data-command='filebrowser:delete']\n .jp-ToolbarButtonComponent-label {\n color: var(--jp-ui-inverse-font-color1);\n}\n\n.jp-FileBrowser-toolbar .jp-FileAction {\n border: solid 1px var(--jp-border-color2);\n margin: 1px;\n min-height: var(--jp-private-toolbar-height);\n}\n",""]);const l=i},30546:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,".jp-FileBrowser {\n height: 100%;\n}\n\n.lm-TabPanel {\n height: 100%;\n}\n\n.jp-TreePanel .lm-TabPanel-tabBar {\n overflow: visible;\n min-height: 32px;\n border-bottom: unset;\n height: var(--jp-private-toolbar-height);\n}\n\n.jp-TreePanel .lm-TabBar-content {\n height: 100%;\n}\n\n.jp-TreePanel .lm-TabBar-tab {\n flex: 0 1 auto;\n color: var(--jp-ui-font-color0);\n font-size: var(--jp-ui-font-size1);\n height: 100%;\n}\n\n.jp-TreePanel .lm-TabBar-tabLabel {\n padding-left: 5px;\n padding-right: 5px;\n}\n\n.jp-FileBrowser-toolbar.jp-Toolbar .jp-ToolbarButtonComponent {\n width: unset;\n}\n\n.jp-FileBrowser-toolbar > .jp-Toolbar-item {\n flex-direction: column;\n justify-content: center;\n}\n\n.jp-DropdownMenu .lm-MenuBar-itemIcon svg {\n vertical-align: sub;\n}\n\njp-button[data-command='filebrowser:refresh'] .jp-ToolbarButtonComponent-label {\n display: none;\n}\n\n.jp-TreePanel .lm-TabBar-tabIcon svg {\n vertical-align: sub;\n}\n",""]);const l=i},99402:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"",""]);const l=i},7413:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII="}}]);
1
+ (self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[8781],{67417:()=>{},60880:(e,n,t)=>{"use strict";t.r(n);var o=t(64145);async function a(e,n){try{const t=(await window._JUPYTERLAB[e].get(n))();return t.__scope__=e,t}catch(t){throw console.warn(`Failed to create module: package: ${e}; module: ${n}`),t}}t(72761),t(67417),window.addEventListener("load",(async function(){const e=[t(56357),t(51542),t(98215),t(67025)],n=await Promise.all(e);let r=[t(41439),t(54709),t(30282),t(11582),t(7035),t(76818),t(36406),t(76676).default.filter((({id:e})=>["@jupyterlab/application-extension:commands","@jupyterlab/application-extension:context-menu","@jupyterlab/application-extension:faviconbusy","@jupyterlab/application-extension:router","@jupyterlab/application-extension:top-bar","@jupyterlab/application-extension:top-spacer"].includes(e))),t(26219).default.filter((({id:e})=>["@jupyterlab/apputils-extension:palette","@jupyterlab/apputils-extension:notification","@jupyterlab/apputils-extension:sanitizer","@jupyterlab/apputils-extension:sessionDialogs","@jupyterlab/apputils-extension:settings","@jupyterlab/apputils-extension:state","@jupyterlab/apputils-extension:themes","@jupyterlab/apputils-extension:themes-palette-menu","@jupyterlab/apputils-extension:toolbar-registry","@jupyterlab/apputils-extension:utilityCommands"].includes(e))),t(34900),t(44515).default.filter((({id:e})=>["@jupyterlab/completer-extension:base-service","@jupyterlab/completer-extension:inline-completer","@jupyterlab/completer-extension:inline-completer-factory","@jupyterlab/completer-extension:inline-history","@jupyterlab/completer-extension:manager"].includes(e))),t(12071).default.filter((({id:e})=>["@jupyterlab/console-extension:cell-executor","@jupyterlab/console-extension:completer","@jupyterlab/console-extension:factory","@jupyterlab/console-extension:foreign","@jupyterlab/console-extension:tracker"].includes(e))),t(50572),t(60965).default.filter((({id:e})=>["@jupyterlab/docmanager-extension:plugin","@jupyterlab/docmanager-extension:download","@jupyterlab/docmanager-extension:contexts","@jupyterlab/docmanager-extension:manager"].includes(e))),t(7146).default.filter((({id:e})=>["@jupyterlab/documentsearch-extension:plugin"].includes(e))),t(63327).default.filter((({id:e})=>["@jupyterlab/filebrowser-extension:factory","@jupyterlab/filebrowser-extension:default-file-browser"].includes(e))),t(46926).default.filter((({id:e})=>["@jupyterlab/fileeditor-extension:plugin"].includes(e))),t(22886).default.filter((({id:e})=>["@jupyterlab/help-extension:resources"].includes(e))),t(58237),t(27949),t(27862),t(80053).default.filter((({id:e})=>["@jupyterlab/mainmenu-extension:plugin"].includes(e))),t(73589),t(77403),t(3881),t(24126).default.filter((({id:e})=>["@jupyterlab/notebook-extension:cell-executor","@jupyterlab/notebook-extension:code-console","@jupyterlab/notebook-extension:export","@jupyterlab/notebook-extension:factory","@jupyterlab/notebook-extension:tracker","@jupyterlab/notebook-extension:widget-factory"].includes(e))),t(77176),t(7303),t(87469),t(81223),t(27401),t(24196),t(88941),t(93486),t(3982)];switch(`/${o.PageConfig.getOption("notebookPage")}`){case"/tree":r=r.concat([t(28594),t(63327).default.filter((({id:e})=>["@jupyterlab/filebrowser-extension:browser","@jupyterlab/filebrowser-extension:download","@jupyterlab/filebrowser-extension:file-upload-status","@jupyterlab/filebrowser-extension:open-with","@jupyterlab/filebrowser-extension:search","@jupyterlab/filebrowser-extension:share-file"].includes(e))),t(89334),t(84217).default.filter((({id:e})=>["@jupyterlab/running-extension:plugin"].includes(e))),t(57318)]);break;case"/notebooks":r=r.concat([t(60026),t(15083),t(79606).default.filter((({id:e})=>["@jupyterlab/debugger-extension:config","@jupyterlab/debugger-extension:main","@jupyterlab/debugger-extension:notebooks","@jupyterlab/debugger-extension:service","@jupyterlab/debugger-extension:sidebar","@jupyterlab/debugger-extension:sources"].includes(e))),t(63174),t(24126).default.filter((({id:e})=>["@jupyterlab/notebook-extension:active-cell-tool","@jupyterlab/notebook-extension:completer","@jupyterlab/notebook-extension:copy-output","@jupyterlab/notebook-extension:metadata-editor","@jupyterlab/notebook-extension:search","@jupyterlab/notebook-extension:toc","@jupyterlab/notebook-extension:tools","@jupyterlab/notebook-extension:update-raw-mimetype"].includes(e))),t(15221).default.filter((({id:e})=>["@jupyterlab/toc-extension:registry","@jupyterlab/toc-extension:tracker"].includes(e))),t(23792).default.filter((({id:e})=>["@jupyterlab/tooltip-extension:manager","@jupyterlab/tooltip-extension:notebooks"].includes(e)))]);break;case"/consoles":r=r.concat([t(23792).default.filter((({id:e})=>["@jupyterlab/tooltip-extension:manager","@jupyterlab/tooltip-extension:consoles"].includes(e)))]);break;case"/edit":r=r.concat([t(46926).default.filter((({id:e})=>["@jupyterlab/fileeditor-extension:completer","@jupyterlab/fileeditor-extension:search"].includes(e))),t(59278)])}const i=[],l=[];function*s(e){let n;n=Object.prototype.hasOwnProperty.call(e,"__esModule")?e.default:e;let t=Array.isArray(n)?n:[n];for(let n of t){const t=o.PageConfig.Extension.isDisabled(n.id);l.push({id:n.id,description:n.description,requires:n.requires??[],optional:n.optional??[],provides:n.provides??null,autoStart:n.autoStart,enabled:!t,extension:e.__scope__}),t?i.push(n.id):yield n}}const p=JSON.parse(o.PageConfig.getOption("federated_extensions")),u=[],b=[],d=[],c=[];(await Promise.allSettled(p.map((async e=>(await async function(e,n){await function(e){return new Promise(((n,t)=>{const o=document.createElement("script");o.onerror=t,o.onload=n,o.async=!0,document.head.appendChild(o),o.src=e}))}(e),await t.I("default");const o=window._JUPYTERLAB[n];await o.init(t.S.default)}(`${o.URLExt.join(o.PageConfig.getOption("fullLabextensionsUrl"),e.name,e.load)}`,e.name),e))))).forEach((e=>{if("rejected"===e.status)return void console.error(e.reason);const n=e.value;n.extension&&b.push(a(n.name,n.extension)),n.mimeExtension&&d.push(a(n.name,n.mimeExtension)),n.style&&!o.PageConfig.Extension.isDisabled(n.name)&&c.push(a(n.name,n.style))})),(await Promise.all(r)).forEach((e=>{for(let n of s(e))u.push(n)})),(await Promise.allSettled(b)).forEach((e=>{if("fulfilled"===e.status)for(let n of s(e.value))u.push(n);else console.error(e.reason)})),(await Promise.allSettled(d)).forEach((e=>{if("fulfilled"===e.status)for(let t of s(e.value))n.push(t);else console.error(e.reason)})),(await Promise.allSettled(c)).filter((({status:e})=>"rejected"===e)).forEach((({reason:e})=>{console.error(e)})),o.PageConfig.setOption("allPlugins",'{"/":{"@jupyter-notebook/application-extension":true,"@jupyter-notebook/console-extension":true,"@jupyter-notebook/docmanager-extension":true,"@jupyter-notebook/documentsearch-extension":true,"@jupyter-notebook/help-extension":true,"@jupyter-notebook/notebook-extension":true,"@jupyter-notebook/terminal-extension":true,"@jupyterlab/application-extension":["@jupyterlab/application-extension:commands","@jupyterlab/application-extension:context-menu","@jupyterlab/application-extension:faviconbusy","@jupyterlab/application-extension:router","@jupyterlab/application-extension:top-bar","@jupyterlab/application-extension:top-spacer"],"@jupyterlab/apputils-extension":["@jupyterlab/apputils-extension:palette","@jupyterlab/apputils-extension:notification","@jupyterlab/apputils-extension:sanitizer","@jupyterlab/apputils-extension:sessionDialogs","@jupyterlab/apputils-extension:settings","@jupyterlab/apputils-extension:state","@jupyterlab/apputils-extension:themes","@jupyterlab/apputils-extension:themes-palette-menu","@jupyterlab/apputils-extension:toolbar-registry","@jupyterlab/apputils-extension:utilityCommands"],"@jupyterlab/codemirror-extension":true,"@jupyterlab/completer-extension":["@jupyterlab/completer-extension:base-service","@jupyterlab/completer-extension:inline-completer","@jupyterlab/completer-extension:inline-completer-factory","@jupyterlab/completer-extension:inline-history","@jupyterlab/completer-extension:manager"],"@jupyterlab/console-extension":["@jupyterlab/console-extension:cell-executor","@jupyterlab/console-extension:completer","@jupyterlab/console-extension:factory","@jupyterlab/console-extension:foreign","@jupyterlab/console-extension:tracker"],"@jupyterlab/csvviewer-extension":true,"@jupyterlab/docmanager-extension":["@jupyterlab/docmanager-extension:plugin","@jupyterlab/docmanager-extension:download","@jupyterlab/docmanager-extension:contexts","@jupyterlab/docmanager-extension:manager"],"@jupyterlab/documentsearch-extension":["@jupyterlab/documentsearch-extension:plugin"],"@jupyterlab/filebrowser-extension":["@jupyterlab/filebrowser-extension:factory","@jupyterlab/filebrowser-extension:default-file-browser"],"@jupyterlab/fileeditor-extension":["@jupyterlab/fileeditor-extension:plugin"],"@jupyterlab/help-extension":["@jupyterlab/help-extension:resources"],"@jupyterlab/htmlviewer-extension":true,"@jupyterlab/imageviewer-extension":true,"@jupyterlab/lsp-extension":true,"@jupyterlab/mainmenu-extension":["@jupyterlab/mainmenu-extension:plugin"],"@jupyterlab/markedparser-extension":true,"@jupyterlab/mathjax-extension":true,"@jupyterlab/mermaid-extension":true,"@jupyterlab/notebook-extension":["@jupyterlab/notebook-extension:cell-executor","@jupyterlab/notebook-extension:code-console","@jupyterlab/notebook-extension:export","@jupyterlab/notebook-extension:factory","@jupyterlab/notebook-extension:tracker","@jupyterlab/notebook-extension:widget-factory"],"@jupyterlab/pluginmanager-extension":true,"@jupyterlab/shortcuts-extension":true,"@jupyterlab/terminal-extension":true,"@jupyterlab/theme-light-extension":true,"@jupyterlab/theme-dark-extension":true,"@jupyterlab/theme-dark-high-contrast-extension":true,"@jupyterlab/translation-extension":true,"@jupyterlab/ui-components-extension":true,"@jupyterlab/hub-extension":true},"/tree":{"@jupyterlab/extensionmanager-extension":true,"@jupyterlab/filebrowser-extension":["@jupyterlab/filebrowser-extension:browser","@jupyterlab/filebrowser-extension:download","@jupyterlab/filebrowser-extension:file-upload-status","@jupyterlab/filebrowser-extension:open-with","@jupyterlab/filebrowser-extension:search","@jupyterlab/filebrowser-extension:share-file"],"@jupyter-notebook/tree-extension":true,"@jupyterlab/running-extension":["@jupyterlab/running-extension:plugin"],"@jupyterlab/settingeditor-extension":true},"/notebooks":{"@jupyterlab/celltags-extension":true,"@jupyterlab/cell-toolbar-extension":true,"@jupyterlab/debugger-extension":["@jupyterlab/debugger-extension:config","@jupyterlab/debugger-extension:main","@jupyterlab/debugger-extension:notebooks","@jupyterlab/debugger-extension:service","@jupyterlab/debugger-extension:sidebar","@jupyterlab/debugger-extension:sources"],"@jupyterlab/metadataform-extension":true,"@jupyterlab/notebook-extension":["@jupyterlab/notebook-extension:active-cell-tool","@jupyterlab/notebook-extension:completer","@jupyterlab/notebook-extension:copy-output","@jupyterlab/notebook-extension:metadata-editor","@jupyterlab/notebook-extension:search","@jupyterlab/notebook-extension:toc","@jupyterlab/notebook-extension:tools","@jupyterlab/notebook-extension:update-raw-mimetype"],"@jupyterlab/toc-extension":["@jupyterlab/toc-extension:registry","@jupyterlab/toc-extension:tracker"],"@jupyterlab/tooltip-extension":["@jupyterlab/tooltip-extension:manager","@jupyterlab/tooltip-extension:notebooks"]},"/consoles":{"@jupyterlab/tooltip-extension":["@jupyterlab/tooltip-extension:manager","@jupyterlab/tooltip-extension:consoles"]},"/edit":{"@jupyterlab/fileeditor-extension":["@jupyterlab/fileeditor-extension:completer","@jupyterlab/fileeditor-extension:search"],"@jupyterlab/markdownviewer-extension":true}}');const j=new(0,t(69867).NotebookApp)({mimeExtensions:n,availablePlugins:l});j.registerPluginModules(u),"true"===(o.PageConfig.getOption("exposeAppInBrowser")||"").toLowerCase()&&(window.jupyterapp=j),await j.start()}))},72761:(e,n,t)=>{"use strict";t.r(n),t(71818),t(70022),t(26238);var o=t(94830),a=t.n(o),r=t(80592),i=t.n(r),l=t(99763),s=t.n(l),p=t(28915),u=t.n(p),b=t(80366),d=t.n(b),c=t(17352),j=t.n(c),m=t(26633),y={};y.styleTagTransform=j(),y.setAttributes=u(),y.insert=s().bind(null,"head"),y.domAPI=i(),y.insertStyleElement=d(),a()(m.Z,y),m.Z&&m.Z.locals&&m.Z.locals;var x=t(93862),g={};g.styleTagTransform=j(),g.setAttributes=u(),g.insert=s().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=d(),a()(x.Z,g),x.Z&&x.Z.locals&&x.Z.locals,t(20959);var h=t(58027),f={};f.styleTagTransform=j(),f.setAttributes=u(),f.insert=s().bind(null,"head"),f.domAPI=i(),f.insertStyleElement=d(),a()(h.Z,f),h.Z&&h.Z.locals&&h.Z.locals;var A=t(99776),k={};k.styleTagTransform=j(),k.setAttributes=u(),k.insert=s().bind(null,"head"),k.domAPI=i(),k.insertStyleElement=d(),a()(A.Z,k),A.Z&&A.Z.locals&&A.Z.locals;var v=t(64399),w={};w.styleTagTransform=j(),w.setAttributes=u(),w.insert=s().bind(null,"head"),w.domAPI=i(),w.insertStyleElement=d(),a()(v.Z,w),v.Z&&v.Z.locals&&v.Z.locals;var T=t(11112),P={};P.styleTagTransform=j(),P.setAttributes=u(),P.insert=s().bind(null,"head"),P.domAPI=i(),P.insertStyleElement=d(),a()(T.Z,P),T.Z&&T.Z.locals&&T.Z.locals;var Z=t(49482),B={};B.styleTagTransform=j(),B.setAttributes=u(),B.insert=s().bind(null,"head"),B.domAPI=i(),B.insertStyleElement=d(),a()(Z.Z,B),Z.Z&&Z.Z.locals&&Z.Z.locals;var S=t(71564),C={};C.styleTagTransform=j(),C.setAttributes=u(),C.insert=s().bind(null,"head"),C.domAPI=i(),C.insertStyleElement=d(),a()(S.Z,C),S.Z&&S.Z.locals&&S.Z.locals;var N=t(8173),E={};E.styleTagTransform=j(),E.setAttributes=u(),E.insert=s().bind(null,"head"),E.domAPI=i(),E.insertStyleElement=d(),a()(N.Z,E),N.Z&&N.Z.locals&&N.Z.locals,t(40360);var D=t(30546),z={};z.styleTagTransform=j(),z.setAttributes=u(),z.insert=s().bind(null,"head"),z.domAPI=i(),z.insertStyleElement=d(),a()(D.Z,z),D.Z&&D.Z.locals&&D.Z.locals;var F=t(94623),L={};L.styleTagTransform=j(),L.setAttributes=u(),L.insert=s().bind(null,"head"),L.domAPI=i(),L.insertStyleElement=d(),a()(F.Z,L),F.Z&&F.Z.locals&&F.Z.locals;var M=t(99402),I={};I.styleTagTransform=j(),I.setAttributes=u(),I.insert=s().bind(null,"head"),I.domAPI=i(),I.insertStyleElement=d(),a()(M.Z,I),M.Z&&M.Z.locals&&M.Z.locals,t(32723),t(82649),t(15491),t(92645),t(18934),t(24017),t(72867),t(93751),t(75617),t(91532),t(20603),t(17066),t(39380),t(9755),t(82164),t(94938),t(53555),t(86258),t(11575),t(10887),t(26449),t(3727),t(97635),t(16856),t(46165),t(8604),t(26053),t(84221),t(53927),t(67074),t(47275),t(58068),t(41346),t(74768),t(65315),t(87635),t(37609),t(49733),t(40745)},58027:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n|\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-NotebookSpacer {\n flex-grow: 1;\n flex-shrink: 1;\n}\n\n.jp-MainAreaWidget {\n height: 100%;\n}\n\n.jp-Toolbar > .jp-Toolbar-item {\n height: unset;\n}\n\n#jp-UserMenu {\n flex: 0 0 auto;\n display: flex;\n text-align: center;\n margin-top: 8px;\n}\n\n.jp-MimeDocument .jp-RenderedJSON {\n background: var(--jp-layout-color0);\n}\n\n/* Hide the stub toolbar that appears above terminals and documents */\n\n.jp-MainAreaWidget > .jp-Toolbar-micro {\n display: none;\n}\n\n#jp-NotebookLogo {\n /* bring logo to the front so it is selectable by tab*/\n z-index: 10;\n}\n\n/* Hide the notification status item */\n.jp-Notification-Status {\n display: none;\n}\n",""]);const l=i},26633:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-topbar-height: 28px;\n /* Override the layout-2 color for the dark theme */\n --md-grey-800: #323232;\n --jp-notebook-max-width: 1200px;\n}\n\nbody {\n margin: 0;\n padding: 0;\n background: var(--jp-layout-color2);\n}\n\n#main {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n#top-panel-wrapper {\n min-height: calc(1.5 * var(--jp-private-topbar-height));\n border-bottom: var(--jp-border-width) solid var(--jp-border-color0);\n background: var(--jp-layout-color1);\n}\n\n#top-panel {\n display: flex;\n min-height: calc(1.5 * var(--jp-private-topbar-height));\n padding-left: 5px;\n padding-right: 5px;\n margin-left: auto;\n margin-right: auto;\n max-width: 1200px;\n}\n\n#menu-panel-wrapper {\n min-height: var(--jp-private-topbar-height);\n background: var(--jp-layout-color1);\n border-bottom: var(--jp-border-width) solid var(--jp-border-color0);\n box-shadow: var(--jp-elevation-z1);\n}\n\n#menu-panel {\n display: flex;\n min-height: var(--jp-private-topbar-height);\n background: var(--jp-layout-color1);\n padding-left: 5px;\n padding-right: 5px;\n margin-left: auto;\n margin-right: auto;\n max-width: var(--jp-notebook-max-width);\n}\n\n#main-panel {\n margin-left: auto;\n margin-right: auto;\n max-width: var(--jp-notebook-max-width);\n}\n\n#spacer-widget-top {\n min-height: 16px;\n}\n\n/* Only edit pages should have a bottom space */\n\nbody[data-notebook='edit'] #spacer-widget-bottom {\n min-height: 16px;\n}\n\n/* Special case notebooks as document oriented pages */\n\n[data-notebook]:not(body[data-notebook='notebooks']) #main-panel {\n box-shadow: var(--jp-elevation-z4);\n}\n\n.jp-TreePanel > .lm-TabPanel-stackedPanel {\n box-shadow: var(--jp-elevation-z4);\n}\n\nbody[data-notebook='notebooks'] #main-panel {\n margin-left: unset;\n margin-right: unset;\n max-width: unset;\n}\n\nbody[data-notebook='notebooks'] #spacer-widget-top {\n min-height: unset;\n}\n\n#main-panel > .jp-TreePanel {\n padding: 0px 5px;\n}\n\n@media only screen and (max-width: 760px) {\n #main-panel > .jp-TreePanel {\n margin: 0px -5px;\n }\n}\n",""]);const l=i},93862:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|\n| Adapted from JupyterLab's packages/application/style/sidepanel.css.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-sidebar-tab-width: 32px;\n}\n\n/*-----------------------------------------------------------------------------\n| SideBar\n|----------------------------------------------------------------------------*/\n\n/* Stack panels */\n\n#jp-right-stack,\n#jp-left-stack {\n display: flex;\n flex-direction: column;\n min-width: var(--jp-sidebar-min-width);\n}\n\n#jp-left-stack .jp-SidePanel-collapse,\n#jp-right-stack .jp-SidePanel-collapse {\n display: flex;\n flex: 0 0 auto;\n min-height: 0;\n padding: 0;\n}\n\n#jp-left-stack .jp-SidePanel-collapse {\n justify-content: right;\n}\n\n#jp-right-stack .jp-SidePanel-collapse {\n justify-content: left;\n}\n\n#jp-left-stack .lm-StackedPanel,\n#jp-right-stack .lm-StackedPanel {\n flex: 1 1 auto;\n}\n",""]);const l=i},99776:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"",""]);const l=i},64399:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,".jp-Document {\n height: 100%;\n}\n",""]);const l=i},11112:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"",""]);const l=i},49482:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,".jp-AboutNotebook .jp-Dialog-header {\n justify-content: center;\n padding: 0;\n}\n\n.jp-AboutNotebook-header {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: var(--jp-flat-button-padding);\n}\n\n.jp-AboutNotebook-header-text {\n margin-left: 16px;\n}\n\n.jp-AboutNotebook-version {\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n padding-bottom: 30px;\n font-weight: 400;\n letter-spacing: 0.4px;\n line-height: 1.12;\n min-width: 360px;\n text-align: center;\n}\n\n.jp-AboutNotebook-body {\n display: flex;\n font-size: var(--jp-ui-font-size2);\n padding: var(--jp-flat-button-padding);\n color: var(--jp-ui-font-color1);\n text-align: center;\n flex-direction: column;\n min-width: 360px;\n overflow: hidden;\n}\n\n.jp-AboutNotebook-about-body pre {\n white-space: pre-wrap;\n}\n\n.jp-AboutNotebook-about-externalLinks {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n color: var(--jp-warn-color0);\n}\n\n.jp-AboutNotebook-about-copyright {\n padding-top: 25px;\n}\n",""]);const l=i},71564:(e,n,t)=>{"use strict";t.d(n,{Z:()=>p});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r),l=t(99686),s=i()(a());s.i(l.Z),s.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n|\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/**\n Document oriented look for the notebook.\n This includes changes to the look and feel of the JupyterLab Notebook\n component like:\n - scrollbar to the right of the page\n - drop shadow on the notebook\n - smaller empty space at the bottom of the notebook\n - compact view on mobile\n*/\n\n/* Keep the notebook centered on the page */\n\nbody[data-notebook='notebooks'] .jp-NotebookPanel-toolbar {\n padding-left: calc(calc(100% - var(--jp-notebook-max-width)) * 0.5);\n padding-right: calc(calc(100% - var(--jp-notebook-max-width)) * 0.5);\n}\n\nbody[data-notebook='notebooks'] .jp-WindowedPanel-outer {\n width: unset !important;\n padding-top: unset;\n padding-left: calc(calc(100% - var(--jp-notebook-max-width)) * 0.5);\n padding-right: calc(\n calc(\n 100% - var(--jp-notebook-max-width) - var(--jp-notebook-padding-offset)\n ) * 0.5\n ) !important;\n background: var(--jp-layout-color2);\n}\n\nbody[data-notebook='notebooks'] .jp-WindowedPanel-inner {\n margin-top: var(--jp-notebook-toolbar-margin-bottom);\n /* Adjustments for the extra top and bottom notebook padding */\n margin-bottom: calc(4 * var(--jp-notebook-padding));\n}\n\nbody[data-notebook='notebooks'] .jp-Notebook-cell {\n background: var(--jp-layout-color0);\n padding-left: calc(2 * var(--jp-cell-padding));\n padding-right: calc(2 * var(--jp-cell-padding));\n}\n\n/* Empty space at the bottom of the notebook (similar to classic) */\nbody[data-notebook='notebooks']\n .jp-Notebook.jp-mod-scrollPastEnd\n .jp-WindowedPanel-outer::after {\n min-height: 100px;\n}\n\n/* Fix background colors */\n\nbody[data-notebook='notebooks'] .jp-WindowedPanel-outer > * {\n background: var(--jp-layout-color0);\n}\n\nbody[data-notebook='notebooks']\n .jp-Notebook.jp-mod-commandMode\n .jp-Cell.jp-mod-active.jp-mod-selected:not(.jp-mod-multiSelected) {\n background: var(--jp-layout-color0) !important;\n}\n\nbody[data-notebook='notebooks']\n .jp-Notebook\n .jp-Notebook-cell:not(:first-child)::before {\n content: ' ';\n height: 100%;\n position: absolute;\n top: 0;\n width: 11px;\n}\n\n/* Cell toolbar adjustments */\n\nbody[data-notebook='notebooks'] .jp-cell-toolbar {\n background: unset;\n box-shadow: unset;\n}\n\n/** first code cell on mobile\n (keep the selector above the media query)\n*/\nbody[data-notebook='notebooks']\n .jp-CodeCell[data-windowed-list-index='0']\n .jp-cell-toolbar {\n top: unset;\n}\n\n@media only screen and (max-width: 760px) {\n /* first code cell on mobile */\n body[data-notebook='notebooks']\n .jp-CodeCell[data-windowed-list-index='0']\n .jp-cell-toolbar {\n top: var(--jp-notebook-padding);\n }\n\n body[data-notebook='notebooks'] .jp-MarkdownCell .jp-cell-toolbar,\n body[data-notebook='notebooks'] .jp-RawCell .jp-cell-toolbar {\n top: calc(0.5 * var(--jp-notebook-padding));\n }\n}\n\n/* Tweak the notebook footer (to add a new cell) */\nbody[data-notebook='notebooks'] .jp-Notebook-footer {\n background: unset;\n width: 100%;\n margin-left: unset;\n}\n\n/* Mobile View */\n\nbody[data-format='mobile'] .jp-NotebookCheckpoint {\n display: none;\n}\n\nbody[data-format='mobile'] .jp-WindowedPanel-outer > *:first-child {\n margin-top: 0;\n}\n\nbody[data-format='mobile'] .jp-ToolbarButton .jp-DebuggerBugButton {\n display: none;\n}\n\nbody[data-notebook='notebooks'] .jp-WindowedPanel-viewport {\n background: var(--jp-layout-color0);\n box-shadow: var(--jp-elevation-z4);\n padding: unset;\n\n /* Extra padding at the top and bottom so the notebook looks nicer */\n padding-top: calc(2 * var(--jp-notebook-padding));\n padding-bottom: calc(2 * var(--jp-notebook-padding));\n}\n\n/* Notebook box shadow */\n\nbody[data-notebook='notebooks']\n .jp-Notebook\n > *:first-child:last-child::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n box-shadow: 0px 0px 12px 1px var(--jp-shadow-umbra-color);\n}\n\n/* Additional customizations of the components on the notebook page */\n\n.jp-NotebookKernelLogo {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n text-align: center;\n margin-right: 8px;\n}\n\n.jp-NotebookKernelLogo img {\n max-width: 28px;\n max-height: 28px;\n display: flex;\n}\n\n.jp-NotebookKernelStatus {\n margin: 0;\n font-weight: normal;\n font-size: var(--jp-ui-font-size1);\n color: var(--jp-ui-font-color0);\n font-family: var(--jp-ui-font-family);\n line-height: var(--jp-private-title-panel-height);\n padding-left: var(--jp-kernel-status-padding);\n padding-right: var(--jp-kernel-status-padding);\n}\n\n.jp-NotebookKernelStatus-error {\n background-color: var(--jp-error-color0);\n}\n\n.jp-NotebookKernelStatus-warn {\n background-color: var(--jp-warn-color0);\n}\n\n.jp-NotebookKernelStatus-info {\n background-color: var(--jp-info-color0);\n}\n\n.jp-NotebookKernelStatus-fade {\n animation: 0.5s fade-out forwards;\n}\n\n.jp-NotebookTrustedStatus {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n margin-top: 4px;\n margin-bottom: 4px;\n border: solid 1px var(--jp-border-color2);\n cursor: help;\n}\n\n.jp-NotebookTrustedStatus-not-trusted {\n cursor: pointer;\n}\n\n@keyframes fade-out {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n\n#jp-title h1 {\n cursor: pointer;\n font-size: 18px;\n margin: 0;\n font-weight: normal;\n color: var(--jp-ui-font-color0);\n font-family: var(--jp-ui-font-family);\n line-height: calc(1.5 * var(--jp-private-title-panel-height));\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\n#jp-title h1:hover {\n background: var(--jp-layout-color2);\n}\n\n.jp-NotebookCheckpoint {\n font-size: 14px;\n margin-left: 5px;\n margin-right: 5px;\n font-weight: normal;\n color: var(--jp-ui-font-color0);\n font-family: var(--jp-ui-font-family);\n line-height: calc(1.5 * var(--jp-private-title-panel-height));\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.jp-skiplink {\n position: absolute;\n top: -100em;\n}\n\n.jp-skiplink:focus-within {\n position: absolute;\n z-index: 10000;\n top: 0;\n left: 46%;\n margin: 0 auto;\n padding: 1em;\n width: 15%;\n box-shadow: var(--jp-elevation-z4);\n border-radius: 4px;\n background: var(--jp-layout-color0);\n text-align: center;\n}\n\n.jp-skiplink:focus-within a {\n text-decoration: underline;\n color: var(--jp-content-link-color);\n}\n",""]);const p=s},99686:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,":root {\n --jp-notebook-toolbar-margin-bottom: 20px;\n --jp-notebook-padding-offset: 20px;\n\n --jp-kernel-status-padding: 5px;\n}\n",""]);const l=i},8173:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"",""]);const l=i},94623:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n|\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-FileBrowser-toolbar .jp-Toolbar-item.jp-DropdownMenu,\n.jp-FileBrowser-toolbar .jp-Toolbar-item.jp-ToolbarButton,\n.jp-FileBrowser-toolbar .jp-Toolbar-item.jp-CommandToolbarButton {\n border: solid 1px var(--jp-border-color2);\n margin: 1px;\n padding: 0px;\n}\n\n.jp-FileBrowser-toolbar > .jp-Toolbar-item.jp-ToolbarButton:hover,\n.jp-FileBrowser-toolbar > .jp-Toolbar-item.jp-CommandToolbarButton:hover,\n.jp-FileBrowser-toolbar > .jp-Toolbar-item.jp-DropdownMenu:hover {\n background: var(--neutral-fill-stealth-hover);\n}\n\n.jp-FileBrowser-toolbar .lm-MenuBar-item {\n height: var(--jp-private-toolbar-height);\n display: inline-flex;\n align-items: center;\n}\n\n.jp-FileBrowser-toolbar .jp-ToolbarButtonComponent {\n height: var(--jp-flat-button-height);\n}\n\n.jp-FileBrowser-toolbar jp-button.jp-ToolbarButtonComponent:hover {\n background: inherit;\n}\n\n.jp-FileBrowser-filterBox {\n padding: 0;\n flex: 0 0 auto;\n}\n\n.jp-FileBrowser-filterBox input {\n line-height: 24px;\n}\n\n.jp-DirListing-content .jp-DirListing-checkboxWrapper {\n visibility: visible;\n}\n\n/* Action buttons */\n\n.jp-FileBrowser-toolbar > .jp-FileAction > .jp-ToolbarButtonComponent > svg {\n display: none;\n}\n\n.jp-FileBrowser-toolbar > #fileAction-delete {\n background-color: var(--jp-error-color1);\n}\n\n.jp-FileBrowser-toolbar\n .jp-ToolbarButtonComponent[data-command='filebrowser:delete']\n .jp-ToolbarButtonComponent-label {\n color: var(--jp-ui-inverse-font-color1);\n}\n\n.jp-FileBrowser-toolbar .jp-FileAction {\n border: solid 1px var(--jp-border-color2);\n margin: 1px;\n min-height: var(--jp-private-toolbar-height);\n}\n",""]);const l=i},30546:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,".jp-FileBrowser {\n height: 100%;\n}\n\n.lm-TabPanel {\n height: 100%;\n}\n\n.jp-TreePanel .lm-TabPanel-tabBar {\n overflow: visible;\n min-height: 32px;\n border-bottom: unset;\n height: var(--jp-private-toolbar-height);\n}\n\n.jp-TreePanel .lm-TabBar-content {\n height: 100%;\n}\n\n.jp-TreePanel .lm-TabBar-tab {\n flex: 0 1 auto;\n color: var(--jp-ui-font-color0);\n font-size: var(--jp-ui-font-size1);\n height: 100%;\n}\n\n.jp-TreePanel .lm-TabBar-tabLabel {\n padding-left: 5px;\n padding-right: 5px;\n}\n\n.jp-FileBrowser-toolbar.jp-Toolbar .jp-ToolbarButtonComponent {\n width: unset;\n}\n\n.jp-FileBrowser-toolbar > .jp-Toolbar-item {\n flex-direction: column;\n justify-content: center;\n}\n\n.jp-DropdownMenu .lm-MenuBar-itemIcon svg {\n vertical-align: sub;\n}\n\njp-button[data-command='filebrowser:refresh'] .jp-ToolbarButtonComponent-label {\n display: none;\n}\n\n.jp-TreePanel .lm-TabBar-tabIcon svg {\n vertical-align: sub;\n}\n",""]);const l=i},99402:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(66846),a=t.n(o),r=t(11368),i=t.n(r)()(a());i.push([e.id,"",""]);const l=i},7413:e=>{"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII="}}]);