react-science 10.0.0 → 11.0.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 (480) hide show
  1. package/lib/components/accordion/accordion.d.ts +5 -0
  2. package/lib/components/accordion/accordion.d.ts.map +1 -1
  3. package/lib/components/accordion/accordion.js +6 -3
  4. package/lib/components/accordion/accordion.js.map +1 -1
  5. package/lib/components/accordion/accordion_context.d.ts +1 -0
  6. package/lib/components/accordion/accordion_context.d.ts.map +1 -1
  7. package/lib/components/accordion/accordion_context.js +2 -1
  8. package/lib/components/accordion/accordion_context.js.map +1 -1
  9. package/lib/components/accordion/accordion_context.provider.d.ts +1 -0
  10. package/lib/components/accordion/accordion_context.provider.d.ts.map +1 -1
  11. package/lib/components/accordion/accordion_context.provider.js +4 -2
  12. package/lib/components/accordion/accordion_context.provider.js.map +1 -1
  13. package/lib/components/accordion/accordion_context.state.d.ts +1 -0
  14. package/lib/components/accordion/accordion_context.state.d.ts.map +1 -1
  15. package/lib/components/accordion/accordion_context.state.js.map +1 -1
  16. package/lib/components/color-picker/preview/ColorPreview.d.ts +8 -1
  17. package/lib/components/color-picker/preview/ColorPreview.d.ts.map +1 -1
  18. package/lib/components/color-picker/preview/ColorPreview.js.map +1 -1
  19. package/package.json +39 -47
  20. package/src/components/accordion/accordion.tsx +31 -17
  21. package/src/components/accordion/accordion_context.provider.tsx +8 -3
  22. package/src/components/accordion/accordion_context.state.ts +1 -0
  23. package/src/components/accordion/accordion_context.ts +2 -1
  24. package/src/components/color-picker/preview/ColorPreview.tsx +5 -1
  25. package/lib/app/about/AboutDialogToolbarButton.d.ts +0 -10
  26. package/lib/app/about/AboutDialogToolbarButton.d.ts.map +0 -1
  27. package/lib/app/about/AboutDialogToolbarButton.js +0 -9
  28. package/lib/app/about/AboutDialogToolbarButton.js.map +0 -1
  29. package/lib/app/about/index.d.ts +0 -2
  30. package/lib/app/about/index.d.ts.map +0 -1
  31. package/lib/app/about/index.js +0 -2
  32. package/lib/app/about/index.js.map +0 -1
  33. package/lib/app/explorer/ExplorerPlotView.d.ts +0 -2
  34. package/lib/app/explorer/ExplorerPlotView.d.ts.map +0 -1
  35. package/lib/app/explorer/ExplorerPlotView.js +0 -16
  36. package/lib/app/explorer/ExplorerPlotView.js.map +0 -1
  37. package/lib/app/explorer/MeasurementExplorer.d.ts +0 -11
  38. package/lib/app/explorer/MeasurementExplorer.d.ts.map +0 -1
  39. package/lib/app/explorer/MeasurementExplorer.js +0 -114
  40. package/lib/app/explorer/MeasurementExplorer.js.map +0 -1
  41. package/lib/app/explorer/MeasurementExplorerWithState.d.ts +0 -2
  42. package/lib/app/explorer/MeasurementExplorerWithState.d.ts.map +0 -1
  43. package/lib/app/explorer/MeasurementExplorerWithState.js +0 -11
  44. package/lib/app/explorer/MeasurementExplorerWithState.js.map +0 -1
  45. package/lib/app/explorer/index.d.ts +0 -3
  46. package/lib/app/explorer/index.d.ts.map +0 -1
  47. package/lib/app/explorer/index.js +0 -3
  48. package/lib/app/explorer/index.js.map +0 -1
  49. package/lib/app/helpers/MeasurementPlot.d.ts +0 -22
  50. package/lib/app/helpers/MeasurementPlot.d.ts.map +0 -1
  51. package/lib/app/helpers/MeasurementPlot.js +0 -39
  52. package/lib/app/helpers/MeasurementPlot.js.map +0 -1
  53. package/lib/app/helpers/MeasurementVariableSelect.d.ts +0 -9
  54. package/lib/app/helpers/MeasurementVariableSelect.d.ts.map +0 -1
  55. package/lib/app/helpers/MeasurementVariableSelect.js +0 -11
  56. package/lib/app/helpers/MeasurementVariableSelect.js.map +0 -1
  57. package/lib/app/helpers/getColorFromConfig.d.ts +0 -3
  58. package/lib/app/helpers/getColorFromConfig.d.ts.map +0 -1
  59. package/lib/app/helpers/getColorFromConfig.js +0 -11
  60. package/lib/app/helpers/getColorFromConfig.js.map +0 -1
  61. package/lib/app/helpers/index.d.ts +0 -6
  62. package/lib/app/helpers/index.d.ts.map +0 -1
  63. package/lib/app/helpers/index.js +0 -6
  64. package/lib/app/helpers/index.js.map +0 -1
  65. package/lib/app/helpers/react-plot.d.ts +0 -8
  66. package/lib/app/helpers/react-plot.d.ts.map +0 -1
  67. package/lib/app/helpers/react-plot.js +0 -44
  68. package/lib/app/helpers/react-plot.js.map +0 -1
  69. package/lib/app/helpers/splitEntries.d.ts +0 -6
  70. package/lib/app/helpers/splitEntries.d.ts.map +0 -1
  71. package/lib/app/helpers/splitEntries.js +0 -16
  72. package/lib/app/helpers/splitEntries.js.map +0 -1
  73. package/lib/app/hooks/file-loading.d.ts +0 -9
  74. package/lib/app/hooks/file-loading.d.ts.map +0 -1
  75. package/lib/app/hooks/file-loading.js +0 -36
  76. package/lib/app/hooks/file-loading.js.map +0 -1
  77. package/lib/app/hooks/index.d.ts +0 -2
  78. package/lib/app/hooks/index.d.ts.map +0 -1
  79. package/lib/app/hooks/index.js +0 -2
  80. package/lib/app/hooks/index.js.map +0 -1
  81. package/lib/app/index.d.ts +0 -6
  82. package/lib/app/index.d.ts.map +0 -1
  83. package/lib/app/index.js +0 -6
  84. package/lib/app/index.js.map +0 -1
  85. package/lib/app/kinds/index.d.ts +0 -4
  86. package/lib/app/kinds/index.d.ts.map +0 -1
  87. package/lib/app/kinds/index.js +0 -4
  88. package/lib/app/kinds/index.js.map +0 -1
  89. package/lib/app/kinds/ir/IrPeaksPanel.d.ts +0 -25
  90. package/lib/app/kinds/ir/IrPeaksPanel.d.ts.map +0 -1
  91. package/lib/app/kinds/ir/IrPeaksPanel.js +0 -28
  92. package/lib/app/kinds/ir/IrPeaksPanel.js.map +0 -1
  93. package/lib/app/kinds/ir/index.d.ts +0 -2
  94. package/lib/app/kinds/ir/index.d.ts.map +0 -1
  95. package/lib/app/kinds/ir/index.js +0 -2
  96. package/lib/app/kinds/ir/index.js.map +0 -1
  97. package/lib/app/kinds/iv/index.d.ts +0 -2
  98. package/lib/app/kinds/iv/index.d.ts.map +0 -1
  99. package/lib/app/kinds/iv/index.js +0 -2
  100. package/lib/app/kinds/iv/index.js.map +0 -1
  101. package/lib/app/kinds/iv/plot-view/IvMeasurementsPlot.d.ts +0 -2
  102. package/lib/app/kinds/iv/plot-view/IvMeasurementsPlot.d.ts.map +0 -1
  103. package/lib/app/kinds/iv/plot-view/IvMeasurementsPlot.js +0 -50
  104. package/lib/app/kinds/iv/plot-view/IvMeasurementsPlot.js.map +0 -1
  105. package/lib/app/kinds/iv/plot-view/IvPlotVariablesSelector.d.ts +0 -2
  106. package/lib/app/kinds/iv/plot-view/IvPlotVariablesSelector.d.ts.map +0 -1
  107. package/lib/app/kinds/iv/plot-view/IvPlotVariablesSelector.js +0 -30
  108. package/lib/app/kinds/iv/plot-view/IvPlotVariablesSelector.js.map +0 -1
  109. package/lib/app/kinds/iv/plot-view/IvPlotView.d.ts +0 -2
  110. package/lib/app/kinds/iv/plot-view/IvPlotView.d.ts.map +0 -1
  111. package/lib/app/kinds/iv/plot-view/IvPlotView.js +0 -32
  112. package/lib/app/kinds/iv/plot-view/IvPlotView.js.map +0 -1
  113. package/lib/app/kinds/iv/plot-view/IvSeries.d.ts +0 -11
  114. package/lib/app/kinds/iv/plot-view/IvSeries.d.ts.map +0 -1
  115. package/lib/app/kinds/iv/plot-view/IvSeries.js +0 -23
  116. package/lib/app/kinds/iv/plot-view/IvSeries.js.map +0 -1
  117. package/lib/app/kinds/mass/MassPlotView.d.ts +0 -2
  118. package/lib/app/kinds/mass/MassPlotView.d.ts.map +0 -1
  119. package/lib/app/kinds/mass/MassPlotView.js +0 -11
  120. package/lib/app/kinds/mass/MassPlotView.js.map +0 -1
  121. package/lib/app/kinds/mass/MeasurementMassPlot.d.ts +0 -3
  122. package/lib/app/kinds/mass/MeasurementMassPlot.d.ts.map +0 -1
  123. package/lib/app/kinds/mass/MeasurementMassPlot.js +0 -75
  124. package/lib/app/kinds/mass/MeasurementMassPlot.js.map +0 -1
  125. package/lib/app/kinds/mass/index.d.ts +0 -3
  126. package/lib/app/kinds/mass/index.d.ts.map +0 -1
  127. package/lib/app/kinds/mass/index.js +0 -3
  128. package/lib/app/kinds/mass/index.js.map +0 -1
  129. package/lib/app/panels/SignalProcessingPanel.d.ts +0 -11
  130. package/lib/app/panels/SignalProcessingPanel.d.ts.map +0 -1
  131. package/lib/app/panels/SignalProcessingPanel.js +0 -104
  132. package/lib/app/panels/SignalProcessingPanel.js.map +0 -1
  133. package/lib/app/panels/index.d.ts +0 -5
  134. package/lib/app/panels/index.d.ts.map +0 -1
  135. package/lib/app/panels/index.js +0 -5
  136. package/lib/app/panels/index.js.map +0 -1
  137. package/lib/app/panels/measurement-config/MeasurementConfigPanel.d.ts +0 -2
  138. package/lib/app/panels/measurement-config/MeasurementConfigPanel.d.ts.map +0 -1
  139. package/lib/app/panels/measurement-config/MeasurementConfigPanel.js +0 -25
  140. package/lib/app/panels/measurement-config/MeasurementConfigPanel.js.map +0 -1
  141. package/lib/app/panels/measurement-config/MeasurementConfigPanelAccordion.d.ts +0 -2
  142. package/lib/app/panels/measurement-config/MeasurementConfigPanelAccordion.d.ts.map +0 -1
  143. package/lib/app/panels/measurement-config/MeasurementConfigPanelAccordion.js +0 -14
  144. package/lib/app/panels/measurement-config/MeasurementConfigPanelAccordion.js.map +0 -1
  145. package/lib/app/panels/measurement-config/index.d.ts +0 -3
  146. package/lib/app/panels/measurement-config/index.d.ts.map +0 -1
  147. package/lib/app/panels/measurement-config/index.js +0 -3
  148. package/lib/app/panels/measurement-config/index.js.map +0 -1
  149. package/lib/app/panels/measurement-info/MeasurementInfoPanel.d.ts +0 -2
  150. package/lib/app/panels/measurement-info/MeasurementInfoPanel.d.ts.map +0 -1
  151. package/lib/app/panels/measurement-info/MeasurementInfoPanel.js +0 -23
  152. package/lib/app/panels/measurement-info/MeasurementInfoPanel.js.map +0 -1
  153. package/lib/app/panels/measurement-info/MeasurementInfoPanelAccordion.d.ts +0 -2
  154. package/lib/app/panels/measurement-info/MeasurementInfoPanelAccordion.d.ts.map +0 -1
  155. package/lib/app/panels/measurement-info/MeasurementInfoPanelAccordion.js +0 -7
  156. package/lib/app/panels/measurement-info/MeasurementInfoPanelAccordion.js.map +0 -1
  157. package/lib/app/panels/measurement-info/index.d.ts +0 -3
  158. package/lib/app/panels/measurement-info/index.d.ts.map +0 -1
  159. package/lib/app/panels/measurement-info/index.js +0 -3
  160. package/lib/app/panels/measurement-info/index.js.map +0 -1
  161. package/lib/app/panels/measurements/MeasurementCheckbox.d.ts +0 -8
  162. package/lib/app/panels/measurements/MeasurementCheckbox.d.ts.map +0 -1
  163. package/lib/app/panels/measurements/MeasurementCheckbox.js +0 -22
  164. package/lib/app/panels/measurements/MeasurementCheckbox.js.map +0 -1
  165. package/lib/app/panels/measurements/MeasurementColorPreview.d.ts +0 -9
  166. package/lib/app/panels/measurements/MeasurementColorPreview.d.ts.map +0 -1
  167. package/lib/app/panels/measurements/MeasurementColorPreview.js +0 -45
  168. package/lib/app/panels/measurements/MeasurementColorPreview.js.map +0 -1
  169. package/lib/app/panels/measurements/MeasurementVisibilityToggle.d.ts +0 -12
  170. package/lib/app/panels/measurements/MeasurementVisibilityToggle.d.ts.map +0 -1
  171. package/lib/app/panels/measurements/MeasurementVisibilityToggle.js +0 -26
  172. package/lib/app/panels/measurements/MeasurementVisibilityToggle.js.map +0 -1
  173. package/lib/app/panels/measurements/MeasurementsPanel.d.ts +0 -4
  174. package/lib/app/panels/measurements/MeasurementsPanel.d.ts.map +0 -1
  175. package/lib/app/panels/measurements/MeasurementsPanel.js +0 -42
  176. package/lib/app/panels/measurements/MeasurementsPanel.js.map +0 -1
  177. package/lib/app/panels/measurements/MeasurementsPanelAccordion.d.ts +0 -2
  178. package/lib/app/panels/measurements/MeasurementsPanelAccordion.d.ts.map +0 -1
  179. package/lib/app/panels/measurements/MeasurementsPanelAccordion.js +0 -20
  180. package/lib/app/panels/measurements/MeasurementsPanelAccordion.js.map +0 -1
  181. package/lib/app/panels/measurements/MeasurementsTable.d.ts +0 -6
  182. package/lib/app/panels/measurements/MeasurementsTable.d.ts.map +0 -1
  183. package/lib/app/panels/measurements/MeasurementsTable.js +0 -159
  184. package/lib/app/panels/measurements/MeasurementsTable.js.map +0 -1
  185. package/lib/app/panels/measurements/index.d.ts +0 -9
  186. package/lib/app/panels/measurements/index.d.ts.map +0 -1
  187. package/lib/app/panels/measurements/index.js +0 -9
  188. package/lib/app/panels/measurements/index.js.map +0 -1
  189. package/lib/app/panels/measurements/measurement_panel_context.d.ts +0 -7
  190. package/lib/app/panels/measurements/measurement_panel_context.d.ts.map +0 -1
  191. package/lib/app/panels/measurements/measurement_panel_context.js +0 -10
  192. package/lib/app/panels/measurements/measurement_panel_context.js.map +0 -1
  193. package/lib/app/panels/measurements/measurement_panel_context.provider.d.ts +0 -7
  194. package/lib/app/panels/measurements/measurement_panel_context.provider.d.ts.map +0 -1
  195. package/lib/app/panels/measurements/measurement_panel_context.provider.js +0 -6
  196. package/lib/app/panels/measurements/measurement_panel_context.provider.js.map +0 -1
  197. package/lib/app-data/enhancers/enhance.d.ts +0 -8
  198. package/lib/app-data/enhancers/enhance.d.ts.map +0 -1
  199. package/lib/app-data/enhancers/enhance.js +0 -13
  200. package/lib/app-data/enhancers/enhance.js.map +0 -1
  201. package/lib/app-data/enhancers/index.d.ts +0 -2
  202. package/lib/app-data/enhancers/index.d.ts.map +0 -1
  203. package/lib/app-data/enhancers/index.js +0 -2
  204. package/lib/app-data/enhancers/index.js.map +0 -1
  205. package/lib/app-data/helpers/index.d.ts +0 -2
  206. package/lib/app-data/helpers/index.d.ts.map +0 -1
  207. package/lib/app-data/helpers/index.js +0 -2
  208. package/lib/app-data/helpers/index.js.map +0 -1
  209. package/lib/app-data/helpers/variables.d.ts +0 -6
  210. package/lib/app-data/helpers/variables.d.ts.map +0 -1
  211. package/lib/app-data/helpers/variables.js +0 -20
  212. package/lib/app-data/helpers/variables.js.map +0 -1
  213. package/lib/app-data/index.d.ts +0 -7
  214. package/lib/app-data/index.d.ts.map +0 -1
  215. package/lib/app-data/index.js +0 -7
  216. package/lib/app-data/index.js.map +0 -1
  217. package/lib/app-data/kinds/index.d.ts +0 -3
  218. package/lib/app-data/kinds/index.d.ts.map +0 -1
  219. package/lib/app-data/kinds/index.js +0 -3
  220. package/lib/app-data/kinds/index.js.map +0 -1
  221. package/lib/app-data/kinds/ir/IrMeasurement.d.ts +0 -13
  222. package/lib/app-data/kinds/ir/IrMeasurement.d.ts.map +0 -1
  223. package/lib/app-data/kinds/ir/IrMeasurement.js +0 -2
  224. package/lib/app-data/kinds/ir/IrMeasurement.js.map +0 -1
  225. package/lib/app-data/kinds/ir/IrPeak.d.ts +0 -8
  226. package/lib/app-data/kinds/ir/IrPeak.d.ts.map +0 -1
  227. package/lib/app-data/kinds/ir/IrPeak.js +0 -2
  228. package/lib/app-data/kinds/ir/IrPeak.js.map +0 -1
  229. package/lib/app-data/kinds/ir/index.d.ts +0 -5
  230. package/lib/app-data/kinds/ir/index.d.ts.map +0 -1
  231. package/lib/app-data/kinds/ir/index.js +0 -5
  232. package/lib/app-data/kinds/ir/index.js.map +0 -1
  233. package/lib/app-data/kinds/ir/irAutoPeakPickingEnhancer.d.ts +0 -20
  234. package/lib/app-data/kinds/ir/irAutoPeakPickingEnhancer.d.ts.map +0 -1
  235. package/lib/app-data/kinds/ir/irAutoPeakPickingEnhancer.js +0 -50
  236. package/lib/app-data/kinds/ir/irAutoPeakPickingEnhancer.js.map +0 -1
  237. package/lib/app-data/kinds/ir/irMeasurementEnhancer.d.ts +0 -8
  238. package/lib/app-data/kinds/ir/irMeasurementEnhancer.d.ts.map +0 -1
  239. package/lib/app-data/kinds/ir/irMeasurementEnhancer.js +0 -47
  240. package/lib/app-data/kinds/ir/irMeasurementEnhancer.js.map +0 -1
  241. package/lib/app-data/kinds/iv/IvMeasurement.d.ts +0 -3
  242. package/lib/app-data/kinds/iv/IvMeasurement.d.ts.map +0 -1
  243. package/lib/app-data/kinds/iv/IvMeasurement.js +0 -2
  244. package/lib/app-data/kinds/iv/IvMeasurement.js.map +0 -1
  245. package/lib/app-data/kinds/iv/index.d.ts +0 -2
  246. package/lib/app-data/kinds/iv/index.d.ts.map +0 -1
  247. package/lib/app-data/kinds/iv/index.js +0 -2
  248. package/lib/app-data/kinds/iv/index.js.map +0 -1
  249. package/lib/app-data/loaders/biologicLoader.d.ts +0 -11
  250. package/lib/app-data/loaders/biologicLoader.d.ts.map +0 -1
  251. package/lib/app-data/loaders/biologicLoader.js +0 -141
  252. package/lib/app-data/loaders/biologicLoader.js.map +0 -1
  253. package/lib/app-data/loaders/cdfLoader.d.ts +0 -5
  254. package/lib/app-data/loaders/cdfLoader.d.ts.map +0 -1
  255. package/lib/app-data/loaders/cdfLoader.js +0 -164
  256. package/lib/app-data/loaders/cdfLoader.js.map +0 -1
  257. package/lib/app-data/loaders/index.d.ts +0 -9
  258. package/lib/app-data/loaders/index.d.ts.map +0 -1
  259. package/lib/app-data/loaders/index.js +0 -9
  260. package/lib/app-data/loaders/index.js.map +0 -1
  261. package/lib/app-data/loaders/jcampLoader.d.ts +0 -11
  262. package/lib/app-data/loaders/jcampLoader.d.ts.map +0 -1
  263. package/lib/app-data/loaders/jcampLoader.js +0 -100
  264. package/lib/app-data/loaders/jcampLoader.js.map +0 -1
  265. package/lib/app-data/loaders/loadMeasurements.d.ts +0 -14
  266. package/lib/app-data/loaders/loadMeasurements.d.ts.map +0 -1
  267. package/lib/app-data/loaders/loadMeasurements.js +0 -37
  268. package/lib/app-data/loaders/loadMeasurements.js.map +0 -1
  269. package/lib/app-data/loaders/proprietary/agilent/cary500Loader.d.ts +0 -5
  270. package/lib/app-data/loaders/proprietary/agilent/cary500Loader.d.ts.map +0 -1
  271. package/lib/app-data/loaders/proprietary/agilent/cary500Loader.js +0 -71
  272. package/lib/app-data/loaders/proprietary/agilent/cary500Loader.js.map +0 -1
  273. package/lib/app-data/loaders/spcLoader.d.ts +0 -11
  274. package/lib/app-data/loaders/spcLoader.d.ts.map +0 -1
  275. package/lib/app-data/loaders/spcLoader.js +0 -41
  276. package/lib/app-data/loaders/spcLoader.js.map +0 -1
  277. package/lib/app-data/loaders/utility/getMeasurementInfoFromFile.d.ts +0 -20
  278. package/lib/app-data/loaders/utility/getMeasurementInfoFromFile.d.ts.map +0 -1
  279. package/lib/app-data/loaders/utility/getMeasurementInfoFromFile.js +0 -17
  280. package/lib/app-data/loaders/utility/getMeasurementInfoFromFile.js.map +0 -1
  281. package/lib/app-data/loaders/utility/index.d.ts +0 -4
  282. package/lib/app-data/loaders/utility/index.d.ts.map +0 -1
  283. package/lib/app-data/loaders/utility/index.js +0 -4
  284. package/lib/app-data/loaders/utility/index.js.map +0 -1
  285. package/lib/app-data/loaders/utility/measurementLoader.d.ts +0 -6
  286. package/lib/app-data/loaders/utility/measurementLoader.d.ts.map +0 -1
  287. package/lib/app-data/loaders/utility/measurementLoader.js +0 -14
  288. package/lib/app-data/loaders/utility/measurementLoader.js.map +0 -1
  289. package/lib/app-data/loaders/utility/parserLog.d.ts +0 -10
  290. package/lib/app-data/loaders/utility/parserLog.d.ts.map +0 -1
  291. package/lib/app-data/loaders/utility/parserLog.js +0 -19
  292. package/lib/app-data/loaders/utility/parserLog.js.map +0 -1
  293. package/lib/app-data/loaders/wdfLoader.d.ts +0 -11
  294. package/lib/app-data/loaders/wdfLoader.d.ts.map +0 -1
  295. package/lib/app-data/loaders/wdfLoader.js +0 -104
  296. package/lib/app-data/loaders/wdfLoader.js.map +0 -1
  297. package/lib/app-data/state/app_state.actions.d.ts +0 -38
  298. package/lib/app-data/state/app_state.actions.d.ts.map +0 -1
  299. package/lib/app-data/state/app_state.actions.js +0 -2
  300. package/lib/app-data/state/app_state.actions.js.map +0 -1
  301. package/lib/app-data/state/app_state.d.ts +0 -1323
  302. package/lib/app-data/state/app_state.d.ts.map +0 -1
  303. package/lib/app-data/state/app_state.js +0 -43
  304. package/lib/app-data/state/app_state.js.map +0 -1
  305. package/lib/app-data/state/app_state.provider.d.ts +0 -5
  306. package/lib/app-data/state/app_state.provider.d.ts.map +0 -1
  307. package/lib/app-data/state/app_state.provider.js +0 -8
  308. package/lib/app-data/state/app_state.provider.js.map +0 -1
  309. package/lib/app-data/state/data/AppData.d.ts +0 -69
  310. package/lib/app-data/state/data/AppData.d.ts.map +0 -1
  311. package/lib/app-data/state/data/AppData.js +0 -2
  312. package/lib/app-data/state/data/AppData.js.map +0 -1
  313. package/lib/app-data/state/data/data.helpers.d.ts +0 -54
  314. package/lib/app-data/state/data/data.helpers.d.ts.map +0 -1
  315. package/lib/app-data/state/data/data.helpers.js +0 -119
  316. package/lib/app-data/state/data/data.helpers.js.map +0 -1
  317. package/lib/app-data/state/data/getEmptyAppData.d.ts +0 -3
  318. package/lib/app-data/state/data/getEmptyAppData.d.ts.map +0 -1
  319. package/lib/app-data/state/data/getEmptyAppData.js +0 -17
  320. package/lib/app-data/state/data/getEmptyAppData.js.map +0 -1
  321. package/lib/app-data/state/data/index.d.ts +0 -5
  322. package/lib/app-data/state/data/index.d.ts.map +0 -1
  323. package/lib/app-data/state/data/index.js +0 -5
  324. package/lib/app-data/state/data/index.js.map +0 -1
  325. package/lib/app-data/state/data/kinds.d.ts +0 -4
  326. package/lib/app-data/state/data/kinds.d.ts.map +0 -1
  327. package/lib/app-data/state/data/kinds.js +0 -14
  328. package/lib/app-data/state/data/kinds.js.map +0 -1
  329. package/lib/app-data/state/index.d.ts +0 -6
  330. package/lib/app-data/state/index.d.ts.map +0 -1
  331. package/lib/app-data/state/index.js +0 -6
  332. package/lib/app-data/state/index.js.map +0 -1
  333. package/lib/app-data/state/producers/app_state_producer.d.ts +0 -7
  334. package/lib/app-data/state/producers/app_state_producer.d.ts.map +0 -1
  335. package/lib/app-data/state/producers/app_state_producer.js +0 -38
  336. package/lib/app-data/state/producers/app_state_producer.js.map +0 -1
  337. package/lib/app-data/state/producers/index.d.ts +0 -2
  338. package/lib/app-data/state/producers/index.d.ts.map +0 -1
  339. package/lib/app-data/state/producers/index.js +0 -2
  340. package/lib/app-data/state/producers/index.js.map +0 -1
  341. package/lib/app-data/state/producers/measurements/addMeasurements.d.ts +0 -3
  342. package/lib/app-data/state/producers/measurements/addMeasurements.d.ts.map +0 -1
  343. package/lib/app-data/state/producers/measurements/addMeasurements.js +0 -55
  344. package/lib/app-data/state/producers/measurements/addMeasurements.js.map +0 -1
  345. package/lib/app-data/state/producers/measurements/measurements.d.ts +0 -10
  346. package/lib/app-data/state/producers/measurements/measurements.d.ts.map +0 -1
  347. package/lib/app-data/state/producers/measurements/measurements.js +0 -95
  348. package/lib/app-data/state/producers/measurements/measurements.js.map +0 -1
  349. package/lib/app-data/state/producers/plot-view/helpers/zoom.d.ts +0 -5
  350. package/lib/app-data/state/producers/plot-view/helpers/zoom.d.ts.map +0 -1
  351. package/lib/app-data/state/producers/plot-view/helpers/zoom.js +0 -43
  352. package/lib/app-data/state/producers/plot-view/helpers/zoom.js.map +0 -1
  353. package/lib/app-data/state/producers/plot-view/plot-view.d.ts +0 -5
  354. package/lib/app-data/state/producers/plot-view/plot-view.d.ts.map +0 -1
  355. package/lib/app-data/state/producers/plot-view/plot-view.js +0 -20
  356. package/lib/app-data/state/producers/plot-view/plot-view.js.map +0 -1
  357. package/lib/app-data/state/producers/types.d.ts +0 -8
  358. package/lib/app-data/state/producers/types.d.ts.map +0 -1
  359. package/lib/app-data/state/producers/types.js +0 -2
  360. package/lib/app-data/state/producers/types.js.map +0 -1
  361. package/lib/app-data/state/settings/app_settings.d.ts +0 -9
  362. package/lib/app-data/state/settings/app_settings.d.ts.map +0 -1
  363. package/lib/app-data/state/settings/app_settings.js +0 -2
  364. package/lib/app-data/state/settings/app_settings.js.map +0 -1
  365. package/lib/app-data/state/settings/get_empty_app_settings.d.ts +0 -3
  366. package/lib/app-data/state/settings/get_empty_app_settings.d.ts.map +0 -1
  367. package/lib/app-data/state/settings/get_empty_app_settings.js +0 -8
  368. package/lib/app-data/state/settings/get_empty_app_settings.js.map +0 -1
  369. package/lib/app-data/state/settings/index.d.ts +0 -3
  370. package/lib/app-data/state/settings/index.d.ts.map +0 -1
  371. package/lib/app-data/state/settings/index.js +0 -3
  372. package/lib/app-data/state/settings/index.js.map +0 -1
  373. package/lib/app-data/state/view/app_view.d.ts +0 -35
  374. package/lib/app-data/state/view/app_view.d.ts.map +0 -1
  375. package/lib/app-data/state/view/app_view.js +0 -2
  376. package/lib/app-data/state/view/app_view.js.map +0 -1
  377. package/lib/app-data/state/view/get_empty_app_view.d.ts +0 -3
  378. package/lib/app-data/state/view/get_empty_app_view.d.ts.map +0 -1
  379. package/lib/app-data/state/view/get_empty_app_view.js +0 -8
  380. package/lib/app-data/state/view/get_empty_app_view.js.map +0 -1
  381. package/lib/app-data/state/view/index.d.ts +0 -3
  382. package/lib/app-data/state/view/index.d.ts.map +0 -1
  383. package/lib/app-data/state/view/index.js +0 -3
  384. package/lib/app-data/state/view/index.js.map +0 -1
  385. package/lib/app-data/utils.d.ts +0 -2
  386. package/lib/app-data/utils.d.ts.map +0 -1
  387. package/lib/app-data/utils.js +0 -12
  388. package/lib/app-data/utils.js.map +0 -1
  389. package/src/app/about/AboutDialogToolbarButton.tsx +0 -35
  390. package/src/app/about/index.ts +0 -1
  391. package/src/app/explorer/ExplorerPlotView.tsx +0 -17
  392. package/src/app/explorer/MeasurementExplorer.tsx +0 -196
  393. package/src/app/explorer/MeasurementExplorerWithState.tsx +0 -19
  394. package/src/app/explorer/index.ts +0 -2
  395. package/src/app/helpers/MeasurementPlot.tsx +0 -92
  396. package/src/app/helpers/MeasurementVariableSelect.tsx +0 -33
  397. package/src/app/helpers/getColorFromConfig.ts +0 -12
  398. package/src/app/helpers/index.ts +0 -5
  399. package/src/app/helpers/react-plot.tsx +0 -130
  400. package/src/app/helpers/splitEntries.ts +0 -26
  401. package/src/app/hooks/file-loading.ts +0 -53
  402. package/src/app/hooks/index.ts +0 -1
  403. package/src/app/index.ts +0 -5
  404. package/src/app/kinds/index.ts +0 -3
  405. package/src/app/kinds/ir/IrPeaksPanel.tsx +0 -65
  406. package/src/app/kinds/ir/index.ts +0 -1
  407. package/src/app/kinds/iv/index.ts +0 -1
  408. package/src/app/kinds/iv/plot-view/IvMeasurementsPlot.tsx +0 -112
  409. package/src/app/kinds/iv/plot-view/IvPlotVariablesSelector.tsx +0 -63
  410. package/src/app/kinds/iv/plot-view/IvPlotView.tsx +0 -55
  411. package/src/app/kinds/iv/plot-view/IvSeries.tsx +0 -37
  412. package/src/app/kinds/mass/MassPlotView.tsx +0 -19
  413. package/src/app/kinds/mass/MeasurementMassPlot.tsx +0 -142
  414. package/src/app/kinds/mass/index.ts +0 -2
  415. package/src/app/panels/SignalProcessingPanel.tsx +0 -218
  416. package/src/app/panels/index.ts +0 -4
  417. package/src/app/panels/measurement-config/MeasurementConfigPanel.tsx +0 -98
  418. package/src/app/panels/measurement-config/MeasurementConfigPanelAccordion.tsx +0 -26
  419. package/src/app/panels/measurement-config/index.ts +0 -2
  420. package/src/app/panels/measurement-info/MeasurementInfoPanel.tsx +0 -28
  421. package/src/app/panels/measurement-info/MeasurementInfoPanelAccordion.tsx +0 -11
  422. package/src/app/panels/measurement-info/index.ts +0 -2
  423. package/src/app/panels/measurements/MeasurementCheckbox.tsx +0 -37
  424. package/src/app/panels/measurements/MeasurementColorPreview.tsx +0 -99
  425. package/src/app/panels/measurements/MeasurementVisibilityToggle.tsx +0 -60
  426. package/src/app/panels/measurements/MeasurementsPanel.tsx +0 -86
  427. package/src/app/panels/measurements/MeasurementsPanelAccordion.tsx +0 -35
  428. package/src/app/panels/measurements/MeasurementsTable.tsx +0 -350
  429. package/src/app/panels/measurements/index.ts +0 -11
  430. package/src/app/panels/measurements/measurement_panel_context.provider.tsx +0 -18
  431. package/src/app/panels/measurements/measurement_panel_context.ts +0 -18
  432. package/src/app-data/enhancers/enhance.ts +0 -26
  433. package/src/app-data/enhancers/index.ts +0 -1
  434. package/src/app-data/helpers/index.ts +0 -1
  435. package/src/app-data/helpers/variables.ts +0 -29
  436. package/src/app-data/index.ts +0 -6
  437. package/src/app-data/kinds/index.ts +0 -2
  438. package/src/app-data/kinds/ir/IrMeasurement.ts +0 -15
  439. package/src/app-data/kinds/ir/IrPeak.ts +0 -8
  440. package/src/app-data/kinds/ir/index.ts +0 -4
  441. package/src/app-data/kinds/ir/irAutoPeakPickingEnhancer.ts +0 -94
  442. package/src/app-data/kinds/ir/irMeasurementEnhancer.ts +0 -51
  443. package/src/app-data/kinds/iv/IvMeasurement.ts +0 -3
  444. package/src/app-data/kinds/iv/index.ts +0 -1
  445. package/src/app-data/loaders/biologicLoader.ts +0 -166
  446. package/src/app-data/loaders/cdfLoader.ts +0 -206
  447. package/src/app-data/loaders/index.ts +0 -8
  448. package/src/app-data/loaders/jcampLoader.ts +0 -105
  449. package/src/app-data/loaders/loadMeasurements.ts +0 -53
  450. package/src/app-data/loaders/proprietary/agilent/cary500Loader.ts +0 -82
  451. package/src/app-data/loaders/spcLoader.ts +0 -55
  452. package/src/app-data/loaders/utility/getMeasurementInfoFromFile.ts +0 -21
  453. package/src/app-data/loaders/utility/index.ts +0 -3
  454. package/src/app-data/loaders/utility/measurementLoader.ts +0 -26
  455. package/src/app-data/loaders/utility/parserLog.ts +0 -39
  456. package/src/app-data/loaders/wdfLoader.ts +0 -140
  457. package/src/app-data/state/app_state.actions.ts +0 -49
  458. package/src/app-data/state/app_state.provider.tsx +0 -24
  459. package/src/app-data/state/app_state.ts +0 -70
  460. package/src/app-data/state/data/AppData.ts +0 -77
  461. package/src/app-data/state/data/data.helpers.ts +0 -192
  462. package/src/app-data/state/data/getEmptyAppData.ts +0 -18
  463. package/src/app-data/state/data/index.ts +0 -4
  464. package/src/app-data/state/data/kinds.ts +0 -16
  465. package/src/app-data/state/index.ts +0 -14
  466. package/src/app-data/state/producers/app_state_producer.ts +0 -65
  467. package/src/app-data/state/producers/index.ts +0 -1
  468. package/src/app-data/state/producers/measurements/addMeasurements.ts +0 -83
  469. package/src/app-data/state/producers/measurements/measurements.ts +0 -143
  470. package/src/app-data/state/producers/plot-view/helpers/zoom.ts +0 -63
  471. package/src/app-data/state/producers/plot-view/plot-view.ts +0 -29
  472. package/src/app-data/state/producers/types.ts +0 -11
  473. package/src/app-data/state/settings/app_settings.ts +0 -8
  474. package/src/app-data/state/settings/get_empty_app_settings.ts +0 -9
  475. package/src/app-data/state/settings/index.ts +0 -2
  476. package/src/app-data/state/view/app_view.ts +0 -29
  477. package/src/app-data/state/view/get_empty_app_view.ts +0 -9
  478. package/src/app-data/state/view/index.ts +0 -2
  479. package/src/app-data/utils.ts +0 -13
  480. package/src/test-utils.ts +0 -11
