react-cheminfo 0.69.0 → 0.71.0

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 (616) hide show
  1. package/README.md +70 -2
  2. package/lib/about/core/providers.d.ts +6 -0
  3. package/lib/about/core/providers.d.ts.map +1 -1
  4. package/lib/about/core/providers.js +7 -0
  5. package/lib/about/core/providers.js.map +1 -1
  6. package/lib/about/ui/AboutProvidedBy.js +34 -0
  7. package/lib/about/ui/AboutProvidedBy.js.map +1 -1
  8. package/lib/chart/ui/useChartPointer.d.ts +9 -1
  9. package/lib/chart/ui/useChartPointer.d.ts.map +1 -1
  10. package/lib/chart/ui/useChartPointer.js +11 -3
  11. package/lib/chart/ui/useChartPointer.js.map +1 -1
  12. package/lib/credits/core/credits.d.ts +41 -0
  13. package/lib/credits/core/credits.d.ts.map +1 -1
  14. package/lib/credits/core/credits.js +50 -0
  15. package/lib/credits/core/credits.js.map +1 -1
  16. package/lib/download/core/drawingMarkup.d.ts +8 -1
  17. package/lib/download/core/drawingMarkup.d.ts.map +1 -1
  18. package/lib/download/core/drawingMarkup.js +13 -1
  19. package/lib/download/core/drawingMarkup.js.map +1 -1
  20. package/lib/download/core/figurePng.d.ts +14 -0
  21. package/lib/download/core/figurePng.d.ts.map +1 -1
  22. package/lib/download/core/figurePng.js +21 -6
  23. package/lib/download/core/figurePng.js.map +1 -1
  24. package/lib/download/core/figureSvg.d.ts.map +1 -1
  25. package/lib/download/core/figureSvg.js +5 -3
  26. package/lib/download/core/figureSvg.js.map +1 -1
  27. package/lib/download/core/figureTarget.d.ts +13 -0
  28. package/lib/download/core/figureTarget.d.ts.map +1 -1
  29. package/lib/download/core/figureTarget.js +25 -5
  30. package/lib/download/core/figureTarget.js.map +1 -1
  31. package/lib/download/core/svgBounds.d.ts +15 -0
  32. package/lib/download/core/svgBounds.d.ts.map +1 -1
  33. package/lib/download/core/svgBounds.js +20 -0
  34. package/lib/download/core/svgBounds.js.map +1 -1
  35. package/lib/download/core/svgToPng.d.ts.map +1 -1
  36. package/lib/download/core/svgToPng.js +4 -2
  37. package/lib/download/core/svgToPng.js.map +1 -1
  38. package/lib/format/core/relativeTime.d.ts +8 -3
  39. package/lib/format/core/relativeTime.d.ts.map +1 -1
  40. package/lib/format/core/relativeTime.js +19 -7
  41. package/lib/format/core/relativeTime.js.map +1 -1
  42. package/lib/host/core/connectHost.d.ts +25 -34
  43. package/lib/host/core/connectHost.d.ts.map +1 -1
  44. package/lib/host/core/connectHost.js +43 -89
  45. package/lib/host/core/connectHost.js.map +1 -1
  46. package/lib/host/core/hostOutputs.d.ts +58 -0
  47. package/lib/host/core/hostOutputs.d.ts.map +1 -0
  48. package/lib/host/core/hostOutputs.js +151 -0
  49. package/lib/host/core/hostOutputs.js.map +1 -0
  50. package/lib/host/core/index.d.ts +9 -3
  51. package/lib/host/core/index.d.ts.map +1 -1
  52. package/lib/host/core/index.js +4 -1
  53. package/lib/host/core/index.js.map +1 -1
  54. package/lib/host/core/irKinds.d.ts +124 -0
  55. package/lib/host/core/irKinds.d.ts.map +1 -0
  56. package/lib/host/core/irKinds.js +46 -0
  57. package/lib/host/core/irKinds.js.map +1 -0
  58. package/lib/host/core/kinds.d.ts +13 -5
  59. package/lib/host/core/kinds.d.ts.map +1 -1
  60. package/lib/host/core/kinds.js +11 -5
  61. package/lib/host/core/kinds.js.map +1 -1
  62. package/lib/host/core/protocol.d.ts +50 -7
  63. package/lib/host/core/protocol.d.ts.map +1 -1
  64. package/lib/host/core/protocol.js +10 -6
  65. package/lib/host/core/protocol.js.map +1 -1
  66. package/lib/host/core/selectInputs.d.ts +37 -0
  67. package/lib/host/core/selectInputs.d.ts.map +1 -0
  68. package/lib/host/core/selectInputs.js +110 -0
  69. package/lib/host/core/selectInputs.js.map +1 -0
  70. package/lib/host/testing/sciPeaks.d.ts +31 -0
  71. package/lib/host/testing/sciPeaks.d.ts.map +1 -1
  72. package/lib/host/testing/sciPeaks.js +73 -0
  73. package/lib/host/testing/sciPeaks.js.map +1 -1
  74. package/lib/host/testing/standInHost.d.ts +9 -1
  75. package/lib/host/testing/standInHost.d.ts.map +1 -1
  76. package/lib/host/testing/standInHost.js +19 -1
  77. package/lib/host/testing/standInHost.js.map +1 -1
  78. package/lib/host/ui/useHostConnection.d.ts +13 -5
  79. package/lib/host/ui/useHostConnection.d.ts.map +1 -1
  80. package/lib/host/ui/useHostConnection.js +4 -3
  81. package/lib/host/ui/useHostConnection.js.map +1 -1
  82. package/lib/host-testing.d.ts +2 -2
  83. package/lib/host-testing.d.ts.map +1 -1
  84. package/lib/host-testing.js +2 -2
  85. package/lib/host-testing.js.map +1 -1
  86. package/lib/i18n/core/chromeCatalog.d.ts +1 -1
  87. package/lib/i18n/core/chromeCatalog.d.ts.map +1 -1
  88. package/lib/ir/core/handPicking.d.ts +58 -0
  89. package/lib/ir/core/handPicking.d.ts.map +1 -0
  90. package/lib/ir/core/handPicking.js +130 -0
  91. package/lib/ir/core/handPicking.js.map +1 -0
  92. package/lib/ir/core/index.d.ts +3 -0
  93. package/lib/ir/core/index.d.ts.map +1 -1
  94. package/lib/ir/core/index.js +3 -0
  95. package/lib/ir/core/index.js.map +1 -1
  96. package/lib/ir/core/irBandState.d.ts +57 -0
  97. package/lib/ir/core/irBandState.d.ts.map +1 -0
  98. package/lib/ir/core/irBandState.js +119 -0
  99. package/lib/ir/core/irBandState.js.map +1 -0
  100. package/lib/ir/core/irCommands.d.ts +11 -0
  101. package/lib/ir/core/irCommands.d.ts.map +1 -1
  102. package/lib/ir/core/irCommands.js +6 -0
  103. package/lib/ir/core/irCommands.js.map +1 -1
  104. package/lib/ir/core/irPeaks.d.ts +28 -0
  105. package/lib/ir/core/irPeaks.d.ts.map +1 -0
  106. package/lib/ir/core/irPeaks.js +66 -0
  107. package/lib/ir/core/irPeaks.js.map +1 -0
  108. package/lib/ir/core/irReducer.d.ts +8 -0
  109. package/lib/ir/core/irReducer.d.ts.map +1 -1
  110. package/lib/ir/core/irReducer.js +15 -32
  111. package/lib/ir/core/irReducer.js.map +1 -1
  112. package/lib/ir/core/irSpectrum.d.ts +15 -0
  113. package/lib/ir/core/irSpectrum.d.ts.map +1 -1
  114. package/lib/ir/core/irSpectrum.js.map +1 -1
  115. package/lib/ir/core/irState.d.ts +9 -6
  116. package/lib/ir/core/irState.d.ts.map +1 -1
  117. package/lib/ir/core/irState.js +10 -6
  118. package/lib/ir/core/irState.js.map +1 -1
  119. package/lib/ir/core/pickBands.d.ts +14 -0
  120. package/lib/ir/core/pickBands.d.ts.map +1 -1
  121. package/lib/ir/core/pickBands.js +39 -33
  122. package/lib/ir/core/pickBands.js.map +1 -1
  123. package/lib/ir/core/ramanBands.d.ts +9 -1
  124. package/lib/ir/core/ramanBands.d.ts.map +1 -1
  125. package/lib/ir/core/ramanBands.js +2 -2
  126. package/lib/ir/core/ramanBands.js.map +1 -1
  127. package/lib/ir/core/spectrumBands.d.ts +46 -0
  128. package/lib/ir/core/spectrumBands.d.ts.map +1 -0
  129. package/lib/ir/core/spectrumBands.js +98 -0
  130. package/lib/ir/core/spectrumBands.js.map +1 -0
  131. package/lib/ir/ui/BandRow.d.ts +5 -0
  132. package/lib/ir/ui/BandRow.d.ts.map +1 -1
  133. package/lib/ir/ui/BandRow.js +4 -3
  134. package/lib/ir/ui/BandRow.js.map +1 -1
  135. package/lib/ir/ui/BandsPanel.d.ts +5 -0
  136. package/lib/ir/ui/BandsPanel.d.ts.map +1 -1
  137. package/lib/ir/ui/BandsPanel.js +36 -16
  138. package/lib/ir/ui/BandsPanel.js.map +1 -1
  139. package/lib/ir/ui/BandsToolbar.d.ts +9 -0
  140. package/lib/ir/ui/BandsToolbar.d.ts.map +1 -0
  141. package/lib/ir/ui/BandsToolbar.js +61 -0
  142. package/lib/ir/ui/BandsToolbar.js.map +1 -0
  143. package/lib/ir/ui/IrCanvas.d.ts +2 -1
  144. package/lib/ir/ui/IrCanvas.d.ts.map +1 -1
  145. package/lib/ir/ui/IrCanvas.js +19 -5
  146. package/lib/ir/ui/IrCanvas.js.map +1 -1
  147. package/lib/ir/ui/IrChart.d.ts.map +1 -1
  148. package/lib/ir/ui/IrChart.js +8 -1
  149. package/lib/ir/ui/IrChart.js.map +1 -1
  150. package/lib/ir/ui/IrDocumentationDialog.js +1 -1
  151. package/lib/ir/ui/IrDocumentationDialog.js.map +1 -1
  152. package/lib/ir/ui/IrEditor.d.ts +4 -2
  153. package/lib/ir/ui/IrEditor.d.ts.map +1 -1
  154. package/lib/ir/ui/IrEditor.js.map +1 -1
  155. package/lib/ir/ui/IrShell.d.ts.map +1 -1
  156. package/lib/ir/ui/IrShell.js +6 -0
  157. package/lib/ir/ui/IrShell.js.map +1 -1
  158. package/lib/ir/ui/IrStatusBar.d.ts.map +1 -1
  159. package/lib/ir/ui/IrStatusBar.js +1 -1
  160. package/lib/ir/ui/IrStatusBar.js.map +1 -1
  161. package/lib/ir/ui/IrToolbar.d.ts +4 -3
  162. package/lib/ir/ui/IrToolbar.d.ts.map +1 -1
  163. package/lib/ir/ui/IrToolbar.js +5 -4
  164. package/lib/ir/ui/IrToolbar.js.map +1 -1
  165. package/lib/ir/ui/VibrationalEditor.d.ts +2 -1
  166. package/lib/ir/ui/VibrationalEditor.d.ts.map +1 -1
  167. package/lib/ir/ui/VibrationalEditor.js.map +1 -1
  168. package/lib/ir/ui/irActions.d.ts +5 -0
  169. package/lib/ir/ui/irActions.d.ts.map +1 -1
  170. package/lib/ir/ui/irActions.js +6 -0
  171. package/lib/ir/ui/irActions.js.map +1 -1
  172. package/lib/ir/ui/irChartProps.d.ts +4 -1
  173. package/lib/ir/ui/irChartProps.d.ts.map +1 -1
  174. package/lib/ir/ui/useIrEditor.d.ts +5 -11
  175. package/lib/ir/ui/useIrEditor.d.ts.map +1 -1
  176. package/lib/ir/ui/useIrEditor.js +17 -18
  177. package/lib/ir/ui/useIrEditor.js.map +1 -1
  178. package/lib/locales/de.json +63 -0
  179. package/lib/locales/en.json +63 -0
  180. package/lib/locales/es.json +63 -0
  181. package/lib/locales/fr.json +63 -0
  182. package/lib/locales/it.json +63 -0
  183. package/lib/mass/core/analyseSpectrum.d.ts +85 -0
  184. package/lib/mass/core/analyseSpectrum.d.ts.map +1 -0
  185. package/lib/mass/core/analyseSpectrum.js +101 -0
  186. package/lib/mass/core/analyseSpectrum.js.map +1 -0
  187. package/lib/mass/core/ascendingTrace.d.ts +24 -0
  188. package/lib/mass/core/ascendingTrace.d.ts.map +1 -0
  189. package/lib/mass/core/ascendingTrace.js +57 -0
  190. package/lib/mass/core/ascendingTrace.js.map +1 -0
  191. package/lib/mass/core/centroidPeaks.d.ts +77 -0
  192. package/lib/mass/core/centroidPeaks.d.ts.map +1 -0
  193. package/lib/mass/core/centroidPeaks.js +62 -0
  194. package/lib/mass/core/centroidPeaks.js.map +1 -0
  195. package/lib/mass/core/detectMassFormat.d.ts +24 -0
  196. package/lib/mass/core/detectMassFormat.d.ts.map +1 -0
  197. package/lib/mass/core/detectMassFormat.js +105 -0
  198. package/lib/mass/core/detectMassFormat.js.map +1 -0
  199. package/lib/mass/core/downloadSpectra.d.ts +24 -0
  200. package/lib/mass/core/downloadSpectra.d.ts.map +1 -0
  201. package/lib/mass/core/downloadSpectra.js +35 -0
  202. package/lib/mass/core/downloadSpectra.js.map +1 -0
  203. package/lib/mass/core/fromJcamp.d.ts +46 -0
  204. package/lib/mass/core/fromJcamp.d.ts.map +1 -0
  205. package/lib/mass/core/fromJcamp.js +123 -0
  206. package/lib/mass/core/fromJcamp.js.map +1 -0
  207. package/lib/mass/core/fromText.d.ts +30 -0
  208. package/lib/mass/core/fromText.d.ts.map +1 -0
  209. package/lib/mass/core/fromText.js +39 -0
  210. package/lib/mass/core/fromText.js.map +1 -0
  211. package/lib/mass/core/index.d.ts +70 -0
  212. package/lib/mass/core/index.d.ts.map +1 -0
  213. package/lib/mass/core/index.js +42 -0
  214. package/lib/mass/core/index.js.map +1 -0
  215. package/lib/mass/core/jcampTechnique.d.ts +38 -0
  216. package/lib/mass/core/jcampTechnique.d.ts.map +1 -0
  217. package/lib/mass/core/jcampTechnique.js +70 -0
  218. package/lib/mass/core/jcampTechnique.js.map +1 -0
  219. package/lib/mass/core/labelStackBox.d.ts +49 -0
  220. package/lib/mass/core/labelStackBox.d.ts.map +1 -0
  221. package/lib/mass/core/labelStackBox.js +44 -0
  222. package/lib/mass/core/labelStackBox.js.map +1 -0
  223. package/lib/mass/core/labelledPeaks.d.ts +79 -0
  224. package/lib/mass/core/labelledPeaks.d.ts.map +1 -0
  225. package/lib/mass/core/labelledPeaks.js +74 -0
  226. package/lib/mass/core/labelledPeaks.js.map +1 -0
  227. package/lib/mass/core/loadMassSpectra.d.ts +57 -0
  228. package/lib/mass/core/loadMassSpectra.d.ts.map +1 -0
  229. package/lib/mass/core/loadMassSpectra.js +45 -0
  230. package/lib/mass/core/loadMassSpectra.js.map +1 -0
  231. package/lib/mass/core/loadedMassSpectrum.d.ts +42 -0
  232. package/lib/mass/core/loadedMassSpectrum.d.ts.map +1 -0
  233. package/lib/mass/core/loadedMassSpectrum.js +15 -0
  234. package/lib/mass/core/loadedMassSpectrum.js.map +1 -0
  235. package/lib/mass/core/massCommands.d.ts +170 -0
  236. package/lib/mass/core/massCommands.d.ts.map +1 -0
  237. package/lib/mass/core/massCommands.js +95 -0
  238. package/lib/mass/core/massCommands.js.map +1 -0
  239. package/lib/mass/core/massDomain.d.ts +121 -0
  240. package/lib/mass/core/massDomain.d.ts.map +1 -0
  241. package/lib/mass/core/massDomain.js +179 -0
  242. package/lib/mass/core/massDomain.js.map +1 -0
  243. package/lib/mass/core/massEditorApi.d.ts +65 -0
  244. package/lib/mass/core/massEditorApi.d.ts.map +1 -0
  245. package/lib/mass/core/massEditorApi.js +10 -0
  246. package/lib/mass/core/massEditorApi.js.map +1 -0
  247. package/lib/mass/core/massFormat.d.ts +78 -0
  248. package/lib/mass/core/massFormat.d.ts.map +1 -0
  249. package/lib/mass/core/massFormat.js +168 -0
  250. package/lib/mass/core/massFormat.js.map +1 -0
  251. package/lib/mass/core/massMeta.d.ts +85 -0
  252. package/lib/mass/core/massMeta.d.ts.map +1 -0
  253. package/lib/mass/core/massMeta.js +182 -0
  254. package/lib/mass/core/massMeta.js.map +1 -0
  255. package/lib/mass/core/massReducer.d.ts +82 -0
  256. package/lib/mass/core/massReducer.d.ts.map +1 -0
  257. package/lib/mass/core/massReducer.js +163 -0
  258. package/lib/mass/core/massReducer.js.map +1 -0
  259. package/lib/mass/core/massResolution.d.ts +92 -0
  260. package/lib/mass/core/massResolution.d.ts.map +1 -0
  261. package/lib/mass/core/massResolution.js +126 -0
  262. package/lib/mass/core/massResolution.js.map +1 -0
  263. package/lib/mass/core/massSidePanels.d.ts +28 -0
  264. package/lib/mass/core/massSidePanels.d.ts.map +1 -0
  265. package/lib/mass/core/massSidePanels.js +12 -0
  266. package/lib/mass/core/massSidePanels.js.map +1 -0
  267. package/lib/mass/core/massSpectrum.d.ts +206 -0
  268. package/lib/mass/core/massSpectrum.d.ts.map +1 -0
  269. package/lib/mass/core/massSpectrum.js +41 -0
  270. package/lib/mass/core/massSpectrum.js.map +1 -0
  271. package/lib/mass/core/massState.d.ts +145 -0
  272. package/lib/mass/core/massState.d.ts.map +1 -0
  273. package/lib/mass/core/massState.js +102 -0
  274. package/lib/mass/core/massState.js.map +1 -0
  275. package/lib/mass/core/massStateEdits.d.ts +51 -0
  276. package/lib/mass/core/massStateEdits.d.ts.map +1 -0
  277. package/lib/mass/core/massStateEdits.js +90 -0
  278. package/lib/mass/core/massStateEdits.js.map +1 -0
  279. package/lib/mass/core/massSummary.d.ts +77 -0
  280. package/lib/mass/core/massSummary.d.ts.map +1 -0
  281. package/lib/mass/core/massSummary.js +174 -0
  282. package/lib/mass/core/massSummary.js.map +1 -0
  283. package/lib/mass/core/mzDecimalsSetting.d.ts +36 -0
  284. package/lib/mass/core/mzDecimalsSetting.d.ts.map +1 -0
  285. package/lib/mass/core/mzDecimalsSetting.js +42 -0
  286. package/lib/mass/core/mzDecimalsSetting.js.map +1 -0
  287. package/lib/mass/core/nearestPeak.d.ts +75 -0
  288. package/lib/mass/core/nearestPeak.d.ts.map +1 -0
  289. package/lib/mass/core/nearestPeak.js +99 -0
  290. package/lib/mass/core/nearestPeak.js.map +1 -0
  291. package/lib/mass/core/peakLabelLines.d.ts +77 -0
  292. package/lib/mass/core/peakLabelLines.d.ts.map +1 -0
  293. package/lib/mass/core/peakLabelLines.js +54 -0
  294. package/lib/mass/core/peakLabelLines.js.map +1 -0
  295. package/lib/mass/core/peakLabelPlan.d.ts +109 -0
  296. package/lib/mass/core/peakLabelPlan.d.ts.map +1 -0
  297. package/lib/mass/core/peakLabelPlan.js +143 -0
  298. package/lib/mass/core/peakLabelPlan.js.map +1 -0
  299. package/lib/mass/core/peakTable.d.ts +54 -0
  300. package/lib/mass/core/peakTable.d.ts.map +1 -0
  301. package/lib/mass/core/peakTable.js +53 -0
  302. package/lib/mass/core/peakTable.js.map +1 -0
  303. package/lib/mass/core/resolutionOf.d.ts +60 -0
  304. package/lib/mass/core/resolutionOf.d.ts.map +1 -0
  305. package/lib/mass/core/resolutionOf.js +84 -0
  306. package/lib/mass/core/resolutionOf.js.map +1 -0
  307. package/lib/mass/core/scanFilter.d.ts +25 -0
  308. package/lib/mass/core/scanFilter.d.ts.map +1 -0
  309. package/lib/mass/core/scanFilter.js +107 -0
  310. package/lib/mass/core/scanFilter.js.map +1 -0
  311. package/lib/mass/core/spectrumJcamp.d.ts +47 -0
  312. package/lib/mass/core/spectrumJcamp.d.ts.map +1 -0
  313. package/lib/mass/core/spectrumJcamp.js +167 -0
  314. package/lib/mass/core/spectrumJcamp.js.map +1 -0
  315. package/lib/mass/core/toMassSpectrum.d.ts +67 -0
  316. package/lib/mass/core/toMassSpectrum.d.ts.map +1 -0
  317. package/lib/mass/core/toMassSpectrum.js +78 -0
  318. package/lib/mass/core/toMassSpectrum.js.map +1 -0
  319. package/lib/mass/core/traceIcon.d.ts +82 -0
  320. package/lib/mass/core/traceIcon.d.ts.map +1 -0
  321. package/lib/mass/core/traceIcon.js +66 -0
  322. package/lib/mass/core/traceIcon.js.map +1 -0
  323. package/lib/mass/core/writtenResolution.d.ts +40 -0
  324. package/lib/mass/core/writtenResolution.d.ts.map +1 -0
  325. package/lib/mass/core/writtenResolution.js +77 -0
  326. package/lib/mass/core/writtenResolution.js.map +1 -0
  327. package/lib/mass/ui/MassAboutDialog.d.ts +16 -0
  328. package/lib/mass/ui/MassAboutDialog.d.ts.map +1 -0
  329. package/lib/mass/ui/MassAboutDialog.js +44 -0
  330. package/lib/mass/ui/MassAboutDialog.js.map +1 -0
  331. package/lib/mass/ui/MassCanvas.d.ts +46 -0
  332. package/lib/mass/ui/MassCanvas.d.ts.map +1 -0
  333. package/lib/mass/ui/MassCanvas.js +84 -0
  334. package/lib/mass/ui/MassCanvas.js.map +1 -0
  335. package/lib/mass/ui/MassChart.d.ts +21 -0
  336. package/lib/mass/ui/MassChart.d.ts.map +1 -0
  337. package/lib/mass/ui/MassChart.js +139 -0
  338. package/lib/mass/ui/MassChart.js.map +1 -0
  339. package/lib/mass/ui/MassCommandProvider.d.ts +15 -0
  340. package/lib/mass/ui/MassCommandProvider.d.ts.map +1 -0
  341. package/lib/mass/ui/MassCommandProvider.js +14 -0
  342. package/lib/mass/ui/MassCommandProvider.js.map +1 -0
  343. package/lib/mass/ui/MassCommandTooltip.d.ts +16 -0
  344. package/lib/mass/ui/MassCommandTooltip.d.ts.map +1 -0
  345. package/lib/mass/ui/MassCommandTooltip.js +22 -0
  346. package/lib/mass/ui/MassCommandTooltip.js.map +1 -0
  347. package/lib/mass/ui/MassDocumentationDialog.d.ts +18 -0
  348. package/lib/mass/ui/MassDocumentationDialog.d.ts.map +1 -0
  349. package/lib/mass/ui/MassDocumentationDialog.js +70 -0
  350. package/lib/mass/ui/MassDocumentationDialog.js.map +1 -0
  351. package/lib/mass/ui/MassEditor.d.ts +78 -0
  352. package/lib/mass/ui/MassEditor.d.ts.map +1 -0
  353. package/lib/mass/ui/MassEditor.js +42 -0
  354. package/lib/mass/ui/MassEditor.js.map +1 -0
  355. package/lib/mass/ui/MassHeader.d.ts +12 -0
  356. package/lib/mass/ui/MassHeader.d.ts.map +1 -0
  357. package/lib/mass/ui/MassHeader.js +20 -0
  358. package/lib/mass/ui/MassHeader.js.map +1 -0
  359. package/lib/mass/ui/MassLogo.d.ts +21 -0
  360. package/lib/mass/ui/MassLogo.d.ts.map +1 -0
  361. package/lib/mass/ui/MassLogo.js +36 -0
  362. package/lib/mass/ui/MassLogo.js.map +1 -0
  363. package/lib/mass/ui/MassPointerTracker.d.ts +44 -0
  364. package/lib/mass/ui/MassPointerTracker.d.ts.map +1 -0
  365. package/lib/mass/ui/MassPointerTracker.js +29 -0
  366. package/lib/mass/ui/MassPointerTracker.js.map +1 -0
  367. package/lib/mass/ui/MassShell.d.ts +29 -0
  368. package/lib/mass/ui/MassShell.d.ts.map +1 -0
  369. package/lib/mass/ui/MassShell.js +133 -0
  370. package/lib/mass/ui/MassShell.js.map +1 -0
  371. package/lib/mass/ui/MassSidePanel.d.ts +32 -0
  372. package/lib/mass/ui/MassSidePanel.d.ts.map +1 -0
  373. package/lib/mass/ui/MassSidePanel.js +44 -0
  374. package/lib/mass/ui/MassSidePanel.js.map +1 -0
  375. package/lib/mass/ui/MassStateProvider.d.ts +19 -0
  376. package/lib/mass/ui/MassStateProvider.d.ts.map +1 -0
  377. package/lib/mass/ui/MassStateProvider.js +16 -0
  378. package/lib/mass/ui/MassStateProvider.js.map +1 -0
  379. package/lib/mass/ui/MassStatusBar.d.ts +15 -0
  380. package/lib/mass/ui/MassStatusBar.d.ts.map +1 -0
  381. package/lib/mass/ui/MassStatusBar.js +50 -0
  382. package/lib/mass/ui/MassStatusBar.js.map +1 -0
  383. package/lib/mass/ui/MassToolbar.d.ts +24 -0
  384. package/lib/mass/ui/MassToolbar.d.ts.map +1 -0
  385. package/lib/mass/ui/MassToolbar.js +36 -0
  386. package/lib/mass/ui/MassToolbar.js.map +1 -0
  387. package/lib/mass/ui/MetadataPanel.d.ts +35 -0
  388. package/lib/mass/ui/MetadataPanel.d.ts.map +1 -0
  389. package/lib/mass/ui/MetadataPanel.js +100 -0
  390. package/lib/mass/ui/MetadataPanel.js.map +1 -0
  391. package/lib/mass/ui/MzDecimalsMenu.d.ts +28 -0
  392. package/lib/mass/ui/MzDecimalsMenu.d.ts.map +1 -0
  393. package/lib/mass/ui/MzDecimalsMenu.js +40 -0
  394. package/lib/mass/ui/MzDecimalsMenu.js.map +1 -0
  395. package/lib/mass/ui/PeakLabels.d.ts +93 -0
  396. package/lib/mass/ui/PeakLabels.d.ts.map +1 -0
  397. package/lib/mass/ui/PeakLabels.js +91 -0
  398. package/lib/mass/ui/PeakLabels.js.map +1 -0
  399. package/lib/mass/ui/PeakTable.d.ts +34 -0
  400. package/lib/mass/ui/PeakTable.d.ts.map +1 -0
  401. package/lib/mass/ui/PeakTable.js +49 -0
  402. package/lib/mass/ui/PeakTable.js.map +1 -0
  403. package/lib/mass/ui/PeaksPanel.d.ts +31 -0
  404. package/lib/mass/ui/PeaksPanel.d.ts.map +1 -0
  405. package/lib/mass/ui/PeaksPanel.js +53 -0
  406. package/lib/mass/ui/PeaksPanel.js.map +1 -0
  407. package/lib/mass/ui/SpectraPanel.d.ts +17 -0
  408. package/lib/mass/ui/SpectraPanel.d.ts.map +1 -0
  409. package/lib/mass/ui/SpectraPanel.js +76 -0
  410. package/lib/mass/ui/SpectraPanel.js.map +1 -0
  411. package/lib/mass/ui/SpectrumRow.d.ts +26 -0
  412. package/lib/mass/ui/SpectrumRow.d.ts.map +1 -0
  413. package/lib/mass/ui/SpectrumRow.js +141 -0
  414. package/lib/mass/ui/SpectrumRow.js.map +1 -0
  415. package/lib/mass/ui/SpectrumTrace.d.ts +46 -0
  416. package/lib/mass/ui/SpectrumTrace.d.ts.map +1 -0
  417. package/lib/mass/ui/SpectrumTrace.js +68 -0
  418. package/lib/mass/ui/SpectrumTrace.js.map +1 -0
  419. package/lib/mass/ui/index.d.ts +69 -0
  420. package/lib/mass/ui/index.d.ts.map +1 -0
  421. package/lib/mass/ui/index.js +42 -0
  422. package/lib/mass/ui/index.js.map +1 -0
  423. package/lib/mass/ui/massActions.d.ts +52 -0
  424. package/lib/mass/ui/massActions.d.ts.map +1 -0
  425. package/lib/mass/ui/massActions.js +62 -0
  426. package/lib/mass/ui/massActions.js.map +1 -0
  427. package/lib/mass/ui/massChartProps.d.ts +128 -0
  428. package/lib/mass/ui/massChartProps.d.ts.map +1 -0
  429. package/lib/mass/ui/massChartProps.js +14 -0
  430. package/lib/mass/ui/massChartProps.js.map +1 -0
  431. package/lib/mass/ui/massCommandContext.d.ts +36 -0
  432. package/lib/mass/ui/massCommandContext.d.ts.map +1 -0
  433. package/lib/mass/ui/massCommandContext.js +45 -0
  434. package/lib/mass/ui/massCommandContext.js.map +1 -0
  435. package/lib/mass/ui/massHostPanels.d.ts +48 -0
  436. package/lib/mass/ui/massHostPanels.d.ts.map +1 -0
  437. package/lib/mass/ui/massHostPanels.js +41 -0
  438. package/lib/mass/ui/massHostPanels.js.map +1 -0
  439. package/lib/mass/ui/massStateContext.d.ts +26 -0
  440. package/lib/mass/ui/massStateContext.d.ts.map +1 -0
  441. package/lib/mass/ui/massStateContext.js +37 -0
  442. package/lib/mass/ui/massStateContext.js.map +1 -0
  443. package/lib/mass/ui/useIntensityZoom.d.ts +20 -0
  444. package/lib/mass/ui/useIntensityZoom.d.ts.map +1 -0
  445. package/lib/mass/ui/useIntensityZoom.js +42 -0
  446. package/lib/mass/ui/useIntensityZoom.js.map +1 -0
  447. package/lib/mass/ui/useMassEditor.d.ts +52 -0
  448. package/lib/mass/ui/useMassEditor.d.ts.map +1 -0
  449. package/lib/mass/ui/useMassEditor.js +93 -0
  450. package/lib/mass/ui/useMassEditor.js.map +1 -0
  451. package/lib/mass/ui/useMassFiles.d.ts +22 -0
  452. package/lib/mass/ui/useMassFiles.d.ts.map +1 -0
  453. package/lib/mass/ui/useMassFiles.js +71 -0
  454. package/lib/mass/ui/useMassFiles.js.map +1 -0
  455. package/lib/mass/ui/useMassHandle.d.ts +15 -0
  456. package/lib/mass/ui/useMassHandle.d.ts.map +1 -0
  457. package/lib/mass/ui/useMassHandle.js +35 -0
  458. package/lib/mass/ui/useMassHandle.js.map +1 -0
  459. package/lib/mass/ui/useMassPointer.d.ts +70 -0
  460. package/lib/mass/ui/useMassPointer.d.ts.map +1 -0
  461. package/lib/mass/ui/useMassPointer.js +57 -0
  462. package/lib/mass/ui/useMassPointer.js.map +1 -0
  463. package/lib/mass/ui/useMassShortcuts.d.ts +21 -0
  464. package/lib/mass/ui/useMassShortcuts.d.ts.map +1 -0
  465. package/lib/mass/ui/useMassShortcuts.js +66 -0
  466. package/lib/mass/ui/useMassShortcuts.js.map +1 -0
  467. package/lib/mass/ui/useMassSide.d.ts +27 -0
  468. package/lib/mass/ui/useMassSide.d.ts.map +1 -0
  469. package/lib/mass/ui/useMassSide.js +45 -0
  470. package/lib/mass/ui/useMassSide.js.map +1 -0
  471. package/lib/mass/ui/useMassZoom.d.ts +92 -0
  472. package/lib/mass/ui/useMassZoom.d.ts.map +1 -0
  473. package/lib/mass/ui/useMassZoom.js +65 -0
  474. package/lib/mass/ui/useMassZoom.js.map +1 -0
  475. package/lib/mass.d.ts +16 -0
  476. package/lib/mass.d.ts.map +1 -0
  477. package/lib/mass.js +16 -0
  478. package/lib/mass.js.map +1 -0
  479. package/lib/panel/ui/PanelRail.d.ts.map +1 -1
  480. package/lib/panel/ui/PanelRail.js +6 -1
  481. package/lib/panel/ui/PanelRail.js.map +1 -1
  482. package/lib/slides/ui/slideSanitizeSchema.d.ts +3 -2
  483. package/lib/slides/ui/slideSanitizeSchema.d.ts.map +1 -1
  484. package/lib/slides/ui/slideSanitizeSchema.js +82 -2
  485. package/lib/slides/ui/slideSanitizeSchema.js.map +1 -1
  486. package/package.json +6 -1
  487. package/src/about/core/providers.ts +7 -0
  488. package/src/about/ui/AboutProvidedBy.tsx +49 -0
  489. package/src/chart/ui/useChartPointer.ts +18 -4
  490. package/src/credits/core/credits.ts +53 -0
  491. package/src/download/core/drawingMarkup.ts +18 -1
  492. package/src/download/core/figurePng.ts +21 -8
  493. package/src/download/core/figureSvg.ts +5 -2
  494. package/src/download/core/figureTarget.ts +28 -3
  495. package/src/download/core/svgBounds.ts +21 -0
  496. package/src/download/core/svgToPng.ts +3 -4
  497. package/src/format/core/relativeTime.ts +29 -7
  498. package/src/host/core/connectHost.ts +77 -120
  499. package/src/host/core/hostOutputs.ts +197 -0
  500. package/src/host/core/index.ts +13 -7
  501. package/src/host/core/irKinds.ts +92 -0
  502. package/src/host/core/kinds.ts +16 -6
  503. package/src/host/core/protocol.ts +50 -8
  504. package/src/host/core/selectInputs.ts +145 -0
  505. package/src/host/testing/sciPeaks.ts +140 -0
  506. package/src/host/testing/standInHost.ts +30 -5
  507. package/src/host/ui/useHostConnection.ts +17 -8
  508. package/src/host-testing.ts +4 -0
  509. package/src/ir/core/handPicking.ts +154 -0
  510. package/src/ir/core/index.ts +14 -0
  511. package/src/ir/core/irBandState.ts +155 -0
  512. package/src/ir/core/irCommands.ts +7 -0
  513. package/src/ir/core/irPeaks.ts +79 -0
  514. package/src/ir/core/irReducer.ts +27 -34
  515. package/src/ir/core/irSpectrum.ts +16 -0
  516. package/src/ir/core/irState.ts +15 -8
  517. package/src/ir/core/pickBands.ts +46 -39
  518. package/src/ir/core/ramanBands.ts +2 -2
  519. package/src/ir/core/spectrumBands.ts +113 -0
  520. package/src/ir/ui/BandRow.tsx +20 -2
  521. package/src/ir/ui/BandsPanel.tsx +46 -88
  522. package/src/ir/ui/BandsToolbar.tsx +152 -0
  523. package/src/ir/ui/IrCanvas.tsx +22 -11
  524. package/src/ir/ui/IrChart.tsx +10 -1
  525. package/src/ir/ui/IrDocumentationDialog.tsx +7 -0
  526. package/src/ir/ui/IrEditor.tsx +4 -2
  527. package/src/ir/ui/IrShell.tsx +5 -0
  528. package/src/ir/ui/IrStatusBar.tsx +4 -1
  529. package/src/ir/ui/IrToolbar.tsx +14 -5
  530. package/src/ir/ui/VibrationalEditor.tsx +2 -1
  531. package/src/ir/ui/irActions.ts +11 -0
  532. package/src/ir/ui/irChartProps.ts +4 -1
  533. package/src/ir/ui/useIrEditor.ts +21 -21
  534. package/src/locales/de.json +63 -0
  535. package/src/locales/en.json +63 -0
  536. package/src/locales/es.json +63 -0
  537. package/src/locales/fr.json +63 -0
  538. package/src/locales/it.json +63 -0
  539. package/src/mass/core/analyseSpectrum.ts +191 -0
  540. package/src/mass/core/ascendingTrace.ts +62 -0
  541. package/src/mass/core/centroidPeaks.ts +114 -0
  542. package/src/mass/core/detectMassFormat.ts +113 -0
  543. package/src/mass/core/downloadSpectra.ts +52 -0
  544. package/src/mass/core/fromJcamp.ts +151 -0
  545. package/src/mass/core/fromText.ts +58 -0
  546. package/src/mass/core/index.ts +194 -0
  547. package/src/mass/core/jcampTechnique.ts +87 -0
  548. package/src/mass/core/labelStackBox.ts +75 -0
  549. package/src/mass/core/labelledPeaks.ts +135 -0
  550. package/src/mass/core/loadMassSpectra.ts +86 -0
  551. package/src/mass/core/loadedMassSpectrum.ts +43 -0
  552. package/src/mass/core/massCommands.ts +156 -0
  553. package/src/mass/core/massDomain.ts +229 -0
  554. package/src/mass/core/massEditorApi.ts +68 -0
  555. package/src/mass/core/massFormat.ts +187 -0
  556. package/src/mass/core/massMeta.ts +239 -0
  557. package/src/mass/core/massReducer.ts +232 -0
  558. package/src/mass/core/massResolution.ts +169 -0
  559. package/src/mass/core/massSidePanels.ts +27 -0
  560. package/src/mass/core/massSpectrum.ts +220 -0
  561. package/src/mass/core/massState.ts +206 -0
  562. package/src/mass/core/massStateEdits.ts +104 -0
  563. package/src/mass/core/massSummary.ts +213 -0
  564. package/src/mass/core/mzDecimalsSetting.ts +52 -0
  565. package/src/mass/core/nearestPeak.ts +130 -0
  566. package/src/mass/core/peakLabelLines.ts +112 -0
  567. package/src/mass/core/peakLabelPlan.ts +246 -0
  568. package/src/mass/core/peakTable.ts +82 -0
  569. package/src/mass/core/resolutionOf.ts +100 -0
  570. package/src/mass/core/scanFilter.ts +119 -0
  571. package/src/mass/core/spectrumJcamp.ts +186 -0
  572. package/src/mass/core/toMassSpectrum.ts +126 -0
  573. package/src/mass/core/traceIcon.ts +105 -0
  574. package/src/mass/core/writtenResolution.ts +81 -0
  575. package/src/mass/ui/MassAboutDialog.tsx +89 -0
  576. package/src/mass/ui/MassCanvas.tsx +170 -0
  577. package/src/mass/ui/MassChart.tsx +266 -0
  578. package/src/mass/ui/MassCommandProvider.tsx +34 -0
  579. package/src/mass/ui/MassCommandTooltip.tsx +36 -0
  580. package/src/mass/ui/MassDocumentationDialog.tsx +136 -0
  581. package/src/mass/ui/MassEditor.tsx +130 -0
  582. package/src/mass/ui/MassHeader.tsx +38 -0
  583. package/src/mass/ui/MassLogo.tsx +84 -0
  584. package/src/mass/ui/MassPointerTracker.tsx +72 -0
  585. package/src/mass/ui/MassShell.tsx +237 -0
  586. package/src/mass/ui/MassSidePanel.tsx +107 -0
  587. package/src/mass/ui/MassStateProvider.tsx +32 -0
  588. package/src/mass/ui/MassStatusBar.tsx +108 -0
  589. package/src/mass/ui/MassToolbar.tsx +120 -0
  590. package/src/mass/ui/MetadataPanel.tsx +201 -0
  591. package/src/mass/ui/MzDecimalsMenu.tsx +86 -0
  592. package/src/mass/ui/PeakLabels.tsx +242 -0
  593. package/src/mass/ui/PeakTable.tsx +199 -0
  594. package/src/mass/ui/PeaksPanel.tsx +182 -0
  595. package/src/mass/ui/SpectraPanel.tsx +153 -0
  596. package/src/mass/ui/SpectrumRow.tsx +246 -0
  597. package/src/mass/ui/SpectrumTrace.tsx +119 -0
  598. package/src/mass/ui/index.ts +69 -0
  599. package/src/mass/ui/massActions.ts +109 -0
  600. package/src/mass/ui/massChartProps.ts +130 -0
  601. package/src/mass/ui/massCommandContext.tsx +65 -0
  602. package/src/mass/ui/massHostPanels.ts +71 -0
  603. package/src/mass/ui/massStateContext.ts +48 -0
  604. package/src/mass/ui/useIntensityZoom.ts +55 -0
  605. package/src/mass/ui/useMassEditor.ts +156 -0
  606. package/src/mass/ui/useMassFiles.ts +91 -0
  607. package/src/mass/ui/useMassHandle.ts +58 -0
  608. package/src/mass/ui/useMassPointer.ts +120 -0
  609. package/src/mass/ui/useMassShortcuts.ts +85 -0
  610. package/src/mass/ui/useMassSide.ts +63 -0
  611. package/src/mass/ui/useMassZoom.ts +157 -0
  612. package/src/mass.ts +16 -0
  613. package/src/panel/ui/PanelRail.tsx +5 -1
  614. package/src/slides/ui/slideSanitizeSchema.ts +86 -2
  615. package/styles/chrome.css +7 -0
  616. package/styles/slides.css +47 -0
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Read two columns of m/z and intensity, through `xy-parser`.
3
+ *
4
+ * Whatever separates the columns — a tab, a comma, spaces, a semicolon — and
5
+ * whatever header lines come before the numbers, `xy-parser` finds the numbers,
6
+ * so a peak list copied out of an instrument report, a CSV export and a
7
+ * hand-typed table are all one format here.
8
+ */
9
+ import { parseXY } from 'xy-parser';
10
+ import { describeSource } from "../../error/core/index.js";
11
+ import { ascendingTrace } from "./ascendingTrace.js";
12
+ /**
13
+ * Read the one spectrum two columns of numbers make.
14
+ *
15
+ * Nothing is said about the acquisition, because two columns say nothing: the
16
+ * spectrum comes back with no metadata and no name of its own, and is called
17
+ * after its file.
18
+ * @param data - The file, as bytes or as text.
19
+ * @param options - The file's name.
20
+ * @returns The spectrum, as a list of one, the way every reader answers.
21
+ * @throws {Error} When no line of it holds two numbers.
22
+ */
23
+ export function fromText(data, options = {}) {
24
+ const { fileName } = options;
25
+ const { x, y } = parseXY(data);
26
+ if (x.length === 0) {
27
+ throw new Error(`${describeSource(fileName)} holds no two columns of numbers — a spectrum in text is one line per point, the m/z first and the intensity after it.`);
28
+ }
29
+ return [
30
+ {
31
+ trace: ascendingTrace(x, y),
32
+ meta: null,
33
+ origin: fileName === undefined
34
+ ? { format: 'text' }
35
+ : { format: 'text', fileName },
36
+ },
37
+ ];
38
+ }
39
+ //# sourceMappingURL=fromText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fromText.js","sourceRoot":"","sources":["../../../src/mass/core/fromText.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAYrD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAyB,EACzB,UAA+B,EAAE;IAEjC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,GAAG,cAAc,CAAC,QAAQ,CAAC,wHAAwH,CACpJ,CAAC;IACJ,CAAC;IACD,OAAO;QACL;YACE,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,IAAI;YACV,MAAM,EACJ,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;gBACpB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;SACnC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * What a mass spectrum is, and everything true of one that draws nothing.
3
+ *
4
+ * Reading a JCAMP-DX or a two-column text file, picking the peaks of a profile,
5
+ * deciding whether the spectrum is high resolution, choosing which peaks are
6
+ * worth a label, writing the spectra back out as JCAMP — none of it needs
7
+ * React, so a script that reads a directory of spectra loads none.
8
+ *
9
+ * Nothing here knows what a glycan, a peptide or a polymer is, and nothing
10
+ * should: a mass spectrum answers for whatever was put in the source.
11
+ */
12
+ export type { AnalyseSpectrumOptions, AnalysedSpectrum, } from './analyseSpectrum.ts';
13
+ export { analyseSpectrum } from './analyseSpectrum.ts';
14
+ export { ascendingTrace } from './ascendingTrace.ts';
15
+ export type { MassPeakObject, SelectCentroidPeaksOptions, } from './centroidPeaks.ts';
16
+ export { centroidPeakObjects, selectCentroidPeaks } from './centroidPeaks.ts';
17
+ export type { DetectedMassFormat } from './detectMassFormat.ts';
18
+ export { detectMassFormat } from './detectMassFormat.ts';
19
+ export { downloadMassSpectra, downloadMassSpectrum, } from './downloadSpectra.ts';
20
+ export type { MassJcampReadOptions, MassJcampReadResult } from './fromJcamp.ts';
21
+ export type { MassTextReadOptions } from './fromText.ts';
22
+ export type { JcampBlockHeader } from './jcampTechnique.ts';
23
+ export { otherTechnique } from './jcampTechnique.ts';
24
+ export type { HoveredPeak, StackBox } from './labelStackBox.ts';
25
+ export { labelStackBox } from './labelStackBox.ts';
26
+ export type { LabelledPeak, SelectLabelledPeaksOptions, } from './labelledPeaks.ts';
27
+ export { LABEL_SLOTS, LABEL_THRESHOLD, selectLabelledPeaks, } from './labelledPeaks.ts';
28
+ export type { LoadMassSpectraOptions, LoadMassSpectraResult, } from './loadMassSpectra.ts';
29
+ export { DEFAULT_MAX_SPECTRA, loadMassSpectra } from './loadMassSpectra.ts';
30
+ export type { LoadedMassSpectrum } from './loadedMassSpectrum.ts';
31
+ export type { MassCommand, MassCommandHandlers, MassCommandId, MassGesture, MassShortcut, RunMassCommand, } from './massCommands.ts';
32
+ export { massCommandLabel, massCommands } from './massCommands.ts';
33
+ export type { MzFrameOptions } from './massDomain.ts';
34
+ export { MZ_FRAME_HALF_WIDTH, X_DOMAIN_PADDING, Y_DOMAIN_HEADROOM, basePeakOf, fittedTo, fullDomain, mzFrame, } from './massDomain.ts';
35
+ export type { MassEditorHandle, MassPlotClick, ZoomToMzOptions, } from './massEditorApi.ts';
36
+ export { INTENSITY_DECIMALS, formatIntensity, formatMz, formatMzRange, massFormatLabel, resolutionBasisLabel, resolutionLabel, resolvingPowerLabel, } from './massFormat.ts';
37
+ export type { MassMetaRecord, MassMetaSource } from './massMeta.ts';
38
+ export { buildMassMeta, metaRecord, recordText } from './massMeta.ts';
39
+ export type { MassAction, SpectrumVisibility } from './massReducer.ts';
40
+ export { massReducer } from './massReducer.ts';
41
+ export type { MassResolution, MassResolutionBasis, MassResolutionKind, WidthPeak, } from './massResolution.ts';
42
+ export { HIGH_RESOLVING_POWER, MEASURED_PEAKS, MZ_DECIMALS, measuredResolution, statedResolution, } from './massResolution.ts';
43
+ export type { MassPanelId, MassSidePanelId } from './massSidePanels.ts';
44
+ export { massSidePanels } from './massSidePanels.ts';
45
+ export type { MassDomain, MassFormat, MassMeta, MassMetaField, MassOrigin, MassPeaks, MassSpectrum, MassTrace, } from './massSpectrum.ts';
46
+ export { isSpectrumDrawn } from './massSpectrum.ts';
47
+ export type { CreateMassStateOptions, MassData, MassSettings, MassState, MassTool, MassView, PartialMassState, } from './massState.ts';
48
+ export { DEFAULT_LABEL_LIMIT, DEFAULT_SETTINGS, DEFAULT_SIDE_PANEL, DEFAULT_SIDE_PANELS, MAXIMUM_LABEL_LIMIT, createMassState, isMassWindow, mergeMassSettings, } from './massState.ts';
49
+ export type { SpectrumSubtitleOptions } from './massSummary.ts';
50
+ export { spectrumFileFields, spectrumMetaRows, spectrumResolutionRows, spectrumSubtitle, } from './massSummary.ts';
51
+ export type { MzDecimalsSetting } from './mzDecimalsSetting.ts';
52
+ export { MAXIMUM_MZ_DECIMALS, mzDecimalsFor, readMzDecimalsSetting, } from './mzDecimalsSetting.ts';
53
+ export type { NearestPeak } from './nearestPeak.ts';
54
+ export { PEAK_HIT_RADIUS, nearestPeakMz, peakAtMz, sameNearestPeak, } from './nearestPeak.ts';
55
+ export type { PeakLabelLine, PeakLabelLineKind, PeakLabelLinesOptions, } from './peakLabelLines.ts';
56
+ export { peakKey, peakLabelLines } from './peakLabelLines.ts';
57
+ export type { PeakLabelPlan, PlanPeakLabelsOptions } from './peakLabelPlan.ts';
58
+ export { LABEL_SPACING, planPeakLabels } from './peakLabelPlan.ts';
59
+ export type { PeakTableOptions } from './peakTable.ts';
60
+ export { PEAK_TABLE_LIMIT, PEAK_TABLE_THRESHOLD, peakTableRows, peakTableToTsv, } from './peakTable.ts';
61
+ export type { DecideResolutionOptions } from './resolutionOf.ts';
62
+ export { decideResolution, mzDecimalsOf, resolutionOf, } from './resolutionOf.ts';
63
+ export { parseScanFilter } from './scanFilter.ts';
64
+ export type { MassTraceKind, TraceIconClick, TraceIconState, } from './traceIcon.ts';
65
+ export { nextTraceIconClick, traceIconState } from './traceIcon.ts';
66
+ export { JCAMP_EXTENSION, JCAMP_MIME_TYPE, massSpectraToJcamp, massSpectrumToJcamp, } from './spectrumJcamp.ts';
67
+ export type { ToMassSpectrumOptions } from './toMassSpectrum.ts';
68
+ export { toMassSpectra, toMassSpectrum } from './toMassSpectrum.ts';
69
+ export { MAXIMUM_WRITTEN_DECIMALS, writtenDecimals, writtenResolution, } from './writtenResolution.ts';
70
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mass/core/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * What a mass spectrum is, and everything true of one that draws nothing.
3
+ *
4
+ * Reading a JCAMP-DX or a two-column text file, picking the peaks of a profile,
5
+ * deciding whether the spectrum is high resolution, choosing which peaks are
6
+ * worth a label, writing the spectra back out as JCAMP — none of it needs
7
+ * React, so a script that reads a directory of spectra loads none.
8
+ *
9
+ * Nothing here knows what a glycan, a peptide or a polymer is, and nothing
10
+ * should: a mass spectrum answers for whatever was put in the source.
11
+ */
12
+ export { analyseSpectrum } from "./analyseSpectrum.js";
13
+ export { ascendingTrace } from "./ascendingTrace.js";
14
+ export { centroidPeakObjects, selectCentroidPeaks } from "./centroidPeaks.js";
15
+ export { detectMassFormat } from "./detectMassFormat.js";
16
+ export { downloadMassSpectra, downloadMassSpectrum, } from "./downloadSpectra.js";
17
+ export { otherTechnique } from "./jcampTechnique.js";
18
+ export { labelStackBox } from "./labelStackBox.js";
19
+ export { LABEL_SLOTS, LABEL_THRESHOLD, selectLabelledPeaks, } from "./labelledPeaks.js";
20
+ export { DEFAULT_MAX_SPECTRA, loadMassSpectra } from "./loadMassSpectra.js";
21
+ export { massCommandLabel, massCommands } from "./massCommands.js";
22
+ export { MZ_FRAME_HALF_WIDTH, X_DOMAIN_PADDING, Y_DOMAIN_HEADROOM, basePeakOf, fittedTo, fullDomain, mzFrame, } from "./massDomain.js";
23
+ export { INTENSITY_DECIMALS, formatIntensity, formatMz, formatMzRange, massFormatLabel, resolutionBasisLabel, resolutionLabel, resolvingPowerLabel, } from "./massFormat.js";
24
+ export { buildMassMeta, metaRecord, recordText } from "./massMeta.js";
25
+ export { massReducer } from "./massReducer.js";
26
+ export { HIGH_RESOLVING_POWER, MEASURED_PEAKS, MZ_DECIMALS, measuredResolution, statedResolution, } from "./massResolution.js";
27
+ export { massSidePanels } from "./massSidePanels.js";
28
+ export { isSpectrumDrawn } from "./massSpectrum.js";
29
+ export { DEFAULT_LABEL_LIMIT, DEFAULT_SETTINGS, DEFAULT_SIDE_PANEL, DEFAULT_SIDE_PANELS, MAXIMUM_LABEL_LIMIT, createMassState, isMassWindow, mergeMassSettings, } from "./massState.js";
30
+ export { spectrumFileFields, spectrumMetaRows, spectrumResolutionRows, spectrumSubtitle, } from "./massSummary.js";
31
+ export { MAXIMUM_MZ_DECIMALS, mzDecimalsFor, readMzDecimalsSetting, } from "./mzDecimalsSetting.js";
32
+ export { PEAK_HIT_RADIUS, nearestPeakMz, peakAtMz, sameNearestPeak, } from "./nearestPeak.js";
33
+ export { peakKey, peakLabelLines } from "./peakLabelLines.js";
34
+ export { LABEL_SPACING, planPeakLabels } from "./peakLabelPlan.js";
35
+ export { PEAK_TABLE_LIMIT, PEAK_TABLE_THRESHOLD, peakTableRows, peakTableToTsv, } from "./peakTable.js";
36
+ export { decideResolution, mzDecimalsOf, resolutionOf, } from "./resolutionOf.js";
37
+ export { parseScanFilter } from "./scanFilter.js";
38
+ export { nextTraceIconClick, traceIconState } from "./traceIcon.js";
39
+ export { JCAMP_EXTENSION, JCAMP_MIME_TYPE, massSpectraToJcamp, massSpectrumToJcamp, } from "./spectrumJcamp.js";
40
+ export { toMassSpectra, toMassSpectrum } from "./toMassSpectrum.js";
41
+ export { MAXIMUM_WRITTEN_DECIMALS, writtenDecimals, writtenResolution, } from "./writtenResolution.js";
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mass/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAU5E,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,UAAU,EACV,OAAO,GACR,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAWrD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAUpD,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,eAAe,EACf,aAAa,EACb,QAAQ,EACR,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAMlD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,iBAAiB,GAClB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Which blocks of a JCAMP a mass viewer has any business reading.
3
+ *
4
+ * JCAMP-DX is a container for whatever an instrument wanted to export, and the
5
+ * file says nothing about which viewer opened it: a file of five infrared
6
+ * spectra, one of UV/VIS ones and a gas-chromatography export writing a whole
7
+ * chromatogram under `##XUNITS= TIME` are all valid JCAMPs. Read as mass
8
+ * spectra they draw a wavenumber, a wavelength or a minute on an m/z axis, and
9
+ * every mass read off them afterwards is a mass of something never measured.
10
+ *
11
+ * So the technique the file states is believed, and only a block that states
12
+ * another one is refused. A block that states none is kept: plenty of
13
+ * instruments write no `##DATA TYPE` at all, and the file was handed to a mass
14
+ * viewer, so mass spectrometry is the right assumption where the file is silent.
15
+ */
16
+ /** What `jcampconverter` says about one block, as far as this is concerned. */
17
+ export interface JcampBlockHeader {
18
+ /**
19
+ * The `##DATA TYPE=` record.
20
+ * @default undefined
21
+ */
22
+ dataType?: string;
23
+ /** The standard records, where `##XUNITS=` is. */
24
+ info: Record<string, unknown>;
25
+ }
26
+ /**
27
+ * What a block says it is, when what it says is not mass spectrometry.
28
+ *
29
+ * Both halves of the answer are read: the technique names it, and the axis unit
30
+ * is what a chemist looking at a refusal can check against the file in front of
31
+ * them — `INFRARED SPECTRUM in 1/CM` is a sentence they can act on where
32
+ * `unsupported data type` is not.
33
+ * @param entry - The block, as `jcampconverter` read it.
34
+ * @returns The phrase naming it, or `null` when the block may be read as a mass
35
+ * spectrum.
36
+ */
37
+ export declare function otherTechnique(entry: JcampBlockHeader): string | null;
38
+ //# sourceMappingURL=jcampTechnique.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jcampTechnique.d.ts","sourceRoot":"","sources":["../../../src/mass/core/jcampTechnique.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,+EAA+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAerE"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Which blocks of a JCAMP a mass viewer has any business reading.
3
+ *
4
+ * JCAMP-DX is a container for whatever an instrument wanted to export, and the
5
+ * file says nothing about which viewer opened it: a file of five infrared
6
+ * spectra, one of UV/VIS ones and a gas-chromatography export writing a whole
7
+ * chromatogram under `##XUNITS= TIME` are all valid JCAMPs. Read as mass
8
+ * spectra they draw a wavenumber, a wavelength or a minute on an m/z axis, and
9
+ * every mass read off them afterwards is a mass of something never measured.
10
+ *
11
+ * So the technique the file states is believed, and only a block that states
12
+ * another one is refused. A block that states none is kept: plenty of
13
+ * instruments write no `##DATA TYPE` at all, and the file was handed to a mass
14
+ * viewer, so mass spectrometry is the right assumption where the file is silent.
15
+ */
16
+ import { recordText } from "./massMeta.js";
17
+ /**
18
+ * What a block says it is, when what it says is not mass spectrometry.
19
+ *
20
+ * Both halves of the answer are read: the technique names it, and the axis unit
21
+ * is what a chemist looking at a refusal can check against the file in front of
22
+ * them — `INFRARED SPECTRUM in 1/CM` is a sentence they can act on where
23
+ * `unsupported data type` is not.
24
+ * @param entry - The block, as `jcampconverter` read it.
25
+ * @returns The phrase naming it, or `null` when the block may be read as a mass
26
+ * spectrum.
27
+ */
28
+ export function otherTechnique(entry) {
29
+ const dataType = (entry.dataType ?? '').toUpperCase();
30
+ const units = recordText(entry.info.XUNITS).toUpperCase();
31
+ if (MASS_SPECTROMETRY.test(dataType))
32
+ return null;
33
+ if (OTHER_TECHNIQUE.test(dataType)) {
34
+ return units === '' ? dataType : `${dataType} in ${units}`;
35
+ }
36
+ // A block naming no technique is still refused when it names an axis no mass
37
+ // spectrum has: `##XUNITS= 1/CM` is a wavenumber whoever wrote the file was
38
+ // measuring, whatever the header left out.
39
+ if (OTHER_AXIS.test(units)) {
40
+ return dataType === '' ? `an axis in ${units}` : `${dataType} in ${units}`;
41
+ }
42
+ return null;
43
+ }
44
+ /**
45
+ * The techniques that are a mass spectrum however the file spells them.
46
+ *
47
+ * Read before the refusals below, so that `GC-MS` and `LC-MS` — both of which
48
+ * name a separation this reader would otherwise refuse — are kept: what came
49
+ * off the column is still measured by mass.
50
+ */
51
+ const MASS_SPECTROMETRY = /\bMASS\b|\bMS\b/;
52
+ /**
53
+ * The techniques that are certainly not a mass spectrum.
54
+ *
55
+ * Named rather than matching `MASS SPECTRUM` positively, so that a file typed
56
+ * `CONTINUOUS MASS SPECTRUM`, `GC-MS` or nothing at all is read without this
57
+ * list having to anticipate every spelling an exporter might choose.
58
+ */
59
+ const OTHER_TECHNIQUE = /\b(?:RAMAN|NMR|INFRARED|FTIR|IR|UV|VIS|VISIBLE|FLUORESCENCE|XRD|EPR|ESR|CHROMATOGRAM|CHROMATOGRAPH)\b/;
60
+ /**
61
+ * The axis units that are certainly not an m/z.
62
+ *
63
+ * A wavenumber, a wavelength, a frequency, a chemical shift and a retention
64
+ * time each name an axis some other instrument sweeps; `ARBITRARY`, `M/Z`,
65
+ * `MASS UNITS` and `DALTONS` are all left out, since a mass spectrum is written
66
+ * with every one of them. The unit is looked for as a word inside the record,
67
+ * because a file that states no technique spells it as `Wavenumber (1/cm)`.
68
+ */
69
+ const OTHER_AXIS = /\b(?:1\/CM|CM-1|WAVENUMBERS?|NM|NANOMETERS?|MICROMETERS?|MICRONS?|HZ|PPM|SECONDS?|MINUTES?|TIME)\b/;
70
+ //# sourceMappingURL=jcampTechnique.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jcampTechnique.js","sourceRoot":"","sources":["../../../src/mass/core/jcampTechnique.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAa3C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,KAAuB;IACpD,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAE1D,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,KAAK,EAAE,CAAC;IAC7D,CAAC;IACD,6EAA6E;IAC7E,4EAA4E;IAC5E,2CAA2C;IAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,KAAK,EAAE,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,eAAe,GACnB,uGAAuG,CAAC;AAE1G;;;;;;;;GAQG;AACH,MAAM,UAAU,GACd,oGAAoG,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The room a stack of labels over a peak takes, and the peak a pointer resting
3
+ * on it reports.
4
+ *
5
+ * The numbers of a stack take no pointer event of their own: the room they
6
+ * occupy does, as one rectangle per stack, so a stack can be interrogated —
7
+ * resting on it opens whatever a host shows about that peak — without the
8
+ * glyphs becoming a control or stopping the crosshair underneath.
9
+ */
10
+ /** A rectangle in the pixels of the SVG. */
11
+ export interface StackBox {
12
+ /** Its left edge. */
13
+ x: number;
14
+ /** Its top edge. */
15
+ y: number;
16
+ /** How wide it is. */
17
+ width: number;
18
+ /** How tall. */
19
+ height: number;
20
+ }
21
+ /** The peak the pointer is resting on, as the labels report it. */
22
+ export interface HoveredPeak {
23
+ /** `${spectrumId}:${index}`, which is how anything said about it is found. */
24
+ key: string;
25
+ /** The m/z measured for it. */
26
+ mz: number;
27
+ /** Its intensity, in the units its spectrum was drawn in. */
28
+ intensity: number;
29
+ /** The charge established for it, `0` when none was. */
30
+ charge: number;
31
+ /** Where a card about it is anchored, in pixels across the SVG. */
32
+ x: number;
33
+ /** The edge of the label stack it hangs off, in pixels down the SVG. */
34
+ y: number;
35
+ }
36
+ /**
37
+ * The room a stack of labels takes, which is what answers the pointer.
38
+ *
39
+ * A baseline is where the glyphs of a line *sit*, so the box starts a line
40
+ * height above the topmost one and stops just under the lowest. How wide it is
41
+ * cannot be measured from here — an SVG knows nothing of the host's font until
42
+ * it is on screen — so it is the width the theme says a label claims, which is
43
+ * the same number the stacks are spaced by.
44
+ * @param x - Where the stack is centred, in pixels.
45
+ * @param baselines - Where each of its lines is written, in any order.
46
+ * @returns The box, of no size at all when the stack has no lines.
47
+ */
48
+ export declare function labelStackBox(x: number, baselines: readonly number[] | Float64Array): StackBox;
49
+ //# sourceMappingURL=labelStackBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labelStackBox.d.ts","sourceRoot":"","sources":["../../../src/mass/core/labelStackBox.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,4CAA4C;AAC5C,MAAM,WAAW,QAAQ;IACvB,qBAAqB;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,oBAAoB;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,CAAC,EAAE,MAAM,CAAC;IACV,wEAAwE;IACxE,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,CAAC,EAAE,MAAM,EACT,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,GAC1C,QAAQ,CAgBV"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The room a stack of labels over a peak takes, and the peak a pointer resting
3
+ * on it reports.
4
+ *
5
+ * The numbers of a stack take no pointer event of their own: the room they
6
+ * occupy does, as one rectangle per stack, so a stack can be interrogated —
7
+ * resting on it opens whatever a host shows about that peak — without the
8
+ * glyphs becoming a control or stopping the crosshair underneath.
9
+ */
10
+ import { PEAK_LABEL } from "../../chart/core/chartTheme.js";
11
+ /**
12
+ * The room a stack of labels takes, which is what answers the pointer.
13
+ *
14
+ * A baseline is where the glyphs of a line *sit*, so the box starts a line
15
+ * height above the topmost one and stops just under the lowest. How wide it is
16
+ * cannot be measured from here — an SVG knows nothing of the host's font until
17
+ * it is on screen — so it is the width the theme says a label claims, which is
18
+ * the same number the stacks are spaced by.
19
+ * @param x - Where the stack is centred, in pixels.
20
+ * @param baselines - Where each of its lines is written, in any order.
21
+ * @returns The box, of no size at all when the stack has no lines.
22
+ */
23
+ export function labelStackBox(x, baselines) {
24
+ const { lineHeight, hoverHalfWidth } = PEAK_LABEL;
25
+ let highest = Number.POSITIVE_INFINITY;
26
+ let lowest = Number.NEGATIVE_INFINITY;
27
+ for (const baseline of baselines) {
28
+ if (baseline < highest)
29
+ highest = baseline;
30
+ if (baseline > lowest)
31
+ lowest = baseline;
32
+ }
33
+ if (!Number.isFinite(highest))
34
+ return { x, y: 0, width: 0, height: 0 };
35
+ return {
36
+ x: x - hoverHalfWidth,
37
+ y: highest - lineHeight,
38
+ width: hoverHalfWidth * 2,
39
+ height: lowest - highest + lineHeight + DESCENDER,
40
+ };
41
+ }
42
+ /** How far a glyph reaches below its baseline, near enough for a hit area. */
43
+ const DESCENDER = 3;
44
+ //# sourceMappingURL=labelStackBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labelStackBox.js","sourceRoot":"","sources":["../../../src/mass/core/labelStackBox.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AA8B5D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,CAAS,EACT,SAA2C;IAE3C,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC;IAClD,IAAI,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACvC,IAAI,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACtC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,GAAG,OAAO;YAAE,OAAO,GAAG,QAAQ,CAAC;QAC3C,IAAI,QAAQ,GAAG,MAAM;YAAE,MAAM,GAAG,QAAQ,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAEvE,OAAO;QACL,CAAC,EAAE,CAAC,GAAG,cAAc;QACrB,CAAC,EAAE,OAAO,GAAG,UAAU;QACvB,KAAK,EAAE,cAAc,GAAG,CAAC;QACzB,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS;KAClD,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,SAAS,GAAG,CAAC,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Which peaks of a spectrum are worth writing a label beside.
3
+ *
4
+ * A centroid holds tens of thousands of peaks and a chart has room for a dozen
5
+ * labels, so something has to choose — and the choice is `ms-spectrum`'s slot
6
+ * mechanism rather than anything invented here. The window is cut into ten
7
+ * slots, the tallest peak of each is taken, and a peak falling in a slot that is
8
+ * already spoken for comes back marked `close`. **Dropping the marked ones is
9
+ * the whole of the selection**; what then still collides on a narrow chart is
10
+ * settled by `planPeakLabels`, which gives the room to the taller peak.
11
+ *
12
+ * The slots are cut from the *window* and not from the spectrum, which is what
13
+ * makes the choice follow the zoom: a survey scan has room to name its base peak
14
+ * and a handful of others, and the same spectrum zoomed onto one isotopologue
15
+ * cluster has room to name every line of it.
16
+ */
17
+ import type { MassPeakObject } from './centroidPeaks.ts';
18
+ import type { MassSpectrum } from './massSpectrum.ts';
19
+ /**
20
+ * How many slots the window is cut into.
21
+ *
22
+ * Ten is `ms-spectrum`'s own default and is kept rather than exposed: it is the
23
+ * number of labels a chart of any usual width can carry across it without one
24
+ * sitting on the next.
25
+ */
26
+ export declare const LABEL_SLOTS = 10;
27
+ /** How faint a peak may be, against the tallest one in the window, and still be labelled. */
28
+ export declare const LABEL_THRESHOLD = 0.01;
29
+ /** One peak that has earned a label, and where it sits in its centroid. */
30
+ export interface LabelledPeak extends MassPeakObject {
31
+ /** Its index in the centroid, which is how anything else about it is found. */
32
+ index: number;
33
+ }
34
+ /** The window the labels are chosen for, and how many there is room for. */
35
+ export interface SelectLabelledPeaksOptions {
36
+ /**
37
+ * Lowest m/z on screen.
38
+ * @default the m/z of the first peak
39
+ */
40
+ from?: number;
41
+ /**
42
+ * Highest m/z on screen.
43
+ * @default the m/z of the last peak
44
+ */
45
+ to?: number;
46
+ /**
47
+ * The tallest intensity the window shows. A peak above it has its tip off the
48
+ * top of the plot, so a label placed there would name a stick whose height
49
+ * cannot be read anyway — and leaving it out is also what puts the threshold
50
+ * back on the tallest peak that *is* on screen, which is the whole point of
51
+ * zooming into a baseline.
52
+ * @default Number.POSITIVE_INFINITY
53
+ */
54
+ maxValue?: number;
55
+ /**
56
+ * How many peaks are labelled at most, the most intense first.
57
+ * @default DEFAULT_LABEL_LIMIT
58
+ */
59
+ limit?: number;
60
+ /**
61
+ * How faint a peak may be against the tallest one in the window.
62
+ * @default LABEL_THRESHOLD
63
+ */
64
+ threshold?: number;
65
+ }
66
+ /**
67
+ * The peaks of a window that have earned a label.
68
+ *
69
+ * The peak objects are read off the centroid's cache rather than rebuilt, so a
70
+ * zoom costs the selection alone and not a fresh object per peak of the
71
+ * spectrum. What comes back is a copy each time — `getBestPeaks` clones what it
72
+ * keeps, since it writes its `close` verdict onto the peak — so nothing here can
73
+ * scribble on the cache every other reader shares.
74
+ * @param spectrum - The spectrum whose peaks are being labelled.
75
+ * @param options - The window, and how many labels there is room for.
76
+ * @returns The chosen peaks, in increasing m/z, with the crowded ones dropped.
77
+ */
78
+ export declare function selectLabelledPeaks(spectrum: MassSpectrum, options?: SelectLabelledPeaksOptions): LabelledPeak[];
79
+ //# sourceMappingURL=labelledPeaks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labelledPeaks.d.ts","sourceRoot":"","sources":["../../../src/mass/core/labelledPeaks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,6FAA6F;AAC7F,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,2EAA2E;AAC3E,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4EAA4E;AAC5E,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,0BAA+B,GACvC,YAAY,EAAE,CAqChB"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Which peaks of a spectrum are worth writing a label beside.
3
+ *
4
+ * A centroid holds tens of thousands of peaks and a chart has room for a dozen
5
+ * labels, so something has to choose — and the choice is `ms-spectrum`'s slot
6
+ * mechanism rather than anything invented here. The window is cut into ten
7
+ * slots, the tallest peak of each is taken, and a peak falling in a slot that is
8
+ * already spoken for comes back marked `close`. **Dropping the marked ones is
9
+ * the whole of the selection**; what then still collides on a narrow chart is
10
+ * settled by `planPeakLabels`, which gives the room to the taller peak.
11
+ *
12
+ * The slots are cut from the *window* and not from the spectrum, which is what
13
+ * makes the choice follow the zoom: a survey scan has room to name its base peak
14
+ * and a handful of others, and the same spectrum zoomed onto one isotopologue
15
+ * cluster has room to name every line of it.
16
+ */
17
+ import { xFindClosestIndex } from 'ml-spectra-processing';
18
+ import { getBestPeaks } from 'ms-spectrum';
19
+ import { centroidPeakObjects } from "./centroidPeaks.js";
20
+ import { DEFAULT_LABEL_LIMIT } from "./massState.js";
21
+ /**
22
+ * How many slots the window is cut into.
23
+ *
24
+ * Ten is `ms-spectrum`'s own default and is kept rather than exposed: it is the
25
+ * number of labels a chart of any usual width can carry across it without one
26
+ * sitting on the next.
27
+ */
28
+ export const LABEL_SLOTS = 10;
29
+ /** How faint a peak may be, against the tallest one in the window, and still be labelled. */
30
+ export const LABEL_THRESHOLD = 0.01;
31
+ /**
32
+ * The peaks of a window that have earned a label.
33
+ *
34
+ * The peak objects are read off the centroid's cache rather than rebuilt, so a
35
+ * zoom costs the selection alone and not a fresh object per peak of the
36
+ * spectrum. What comes back is a copy each time — `getBestPeaks` clones what it
37
+ * keeps, since it writes its `close` verdict onto the peak — so nothing here can
38
+ * scribble on the cache every other reader shares.
39
+ * @param spectrum - The spectrum whose peaks are being labelled.
40
+ * @param options - The window, and how many labels there is room for.
41
+ * @returns The chosen peaks, in increasing m/z, with the crowded ones dropped.
42
+ */
43
+ export function selectLabelledPeaks(spectrum, options = {}) {
44
+ const { from, to, maxValue, limit = DEFAULT_LABEL_LIMIT, threshold = LABEL_THRESHOLD, } = options;
45
+ const { centroid } = spectrum;
46
+ const peaks = centroidPeakObjects(centroid);
47
+ // `getBestPeaks` reads the window it was given no bounds for off the first and
48
+ // last peak, which it cannot do when there are none.
49
+ if (peaks.length === 0 || limit <= 0)
50
+ return [];
51
+ const best = getBestPeaks(peaks, {
52
+ from,
53
+ to,
54
+ maxValue,
55
+ limit,
56
+ threshold,
57
+ numberSlots: LABEL_SLOTS,
58
+ });
59
+ const labelled = [];
60
+ for (const peak of best) {
61
+ // A peak the slots called close stands within a slot of one already
62
+ // labelled, so labelling it too writes one label over the other.
63
+ if (peak.close)
64
+ continue;
65
+ labelled.push({
66
+ x: peak.x,
67
+ y: peak.y,
68
+ charge: peak.charge,
69
+ index: xFindClosestIndex(centroid.x, peak.x),
70
+ });
71
+ }
72
+ return labelled;
73
+ }
74
+ //# sourceMappingURL=labelledPeaks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labelledPeaks.js","sourceRoot":"","sources":["../../../src/mass/core/labelledPeaks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAE9B,6FAA6F;AAC7F,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAyCpC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAsB,EACtB,UAAsC,EAAE;IAExC,MAAM,EACJ,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,KAAK,GAAG,mBAAmB,EAC3B,SAAS,GAAG,eAAe,GAC5B,GAAG,OAAO,CAAC;IAEZ,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAC9B,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC5C,+EAA+E;IAC/E,qDAAqD;IACrD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAEhD,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE;QAC/B,IAAI;QACJ,EAAE;QACF,QAAQ;QACR,KAAK;QACL,SAAS;QACT,WAAW,EAAE,WAAW;KACzB,CAAkB,CAAC;IAEpB,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,oEAAoE;QACpE,iEAAiE;QACjE,IAAI,IAAI,CAAC,KAAK;YAAE,SAAS;QACzB,QAAQ,CAAC,IAAI,CAAC;YACZ,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * One entry point for whatever was dropped, opened or pasted.
3
+ *
4
+ * The format is decided from the bytes and the right reader is called, so a
5
+ * caller hands over a file and gets spectra back without knowing what it turned
6
+ * out to be. Each reader is imported only once the bytes turn out to need it, so
7
+ * a page that never opens a JCAMP never downloads its converter.
8
+ */
9
+ import type { LoadedMassSpectrum } from './loadedMassSpectrum.ts';
10
+ /**
11
+ * How many spectra one file is read for at most.
12
+ *
13
+ * A JCAMP of a GC/MS run writes a page per scan, thousands of them, and a list
14
+ * of thousands of rows is a list nobody can find anything in. A hundred keeps
15
+ * every file somebody exported deliberately and stops a whole run at its start,
16
+ * where saying so is better than hanging the page.
17
+ */
18
+ export declare const DEFAULT_MAX_SPECTRA = 100;
19
+ /** How a file is read. */
20
+ export interface LoadMassSpectraOptions {
21
+ /**
22
+ * The file's name, which decides the reader when the content is silent and is
23
+ * carried onto every spectrum read out of it.
24
+ * @default undefined
25
+ */
26
+ fileName?: string;
27
+ /**
28
+ * At most how many spectra are read out of the file.
29
+ * @default DEFAULT_MAX_SPECTRA
30
+ */
31
+ maxSpectra?: number;
32
+ }
33
+ /** What a file turned out to hold. */
34
+ export interface LoadMassSpectraResult {
35
+ /** The spectra it held, in the order the file wrote them. */
36
+ spectra: LoadedMassSpectrum[];
37
+ /** What it turned out to be. */
38
+ format: 'jcamp' | 'text';
39
+ /**
40
+ * How many spectra `maxSpectra` left unread, `0` when none. Reported rather
41
+ * than passed over in silence: a run truncated without a word looks exactly
42
+ * like a run that only held a hundred scans.
43
+ */
44
+ dropped: number;
45
+ }
46
+ /**
47
+ * Read every mass spectrum a file holds.
48
+ * @param data - The file, as bytes, or the pasted text.
49
+ * @param options - The file's name, and how many spectra to read at most.
50
+ * @returns The spectra, the format they were read from and how many were left
51
+ * unread.
52
+ * @throws {Error} When nothing in the file names a format this can read, or when
53
+ * the reader for that format gave up on it — always with a sentence naming the
54
+ * file.
55
+ */
56
+ export declare function loadMassSpectra(data: Uint8Array | ArrayBuffer | string, options?: LoadMassSpectraOptions): Promise<LoadMassSpectraResult>;
57
+ //# sourceMappingURL=loadMassSpectra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadMassSpectra.d.ts","sourceRoot":"","sources":["../../../src/mass/core/loadMassSpectra.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,0BAA0B;AAC1B,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,sCAAsC;AACtC,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,gCAAgC;IAChC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,EACvC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAmBhC"}