react-science 3.1.0 → 4.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.
- package/lib/app/hooks/file-loading.d.ts +3 -2
- package/lib/app/hooks/file-loading.d.ts.map +1 -1
- package/lib/app/hooks/file-loading.js +12 -12
- package/lib/app/hooks/file-loading.js.map +1 -1
- package/lib/app/panels/SignalProcessingPanel.js +1 -1
- package/lib/app/panels/SignalProcessingPanel.js.map +1 -1
- package/lib/app-data/loaders/biologicLoader.d.ts +2 -2
- package/lib/app-data/loaders/biologicLoader.d.ts.map +1 -1
- package/lib/app-data/loaders/biologicLoader.js +4 -4
- package/lib/app-data/loaders/biologicLoader.js.map +1 -1
- package/lib/app-data/loaders/cdfLoader.d.ts +2 -2
- package/lib/app-data/loaders/cdfLoader.d.ts.map +1 -1
- package/lib/app-data/loaders/cdfLoader.js +6 -9
- package/lib/app-data/loaders/cdfLoader.js.map +1 -1
- package/lib/app-data/loaders/jcampLoader.d.ts +2 -2
- package/lib/app-data/loaders/jcampLoader.d.ts.map +1 -1
- package/lib/app-data/loaders/jcampLoader.js +10 -13
- package/lib/app-data/loaders/jcampLoader.js.map +1 -1
- package/lib/app-data/loaders/loadMeasurements.d.ts +4 -3
- package/lib/app-data/loaders/loadMeasurements.d.ts.map +1 -1
- package/lib/app-data/loaders/loadMeasurements.js +3 -3
- package/lib/app-data/loaders/loadMeasurements.js.map +1 -1
- package/lib/app-data/loaders/proprietary/agilent/cary500Loader.d.ts +3 -2
- package/lib/app-data/loaders/proprietary/agilent/cary500Loader.d.ts.map +1 -1
- package/lib/app-data/loaders/proprietary/agilent/cary500Loader.js +4 -9
- package/lib/app-data/loaders/proprietary/agilent/cary500Loader.js.map +1 -1
- package/lib/app-data/loaders/spcLoader.d.ts +2 -2
- package/lib/app-data/loaders/spcLoader.d.ts.map +1 -1
- package/lib/app-data/loaders/spcLoader.js +3 -8
- package/lib/app-data/loaders/spcLoader.js.map +1 -1
- package/lib/app-data/loaders/utility/measurementLoader.d.ts +2 -2
- package/lib/app-data/loaders/utility/measurementLoader.d.ts.map +1 -1
- package/lib/app-data/loaders/utility/measurementLoader.js.map +1 -1
- package/lib/app-data/loaders/wdfLoader.d.ts +2 -2
- package/lib/app-data/loaders/wdfLoader.d.ts.map +1 -1
- package/lib/app-data/loaders/wdfLoader.js +3 -9
- package/lib/app-data/loaders/wdfLoader.js.map +1 -1
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.d.ts.map +1 -1
- package/lib/components/index.js +2 -1
- package/lib/components/index.js.map +1 -1
- package/lib/components/info-panel/InfoPanel.d.ts.map +1 -1
- package/lib/components/info-panel/InfoPanel.js +1 -1
- package/lib/components/info-panel/InfoPanel.js.map +1 -1
- package/lib/components/logger/FifoLoggerDialog.d.ts +10 -0
- package/lib/components/logger/FifoLoggerDialog.d.ts.map +1 -0
- package/lib/components/logger/FifoLoggerDialog.js +55 -0
- package/lib/components/logger/FifoLoggerDialog.js.map +1 -0
- package/lib/components/logger/FifoLoggerProvider.d.ts +7 -0
- package/lib/components/logger/FifoLoggerProvider.d.ts.map +1 -0
- package/lib/components/logger/FifoLoggerProvider.js +10 -0
- package/lib/components/logger/FifoLoggerProvider.js.map +1 -0
- package/lib/components/logger/FifoLoggerToolbarItem.d.ts +2 -0
- package/lib/components/logger/FifoLoggerToolbarItem.d.ts.map +1 -0
- package/lib/components/logger/FifoLoggerToolbarItem.js +39 -0
- package/lib/components/logger/FifoLoggerToolbarItem.js.map +1 -0
- package/lib/components/logger/index.d.ts +5 -0
- package/lib/components/logger/index.d.ts.map +1 -0
- package/lib/components/logger/index.js +21 -0
- package/lib/components/logger/index.js.map +1 -0
- package/lib/components/logger/loggerContext.d.ts +4 -0
- package/lib/components/logger/loggerContext.d.ts.map +1 -0
- package/lib/components/logger/loggerContext.js +6 -0
- package/lib/components/logger/loggerContext.js.map +1 -0
- package/lib/components/logger/useFifoLogger.d.ts +3 -0
- package/lib/components/logger/useFifoLogger.d.ts.map +1 -0
- package/lib/components/logger/useFifoLogger.js +25 -0
- package/lib/components/logger/useFifoLogger.js.map +1 -0
- package/lib/components/table/Table.d.ts +2 -3
- package/lib/components/table/Table.d.ts.map +1 -1
- package/lib/components/table/Table.js +2 -2
- package/lib/components/table/Table.js.map +1 -1
- package/lib/components/table/TableHeader.d.ts +1 -1
- package/lib/components/table/TableHeader.d.ts.map +1 -1
- package/lib/components/table/TableHeader.js +2 -2
- package/lib/components/table/TableHeader.js.map +1 -1
- package/lib/components/table/TableRow.d.ts +1 -1
- package/lib/components/table/TableRow.d.ts.map +1 -1
- package/lib/components/table/TableRow.js +9 -22
- package/lib/components/table/TableRow.js.map +1 -1
- package/lib/components/table/tableContext.d.ts +0 -2
- package/lib/components/table/tableContext.d.ts.map +1 -1
- package/lib/components/table/tableContext.js +1 -1
- package/lib/components/table/tableContext.js.map +1 -1
- package/lib/components/toolbar/TooltipHelpContent.d.ts +11 -0
- package/lib/components/toolbar/TooltipHelpContent.d.ts.map +1 -0
- package/lib/components/toolbar/TooltipHelpContent.js +102 -0
- package/lib/components/toolbar/TooltipHelpContent.js.map +1 -0
- package/lib/components/toolbar/index.d.ts +1 -0
- package/lib/components/toolbar/index.d.ts.map +1 -1
- package/lib/components/toolbar/index.js +1 -0
- package/lib/components/toolbar/index.js.map +1 -1
- package/lib-esm/app/hooks/file-loading.d.ts +3 -2
- package/lib-esm/app/hooks/file-loading.d.ts.map +1 -1
- package/lib-esm/app/hooks/file-loading.js +9 -9
- package/lib-esm/app/hooks/file-loading.js.map +1 -1
- package/lib-esm/app/panels/SignalProcessingPanel.js +1 -1
- package/lib-esm/app/panels/SignalProcessingPanel.js.map +1 -1
- package/lib-esm/app-data/loaders/biologicLoader.d.ts +2 -2
- package/lib-esm/app-data/loaders/biologicLoader.d.ts.map +1 -1
- package/lib-esm/app-data/loaders/biologicLoader.js +4 -4
- package/lib-esm/app-data/loaders/biologicLoader.js.map +1 -1
- package/lib-esm/app-data/loaders/cdfLoader.d.ts +2 -2
- package/lib-esm/app-data/loaders/cdfLoader.d.ts.map +1 -1
- package/lib-esm/app-data/loaders/cdfLoader.js +6 -9
- package/lib-esm/app-data/loaders/cdfLoader.js.map +1 -1
- package/lib-esm/app-data/loaders/jcampLoader.d.ts +2 -2
- package/lib-esm/app-data/loaders/jcampLoader.d.ts.map +1 -1
- package/lib-esm/app-data/loaders/jcampLoader.js +10 -13
- package/lib-esm/app-data/loaders/jcampLoader.js.map +1 -1
- package/lib-esm/app-data/loaders/loadMeasurements.d.ts +4 -3
- package/lib-esm/app-data/loaders/loadMeasurements.d.ts.map +1 -1
- package/lib-esm/app-data/loaders/loadMeasurements.js +3 -3
- package/lib-esm/app-data/loaders/loadMeasurements.js.map +1 -1
- package/lib-esm/app-data/loaders/proprietary/agilent/cary500Loader.d.ts +3 -2
- package/lib-esm/app-data/loaders/proprietary/agilent/cary500Loader.d.ts.map +1 -1
- package/lib-esm/app-data/loaders/proprietary/agilent/cary500Loader.js +5 -10
- package/lib-esm/app-data/loaders/proprietary/agilent/cary500Loader.js.map +1 -1
- package/lib-esm/app-data/loaders/spcLoader.d.ts +2 -2
- package/lib-esm/app-data/loaders/spcLoader.d.ts.map +1 -1
- package/lib-esm/app-data/loaders/spcLoader.js +4 -9
- package/lib-esm/app-data/loaders/spcLoader.js.map +1 -1
- package/lib-esm/app-data/loaders/utility/measurementLoader.d.ts +2 -2
- package/lib-esm/app-data/loaders/utility/measurementLoader.d.ts.map +1 -1
- package/lib-esm/app-data/loaders/utility/measurementLoader.js.map +1 -1
- package/lib-esm/app-data/loaders/wdfLoader.d.ts +2 -2
- package/lib-esm/app-data/loaders/wdfLoader.d.ts.map +1 -1
- package/lib-esm/app-data/loaders/wdfLoader.js +3 -9
- package/lib-esm/app-data/loaders/wdfLoader.js.map +1 -1
- package/lib-esm/components/index.d.ts +2 -1
- package/lib-esm/components/index.d.ts.map +1 -1
- package/lib-esm/components/index.js +2 -1
- package/lib-esm/components/index.js.map +1 -1
- package/lib-esm/components/info-panel/InfoPanel.d.ts.map +1 -1
- package/lib-esm/components/info-panel/InfoPanel.js +1 -1
- package/lib-esm/components/info-panel/InfoPanel.js.map +1 -1
- package/lib-esm/components/logger/FifoLoggerDialog.d.ts +10 -0
- package/lib-esm/components/logger/FifoLoggerDialog.d.ts.map +1 -0
- package/lib-esm/components/logger/FifoLoggerDialog.js +48 -0
- package/lib-esm/components/logger/FifoLoggerDialog.js.map +1 -0
- package/lib-esm/components/logger/FifoLoggerProvider.d.ts +7 -0
- package/lib-esm/components/logger/FifoLoggerProvider.d.ts.map +1 -0
- package/lib-esm/components/logger/FifoLoggerProvider.js +6 -0
- package/lib-esm/components/logger/FifoLoggerProvider.js.map +1 -0
- package/lib-esm/components/logger/FifoLoggerToolbarItem.d.ts +2 -0
- package/lib-esm/components/logger/FifoLoggerToolbarItem.d.ts.map +1 -0
- package/lib-esm/components/logger/FifoLoggerToolbarItem.js +35 -0
- package/lib-esm/components/logger/FifoLoggerToolbarItem.js.map +1 -0
- package/lib-esm/components/logger/index.d.ts +5 -0
- package/lib-esm/components/logger/index.d.ts.map +1 -0
- package/lib-esm/components/logger/index.js +5 -0
- package/lib-esm/components/logger/index.js.map +1 -0
- package/lib-esm/components/logger/loggerContext.d.ts +4 -0
- package/lib-esm/components/logger/loggerContext.d.ts.map +1 -0
- package/lib-esm/components/logger/loggerContext.js +3 -0
- package/lib-esm/components/logger/loggerContext.js.map +1 -0
- package/lib-esm/components/logger/useFifoLogger.d.ts +3 -0
- package/lib-esm/components/logger/useFifoLogger.d.ts.map +1 -0
- package/lib-esm/components/logger/useFifoLogger.js +20 -0
- package/lib-esm/components/logger/useFifoLogger.js.map +1 -0
- package/lib-esm/components/table/Table.d.ts +2 -3
- package/lib-esm/components/table/Table.d.ts.map +1 -1
- package/lib-esm/components/table/Table.js +2 -2
- package/lib-esm/components/table/Table.js.map +1 -1
- package/lib-esm/components/table/TableHeader.d.ts +1 -1
- package/lib-esm/components/table/TableHeader.d.ts.map +1 -1
- package/lib-esm/components/table/TableHeader.js +2 -2
- package/lib-esm/components/table/TableHeader.js.map +1 -1
- package/lib-esm/components/table/TableRow.d.ts +1 -1
- package/lib-esm/components/table/TableRow.d.ts.map +1 -1
- package/lib-esm/components/table/TableRow.js +6 -19
- package/lib-esm/components/table/TableRow.js.map +1 -1
- package/lib-esm/components/table/tableContext.d.ts +0 -2
- package/lib-esm/components/table/tableContext.d.ts.map +1 -1
- package/lib-esm/components/table/tableContext.js +1 -1
- package/lib-esm/components/table/tableContext.js.map +1 -1
- package/lib-esm/components/toolbar/TooltipHelpContent.d.ts +11 -0
- package/lib-esm/components/toolbar/TooltipHelpContent.d.ts.map +1 -0
- package/lib-esm/components/toolbar/TooltipHelpContent.js +95 -0
- package/lib-esm/components/toolbar/TooltipHelpContent.js.map +1 -0
- package/lib-esm/components/toolbar/index.d.ts +1 -0
- package/lib-esm/components/toolbar/index.d.ts.map +1 -1
- package/lib-esm/components/toolbar/index.js +1 -0
- package/lib-esm/components/toolbar/index.js.map +1 -1
- package/package.json +7 -5
- package/src/app/hooks/file-loading.ts +12 -10
- package/src/app/panels/SignalProcessingPanel.tsx +1 -1
- package/src/app-data/loaders/biologicLoader.ts +6 -5
- package/src/app-data/loaders/cdfLoader.ts +8 -13
- package/src/app-data/loaders/jcampLoader.ts +11 -15
- package/src/app-data/loaders/loadMeasurements.ts +6 -5
- package/src/app-data/loaders/proprietary/agilent/cary500Loader.ts +8 -16
- package/src/app-data/loaders/spcLoader.ts +6 -12
- package/src/app-data/loaders/utility/measurementLoader.ts +2 -3
- package/src/app-data/loaders/wdfLoader.ts +5 -12
- package/src/components/index.ts +2 -1
- package/src/components/info-panel/InfoPanel.tsx +0 -1
- package/src/components/logger/FifoLoggerDialog.tsx +129 -0
- package/src/components/logger/FifoLoggerProvider.tsx +15 -0
- package/src/components/logger/FifoLoggerToolbarItem.tsx +59 -0
- package/src/components/logger/index.ts +4 -0
- package/src/components/logger/loggerContext.ts +4 -0
- package/src/components/logger/useFifoLogger.ts +22 -0
- package/src/components/table/Table.tsx +1 -6
- package/src/components/table/TableHeader.tsx +2 -2
- package/src/components/table/TableRow.tsx +4 -23
- package/src/components/table/tableContext.ts +1 -1
- package/src/components/toolbar/TooltipHelpContent.tsx +173 -0
- package/src/components/toolbar/index.ts +1 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { TableRow } from './TableRow';
|
|
3
|
-
export const TableHeader = ({ children,
|
|
4
|
-
return (_jsx("thead", { children: _jsx(TableRow, {
|
|
3
|
+
export const TableHeader = ({ children, bordered, style }) => {
|
|
4
|
+
return (_jsx("thead", { children: _jsx(TableRow, { bordered: bordered, style: style, children: children }) }));
|
|
5
5
|
};
|
|
6
6
|
//# sourceMappingURL=TableHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeader.js","sourceRoot":"","sources":["../../../src/components/table/TableHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"TableHeader.js","sourceRoot":"","sources":["../../../src/components/table/TableHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAc,EAAE,EAAE;IACvE,OAAO,CACL,0BACE,KAAC,QAAQ,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,YACvC,QAAQ,GACA,GACL,CACT,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HTMLAttributes } from 'react';
|
|
2
2
|
import type { TableProps } from './Table';
|
|
3
3
|
export type TableRowProps = TableProps & HTMLAttributes<HTMLTableRowElement>;
|
|
4
|
-
export declare const TableRow: ({ children, style,
|
|
4
|
+
export declare const TableRow: ({ children, style, bordered, ...other }: TableRowProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
//# sourceMappingURL=TableRow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRow.d.ts","sourceRoot":"","sources":["../../../src/components/table/TableRow.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TableRow.d.ts","sourceRoot":"","sources":["../../../src/components/table/TableRow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAIf,MAAM,OAAO,CAAC;AAYf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;AAE7E,eAAO,MAAM,QAAQ,4CAKlB,aAAa,4CAUf,CAAC"}
|
|
@@ -1,27 +1,14 @@
|
|
|
1
|
-
import { jsx as _jsx } from "
|
|
2
|
-
/** @jsxImportSource @emotion/react */
|
|
3
|
-
import { css } from '@emotion/react';
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
2
|
import { Children, isValidElement, } from 'react';
|
|
5
3
|
import { Boolean, Color, Component, Header, Number, Object, Text, } from '../value-renderers';
|
|
6
4
|
import { useTableContext } from './tableContext';
|
|
7
|
-
const
|
|
8
|
-
hasBorder: css({
|
|
9
|
-
border: '0.5px solid rgb(0, 0, 0)',
|
|
10
|
-
padding: '5px',
|
|
11
|
-
position: 'relative',
|
|
12
|
-
}),
|
|
13
|
-
noBorder: css({
|
|
14
|
-
padding: '5px',
|
|
15
|
-
position: 'relative',
|
|
16
|
-
}),
|
|
17
|
-
};
|
|
18
|
-
export const TableRow = ({ children, style = {}, hasBorder = false, ...other }) => {
|
|
5
|
+
export const TableRow = ({ children, style = {}, bordered = false, ...other }) => {
|
|
19
6
|
const { cells } = useRowChildren(children);
|
|
20
|
-
return (_jsx("tr", { style: { border:
|
|
7
|
+
return (_jsx("tr", { style: { border: bordered ? '1px solid black' : '', ...style }, ...other, children: cells }));
|
|
21
8
|
};
|
|
22
9
|
function useRowChildren(children) {
|
|
23
10
|
const cells = [];
|
|
24
|
-
const {
|
|
11
|
+
const { color } = useTableContext();
|
|
25
12
|
for (const child of Children.toArray(children)) {
|
|
26
13
|
if (typeof child === 'object' &&
|
|
27
14
|
isValidElement(child) &&
|
|
@@ -33,13 +20,13 @@ function useRowChildren(children) {
|
|
|
33
20
|
child.type === Header ||
|
|
34
21
|
child.type === Component)) {
|
|
35
22
|
if (child.type === Header) {
|
|
36
|
-
cells.push(_jsx("th", { style: { color },
|
|
23
|
+
cells.push(_jsx("th", { style: { color }, children: child }, child.key));
|
|
37
24
|
}
|
|
38
25
|
else {
|
|
39
26
|
cells.push(_jsx("td", { style: {
|
|
40
27
|
color,
|
|
41
28
|
position: 'relative',
|
|
42
|
-
},
|
|
29
|
+
}, children: child }, child.key));
|
|
43
30
|
}
|
|
44
31
|
}
|
|
45
32
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../../../src/components/table/TableRow.tsx"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../../../src/components/table/TableRow.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,QAAQ,EAER,cAAc,GAGf,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,OAAO,EACP,KAAK,EACL,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,GACL,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIjD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,QAAQ,EACR,KAAK,GAAG,EAAE,EACV,QAAQ,GAAG,KAAK,EAChB,GAAG,KAAK,EACM,EAAE,EAAE;IAClB,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,CACL,aACE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,KAC1D,KAAK,YAER,KAAK,GACH,CACN,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,cAAc,CAAC,QAAmB;IACzC,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/C,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,cAAc,CAAC,KAAK,CAAC;YACrB,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK;gBACnB,KAAK,CAAC,IAAI,KAAK,OAAO;gBACtB,KAAK,CAAC,IAAI,KAAK,IAAI;gBACnB,KAAK,CAAC,IAAI,KAAK,MAAM;gBACrB,KAAK,CAAC,IAAI,KAAK,MAAM;gBACrB,KAAK,CAAC,IAAI,KAAK,MAAM;gBACrB,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,EAC3B,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CACR,aAAoB,KAAK,EAAE,EAAE,KAAK,EAAE,YACjC,KAAK,IADC,KAAK,CAAC,GAAG,CAEb,CACN,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CACR,aAEE,KAAK,EAAE;wBACL,KAAK;wBACL,QAAQ,EAAE,UAAU;qBACrB,YAEA,KAAK,IAND,KAAK,CAAC,GAAG,CAOX,CACN,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export declare const TableContext: import("react").Context<{
|
|
3
|
-
hasBorder: boolean;
|
|
4
3
|
color: string;
|
|
5
4
|
}>;
|
|
6
5
|
export declare function useTableContext(): {
|
|
7
|
-
hasBorder: boolean;
|
|
8
6
|
color: string;
|
|
9
7
|
};
|
|
10
8
|
//# sourceMappingURL=tableContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableContext.d.ts","sourceRoot":"","sources":["../../../src/components/table/tableContext.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"tableContext.d.ts","sourceRoot":"","sources":["../../../src/components/table/tableContext.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,YAAY;;EAA+B,CAAC;AACzD,wBAAgB,eAAe;;EAG9B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createContext, useContext } from 'react';
|
|
2
|
-
export const TableContext = createContext({
|
|
2
|
+
export const TableContext = createContext({ color: '' });
|
|
3
3
|
export function useTableContext() {
|
|
4
4
|
const context = useContext(TableContext);
|
|
5
5
|
return context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableContext.js","sourceRoot":"","sources":["../../../src/components/table/tableContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"tableContext.js","sourceRoot":"","sources":["../../../src/components/table/tableContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AACzD,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
export interface TooltipItem {
|
|
3
|
+
title: string;
|
|
4
|
+
shortcuts?: string[];
|
|
5
|
+
subTitles?: Array<Pick<TooltipItem, 'title' | 'shortcuts'>>;
|
|
6
|
+
description?: string;
|
|
7
|
+
link?: string;
|
|
8
|
+
style?: CSSProperties;
|
|
9
|
+
}
|
|
10
|
+
export declare function TooltipHelpContent(props: TooltipItem): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=TooltipHelpContent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TooltipHelpContent.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/TooltipHelpContent.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AA6EtC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,2CA0CpD"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import styled from '@emotion/styled';
|
|
3
|
+
const shortcutBoxSize = 1.5;
|
|
4
|
+
const FlexContainer = styled.div `
|
|
5
|
+
display: flex;
|
|
6
|
+
justify-content: space-between;
|
|
7
|
+
flex-wrap: wrap;
|
|
8
|
+
align-items: center;
|
|
9
|
+
`;
|
|
10
|
+
const Title = styled.span `
|
|
11
|
+
font-size: ${({ size }) => size};
|
|
12
|
+
flex: 1;
|
|
13
|
+
padding: 5px 0;
|
|
14
|
+
text-align: left;
|
|
15
|
+
`;
|
|
16
|
+
const Description = styled.p `
|
|
17
|
+
padding-top: 1rem;
|
|
18
|
+
font-size: 0.7rem;
|
|
19
|
+
text-align: left;
|
|
20
|
+
`;
|
|
21
|
+
const ShortcutItem = styled.div `
|
|
22
|
+
display: flex;
|
|
23
|
+
justify-content: center;
|
|
24
|
+
align-items: center;
|
|
25
|
+
padding: 0.2rem;
|
|
26
|
+
border: 1px solid;
|
|
27
|
+
border-radius: 4px;
|
|
28
|
+
height: ${shortcutBoxSize}rem;
|
|
29
|
+
min-width: ${shortcutBoxSize}rem;
|
|
30
|
+
margin-left: 5px;
|
|
31
|
+
font-size: 0.75rem;
|
|
32
|
+
font-weight: bold;
|
|
33
|
+
`;
|
|
34
|
+
const SubTitleItem = styled.div `
|
|
35
|
+
position: relative;
|
|
36
|
+
padding-left: 15px;
|
|
37
|
+
box-sizing: border-box;
|
|
38
|
+
|
|
39
|
+
&::before {
|
|
40
|
+
position: absolute;
|
|
41
|
+
top: ${shortcutBoxSize / 2}rem;
|
|
42
|
+
left: 0;
|
|
43
|
+
width: 10px;
|
|
44
|
+
height: 1px;
|
|
45
|
+
margin: auto;
|
|
46
|
+
content: '';
|
|
47
|
+
border-bottom: 1px solid;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&::after {
|
|
51
|
+
position: absolute;
|
|
52
|
+
top: 0;
|
|
53
|
+
bottom: 0;
|
|
54
|
+
left: 0;
|
|
55
|
+
width: 1px;
|
|
56
|
+
height: 100%;
|
|
57
|
+
content: '';
|
|
58
|
+
border-left: 1px solid;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&:last-child::after {
|
|
62
|
+
height: ${shortcutBoxSize / 2}rem;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
&:first-child {
|
|
66
|
+
margin: 0;
|
|
67
|
+
}
|
|
68
|
+
`;
|
|
69
|
+
export function TooltipHelpContent(props) {
|
|
70
|
+
const { title, shortcuts = [], subTitles = [], description = '', link, style = {}, } = props;
|
|
71
|
+
return (_jsxs("div", { style: {
|
|
72
|
+
color: 'white',
|
|
73
|
+
width: '250px',
|
|
74
|
+
padding: '0.5rem',
|
|
75
|
+
...style,
|
|
76
|
+
}, children: [_jsxs(FlexContainer, { children: [_jsx(Title, { size: "0.9rem", children: title }), _jsx(ShortCuts, { shortcuts: shortcuts })] }), _jsx(SubTitles, { items: subTitles }), (description || link) && (_jsxs(Description, { children: [description, link && (_jsx("a", { style: description ? { paddingLeft: '5px' } : {}, target: "_blank", href: link, rel: "noreferrer", children: "Learn more" }))] }))] }));
|
|
77
|
+
}
|
|
78
|
+
function ShortCuts({ shortcuts }) {
|
|
79
|
+
return (_jsx("div", { style: {
|
|
80
|
+
display: 'flex',
|
|
81
|
+
textWrap: 'nowrap',
|
|
82
|
+
}, children: shortcuts.map((key) => {
|
|
83
|
+
return (_jsx(ShortcutItem, { children: _jsx("span", { children: key }) }, key));
|
|
84
|
+
}) }));
|
|
85
|
+
}
|
|
86
|
+
function SubTitles({ items }) {
|
|
87
|
+
if (!items || items.length === 0) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
return (_jsx("ul", { style: {
|
|
91
|
+
paddingLeft: '5px',
|
|
92
|
+
listStyle: 'none',
|
|
93
|
+
}, children: items.map(({ shortcuts = [], title }) => (_jsx(SubTitleItem, { children: _jsxs(FlexContainer, { children: [_jsx(Title, { size: "0.7rem", children: title }), _jsx(ShortCuts, { shortcuts: shortcuts })] }) }, title))) }));
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=TooltipHelpContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TooltipHelpContent.js","sourceRoot":"","sources":["../../../src/components/toolbar/TooltipHelpContent.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAGrC,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAK/B,CAAC;AAMF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAY;eACtB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI;;;;CAIhC,CAAC;AACF,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAA;;;;CAI3B,CAAC;AAEF,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;YAOnB,eAAe;eACZ,eAAe;;;;CAI7B,CAAC;AAEF,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;WAOpB,eAAe,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;cAqBhB,eAAe,GAAG,CAAC;;;;;;CAMhC,CAAC;AAWF,MAAM,UAAU,kBAAkB,CAAC,KAAkB;IACnD,MAAM,EACJ,KAAK,EACL,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,EAAE,EACd,WAAW,GAAG,EAAE,EAChB,IAAI,EACJ,KAAK,GAAG,EAAE,GACX,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,eACE,KAAK,EAAE;YACL,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,QAAQ;YACjB,GAAG,KAAK;SACT,aAED,MAAC,aAAa,eACZ,KAAC,KAAK,IAAC,IAAI,EAAC,QAAQ,YAAE,KAAK,GAAS,EACpC,KAAC,SAAS,IAAC,SAAS,EAAE,SAAS,GAAI,IACrB,EAChB,KAAC,SAAS,IAAC,KAAK,EAAE,SAAS,GAAI,EAE9B,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CACxB,MAAC,WAAW,eACT,WAAW,EACX,IAAI,IAAI,CACP,YACE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAChD,MAAM,EAAC,QAAQ,EACf,IAAI,EAAE,IAAI,EACV,GAAG,EAAC,YAAY,2BAGd,CACL,IACW,CACf,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAA2B;IACvD,OAAO,CACL,cACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,QAAQ;SACnB,YAEA,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACrB,OAAO,CACL,KAAC,YAAY,cACX,yBAAO,GAAG,GAAQ,IADD,GAAG,CAEP,CAChB,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,KAAK,EAA4B;IACpD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,aACE,KAAK,EAAE;YACL,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,MAAM;SAClB,YAEA,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACxC,KAAC,YAAY,cACX,MAAC,aAAa,eACZ,KAAC,KAAK,IAAC,IAAI,EAAC,QAAQ,YAAE,KAAK,GAAS,EACpC,KAAC,SAAS,IAAC,SAAS,EAAE,SAAS,GAAI,IACrB,IAJC,KAAK,CAKT,CAChB,CAAC,GACC,CACN,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/toolbar/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/toolbar/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-science",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "React components to build scientific applications UI",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./app": {
|
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
"peerDependencies": {
|
|
61
61
|
"@blueprintjs/core": "^5.3.2",
|
|
62
62
|
"@blueprintjs/icons": "^5.1.7",
|
|
63
|
+
"fifo-logger": "^1.0.0",
|
|
63
64
|
"react": ">=18.0.0",
|
|
64
65
|
"react-dom": ">=18.0.0"
|
|
65
66
|
},
|
|
@@ -80,18 +81,18 @@
|
|
|
80
81
|
"d3-scale-chromatic": "^3.1.0",
|
|
81
82
|
"filelist-utils": "^1.11.0",
|
|
82
83
|
"immer": "^10.0.4",
|
|
83
|
-
"jcampconverter": "^9.6.
|
|
84
|
+
"jcampconverter": "^9.6.4",
|
|
84
85
|
"lodash": "^4.17.21",
|
|
85
86
|
"ml-gsd": "^12.1.6",
|
|
86
87
|
"ml-peak-shape-generator": "^4.1.2",
|
|
87
88
|
"ml-signal-processing": "^1.0.4",
|
|
88
|
-
"ml-spectra-processing": "^14.
|
|
89
|
-
"ms-spectrum": "^3.
|
|
89
|
+
"ml-spectra-processing": "^14.5.0",
|
|
90
|
+
"ms-spectrum": "^3.5.2",
|
|
90
91
|
"netcdfjs": "^3.0.0",
|
|
91
92
|
"react-d3-utils": "^1.0.0",
|
|
92
93
|
"react-dropzone": "^14.2.3",
|
|
93
94
|
"react-error-boundary": "^4.0.13",
|
|
94
|
-
"react-icons": "^5.
|
|
95
|
+
"react-icons": "^5.2.1",
|
|
95
96
|
"react-inspector": "^6.0.2",
|
|
96
97
|
"react-kbs": "^2.1.1",
|
|
97
98
|
"react-plot": "^1.4.2",
|
|
@@ -128,6 +129,7 @@
|
|
|
128
129
|
"eslint": "^8.57.0",
|
|
129
130
|
"eslint-config-zakodium": "^8.1.0",
|
|
130
131
|
"eslint-plugin-storybook": "^0.8.0",
|
|
132
|
+
"fifo-logger": "^1.0.0",
|
|
131
133
|
"prettier": "^3.2.5",
|
|
132
134
|
"react": "^18.2.0",
|
|
133
135
|
"react-dom": "^18.2.0",
|
|
@@ -1,22 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useQuery, UseQueryResult } from '@tanstack/react-query';
|
|
2
|
+
import type { FifoLogger } from 'fifo-logger';
|
|
2
3
|
import { FileCollection, fileCollectionFromWebSource } from 'filelist-utils';
|
|
3
4
|
import { useCallback } from 'react';
|
|
4
5
|
|
|
5
|
-
import { AppDispatch, useAppDispatch } from '../../app-data
|
|
6
|
-
import { useHashSearchParams } from '../../components
|
|
6
|
+
import { AppDispatch, useAppDispatch } from '../../app-data';
|
|
7
|
+
import { useFifoLogger, useHashSearchParams } from '../../components';
|
|
7
8
|
|
|
8
9
|
type LoadFn = (
|
|
9
10
|
files: File[] | FileCollection,
|
|
11
|
+
logger: FifoLogger,
|
|
10
12
|
dispatch: AppDispatch,
|
|
11
13
|
) => Promise<void>;
|
|
12
14
|
|
|
13
15
|
export function useLoadFileCollectionFromHash(
|
|
14
16
|
onLoad: LoadFn,
|
|
15
17
|
): UseQueryResult<true | null> {
|
|
18
|
+
const logger = useFifoLogger();
|
|
16
19
|
const appDispatch = useAppDispatch();
|
|
17
20
|
const hashParams = useHashSearchParams();
|
|
18
21
|
const filelistUrl = hashParams.get('filelist');
|
|
19
|
-
|
|
22
|
+
return useQuery({
|
|
20
23
|
queryKey: ['filelist', filelistUrl],
|
|
21
24
|
queryFn: async () => {
|
|
22
25
|
if (!filelistUrl) {
|
|
@@ -29,20 +32,19 @@ export function useLoadFileCollectionFromHash(
|
|
|
29
32
|
entries: data,
|
|
30
33
|
baseURL,
|
|
31
34
|
});
|
|
32
|
-
void onLoad(fileCollection, appDispatch);
|
|
35
|
+
void onLoad(fileCollection, logger, appDispatch);
|
|
33
36
|
return true;
|
|
34
37
|
},
|
|
35
38
|
});
|
|
36
|
-
return query;
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
export function useDropFiles(onLoad: LoadFn) {
|
|
40
42
|
const dispatch = useAppDispatch();
|
|
41
|
-
const
|
|
43
|
+
const logger = useFifoLogger();
|
|
44
|
+
return useCallback(
|
|
42
45
|
(files: File[]) => {
|
|
43
|
-
void onLoad(files, dispatch);
|
|
46
|
+
void onLoad(files, logger, dispatch);
|
|
44
47
|
},
|
|
45
|
-
[dispatch, onLoad],
|
|
48
|
+
[dispatch, onLoad, logger],
|
|
46
49
|
);
|
|
47
|
-
return onDrop;
|
|
48
50
|
}
|
|
@@ -47,7 +47,7 @@ export function SignalProcessingPanel(props: SignalProcessingPanelProps) {
|
|
|
47
47
|
<ValueRenderers.Header value="Options" />
|
|
48
48
|
</Table.Header>
|
|
49
49
|
{filters.map(({ name, options }, i) => (
|
|
50
|
-
<Table.Row key={name}
|
|
50
|
+
<Table.Row key={name} bordered>
|
|
51
51
|
<ValueRenderers.Component>
|
|
52
52
|
<div style={{ display: 'flex', gap: '3px' }}>
|
|
53
53
|
<Button
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { parseMPR, parseMPT } from 'biologic-converter';
|
|
2
2
|
import type { MeasurementVariable } from 'cheminfo-types';
|
|
3
|
+
import type { FifoLogger } from 'fifo-logger';
|
|
3
4
|
import type { FileCollection } from 'filelist-utils';
|
|
4
5
|
|
|
5
|
-
import type {
|
|
6
|
+
import type { MeasurementBase, Measurements } from '../index';
|
|
6
7
|
|
|
7
8
|
import { getMeasurementInfoFromFile } from './utility/getMeasurementInfoFromFile';
|
|
8
|
-
import { createLogEntry, ParserLog } from './utility/parserLog';
|
|
9
9
|
|
|
10
10
|
/* the MeasurementBase has got a data key,
|
|
11
11
|
and inside a variable key, compatible with this type */
|
|
@@ -18,7 +18,7 @@ type MeasurementDataVariable = Record<string, MeasurementVariable>;
|
|
|
18
18
|
*/
|
|
19
19
|
export async function biologicLoader(
|
|
20
20
|
fileCollection: FileCollection,
|
|
21
|
-
|
|
21
|
+
logger?: FifoLogger,
|
|
22
22
|
): Promise<Partial<Measurements>> {
|
|
23
23
|
const measurements: Partial<Measurements> = {};
|
|
24
24
|
const entries: MeasurementBase[] = [];
|
|
@@ -67,14 +67,15 @@ export async function biologicLoader(
|
|
|
67
67
|
} catch (error) {
|
|
68
68
|
//send error to UI to show to User ?
|
|
69
69
|
if (error instanceof Error) {
|
|
70
|
-
if (
|
|
71
|
-
|
|
70
|
+
if (logger) {
|
|
71
|
+
logger.error(error);
|
|
72
72
|
} else {
|
|
73
73
|
throw error;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
+
logger?.debug(`Loaded ${entries.length} entries with biologicLoader`);
|
|
78
79
|
measurements.iv = { entries };
|
|
79
80
|
return measurements;
|
|
80
81
|
}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
+
import type { FifoLogger } from 'fifo-logger';
|
|
1
2
|
import type { FileCollection } from 'filelist-utils';
|
|
2
3
|
import { NetCDFReader } from 'netcdfjs';
|
|
3
4
|
|
|
4
5
|
import { assert } from '../../components/index';
|
|
5
|
-
import type { MeasurementBase,
|
|
6
|
+
import type { MeasurementBase, MeasurementKind, Measurements } from '../index';
|
|
6
7
|
|
|
7
8
|
import { getMeasurementInfoFromFile } from './utility/getMeasurementInfoFromFile';
|
|
8
|
-
import { ParserLog, createLogEntry } from './utility/parserLog';
|
|
9
9
|
|
|
10
10
|
export async function cdfLoader(
|
|
11
11
|
fileCollection: FileCollection,
|
|
12
|
-
|
|
12
|
+
logger?: FifoLogger,
|
|
13
13
|
): Promise<Partial<Measurements>> {
|
|
14
14
|
const newMeasurements: Partial<Measurements> = {};
|
|
15
15
|
let kind: MeasurementKind | undefined;
|
|
16
|
+
let count = 0;
|
|
16
17
|
for (const file of fileCollection) {
|
|
17
18
|
if (/\.cdf$/i.test(file.name)) {
|
|
18
19
|
try {
|
|
@@ -57,18 +58,12 @@ export async function cdfLoader(
|
|
|
57
58
|
: chromatogram(reader),
|
|
58
59
|
};
|
|
59
60
|
newMeasurements[kind]?.entries.push(newMeasurement);
|
|
61
|
+
count++;
|
|
60
62
|
} catch (error) {
|
|
61
63
|
if (error instanceof Error) {
|
|
62
64
|
//send error to UI ?
|
|
63
|
-
if (
|
|
64
|
-
|
|
65
|
-
createLogEntry({
|
|
66
|
-
error,
|
|
67
|
-
parser: 'cdfLoader',
|
|
68
|
-
message: 'error parsing file from cdfLoader',
|
|
69
|
-
relativePath: file.relativePath,
|
|
70
|
-
}),
|
|
71
|
-
);
|
|
65
|
+
if (logger) {
|
|
66
|
+
logger.error(error);
|
|
72
67
|
} else {
|
|
73
68
|
throw error;
|
|
74
69
|
}
|
|
@@ -76,7 +71,7 @@ export async function cdfLoader(
|
|
|
76
71
|
}
|
|
77
72
|
}
|
|
78
73
|
}
|
|
79
|
-
|
|
74
|
+
logger?.debug(`Loaded ${count} measurements with cdfLoader`);
|
|
80
75
|
return newMeasurements;
|
|
81
76
|
}
|
|
82
77
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { FifoLogger } from 'fifo-logger';
|
|
1
2
|
import type { FileCollection } from 'filelist-utils';
|
|
2
3
|
import { convert } from 'jcampconverter';
|
|
3
4
|
|
|
@@ -5,7 +6,6 @@ import { assert } from '../../components/index';
|
|
|
5
6
|
import type { MeasurementKind, Measurements } from '../index';
|
|
6
7
|
|
|
7
8
|
import { getMeasurementInfoFromFile } from './utility/getMeasurementInfoFromFile';
|
|
8
|
-
import { createLogEntry, ParserLog } from './utility/parserLog';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
*
|
|
@@ -15,8 +15,9 @@ import { createLogEntry, ParserLog } from './utility/parserLog';
|
|
|
15
15
|
*/
|
|
16
16
|
export async function jcampLoader(
|
|
17
17
|
fileCollection: FileCollection,
|
|
18
|
-
|
|
18
|
+
logger?: FifoLogger,
|
|
19
19
|
): Promise<Partial<Measurements>> {
|
|
20
|
+
let count = 0;
|
|
20
21
|
const newMeasurements: Partial<Measurements> = {};
|
|
21
22
|
for (const file of fileCollection) {
|
|
22
23
|
if (/(?:\.jdx|\.dx)$/i.test(file.name)) {
|
|
@@ -50,22 +51,15 @@ export async function jcampLoader(
|
|
|
50
51
|
meta: measurement.meta,
|
|
51
52
|
data: normalizeSpectra(measurement.spectra),
|
|
52
53
|
};
|
|
54
|
+
count++;
|
|
53
55
|
Object.assign(newMeasurement.info, measurement.info);
|
|
54
56
|
newMeasurements[kind]?.entries.push(newMeasurement);
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
59
|
} catch (error) {
|
|
58
|
-
// send error to UI ?
|
|
59
60
|
if (error instanceof Error) {
|
|
60
|
-
if (
|
|
61
|
-
|
|
62
|
-
createLogEntry({
|
|
63
|
-
error,
|
|
64
|
-
parser: 'jcamp converter',
|
|
65
|
-
relativePath: file.relativePath,
|
|
66
|
-
message: 'error parsing jdx or dx file',
|
|
67
|
-
}),
|
|
68
|
-
);
|
|
61
|
+
if (logger) {
|
|
62
|
+
logger?.error(error);
|
|
69
63
|
} else {
|
|
70
64
|
throw error;
|
|
71
65
|
}
|
|
@@ -74,6 +68,7 @@ export async function jcampLoader(
|
|
|
74
68
|
}
|
|
75
69
|
}
|
|
76
70
|
|
|
71
|
+
logger?.debug(`Loaded ${count} measurements with jcampLoader`);
|
|
77
72
|
return newMeasurements;
|
|
78
73
|
}
|
|
79
74
|
|
|
@@ -97,10 +92,11 @@ function normalizeSpectra(spectra: any) {
|
|
|
97
92
|
for (const key in variables) {
|
|
98
93
|
const variable = variables[key];
|
|
99
94
|
if (variable.label) continue;
|
|
100
|
-
|
|
101
|
-
if (variable.units && !
|
|
102
|
-
|
|
95
|
+
let label: string = variable.name || variable.symbol || key;
|
|
96
|
+
if (variable.units && !label.includes(variable.units)) {
|
|
97
|
+
label += ` [${variable.units}]`;
|
|
103
98
|
}
|
|
99
|
+
variable.label = label;
|
|
104
100
|
}
|
|
105
101
|
}
|
|
106
102
|
data.push({ variables });
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { FifoLogger } from 'fifo-logger';
|
|
1
2
|
import type { FileCollection } from 'filelist-utils';
|
|
2
3
|
import { xMinMaxValues } from 'ml-spectra-processing';
|
|
3
4
|
|
|
4
|
-
import {
|
|
5
|
+
import { enhance, Enhancers, MeasurementBase, Measurements } from '../index';
|
|
5
6
|
|
|
6
7
|
import {
|
|
7
8
|
MeasurementsLoader,
|
|
@@ -12,20 +13,20 @@ import type { ParserLog } from './utility/parserLog';
|
|
|
12
13
|
export interface LoadOptions {
|
|
13
14
|
loaders?: MeasurementsLoader[];
|
|
14
15
|
enhancers?: Partial<Enhancers>;
|
|
15
|
-
logger?:
|
|
16
|
+
logger?: FifoLogger;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
export async function loadMeasurements(
|
|
19
20
|
fileCollection: FileCollection,
|
|
20
|
-
options: LoadOptions
|
|
21
|
+
options: LoadOptions,
|
|
21
22
|
) {
|
|
22
23
|
const measurements: Partial<Measurements> = {};
|
|
23
24
|
const logs: ParserLog[] = [];
|
|
24
|
-
const { loaders = [], enhancers = {}, logger
|
|
25
|
+
const { loaders = [], enhancers = {}, logger } = options;
|
|
25
26
|
for (const loader of loaders) {
|
|
26
27
|
// TODO: load in parallel
|
|
27
28
|
// eslint-disable-next-line no-await-in-loop
|
|
28
|
-
const loaderData = await loader(fileCollection, logger
|
|
29
|
+
const loaderData = await loader(fileCollection, logger);
|
|
29
30
|
for (const { entries } of Object.values(loaderData)) {
|
|
30
31
|
for (const entry of entries) {
|
|
31
32
|
computeMinMax(entry);
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { FifoLogger } from 'fifo-logger';
|
|
2
|
+
import type { FileCollection, FileCollectionItem } from 'filelist-utils';
|
|
2
3
|
|
|
3
4
|
import {
|
|
4
|
-
Measurements,
|
|
5
|
-
MeasurementBase,
|
|
6
5
|
getMeasurementInfoFromFile,
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
MeasurementBase,
|
|
7
|
+
Measurements,
|
|
9
8
|
} from '../../../index';
|
|
10
9
|
|
|
11
10
|
export async function cary500Loader(
|
|
12
11
|
fileCollection: FileCollection,
|
|
13
|
-
|
|
12
|
+
logger?: FifoLogger,
|
|
14
13
|
): Promise<Partial<Measurements>> {
|
|
15
14
|
const newMeasurements: Partial<Measurements> = {};
|
|
16
15
|
const entries: MeasurementBase[] = [];
|
|
@@ -26,16 +25,8 @@ export async function cary500Loader(
|
|
|
26
25
|
}
|
|
27
26
|
} catch (error) {
|
|
28
27
|
if (error instanceof Error) {
|
|
29
|
-
if (
|
|
30
|
-
|
|
31
|
-
createLogEntry({
|
|
32
|
-
kind: 'error',
|
|
33
|
-
parser: 'cary500Loader',
|
|
34
|
-
message: 'Error parsing cary500 experiment.',
|
|
35
|
-
error,
|
|
36
|
-
relativePath: file.relativePath,
|
|
37
|
-
}),
|
|
38
|
-
);
|
|
28
|
+
if (logger) {
|
|
29
|
+
logger.error(error);
|
|
39
30
|
} else {
|
|
40
31
|
throw error;
|
|
41
32
|
}
|
|
@@ -43,6 +34,7 @@ export async function cary500Loader(
|
|
|
43
34
|
}
|
|
44
35
|
}
|
|
45
36
|
}
|
|
37
|
+
logger?.debug(`Loaded ${entries.length} entries with cary500Loader`);
|
|
46
38
|
newMeasurements.uvvis = { entries };
|
|
47
39
|
return newMeasurements;
|
|
48
40
|
}
|