@openbraininstitute/morphoviewer 0.0.1 → 0.24.18

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 (373) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +37 -0
  3. package/lib/dist/abstract-canvas.d.ts +37 -0
  4. package/lib/dist/abstract-canvas.d.ts.map +1 -0
  5. package/lib/dist/abstract-canvas.js +131 -0
  6. package/lib/dist/colors.d.ts +34 -0
  7. package/lib/dist/colors.d.ts.map +1 -0
  8. package/lib/dist/colors.js +125 -0
  9. package/lib/dist/components/button-reset-camera/button-reset-camera.d.ts +10 -0
  10. package/lib/dist/components/button-reset-camera/button-reset-camera.d.ts.map +1 -0
  11. package/lib/dist/components/button-reset-camera/button-reset-camera.js +10 -0
  12. package/lib/dist/components/button-reset-camera/button-reset-camera.module.css +10 -0
  13. package/lib/dist/components/button-reset-camera/index.d.ts +2 -0
  14. package/lib/dist/components/button-reset-camera/index.d.ts.map +1 -0
  15. package/lib/dist/components/button-reset-camera/index.js +2 -0
  16. package/lib/dist/components/icons/3d.d.ts +8 -0
  17. package/lib/dist/components/icons/3d.d.ts.map +1 -0
  18. package/lib/dist/components/icons/3d.js +5 -0
  19. package/lib/dist/components/icons/center.d.ts +8 -0
  20. package/lib/dist/components/icons/center.d.ts.map +1 -0
  21. package/lib/dist/components/icons/center.js +5 -0
  22. package/lib/dist/components/icons/close.d.ts +8 -0
  23. package/lib/dist/components/icons/close.d.ts.map +1 -0
  24. package/lib/dist/components/icons/close.js +5 -0
  25. package/lib/dist/components/icons/copy.d.ts +2 -0
  26. package/lib/dist/components/icons/copy.d.ts.map +1 -0
  27. package/lib/dist/components/icons/copy.js +5 -0
  28. package/lib/dist/components/icons/dendrogram-circular.d.ts +2 -0
  29. package/lib/dist/components/icons/dendrogram-circular.d.ts.map +1 -0
  30. package/lib/dist/components/icons/dendrogram-circular.js +5 -0
  31. package/lib/dist/components/icons/dendrogram-straight.d.ts +2 -0
  32. package/lib/dist/components/icons/dendrogram-straight.d.ts.map +1 -0
  33. package/lib/dist/components/icons/dendrogram-straight.js +5 -0
  34. package/lib/dist/components/icons/fullscreen.d.ts +8 -0
  35. package/lib/dist/components/icons/fullscreen.d.ts.map +1 -0
  36. package/lib/dist/components/icons/fullscreen.js +5 -0
  37. package/lib/dist/components/icons/minimize.d.ts +8 -0
  38. package/lib/dist/components/icons/minimize.d.ts.map +1 -0
  39. package/lib/dist/components/icons/minimize.js +5 -0
  40. package/lib/dist/components/icons/pause.d.ts +8 -0
  41. package/lib/dist/components/icons/pause.d.ts.map +1 -0
  42. package/lib/dist/components/icons/pause.js +5 -0
  43. package/lib/dist/components/icons/play.d.ts +8 -0
  44. package/lib/dist/components/icons/play.d.ts.map +1 -0
  45. package/lib/dist/components/icons/play.js +5 -0
  46. package/lib/dist/components/icons/zoom-in.d.ts +8 -0
  47. package/lib/dist/components/icons/zoom-in.d.ts.map +1 -0
  48. package/lib/dist/components/icons/zoom-in.js +5 -0
  49. package/lib/dist/components/icons/zoom-out.d.ts +8 -0
  50. package/lib/dist/components/icons/zoom-out.d.ts.map +1 -0
  51. package/lib/dist/components/icons/zoom-out.js +5 -0
  52. package/lib/dist/components/morpho-viewer-octree/index.d.ts +4 -0
  53. package/lib/dist/components/morpho-viewer-octree/index.d.ts.map +1 -0
  54. package/lib/dist/components/morpho-viewer-octree/index.js +3 -0
  55. package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.d.ts +3 -0
  56. package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.d.ts.map +1 -0
  57. package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.js +31 -0
  58. package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.module.css +70 -0
  59. package/lib/dist/components/morpho-viewer-octree/painter/camera.d.ts +12 -0
  60. package/lib/dist/components/morpho-viewer-octree/painter/camera.d.ts.map +1 -0
  61. package/lib/dist/components/morpho-viewer-octree/painter/camera.js +23 -0
  62. package/lib/dist/components/morpho-viewer-octree/painter/manager.d.ts +23 -0
  63. package/lib/dist/components/morpho-viewer-octree/painter/manager.d.ts.map +1 -0
  64. package/lib/dist/components/morpho-viewer-octree/painter/manager.js +180 -0
  65. package/lib/dist/components/morpho-viewer-octree/tools.d.ts +2 -0
  66. package/lib/dist/components/morpho-viewer-octree/tools.d.ts.map +1 -0
  67. package/lib/dist/components/morpho-viewer-octree/tools.js +9 -0
  68. package/lib/dist/components/morpho-viewer-octree/types.d.ts +19 -0
  69. package/lib/dist/components/morpho-viewer-octree/types.d.ts.map +1 -0
  70. package/lib/dist/components/morpho-viewer-octree/types.js +2 -0
  71. package/lib/dist/components/morpho-viewer-simul/colors.d.ts +2 -0
  72. package/lib/dist/components/morpho-viewer-simul/colors.d.ts.map +1 -0
  73. package/lib/dist/components/morpho-viewer-simul/colors.js +24 -0
  74. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.d.ts +7 -0
  75. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.d.ts.map +1 -0
  76. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.js +12 -0
  77. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.module.css +25 -0
  78. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/index.d.ts +2 -0
  79. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/index.d.ts.map +1 -0
  80. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/index.js +2 -0
  81. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.d.ts +6 -0
  82. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.d.ts.map +1 -0
  83. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.js +50 -0
  84. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.module.css +115 -0
  85. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/hooks.d.ts +2 -0
  86. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/hooks.d.ts.map +1 -0
  87. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/hooks.js +12 -0
  88. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/index.d.ts +2 -0
  89. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/index.d.ts.map +1 -0
  90. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/index.js +2 -0
  91. package/lib/dist/components/morpho-viewer-simul/components/hint/hint.d.ts +8 -0
  92. package/lib/dist/components/morpho-viewer-simul/components/hint/hint.d.ts.map +1 -0
  93. package/lib/dist/components/morpho-viewer-simul/components/hint/hint.js +57 -0
  94. package/lib/dist/components/morpho-viewer-simul/components/hint/hint.module.css +23 -0
  95. package/lib/dist/components/morpho-viewer-simul/components/hint/index.d.ts +2 -0
  96. package/lib/dist/components/morpho-viewer-simul/components/hint/index.d.ts.map +1 -0
  97. package/lib/dist/components/morpho-viewer-simul/components/hint/index.js +2 -0
  98. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/index.d.ts +2 -0
  99. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/index.d.ts.map +1 -0
  100. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/index.js +2 -0
  101. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.d.ts +5 -0
  102. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.d.ts.map +1 -0
  103. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.js +34 -0
  104. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.module.css +5 -0
  105. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-painter.d.ts +19 -0
  106. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-painter.d.ts.map +1 -0
  107. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-painter.js +209 -0
  108. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.d.ts +6 -0
  109. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.d.ts.map +1 -0
  110. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.js +21 -0
  111. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.module.css +20 -0
  112. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/index.d.ts +2 -0
  113. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/index.d.ts.map +1 -0
  114. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/index.js +2 -0
  115. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/index.d.ts +2 -0
  116. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/index.d.ts.map +1 -0
  117. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/index.js +2 -0
  118. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/index.d.ts +2 -0
  119. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/index.d.ts.map +1 -0
  120. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/index.js +2 -0
  121. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.d.ts +6 -0
  122. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.d.ts.map +1 -0
  123. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.js +12 -0
  124. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.module.css +21 -0
  125. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/index.d.ts +2 -0
  126. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/index.d.ts.map +1 -0
  127. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/index.js +2 -0
  128. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.d.ts +8 -0
  129. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.d.ts.map +1 -0
  130. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.js +19 -0
  131. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.module.css +52 -0
  132. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/index.d.ts +2 -0
  133. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/index.d.ts.map +1 -0
  134. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/index.js +2 -0
  135. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.d.ts +6 -0
  136. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.d.ts.map +1 -0
  137. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.js +20 -0
  138. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.module.css +69 -0
  139. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/spiking-controller.d.ts +6 -0
  140. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/spiking-controller.d.ts.map +1 -0
  141. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/spiking-controller.js +13 -0
  142. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/index.d.ts +2 -0
  143. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/index.d.ts.map +1 -0
  144. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/index.js +2 -0
  145. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.d.ts +7 -0
  146. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.d.ts.map +1 -0
  147. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.js +13 -0
  148. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.module.css +60 -0
  149. package/lib/dist/components/morpho-viewer-simul/contants.d.ts +9 -0
  150. package/lib/dist/components/morpho-viewer-simul/contants.d.ts.map +1 -0
  151. package/lib/dist/components/morpho-viewer-simul/contants.js +9 -0
  152. package/lib/dist/components/morpho-viewer-simul/hooks.d.ts +9 -0
  153. package/lib/dist/components/morpho-viewer-simul/hooks.d.ts.map +1 -0
  154. package/lib/dist/components/morpho-viewer-simul/hooks.js +34 -0
  155. package/lib/dist/components/morpho-viewer-simul/index.d.ts +3 -0
  156. package/lib/dist/components/morpho-viewer-simul/index.d.ts.map +1 -0
  157. package/lib/dist/components/morpho-viewer-simul/index.js +3 -0
  158. package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.d.ts +3 -0
  159. package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.d.ts.map +1 -0
  160. package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.js +42 -0
  161. package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.module.css +94 -0
  162. package/lib/dist/components/morpho-viewer-simul/painter/camera.d.ts +18 -0
  163. package/lib/dist/components/morpho-viewer-simul/painter/camera.d.ts.map +1 -0
  164. package/lib/dist/components/morpho-viewer-simul/painter/camera.js +17 -0
  165. package/lib/dist/components/morpho-viewer-simul/painter/index.d.ts +2 -0
  166. package/lib/dist/components/morpho-viewer-simul/painter/index.d.ts.map +1 -0
  167. package/lib/dist/components/morpho-viewer-simul/painter/index.js +2 -0
  168. package/lib/dist/components/morpho-viewer-simul/painter/initializer.d.ts +14 -0
  169. package/lib/dist/components/morpho-viewer-simul/painter/initializer.d.ts.map +1 -0
  170. package/lib/dist/components/morpho-viewer-simul/painter/initializer.js +35 -0
  171. package/lib/dist/components/morpho-viewer-simul/painter/manager.d.ts +99 -0
  172. package/lib/dist/components/morpho-viewer-simul/painter/manager.d.ts.map +1 -0
  173. package/lib/dist/components/morpho-viewer-simul/painter/manager.js +566 -0
  174. package/lib/dist/components/morpho-viewer-simul/painter/math.d.ts +4 -0
  175. package/lib/dist/components/morpho-viewer-simul/painter/math.d.ts.map +1 -0
  176. package/lib/dist/components/morpho-viewer-simul/painter/math.js +33 -0
  177. package/lib/dist/components/morpho-viewer-simul/painter/morphology-data.d.ts +12 -0
  178. package/lib/dist/components/morpho-viewer-simul/painter/morphology-data.d.ts.map +1 -0
  179. package/lib/dist/components/morpho-viewer-simul/painter/morphology-data.js +40 -0
  180. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/index.d.ts +2 -0
  181. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/index.d.ts.map +1 -0
  182. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/index.js +2 -0
  183. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/material-index.d.ts +5 -0
  184. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/material-index.d.ts.map +1 -0
  185. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/material-index.js +14 -0
  186. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/offscreen-painter.d.ts +23 -0
  187. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/offscreen-painter.d.ts.map +1 -0
  188. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/offscreen-painter.js +84 -0
  189. package/lib/dist/components/morpho-viewer-simul/painter/painters/contants.d.ts +2 -0
  190. package/lib/dist/components/morpho-viewer-simul/painter/painters/contants.d.ts.map +1 -0
  191. package/lib/dist/components/morpho-viewer-simul/painter/painters/contants.js +12 -0
  192. package/lib/dist/components/morpho-viewer-simul/painter/painters/highlight.d.ts +6 -0
  193. package/lib/dist/components/morpho-viewer-simul/painter/painters/highlight.d.ts.map +1 -0
  194. package/lib/dist/components/morpho-viewer-simul/painter/painters/highlight.js +29 -0
  195. package/lib/dist/components/morpho-viewer-simul/painter/painters/index.d.ts +2 -0
  196. package/lib/dist/components/morpho-viewer-simul/painter/painters/index.d.ts.map +1 -0
  197. package/lib/dist/components/morpho-viewer-simul/painter/painters/index.js +2 -0
  198. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/cursor.d.ts +12 -0
  199. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/cursor.d.ts.map +1 -0
  200. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/cursor.js +34 -0
  201. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/fill.d.ts +15 -0
  202. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/fill.d.ts.map +1 -0
  203. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/fill.js +85 -0
  204. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/index.d.ts +2 -0
  205. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/index.d.ts.map +1 -0
  206. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/index.js +2 -0
  207. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/texture.d.ts +3 -0
  208. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/texture.d.ts.map +1 -0
  209. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/texture.js +20 -0
  210. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/index.d.ts +2 -0
  211. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/index.d.ts.map +1 -0
  212. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/index.js +2 -0
  213. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/overlay.d.ts +20 -0
  214. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/overlay.d.ts.map +1 -0
  215. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/overlay.js +114 -0
  216. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/ticks.d.ts +24 -0
  217. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/ticks.d.ts.map +1 -0
  218. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/ticks.js +127 -0
  219. package/lib/dist/components/morpho-viewer-simul/painter/painters/painter.d.ts +28 -0
  220. package/lib/dist/components/morpho-viewer-simul/painter/painters/painter.d.ts.map +1 -0
  221. package/lib/dist/components/morpho-viewer-simul/painter/painters/painter.js +136 -0
  222. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/index.d.ts +2 -0
  223. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/index.d.ts.map +1 -0
  224. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/index.js +2 -0
  225. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/spiking.d.ts +26 -0
  226. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/spiking.d.ts.map +1 -0
  227. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/spiking.js +116 -0
  228. package/lib/dist/components/morpho-viewer-simul/painter/painters/synapses.d.ts +12 -0
  229. package/lib/dist/components/morpho-viewer-simul/painter/painters/synapses.d.ts.map +1 -0
  230. package/lib/dist/components/morpho-viewer-simul/painter/painters/synapses.js +87 -0
  231. package/lib/dist/components/morpho-viewer-simul/painter/segments.d.ts +5 -0
  232. package/lib/dist/components/morpho-viewer-simul/painter/segments.d.ts.map +1 -0
  233. package/lib/dist/components/morpho-viewer-simul/painter/segments.js +58 -0
  234. package/lib/dist/components/morpho-viewer-simul/painter/soma.d.ts +9 -0
  235. package/lib/dist/components/morpho-viewer-simul/painter/soma.d.ts.map +1 -0
  236. package/lib/dist/components/morpho-viewer-simul/painter/soma.js +44 -0
  237. package/lib/dist/components/morpho-viewer-simul/painter/spiking-manager.d.ts +44 -0
  238. package/lib/dist/components/morpho-viewer-simul/painter/spiking-manager.d.ts.map +1 -0
  239. package/lib/dist/components/morpho-viewer-simul/painter/spiking-manager.js +164 -0
  240. package/lib/dist/components/morpho-viewer-simul/painter/structure.d.ts +59 -0
  241. package/lib/dist/components/morpho-viewer-simul/painter/structure.d.ts.map +1 -0
  242. package/lib/dist/components/morpho-viewer-simul/painter/structure.js +175 -0
  243. package/lib/dist/components/morpho-viewer-simul/painter/transition.d.ts +41 -0
  244. package/lib/dist/components/morpho-viewer-simul/painter/transition.d.ts.map +1 -0
  245. package/lib/dist/components/morpho-viewer-simul/painter/transition.js +152 -0
  246. package/lib/dist/components/morpho-viewer-simul/painter/tree.d.ts +7 -0
  247. package/lib/dist/components/morpho-viewer-simul/painter/tree.d.ts.map +1 -0
  248. package/lib/dist/components/morpho-viewer-simul/painter/tree.js +96 -0
  249. package/lib/dist/components/morpho-viewer-simul/types/private.d.ts +33 -0
  250. package/lib/dist/components/morpho-viewer-simul/types/private.d.ts.map +1 -0
  251. package/lib/dist/components/morpho-viewer-simul/types/private.js +2 -0
  252. package/lib/dist/components/morpho-viewer-simul/types/public.d.ts +91 -0
  253. package/lib/dist/components/morpho-viewer-simul/types/public.d.ts.map +1 -0
  254. package/lib/dist/components/morpho-viewer-simul/types/public.js +13 -0
  255. package/lib/dist/components/morpho-viewer-simul/utils.d.ts +4 -0
  256. package/lib/dist/components/morpho-viewer-simul/utils.d.ts.map +1 -0
  257. package/lib/dist/components/morpho-viewer-simul/utils.js +25 -0
  258. package/lib/dist/components/morpho-viewer-small-circuit/index.d.ts +3 -0
  259. package/lib/dist/components/morpho-viewer-small-circuit/index.d.ts.map +1 -0
  260. package/lib/dist/components/morpho-viewer-small-circuit/index.js +3 -0
  261. package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.d.ts +3 -0
  262. package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.d.ts.map +1 -0
  263. package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.js +32 -0
  264. package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.module.css +63 -0
  265. package/lib/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts +13 -0
  266. package/lib/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts.map +1 -0
  267. package/lib/dist/components/morpho-viewer-small-circuit/painter/camera.js +39 -0
  268. package/lib/dist/components/morpho-viewer-small-circuit/painter/index.d.ts +2 -0
  269. package/lib/dist/components/morpho-viewer-small-circuit/painter/index.d.ts.map +1 -0
  270. package/lib/dist/components/morpho-viewer-small-circuit/painter/index.js +2 -0
  271. package/lib/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts +54 -0
  272. package/lib/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts.map +1 -0
  273. package/lib/dist/components/morpho-viewer-small-circuit/painter/manager.js +378 -0
  274. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/index.d.ts +2 -0
  275. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/index.d.ts.map +1 -0
  276. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/index.js +2 -0
  277. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.d.ts +22 -0
  278. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.d.ts.map +1 -0
  279. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.js +61 -0
  280. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.d.ts +7 -0
  281. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.d.ts.map +1 -0
  282. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.js +54 -0
  283. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.d.ts +2 -0
  284. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.d.ts.map +1 -0
  285. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.js +2 -0
  286. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts +20 -0
  287. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts.map +1 -0
  288. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.js +127 -0
  289. package/lib/dist/components/morpho-viewer-small-circuit/types.d.ts +24 -0
  290. package/lib/dist/components/morpho-viewer-small-circuit/types.d.ts.map +1 -0
  291. package/lib/dist/components/morpho-viewer-small-circuit/types.js +2 -0
  292. package/lib/dist/components/tooltip/index.d.ts +2 -0
  293. package/lib/dist/components/tooltip/index.d.ts.map +1 -0
  294. package/lib/dist/components/tooltip/index.js +2 -0
  295. package/lib/dist/components/tooltip/tooltip.d.ts +14 -0
  296. package/lib/dist/components/tooltip/tooltip.d.ts.map +1 -0
  297. package/lib/dist/components/tooltip/tooltip.js +10 -0
  298. package/lib/dist/components/tooltip/tooltip.module.css +74 -0
  299. package/lib/dist/gizmo/gizmo-canvas.d.ts +17 -0
  300. package/lib/dist/gizmo/gizmo-canvas.d.ts.map +1 -0
  301. package/lib/dist/gizmo/gizmo-canvas.js +98 -0
  302. package/lib/dist/gizmo/index.d.ts +2 -0
  303. package/lib/dist/gizmo/index.d.ts.map +1 -0
  304. package/lib/dist/gizmo/index.js +2 -0
  305. package/lib/dist/gizmo/painter/shader.frag.d.ts +2 -0
  306. package/lib/dist/gizmo/painter/shader.frag.d.ts.map +1 -0
  307. package/lib/dist/gizmo/painter/shader.frag.js +19 -0
  308. package/lib/dist/gizmo/painter/shader.vert.d.ts +2 -0
  309. package/lib/dist/gizmo/painter/shader.vert.d.ts.map +1 -0
  310. package/lib/dist/gizmo/painter/shader.vert.js +26 -0
  311. package/lib/dist/gizmo/painter/tips.d.ts +13 -0
  312. package/lib/dist/gizmo/painter/tips.d.ts.map +1 -0
  313. package/lib/dist/gizmo/painter/tips.js +85 -0
  314. package/lib/dist/index.d.ts +16 -0
  315. package/lib/dist/index.d.ts.map +1 -0
  316. package/lib/dist/index.js +14 -0
  317. package/lib/dist/morphology/morphology-canvas.d.ts +64 -0
  318. package/lib/dist/morphology/morphology-canvas.d.ts.map +1 -0
  319. package/lib/dist/morphology/morphology-canvas.js +275 -0
  320. package/lib/dist/morphology/painter/factory.d.ts +7 -0
  321. package/lib/dist/morphology/painter/factory.d.ts.map +1 -0
  322. package/lib/dist/morphology/painter/factory.js +22 -0
  323. package/lib/dist/morphology/painter/index.d.ts +2 -0
  324. package/lib/dist/morphology/painter/index.d.ts.map +1 -0
  325. package/lib/dist/morphology/painter/index.js +2 -0
  326. package/lib/dist/morphology/painter/nodes.d.ts +21 -0
  327. package/lib/dist/morphology/painter/nodes.d.ts.map +1 -0
  328. package/lib/dist/morphology/painter/nodes.js +134 -0
  329. package/lib/dist/morphology/painter/painter.d.ts +31 -0
  330. package/lib/dist/morphology/painter/painter.d.ts.map +1 -0
  331. package/lib/dist/morphology/painter/painter.js +104 -0
  332. package/lib/dist/morphology/painter/segments.d.ts +23 -0
  333. package/lib/dist/morphology/painter/segments.d.ts.map +1 -0
  334. package/lib/dist/morphology/painter/segments.js +96 -0
  335. package/lib/dist/morphology/painter/textures.d.ts +10 -0
  336. package/lib/dist/morphology/painter/textures.d.ts.map +1 -0
  337. package/lib/dist/morphology/painter/textures.js +53 -0
  338. package/lib/dist/nrrd/get-header-length.d.ts +2 -0
  339. package/lib/dist/nrrd/get-header-length.d.ts.map +1 -0
  340. package/lib/dist/nrrd/get-header-length.js +48 -0
  341. package/lib/dist/nrrd/header.d.ts +28 -0
  342. package/lib/dist/nrrd/header.d.ts.map +1 -0
  343. package/lib/dist/nrrd/header.js +122 -0
  344. package/lib/dist/nrrd/index.d.ts +3 -0
  345. package/lib/dist/nrrd/index.d.ts.map +1 -0
  346. package/lib/dist/nrrd/index.js +33 -0
  347. package/lib/dist/nrrd/volume.d.ts +29 -0
  348. package/lib/dist/nrrd/volume.d.ts.map +1 -0
  349. package/lib/dist/nrrd/volume.js +129 -0
  350. package/lib/dist/package.json +96 -0
  351. package/lib/dist/parser/for-each-line.d.ts +2 -0
  352. package/lib/dist/parser/for-each-line.d.ts.map +1 -0
  353. package/lib/dist/parser/for-each-line.js +14 -0
  354. package/lib/dist/parser/swc.d.ts +14 -0
  355. package/lib/dist/parser/swc.d.ts.map +1 -0
  356. package/lib/dist/parser/swc.js +49 -0
  357. package/lib/dist/scalebar.d.ts +11 -0
  358. package/lib/dist/scalebar.d.ts.map +1 -0
  359. package/lib/dist/scalebar.js +25 -0
  360. package/lib/dist/tools/cache-lru.d.ts +18 -0
  361. package/lib/dist/tools/cache-lru.d.ts.map +1 -0
  362. package/lib/dist/tools/cache-lru.js +53 -0
  363. package/lib/dist/tools/morphology-to-tree.d.ts +4 -0
  364. package/lib/dist/tools/morphology-to-tree.d.ts.map +1 -0
  365. package/lib/dist/tools/morphology-to-tree.js +89 -0
  366. package/lib/dist/types.d.ts +9 -0
  367. package/lib/dist/types.d.ts.map +1 -0
  368. package/lib/dist/types.js +9 -0
  369. package/lib/dist/utils.d.ts +16 -0
  370. package/lib/dist/utils.d.ts.map +1 -0
  371. package/lib/dist/utils.js +56 -0
  372. package/package.json +43 -15
  373. package/package.json~ +0 -16
