@complat/react-spectra-editor 0.11.3 → 0.11.4-beta.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/dist/components/d3_line/line_focus_bk.js +860 -0
- package/dist/components/d3_multi/index_bk.js +240 -0
- package/dist/components/d3_multi/multi_focus_bk.js +550 -0
- package/dist/components/panel/compare_bk.js +370 -0
- package/dist/components/panel/info_bk.js +341 -0
- package/dist/components/panel/multiplicity_bk.js +405 -0
- package/dist/helpers/chem_bk.js +779 -0
- package/dist/helpers/converter_bk.js +106 -0
- package/dist/helpers/format_bk.js +462 -0
- package/dist/index_bk.js +760 -0
- package/dist/layer_content_bk.js +128 -0
- package/dist/layer_prism_bk.js +186 -0
- package/dist/reducers/reducer_edit_peak_bk.js +111 -0
- package/dist/reducers/reducer_integration_bk.js +137 -0
- package/dist/reducers/reducer_jcamp_bk.js +74 -0
- package/dist/reducers/reducer_multiplicity_bk.js +131 -0
- package/dist/reducers/reducer_shift_bk.js +99 -0
- package/dist/sagas/saga_edit_peak_bk.js +84 -0
- package/dist/sagas/saga_multiplicity_bk.js +387 -0
- package/dist/sagas/saga_ui_bk.js +488 -0
- package/package.json +3 -2
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
|
8
|
+
|
|
9
|
+
var _react = require('react');
|
|
10
|
+
|
|
11
|
+
var _react2 = _interopRequireDefault(_react);
|
|
12
|
+
|
|
13
|
+
var _propTypes = require('prop-types');
|
|
14
|
+
|
|
15
|
+
var _propTypes2 = _interopRequireDefault(_propTypes);
|
|
16
|
+
|
|
17
|
+
var _classnames = require('classnames');
|
|
18
|
+
|
|
19
|
+
var _classnames2 = _interopRequireDefault(_classnames);
|
|
20
|
+
|
|
21
|
+
var _reactRedux = require('react-redux');
|
|
22
|
+
|
|
23
|
+
var _redux = require('redux');
|
|
24
|
+
|
|
25
|
+
var _reactDropzone = require('react-dropzone');
|
|
26
|
+
|
|
27
|
+
var _reactDropzone2 = _interopRequireDefault(_reactDropzone);
|
|
28
|
+
|
|
29
|
+
var _ExpansionPanel = require('@material-ui/core/ExpansionPanel');
|
|
30
|
+
|
|
31
|
+
var _ExpansionPanel2 = _interopRequireDefault(_ExpansionPanel);
|
|
32
|
+
|
|
33
|
+
var _ExpansionPanelSummary = require('@material-ui/core/ExpansionPanelSummary');
|
|
34
|
+
|
|
35
|
+
var _ExpansionPanelSummary2 = _interopRequireDefault(_ExpansionPanelSummary);
|
|
36
|
+
|
|
37
|
+
var _ExpandMore = require('@material-ui/icons/ExpandMore');
|
|
38
|
+
|
|
39
|
+
var _ExpandMore2 = _interopRequireDefault(_ExpandMore);
|
|
40
|
+
|
|
41
|
+
var _HighlightOff = require('@material-ui/icons/HighlightOff');
|
|
42
|
+
|
|
43
|
+
var _HighlightOff2 = _interopRequireDefault(_HighlightOff);
|
|
44
|
+
|
|
45
|
+
var _Table = require('@material-ui/core/Table');
|
|
46
|
+
|
|
47
|
+
var _Table2 = _interopRequireDefault(_Table);
|
|
48
|
+
|
|
49
|
+
var _TableBody = require('@material-ui/core/TableBody');
|
|
50
|
+
|
|
51
|
+
var _TableBody2 = _interopRequireDefault(_TableBody);
|
|
52
|
+
|
|
53
|
+
var _TableCell = require('@material-ui/core/TableCell');
|
|
54
|
+
|
|
55
|
+
var _TableCell2 = _interopRequireDefault(_TableCell);
|
|
56
|
+
|
|
57
|
+
var _TableRow = require('@material-ui/core/TableRow');
|
|
58
|
+
|
|
59
|
+
var _TableRow2 = _interopRequireDefault(_TableRow);
|
|
60
|
+
|
|
61
|
+
var _Divider = require('@material-ui/core/Divider');
|
|
62
|
+
|
|
63
|
+
var _Divider2 = _interopRequireDefault(_Divider);
|
|
64
|
+
|
|
65
|
+
var _Typography = require('@material-ui/core/Typography');
|
|
66
|
+
|
|
67
|
+
var _Typography2 = _interopRequireDefault(_Typography);
|
|
68
|
+
|
|
69
|
+
var _Tooltip = require('@material-ui/core/Tooltip');
|
|
70
|
+
|
|
71
|
+
var _Tooltip2 = _interopRequireDefault(_Tooltip);
|
|
72
|
+
|
|
73
|
+
var _VisibilityOutlined = require('@material-ui/icons/VisibilityOutlined');
|
|
74
|
+
|
|
75
|
+
var _VisibilityOutlined2 = _interopRequireDefault(_VisibilityOutlined);
|
|
76
|
+
|
|
77
|
+
var _VisibilityOffOutlined = require('@material-ui/icons/VisibilityOffOutlined');
|
|
78
|
+
|
|
79
|
+
var _VisibilityOffOutlined2 = _interopRequireDefault(_VisibilityOffOutlined);
|
|
80
|
+
|
|
81
|
+
var _styles = require('@material-ui/core/styles');
|
|
82
|
+
|
|
83
|
+
var _format = require('../../helpers/format');
|
|
84
|
+
|
|
85
|
+
var _format2 = _interopRequireDefault(_format);
|
|
86
|
+
|
|
87
|
+
var _jcamp = require('../../actions/jcamp');
|
|
88
|
+
|
|
89
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
90
|
+
|
|
91
|
+
var styles = function styles(theme) {
|
|
92
|
+
return {
|
|
93
|
+
panel: {
|
|
94
|
+
backgroundColor: '#eee',
|
|
95
|
+
display: 'table-row'
|
|
96
|
+
},
|
|
97
|
+
panelSummary: {
|
|
98
|
+
backgroundColor: '#eee',
|
|
99
|
+
height: 32
|
|
100
|
+
},
|
|
101
|
+
txtBadge: {},
|
|
102
|
+
panelDetail: {
|
|
103
|
+
backgroundColor: '#fff',
|
|
104
|
+
maxHeight: 'calc(90vh - 220px)', // ROI
|
|
105
|
+
overflow: 'auto'
|
|
106
|
+
},
|
|
107
|
+
table: {
|
|
108
|
+
width: '100%'
|
|
109
|
+
},
|
|
110
|
+
tTxt: {
|
|
111
|
+
padding: 0
|
|
112
|
+
},
|
|
113
|
+
tTxtHide: {
|
|
114
|
+
color: '#D5D8DC'
|
|
115
|
+
},
|
|
116
|
+
tRow: {
|
|
117
|
+
height: 28,
|
|
118
|
+
'&:nth-of-type(even)': {
|
|
119
|
+
backgroundColor: theme.palette.background.default
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
rmBtn: {
|
|
123
|
+
color: 'red',
|
|
124
|
+
padding: '0 5px 0 5px',
|
|
125
|
+
'&:hover': {
|
|
126
|
+
borderRadius: 12,
|
|
127
|
+
backgroundColor: 'red',
|
|
128
|
+
color: 'white'
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
showBtn: {
|
|
132
|
+
color: 'steelblue',
|
|
133
|
+
padding: '0 5px 0 5px',
|
|
134
|
+
'&:hover': {
|
|
135
|
+
borderRadius: 12,
|
|
136
|
+
backgroundColor: 'steelblue',
|
|
137
|
+
color: 'white'
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
hideBtn: {
|
|
141
|
+
color: 'gray',
|
|
142
|
+
padding: '0 5px 0 5px',
|
|
143
|
+
'&:hover': {
|
|
144
|
+
borderRadius: 12,
|
|
145
|
+
backgroundColor: 'gray',
|
|
146
|
+
color: 'white'
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
square: {
|
|
150
|
+
textAlign: 'center !important'
|
|
151
|
+
},
|
|
152
|
+
baseDD: {
|
|
153
|
+
backgroundColor: 'white',
|
|
154
|
+
border: '1px dashed black',
|
|
155
|
+
borderRadius: 5,
|
|
156
|
+
height: 26,
|
|
157
|
+
lineHeight: '26px',
|
|
158
|
+
margin: '7px 0 7px 0',
|
|
159
|
+
textAlign: 'center',
|
|
160
|
+
verticalAlign: 'middle',
|
|
161
|
+
width: '90%'
|
|
162
|
+
},
|
|
163
|
+
enableDD: {
|
|
164
|
+
border: '2px dashed #000',
|
|
165
|
+
color: '#000'
|
|
166
|
+
},
|
|
167
|
+
disableDD: {
|
|
168
|
+
border: '2px dashed #aaa',
|
|
169
|
+
color: '#aaa'
|
|
170
|
+
},
|
|
171
|
+
tpCard: {},
|
|
172
|
+
tpMoreTxt: {
|
|
173
|
+
padding: '0 0 0 60px'
|
|
174
|
+
},
|
|
175
|
+
tpLabel: {
|
|
176
|
+
fontSize: 16
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
var msgDefault = 'Add spectra to compare.';
|
|
182
|
+
|
|
183
|
+
var tpHint = function tpHint(classes) {
|
|
184
|
+
return _react2.default.createElement(
|
|
185
|
+
'span',
|
|
186
|
+
{ className: (0, _classnames2.default)(classes.tpCard) },
|
|
187
|
+
_react2.default.createElement(
|
|
188
|
+
'p',
|
|
189
|
+
{ className: (0, _classnames2.default)(classes.tpLabel, 'txt-sv-tp') },
|
|
190
|
+
'- Accept *.dx, *.jdx, *.JCAMP,'
|
|
191
|
+
),
|
|
192
|
+
_react2.default.createElement(
|
|
193
|
+
'p',
|
|
194
|
+
{ className: (0, _classnames2.default)(classes.tpLabel, 'txt-sv-tp') },
|
|
195
|
+
'- Max 5 spectra.'
|
|
196
|
+
)
|
|
197
|
+
);
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
var content = function content(classes, desc) {
|
|
201
|
+
return _react2.default.createElement(
|
|
202
|
+
_Tooltip2.default,
|
|
203
|
+
{
|
|
204
|
+
title: tpHint(classes),
|
|
205
|
+
placement: 'bottom'
|
|
206
|
+
},
|
|
207
|
+
_react2.default.createElement(
|
|
208
|
+
'span',
|
|
209
|
+
{ className: (0, _classnames2.default)(classes.tpLabel, 'txt-sv-tp') },
|
|
210
|
+
desc
|
|
211
|
+
)
|
|
212
|
+
);
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
var inputOthers = function inputOthers(classes, addOthersCbSt) {
|
|
216
|
+
var fileName = '';
|
|
217
|
+
var desc = fileName || msgDefault;
|
|
218
|
+
var onDrop = function onDrop(jcamps) {
|
|
219
|
+
if (!addOthersCbSt) return;
|
|
220
|
+
addOthersCbSt({ jcamps: jcamps });
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
return _react2.default.createElement(
|
|
224
|
+
_reactDropzone2.default,
|
|
225
|
+
{
|
|
226
|
+
className: 'dropbox',
|
|
227
|
+
onDrop: onDrop
|
|
228
|
+
},
|
|
229
|
+
function (_ref) {
|
|
230
|
+
var getRootProps = _ref.getRootProps,
|
|
231
|
+
getInputProps = _ref.getInputProps;
|
|
232
|
+
return _react2.default.createElement(
|
|
233
|
+
'div',
|
|
234
|
+
_extends({}, getRootProps(), {
|
|
235
|
+
className: (0, _classnames2.default)(classes.baseDD)
|
|
236
|
+
}),
|
|
237
|
+
_react2.default.createElement('input', getInputProps()),
|
|
238
|
+
content(classes, desc)
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
);
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
var compareList = function compareList(classes, othersSt, rmOthersOneAct, toggleShowAct) {
|
|
245
|
+
var rows = othersSt.map(function (o, idx) {
|
|
246
|
+
return {
|
|
247
|
+
idx: idx,
|
|
248
|
+
title: o.spectra[0].title,
|
|
249
|
+
color: _format2.default.compareColors(idx),
|
|
250
|
+
rmCb: function rmCb() {
|
|
251
|
+
return rmOthersOneAct(idx);
|
|
252
|
+
},
|
|
253
|
+
isShow: o.show,
|
|
254
|
+
toggleShowCb: function toggleShowCb() {
|
|
255
|
+
return toggleShowAct(idx);
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
return _react2.default.createElement(
|
|
261
|
+
_Table2.default,
|
|
262
|
+
{ className: classes.table },
|
|
263
|
+
_react2.default.createElement(
|
|
264
|
+
_TableBody2.default,
|
|
265
|
+
null,
|
|
266
|
+
rows.map(function (row) {
|
|
267
|
+
return _react2.default.createElement(
|
|
268
|
+
_TableRow2.default,
|
|
269
|
+
{ key: row.idx, className: classes.tRow, hover: true },
|
|
270
|
+
_react2.default.createElement(
|
|
271
|
+
_TableCell2.default,
|
|
272
|
+
{
|
|
273
|
+
align: 'right',
|
|
274
|
+
className: (0, _classnames2.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'),
|
|
275
|
+
style: { backgroundColor: row.color }
|
|
276
|
+
},
|
|
277
|
+
row.idx + 1
|
|
278
|
+
),
|
|
279
|
+
_react2.default.createElement(
|
|
280
|
+
_TableCell2.default,
|
|
281
|
+
{ align: 'right', className: (0, _classnames2.default)(classes.tTxt, 'txt-sv-panel-txt', row.isShow ? null : classes.tTxtHide) },
|
|
282
|
+
row.title
|
|
283
|
+
),
|
|
284
|
+
_react2.default.createElement(
|
|
285
|
+
_TableCell2.default,
|
|
286
|
+
{ align: 'right', className: (0, _classnames2.default)(classes.tTxt, 'txt-sv-panel-txt') },
|
|
287
|
+
row.isShow ? _react2.default.createElement(_VisibilityOutlined2.default, {
|
|
288
|
+
onClick: row.toggleShowCb,
|
|
289
|
+
className: classes.showBtn
|
|
290
|
+
}) : _react2.default.createElement(_VisibilityOffOutlined2.default, {
|
|
291
|
+
onClick: row.toggleShowCb,
|
|
292
|
+
className: classes.hideBtn
|
|
293
|
+
}),
|
|
294
|
+
_react2.default.createElement(_HighlightOff2.default, { onClick: row.rmCb, className: classes.rmBtn })
|
|
295
|
+
)
|
|
296
|
+
);
|
|
297
|
+
})
|
|
298
|
+
)
|
|
299
|
+
);
|
|
300
|
+
};
|
|
301
|
+
|
|
302
|
+
var ComparePanel = function ComparePanel(_ref2) {
|
|
303
|
+
var classes = _ref2.classes,
|
|
304
|
+
expand = _ref2.expand,
|
|
305
|
+
onExapnd = _ref2.onExapnd,
|
|
306
|
+
othersSt = _ref2.othersSt,
|
|
307
|
+
addOthersCbSt = _ref2.addOthersCbSt,
|
|
308
|
+
rmOthersOneAct = _ref2.rmOthersOneAct,
|
|
309
|
+
toggleShowAct = _ref2.toggleShowAct;
|
|
310
|
+
return _react2.default.createElement(
|
|
311
|
+
_ExpansionPanel2.default,
|
|
312
|
+
{
|
|
313
|
+
expanded: expand,
|
|
314
|
+
onChange: onExapnd,
|
|
315
|
+
className: (0, _classnames2.default)(classes.panel),
|
|
316
|
+
TransitionProps: { unmountOnExit: true } // increase ExpansionPanel performance
|
|
317
|
+
},
|
|
318
|
+
_react2.default.createElement(
|
|
319
|
+
_ExpansionPanelSummary2.default,
|
|
320
|
+
{
|
|
321
|
+
expandIcon: _react2.default.createElement(_ExpandMore2.default, null),
|
|
322
|
+
className: (0, _classnames2.default)(classes.panelSummary)
|
|
323
|
+
},
|
|
324
|
+
_react2.default.createElement(
|
|
325
|
+
_Typography2.default,
|
|
326
|
+
{ className: 'txt-panel-header' },
|
|
327
|
+
_react2.default.createElement(
|
|
328
|
+
'span',
|
|
329
|
+
{ className: (0, _classnames2.default)(classes.txtBadge, 'txt-sv-panel-title') },
|
|
330
|
+
'Spectra Comparisons'
|
|
331
|
+
)
|
|
332
|
+
)
|
|
333
|
+
),
|
|
334
|
+
_react2.default.createElement(_Divider2.default, null),
|
|
335
|
+
inputOthers(classes, addOthersCbSt),
|
|
336
|
+
_react2.default.createElement(
|
|
337
|
+
'div',
|
|
338
|
+
{ className: (0, _classnames2.default)(classes.panelDetail) },
|
|
339
|
+
compareList(classes, othersSt, rmOthersOneAct, toggleShowAct)
|
|
340
|
+
)
|
|
341
|
+
);
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
var mapStateToProps = function mapStateToProps(state, props) {
|
|
345
|
+
return (// eslint-disable-line
|
|
346
|
+
{
|
|
347
|
+
othersSt: state.jcamp.others,
|
|
348
|
+
addOthersCbSt: state.jcamp.addOthersCb
|
|
349
|
+
}
|
|
350
|
+
);
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
var mapDispatchToProps = function mapDispatchToProps(dispatch) {
|
|
354
|
+
return (0, _redux.bindActionCreators)({
|
|
355
|
+
rmOthersOneAct: _jcamp.rmOthersOne,
|
|
356
|
+
toggleShowAct: _jcamp.toggleShow
|
|
357
|
+
}, dispatch);
|
|
358
|
+
};
|
|
359
|
+
|
|
360
|
+
ComparePanel.propTypes = {
|
|
361
|
+
classes: _propTypes2.default.object.isRequired,
|
|
362
|
+
expand: _propTypes2.default.bool.isRequired,
|
|
363
|
+
onExapnd: _propTypes2.default.func.isRequired,
|
|
364
|
+
othersSt: _propTypes2.default.array.isRequired,
|
|
365
|
+
addOthersCbSt: _propTypes2.default.func.isRequired,
|
|
366
|
+
rmOthersOneAct: _propTypes2.default.func.isRequired,
|
|
367
|
+
toggleShowAct: _propTypes2.default.func.isRequired
|
|
368
|
+
};
|
|
369
|
+
|
|
370
|
+
exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(ComparePanel));
|
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _react = require('react');
|
|
8
|
+
|
|
9
|
+
var _react2 = _interopRequireDefault(_react);
|
|
10
|
+
|
|
11
|
+
var _propTypes = require('prop-types');
|
|
12
|
+
|
|
13
|
+
var _propTypes2 = _interopRequireDefault(_propTypes);
|
|
14
|
+
|
|
15
|
+
var _classnames = require('classnames');
|
|
16
|
+
|
|
17
|
+
var _classnames2 = _interopRequireDefault(_classnames);
|
|
18
|
+
|
|
19
|
+
var _reactRedux = require('react-redux');
|
|
20
|
+
|
|
21
|
+
var _redux = require('redux');
|
|
22
|
+
|
|
23
|
+
var _reactSvgFileZoomPan = require('@complat/react-svg-file-zoom-pan');
|
|
24
|
+
|
|
25
|
+
var _reactSvgFileZoomPan2 = _interopRequireDefault(_reactSvgFileZoomPan);
|
|
26
|
+
|
|
27
|
+
var _reactQuill = require('react-quill');
|
|
28
|
+
|
|
29
|
+
var _reactQuill2 = _interopRequireDefault(_reactQuill);
|
|
30
|
+
|
|
31
|
+
var _ExpansionPanel = require('@material-ui/core/ExpansionPanel');
|
|
32
|
+
|
|
33
|
+
var _ExpansionPanel2 = _interopRequireDefault(_ExpansionPanel);
|
|
34
|
+
|
|
35
|
+
var _ExpansionPanelSummary = require('@material-ui/core/ExpansionPanelSummary');
|
|
36
|
+
|
|
37
|
+
var _ExpansionPanelSummary2 = _interopRequireDefault(_ExpansionPanelSummary);
|
|
38
|
+
|
|
39
|
+
var _ExpandMore = require('@material-ui/icons/ExpandMore');
|
|
40
|
+
|
|
41
|
+
var _ExpandMore2 = _interopRequireDefault(_ExpandMore);
|
|
42
|
+
|
|
43
|
+
var _Divider = require('@material-ui/core/Divider');
|
|
44
|
+
|
|
45
|
+
var _Divider2 = _interopRequireDefault(_Divider);
|
|
46
|
+
|
|
47
|
+
var _Typography = require('@material-ui/core/Typography');
|
|
48
|
+
|
|
49
|
+
var _Typography2 = _interopRequireDefault(_Typography);
|
|
50
|
+
|
|
51
|
+
var _styles = require('@material-ui/core/styles');
|
|
52
|
+
|
|
53
|
+
var _format = require('../../helpers/format');
|
|
54
|
+
|
|
55
|
+
var _format2 = _interopRequireDefault(_format);
|
|
56
|
+
|
|
57
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
58
|
+
|
|
59
|
+
var styles = function styles() {
|
|
60
|
+
return {
|
|
61
|
+
chip: {
|
|
62
|
+
margin: '1px 0 1px 0'
|
|
63
|
+
},
|
|
64
|
+
panel: {
|
|
65
|
+
backgroundColor: '#eee',
|
|
66
|
+
display: 'table-row'
|
|
67
|
+
},
|
|
68
|
+
panelSummary: {
|
|
69
|
+
backgroundColor: '#eee',
|
|
70
|
+
height: 32
|
|
71
|
+
},
|
|
72
|
+
panelDetail: {
|
|
73
|
+
backgroundColor: '#fff',
|
|
74
|
+
maxHeight: 'calc(90vh - 220px)', // ROI
|
|
75
|
+
overflow: 'auto'
|
|
76
|
+
},
|
|
77
|
+
table: {
|
|
78
|
+
width: 'auto'
|
|
79
|
+
},
|
|
80
|
+
rowRoot: {
|
|
81
|
+
border: '1px solid #eee',
|
|
82
|
+
height: 36,
|
|
83
|
+
lineHeight: '36px',
|
|
84
|
+
overflow: 'hidden',
|
|
85
|
+
paddingLeft: 24,
|
|
86
|
+
textAlign: 'left'
|
|
87
|
+
},
|
|
88
|
+
rowOdd: {
|
|
89
|
+
backgroundColor: '#fff',
|
|
90
|
+
textOverflow: 'ellipsis',
|
|
91
|
+
whiteSpace: 'nowrap'
|
|
92
|
+
},
|
|
93
|
+
rowEven: {
|
|
94
|
+
backgroundColor: '#fafafa',
|
|
95
|
+
textOverflow: 'ellipsis',
|
|
96
|
+
whiteSpace: 'nowrap'
|
|
97
|
+
},
|
|
98
|
+
rowOddSim: {
|
|
99
|
+
backgroundColor: '#fff',
|
|
100
|
+
height: 108,
|
|
101
|
+
lineHeight: '24px',
|
|
102
|
+
overflowY: 'scroll',
|
|
103
|
+
overflowWrap: 'word-break'
|
|
104
|
+
},
|
|
105
|
+
tHead: {
|
|
106
|
+
fontWeight: 'bold',
|
|
107
|
+
float: 'left',
|
|
108
|
+
fontSize: '0.8rem',
|
|
109
|
+
fontFamily: 'Helvetica'
|
|
110
|
+
},
|
|
111
|
+
tTxt: {
|
|
112
|
+
fontSize: '0.8rem',
|
|
113
|
+
fontFamily: 'Helvetica',
|
|
114
|
+
marginRight: 3
|
|
115
|
+
},
|
|
116
|
+
quill: {
|
|
117
|
+
backgroundColor: '#fafafa',
|
|
118
|
+
border: '1px solid #eee',
|
|
119
|
+
fontSize: '0.8rem',
|
|
120
|
+
fontFamily: 'Helvetica',
|
|
121
|
+
padding: '0 10px 0 10px',
|
|
122
|
+
textAlign: 'left'
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
var simTitle = function simTitle() {
|
|
128
|
+
return 'Simulated signals from NMRshiftDB';
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
var simContent = function simContent(nmrSimPeaks) {
|
|
132
|
+
return nmrSimPeaks && nmrSimPeaks.sort(function (a, b) {
|
|
133
|
+
return a - b;
|
|
134
|
+
}).join(', ');
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
var aucValue = function aucValue(integration) {
|
|
138
|
+
if (!integration) {
|
|
139
|
+
return "";
|
|
140
|
+
}
|
|
141
|
+
var values = [];
|
|
142
|
+
var stackIntegration = integration.stack;
|
|
143
|
+
if (Array.isArray(stackIntegration)) {
|
|
144
|
+
var sumVal = 0.0;
|
|
145
|
+
stackIntegration.forEach(function (inte) {
|
|
146
|
+
if (inte.absoluteArea) {
|
|
147
|
+
sumVal += inte.absoluteArea;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
sumVal = sumVal.toFixed(2);
|
|
151
|
+
stackIntegration.forEach(function (inte) {
|
|
152
|
+
if (inte.absoluteArea) {
|
|
153
|
+
var areaVal = inte.absoluteArea.toFixed(2);
|
|
154
|
+
var percent = (areaVal * 100 / sumVal).toFixed(2);
|
|
155
|
+
var valStr = areaVal + " (" + percent + "%)";
|
|
156
|
+
values.push(valStr);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
return values.join(", ");
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
var InfoPanel = function InfoPanel(_ref) {
|
|
164
|
+
var classes = _ref.classes,
|
|
165
|
+
expand = _ref.expand,
|
|
166
|
+
feature = _ref.feature,
|
|
167
|
+
integration = _ref.integration,
|
|
168
|
+
editorOnly = _ref.editorOnly,
|
|
169
|
+
molSvg = _ref.molSvg,
|
|
170
|
+
descriptions = _ref.descriptions,
|
|
171
|
+
layoutSt = _ref.layoutSt,
|
|
172
|
+
simulationSt = _ref.simulationSt,
|
|
173
|
+
shiftNameSt = _ref.shiftNameSt,
|
|
174
|
+
onExapnd = _ref.onExapnd,
|
|
175
|
+
canChangeDescription = _ref.canChangeDescription,
|
|
176
|
+
onDescriptionChanged = _ref.onDescriptionChanged;
|
|
177
|
+
|
|
178
|
+
if (!feature) return null;
|
|
179
|
+
var title = feature.title,
|
|
180
|
+
observeFrequency = feature.observeFrequency,
|
|
181
|
+
solventName = feature.solventName;
|
|
182
|
+
|
|
183
|
+
var showSolvName = shiftNameSt === '- - -' ? solventName : shiftNameSt;
|
|
184
|
+
|
|
185
|
+
var originStack = null;
|
|
186
|
+
if (integration) {
|
|
187
|
+
originStack = integration.originStack;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return _react2.default.createElement(
|
|
191
|
+
_ExpansionPanel2.default,
|
|
192
|
+
{
|
|
193
|
+
expanded: expand,
|
|
194
|
+
onChange: onExapnd,
|
|
195
|
+
className: (0, _classnames2.default)(classes.panel),
|
|
196
|
+
TransitionProps: { unmountOnExit: true } // increase ExpansionPanel performance
|
|
197
|
+
},
|
|
198
|
+
_react2.default.createElement(
|
|
199
|
+
_ExpansionPanelSummary2.default,
|
|
200
|
+
{
|
|
201
|
+
expandIcon: _react2.default.createElement(_ExpandMore2.default, null),
|
|
202
|
+
className: (0, _classnames2.default)(classes.panelSummary)
|
|
203
|
+
},
|
|
204
|
+
_react2.default.createElement(
|
|
205
|
+
_Typography2.default,
|
|
206
|
+
{ className: 'txt-panel-header' },
|
|
207
|
+
_react2.default.createElement(
|
|
208
|
+
'span',
|
|
209
|
+
{ className: (0, _classnames2.default)(classes.txtBadge, 'txt-sv-panel-title') },
|
|
210
|
+
'Info'
|
|
211
|
+
)
|
|
212
|
+
)
|
|
213
|
+
),
|
|
214
|
+
_react2.default.createElement(_Divider2.default, null),
|
|
215
|
+
_react2.default.createElement(
|
|
216
|
+
'div',
|
|
217
|
+
{ className: (0, _classnames2.default)(classes.panelDetail) },
|
|
218
|
+
_react2.default.createElement(
|
|
219
|
+
'div',
|
|
220
|
+
{ className: (0, _classnames2.default)(classes.rowRoot, classes.rowOdd) },
|
|
221
|
+
_react2.default.createElement(
|
|
222
|
+
'span',
|
|
223
|
+
{ className: (0, _classnames2.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt') },
|
|
224
|
+
'Title : '
|
|
225
|
+
),
|
|
226
|
+
_react2.default.createElement(
|
|
227
|
+
'span',
|
|
228
|
+
{ className: (0, _classnames2.default)(classes.tTxt, 'txt-sv-panel-txt') },
|
|
229
|
+
title
|
|
230
|
+
)
|
|
231
|
+
),
|
|
232
|
+
_format2.default.isNmrLayout(layoutSt) ? _react2.default.createElement(
|
|
233
|
+
'div',
|
|
234
|
+
{ className: (0, _classnames2.default)(classes.rowRoot, classes.rowEven) },
|
|
235
|
+
_react2.default.createElement(
|
|
236
|
+
'span',
|
|
237
|
+
{ className: (0, _classnames2.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt') },
|
|
238
|
+
'Freq : '
|
|
239
|
+
),
|
|
240
|
+
_react2.default.createElement(
|
|
241
|
+
'span',
|
|
242
|
+
{ className: (0, _classnames2.default)(classes.tTxt, 'txt-sv-panel-txt') },
|
|
243
|
+
parseInt(observeFrequency, 10) || ' - '
|
|
244
|
+
)
|
|
245
|
+
) : null,
|
|
246
|
+
_format2.default.isNmrLayout(layoutSt) ? _react2.default.createElement(
|
|
247
|
+
'div',
|
|
248
|
+
{ className: (0, _classnames2.default)(classes.rowRoot, classes.rowOdd) },
|
|
249
|
+
_react2.default.createElement(
|
|
250
|
+
'span',
|
|
251
|
+
{ className: (0, _classnames2.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt') },
|
|
252
|
+
'Solv : '
|
|
253
|
+
),
|
|
254
|
+
_react2.default.createElement(
|
|
255
|
+
'span',
|
|
256
|
+
{ className: (0, _classnames2.default)(classes.tTxt, 'txt-sv-panel-txt') },
|
|
257
|
+
showSolvName
|
|
258
|
+
)
|
|
259
|
+
) : null,
|
|
260
|
+
!molSvg ? null : _react2.default.createElement(_reactSvgFileZoomPan2.default, {
|
|
261
|
+
svg: molSvg,
|
|
262
|
+
duration: 300,
|
|
263
|
+
resize: true
|
|
264
|
+
}),
|
|
265
|
+
_format2.default.isHplcUvVisLayout(layoutSt) ? _react2.default.createElement(
|
|
266
|
+
'div',
|
|
267
|
+
{ className: (0, _classnames2.default)(classes.rowRoot, classes.rowOddSim) },
|
|
268
|
+
_react2.default.createElement(
|
|
269
|
+
'span',
|
|
270
|
+
{ className: (0, _classnames2.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt') },
|
|
271
|
+
'Area under curve (AUC):'
|
|
272
|
+
),
|
|
273
|
+
_react2.default.createElement('br', null),
|
|
274
|
+
_react2.default.createElement(
|
|
275
|
+
'span',
|
|
276
|
+
{ className: (0, _classnames2.default)(classes.tTxt, classes.tTxtSim, 'txt-sv-panel-txt') },
|
|
277
|
+
aucValue(integration)
|
|
278
|
+
)
|
|
279
|
+
) : null
|
|
280
|
+
),
|
|
281
|
+
_react2.default.createElement(_reactQuill2.default, {
|
|
282
|
+
className: (0, _classnames2.default)(classes.quill, 'card-sv-quill'),
|
|
283
|
+
value: descriptions,
|
|
284
|
+
modules: { toolbar: false },
|
|
285
|
+
onChange: onDescriptionChanged,
|
|
286
|
+
readOnly: canChangeDescription !== undefined ? !canChangeDescription : true
|
|
287
|
+
}),
|
|
288
|
+
_react2.default.createElement(
|
|
289
|
+
'div',
|
|
290
|
+
null,
|
|
291
|
+
!editorOnly && _format2.default.isNmrLayout(layoutSt) ? _react2.default.createElement(
|
|
292
|
+
'div',
|
|
293
|
+
{ className: (0, _classnames2.default)(classes.rowRoot, classes.rowOddSim) },
|
|
294
|
+
_react2.default.createElement(
|
|
295
|
+
'span',
|
|
296
|
+
{ className: (0, _classnames2.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt') },
|
|
297
|
+
simTitle(),
|
|
298
|
+
':'
|
|
299
|
+
),
|
|
300
|
+
_react2.default.createElement('br', null),
|
|
301
|
+
_react2.default.createElement(
|
|
302
|
+
'span',
|
|
303
|
+
{ className: (0, _classnames2.default)(classes.tTxt, classes.tTxtSim, 'txt-sv-panel-txt') },
|
|
304
|
+
simContent(simulationSt.nmrSimPeaks)
|
|
305
|
+
)
|
|
306
|
+
) : null
|
|
307
|
+
)
|
|
308
|
+
);
|
|
309
|
+
};
|
|
310
|
+
|
|
311
|
+
var mapStateToProps = function mapStateToProps(state, props) {
|
|
312
|
+
return (// eslint-disable-line
|
|
313
|
+
{
|
|
314
|
+
layoutSt: state.layout,
|
|
315
|
+
simulationSt: state.simulation,
|
|
316
|
+
shiftNameSt: state.shift.ref.name
|
|
317
|
+
}
|
|
318
|
+
);
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
var mapDispatchToProps = function mapDispatchToProps(dispatch) {
|
|
322
|
+
return (0, _redux.bindActionCreators)({}, dispatch);
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
InfoPanel.propTypes = {
|
|
326
|
+
classes: _propTypes2.default.object.isRequired,
|
|
327
|
+
expand: _propTypes2.default.bool.isRequired,
|
|
328
|
+
feature: _propTypes2.default.object.isRequired,
|
|
329
|
+
integration: _propTypes2.default.object.isRequired,
|
|
330
|
+
editorOnly: _propTypes2.default.bool.isRequired,
|
|
331
|
+
molSvg: _propTypes2.default.string.isRequired,
|
|
332
|
+
descriptions: _propTypes2.default.array.isRequired,
|
|
333
|
+
layoutSt: _propTypes2.default.string.isRequired,
|
|
334
|
+
simulationSt: _propTypes2.default.array.isRequired,
|
|
335
|
+
shiftNameSt: _propTypes2.default.string.isRequired,
|
|
336
|
+
onExapnd: _propTypes2.default.func.isRequired,
|
|
337
|
+
canChangeDescription: _propTypes2.default.bool.isRequired,
|
|
338
|
+
onDescriptionChanged: _propTypes2.default.func
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(InfoPanel));
|