@complat/react-spectra-editor 1.5.4 → 1.7.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.
@@ -5,11 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(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
12
  var _redux = require("redux");
13
+ var _ExpandLess = _interopRequireDefault(require("@mui/icons-material/ExpandLess"));
13
14
  var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore"));
14
15
  var _AddCircleOutline = _interopRequireDefault(require("@mui/icons-material/AddCircleOutline"));
15
16
  var _RemoveCircle = _interopRequireDefault(require("@mui/icons-material/RemoveCircle"));
@@ -23,30 +24,73 @@ var _list_ui = require("../../constants/list_ui");
23
24
  var _chem = require("../../helpers/chem");
24
25
  var _format = _interopRequireDefault(require("../../helpers/format"));
25
26
  var _jsxRuntime = require("react/jsx-runtime");
27
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
26
28
  /* eslint-disable function-paren-newline, react/require-default-props,
27
29
  react/no-unused-prop-types, react/jsx-closing-tag-location, max-len, react/jsx-one-expression-per-line,
28
30
  react/jsx-indent, react/no-unescaped-entities, react/jsx-wrap-multilines, camelcase, no-shadow,
29
31
  arrow-body-style, react/function-component-definition */
30
32
 
33
+ const MAX_VISIBLE_ROWS = 6;
34
+ const ROW_HEIGHT_PX = 28;
35
+ const HEADER_HEIGHT_PX = 24;
36
+ const EXPANDED_HEIGHT = HEADER_HEIGHT_PX + MAX_VISIBLE_ROWS * ROW_HEIGHT_PX;
31
37
  const styles = () => ({
32
38
  panel: {
33
- backgroundColor: '#eee',
34
- display: 'table-row'
39
+ backgroundColor: '#f7f7f7',
40
+ border: '1px solid #e6e6e6',
41
+ borderRadius: 8,
42
+ overflow: 'hidden'
35
43
  },
36
- panelSummary: {
44
+ panelHeader: {
37
45
  backgroundColor: '#eee',
38
- height: 32
46
+ padding: '4px 8px',
47
+ display: 'flex',
48
+ alignItems: 'center'
39
49
  },
40
- panelDetail: {
41
- backgroundColor: '#fff',
42
- maxHeight: 'calc(90vh - 220px)',
43
- // ROI
44
- overflow: 'auto'
50
+ panelActions: {
51
+ marginLeft: 'auto',
52
+ display: 'flex',
53
+ alignItems: 'center',
54
+ gap: 8
55
+ },
56
+ howToWrap: {
57
+ display: 'inline-flex',
58
+ alignItems: 'center',
59
+ gap: 4
60
+ },
61
+ toggleBtn: {
62
+ padding: 0
45
63
  },
46
64
  table: {
47
65
  width: '100%',
48
66
  overflowWrap: 'anywhere',
49
- fontSize: '14px !important'
67
+ fontSize: '11px !important'
68
+ },
69
+ tableWrap: {
70
+ padding: '3px 6px 5px',
71
+ height: 'auto',
72
+ maxHeight: EXPANDED_HEIGHT,
73
+ overflowY: 'auto',
74
+ overflowX: 'hidden',
75
+ transition: 'max-height 200ms ease'
76
+ },
77
+ tableWrapCollapsed: {
78
+ maxHeight: 0,
79
+ padding: '0 5px',
80
+ overflow: 'hidden'
81
+ },
82
+ tableHeadRow: {
83
+ backgroundColor: '#f5f5f5'
84
+ },
85
+ tableHeadCell: {
86
+ fontWeight: 600,
87
+ color: '#333',
88
+ fontSize: '11px !important'
89
+ },
90
+ tableBodyRow: {
91
+ '&:nth-of-type(even)': {
92
+ backgroundColor: '#fafafa'
93
+ }
50
94
  },
51
95
  td: {
52
96
  wordWrap: 'break-all',
@@ -55,7 +99,7 @@ const styles = () => ({
55
99
  cellSelected: {
56
100
  backgroundColor: '#2196f3',
57
101
  color: '#fff',
58
- fontSize: '14px !important'
102
+ fontSize: '13px !important'
59
103
  },
60
104
  btnRemove: {
61
105
  color: 'red'
@@ -64,7 +108,10 @@ const styles = () => ({
64
108
  color: 'green'
65
109
  },
66
110
  tTxt: {
67
- padding: 5
111
+ padding: '5px 2px',
112
+ lineHeight: 1.2,
113
+ verticalAlign: 'top',
114
+ fontSize: '11px !important'
68
115
  },
69
116
  infoIcon: {
70
117
  width: '15px',
@@ -75,22 +122,26 @@ const styles = () => ({
75
122
  fontSize: '14px !important'
76
123
  },
77
124
  rowRoot: {
78
- border: '1px solid #eee',
79
- height: 36,
80
- lineHeight: '36px',
81
- overflow: 'hidden',
82
- paddingLeft: 24,
125
+ border: '1px solid #e6e6e6',
126
+ borderRadius: 6,
127
+ minHeight: 40,
128
+ lineHeight: 1.4,
129
+ padding: '10px 16px',
83
130
  textAlign: 'left'
84
131
  },
85
132
  rowOdd: {
86
133
  backgroundColor: '#fff',
87
- textOverflow: 'ellipsis',
88
- whiteSpace: 'nowrap'
134
+ textOverflow: 'clip',
135
+ whiteSpace: 'normal'
89
136
  },
90
137
  rowEven: {
91
138
  backgroundColor: '#fafafa',
92
139
  textOverflow: 'ellipsis',
93
140
  whiteSpace: 'nowrap'
141
+ },
142
+ cvModeWarning: {
143
+ color: 'red',
144
+ marginLeft: 12
94
145
  }
95
146
  });
96
147
  const CyclicVoltammetryPanel = ({
@@ -107,6 +158,7 @@ const CyclicVoltammetryPanel = ({
107
158
  jcampIdx,
108
159
  userManualLink
109
160
  }) => {
161
+ const [isExpanded, setIsExpanded] = (0, _react.useState)(false);
110
162
  const {
111
163
  spectraList
112
164
  } = cyclicVotaSt;
@@ -115,6 +167,24 @@ const CyclicVoltammetryPanel = ({
115
167
  if (spectra !== undefined) {
116
168
  list = spectra.list;
117
169
  }
170
+ const formatCurrent = (y, feature, cyclicVotaSt) => {
171
+ const baseY = feature && feature.yUnit ? String(feature.yUnit) : 'A';
172
+ const isMilli = /mA/i.test(baseY);
173
+ const useDensity = cyclicVotaSt && cyclicVotaSt.useCurrentDensity;
174
+ const rawArea = (cyclicVotaSt && cyclicVotaSt.areaValue === '' ? 1.0 : cyclicVotaSt?.areaValue) || 1.0;
175
+ const areaUnit = cyclicVotaSt && cyclicVotaSt.areaUnit ? cyclicVotaSt.areaUnit : 'cm²';
176
+ const safeArea = rawArea > 0 ? rawArea : 1.0;
177
+ let val = y;
178
+ let unit = isMilli ? 'mA' : 'A';
179
+ if (useDensity) {
180
+ val = y / safeArea;
181
+ unit = `${unit}/${areaUnit}`;
182
+ }
183
+ if (isMilli) {
184
+ val *= 1000.0;
185
+ }
186
+ return `${parseFloat(val).toExponential(2)} ${unit}`;
187
+ };
118
188
  const selectCell = (idx, isMax) => {
119
189
  setWorkWithMaxPeakAct({
120
190
  isMax,
@@ -156,9 +226,9 @@ const CyclicVoltammetryPanel = ({
156
226
  };
157
227
  const rows = list.map((o, idx) => ({
158
228
  idx,
159
- max: o.max ? `E: ${_format.default.strNumberFixedLength(parseFloat(o.max.x), 3)} V,\nI: ${parseFloat(o.max.y * 1000).toExponential(2)} mA` : 'nd',
160
- min: o.min ? `E: ${_format.default.strNumberFixedLength(parseFloat(o.min.x), 3)} V,\nI: ${parseFloat(o.min.y * 1000).toExponential(2)} mA` : 'nd',
161
- pecker: o.pecker ? `${parseFloat(o.pecker.y * 1000).toExponential(2)} mA` : 'nd',
229
+ max: o.max ? `E: ${_format.default.strNumberFixedLength(parseFloat(o.max.x), 3)} V,\nI: ${formatCurrent(o.max.y, feature, cyclicVotaSt)}` : 'nd',
230
+ min: o.min ? `E: ${_format.default.strNumberFixedLength(parseFloat(o.min.x), 3)} V,\nI: ${formatCurrent(o.min.y, feature, cyclicVotaSt)}` : 'nd',
231
+ pecker: o.pecker ? `${formatCurrent(o.pecker.y, feature, cyclicVotaSt)}` : 'nd',
162
232
  delta: `${getDelta(o)} mV`,
163
233
  ratio: getRatio(feature, o),
164
234
  e12: typeof o.e12 === 'number' ? `${_format.default.strNumberFixedLength(o.e12, 3)} V` : 'nd',
@@ -171,168 +241,194 @@ const CyclicVoltammetryPanel = ({
171
241
  }),
172
242
  onCheckRefChanged: e => changeCheckRefPeaks(idx, e)
173
243
  }));
174
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Accordion, {
244
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
245
+ className: classes.panel,
175
246
  "data-testid": "PanelVoltammetry",
176
- disableGutters: true,
177
- sx: {
178
- '&.MuiAccordion-root.Mui-expanded': {
179
- margin: 0
247
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
248
+ className: classes.panelHeader,
249
+ role: "button",
250
+ tabIndex: 0,
251
+ onClick: () => setIsExpanded(prev => !prev),
252
+ onKeyDown: event => {
253
+ if (event.key === 'Enter' || event.key === ' ') {
254
+ event.preventDefault();
255
+ setIsExpanded(prev => !prev);
256
+ }
180
257
  },
181
- '&:before': {
182
- display: 'none'
183
- }
184
- },
185
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.AccordionSummary, {
186
- expandIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandMore.default, {}),
187
- className: (0, _classnames.default)(classes.panelSummary),
188
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
258
+ "aria-expanded": isExpanded,
259
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Typography, {
189
260
  className: "txt-panel-header",
190
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
261
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
191
262
  className: (0, _classnames.default)(classes.txtBadge, 'txt-sv-panel-title'),
192
263
  children: "Voltammetry data"
193
- })
194
- })
195
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Divider, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Table, {
196
- className: classes.table,
197
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableHead, {
198
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, {
199
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
200
- align: "left",
201
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
202
- children: "Ref"
203
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
204
- align: "left",
205
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
206
- children: "Anodic"
207
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
208
- align: "left",
209
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
210
- children: "Cathodic"
211
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableCell, {
212
- align: "left",
213
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
214
- children: ["I ", /*#__PURE__*/(0, _jsxRuntime.jsx)("sub", {
215
- children: "\u03BB0"
216
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
217
- title: /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
218
- className: (0, _classnames.default)(classes.txtToolTip),
219
- children: ["Baseline correction value for I ratio ", /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), "(a.k.a y value of pecker)"]
220
- }),
221
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Info.default, {
222
- className: (0, _classnames.default)(classes.infoIcon)
223
- })
264
+ }), ' - ', /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
265
+ children: ["Mode: ", cyclicVotaSt.useCurrentDensity ? 'Current Density' : 'Current']
266
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
267
+ className: classes.cvModeWarning,
268
+ children: "WE-ECSA must be set when switching to Current Density."
269
+ })]
270
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
271
+ className: classes.panelActions,
272
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
273
+ title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
274
+ className: (0, _classnames.default)(classes.txtToolTip),
275
+ children: "Click here to open the User manual document"
276
+ }),
277
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
278
+ className: classes.howToWrap,
279
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
280
+ target: "_blank",
281
+ rel: "noopener noreferrer",
282
+ href: userManualLink,
283
+ children: "How-To"
284
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Help.default, {
285
+ className: (0, _classnames.default)(classes.infoIcon)
224
286
  })]
225
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableCell, {
226
- align: "left",
227
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
228
- children: ["I ratio", /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
229
- title: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
230
- className: (0, _classnames.default)(classes.txtToolTip),
231
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
232
- children: "Nicholson's method"
233
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("i", {
234
- children: "NICHOLSON, Rl S. Semiempirical Procedure for Measuring with Stationary Electrode Polarography Rates of Chemical Reactions Involving the Product of Electron Transfer. Analytical Chemistry, 1966, 38. Jg., Nr. 10, S. 1406-1406. https://doi.org/10.1021/ac60242a030"
235
- })]
236
- }),
237
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Info.default, {
238
- className: (0, _classnames.default)(classes.infoIcon)
287
+ })
288
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, {
289
+ size: "small",
290
+ className: classes.toggleBtn,
291
+ onClick: event => {
292
+ event.stopPropagation();
293
+ setIsExpanded(prev => !prev);
294
+ },
295
+ "aria-label": isExpanded ? 'Collapse table' : 'Expand table',
296
+ children: isExpanded ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandLess.default, {}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandMore.default, {})
297
+ })]
298
+ })]
299
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Divider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
300
+ className: (0, _classnames.default)(classes.tableWrap, !isExpanded && classes.tableWrapCollapsed),
301
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Table, {
302
+ className: classes.table,
303
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableHead, {
304
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, {
305
+ className: classes.tableHeadRow,
306
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
307
+ align: "left",
308
+ className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'),
309
+ children: "Ref"
310
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
311
+ align: "left",
312
+ className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'),
313
+ children: "Anodic"
314
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
315
+ align: "left",
316
+ className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'),
317
+ children: "Cathodic"
318
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableCell, {
319
+ align: "left",
320
+ className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'),
321
+ children: ["I ", /*#__PURE__*/(0, _jsxRuntime.jsx)("sub", {
322
+ children: "\u03BB0"
323
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
324
+ title: /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
325
+ className: (0, _classnames.default)(classes.txtToolTip),
326
+ children: ["Baseline correction value for I ratio ", /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), "(a.k.a y value of pecker)"]
327
+ }),
328
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Info.default, {
329
+ className: (0, _classnames.default)(classes.infoIcon)
330
+ })
331
+ })]
332
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableCell, {
333
+ align: "left",
334
+ className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'),
335
+ children: ["I ratio", /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
336
+ title: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
337
+ className: (0, _classnames.default)(classes.txtToolTip),
338
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
339
+ children: "Nicholson's method"
340
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("i", {
341
+ children: "NICHOLSON, Rl S. Semiempirical Procedure for Measuring with Stationary Electrode Polarography Rates of Chemical Reactions Involving the Product of Electron Transfer. Analytical Chemistry, 1966, 38. Jg., Nr. 10, S. 1406-1406. https://doi.org/10.1021/ac60242a030"
342
+ })]
343
+ }),
344
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Info.default, {
345
+ className: (0, _classnames.default)(classes.infoIcon)
346
+ })
347
+ })]
348
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableCell, {
349
+ align: "left",
350
+ className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'),
351
+ children: ["E", /*#__PURE__*/(0, _jsxRuntime.jsx)("sub", {
352
+ children: "1/2"
353
+ })]
354
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableCell, {
355
+ align: "left",
356
+ className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'),
357
+ children: ["\u0394E", /*#__PURE__*/(0, _jsxRuntime.jsx)("sub", {
358
+ children: "p"
359
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
360
+ title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
361
+ className: (0, _classnames.default)(classes.txtToolTip),
362
+ children: "| Epa - Epc |"
363
+ }),
364
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Info.default, {
365
+ className: (0, _classnames.default)(classes.infoIcon)
366
+ })
367
+ })]
368
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
369
+ align: "left",
370
+ className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'),
371
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_AddCircleOutline.default, {
372
+ onClick: () => addNewPairPeakAct(jcampIdx),
373
+ className: (0, _classnames.default)(classes.btnAddRow)
239
374
  })