@@ -0,0 +1,180 @@
1
+ import { __awaiter } from "tslib";
2
+ import { TgdContext, TgdControllerCameraOrbit, TgdDataGlb, TgdGeometryBox, TgdMaterialDiffuse, TgdPainterClear, TgdPainterGroup, TgdPainterLOD, TgdPainterMesh, TgdPainterMeshGltf, TgdPainterState, TgdQuat, TgdVec3, tgdActionCreateCameraInterpolation, tgdEasingFunctionInOutQuad, } from "@tolokoban/tgd";
3
+ import React from "react";
4
+ import { morphoViewerOctreeBlockToId } from "../tools.js";
5
+ import { makeCamera } from "./camera.js";
6
+ export class OctreeManager {
7
+ constructor() {
8
+ this.loadInfo = null;
9
+ this.loadBlock = null;
10
+ this._meshId = "";
11
+ this._canvas = null;
12
+ this.context = null;
13
+ this.group = new TgdPainterGroup({ name: "Group" });
14
+ this.promisedInfo = null;
15
+ this.availableBlocks = new Set();
16
+ this.material = new TgdMaterialDiffuse({
17
+ lockLightsToCamera: true,
18
+ color: [0.8, 0.7, 0.4, 1],
19
+ });
20
+ this.orbit = null;
21
+ this.initialCameraState = { width: 1, height: 1, near: 1, far: 10, position: new TgdVec3() };
22
+ this.animations = [];
23
+ this.resetMeshLoading = () => __awaiter(this, void 0, void 0, function* () {
24
+ var _a, _b;
25
+ const { loadInfo } = this;
26
+ if (!loadInfo)
27
+ return;
28
+ const { group } = this;
29
+ const promisedInfo = (_a = this.promisedInfo) !== null && _a !== void 0 ? _a : loadInfo(this.meshId);
30
+ this.promisedInfo = promisedInfo;
31
+ const { context } = this;
32
+ if (!context)
33
+ return;
34
+ const info = yield promisedInfo;
35
+ if (!info)
36
+ return;
37
+ const { camera, width, height } = makeCamera(info.bbox);
38
+ console.log("🐞 [manager@128] camera.near, camera.far =", camera.near, camera.far);
39
+ context.camera = camera;
40
+ this.initialCameraState = {
41
+ width,
42
+ height,
43
+ position: new TgdVec3(camera.transfo.position),
44
+ near: camera.near,
45
+ far: camera.far,
46
+ };
47
+ (_b = this.orbit) === null || _b === void 0 ? void 0 : _b.detach();
48
+ this.orbit = new TgdControllerCameraOrbit(context, {
49
+ inertiaOrbit: 1000,
50
+ onZoomRequest: (event) => {
51
+ console.log("🐞 [manager@142] event.zoom =", event.zoom);
52
+ console.log("🐞 [manager@143] camera.zoom =", camera.zoom);
53
+ return true;
54
+ },
55
+ });
56
+ this.availableBlocks.clear();
57
+ for (const blockId of info.blockIds) {
58
+ this.availableBlocks.add(blockId);
59
+ }
60
+ const lod = new TgdPainterLOD(context, {
61
+ bbox: info.bbox,
62
+ subdivisions: 4,
63
+ surfaceThreshold: 1,
64
+ factory: (x, y, z, level) => __awaiter(this, void 0, void 0, function* () {
65
+ const { loadBlock, context } = this;
66
+ if (!loadBlock || !context)
67
+ return null;
68
+ const blockId = morphoViewerOctreeBlockToId(x, y, z, level);
69
+ if (!this.availableBlocks.has(blockId)) {
70
+ console.log(`Block "${blockId}" is not available!`);
71
+ return null;
72
+ }
73
+ const block = yield loadBlock(this.meshId, blockId);
74
+ if ((block === null || block === void 0 ? void 0 : block.type) === "glb") {
75
+ const asset = yield TgdDataGlb.parse(block.data);
76
+ const mesh = new TgdPainterMeshGltf(context, {
77
+ asset,
78
+ material: this.material,
79
+ });
80
+ const bbox = mesh.computeBoundingBox();
81
+ console.log("🐞 [manager@130] bbox =", bbox);
82
+ return mesh;
83
+ }
84
+ return null;
85
+ }),
86
+ });
87
+ group.removeAll();
88
+ group.add(lod);
89
+ context.paint();
90
+ });
91
+ }
92
+ resetCamera() {
93
+ const { context } = this;
94
+ if (!context)
95
+ return;
96
+ context.animCancelArray(this.animations);
97
+ this.animations = context.animSchedule({
98
+ duration: 0.3,
99
+ easingFunction: tgdEasingFunctionInOutQuad,
100
+ action: tgdActionCreateCameraInterpolation(context.camera, {
101
+ zoom: 1,
102
+ position: this.initialCameraState.position,
103
+ orientation: new TgdQuat(),
104
+ }),
105
+ });
106
+ }
107
+ get meshId() {
108
+ return this._meshId;
109
+ }
110
+ set meshId(meshId) {
111
+ if (this._meshId === meshId)
112
+ return;
113
+ this._meshId = meshId;
114
+ this.promisedInfo = null;
115
+ this.resetMeshLoading();
116
+ }
117
+ get canvas() {
118
+ return this._canvas;
119
+ }
120
+ set canvas(canvas) {
121
+ var _a, _b;
122
+ if (this._canvas === canvas)
123
+ return;
124
+ this._canvas = canvas;
125
+ (_a = this.context) === null || _a === void 0 ? void 0 : _a.delete();
126
+ (_b = this.orbit) === null || _b === void 0 ? void 0 : _b.detach();
127
+ if (!canvas)
128
+ return;
129
+ const context = (this.context = new TgdContext(canvas, {
130
+ antialias: true,
131
+ alpha: false,
132
+ depth: true,
133
+ }));
134
+ context.inputs.pointer.eventTapMultiple.addListener(() => {
135
+ const zoom = context.camera.zoom;
136
+ console.log("🐞 [manager@102] zoom =", zoom);
137
+ context.paint();
138
+ });
139
+ context.add(new TgdPainterClear(context, {
140
+ color: [0, 0, 0, 1],
141
+ depth: 1,
142
+ }), new TgdPainterState(context, {
143
+ depth: "less",
144
+ cull: "back",
145
+ children: [this.group],
146
+ }));
147
+ this.group.removeAll();
148
+ this.resetMeshLoading();
149
+ }
150
+ }
151
+ function makeDebugMesh(context, bbox, material) {
152
+ const vecMin = new TgdVec3(bbox.min);
153
+ const vecMax = new TgdVec3(bbox.max);
154
+ const vecDim = new TgdVec3(vecMax).subtract(vecMin);
155
+ const center = new TgdVec3(vecMax).add(vecMin).scale(0.5);
156
+ return new TgdPainterMesh(context, {
157
+ geometry: new TgdGeometryBox({
158
+ center,
159
+ sizeX: vecDim.x,
160
+ sizeY: vecDim.y,
161
+ sizeZ: vecDim.z,
162
+ }),
163
+ material,
164
+ });
165
+ }
166
+ export function useOctreeManager({ meshId, loadInfo, loadBlock, }) {
167
+ const ref = React.useRef(null);
168
+ if (!ref.current)
169
+ ref.current = new OctreeManager();
170
+ React.useEffect(() => {
171
+ const manager = ref.current;
172
+ if (!manager)
173
+ return;
174
+ manager.loadInfo = loadInfo;
175
+ manager.loadBlock = loadBlock;
176
+ manager.meshId = meshId;
177
+ }, [meshId, loadInfo, loadBlock]);
178
+ return ref.current;
179
+ }
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vcnBoby12aWV3ZXItb2N0cmVlL3BhaW50ZXIvbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUlMLFVBQVUsRUFDVix3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLGNBQWMsRUFFZCxrQkFBa0IsRUFFbEIsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsT0FBTyxFQUNQLE9BQU8sRUFDUCxrQ0FBa0MsRUFDbEMsMEJBQTBCLEdBQzNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRDLE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBQ1MsYUFBUSxHQUErQyxJQUFJLENBQUM7UUFDNUQsY0FBUyxHQUFnRCxJQUFJLENBQUM7UUFFN0QsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixZQUFPLEdBQTZCLElBQUksQ0FBQztRQUN6QyxZQUFPLEdBQXNCLElBQUksQ0FBQztRQUN6QixVQUFLLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN4RCxpQkFBWSxHQUEyRCxJQUFJLENBQUM7UUFDbkUsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQ3BDLGFBQVEsR0FBRyxJQUFJLGtCQUFrQixDQUFDO1lBQ2pELGtCQUFrQixFQUFFLElBQUk7WUFDeEIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQzFCLENBQUMsQ0FBQztRQUNLLFVBQUss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
@@ -0,0 +1,2 @@
1
+ export declare function morphoViewerOctreeBlockToId(x: number, y: number, z: number, level: number): string;
2
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-octree/tools.ts"],"names":[],"mappings":"AAAA,wBAAgB,2BAA2B,CACzC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,GACZ,MAAM,CAIR"}
@@ -0,0 +1,9 @@
1
+ export function morphoViewerOctreeBlockToId(x, y, z, level) {
2
+ if (level < 1)
3
+ return "0";
4
+ return `${toBin(x, level)}${toBin(y, level)}${toBin(z, level)}`;
5
+ }
6
+ function toBin(value, level) {
7
+ return value.toString(2).padStart(level, "0");
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb3JwaG8tdmlld2VyLW9jdHJlZS90b29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLENBQVMsRUFDVCxDQUFTLEVBQ1QsQ0FBUyxFQUNULEtBQWE7SUFFYixJQUFJLEtBQUssR0FBRyxDQUFDO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFFMUIsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQVMsS0FBSyxDQUFDLEtBQWEsRUFBRSxLQUFhO0lBQ3pDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2hELENBQUMifQ==
@@ -0,0 +1,19 @@
1
+ import type { ArrayNumber3 } from "@tolokoban/tgd";
2
+ export type MorphoViewerOctreeMeshType = {
3
+ type: "glb";
4
+ data: ArrayBuffer;
5
+ };
6
+ export interface MorphoViewerOctreeInfo {
7
+ bbox: {
8
+ min: ArrayNumber3;
9
+ max: ArrayNumber3;
10
+ };
11
+ blockIds: string[];
12
+ }
13
+ export interface MorphoViewerOctreeProps {
14
+ className?: string;
15
+ meshId: string;
16
+ loadInfo(meshId: string): Promise<MorphoViewerOctreeInfo | null>;
17
+ loadBlock(meshId: string, blockId: string): Promise<MorphoViewerOctreeMeshType | null>;
18
+ }
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-octree/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE;QACJ,GAAG,EAAE,YAAY,CAAC;QAClB,GAAG,EAAE,YAAY,CAAC;KACnB,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAKjE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAC;CACxF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb3JwaG8tdmlld2VyLW9jdHJlZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,2 @@
1
+ export declare function getColorFromGeneratedPalette(index: number): string;
2
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-simul/colors.ts"],"names":[],"mappings":"AAAA,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,UAEzD"}
@@ -0,0 +1,24 @@
1
+ export function getColorFromGeneratedPalette(index) {
2
+ return SimulationColors[index % SimulationColors.length];
3
+ }
4
+ const SimulationColors = [
5
+ "#32C14E",
6
+ "#8AB5FF",
7
+ "#DC51FF",
8
+ "#B3A26E",
9
+ "#F02124",
10
+ "#32D4C1",
11
+ "#814BFF",
12
+ "#E3F750",
13
+ "#D653C5",
14
+ "#AD7A14",
15
+ "#87BB74",
16
+ "#DFC6AE",
17
+ "#5778FF",
18
+ "#81ADE0",
19
+ "#99FF80",
20
+ "#FFCF30",
21
+ "#5193BA",
22
+ "#DD63CF",
23
+ ];
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zaW11bC9jb2xvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLDRCQUE0QixDQUFDLEtBQWE7SUFDeEQsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0NBQ1YsQ0FBQyJ9
@@ -0,0 +1,7 @@
1
+ import { PainterManager } from "../../painter";
2
+ export interface ModeSelectorProps {
3
+ className?: string;
4
+ painterManager: PainterManager;
5
+ }
6
+ export default function ModeSelector({ className, painterManager }: ModeSelectorProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=ModeSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModeSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI/C,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,iBAAiB,2CAsBpF"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { classNames } from "./../../../../utils.js";
4
+ import { Icon3D } from "../../../icons/3d.js";
5
+ import { IconDendrogramStraight } from "../../../icons/dendrogram-straight.js";
6
+ import styles from "./ModeSelector.module.css";
7
+ export default function ModeSelector({ className, painterManager }) {
8
+ const [mode, setMode] = React.useState(painterManager.mode);
9
+ React.useMemo(() => (painterManager.mode = mode), [painterManager, mode]);
10
+ return (_jsxs("div", { className: classNames(className, styles.modeSelector), children: [_jsx("button", { type: "button", className: classNames(styles.button, mode === "3d" && styles.selected), onClick: () => setMode("3d"), children: _jsx(Icon3D, {}) }), _jsx("button", { type: "button", className: classNames(styles.button, mode === "dendrogram" && styles.selected), onClick: () => setMode("dendrogram"), children: _jsx(IconDendrogramStraight, {}) })] }));
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZVNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zaW11bC9jb21wb25lbnRzL01vZGVTZWxlY3Rvci9Nb2RlU2VsZWN0b3IudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVyQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFJNUUsT0FBTyxNQUFNLE1BQU0sMkJBQTJCLENBQUM7QUFPL0MsTUFBTSxDQUFDLE9BQU8sVUFBVSxZQUFZLENBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFxQjtJQUNuRixNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQXdCLENBQUMsQ0FBQztJQUNoRixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRTFFLE9BQU8sQ0FDTCxlQUFLLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFDeEQsaUJBQ0UsSUFBSSxFQUFDLFFBQVEsRUFDYixTQUFTLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBRTVCLEtBQUMsTUFBTSxLQUFHLEdBQ0gsRUFDVCxpQkFDRSxJQUFJLEVBQUMsUUFBUSxFQUNiLFNBQVMsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEtBQUssWUFBWSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFDOUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFFcEMsS0FBQyxzQkFBc0IsS0FBRyxHQUNuQixJQUNMLENBQ1AsQ0FBQztBQUNKLENBQUMifQ==
@@ -0,0 +1,25 @@
1
+ div.modeSelector {
2
+ display: flex;
3
+ flex-wrap: nowrap;
4
+ flex-direction: row;
5
+ justify-content: flex-start;
6
+ align-items: stretch;
7
+ gap: 2px;
8
+
9
+ > button.button {
10
+ border-radius: 0;
11
+
12
+ &.selected {
13
+ background-color: #adf;
14
+ color: #000;
15
+ }
16
+
17
+ &:first-child {
18
+ border-radius: 8px 0 0 8px;
19
+ }
20
+
21
+ &:last-child {
22
+ border-radius: 0 8px 8px 0;
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from "./ModeSelector";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-simul/components/ModeSelector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default } from "./ModeSelector.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb3JwaG8tdmlld2VyLXNpbXVsL2NvbXBvbmVudHMvTW9kZVNlbGVjdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQyJ9
@@ -0,0 +1,6 @@
1
+ import type { MorphoViewerSimulContentProps } from "../../types/private";
2
+ export interface AddRecordingDialogProps extends MorphoViewerSimulContentProps {
3
+ className?: string;
4
+ }
5
+ export default function AddRecordingDialog(props: AddRecordingDialogProps): import("react/jsx-runtime").JSX.Element | null;
6
+ //# sourceMappingURL=add-recording-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-recording-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAIzE,MAAM,WAAW,uBAAwB,SAAQ,6BAA6B;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,kDA0ExE"}
@@ -0,0 +1,50 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { IconClose } from "./../../../icons/close.js";
4
+ import { classNames, useEventValue } from "./../../../../utils.js";
5
+ import { useRecordingsAndInjection } from "../../hooks.js";
6
+ import { HintContent } from "../hint/index.js";
7
+ import { useEscapeHandler } from "./hooks.js";
8
+ import styles from "./add-recording-dialog.module.css";
9
+ export default function AddRecordingDialog(props) {
10
+ const { className, painterManager } = props;
11
+ const data = useRecordingsAndInjection(props);
12
+ const [open, setOpen] = React.useState(false);
13
+ const { offset, item, y } = useEventValue({
14
+ x: 0,
15
+ y: 0,
16
+ item: null,
17
+ offset: 0,
18
+ }, painterManager.eventTap);
19
+ React.useEffect(() => {
20
+ var _a, _b;
21
+ if (item) {
22
+ (_a = props.onSegmentClick) === null || _a === void 0 ? void 0 : _a.call(props, {
23
+ segment: item.node,
24
+ parent: (_b = item.parent) === null || _b === void 0 ? void 0 : _b.node,
25
+ });
26
+ setOpen(true);
27
+ }
28
+ }, [item]);
29
+ const handleClose = () => setOpen(false);
30
+ const handleMoveInjection = () => {
31
+ handleClose();
32
+ if (item) {
33
+ data.moveInjection(item.sectionName);
34
+ }
35
+ };
36
+ const handleAddRecording = () => {
37
+ handleClose();
38
+ if (item) {
39
+ data.addRecording(item.sectionName, offset);
40
+ }
41
+ };
42
+ useEscapeHandler(handleClose);
43
+ if (!item)
44
+ return null;
45
+ return (_jsx("div", { className: classNames(className, styles.addRecordingDialog, open && styles.open), title: `y = ${y}`, onClick: handleClose, role: "alertdialog", children: _jsxs("div", { className: y < 0 ? styles.top : styles.bottom, onClick: (evt) => {
46
+ evt.preventDefault();
47
+ evt.stopPropagation();
48
+ }, role: "dialog", children: [_jsxs("header", { children: [_jsxs("h2", { children: [item.sectionName, "[", item.segmentIndex, "] ", _jsxs("small", { children: ["(", offset.toFixed(2), ")"] })] }), _jsxs("button", { type: "button", onClick: handleClose, children: [_jsx(IconClose, {}), _jsx("div", { children: "Cancel" })] })] }), _jsx(HintContent, { painterManager: painterManager }), _jsxs("div", { className: styles.buttons, children: [_jsx("button", { type: "button", onClick: handleMoveInjection, children: "Move injection here" }), _jsx("button", { type: "button", onClick: handleAddRecording, children: "Add recording" })] })] }) }));
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlY29yZGluZy1kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb3JwaG8tdmlld2VyLXNpbXVsL2NvbXBvbmVudHMvYWRkLXJlY29yZGluZy1kaWFsb2cvYWRkLXJlY29yZGluZy1kaWFsb2cudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXBELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUkzQyxPQUFPLE1BQU0sTUFBTSxtQ0FBbUMsQ0FBQztBQU12RCxNQUFNLENBQUMsT0FBTyxVQUFVLGtCQUFrQixDQUFDLEtBQThCO0lBQ3ZFLE1BQU0sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQzVDLE1BQU0sSUFBSSxHQUFHLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQ3ZDO1FBQ0UsQ0FBQyxFQUFFLENBQUM7UUFDSixDQUFDLEVBQUUsQ0FBQztRQUNKLElBQUksRUFBRSxJQUFJO1FBQ1YsTUFBTSxFQUFFLENBQUM7S0FDVixFQUNELGNBQWMsQ0FBQyxRQUFRLENBQ3hCLENBQUM7SUFDRixLQUFLLENB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
@@ -0,0 +1,115 @@
1
+ .addRecordingDialog {
2
+ position: absolute;
3
+ left: 0;
4
+ top: 0;
5
+ width: 100%;
6
+ height: 100%;
7
+ display: grid;
8
+ place-items: center;
9
+ background-color: #0001;
10
+ z-index: 10;
11
+ opacity: 0;
12
+ pointer-events: none;
13
+ transition: all 0.3s;
14
+
15
+ &.open {
16
+ opacity: 1;
17
+ pointer-events: all;
18
+ }
19
+
20
+ > div {
21
+ background-color: #3333;
22
+ backdrop-filter: blur(4px);
23
+ color: #fff;
24
+ padding: 1em;
25
+ border-radius: 0.5em;
26
+ border: 2px solid #fff4;
27
+ transition: all 0.3s;
28
+ margin: 4px;
29
+
30
+ &.top {
31
+ place-self: start center;
32
+ }
33
+
34
+ &.bottom {
35
+ place-self: end center;
36
+ }
37
+
38
+ > header {
39
+ width: 100%;
40
+ display: flex;
41
+ flex-wrap: nowrap;
42
+ flex-direction: row;
43
+ justify-content: space-between;
44
+ align-items: center;
45
+ gap: 1em;
46
+ margin-top: -0.5em;
47
+
48
+ > h2 {
49
+ font-size: 150%;
50
+ flex: 1 1 auto;
51
+ margin: 0;
52
+
53
+ > small {
54
+ font-weight: normal;
55
+ }
56
+ }
57
+
58
+ > button {
59
+ flex: 0 0 auto;
60
+ white-space: nowrap;
61
+ font: inherit;
62
+ font-weight: bold;
63
+ color: #7bf;
64
+ background: none;
65
+ border: none;
66
+ display: flex;
67
+ flex-wrap: nowrap;
68
+ flex-direction: row;
69
+ justify-content: flex-start;
70
+ align-items: center;
71
+ gap: 0.5em;
72
+
73
+ &:hover {
74
+ text-decoration: underline;
75
+ }
76
+ }
77
+ }
78
+
79
+ hr {
80
+ margin: 2em 0;
81
+ width: 100%;
82
+ height: 1px;
83
+ border: none;
84
+ background: linear-gradient(to right, transparent, currentColor, transparent);
85
+ }
86
+
87
+ .buttons {
88
+ display: grid;
89
+ grid-template-columns: 1fr 1fr;
90
+ gap: 1em;
91
+
92
+ > button {
93
+ font: inherit;
94
+ border: none;
95
+ font-weight: bolder;
96
+ text-align: center;
97
+ display: grid;
98
+ place-items: center;
99
+ height: 2.5em;
100
+ border-radius: 99vmax;
101
+ background-color: #05a;
102
+ border: 1px solid #fff7;
103
+ color: #fffe;
104
+ padding: 0 1em;
105
+ box-shadow: 0 0.125em 0.25em #000;
106
+ transition: all 0.3s;
107
+
108
+ &:hover,
109
+ &:active {
110
+ filter: brightness(120%);
111
+ }
112
+ }
113
+ }
114
+ }
115
+ }
@@ -0,0 +1,2 @@
1
+ export declare function useEscapeHandler(callback: () => void): void;
2
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-simul/components/add-recording-dialog/hooks.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,IAAI,QAQpD"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ export function useEscapeHandler(callback) {
3
+ React.useEffect(() => {
4
+ const listener = (evt) => {
5
+ if (evt.key === "Escape")
6
+ callback();
7
+ };
8
+ globalThis.document.addEventListener("keydown", listener);
9
+ return () => globalThis.document.removeEventListener("keydown", listener);
10
+ }, [callback]);
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb3JwaG8tdmlld2VyLXNpbXVsL2NvbXBvbmVudHMvYWRkLXJlY29yZGluZy1kaWFsb2cvaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxRQUFvQjtJQUNuRCxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNuQixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQWtCLEVBQUUsRUFBRTtZQUN0QyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssUUFBUTtnQkFBRSxRQUFRLEVBQUUsQ0FBQztRQUN2QyxDQUFDLENBQUM7UUFDRixVQUFVLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxRCxPQUFPLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzVFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDakIsQ0FBQyJ9
@@ -0,0 +1,2 @@
1
+ export { default } from "./add-recording-dialog";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-simul/components/add-recording-dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default } from "./add-recording-dialog.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb3JwaG8tdmlld2VyLXNpbXVsL2NvbXBvbmVudHMvYWRkLXJlY29yZGluZy1kaWFsb2cvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDIn0=
@@ -0,0 +1,8 @@
1
+ import type { PainterManager } from "../../painter";
2
+ export interface HintProps {
3
+ className?: string;
4
+ painterManager: PainterManager;
5
+ }
6
+ export declare function HintPanel({ className, painterManager }: HintProps): import("react/jsx-runtime").JSX.Element | null;
7
+ export declare function HintContent({ className, painterManager }: HintProps): import("react/jsx-runtime").JSX.Element | null;
8
+ //# sourceMappingURL=hint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hint.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-simul/components/hint/hint.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,SAAS,kDAiBjE;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,SAAS,kDA0BnE"}
@@ -0,0 +1,57 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { classNames, useEventValue } from "./../../../../utils.js";
3
+ import { MorphoViewerTreeItemType } from "../../types/public.js";
4
+ import styles from "./hint.module.css";
5
+ export function HintPanel({ className, painterManager }) {
6
+ const hovered = useEventValue({ x: 0, y: 0, item: null, offset: 0 }, painterManager.eventHover);
7
+ const visible = useEventValue(false, painterManager.eventHintVisible);
8
+ if (!visible || !hovered.item) {
9
+ return null;
10
+ }
11
+ return (_jsx("div", { className: classNames(className, styles.hintPanel), style: hovered.y > 0 ? { bottom: "1em" } : { top: "4em" }, children: _jsx(HintContent, { painterManager: painterManager }) }, "hint"));
12
+ }
13
+ export function HintContent({ className, painterManager }) {
14
+ const hovered = painterManager.hoverItem;
15
+ if (!hovered.item) {
16
+ return null;
17
+ }
18
+ const { item, offset } = hovered;
19
+ return (_jsxs("div", { className: classNames(className, styles.hintContent), children: [_jsx("div", { children: "Section list:" }), _jsx("div", { children: resolveSectionList(hovered.item) }), _jsx("div", { children: "Section:" }), _jsx("div", { children: resolveSectionName(hovered.item) }), _jsx("div", { children: "Section index:" }), _jsx("div", { children: item.sectionIndex }), _jsx("div", { children: "Segment index:" }), _jsx("div", { children: item.segmentIndex }), _jsx("div", { children: "Number of segments:" }), _jsx("div", { children: item.segmentsCount }), _jsx("div", { children: "Offset:" }), _jsx("div", { children: offset.toFixed(3) }), _jsx("div", { children: "Distance from soma:" }), _jsxs("div", { children: [(item.distanceFromSoma + offset * item.sectionLength).toFixed(2), " \u00B5m"] })] }));
20
+ }
21
+ function resolveSectionName(item) {
22
+ switch (item.type) {
23
+ case MorphoViewerTreeItemType.Axon:
24
+ return "Axon";
25
+ case MorphoViewerTreeItemType.Soma:
26
+ return "Soma";
27
+ case MorphoViewerTreeItemType.Dendrite:
28
+ return "Dendrite";
29
+ case MorphoViewerTreeItemType.BasalDendrite:
30
+ return "Basal Dendrite";
31
+ case MorphoViewerTreeItemType.ApicalDendrite:
32
+ return "Apical dendrite";
33
+ case MorphoViewerTreeItemType.Myelin:
34
+ return "Myelin";
35
+ default:
36
+ return "Unknown";
37
+ }
38
+ }
39
+ function resolveSectionList(item) {
40
+ switch (item.type) {
41
+ case MorphoViewerTreeItemType.Axon:
42
+ return "Axonal";
43
+ case MorphoViewerTreeItemType.Soma:
44
+ return "Somatic";
45
+ case MorphoViewerTreeItemType.Dendrite:
46
+ return "Basal";
47
+ case MorphoViewerTreeItemType.BasalDendrite:
48
+ return "Basal";
49
+ case MorphoViewerTreeItemType.ApicalDendrite:
50
+ return "Apical";
51
+ case MorphoViewerTreeItemType.Myelin:
52
+ return "Myelinated";
53
+ default:
54
+ return resolveSectionName(item);
55
+ }
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vcnBoby12aWV3ZXItc2ltdWwvY29tcG9uZW50cy9oaW50L2hpbnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVwRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU05RCxPQUFPLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQztBQU92QyxNQUFNLFVBQVUsU0FBUyxDQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBYTtJQUNoRSxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hHLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFdEUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLENBQ0wsY0FDRSxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBRWxELEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxZQUV6RCxLQUFDLFdBQVcsSUFBQyxjQUFjLEVBQUUsY0FBYyxHQUFJLElBSDNDLE1BQU0sQ0FJTixDQUNQLENBQUM7QUFD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