@difizen/libro-core 0.0.0-snapshot-20241017072317

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +280 -0
  3. package/es/add-cell/index.d.ts +4 -0
  4. package/es/add-cell/index.d.ts.map +1 -0
  5. package/es/add-cell/index.js +3 -0
  6. package/es/add-cell/index.less +38 -0
  7. package/es/add-cell/libro-add-cell-module.d.ts +3 -0
  8. package/es/add-cell/libro-add-cell-module.d.ts.map +1 -0
  9. package/es/add-cell/libro-add-cell-module.js +4 -0
  10. package/es/add-cell/libro-add-cell-slot-contribution.d.ts +11 -0
  11. package/es/add-cell/libro-add-cell-slot-contribution.d.ts.map +1 -0
  12. package/es/add-cell/libro-add-cell-slot-contribution.js +59 -0
  13. package/es/add-cell/libro-add-cell-view.d.ts +21 -0
  14. package/es/add-cell/libro-add-cell-view.d.ts.map +1 -0
  15. package/es/add-cell/libro-add-cell-view.js +121 -0
  16. package/es/cell/index.d.ts +10 -0
  17. package/es/cell/index.d.ts.map +1 -0
  18. package/es/cell/index.js +9 -0
  19. package/es/cell/libro-cell-contribution.d.ts +12 -0
  20. package/es/cell/libro-cell-contribution.d.ts.map +1 -0
  21. package/es/cell/libro-cell-contribution.js +47 -0
  22. package/es/cell/libro-cell-model.d.ts +29 -0
  23. package/es/cell/libro-cell-model.d.ts.map +1 -0
  24. package/es/cell/libro-cell-model.js +130 -0
  25. package/es/cell/libro-cell-module.d.ts +10 -0
  26. package/es/cell/libro-cell-module.d.ts.map +1 -0
  27. package/es/cell/libro-cell-module.js +30 -0
  28. package/es/cell/libro-cell-protocol.d.ts +44 -0
  29. package/es/cell/libro-cell-protocol.d.ts.map +1 -0
  30. package/es/cell/libro-cell-protocol.js +11 -0
  31. package/es/cell/libro-cell-service.d.ts +28 -0
  32. package/es/cell/libro-cell-service.d.ts.map +1 -0
  33. package/es/cell/libro-cell-service.js +245 -0
  34. package/es/cell/libro-cell-view.d.ts +74 -0
  35. package/es/cell/libro-cell-view.d.ts.map +1 -0
  36. package/es/cell/libro-cell-view.js +239 -0
  37. package/es/cell/libro-edit-cell-view.d.ts +44 -0
  38. package/es/cell/libro-edit-cell-view.d.ts.map +1 -0
  39. package/es/cell/libro-edit-cell-view.js +256 -0
  40. package/es/cell/libro-executable-cell-model.d.ts +14 -0
  41. package/es/cell/libro-executable-cell-model.d.ts.map +1 -0
  42. package/es/cell/libro-executable-cell-model.js +7 -0
  43. package/es/cell/libro-executable-cell-view.d.ts +34 -0
  44. package/es/cell/libro-executable-cell-view.d.ts.map +1 -0
  45. package/es/cell/libro-executable-cell-view.js +74 -0
  46. package/es/cell/libro-markdown-cell-model.d.ts +9 -0
  47. package/es/cell/libro-markdown-cell-model.d.ts.map +1 -0
  48. package/es/cell/libro-markdown-cell-model.js +7 -0
  49. package/es/collapse-service.d.ts +36 -0
  50. package/es/collapse-service.d.ts.map +1 -0
  51. package/es/collapse-service.js +55 -0
  52. package/es/command/document-commands.d.ts +5 -0
  53. package/es/command/document-commands.d.ts.map +1 -0
  54. package/es/command/document-commands.js +21 -0
  55. package/es/command/index.d.ts +7 -0
  56. package/es/command/index.d.ts.map +1 -0
  57. package/es/command/index.js +6 -0
  58. package/es/command/kernel-command.d.ts +5 -0
  59. package/es/command/kernel-command.d.ts.map +1 -0
  60. package/es/command/kernel-command.js +40 -0
  61. package/es/command/libro-command-contribution.d.ts +13 -0
  62. package/es/command/libro-command-contribution.d.ts.map +1 -0
  63. package/es/command/libro-command-contribution.js +1842 -0
  64. package/es/command/libro-command-register.d.ts +21 -0
  65. package/es/command/libro-command-register.d.ts.map +1 -0
  66. package/es/command/libro-command-register.js +111 -0
  67. package/es/command/module.d.ts +3 -0
  68. package/es/command/module.d.ts.map +1 -0
  69. package/es/command/module.js +4 -0
  70. package/es/command/notebook-commands.d.ts +6 -0
  71. package/es/command/notebook-commands.d.ts.map +1 -0
  72. package/es/command/notebook-commands.js +472 -0
  73. package/es/components/cell-protocol.d.ts +20 -0
  74. package/es/components/cell-protocol.d.ts.map +1 -0
  75. package/es/components/cell-protocol.js +4 -0
  76. package/es/components/dnd-cell-item-render.d.ts +16 -0
  77. package/es/components/dnd-cell-item-render.d.ts.map +1 -0
  78. package/es/components/dnd-cell-item-render.js +364 -0
  79. package/es/components/dnd-component/custom-drag-layer.d.ts +9 -0
  80. package/es/components/dnd-component/custom-drag-layer.d.ts.map +1 -0
  81. package/es/components/dnd-component/custom-drag-layer.js +140 -0
  82. package/es/components/dnd-component/default-dnd-content.d.ts +11 -0
  83. package/es/components/dnd-component/default-dnd-content.d.ts.map +1 -0
  84. package/es/components/dnd-component/default-dnd-content.js +292 -0
  85. package/es/components/dnd-component/dnd-context.d.ts +3 -0
  86. package/es/components/dnd-component/dnd-context.d.ts.map +1 -0
  87. package/es/components/dnd-component/dnd-context.js +20 -0
  88. package/es/components/dnd-component/dnd-list.d.ts +14 -0
  89. package/es/components/dnd-component/dnd-list.d.ts.map +1 -0
  90. package/es/components/dnd-component/dnd-list.js +182 -0
  91. package/es/components/dnd-component/index.d.ts +5 -0
  92. package/es/components/dnd-component/index.d.ts.map +1 -0
  93. package/es/components/dnd-component/index.js +4 -0
  94. package/es/components/dnd-component/index.less +8 -0
  95. package/es/components/dnd-component/overscanIndices-getter.d.ts +22 -0
  96. package/es/components/dnd-component/overscanIndices-getter.d.ts.map +1 -0
  97. package/es/components/dnd-component/overscanIndices-getter.js +58 -0
  98. package/es/components/dnd-component/virtualized-manager.d.ts +19 -0
  99. package/es/components/dnd-component/virtualized-manager.d.ts.map +1 -0
  100. package/es/components/dnd-component/virtualized-manager.js +60 -0
  101. package/es/components/index.d.ts +6 -0
  102. package/es/components/index.d.ts.map +1 -0
  103. package/es/components/index.js +5 -0
  104. package/es/components/libro-component.d.ts +5 -0
  105. package/es/components/libro-component.d.ts.map +1 -0
  106. package/es/components/libro-component.js +35 -0
  107. package/es/components/libro-side-toolbar-menu.d.ts +21 -0
  108. package/es/components/libro-side-toolbar-menu.d.ts.map +1 -0
  109. package/es/components/libro-side-toolbar-menu.js +58 -0
  110. package/es/components/libro-view-header.d.ts +3 -0
  111. package/es/components/libro-view-header.d.ts.map +1 -0
  112. package/es/components/libro-view-header.js +37 -0
  113. package/es/components/libro-virtualized-render.d.ts +15 -0
  114. package/es/components/libro-virtualized-render.d.ts.map +1 -0
  115. package/es/components/libro-virtualized-render.js +174 -0
  116. package/es/content/index.d.ts +6 -0
  117. package/es/content/index.d.ts.map +1 -0
  118. package/es/content/index.js +5 -0
  119. package/es/content/libro-content-contribution.d.ts +11 -0
  120. package/es/content/libro-content-contribution.d.ts.map +1 -0
  121. package/es/content/libro-content-contribution.js +31 -0
  122. package/es/content/libro-content-module.d.ts +3 -0
  123. package/es/content/libro-content-module.d.ts.map +1 -0
  124. package/es/content/libro-content-module.js +6 -0
  125. package/es/content/libro-content-protocol.d.ts +13 -0
  126. package/es/content/libro-content-protocol.d.ts.map +1 -0
  127. package/es/content/libro-content-protocol.js +3 -0
  128. package/es/content/libro-content-service.d.ts +11 -0
  129. package/es/content/libro-content-service.d.ts.map +1 -0
  130. package/es/content/libro-content-service.js +63 -0
  131. package/es/content/libro-save-content-contribution.d.ts +6 -0
  132. package/es/content/libro-save-content-contribution.d.ts.map +1 -0
  133. package/es/content/libro-save-content-contribution.js +27 -0
  134. package/es/formatter/index.d.ts +6 -0
  135. package/es/formatter/index.d.ts.map +1 -0
  136. package/es/formatter/index.js +5 -0
  137. package/es/formatter/libro-formatter-json-contribution.d.ts +18 -0
  138. package/es/formatter/libro-formatter-json-contribution.d.ts.map +1 -0
  139. package/es/formatter/libro-formatter-json-contribution.js +41 -0
  140. package/es/formatter/libro-formatter-manager.d.ts +16 -0
  141. package/es/formatter/libro-formatter-manager.d.ts.map +1 -0
  142. package/es/formatter/libro-formatter-manager.js +86 -0
  143. package/es/formatter/libro-formatter-module.d.ts +3 -0
  144. package/es/formatter/libro-formatter-module.d.ts.map +1 -0
  145. package/es/formatter/libro-formatter-module.js +7 -0
  146. package/es/formatter/libro-formatter-protocol.d.ts +37 -0
  147. package/es/formatter/libro-formatter-protocol.d.ts.map +1 -0
  148. package/es/formatter/libro-formatter-protocol.js +18 -0
  149. package/es/formatter/libro-formatter-string-contribution.d.ts +18 -0
  150. package/es/formatter/libro-formatter-string-contribution.d.ts.map +1 -0
  151. package/es/formatter/libro-formatter-string-contribution.js +41 -0
  152. package/es/formatter/libro-formatter-trans-default-contribution.d.ts +7 -0
  153. package/es/formatter/libro-formatter-trans-default-contribution.d.ts.map +1 -0
  154. package/es/formatter/libro-formatter-trans-default-contribution.js +19 -0
  155. package/es/index.d.ts +26 -0
  156. package/es/index.d.ts.map +1 -0
  157. package/es/index.js +25 -0
  158. package/es/index.less +781 -0
  159. package/es/libro-context-key.d.ts +26 -0
  160. package/es/libro-context-key.d.ts.map +1 -0
  161. package/es/libro-context-key.js +84 -0
  162. package/es/libro-keybind-registry.d.ts +5 -0
  163. package/es/libro-keybind-registry.d.ts.map +1 -0
  164. package/es/libro-keybind-registry.js +68 -0
  165. package/es/libro-model.d.ts +145 -0
  166. package/es/libro-model.d.ts.map +1 -0
  167. package/es/libro-model.js +921 -0
  168. package/es/libro-protocol.d.ts +315 -0
  169. package/es/libro-protocol.d.ts.map +1 -0
  170. package/es/libro-protocol.js +47 -0
  171. package/es/libro-service.d.ts +69 -0
  172. package/es/libro-service.d.ts.map +1 -0
  173. package/es/libro-service.js +303 -0
  174. package/es/libro-setting-contribution.d.ts +5 -0
  175. package/es/libro-setting-contribution.d.ts.map +1 -0
  176. package/es/libro-setting-contribution.js +23 -0
  177. package/es/libro-setting.d.ts +12 -0
  178. package/es/libro-setting.d.ts.map +1 -0
  179. package/es/libro-setting.js +101 -0
  180. package/es/libro-view-tracker.d.ts +6 -0
  181. package/es/libro-view-tracker.d.ts.map +1 -0
  182. package/es/libro-view-tracker.js +13 -0
  183. package/es/libro-view.d.ts +170 -0
  184. package/es/libro-view.d.ts.map +1 -0
  185. package/es/libro-view.js +2077 -0
  186. package/es/libro-workspace-service.d.ts +17 -0
  187. package/es/libro-workspace-service.d.ts.map +1 -0
  188. package/es/libro-workspace-service.js +36 -0
  189. package/es/material-from-designer.d.ts +31 -0
  190. package/es/material-from-designer.d.ts.map +1 -0
  191. package/es/material-from-designer.js +697 -0
  192. package/es/module.d.ts +3 -0
  193. package/es/module.d.ts.map +1 -0
  194. package/es/module.js +71 -0
  195. package/es/output/index.d.ts +6 -0
  196. package/es/output/index.d.ts.map +1 -0
  197. package/es/output/index.js +5 -0
  198. package/es/output/output-area.d.ts +51 -0
  199. package/es/output/output-area.d.ts.map +1 -0
  200. package/es/output/output-area.js +399 -0
  201. package/es/output/output-contribution.d.ts +10 -0
  202. package/es/output/output-contribution.d.ts.map +1 -0
  203. package/es/output/output-contribution.js +36 -0
  204. package/es/output/output-model.d.ts +28 -0
  205. package/es/output/output-model.d.ts.map +1 -0
  206. package/es/output/output-model.js +105 -0
  207. package/es/output/output-module.d.ts +3 -0
  208. package/es/output/output-module.d.ts.map +1 -0
  209. package/es/output/output-module.js +6 -0
  210. package/es/output/output-protocol.d.ts +134 -0
  211. package/es/output/output-protocol.d.ts.map +1 -0
  212. package/es/output/output-protocol.js +16 -0
  213. package/es/settings/index.d.ts +5 -0
  214. package/es/settings/index.d.ts.map +1 -0
  215. package/es/settings/index.js +4 -0
  216. package/es/settings/index.less +3 -0
  217. package/es/settings/module.d.ts +3 -0
  218. package/es/settings/module.d.ts.map +1 -0
  219. package/es/settings/module.js +4 -0
  220. package/es/settings/setting-editor/configuration-panel-view.d.ts +13 -0
  221. package/es/settings/setting-editor/configuration-panel-view.d.ts.map +1 -0
  222. package/es/settings/setting-editor/configuration-panel-view.js +115 -0
  223. package/es/settings/setting-editor/configuration-render-contribution.d.ts +6 -0
  224. package/es/settings/setting-editor/configuration-render-contribution.d.ts.map +1 -0
  225. package/es/settings/setting-editor/configuration-render-contribution.js +77 -0
  226. package/es/settings/setting-editor/default-node-render.d.ts +9 -0
  227. package/es/settings/setting-editor/default-node-render.d.ts.map +1 -0
  228. package/es/settings/setting-editor/default-node-render.js +79 -0
  229. package/es/settings/setting-editor/index.d.ts +7 -0
  230. package/es/settings/setting-editor/index.d.ts.map +1 -0
  231. package/es/settings/setting-editor/index.js +6 -0
  232. package/es/settings/setting-editor/index.less +12 -0
  233. package/es/settings/setting-editor/module.d.ts +3 -0
  234. package/es/settings/setting-editor/module.d.ts.map +1 -0
  235. package/es/settings/setting-editor/module.js +11 -0
  236. package/es/settings/setting-editor/setting-editor-view.d.ts +15 -0
  237. package/es/settings/setting-editor/setting-editor-view.d.ts.map +1 -0
  238. package/es/settings/setting-editor/setting-editor-view.js +169 -0
  239. package/es/settings/setting-editor/setting-tree-service.d.ts +9 -0
  240. package/es/settings/setting-editor/setting-tree-service.d.ts.map +1 -0
  241. package/es/settings/setting-editor/setting-tree-service.js +118 -0
  242. package/es/settings/setting-editor/setting-tree-view.d.ts +19 -0
  243. package/es/settings/setting-editor/setting-tree-view.d.ts.map +1 -0
  244. package/es/settings/setting-editor/setting-tree-view.js +87 -0
  245. package/es/settings/settings-contribution.d.ts +7 -0
  246. package/es/settings/settings-contribution.d.ts.map +1 -0
  247. package/es/settings/settings-contribution.js +36 -0
  248. package/es/settings/settings-modal.d.ts +5 -0
  249. package/es/settings/settings-modal.d.ts.map +1 -0
  250. package/es/settings/settings-modal.js +53 -0
  251. package/es/settings/settings-modal.less +3 -0
  252. package/es/settings/settings-protocol.d.ts +4 -0
  253. package/es/settings/settings-protocol.d.ts.map +1 -0
  254. package/es/settings/settings-protocol.js +5 -0
  255. package/es/slot/index.d.ts +5 -0
  256. package/es/slot/index.d.ts.map +1 -0
  257. package/es/slot/index.js +4 -0
  258. package/es/slot/libro-slot-manager.d.ts +13 -0
  259. package/es/slot/libro-slot-manager.d.ts.map +1 -0
  260. package/es/slot/libro-slot-manager.js +66 -0
  261. package/es/slot/libro-slot-protocol.d.ts +19 -0
  262. package/es/slot/libro-slot-protocol.d.ts.map +1 -0
  263. package/es/slot/libro-slot-protocol.js +5 -0
  264. package/es/slot/libro-slot-view.d.ts +9 -0
  265. package/es/slot/libro-slot-view.d.ts.map +1 -0
  266. package/es/slot/libro-slot-view.js +81 -0
  267. package/es/slot/module.d.ts +3 -0
  268. package/es/slot/module.d.ts.map +1 -0
  269. package/es/slot/module.js +5 -0
  270. package/es/theme/libro-color-registry.d.ts +6 -0
  271. package/es/theme/libro-color-registry.d.ts.map +1 -0
  272. package/es/theme/libro-color-registry.js +515 -0
  273. package/es/toolbar/all-outputs-scroll-icon.d.ts +3 -0
  274. package/es/toolbar/all-outputs-scroll-icon.d.ts.map +1 -0
  275. package/es/toolbar/all-outputs-scroll-icon.js +10 -0
  276. package/es/toolbar/change-cell-to-selector.d.ts +5 -0
  277. package/es/toolbar/change-cell-to-selector.d.ts.map +1 -0
  278. package/es/toolbar/change-cell-to-selector.js +51 -0
  279. package/es/toolbar/hide-all-selector.d.ts +5 -0
  280. package/es/toolbar/hide-all-selector.d.ts.map +1 -0
  281. package/es/toolbar/hide-all-selector.js +99 -0
  282. package/es/toolbar/index.d.ts +4 -0
  283. package/es/toolbar/index.d.ts.map +1 -0
  284. package/es/toolbar/index.js +3 -0
  285. package/es/toolbar/index.less +59 -0
  286. package/es/toolbar/libro-toolbar-protocol.d.ts +4 -0
  287. package/es/toolbar/libro-toolbar-protocol.d.ts.map +1 -0
  288. package/es/toolbar/libro-toolbar-protocol.js +1 -0
  289. package/es/toolbar/libro-toolbar.d.ts +9 -0
  290. package/es/toolbar/libro-toolbar.d.ts.map +1 -0
  291. package/es/toolbar/libro-toolbar.js +275 -0
  292. package/es/toolbar/module.d.ts +3 -0
  293. package/es/toolbar/module.d.ts.map +1 -0
  294. package/es/toolbar/module.js +5 -0
  295. package/es/toolbar/restart-clear-outputs-contribution.d.ts +5 -0
  296. package/es/toolbar/restart-clear-outputs-contribution.d.ts.map +1 -0
  297. package/es/toolbar/restart-clear-outputs-contribution.js +23 -0
  298. package/es/toolbar/restart-clear-outputs-modal.d.ts +5 -0
  299. package/es/toolbar/restart-clear-outputs-modal.d.ts.map +1 -0
  300. package/es/toolbar/restart-clear-outputs-modal.js +30 -0
  301. package/es/toolbar/save-icon.d.ts +3 -0
  302. package/es/toolbar/save-icon.d.ts.map +1 -0
  303. package/es/toolbar/save-icon.js +54 -0
  304. package/es/toolbar/shutdown-contribution.d.ts +5 -0
  305. package/es/toolbar/shutdown-contribution.d.ts.map +1 -0
  306. package/es/toolbar/shutdown-contribution.js +23 -0
  307. package/es/toolbar/shutdown-modal.d.ts +5 -0
  308. package/es/toolbar/shutdown-modal.d.ts.map +1 -0
  309. package/es/toolbar/shutdown-modal.js +30 -0
  310. package/es/toolbar/side-toolar-more-select.d.ts +4 -0
  311. package/es/toolbar/side-toolar-more-select.d.ts.map +1 -0
  312. package/es/toolbar/side-toolar-more-select.js +161 -0
  313. package/es/typings/index.d.ts +1 -0
  314. package/es/virtualized-manager-helper.d.ts +11 -0
  315. package/es/virtualized-manager-helper.d.ts.map +1 -0
  316. package/es/virtualized-manager-helper.js +51 -0
  317. package/es/virtualized-manager.d.ts +23 -0
  318. package/es/virtualized-manager.d.ts.map +1 -0
  319. package/es/virtualized-manager.js +65 -0
  320. package/package.json +73 -0
  321. package/src/add-cell/index.less +38 -0
  322. package/src/add-cell/index.ts +3 -0
  323. package/src/add-cell/libro-add-cell-module.ts +9 -0
  324. package/src/add-cell/libro-add-cell-slot-contribution.ts +28 -0
  325. package/src/add-cell/libro-add-cell-view.tsx +99 -0
  326. package/src/cell/README.md +14 -0
  327. package/src/cell/index.ts +9 -0
  328. package/src/cell/libro-cell-contribution.ts +34 -0
  329. package/src/cell/libro-cell-model.ts +119 -0
  330. package/src/cell/libro-cell-module.ts +40 -0
  331. package/src/cell/libro-cell-protocol.ts +55 -0
  332. package/src/cell/libro-cell-service.ts +158 -0
  333. package/src/cell/libro-cell-view.tsx +156 -0
  334. package/src/cell/libro-edit-cell-view.tsx +205 -0
  335. package/src/cell/libro-executable-cell-model.ts +32 -0
  336. package/src/cell/libro-executable-cell-view.ts +86 -0
  337. package/src/cell/libro-markdown-cell-model.ts +20 -0
  338. package/src/collapse-service.ts +69 -0
  339. package/src/command/document-commands.ts +24 -0
  340. package/src/command/index.ts +6 -0
  341. package/src/command/kernel-command.ts +42 -0
  342. package/src/command/libro-command-contribution.ts +1346 -0
  343. package/src/command/libro-command-register.ts +168 -0
  344. package/src/command/module.ts +9 -0
  345. package/src/command/notebook-commands.ts +502 -0
  346. package/src/components/cell-protocol.ts +26 -0
  347. package/src/components/dnd-cell-item-render.tsx +465 -0
  348. package/src/components/dnd-component/custom-drag-layer.tsx +144 -0
  349. package/src/components/dnd-component/default-dnd-content.tsx +330 -0
  350. package/src/components/dnd-component/dnd-context.tsx +28 -0
  351. package/src/components/dnd-component/dnd-list.tsx +211 -0
  352. package/src/components/dnd-component/index.less +12 -0
  353. package/src/components/dnd-component/index.tsx +4 -0
  354. package/src/components/dnd-component/overscanIndices-getter.ts +92 -0
  355. package/src/components/dnd-component/virtualized-manager.ts +34 -0
  356. package/src/components/index.ts +5 -0
  357. package/src/components/libro-component.tsx +30 -0
  358. package/src/components/libro-side-toolbar-menu.tsx +82 -0
  359. package/src/components/libro-view-header.tsx +33 -0
  360. package/src/components/libro-virtualized-render.tsx +178 -0
  361. package/src/content/index.ts +5 -0
  362. package/src/content/libro-content-contribution.ts +16 -0
  363. package/src/content/libro-content-module.ts +17 -0
  364. package/src/content/libro-content-protocol.ts +14 -0
  365. package/src/content/libro-content-service.ts +48 -0
  366. package/src/content/libro-save-content-contribution.ts +12 -0
  367. package/src/formatter/index.ts +5 -0
  368. package/src/formatter/libro-formatter-json-contribution.ts +42 -0
  369. package/src/formatter/libro-formatter-manager.ts +85 -0
  370. package/src/formatter/libro-formatter-module.ts +19 -0
  371. package/src/formatter/libro-formatter-protocol.ts +63 -0
  372. package/src/formatter/libro-formatter-string-contribution.ts +41 -0
  373. package/src/formatter/libro-formatter-trans-default-contribution.ts +15 -0
  374. package/src/index.less +789 -0
  375. package/src/index.spec.ts +12 -0
  376. package/src/index.tsx +25 -0
  377. package/src/libro-context-key.ts +84 -0
  378. package/src/libro-keybind-registry.ts +43 -0
  379. package/src/libro-model.ts +710 -0
  380. package/src/libro-protocol.ts +435 -0
  381. package/src/libro-service.ts +234 -0
  382. package/src/libro-setting-contribution.ts +28 -0
  383. package/src/libro-setting.ts +110 -0
  384. package/src/libro-view-tracker.ts +9 -0
  385. package/src/libro-view.tsx +1532 -0
  386. package/src/libro-workspace-service.ts +28 -0
  387. package/src/material-from-designer.tsx +579 -0
  388. package/src/module.ts +121 -0
  389. package/src/output/index.ts +5 -0
  390. package/src/output/output-area.tsx +286 -0
  391. package/src/output/output-contribution.ts +14 -0
  392. package/src/output/output-model.tsx +70 -0
  393. package/src/output/output-module.ts +10 -0
  394. package/src/output/output-protocol.ts +168 -0
  395. package/src/settings/index.less +3 -0
  396. package/src/settings/index.ts +4 -0
  397. package/src/settings/module.ts +8 -0
  398. package/src/settings/setting-editor/configuration-panel-view.tsx +89 -0
  399. package/src/settings/setting-editor/configuration-render-contribution.ts +81 -0
  400. package/src/settings/setting-editor/default-node-render.tsx +65 -0
  401. package/src/settings/setting-editor/index.less +12 -0
  402. package/src/settings/setting-editor/index.ts +6 -0
  403. package/src/settings/setting-editor/module.ts +17 -0
  404. package/src/settings/setting-editor/setting-editor-view.tsx +93 -0
  405. package/src/settings/setting-editor/setting-tree-service.ts +82 -0
  406. package/src/settings/setting-editor/setting-tree-view.tsx +95 -0
  407. package/src/settings/settings-contribution.tsx +24 -0
  408. package/src/settings/settings-modal.less +3 -0
  409. package/src/settings/settings-modal.tsx +51 -0
  410. package/src/settings/settings-protocol.ts +7 -0
  411. package/src/slot/index.ts +4 -0
  412. package/src/slot/libro-slot-manager.ts +38 -0
  413. package/src/slot/libro-slot-protocol.ts +28 -0
  414. package/src/slot/libro-slot-view.tsx +48 -0
  415. package/src/slot/module.ts +9 -0
  416. package/src/theme/libro-color-registry.ts +386 -0
  417. package/src/toolbar/all-outputs-scroll-icon.tsx +19 -0
  418. package/src/toolbar/change-cell-to-selector.tsx +67 -0
  419. package/src/toolbar/hide-all-selector.tsx +126 -0
  420. package/src/toolbar/index.less +59 -0
  421. package/src/toolbar/index.ts +3 -0
  422. package/src/toolbar/libro-toolbar-protocol.ts +4 -0
  423. package/src/toolbar/libro-toolbar.tsx +231 -0
  424. package/src/toolbar/module.ts +11 -0
  425. package/src/toolbar/restart-clear-outputs-contribution.tsx +10 -0
  426. package/src/toolbar/restart-clear-outputs-modal.tsx +37 -0
  427. package/src/toolbar/save-icon.tsx +47 -0
  428. package/src/toolbar/shutdown-contribution.tsx +10 -0
  429. package/src/toolbar/shutdown-modal.tsx +37 -0
  430. package/src/toolbar/side-toolar-more-select.tsx +177 -0
  431. package/src/typings/index.d.ts +1 -0
  432. package/src/virtualized-manager-helper.ts +29 -0
  433. package/src/virtualized-manager.ts +47 -0