240
375
  })]
241
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableCell, {
242
- align: "left",
243
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
244
- children: ["E", /*#__PURE__*/(0, _jsxRuntime.jsx)("sub", {
245
- children: "1/2"
246
- })]
247
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableCell, {
248
- align: "left",
249
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
250
- children: ["\u0394E", /*#__PURE__*/(0, _jsxRuntime.jsx)("sub", {
251
- children: "p"
252
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
253
- title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
254
- className: (0, _classnames.default)(classes.txtToolTip),
255
- children: "| Epa - Epc |"
256
- }),
257
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Info.default, {
258
- className: (0, _classnames.default)(classes.infoIcon)
376
+ })
377
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableBody, {
378
+ children: rows.map(row => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, {
379
+ className: classes.tableBodyRow,
380
+ hover: true,
381
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
382
+ align: "left",
383
+ className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
384
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Checkbox, {
385
+ size: "small",
386
+ checked: row.isRef,
387
+ onChange: row.onCheckRefChanged,
388
+ sx: {
389
+ padding: 0
390
+ }
391
+ })
392
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
393
+ align: "left",
394
+ className: (0, _classnames.default)(classes.tTxt, classes.square, spectra.isWorkMaxPeak && spectra.selectedIdx === row.idx ? classes.cellSelected : 'txt-sv-panel-txt'),
395
+ onClick: row.onClickMax,
396
+ children: row.max.split('\n').map((s, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, {
397
+ children: [s, /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {})]
398
+ }, index))
399
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
400
+ align: "left",
401
+ className: (0, _classnames.default)(classes.tTxt, classes.square, !spectra.isWorkMaxPeak && spectra.selectedIdx === row.idx ? classes.cellSelected : 'txt-sv-panel-txt'),
402
+ onClick: row.onClickMin,
403
+ children: row.min.split('\n').map((s, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, {
404
+ children: [s, /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {})]
405
+ }, index))
406
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
407
+ align: "left",
408
+ className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
409
+ children: row.pecker
410
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
411
+ align: "left",
412
+ className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
413
+ children: row.ratio
414
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
415
+ align: "left",
416
+ className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
417
+ children: row.e12
418
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
419
+ align: "left",
420
+ className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
421
+ children: row.delta
422
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
423
+ align: "left",
424
+ className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
425
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RemoveCircle.default, {
426
+ className: (0, _classnames.default)(classes.btnRemove),
427
+ onClick: row.remove
259
428
  })
260
429
  })]