@@ -1,166 +0,0 @@
1
- import { parseMPR, parseMPT } from 'biologic-converter';
2
- import type { MeasurementVariable } from 'cheminfo-types';
3
- import type { FifoLogger } from 'fifo-logger';
4
- import type { FileCollection } from 'filelist-utils';
5
-
6
- import type { MeasurementBase, Measurements } from '../index.js';
7
-
8
- import { getMeasurementInfoFromFile } from './utility/getMeasurementInfoFromFile.js';
9
-
10
- /* the MeasurementBase has got a data key,
11
- and inside a variable key, compatible with this type */
12
- type MeasurementDataVariable = Record<string, MeasurementVariable>;
13
- /**
14
- *
15
- * @param fileCollection - the dragged file/files
16
- * @param logs - pass to append errors to the logs, it mutates the external array.
17
- * @returns - new measurements object to be merged
18
- */
19
- export async function biologicLoader(
20
- fileCollection: FileCollection,
21
- logger?: FifoLogger,
22
- ): Promise<Partial<Measurements>> {
23
- const measurements: Partial<Measurements> = {};
24
- const entries: MeasurementBase[] = [];
25
-
26
- for (const file of fileCollection.files) {
27
- try {
28
- if (/\.mpr$/i.test(file.name)) {
29
- // TODO: load in parallel
30
- // eslint-disable-next-line no-await-in-loop
31
- const mpr = parseMPR(await file.arrayBuffer());
32
- const meta = mpr.settings.variables;
33
- const info = getMeasurementInfoFromFile(
34
- file,
35
- `Experiment: ${meta.technique}`,
36
- );
37
- // puts the "useful" variables at x and y for default plot.
38
- const variables = preferredXY(meta.technique, mpr.data.variables);
39
- const result: MeasurementBase = {
40
- ...info,
41
- meta,
42
- data: [{ variables }],
43
- };
44
- entries.push(result);
45
- } else if (/\.mpt$/i.test(file.name)) {
46
- // TODO: load in parallel
47
- // eslint-disable-next-line no-await-in-loop
48
- const { data, settings } = parseMPT(await file.arrayBuffer());
49
- if (data.variables) {
50
- const metaData = settings?.variables;
51
- const info = getMeasurementInfoFromFile(
52
- file,
53
- metaData?.technique
54
- ? `Experiment: ${metaData.technique}`
55
- : file.name,
56
- );
57
- // puts the "useful" variables at x and y for default plot.
58
- const variables = preferredXY(metaData?.technique, data.variables);
59
- const result: MeasurementBase = {
60
- ...info,
61
- meta: metaData || {},
62
- data: [{ variables }],
63
- };
64
- entries.push(result);
65
- }
66
- }
67
- } catch (error) {
68
- //send error to UI to show to User ?
69
- if (error instanceof Error) {
70
- if (logger) {
71
- logger.error(error);
72
- } else {
73
- throw error;
74
- }
75
- }
76
- }
77
- }
78
- logger?.debug(`Loaded ${entries.length} entries with biologicLoader`);
79
- measurements.iv = { entries };
80
- return measurements;
81
- }
82
-
83
- /**
84
- * Each biologic experiment stores measurement variables (not just `x` and `y`) in the
85
- * `data.variables` object.
86
- * this function takes "useful ones", and place them as `x` and `y`.
87
- * so they are default for the plot.
88
- * @param technique technique used in the experiment
89
- * @param variables experiment variables
90
- * @returns the same data (and type) with rearranged variables.
91
- * (does not need return type as it is inferred)
92
- */
93
- function preferredXY(
94
- technique: string | undefined,
95
- variables: MeasurementDataVariable,
96
- ) {
97
- if (!technique) return variables;
98
-
99
- switch (technique) {
100
- case 'CA': {
101
- //Chronoamperometry or Chronocoulometry (distinguish?)
102
- variables = setDefault(variables, 'I', 'y');
103
- variables = setDefault(variables, 'time', 'x');
104
- break;
105
- }
106
- case 'CP': {
107
- //Chronopotentiometry. <average>
108
- variables = setDefault(variables, '<Ewe>', 'y');
109
- variables = setDefault(variables, 'time', 'x');
110
- break;
111
- }
112
- case 'CV': {
113
- //cyclic voltammetry. <average>
114
- variables = setDefault(variables, '<I>', 'y');
115
- variables = setDefault(variables, 'Ewe', 'x');
116
- break;
117
- }
118
- case 'GCPL': {
119
- variables = setDefault(variables, 'Ewe', 'y');
120
- variables = setDefault(variables, 'time', 'x');
121
- break;
122
- }
123
- case 'OCV': {
124
- variables = setDefault(variables, 'Ewe', 'y');
125
- variables = setDefault(variables, 'time', 'x');
126
- break;
127
- }
128
- default:
129
- break;
130
- }
131
- return variables;
132
- }
133
- /**
134
- * Stores object with "label" at either "x" or "y".
135
- * the data stored is still the same.
136
- * @param variables experimental variables
137
- * @param label label to search for in the variables object (time, potential, current, etc)
138
- * @param storeAt which key to move that data to
139
- * @returns the new variables object.
140
- */
141
- function setDefault(
142
- variables: MeasurementDataVariable,
143
- label: string,
144
- storeAt: 'x' | 'y',
145
- ) {
146
- for (const varum in variables) {
147
- // find the key with `label` (or skip if not found)
148
- if (
149
- variables[varum].label === label && //if not already at the right key
150
- varum !== storeAt
151
- ) {
152
- // populate key, if there is no data there.
153
- if (!variables[storeAt]) {
154
- variables[storeAt] = variables[varum];
155
- delete variables[varum];
156
- } else {
157
- // if the storeAt is already occupied, swap the two
158
- const originalX = variables[storeAt];
159
- const newX = variables[varum];
160
- variables[storeAt] = newX;
161
- variables[varum] = originalX;
162
- }
163
- }
164
- }
165
- return variables;
166
- }
@@ -1,206 +0,0 @@
1
- import type { FifoLogger } from 'fifo-logger';
2
- import type { FileCollection } from 'filelist-utils';
3
- import { NetCDFReader } from 'netcdfjs';
4
-
5
- import { assert } from '../../components/index.js';
6
- import type {
7
- MeasurementBase,
8
- MeasurementKind,
9
- Measurements,
10
- } from '../index.js';
11
-
12
- import { getMeasurementInfoFromFile } from './utility/index.js';
13
-
14
- export async function cdfLoader(
15
- fileCollection: FileCollection,
16
- logger?: FifoLogger,
17
- ): Promise<Partial<Measurements>> {
18
- const newMeasurements: Partial<Measurements> = {};
19
- let kind: MeasurementKind | undefined;
20
- let count = 0;
21
- for (const file of fileCollection) {
22
- if (/\.cdf$/i.test(file.name)) {
23
- try {
24
- // TODO: load in parallel
25
- // eslint-disable-next-line no-await-in-loop
26
- const reader = new NetCDFReader(await file.arrayBuffer());
27
-
28
- if (
29
- reader.dataVariableExists('mass_values') &&
30
- reader.dataVariableExists('time_values')
31
- ) {
32
- kind = 'gclcms';
33
- } else if (
34
- reader.dataVariableExists('ordinate_values') &&
35
- (reader.getAttribute('detector_name') as string | null)?.match(
36
- /dad|tic/i,
37
- )
38
- ) {
39
- kind = 'gclc';
40
- } else {
41
- return newMeasurements;
42
- }
43
-
44
- addMeta(reader, reader.globalAttributes);
45
- if (!newMeasurements[kind]) {
46
- newMeasurements[kind] = { entries: [] };
47
- }
48
- assert(
49
- newMeasurements[kind],
50
- 'Error while loading, kind is not defined',
51
- );
52
- const newMeasurement = {
53
- ...getMeasurementInfoFromFile(
54
- file,
55
- reader.getAttribute('experiment_title') as string,
56
- ),
57
- // @ts-expect-error meta is not defined in reader.
58
- meta: reader.header.meta,
59
- data:
60
- kind === 'gclcms'
61
- ? chromatogramWithMassSpectra(reader)
62
- : chromatogram(reader),
63
- };
64
- newMeasurements[kind]?.entries.push(newMeasurement);
65
- count++;
66
- } catch (error) {
67
- if (error instanceof Error) {
68
- //send error to UI ?
69
- if (logger) {
70
- logger.error(error);
71
- } else {
72
- throw error;
73
- }
74
- }
75
- }
76
- }
77
- }
78
- logger?.debug(`Loaded ${count} measurements with cdfLoader`);
79
- return newMeasurements;
80
- }
81
-
82
- function chromatogramWithMassSpectra(
83
- reader: NetCDFReader,
84
- ): MeasurementBase['data'] {
85
- // Taken from: https://github.com/cheminfo/netcdf-gcms
86
- const pointCount = reader.getDataVariable('point_count') as number[];
87
- const massValues = reader.getDataVariable('mass_values') as number[];
88
- const intensityValues = reader.getDataVariable(
89
- 'intensity_values',
90
- ) as number[];
91
- const times = reader.getDataVariable('scan_acquisition_time');
92
- const tics = reader.getDataVariable('total_intensity');
93
-
94
- let index = 0;
95
- const allMasses: Float64Array[] = [];
96
- const allIntensities: Float64Array[] = [];
97
- for (const size of pointCount) {
98
- const masses = new Float64Array(size);
99
- const intensities = new Float64Array(size);
100
- for (let j = 0; j < size; j++) {
101
- masses[j] = massValues[index];
102
- intensities[j] = intensityValues[index++];
103
- }
104
- allIntensities.push(intensities);
105
- allMasses.push(masses);
106
- }
107
- const data: MeasurementBase['data'] = [];
108
- for (let i = 0; i < times.length; i++) {
109
- data.push({
110
- info: {
111
- time: { value: times[i], units: 's' },
112
- tic: tics[i],
113
- },
114
- variables: {
115
- x: {
116
- symbol: 'X',
117
- label: 'm/z',
118
- units: '',
119
- data: allMasses[i] || [],
120
- },
121
- y: {
122
- symbol: 'Y',
123
- label: 'relative intensity',
124
- units: '',
125
- data: allIntensities[i] || [],
126
- },
127
- },
128
- });
129
- }
130
- return data;
131
- }
132
-
133
- function chromatogram(reader: NetCDFReader): MeasurementBase['data'] {
134
- // Taken from: https://github.com/cheminfo/netcdf-gcms
135
- const data: MeasurementBase['data'] = [];
136
- const intensities = reader.getDataVariable('ordinate_values') as number[];
137
- const numberPoints = intensities.length;
138
- const detector = reader.getAttribute('detector_name') as string;
139
- let channel: string;
140
- if (/dad/i.test(detector)) {
141
- const uvNumber = detector.match(/.*Sig=(?<uvNumber>\d+).*/)?.groups
142
- ?.uvNumber;
143
- channel = `uv${Number(uvNumber) || ''}`;
144
- } else if (/tic/i.test(detector)) {
145
- channel = 'tic';
146
- } else {
147
- channel = 'unknown';
148
- }
149
- const delayTime = reader.getDataVariable('actual_delay_time')[0] as number;
150
- const runtimeLength: number = reader.getDataVariable(
151
- 'actual_run_time_length',
152
- )[0] as number;
153
- let samplingInterval;
154
- if (reader.dataVariableExists('actual_sampling_interval')) {
155
- samplingInterval = reader.getDataVariable(
156
- 'actual_sampling_interval',
157
- )[0] as number;
158
-
159
- if (
160
- Math.abs(delayTime + samplingInterval * numberPoints - runtimeLength) > 3
161
- ) {
162
- throw new Error(
163
- 'The expected last time does not correspond to the runtimeLength',
164
- );
165
- }
166
- } else {
167
- samplingInterval = (runtimeLength - delayTime) / numberPoints;
168
- }
169
-
170
- const times: number[] = [];
171
- let time = delayTime;
172
- for (let i = 0; i < numberPoints; i++) {
173
- times.push(time);
174
- time += samplingInterval;
175
- }
176
-
177
- data.push({
178
- variables: {
179
- x: {
180
- symbol: 'X',
181
- label: 'time',
182
- units: 's',
183
- data: times || [],
184
- },
185
- y: {
186
- symbol: 'Y',
187
- label: channel,
188
- units: '',
189
- data: intensities || [],
190
- },
191
- },
192
- });
193
- return data;
194
- }
195
-
196
- function addMeta(
197
- reader: NetCDFReader,
198
- globalAttributes: NetCDFReader['globalAttributes'],
199
- ) {
200
- // @ts-expect-error meta is not defined in reader.
201
- reader.header.meta = {};
202
- for (const item of globalAttributes) {
203
- // @ts-expect-error meta is not defined in reader.
204
- reader.header.meta[item.name] = item.value;
205
- }
206
- }
@@ -1,8 +0,0 @@
1
- export * from './proprietary/agilent/cary500Loader.js';
2
- export * from './utility/index.js';
3
- export * from './biologicLoader.js';
4
- export * from './cdfLoader.js';
5
- export * from './jcampLoader.js';
6
- export * from './loadMeasurements.js';
7
- export * from './spcLoader.js';
8
- export * from './wdfLoader.js';
@@ -1,105 +0,0 @@
1
- import type { FifoLogger } from 'fifo-logger';
2
- import type { FileCollection } from 'filelist-utils';
3
- import { convert } from 'jcampconverter';
4
-
5
- import { assert } from '../../components/index.js';
6
- import type { MeasurementKind, Measurements } from '../index.js';
7
-
8
- import { getMeasurementInfoFromFile } from './utility/index.js';
9
-
10
- /**
11
- *
12
- * @param fileCollection - the dragged file/files
13
- * @param logger - whether to log to console or not
14
- * @returns - new measurements object to be merged
15
- */
16
- export async function jcampLoader(
17
- fileCollection: FileCollection,
18
- logger?: FifoLogger,
19
- ): Promise<Partial<Measurements>> {
20
- let count = 0;
21
- const newMeasurements: Partial<Measurements> = {};
22
- for (const file of fileCollection) {
23
- if (/(?:\.jdx|\.dx)$/i.test(file.name)) {
24
- try {
25
- // TODO: load in parallel
26
- // eslint-disable-next-line no-await-in-loop
27
- const parsed = convert(await file.text(), { keepRecordsRegExp: /.*/ });
28
- for (const measurement of parsed.flatten) {
29
- let kind: MeasurementKind | undefined;
30
- if (measurement?.dataType?.match(/infrared|ir/i)) {
31
- kind = 'ir';
32
- } else if (measurement?.dataType?.match(/raman/i)) {
33
- kind = 'raman';
34
- } else if (measurement?.dataType?.match(/uv/i)) {
35
- kind = 'uv';
36
- } else if (measurement?.dataType?.match(/mass/i)) {
37
- kind = 'mass';
38
- } else if (measurement?.dataType?.match(/nmr/i)) {
39
- kind = 'nmr';
40
- }
41
- if (kind) {
42
- if (!newMeasurements[kind]) {
43
- newMeasurements[kind] = { entries: [] };
44
- }
45
- assert(
46
- newMeasurements[kind],
47
- 'Error while loading, kind is not defined',
48
- );
49
- const newMeasurement = {
50
- ...getMeasurementInfoFromFile(file, measurement.title || ''),
51
- meta: measurement.meta,
52
- data: normalizeSpectra(measurement.spectra),
53
- };
54
- count++;
55
- Object.assign(newMeasurement.info, measurement.info);
56
- newMeasurements[kind]?.entries.push(newMeasurement);
57
- }
58
- }
59
- } catch (error) {
60
- if (error instanceof Error) {
61
- if (logger) {
62
- logger?.error(error);
63
- } else {
64
- throw error;
65
- }
66
- }
67
- }
68
- }
69
- }
70
-
71
- logger?.debug(`Loaded ${count} measurements with jcampLoader`);
72
- return newMeasurements;
73
- }
74
-
75
- function normalizeSpectra(spectra: any) {
76
- const data: any[] = [];
77
- for (const spectrum of spectra) {
78
- let variables = spectrum.variables;
79
- if (!variables) {
80
- variables = {};
81
- variables.x = {
82
- label: spectrum.xUnits,
83
- symbol: 'X',
84
- data: spectrum.data.x || spectrum.data.X,
85
- };
86
- variables.y = {
87
- label: spectrum.yUnits,
88
- symbol: 'Y',
89
- data: spectrum.data.y || spectrum.data.Y,
90
- };
91
- } else {
92
- for (const key in variables) {
93
- const variable = variables[key];
94
- if (variable.label) continue;
95
- let label: string = variable.name || variable.symbol || key;
96
- if (variable.units && !label.includes(variable.units)) {
97
- label += ` [${variable.units}]`;
98
- }
99
- variable.label = label;
100
- }
101
- }
102
- data.push({ variables });
103
- }
104
- return data;
105
- }
@@ -1,53 +0,0 @@
1
- import type { FifoLogger } from 'fifo-logger';
2
- import type { FileCollection } from 'filelist-utils';
3
- import { xMinMaxValues } from 'ml-spectra-processing';
4
-
5
- import type { Enhancers, MeasurementBase, Measurements } from '../index.js';
6
- import { enhance } from '../index.js';
7
-
8
- import type { MeasurementsLoader, ParserLog } from './utility/index.js';
9
- import { mergeMeasurements } from './utility/index.js';
10
-
11
- export interface LoadOptions {
12
- loaders?: MeasurementsLoader[];
13
- enhancers?: Partial<Enhancers>;
14
- logger?: FifoLogger;
15
- }
16
-
17
- export async function loadMeasurements(
18
- fileCollection: FileCollection,
19
- options: LoadOptions,
20
- ) {
21
- const measurements: Partial<Measurements> = {};
22
- const logs: ParserLog[] = [];
23
- const { loaders = [], enhancers = {}, logger } = options;
24
- for (const loader of loaders) {
25
- // TODO: load in parallel
26
- // eslint-disable-next-line no-await-in-loop
27
- const loaderData = await loader(fileCollection, logger);
28
- for (const { entries } of Object.values(loaderData)) {
29
- for (const entry of entries) {
30
- computeMinMax(entry);
31
- }
32
- }
33
- enhance(loaderData, enhancers);
34
- mergeMeasurements(measurements, loaderData);
35
- }
36
- return { measurements, logs };
37
- }
38
-
39
- function computeMinMax(measurement: MeasurementBase) {
40
- for (const datum of measurement.data) {
41
- for (const variable of Object.values(datum.variables)) {
42
- if (variable.data.length === 0) {
43
- // TODO: should we accept empty data?
44
- return;
45
- }
46
- if (variable.min === undefined || variable.max === undefined) {
47
- const { min, max } = xMinMaxValues(variable.data);
48
- variable.min = min;
49
- variable.max = max;
50
- }
51
- }
52
- }
53
- }
@@ -1,82 +0,0 @@
1
- import type { FifoLogger } from 'fifo-logger';
2
- import type { FileCollection, FileCollectionItem } from 'filelist-utils';
3
-
4
- import type { MeasurementBase, Measurements } from '../../../index.js';
5
- import { getMeasurementInfoFromFile } from '../../../index.js';
6
-
7
- export async function cary500Loader(
8
- fileCollection: FileCollection,
9
- logger?: FifoLogger,
10
- ): Promise<Partial<Measurements>> {
11
- const newMeasurements: Partial<Measurements> = {};
12
- const entries: MeasurementBase[] = [];
13
-
14
- for (const file of fileCollection) {
15
- if (/\.csv$/i.test(file.name)) {
16
- try {
17
- // TODO: load in parallel
18
- // eslint-disable-next-line no-await-in-loop
19
- const experiments = await convert(file);
20
- for (const experiment of experiments) {
21
- entries.push(experiment);
22
- }
23
- } catch (error) {
24
- if (error instanceof Error) {
25
- if (logger) {
26
- logger.error(error);
27
- } else {
28
- throw error;
29
- }
30
- }
31
- }
32
- }
33
- }
34
- logger?.debug(`Loaded ${entries.length} entries with cary500Loader`);
35
- newMeasurements.uvvis = { entries };
36
- return newMeasurements;
37
- }
38
-
39
- async function convert(file: FileCollectionItem): Promise<MeasurementBase[]> {
40
- const text = await file.text();
41
- // this format allows many experiments in one file
42
- const lines = text.split(/\r?\n/).map((line) => line.trim());
43
-
44
- const titles = lines[0].split(',').map((field) => field.trim());
45
- const labelUnits = lines[1].split(',').map((field) => field.trim());
46
-
47
- let lastDataIndex;
48
- for (lastDataIndex = 2; lastDataIndex < lines.length; lastDataIndex++) {
49
- if (!lines[lastDataIndex].match(/^[\d,.Ee-]+$/)) {
50
- break;
51
- }
52
- }
53
- const data = lines.slice(2, lastDataIndex).map((line) => line.split(','));
54
- const meta = lines.slice(lastDataIndex);
55
- const nbExperiments = Math.floor(labelUnits.length / 2);
56
-
57
- const experiments: MeasurementBase[] = [];
58
- for (let i = 0; i < nbExperiments; i++) {
59
- const column = i * 2;
60
- const xVariable = {
61
- ...labelAndUnits(labelUnits[column]),
62
- data: data.map((row) => Number(row[column])),
63
- };
64
- const yVariable = {
65
- ...labelAndUnits(labelUnits[column + 1]),
66
- data: data.map((row) => Number(row[column + 1])),
67
- };
68
- experiments.push({
69
- ...getMeasurementInfoFromFile(file, titles[column]),
70
- meta: structuredClone(meta),
71
- data: [{ variables: { x: xVariable, y: yVariable } }],
72
- });
73
- }
74
- return experiments;
75
- }
76
-
77
- function labelAndUnits(labelUnits: string) {
78
- const groups = labelUnits.match(/(?<label>.*) \((?<units>.*)\)/)?.groups;
79
- return groups
80
- ? { label: groups.label, units: groups.units }
81
- : { label: labelUnits, units: '' };
82
- }
@@ -1,55 +0,0 @@
1
- import type { FifoLogger } from 'fifo-logger';
2
- import type { FileCollection } from 'filelist-utils';
3
- import { guessSpectraType, parse } from 'spc-parser';
4
-
5
- import { assert } from '../../components/index.js';
6
- import type {
7
- MeasurementBase,
8
- MeasurementKind,
9
- Measurements,
10
- } from '../index.js';
11
-
12
- import { getMeasurementInfoFromFile } from './utility/index.js';
13
-
14
- /**
15
- *
16
- * @param fileCollection - the dragged file/files
17
- * @param logger - whether to log to console or not
18
- * @returns - new measurements object to be merged
19
- */
20
- export async function spcLoader(
21
- fileCollection: FileCollection,
22
- logger?: FifoLogger,
23
- ): Promise<Partial<Measurements>> {
24
- const measurements: Partial<Measurements> = {};
25
- for (const file of fileCollection) {
26
- if (/\.spc$/i.test(file.name)) {
27
- try {
28
- // TODO: load in parallel
29
- // eslint-disable-next-line no-await-in-loop
30
- const parsed = parse(await file.arrayBuffer());
31
- const spectraType: MeasurementKind = guessSpectraType(parsed.meta);
32
- if (!measurements[spectraType]) {
33
- measurements[spectraType] = { entries: [] };
34
- }
35
- assert(
36
- measurements[spectraType],
37
- 'Error while loading, kind is not defined',
38
- );
39
- measurements[spectraType]?.entries.push({
40
- meta: parsed.meta,
41
- ...getMeasurementInfoFromFile(file, parsed.meta.memo),
42
- data: parsed.spectra as unknown as MeasurementBase['data'],
43
- });
44
- } catch (error) {
45
- if (error instanceof Error && logger) {
46
- logger.error(error);
47
- } else {
48
- throw error;
49
- }
50
- }
51
- }
52
- }
53
-
54
- return measurements;
55
- }
@@ -1,21 +0,0 @@
1
- import { v4 } from '@lukeed/uuid';
2
- import type { FileCollectionItem } from 'filelist-utils';
3
-
4
- /**
5
- * creates a template for the MeasurementBase (part)
6
- * generated from just the file metadata only and id
7
- * @param obj - file as collection item.
8
- * @param title
9
- */
10
- export function getMeasurementInfoFromFile(
11
- { name, relativePath, lastModified, size }: FileCollectionItem,
12
- title: string,
13
- ) {
14
- return {
15
- id: v4(),
16
- info: {
17
- title,
18
- file: { name, path: relativePath, lastModified, size },
19
- },
20
- };
21
- }