@complat/react-spectra-editor 1.7.1 → 1.8.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/CHANGELOG.md +28 -0
- package/LICENSE +21 -662
- package/README.md +5 -0
- package/dist/__tests__/fixtures/lc_ms_jcamp.js +2329 -0
- package/dist/__tests__/fixtures/lc_ms_jcamp_2.js +2874 -0
- package/dist/__tests__/fixtures/lc_ms_jcamp_mz_chemstation.js +3242 -0
- package/dist/__tests__/fixtures/lc_ms_jcamp_tic_chemstation.js +854 -0
- package/dist/__tests__/fixtures/lc_ms_jcamp_tic_neg.js +1233 -0
- package/dist/__tests__/fixtures/lc_ms_jcamp_tic_pos.js +1233 -0
- package/dist/__tests__/fixtures/lc_ms_jcamp_uvvis.js +48908 -0
- package/dist/__tests__/fixtures/lc_ms_jcamp_uvvis_chemstation.js +15424 -0
- package/dist/__tests__/units/components/cmd_bar/r05_submit_btn.test.js +158 -3
- package/dist/__tests__/units/components/d3_line_rect.test.js +85 -0
- package/dist/__tests__/units/components/d3_multi/multi_focus.test.js +43 -0
- package/dist/__tests__/units/components/hplc_viewer.test.js +123 -0
- package/dist/__tests__/units/components/panel/info.test.js +55 -15
- package/dist/__tests__/units/features/lc-ms/parsing/lcmsCategory.test.js +73 -0
- package/dist/__tests__/units/features/lc-ms/submit/peaks.test.js +310 -0
- package/dist/actions/curve.js +5 -2
- package/dist/actions/hplc_ms.js +66 -0
- package/dist/actions/integration.js +17 -2
- package/dist/actions/ui.js +39 -11
- package/dist/app.js +21 -8
- package/dist/components/cmd_bar/01_viewer.js +15 -11
- package/dist/components/cmd_bar/03_peak.js +25 -16
- package/dist/components/cmd_bar/04_integration.js +116 -17
- package/dist/components/cmd_bar/08_peak_group.js +83 -0
- package/dist/components/cmd_bar/collapsible_toolbar_group.js +101 -0
- package/dist/components/cmd_bar/common.js +4 -3
- package/dist/components/cmd_bar/index.js +76 -18
- package/dist/components/cmd_bar/r01_layout.js +6 -0
- package/dist/components/cmd_bar/r02_scan.js +15 -11
- package/dist/components/cmd_bar/r03_threshold.js +19 -3
- package/dist/components/cmd_bar/r04_submit.js +61 -6
- package/dist/components/cmd_bar/r05_submit_btn.js +60 -13
- package/dist/components/cmd_bar/r06_predict_btn.js +4 -4
- package/dist/components/cmd_bar/r07_wavelength_btn.js +10 -9
- package/dist/components/cmd_bar/r09_detector.js +2 -2
- package/dist/components/cmd_bar/tri_btn.js +4 -1
- package/dist/components/common/draw.js +6 -5
- package/dist/components/d3_line/index.js +70 -15
- package/dist/components/d3_line/line_focus.js +104 -67
- package/dist/components/d3_line_rect/index.js +836 -0
- package/dist/components/d3_line_rect/line_focus.js +526 -0
- package/dist/components/d3_line_rect/multi_focus.js +433 -0
- package/dist/components/d3_line_rect/rect_focus.js +247 -0
- package/dist/components/d3_multi/index.js +154 -163
- package/dist/components/d3_multi/multi_focus.js +117 -68
- package/dist/components/d3_rect/index.js +6 -0
- package/dist/components/d3_rect/rect_focus.js +17 -5
- package/dist/components/hplc_viewer.js +169 -0
- package/dist/components/lc_ms_uv_tools_bar.js +175 -0
- package/dist/components/multi_jcamps_viewer.js +17 -5
- package/dist/components/panel/compare.js +84 -62
- package/dist/components/panel/cyclic_voltamery_data.js +15 -14
- package/dist/components/panel/graph_selection.js +32 -30
- package/dist/components/panel/index.js +28 -22
- package/dist/components/panel/info.js +75 -26
- package/dist/constants/action_type.js +23 -2
- package/dist/constants/list_graph.js +16 -0
- package/dist/constants/list_layout.js +2 -1
- package/dist/constants/list_ui.js +5 -2
- package/dist/features/lc-ms/entities/extractEntityLCMS.js +187 -0
- package/dist/features/lc-ms/parsing/chemstation.js +108 -0
- package/dist/features/lc-ms/parsing/index.js +46 -0
- package/dist/features/lc-ms/parsing/lcmsCategory.js +44 -0
- package/dist/features/lc-ms/parsing/lcmsJcampInfo.js +18 -0
- package/dist/features/lc-ms/parsing/lcmsMsPage.js +241 -0
- package/dist/features/lc-ms/parsing/pageValue.js +27 -0
- package/dist/features/lc-ms/submit/index.js +24 -0
- package/dist/features/lc-ms/submit/peaks.js +66 -0
- package/dist/features/lc-ms/ui/wavelengthSelect.js +54 -0
- package/dist/fn.js +4 -1
- package/dist/helpers/brush.js +74 -19
- package/dist/helpers/calc.js +4 -2
- package/dist/helpers/cfg.js +5 -4
- package/dist/helpers/chem.js +449 -71
- package/dist/helpers/compass.js +181 -17
- package/dist/helpers/extractEntityLCMS.js +24 -0
- package/dist/helpers/extractParams.js +118 -33
- package/dist/helpers/extractPeaksEdit.js +29 -9
- package/dist/helpers/format.js +189 -4
- package/dist/helpers/init.js +25 -5
- package/dist/helpers/integration.js +130 -17
- package/dist/helpers/integration_draft.js +43 -0
- package/dist/helpers/integration_focus.js +155 -0
- package/dist/helpers/integration_jcamp.js +68 -0
- package/dist/helpers/integration_split.js +202 -0
- package/dist/helpers/mount.js +8 -1
- package/dist/helpers/sweep.js +39 -0
- package/dist/index.js +284 -26
- package/dist/layer_content.js +17 -3
- package/dist/layer_init.js +124 -14
- package/dist/layer_prism.js +31 -5
- package/dist/reducers/index.js +3 -1
- package/dist/reducers/reducer_curve.js +54 -36
- package/dist/reducers/reducer_hplc_ms/hydrate.js +289 -0
- package/dist/reducers/reducer_hplc_ms/index.js +122 -0
- package/dist/reducers/reducer_hplc_ms/persistence.js +74 -0
- package/dist/reducers/reducer_hplc_ms/tic.js +70 -0
- package/dist/reducers/reducer_hplc_ms/utils.js +70 -0
- package/dist/reducers/reducer_hplc_ms/uvvis.js +377 -0
- package/dist/reducers/reducer_integration.js +265 -7
- package/dist/reducers/reducer_layout.js +1 -1
- package/dist/reducers/reducer_submit.js +2 -1
- package/dist/reducers/reducer_ui.js +149 -13
- package/dist/reducers/undo_redo_config.js +2 -2
- package/dist/sagas/saga_lcms_ui.js +85 -0
- package/dist/sagas/saga_ui.js +177 -74
- package/dist/setupTests.js +5 -5
- package/package.json +10 -7
|
@@ -63,10 +63,12 @@ const GraphSelectionPanel = ({
|
|
|
63
63
|
if (subLayoutsInfo) {
|
|
64
64
|
subLayoutValues = Object.keys(subLayoutsInfo);
|
|
65
65
|
}
|
|
66
|
+
const subLayoutKey = subLayoutValues.join('|');
|
|
66
67
|
const [selectedSubLayout, setSelectedSublayout] = (0, _react.useState)(subLayoutValues[0]);
|
|
68
|
+
const resolvedSelectedSubLayout = subLayoutValues.includes(selectedSubLayout) ? selectedSubLayout : subLayoutValues[0] || false;
|
|
67
69
|
(0, _react.useEffect)(() => {
|
|
68
70
|
setSelectedSublayout(subLayoutValues[0]);
|
|
69
|
-
},
|
|
71
|
+
}, [subLayoutKey]);
|
|
70
72
|
if (!curveSt) {
|
|
71
73
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {});
|
|
72
74
|
}
|
|
@@ -89,27 +91,23 @@ const GraphSelectionPanel = ({
|
|
|
89
91
|
};
|
|
90
92
|
let itemsSubLayout = [];
|
|
91
93
|
if (selectedSubLayout && subLayoutValues.length > 1) {
|
|
92
|
-
const subLayout = subLayoutsInfo[
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
});
|
|
110
|
-
} catch (e) {
|
|
111
|
-
console.log(e); //eslint-disable-line
|
|
112
|
-
}
|
|
94
|
+
const subLayout = subLayoutsInfo?.[resolvedSelectedSubLayout];
|
|
95
|
+
itemsSubLayout = Array.isArray(subLayout) ? subLayout.map((spectra, idx) => {
|
|
96
|
+
const spectraIdx = spectra.curveIdx;
|
|
97
|
+
const {
|
|
98
|
+
color
|
|
99
|
+
} = spectra;
|
|
100
|
+
let filename = '';
|
|
101
|
+
if (entityFileNames && spectraIdx < entityFileNames.length) {
|
|
102
|
+
filename = entityFileNames[spectraIdx];
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
name: `${idx + 1}.`,
|
|
106
|
+
idx: spectraIdx,
|
|
107
|
+
color,
|
|
108
|
+
filename
|
|
109
|
+
};
|
|
110
|
+
}) : [];
|
|
113
111
|
}
|
|
114
112
|
const items = listCurves.map((spectra, idx) => {
|
|
115
113
|
const {
|
|
@@ -144,7 +142,7 @@ const GraphSelectionPanel = ({
|
|
|
144
142
|
className: "txt-panel-header",
|
|
145
143
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
146
144
|
className: (0, _classnames.default)(classes.txtBadge, 'txt-sv-panel-title'),
|
|
147
|
-
children: "Graph
|
|
145
|
+
children: "Graph selections"
|
|
148
146
|
})
|
|
149
147
|
})
|
|
150
148
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Divider, {}), layoutSt === _list_layout.LIST_LAYOUT.AIF ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.FormControlLabel, {
|
|
@@ -155,9 +153,9 @@ const GraphSelectionPanel = ({
|
|
|
155
153
|
label: "Show all curves"
|
|
156
154
|
}) : null, subLayoutValues && subLayoutValues.length > 1 ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
157
155
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tabs, {
|
|
158
|
-
value:
|
|
156
|
+
value: resolvedSelectedSubLayout,
|
|
159
157
|
onChange: onChangeTabSubLayout,
|
|
160
|
-
children: subLayoutValues.map(
|
|
158
|
+
children: subLayoutValues.map(subLayout => {
|
|
161
159
|
let subLayoutName = '';
|
|
162
160
|
switch (subLayout.toUpperCase()) {
|
|
163
161
|
case 'G/MOL':
|
|
@@ -178,7 +176,7 @@ const GraphSelectionPanel = ({
|
|
|
178
176
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tab, {
|
|
179
177
|
value: subLayout,
|
|
180
178
|
label: subLayoutName
|
|
181
|
-
},
|
|
179
|
+
}, subLayout);
|
|
182
180
|
})
|
|
183
181
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.List, {
|
|
184
182
|
children: itemsSubLayout.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ListItem, {
|
|
@@ -248,13 +246,17 @@ const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({
|
|
|
248
246
|
}, dispatch);
|
|
249
247
|
GraphSelectionPanel.propTypes = {
|
|
250
248
|
classes: _propTypes.default.object.isRequired,
|
|
251
|
-
expand: _propTypes.default.bool
|
|
249
|
+
expand: _propTypes.default.bool,
|
|
252
250
|
layoutSt: _propTypes.default.string.isRequired,
|
|
253
|
-
onExapnd: _propTypes.default.func
|
|
251
|
+
onExapnd: _propTypes.default.func,
|
|
252
|
+
onExpand: _propTypes.default.func,
|
|
254
253
|
curveSt: _propTypes.default.object.isRequired,
|
|
255
254
|
selectCurveAct: _propTypes.default.func.isRequired,
|
|
256
|
-
entityFileNames: _propTypes.default.array
|
|
257
|
-
subLayoutsInfo: _propTypes.default.
|
|
255
|
+
entityFileNames: _propTypes.default.array,
|
|
256
|
+
subLayoutsInfo: _propTypes.default.object,
|
|
258
257
|
toggleShowAllCurveAct: _propTypes.default.func.isRequired
|
|
259
258
|
};
|
|
259
|
+
GraphSelectionPanel.defaultProps = {
|
|
260
|
+
entityFileNames: []
|
|
261
|
+
};
|
|
260
262
|
var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(GraphSelectionPanel));
|
|
@@ -9,7 +9,6 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
11
|
var _reactRedux = require("react-redux");
|
|
12
|
-
var _redux = require("redux");
|
|
13
12
|
var _styles = require("@mui/material/styles");
|
|
14
13
|
var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles"));
|
|
15
14
|
var _info = _interopRequireDefault(require("./info"));
|
|
@@ -19,8 +18,9 @@ var _multiplicity = _interopRequireDefault(require("./multiplicity"));
|
|
|
19
18
|
var _cyclic_voltamery_data = _interopRequireDefault(require("./cyclic_voltamery_data"));
|
|
20
19
|
var _graph_selection = _interopRequireDefault(require("./graph_selection"));
|
|
21
20
|
var _cfg = _interopRequireDefault(require("../../helpers/cfg"));
|
|
21
|
+
var _format = _interopRequireDefault(require("../../helpers/format"));
|
|
22
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
-
/* eslint-disable react/prop-types, react/require-default-props */
|
|
23
|
+
/* eslint-disable react/prop-types, react/require-default-props, max-len */
|
|
24
24
|
|
|
25
25
|
const theme = (0, _styles.createTheme)({
|
|
26
26
|
typography: {
|
|
@@ -50,7 +50,7 @@ class PanelViewer extends _react.default.Component {
|
|
|
50
50
|
this.state = {
|
|
51
51
|
expand: 'info'
|
|
52
52
|
};
|
|
53
|
-
this.
|
|
53
|
+
this.onToggleExpand = this.onToggleExpand.bind(this);
|
|
54
54
|
this.handleDescriptionChanged = this.handleDescriptionChanged.bind(this);
|
|
55
55
|
}
|
|
56
56
|
handleDescriptionChanged(content, delta, source, editor) {
|
|
@@ -59,7 +59,7 @@ class PanelViewer extends _react.default.Component {
|
|
|
59
59
|
this.props.onDescriptionChanged(contentChanged); // eslint-disable-line
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
|
|
62
|
+
onToggleExpand(input) {
|
|
63
63
|
const {
|
|
64
64
|
expand
|
|
65
65
|
} = this.state;
|
|
@@ -87,18 +87,20 @@ class PanelViewer extends _react.default.Component {
|
|
|
87
87
|
userManualLink,
|
|
88
88
|
subLayoutsInfo,
|
|
89
89
|
exactMass,
|
|
90
|
+
entities,
|
|
90
91
|
hideCyclicVolta
|
|
91
92
|
} = this.props;
|
|
92
|
-
const
|
|
93
|
-
const
|
|
94
|
-
const
|
|
95
|
-
const
|
|
96
|
-
const
|
|
97
|
-
const
|
|
93
|
+
const onExpandInfo = () => this.onToggleExpand('info');
|
|
94
|
+
const onExpandPeak = () => this.onToggleExpand('peak');
|
|
95
|
+
const onExpandMpy = () => this.onToggleExpand('mpy');
|
|
96
|
+
const onExpandCompare = () => this.onToggleExpand('compare');
|
|
97
|
+
const onExpandCyclicVolta = () => this.onToggleExpand('cyclicvolta');
|
|
98
|
+
const onExpandGraphSelection = () => this.onToggleExpand('graph');
|
|
98
99
|
const {
|
|
99
100
|
listCurves
|
|
100
101
|
} = curveSt;
|
|
101
|
-
const
|
|
102
|
+
const curveCount = Array.isArray(listCurves) ? listCurves.length : 0;
|
|
103
|
+
const hideGraphSelection = curveCount <= 1 || _format.default.isLCMsLayout(layoutSt);
|
|
102
104
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
103
105
|
className: (0, _classnames.default)(classes.panels),
|
|
104
106
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.StyledEngineProvider, {
|
|
@@ -109,33 +111,34 @@ class PanelViewer extends _react.default.Component {
|
|
|
109
111
|
jcampIdx: jcampIdx,
|
|
110
112
|
entityFileNames: entityFileNames,
|
|
111
113
|
expand: expand === 'graph',
|
|
112
|
-
|
|
114
|
+
onExpand: onExpandGraphSelection,
|
|
113
115
|
subLayoutsInfo: subLayoutsInfo
|
|
114
116
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_info.default, {
|
|
117
|
+
entities: entities,
|
|
115
118
|
feature: feature,
|
|
116
119
|
integration: integration,
|
|
117
120
|
editorOnly: editorOnly,
|
|
118
121
|
expand: expand === 'info',
|
|
119
122
|
molSvg: molSvg,
|
|
120
123
|
exactMass: exactMass,
|
|
121
|
-
|
|
124
|
+
onExpand: onExpandInfo,
|
|
122
125
|
descriptions: descriptions,
|
|
123
126
|
canChangeDescription: canChangeDescription,
|
|
124
127
|
onDescriptionChanged: this.handleDescriptionChanged
|
|
125
128
|
}), _cfg.default.hidePanelPeak(layoutSt) ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_peaks.default, {
|
|
126
129
|
expand: expand === 'peak',
|
|
127
|
-
onExapnd:
|
|
130
|
+
onExapnd: onExpandPeak
|
|
128
131
|
}), _cfg.default.hidePanelMpy(layoutSt) ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_multiplicity.default, {
|
|
129
132
|
expand: expand === 'mpy',
|
|
130
|
-
onExapnd:
|
|
131
|
-
}), _cfg.default.hidePanelCompare(layoutSt) ||
|
|
133
|
+
onExapnd: onExpandMpy
|
|
134
|
+
}), _cfg.default.hidePanelCompare(layoutSt) || curveCount > 1 ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_compare.default, {
|
|
132
135
|
expand: expand === 'compare',
|
|
133
|
-
onExapnd:
|
|
136
|
+
onExapnd: onExpandCompare
|
|
134
137
|
}), _cfg.default.hidePanelCyclicVolta(layoutSt) || hideCyclicVolta ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_cyclic_voltamery_data.default, {
|
|
135
138
|
jcampIdx: jcampIdx,
|
|
136
139
|
feature: feature,
|
|
137
140
|
expand: expand === 'cyclicvolta',
|
|
138
|
-
onExapnd:
|
|
141
|
+
onExapnd: onExpandCyclicVolta,
|
|
139
142
|
userManualLink: userManualLink ? userManualLink.cv : undefined
|
|
140
143
|
})]
|
|
141
144
|
})
|
|
@@ -149,11 +152,10 @@ const mapStateToProps = (state, _) => (
|
|
|
149
152
|
layoutSt: state.layout,
|
|
150
153
|
curveSt: state.curve
|
|
151
154
|
});
|
|
152
|
-
const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({}, dispatch);
|
|
153
155
|
PanelViewer.propTypes = {
|
|
154
156
|
classes: _propTypes.default.object.isRequired,
|
|
155
157
|
feature: _propTypes.default.object.isRequired,
|
|
156
|
-
integration: _propTypes.default.object
|
|
158
|
+
integration: _propTypes.default.object,
|
|
157
159
|
editorOnly: _propTypes.default.bool.isRequired,
|
|
158
160
|
molSvg: _propTypes.default.string.isRequired,
|
|
159
161
|
descriptions: _propTypes.default.array.isRequired,
|
|
@@ -165,8 +167,12 @@ PanelViewer.propTypes = {
|
|
|
165
167
|
curveSt: _propTypes.default.object.isRequired,
|
|
166
168
|
subLayoutsInfo: _propTypes.default.object,
|
|
167
169
|
exactMass: _propTypes.default.string,
|
|
168
|
-
hideCyclicVolta: _propTypes.default.bool
|
|
170
|
+
hideCyclicVolta: _propTypes.default.bool,
|
|
171
|
+
entities: _propTypes.default.array
|
|
172
|
+
};
|
|
173
|
+
PanelViewer.defaultProps = {
|
|
174
|
+
integration: {}
|
|
169
175
|
};
|
|
170
176
|
var _default = exports.default = (0, _reactRedux.connect)(
|
|
171
177
|
// eslint-disable-line
|
|
172
|
-
mapStateToProps,
|
|
178
|
+
mapStateToProps, null)((0, _withStyles.default)(styles)(PanelViewer)); // eslint-disable-line
|
|
@@ -21,6 +21,7 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
21
21
|
/* eslint-disable no-mixed-operators, react/function-component-definition,
|
|
22
22
|
react/require-default-props, max-len */
|
|
23
23
|
|
|
24
|
+
const ELECTRON_MASS = 0.000548579909065;
|
|
24
25
|
const styles = () => ({
|
|
25
26
|
chip: {
|
|
26
27
|
margin: '1px 0 1px 0'
|
|
@@ -126,6 +127,11 @@ const normalizeQuillValue = val => {
|
|
|
126
127
|
if (val === '<p><br></p>' || val === '<p></p>') return '';
|
|
127
128
|
return val;
|
|
128
129
|
};
|
|
130
|
+
const formatMsExactMass = exactMass => {
|
|
131
|
+
const neutralMass = parseFloat(exactMass);
|
|
132
|
+
if (Number.isNaN(neutralMass)) return null;
|
|
133
|
+
return (neutralMass - ELECTRON_MASS).toFixed(6);
|
|
134
|
+
};
|
|
129
135
|
const chemSubStyle = {
|
|
130
136
|
fontSize: '0.85em',
|
|
131
137
|
position: 'relative',
|
|
@@ -159,12 +165,9 @@ const handleDescriptionChanged = (content, delta, source, editor, onDescriptionC
|
|
|
159
165
|
if (!onDescriptionChanged) return;
|
|
160
166
|
onDescriptionChanged(normalizeQuillValue(content), delta, source, editor);
|
|
161
167
|
};
|
|
162
|
-
const aucValue = integration => {
|
|
163
|
-
if (!integration) {
|
|
164
|
-
return '';
|
|
165
|
-
}
|
|
168
|
+
const aucValue = (integration, hplcMsSt) => {
|
|
166
169
|
const values = [];
|
|
167
|
-
const stackIntegration = integration
|
|
170
|
+
const stackIntegration = integration?.stack;
|
|
168
171
|
if (Array.isArray(stackIntegration)) {
|
|
169
172
|
let sumVal = 0.0;
|
|
170
173
|
stackIntegration.forEach(inte => {
|
|
@@ -182,7 +185,23 @@ const aucValue = integration => {
|
|
|
182
185
|
}
|
|
183
186
|
});
|
|
184
187
|
}
|
|
185
|
-
|
|
188
|
+
const spectraList = hplcMsSt?.uvvis?.spectraList || [];
|
|
189
|
+
const listWaveLength = hplcMsSt?.uvvis?.listWaveLength || [];
|
|
190
|
+
spectraList.forEach((spectrum, idx) => {
|
|
191
|
+
const wavelength = listWaveLength[idx];
|
|
192
|
+
const integrations = spectrum?.integrations || [];
|
|
193
|
+
if (integrations.length > 0) {
|
|
194
|
+
const sumArea = integrations.reduce((sum, integ) => sum + (integ.absoluteArea ?? integ.area ?? 0), 0);
|
|
195
|
+
const integrationStrings = integrations.map(integ => {
|
|
196
|
+
const rawArea = integ.absoluteArea ?? integ.area ?? 0;
|
|
197
|
+
const areaVal = rawArea.toFixed(2);
|
|
198
|
+
const percent = sumArea > 0 ? (rawArea * 100 / sumArea).toFixed(2) : '0.00';
|
|
199
|
+
return `${areaVal} (${percent}%)`;
|
|
200
|
+
});
|
|
201
|
+
values.push(`[${wavelength} nm]: ${integrationStrings.join(', ')}`);
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
return values.join('\n');
|
|
186
205
|
};
|
|
187
206
|
const SECData = ({
|
|
188
207
|
classes,
|
|
@@ -251,8 +270,11 @@ const SECData = ({
|
|
|
251
270
|
SECData.propTypes = {
|
|
252
271
|
classes: _propTypes.default.object.isRequired,
|
|
253
272
|
layout: _propTypes.default.string.isRequired,
|
|
254
|
-
detector: _propTypes.default.
|
|
255
|
-
secData: _propTypes.default.object
|
|
273
|
+
detector: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),
|
|
274
|
+
secData: _propTypes.default.object
|
|
275
|
+
};
|
|
276
|
+
SECData.defaultProps = {
|
|
277
|
+
detector: ''
|
|
256
278
|
};
|
|
257
279
|
const DSCData = ({
|
|
258
280
|
classes,
|
|
@@ -310,7 +332,7 @@ const DSCData = ({
|
|
|
310
332
|
DSCData.propTypes = {
|
|
311
333
|
classes: _propTypes.default.object.isRequired,
|
|
312
334
|
layout: _propTypes.default.string.isRequired,
|
|
313
|
-
dscMetaData: _propTypes.default.object
|
|
335
|
+
dscMetaData: _propTypes.default.object,
|
|
314
336
|
updateAction: _propTypes.default.func.isRequired
|
|
315
337
|
};
|
|
316
338
|
const InfoPanel = ({
|
|
@@ -326,14 +348,17 @@ const InfoPanel = ({
|
|
|
326
348
|
shiftSt,
|
|
327
349
|
curveSt,
|
|
328
350
|
exactMass,
|
|
329
|
-
|
|
351
|
+
onExpand,
|
|
330
352
|
canChangeDescription,
|
|
331
353
|
onDescriptionChanged,
|
|
332
354
|
detectorSt,
|
|
333
355
|
metaSt,
|
|
334
|
-
updateDSCMetaDataAct
|
|
356
|
+
updateDSCMetaDataAct,
|
|
357
|
+
hplcMsSt,
|
|
358
|
+
entities
|
|
335
359
|
}) => {
|
|
336
360
|
if (!feature) return null;
|
|
361
|
+
const msExactMass = _format.default.isMsLayout(layoutSt) && exactMass ? formatMsExactMass(exactMass) : null;
|
|
337
362
|
const {
|
|
338
363
|
title,
|
|
339
364
|
observeFrequency,
|
|
@@ -347,11 +372,14 @@ const InfoPanel = ({
|
|
|
347
372
|
curveIdx
|
|
348
373
|
} = curveSt;
|
|
349
374
|
const {
|
|
350
|
-
curves
|
|
351
|
-
} = detectorSt;
|
|
375
|
+
curves = []
|
|
376
|
+
} = detectorSt || {};
|
|
377
|
+
const currentEntity = Array.isArray(entities) ? entities[curveIdx] : null;
|
|
378
|
+
const entityTitle = currentEntity?.entity?.title || currentEntity?.title || currentEntity?.spectra?.[0]?.title || currentEntity?.entity?.spectra?.[0]?.title || '';
|
|
379
|
+
const displayTitle = title || entityTitle;
|
|
352
380
|
const getSelectedDetectorForCurve = (_detectorSt, targetCurveIdx) => {
|
|
353
381
|
const targetCurve = curves.find(curve => curve.curveIdx === targetCurveIdx);
|
|
354
|
-
return targetCurve
|
|
382
|
+
return targetCurve?.selectedDetector?.name || '';
|
|
355
383
|
};
|
|
356
384
|
let selectedDetector = getSelectedDetectorForCurve(detectorSt, curveIdx);
|
|
357
385
|
|
|
@@ -376,7 +404,7 @@ const InfoPanel = ({
|
|
|
376
404
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Accordion, {
|
|
377
405
|
"data-testid": "PanelInfo",
|
|
378
406
|
expanded: expand,
|
|
379
|
-
onChange:
|
|
407
|
+
onChange: onExpand,
|
|
380
408
|
disableGutters: true,
|
|
381
409
|
sx: {
|
|
382
410
|
'&.MuiAccordion-root.Mui-expanded': {
|
|
@@ -409,7 +437,7 @@ const InfoPanel = ({
|
|
|
409
437
|
children: "Title : "
|
|
410
438
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
411
439
|
className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'),
|
|
412
|
-
children:
|
|
440
|
+
children: displayTitle
|
|
413
441
|
})]
|
|
414
442
|
}), _format.default.isNmrLayout(layoutSt) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
415
443
|
className: (0, _classnames.default)(classes.rowRoot, classes.rowEven),
|
|
@@ -429,14 +457,14 @@ const InfoPanel = ({
|
|
|
429
457
|
className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'),
|
|
430
458
|
children: renderReadableSubscript(showSolvName)
|
|
431
459
|
})]
|
|
432
|
-
}) : null,
|
|
460
|
+
}) : null, msExactMass ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
433
461
|
className: (0, _classnames.default)(classes.rowRoot, classes.rowOdd),
|
|
434
462
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
435
463
|
className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'),
|
|
436
|
-
children: "Exact mass: "
|
|
464
|
+
children: "Exact mass (M+): "
|
|
437
465
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
438
466
|
className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'),
|
|
439
|
-
children: `${
|
|
467
|
+
children: `${msExactMass} g/mol`
|
|
440
468
|
})]
|
|
441
469
|
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(SECData, {
|
|
442
470
|
classes: classes,
|
|
@@ -490,7 +518,25 @@ const InfoPanel = ({
|
|
|
490
518
|
})
|
|
491
519
|
})]
|
|
492
520
|
}) : null]
|
|
493
|
-
})
|
|
521
|
+
}), _format.default.isLCMsLayout(layoutSt) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
522
|
+
className: (0, _classnames.default)(classes.rowRoot, classes.rowOddSim),
|
|
523
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
524
|
+
className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'),
|
|
525
|
+
children: "Area under curve (AUC):"
|
|
526
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
527
|
+
className: (0, _classnames.default)(classes.tTxt, classes.tTxtSim, 'txt-sv-panel-txt'),
|
|
528
|
+
style: {
|
|
529
|
+
maxHeight: '80px',
|
|
530
|
+
overflowY: 'auto',
|
|
531
|
+
overflowX: 'hidden',
|
|
532
|
+
wordBreak: 'break-word',
|
|
533
|
+
marginBottom: '100px'
|
|
534
|
+
},
|
|
535
|
+
children: aucValue(integration, hplcMsSt).split('\n').map((line, idx) => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
536
|
+
children: line
|
|
537
|
+
}, idx))
|
|
538
|
+
})]
|
|
539
|
+
}) : null]
|
|
494
540
|
});
|
|
495
541
|
};
|
|
496
542
|
const mapStateToProps = (state, props) => (
|
|
@@ -501,7 +547,8 @@ const mapStateToProps = (state, props) => (
|
|
|
501
547
|
shiftSt: state.shift,
|
|
502
548
|
curveSt: state.curve,
|
|
503
549
|
detectorSt: state.detector,
|
|
504
|
-
metaSt: state.meta
|
|
550
|
+
metaSt: state.meta,
|
|
551
|
+
hplcMsSt: state.hplcMs
|
|
505
552
|
});
|
|
506
553
|
const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({
|
|
507
554
|
updateDSCMetaDataAct: _meta.updateDSCMetaData
|
|
@@ -509,22 +556,24 @@ const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({
|
|
|
509
556
|
InfoPanel.propTypes = {
|
|
510
557
|
classes: _propTypes.default.object.isRequired,
|
|
511
558
|
expand: _propTypes.default.bool.isRequired,
|
|
512
|
-
feature: _propTypes.default.object
|
|
513
|
-
integration: _propTypes.default.object
|
|
559
|
+
feature: _propTypes.default.object,
|
|
560
|
+
integration: _propTypes.default.object,
|
|
514
561
|
editorOnly: _propTypes.default.bool.isRequired,
|
|
515
562
|
molSvg: _propTypes.default.string.isRequired,
|
|
516
563
|
descriptions: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.array]).isRequired,
|
|
517
564
|
layoutSt: _propTypes.default.string.isRequired,
|
|
518
|
-
simulationSt: _propTypes.default.
|
|
565
|
+
simulationSt: _propTypes.default.object.isRequired,
|
|
519
566
|
shiftSt: _propTypes.default.object.isRequired,
|
|
520
567
|
curveSt: _propTypes.default.object.isRequired,
|
|
521
|
-
|
|
568
|
+
onExpand: _propTypes.default.func,
|
|
522
569
|
canChangeDescription: _propTypes.default.bool.isRequired,
|
|
523
570
|
onDescriptionChanged: _propTypes.default.func,
|
|
524
571
|
exactMass: _propTypes.default.string,
|
|
525
572
|
detectorSt: _propTypes.default.object.isRequired,
|
|
526
573
|
metaSt: _propTypes.default.object.isRequired,
|
|
527
|
-
updateDSCMetaDataAct: _propTypes.default.func.isRequired
|
|
574
|
+
updateDSCMetaDataAct: _propTypes.default.func.isRequired,
|
|
575
|
+
hplcMsSt: _propTypes.default.object.isRequired,
|
|
576
|
+
entities: _propTypes.default.array
|
|
528
577
|
};
|
|
529
578
|
var _default = exports.default = (0, _reactRedux.connect)(
|
|
530
579
|
// eslint-disable-line
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.XRD = exports.UI = exports.THRESHOLD = exports.SUBMIT = exports.STATUS = exports.SIMULATION = exports.SHIFT = exports.SEC = exports.SCAN = exports.MULTIPLICITY = exports.META = exports.MANAGER = exports.LAYOUT = exports.JCAMP = exports.INTEGRATION = exports.FORECAST = exports.EDITPEAK = exports.CYCLIC_VOLTA_METRY = exports.CURVE = exports.AXES = void 0;
|
|
6
|
+
exports.XRD = exports.UI = exports.THRESHOLD = exports.SUBMIT = exports.STATUS = exports.SIMULATION = exports.SHIFT = exports.SEC = exports.SCAN = exports.MULTIPLICITY = exports.META = exports.MANAGER = exports.LAYOUT = exports.JCAMP = exports.INTEGRATION = exports.HPLC_MS = exports.FORECAST = exports.EDITPEAK = exports.CYCLIC_VOLTA_METRY = exports.CURVE = exports.AXES = void 0;
|
|
7
7
|
const THRESHOLD = exports.THRESHOLD = {
|
|
8
8
|
UPDATE_VALUE: 'THRESHOLD_UPDATE_VALUE',
|
|
9
9
|
RESET_VALUE: 'THRESHOLD_RESET_VALUE',
|
|
@@ -56,6 +56,7 @@ const UI = exports.UI = {
|
|
|
56
56
|
SET_TYPE: 'UI_SWEEP_SET_TYPE',
|
|
57
57
|
SELECT: 'UI_SWEEP_SELECT',
|
|
58
58
|
SELECT_ZOOMIN: 'UI_SWEEP_SELECT_ZOOMIN',
|
|
59
|
+
SELECT_ZOOMIN_SUBVIEW: 'UI_SWEEP_SELECT_ZOOMIN',
|
|
59
60
|
SELECT_ZOOMRESET: 'UI_SWEEP_SELECT_ZOOMRESET',
|
|
60
61
|
SELECT_INTEGRATION: 'UI_SWEEP_SELECT_INTEGRATION',
|
|
61
62
|
SELECT_MULTIPLICITY: 'UI_SWEEP_SELECT_MULTIPLICITY',
|
|
@@ -63,6 +64,9 @@ const UI = exports.UI = {
|
|
|
63
64
|
},
|
|
64
65
|
WHEEL: {
|
|
65
66
|
SCROLL: 'UI_WHEEL_SCROLL'
|
|
67
|
+
},
|
|
68
|
+
SUB_VIEWER: {
|
|
69
|
+
DISPLAY_VIEWER_AT: 'DISPLAY_VIEWER_AT'
|
|
66
70
|
}
|
|
67
71
|
};
|
|
68
72
|
const FORECAST = exports.FORECAST = {
|
|
@@ -83,7 +87,10 @@ const INTEGRATION = exports.INTEGRATION = {
|
|
|
83
87
|
SET_FKR: 'INTEGRATION_SET_FKR',
|
|
84
88
|
RESET_ALL_RDC: 'INTEGRATION_RESET_ALL_RDC',
|
|
85
89
|
CLEAR_ALL: 'INTEGRATION_CLEAR_ALL',
|
|
86
|
-
SWEEP: 'INTEGRATION_SWEEP'
|
|
90
|
+
SWEEP: 'INTEGRATION_SWEEP',
|
|
91
|
+
SPLIT: 'INTEGRATION_SPLIT',
|
|
92
|
+
ADD_VISUAL_SPLIT: 'INTEGRATION_ADD_VISUAL_SPLIT',
|
|
93
|
+
RM_VISUAL_SPLIT: 'INTEGRATION_RM_VISUAL_SPLIT'
|
|
87
94
|
};
|
|
88
95
|
const SIMULATION = exports.SIMULATION = {
|
|
89
96
|
RESET_ALL_RDC: 'SIMULATION_RESET_ALL_RDC'
|
|
@@ -150,4 +157,18 @@ const AXES = exports.AXES = {
|
|
|
150
157
|
};
|
|
151
158
|
const SEC = exports.SEC = {
|
|
152
159
|
UPDATE_DETECTOR: 'UPDATE_DETECTOR'
|
|
160
|
+
};
|
|
161
|
+
const HPLC_MS = exports.HPLC_MS = {
|
|
162
|
+
SET_LCMS_INTEGRATIONS_EXPORT: 'HPLC_MS_SET_LCMS_INTEGRATIONS_EXPORT',
|
|
163
|
+
UPDATE_UVVIS_WAVE_LENGTH: 'UPDATE_UVVIS_WAVE_LENGTH',
|
|
164
|
+
SELECT_TIC_CURVE: 'SELECT_TIC_CURVE',
|
|
165
|
+
UPDATE_HPLCMS_INTEGRATIONS: 'UPDATE_HPLCMS_INTEGRATIONS',
|
|
166
|
+
UPDATE_CURRENT_PAGE_VALUE: 'UPDATE_CURRENT_PAGE_VALUE',
|
|
167
|
+
UVVIS_UNDO: 'HPLC_MS_UVVIS_UNDO',
|
|
168
|
+
UVVIS_REDO: 'HPLC_MS_UVVIS_REDO',
|
|
169
|
+
UPDATE_HPLCMS_PEAKS: 'UPDATE_HPLCMS_PEAKS',
|
|
170
|
+
REMOVE_HPLCMS_PEAK: 'REMOVE_HPLCMS_PEAK',
|
|
171
|
+
CLEAR_INTEGRATION_ALL_HPLCMS: 'CLEAR_INTEGRATION_ALL_HPLCMS',
|
|
172
|
+
CLEAR_ALL_PEAKS_HPLCMS: 'CLEAR_ALL_PEAKS_HPLCMS',
|
|
173
|
+
CLEAR_STATE: 'HPLC_MS_CLEAR_STATE'
|
|
153
174
|
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LIST_ROOT_SVG_GRAPH = exports.LIST_BRUSH_SVG_GRAPH = void 0;
|
|
7
|
+
const LIST_ROOT_SVG_GRAPH = exports.LIST_ROOT_SVG_GRAPH = {
|
|
8
|
+
LINE: 'd3Line',
|
|
9
|
+
RECT: 'd3Rect',
|
|
10
|
+
MULTI: 'd3Multi'
|
|
11
|
+
};
|
|
12
|
+
const LIST_BRUSH_SVG_GRAPH = exports.LIST_BRUSH_SVG_GRAPH = {
|
|
13
|
+
LINE: 'd3Svg',
|
|
14
|
+
RECT: 'd3SvgRect',
|
|
15
|
+
MULTI: 'd3SvgMulti'
|
|
16
|
+
};
|
|
@@ -15,6 +15,8 @@ const LIST_UI_SWEEP_TYPE = exports.LIST_UI_SWEEP_TYPE = {
|
|
|
15
15
|
INTEGRATION_RM: 'integration remove',
|
|
16
16
|
INTEGRATION_REF: 'integration reference',
|
|
17
17
|
INTEGRATION_SET_REF: 'integration set ref',
|
|
18
|
+
INTEGRATION_SPLIT: 'integration split',
|
|
19
|
+
INTEGRATION_VISUAL_SPLIT: 'integration visual split',
|
|
18
20
|
MULTIPLICITY_SWEEP_ADD: 'multiplicity sweep add',
|
|
19
21
|
MULTIPLICITY_ONE_CLICK: 'multiplicity one click',
|
|
20
22
|
MULTIPLICITY_ONE_RM: 'multiplicity one remove',
|
|
@@ -30,6 +32,7 @@ const LIST_UI_SWEEP_TYPE = exports.LIST_UI_SWEEP_TYPE = {
|
|
|
30
32
|
CYCLIC_VOLTA_RM_MIN_PEAK: 'cyclic voltammetry remove min peak',
|
|
31
33
|
CYCLIC_VOLTA_ADD_PECKER: 'cyclic voltammetry add pecker',
|
|
32
34
|
CYCLIC_VOLTA_RM_PECKER: 'cyclic voltammetry remove pecker',
|
|
33
|
-
CYCLIC_VOLTA_SET_REF: 'cyclic voltammetry set ref'
|
|
35
|
+
CYCLIC_VOLTA_SET_REF: 'cyclic voltammetry set ref',
|
|
36
|
+
PEAK_GROUP_SELECT: 'peak group select'
|
|
34
37
|
};
|
|
35
|
-
const LIST_NON_BRUSH_TYPES = exports.LIST_NON_BRUSH_TYPES = [LIST_UI_SWEEP_TYPE.PEAK_ADD, LIST_UI_SWEEP_TYPE.PEAK_DELETE, LIST_UI_SWEEP_TYPE.ANCHOR_SHIFT, LIST_UI_SWEEP_TYPE.INTEGRATION_RM, LIST_UI_SWEEP_TYPE.INTEGRATION_SET_REF, LIST_UI_SWEEP_TYPE.MULTIPLICITY_PEAK_ADD, LIST_UI_SWEEP_TYPE.MULTIPLICITY_PEAK_RM, LIST_UI_SWEEP_TYPE.MULTIPLICITY_ONE_CLICK, LIST_UI_SWEEP_TYPE.MULTIPLICITY_ONE_RM, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MAX_PEAK, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MAX_PEAK, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MIN_PEAK, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MIN_PEAK, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_PECKER, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_PECKER, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_SET_REF];
|
|
38
|
+
const LIST_NON_BRUSH_TYPES = exports.LIST_NON_BRUSH_TYPES = [LIST_UI_SWEEP_TYPE.PEAK_ADD, LIST_UI_SWEEP_TYPE.PEAK_DELETE, LIST_UI_SWEEP_TYPE.ANCHOR_SHIFT, LIST_UI_SWEEP_TYPE.INTEGRATION_RM, LIST_UI_SWEEP_TYPE.INTEGRATION_SET_REF, LIST_UI_SWEEP_TYPE.INTEGRATION_SPLIT, LIST_UI_SWEEP_TYPE.INTEGRATION_VISUAL_SPLIT, LIST_UI_SWEEP_TYPE.MULTIPLICITY_PEAK_ADD, LIST_UI_SWEEP_TYPE.MULTIPLICITY_PEAK_RM, LIST_UI_SWEEP_TYPE.MULTIPLICITY_ONE_CLICK, LIST_UI_SWEEP_TYPE.MULTIPLICITY_ONE_RM, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MAX_PEAK, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MAX_PEAK, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MIN_PEAK, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MIN_PEAK, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_PECKER, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_PECKER, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_SET_REF, LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT];
|