261
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
262
- align: "left",
263
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
264
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_AddCircleOutline.default, {
265
- onClick: () => addNewPairPeakAct(jcampIdx),
266
- className: (0, _classnames.default)(classes.btnAddRow)
267
- })
268
- })]
269
- })
270
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableBody, {
271
- children: rows.map(row => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, {
272
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
273
- align: "left",
274
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
275
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Checkbox, {
276
- checked: row.isRef,
277
- onChange: row.onCheckRefChanged
278
- })
279
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
280
- align: "left",
281
- className: (0, _classnames.default)(classes.tTxt, classes.square, spectra.isWorkMaxPeak && spectra.selectedIdx === row.idx ? classes.cellSelected : 'txt-sv-panel-txt'),
282
- onClick: row.onClickMax,
283
- children: row.max.split('\n').map((s, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, {
284
- children: [s, /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {})]
285
- }, index))
286
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
287
- align: "left",
288
- className: (0, _classnames.default)(classes.tTxt, classes.square, !spectra.isWorkMaxPeak && spectra.selectedIdx === row.idx ? classes.cellSelected : 'txt-sv-panel-txt'),
289
- onClick: row.onClickMin,
290
- children: row.min.split('\n').map((s, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, {
291
- children: [s, /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {})]
292
- }, index))
293
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
294
- align: "left",
295
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
296
- children: row.pecker
297
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
298
- align: "left",
299
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
300
- children: row.ratio
301
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
302
- align: "left",
303
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
304
- children: row.e12
305
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
306
- align: "left",
307
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
308
- children: row.delta
309
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
310
- align: "left",
311
- className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
312
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RemoveCircle.default, {
313
- className: (0, _classnames.default)(classes.btnRemove),
314
- onClick: row.remove
315
- })
316
- })]
317
- }, row.idx))
318
- })]
319
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
320
- className: (0, _classnames.default)(classes.rowRoot, classes.rowEven),
321
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
322
- title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
323
- className: (0, _classnames.default)(classes.txtToolTip),
324
- children: "Click here to open the User manual document"
325
- }),
326
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
327
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
328
- target: "_blank",
329
- rel: "noopener noreferrer",
330
- href: userManualLink,
331
- children: "How-To "
332
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Help.default, {
333
- className: (0, _classnames.default)(classes.infoIcon)
334
- })]
335
- })
430
+ }, row.idx))
431
+ })]
336
432
  })