@@ -0,0 +1,28 @@
1
+ import type { View } from '@difizen/mana-app';
2
+ import { Syringe } from '@difizen/mana-app';
3
+
4
+ import type { LibroView } from '../libro-view.js';
5
+
6
+ export type LibroExtensionSlotFactory = (view: LibroView) => Promise<View>;
7
+
8
+ export const LibroExtensionSlotContribution = Syringe.defineToken(
9
+ 'LibroExtensionSlotContribution',
10
+ );
11
+ export interface LibroExtensionSlotContribution {
12
+ factory: LibroExtensionSlotFactory;
13
+ slot: LibroSlot;
14
+ viewOpenOption?: {
15
+ order?: string;
16
+ reveal?: boolean;
17
+ };
18
+ }
19
+
20
+ export type LibroSlot = 'content' | 'container' | 'list' | 'right';
21
+
22
+ export interface DisplayView {
23
+ isDisplay: boolean;
24
+ }
25
+
26
+ export function isDisplayView(object: any): object is DisplayView {
27
+ return 'isDisplay' in object;
28
+ }
@@ -0,0 +1,48 @@
1
+ import { DefaultSlotView, view, ViewRender, ViewInstance } from '@difizen/mana-app';
2
+ import { transient } from '@difizen/mana-app';
3
+ import { equals, prop, useInject } from '@difizen/mana-app';
4
+ import { forwardRef } from 'react';
5
+
6
+ import { isDisplayView } from './libro-slot-protocol.js';
7
+
8
+ export const LibroExtensionViewComponent = forwardRef(
9
+ function LibroExtensionViewComponent(props, ref: React.ForwardedRef<HTMLDivElement>) {
10
+ const instance = useInject<LibroSlotView>(ViewInstance);
11
+ //过滤出实现了DisplayView接口的View,用于控制抢占逻辑
12
+ const filteredChildren = instance.children.filter((item) => {
13
+ return isDisplayView(item) && item.isDisplay;
14
+ });
15
+ if (filteredChildren.length < 1) {
16
+ return (
17
+ <div className={'libro-slot-container'} ref={ref}>
18
+ {instance.children.map(
19
+ (item) => !isDisplayView(item) && <ViewRender view={item} key={item.id} />,
20
+ )}
21
+ </div>
22
+ );
23
+ } else {
24
+ const activeView =
25
+ filteredChildren.find(
26
+ (item) => instance.active && equals(item, instance.active),
27
+ ) || filteredChildren[filteredChildren.length - 1];
28
+ return (
29
+ <div className={'libro-slot-container'} ref={ref}>
30
+ <ViewRender view={activeView} />
31
+ {instance.children.map(
32
+ (item) => !isDisplayView(item) && <ViewRender view={item} key={item.id} />,
33
+ )}
34
+ </div>
35
+ );
36
+ }
37
+ },
38
+ );
39
+
40
+ @transient()
41
+ @view('libro-slot-view')
42
+ export class LibroSlotView extends DefaultSlotView {
43
+ override label: React.ReactNode = null;
44
+ override view = LibroExtensionViewComponent;
45
+ @prop()
46
+ override sort?: boolean = false;
47
+ // sort?: boolean = true;
48
+ }
@@ -0,0 +1,9 @@
1
+ import { ManaModule } from '@difizen/mana-app';
2
+
3
+ import { LibroSlotManager } from './libro-slot-manager.js';
4
+ import { LibroExtensionSlotContribution } from './libro-slot-protocol.js';
5
+ import { LibroSlotView } from './libro-slot-view.js';
6
+
7
+ export const LibroSlotModule = ManaModule.create()
8
+ .contribution(LibroExtensionSlotContribution)
9
+ .register(LibroSlotManager, LibroSlotView);
@@ -0,0 +1,386 @@
1
+ import type { ColorRegistry } from '@difizen/mana-app';
2
+ import { ColorContribution } from '@difizen/mana-app';
3
+ import { singleton } from '@difizen/mana-app';
4
+
5
+ @singleton({ contrib: ColorContribution })
6
+ export class LibroColorRegistry implements ColorContribution {
7
+ registerColors(colors: ColorRegistry): void {
8
+ colors.register(
9
+ // #region antd variable
10
+ {
11
+ id: 'libro.warning.background',
12
+ defaults: { dark: '#A9611466', light: '#FFFBE6' },
13
+ description: '',
14
+ },
15
+ {
16
+ id: 'libro.drag.hover.line.color',
17
+ defaults: { dark: '#467DB0', light: '#BFE0FF' },
18
+ description: '',
19
+ },
20
+ {
21
+ id: 'libro.background',
22
+ defaults: { dark: '#1F2022', light: '#FFFFFF' },
23
+ description: '',
24
+ },
25
+ {
26
+ id: 'libro.popover.background.color',
27
+ defaults: { dark: '#2F3032', light: '#FFFFFF' },
28
+ description: '',
29
+ },
30
+ {
31
+ id: 'libro.menu.hover.color',
32
+ defaults: { dark: '#515359', light: '#EBF6FF' },
33
+ description: '',
34
+ },
35
+ {
36
+ id: 'libro.dropdown.icon.color',
37
+ defaults: {
38
+ dark: '#FFFFFF4D',
39
+ light: '#00000033',
40
+ },
41
+ description: '',
42
+ },
43
+ {
44
+ id: 'libro.input.background',
45
+ defaults: { dark: '#19191B', light: '#F4F6FB' },
46
+ description: '',
47
+ },
48
+ {
49
+ id: 'libro.text.default.color',
50
+ defaults: { dark: '#E3E4E6', light: '#000000' },
51
+ description: '',
52
+ },
53
+ {
54
+ id: 'libro.text.tertiary.color',
55
+ defaults: { dark: '#BDC0C4', light: '#B8BABA' },
56
+ description: '',
57
+ },
58
+ {
59
+ id: 'libro.output.background',
60
+ defaults: { dark: '#292A2D', light: '#FFFFFF' },
61
+ description: '',
62
+ },
63
+ {
64
+ id: 'libro.toptoolbar.border.color',
65
+ defaults: {
66
+ dark: '#FFFFFF1A',
67
+ light: '#0000001A',
68
+ },
69
+ description: '',
70
+ },
71
+ {
72
+ id: 'libro.toptoolbar.icon.color',
73
+ defaults: { dark: '#BFBFBF', light: '#7B7B7B' },
74
+ description: '',
75
+ },
76
+ {
77
+ id: 'libro.toptoolbar.disabled.icon.color',
78
+ defaults: {
79
+ dark: '#FFFFFF4D',
80
+ light: '#00000040',
81
+ },
82
+ description: '',
83
+ },
84
+ {
85
+ id: 'libro.toptoolbar.text.color',
86
+ defaults: { dark: '#F5F5F5', light: '#000000' },
87
+ description: '',
88
+ },
89
+ {
90
+ id: 'libro.bottom.btn.background.color',
91
+ defaults: {
92
+ dark: '#FFFFFF0A',
93
+ light: '#FFFFFF',
94
+ },
95
+ description: '',
96
+ },
97
+ {
98
+ id: 'libro.bottom.btn.border.color',
99
+ defaults: { dark: '#505559', light: '#000A1A29' },
100
+ description: '',
101
+ },
102
+ {
103
+ id: 'libro.bottom.btn.icon.color',
104
+ defaults: { dark: '#505559', light: '#525964D9' },
105
+ description: '',
106
+ },
107
+ {
108
+ id: 'libro.bottom.btn.text.color',
109
+ defaults: { dark: '#E3E4E6', light: '#000A1AAD' },
110
+ description: '',
111
+ },
112
+ {
113
+ id: 'libro.default.btn.background.color',
114
+ defaults: { dark: '#FFFFFF1A', light: '#FFFFFF' },
115
+ description: '',
116
+ },
117
+ {
118
+ id: 'libro.default.btn.text.color',
119
+ defaults: { dark: '#E3E4E6', light: '#000A1AAD' },
120
+ description: '',
121
+ },
122
+ {
123
+ id: 'libro.primary.btn.background.color',
124
+ defaults: { dark: '#2A97FD', light: '#1890FF' },
125
+ description: '',
126
+ },
127
+ {
128
+ id: 'libro.default.btn.border.color',
129
+ defaults: { dark: '#BDC0C4', light: '#D6D8DA' },
130
+ description: '',
131
+ },
132
+ {
133
+ id: 'libro.toolbar.menu.label.color',
134
+ defaults: { dark: '#BDC0C4', light: '#000000A6' },
135
+ description: '',
136
+ },
137
+ {
138
+ id: 'libro.toolbar.menu.disabled.label.color',
139
+ defaults: { dark: '#878C93', light: '#00000040' },
140
+ description: '',
141
+ },
142
+ {
143
+ id: 'libro.toolbar.menu.keybind.color',
144
+ defaults: { dark: '#878C93', light: '#00000073' },
145
+ description: '',
146
+ },
147
+ {
148
+ id: 'libro.sidetoolbar.icon.color',
149
+ defaults: { dark: '#BFBFBF', light: '#6982A9' },
150
+ description: '',
151
+ },
152
+ {
153
+ id: 'libro.sidetoolbar.border.color',
154
+ defaults: {
155
+ dark: '#FFFFFF14',
156
+ light: '#0000001A',
157
+ },
158
+ description: '',
159
+ },
160
+ {
161
+ id: 'libro.close.color',
162
+ defaults: {
163
+ dark: '#FFFFFF73',
164
+ light: '#00000073',
165
+ },
166
+ description: '',
167
+ },
168
+ {
169
+ id: 'libro.modal.title.color',
170
+ defaults: { dark: '#EDEEEF', light: '#000000D9' },
171
+ description: '',
172
+ },
173
+ {
174
+ id: 'libro.modal.content.color',
175
+ defaults: { dark: '#E3E4E6', light: '#000A1A' },
176
+ description: '',
177
+ },
178
+ {
179
+ id: 'libro.btn.primary.background.color',
180
+ defaults: { dark: '#2A97FD', light: '#1890FF' },
181
+ description: '',
182
+ },
183
+ {
184
+ id: 'libro.execution.count.color',
185
+ defaults: { dark: '#8694A9', light: '#6A83AA' },
186
+ description: '',
187
+ },
188
+ {
189
+ id: 'libro.tip.font.color',
190
+ defaults: { dark: '#D6D8DA', light: '#00000080' },
191
+ description: '',
192
+ },
193
+ {
194
+ id: 'libro.execution.tip.success.color',
195
+ defaults: { dark: '#48A918', light: '#0DC54E' },
196
+ description: '',
197
+ },
198
+ {
199
+ id: 'libro.link.color',
200
+ defaults: { dark: '#177DDC', light: '#1890FF' },
201
+ description: '',
202
+ },
203
+ {
204
+ id: 'libro.error.color',
205
+ defaults: { dark: '#CF4C52', light: '#ED1345' },
206
+ description: '',
207
+ },
208
+ {
209
+ id: 'libro.cell.border.color',
210
+ defaults: { dark: '#3B3C42', light: '#D6DEE6' },
211
+ description: '',
212
+ },
213
+ {
214
+ id: 'libro.cell.active.border.color',
215
+ defaults: { dark: '#378EDF', light: '#3490ED' },
216
+ description: '',
217
+ },
218
+ {
219
+ id: 'libro.cell.active.border.shadow.color',
220
+ defaults: {
221
+ dark: '#49A2FA40',
222
+ light: '#3592EE40',
223
+ },
224
+ description: '',
225
+ },
226
+ {
227
+ id: 'libro.cell.header.content',
228
+ defaults: { dark: '#E3E4E6', light: '#545B66' },
229
+ description: '',
230
+ },
231
+ {
232
+ id: 'libro.cell.header.title',
233
+ defaults: { dark: '#D6D8DA', light: '#000A1A' },
234
+ description: '',
235
+ },
236
+ {
237
+ id: 'libro.code.border.color',
238
+ defaults: { dark: '#353638', light: '#DCE4EC' },
239
+ description: '',
240
+ },
241
+ {
242
+ id: 'libro.input.border.color',
243
+ defaults: { dark: '#505559', light: '#00000026' },
244
+ description: '',
245
+ },
246
+ {
247
+ id: 'libro.input.background.color',
248
+ defaults: { dark: '#FFFFFF0A', light: '#FFFFFF' },
249
+ description: '',
250
+ },
251
+ {
252
+ id: 'libro.input.group.btn.background.color',
253
+ defaults: { dark: '#00000005', light: '#00000005' },
254
+ description: '',
255
+ },
256
+ {
257
+ id: 'libro.table.innner.border.color',
258
+ defaults: { dark: '#1AFFFF', light: '#E5EBF1' },
259
+ description: '',
260
+ },
261
+ {
262
+ id: 'libro.table.bottom.border.color',
263
+ defaults: { dark: '#424242', light: '#E2E7EC' },
264
+ description: '',
265
+ },
266
+ {
267
+ id: 'libro.editor.keyword.color',
268
+ defaults: { dark: '#109B67', light: '#098658' },
269
+ description: '',
270
+ },
271
+ {
272
+ id: 'libro.editor.number.color',
273
+ defaults: { dark: '#109B67', light: '#098658' },
274
+ description: '',
275
+ },
276
+ {
277
+ id: 'libro.editor.variable.2.color',
278
+ defaults: { dark: '#5DA4EA', light: '#2060A0' },
279
+ description: '',
280
+ },
281
+ {
282
+ id: 'libro.editor.punctuation.color',
283
+ defaults: { dark: '#5DA4EA', light: '#2060A0' },
284
+ description: '',
285
+ },
286
+ {
287
+ id: 'libro.editor.property.color',
288
+ defaults: { dark: '#5DA4EA', light: '#2060A0' },
289
+ description: '',
290
+ },
291
+ {
292
+ id: 'libro.editor.operator.color',
293
+ defaults: { dark: 'E12EE1', light: '#C700C7' },
294
+ description: '',
295
+ },
296
+ {
297
+ id: 'libro.editor.meta.color',
298
+ defaults: { dark: '#E12EE1', light: '#C700C7' },
299
+ description: '',
300
+ },
301
+ {
302
+ id: 'libro.editor.builtin.color',
303
+ defaults: { dark: '#109B67', light: '#098658' },
304
+ description: '',
305
+ },
306
+ {
307
+ id: 'libro.editor.variable.color',
308
+ defaults: { dark: '#E3E4E6', light: '#212121' },
309
+ description: '',
310
+ },
311
+ {
312
+ id: 'libro.editor.def.color',
313
+ defaults: { dark: '#187DFF', light: '#003CFF' },
314
+ description: '',
315
+ },
316
+ {
317
+ id: 'libro.editor.comment.color',
318
+ defaults: { dark: '#618961', light: '#406040' },
319
+ description: '',
320
+ },
321
+ {
322
+ id: 'libro.editor.string.color',
323
+ defaults: { dark: '#FF5B48', light: '#C03030' },
324
+ description: '',
325
+ },
326
+ {
327
+ id: 'libro.editor.activeline.color',
328
+ defaults: {
329
+ dark: '#E5E8F01A',
330
+ light: '#E5E8F080',
331
+ },
332
+ description: '',
333
+ },
334
+ {
335
+ id: 'libro.editor.selectionMatch.color',
336
+ defaults: { dark: '#99FF7780', light: '#DDE6FF' },
337
+ description: '',
338
+ },
339
+ {
340
+ id: 'libro.editor.selection.color',
341
+ defaults: { dark: '#B4CEFF', light: '#B4CEFF' },
342
+ description: '',
343
+ },
344
+ {
345
+ id: 'libro.editor.gutter.number.color',
346
+ defaults: { dark: '#A8AEBF', light: '#A4AECB' },
347
+ description: '',
348
+ },
349
+ {
350
+ id: 'libro.editor.line.color',
351
+ defaults: { dark: '#565C6D', light: '#A4AECB' },
352
+ description: '',
353
+ },
354
+ {
355
+ id: 'libro.editor.cursor.color',
356
+ defaults: { dark: '#FFFFFF', light: '#000000' },
357
+ description: '',
358
+ },
359
+ {
360
+ id: 'libro.editor.search.match',
361
+ defaults: { dark: '#8c4717', light: '#ffb184' },
362
+ description: '',
363
+ },
364
+ {
365
+ id: 'libro.editor.search.currentmatch',
366
+ defaults: { dark: '#a87713', light: '#fbde28' },
367
+ description: '',
368
+ },
369
+ {
370
+ id: 'libro.editor.indent.marker.bg.color',
371
+ defaults: { dark: '#42444D', light: '#D6DBEB' },
372
+ description: '',
373
+ },
374
+ {
375
+ id: 'libro.editor.indent.marker.active.bg.color',
376
+ defaults: { dark: '#788491', light: '#9f9f9f' },
377
+ description: '',
378
+ },
379
+ {
380
+ id: 'libro.cell.selected.bg.color',
381
+ defaults: { dark: '#353638', light: '#F1FAFF' },
382
+ description: '',
383
+ },
384
+ );
385
+ }
386
+ }
@@ -0,0 +1,19 @@
1
+ import { useInject, ViewInstance } from '@difizen/mana-app';
2
+ import type { FC } from 'react';
3
+
4
+ import type { LibroView } from '../libro-view.js';
5
+ import { DisableOutputScroll } from '../material-from-designer.js';
6
+
7
+ export const AllOutputsScrollIcon: FC = () => {
8
+ const libroView = useInject<LibroView>(ViewInstance);
9
+
10
+ return (
11
+ <div
12
+ className={`libro-all-outputs-scroll-button ${
13
+ libroView.outputsScroll ? 'active' : ''
14
+ }`}
15
+ >
16
+ <DisableOutputScroll />
17
+ </div>
18
+ );
19
+ };
@@ -0,0 +1,67 @@
1
+ import {
2
+ useInject,
3
+ ToolbarInstance,
4
+ getOrigin,
5
+ CommandRegistry,
6
+ ThemeService,
7
+ } from '@difizen/mana-app';
8
+ import type { Toolbar } from '@difizen/mana-app';
9
+ import { ConfigProvider, Select, theme } from 'antd';
10
+ import { memo } from 'react';
11
+
12
+ import type { CellMeta } from '../cell/index.js';
13
+ import { LibroCellService } from '../cell/index.js';
14
+ import { NotebookCommands } from '../command/index.js';
15
+
16
+ import type { LibroToolbarArags } from './libro-toolbar-protocol.js';
17
+ import './index.less';
18
+
19
+ const { Option } = Select;
20
+ const widthStyle = { width: 110 };
21
+ type ChangeType = {
22
+ name: string;
23
+ type: string;
24
+ };
25
+ export const ToolItemSelectInner: React.FC = () => {
26
+ const cellService: LibroCellService = useInject(LibroCellService);
27
+ const invertList: CellMeta[] = cellService.cellsMeta;
28
+ const toolbar = useInject<Toolbar>(ToolbarInstance);
29
+ const data = toolbar.currentArgs as LibroToolbarArags;
30
+ const command = useInject(CommandRegistry);
31
+ const curCell = data?.[0];
32
+ const themeService = useInject(ThemeService);
33
+
34
+ const handleChange = (value: string) => {
35
+ const args = getOrigin(data) || [];
36
+ command.executeCommand(NotebookCommands['ChangeCellTo'].id, ...args, value);
37
+ };
38
+ return (
39
+ <ConfigProvider
40
+ theme={{
41
+ algorithm:
42
+ themeService.getCurrentTheme().type === 'dark'
43
+ ? theme.darkAlgorithm
44
+ : theme.defaultAlgorithm,
45
+ }}
46
+ >
47
+ <Select
48
+ value={curCell?.model?.type}
49
+ size={'small'}
50
+ style={widthStyle}
51
+ onChange={handleChange}
52
+ bordered={false}
53
+ popupClassName="libro-cell-selector"
54
+ >
55
+ {invertList.map((item: ChangeType) => {
56
+ return (
57
+ <Option value={item.type} key={item.name}>
58
+ {item.name}
59
+ </Option>
60
+ );
61
+ })}
62
+ </Select>
63
+ </ConfigProvider>
64
+ );
65
+ };
66
+
67
+ export const ToolItemSelect = memo(ToolItemSelectInner);
@@ -0,0 +1,126 @@
1
+ import { EyeInvisibleOutlined } from '@ant-design/icons';
2
+ import {
3
+ useInject,
4
+ ToolbarInstance,
5
+ getOrigin,
6
+ CommandRegistry,
7
+ } from '@difizen/mana-app';
8
+ import type { Toolbar } from '@difizen/mana-app';
9
+ import { l10n } from '@difizen/mana-l10n';
10
+ import { Menu, Dropdown } from 'antd';
11
+ import type { MenuProps } from 'antd';
12
+ import { memo } from 'react';
13
+
14
+ import { ExecutableCellModel } from '../cell/index.js';
15
+ import { NotebookCommands } from '../command/index.js';
16
+
17
+ import type { LibroToolbarArags } from './libro-toolbar-protocol.js';
18
+ import './index.less';
19
+
20
+ export const HideAllSelectInner: React.FC = () => {
21
+ const toolbar = useInject<Toolbar>(ToolbarInstance);
22
+ const data = toolbar.currentArgs as LibroToolbarArags;
23
+ // const data = useInject(ToolbarArgs) as LibroToolbarArags;
24
+ const command = useInject(CommandRegistry);
25
+ const libroView = data?.[1];
26
+ if (!libroView) {
27
+ return null;
28
+ }
29
+ const handleChange: MenuProps['onClick'] = (e) => {
30
+ const args = getOrigin(data) || [];
31
+ if (e.key === 'hideAllInputs') {
32
+ command.executeCommand(NotebookCommands['HideAllCellCode'].id, ...args);
33
+ } else if (e.key === 'hideAllOutputs') {
34
+ command.executeCommand(NotebookCommands['HideAllCellOutput'].id, ...args);
35
+ } else if (e.key === 'hideAll') {
36
+ command.executeCommand(NotebookCommands['HideAllCellCode'].id, ...args);
37
+ command.executeCommand(NotebookCommands['HideAllCellOutput'].id, ...args);
38
+ } else if (e.key === 'showAllInputs') {
39
+ command.executeCommand(NotebookCommands['ShowAllCellCode'].id, ...args);
40
+ } else if (e.key === 'showAllOutputs') {
41
+ command.executeCommand(NotebookCommands['ShowAllCellOutputs'].id, ...args);
42
+ } else if (e.key === 'showAll') {
43
+ command.executeCommand(NotebookCommands['ShowAllCellCode'].id, ...args);
44
+ command.executeCommand(NotebookCommands['ShowAllCellOutputs'].id, ...args);
45
+ }
46
+ };
47
+ //只要有一个cell input是显示的,隐藏cell input的选项都生效
48
+ const isCodeVisiable =
49
+ libroView.model.getCells().findIndex((item) => item.hasInputHidden === false) > -1
50
+ ? true
51
+ : false;
52
+ //只要有一个cell input是隐藏的,显示cell input的选项都生效
53
+ const isCodeHidden =
54
+ libroView.model.getCells().findIndex((item) => item.hasInputHidden === true) > -1
55
+ ? true
56
+ : false;
57
+ const isOutputVisible =
58
+ libroView.model
59
+ .getCells()
60
+ .findIndex(
61
+ (item) =>
62
+ ExecutableCellModel.is(item.model) && item.model.hasOutputHidden === false,
63
+ ) > -1
64
+ ? true
65
+ : false;
66
+ const isOutputHidden =
67
+ libroView.model
68
+ .getCells()
69
+ .findIndex(
70
+ (item) =>
71
+ ExecutableCellModel.is(item.model) && item.model.hasOutputHidden === true,
72
+ ) > -1
73
+ ? true
74
+ : false;
75
+ const menu = (
76
+ <Menu
77
+ onClick={handleChange}
78
+ items={[
79
+ {
80
+ key: 'hideAllInputs',
81
+ label: l10n.t('隐藏全部 Code'),
82
+ disabled: !isCodeVisiable,
83
+ },
84
+ {
85
+ key: 'hideAllOutputs',
86
+ label: l10n.t('隐藏全部 Output'),
87
+ disabled: !isOutputVisible,
88
+ },
89
+ {
90
+ key: 'hideAll',
91
+ label: l10n.t('全部隐藏'),
92
+ disabled: !isCodeVisiable || !isOutputVisible,
93
+ },
94
+ {
95
+ key: 'showAllInputs',
96
+ label: l10n.t('显示全部 Code'),
97
+ disabled: !isCodeHidden,
98
+ },
99
+ {
100
+ key: 'showAllOutputs',
101
+ label: l10n.t('显示全部 Output'),
102
+ disabled: !isOutputHidden,
103
+ },
104
+ {
105
+ key: 'showAll',
106
+ label: l10n.t('全部显示'),
107
+ disabled: !isCodeHidden || !isOutputHidden,
108
+ },
109
+ ]}
110
+ />
111
+ );
112
+
113
+ return (
114
+ <>
115
+ <Dropdown
116
+ overlay={menu}
117
+ placement="bottomLeft"
118
+ overlayClassName="libro-hide-selector-menu"
119
+ >
120
+ <EyeInvisibleOutlined style={{ fontSize: 20 }} />
121
+ </Dropdown>
122
+ </>
123
+ );
124
+ };
125
+
126
+ export const HideAllSelect = memo(HideAllSelectInner);