337
433
  })]
338
434
  });
@@ -340,7 +436,6 @@ const CyclicVoltammetryPanel = ({
340
436
  const mapStateToProps = (state, props) => (
341
437
  // eslint-disable-line
342
438
  {
343
- layoutSt: state.layout,
344
439
  cyclicVotaSt: state.cyclicvolta,
345
440
  sweepTypeSt: state.ui.sweepType
346
441
  });
@@ -354,11 +449,7 @@ const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({
354
449
  }, dispatch);
355
450
  CyclicVoltammetryPanel.propTypes = {
356
451
  classes: _propTypes.default.object.isRequired,
357
- expand: _propTypes.default.bool.isRequired,
358
452
  feature: _propTypes.default.object.isRequired,
359
- molSvg: _propTypes.default.string.isRequired,
360
- layoutSt: _propTypes.default.string.isRequired,
361
- onExapnd: _propTypes.default.func.isRequired,
362
453
  cyclicVotaSt: _propTypes.default.object.isRequired,
363
454
  addNewPairPeakAct: _propTypes.default.func.isRequired,
364
455
  setWorkWithMaxPeakAct: _propTypes.default.func.isRequired,
@@ -86,7 +86,8 @@ class PanelViewer extends _react.default.Component {
86
86
  curveSt,
87
87
  userManualLink,
88
88
  subLayoutsInfo,
89
- exactMass
89
+ exactMass,
90
+ hideCyclicVolta
90
91
  } = this.props;
91
92
  const onExapndInfo = () => this.onExapnd('info');
92
93
  const onExapndPeak = () => this.onExapnd('peak');
@@ -130,7 +131,7 @@ class PanelViewer extends _react.default.Component {
130
131
  }), _cfg.default.hidePanelCompare(layoutSt) || listCurves.length > 1 ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_compare.default, {
131
132
  expand: expand === 'compare',
132
133
  onExapnd: onExapndCompare
133
- }), _cfg.default.hidePanelCyclicVolta(layoutSt) ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_cyclic_voltamery_data.default, {
134
+ }), _cfg.default.hidePanelCyclicVolta(layoutSt) || hideCyclicVolta ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_cyclic_voltamery_data.default, {
134
135
  jcampIdx: jcampIdx,
135
136
  feature: feature,
136
137
  expand: expand === 'cyclicvolta',
@@ -163,7 +164,8 @@ PanelViewer.propTypes = {
163
164
  userManualLink: _propTypes.default.object,
164
165
  curveSt: _propTypes.default.object.isRequired,
165
166
  subLayoutsInfo: _propTypes.default.object,
166
- exactMass: _propTypes.default.string
167
+ exactMass: _propTypes.default.string,
168
+ hideCyclicVolta: _propTypes.default.bool
167
169
  };
168
170
  var _default = exports.default = (0, _reactRedux.connect)(
169
171
  // eslint-disable-line