@complat/react-spectra-editor 0.10.13-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/LICENSE +662 -0
  2. package/README.md +37 -0
  3. package/dist/actions/edit_peak.js +25 -0
  4. package/dist/actions/forecast.js +41 -0
  5. package/dist/actions/integration.js +33 -0
  6. package/dist/actions/jcamp.js +41 -0
  7. package/dist/actions/layout.js +17 -0
  8. package/dist/actions/manager.js +49 -0
  9. package/dist/actions/meta.js +17 -0
  10. package/dist/actions/multiplicity.js +57 -0
  11. package/dist/actions/scan.js +33 -0
  12. package/dist/actions/shift.js +25 -0
  13. package/dist/actions/status.js +33 -0
  14. package/dist/actions/submit.js +41 -0
  15. package/dist/actions/threshold.js +33 -0
  16. package/dist/actions/ui.js +50 -0
  17. package/dist/app.js +125 -0
  18. package/dist/components/cmd_bar/01_viewer.js +133 -0
  19. package/dist/components/cmd_bar/02_zoom.js +119 -0
  20. package/dist/components/cmd_bar/03_peak.js +176 -0
  21. package/dist/components/cmd_bar/04_integration.js +273 -0
  22. package/dist/components/cmd_bar/05_multiplicity.js +228 -0
  23. package/dist/components/cmd_bar/06_undo_redo.js +137 -0
  24. package/dist/components/cmd_bar/common.js +104 -0
  25. package/dist/components/cmd_bar/index.js +113 -0
  26. package/dist/components/cmd_bar/r01_layout.js +351 -0
  27. package/dist/components/cmd_bar/r02_scan.js +226 -0
  28. package/dist/components/cmd_bar/r03_threshold.js +209 -0
  29. package/dist/components/cmd_bar/r04_submit.js +349 -0
  30. package/dist/components/cmd_bar/r05_submit_btn.js +147 -0
  31. package/dist/components/cmd_bar/r06_predict_btn.js +307 -0
  32. package/dist/components/cmd_bar/tri_btn.js +202 -0
  33. package/dist/components/common/chem.js +115 -0
  34. package/dist/components/common/comps.js +29 -0
  35. package/dist/components/common/draw.js +41 -0
  36. package/dist/components/d3_line/index.js +236 -0
  37. package/dist/components/d3_line/line_focus.js +765 -0
  38. package/dist/components/d3_rect/index.js +200 -0
  39. package/dist/components/d3_rect/rect_focus.js +301 -0
  40. package/dist/components/forecast/comps.js +337 -0
  41. package/dist/components/forecast/ir_comps.js +224 -0
  42. package/dist/components/forecast/ir_viewer.js +172 -0
  43. package/dist/components/forecast/nmr_comps.js +253 -0
  44. package/dist/components/forecast/nmr_viewer.js +170 -0
  45. package/dist/components/forecast/section_loading.js +95 -0
  46. package/dist/components/forecast_viewer.js +190 -0
  47. package/dist/components/panel/compare.js +370 -0
  48. package/dist/components/panel/index.js +191 -0
  49. package/dist/components/panel/info.js +335 -0
  50. package/dist/components/panel/multiplicity.js +405 -0
  51. package/dist/components/panel/multiplicity_coupling.js +195 -0
  52. package/dist/components/panel/multiplicity_select.js +114 -0
  53. package/dist/components/panel/peaks.js +296 -0
  54. package/dist/constants/action_type.js +140 -0
  55. package/dist/constants/list_layout.js +23 -0
  56. package/dist/constants/list_shift.js +480 -0
  57. package/dist/constants/list_ui.js +33 -0
  58. package/dist/fn.js +31 -0
  59. package/dist/helpers/brush.js +109 -0
  60. package/dist/helpers/calc.js +10 -0
  61. package/dist/helpers/carbonFeatures.js +47 -0
  62. package/dist/helpers/cfg.js +89 -0
  63. package/dist/helpers/chem.js +594 -0
  64. package/dist/helpers/compass.js +91 -0
  65. package/dist/helpers/converter.js +74 -0
  66. package/dist/helpers/extractParams.js +77 -0
  67. package/dist/helpers/extractPeaksEdit.js +69 -0
  68. package/dist/helpers/focus.js +15 -0
  69. package/dist/helpers/format.js +403 -0
  70. package/dist/helpers/init.js +80 -0
  71. package/dist/helpers/integration.js +30 -0
  72. package/dist/helpers/mount.js +112 -0
  73. package/dist/helpers/multiplicity.js +44 -0
  74. package/dist/helpers/multiplicity_calc.js +117 -0
  75. package/dist/helpers/multiplicity_complat.js +126 -0
  76. package/dist/helpers/multiplicity_manual.js +94 -0
  77. package/dist/helpers/multiplicity_verify_basic.js +196 -0
  78. package/dist/helpers/shift.js +48 -0
  79. package/dist/helpers/zoom.js +32 -0
  80. package/dist/index.js +705 -0
  81. package/dist/layer_content.js +125 -0
  82. package/dist/layer_init.js +231 -0
  83. package/dist/layer_prism.js +186 -0
  84. package/dist/reducers/index.js +89 -0
  85. package/dist/reducers/reducer_edit_peak.js +111 -0
  86. package/dist/reducers/reducer_forecast.js +113 -0
  87. package/dist/reducers/reducer_integration.js +136 -0
  88. package/dist/reducers/reducer_jcamp.js +74 -0
  89. package/dist/reducers/reducer_layout.js +27 -0
  90. package/dist/reducers/reducer_manager.js +20 -0
  91. package/dist/reducers/reducer_meta.js +30 -0
  92. package/dist/reducers/reducer_multiplicity.js +131 -0
  93. package/dist/reducers/reducer_scan.js +55 -0
  94. package/dist/reducers/reducer_shift.js +99 -0
  95. package/dist/reducers/reducer_simulation.js +30 -0
  96. package/dist/reducers/reducer_status.js +41 -0
  97. package/dist/reducers/reducer_submit.js +54 -0
  98. package/dist/reducers/reducer_threshold.js +34 -0
  99. package/dist/reducers/reducer_ui.js +46 -0
  100. package/dist/reducers/undo_redo_config.js +24 -0
  101. package/dist/sagas/index.js +50 -0
  102. package/dist/sagas/saga_edit_peak.js +84 -0
  103. package/dist/sagas/saga_manager.js +116 -0
  104. package/dist/sagas/saga_meta.js +46 -0
  105. package/dist/sagas/saga_multiplicity.js +387 -0
  106. package/dist/sagas/saga_ui.js +392 -0
  107. package/dist/third_party/jAnalyzer.js +596 -0
  108. package/dist/third_party/peakInterval.js +107 -0
  109. package/package.json +77 -0
@@ -0,0 +1,191 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
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 _styles = require('@material-ui/core/styles');
26
+
27
+ var _info = require('./info');
28
+
29
+ var _info2 = _interopRequireDefault(_info);
30
+
31
+ var _peaks = require('./peaks');
32
+
33
+ var _peaks2 = _interopRequireDefault(_peaks);
34
+
35
+ var _compare = require('./compare');
36
+
37
+ var _compare2 = _interopRequireDefault(_compare);
38
+
39
+ var _multiplicity = require('./multiplicity');
40
+
41
+ var _multiplicity2 = _interopRequireDefault(_multiplicity);
42
+
43
+ var _cfg = require('../../helpers/cfg');
44
+
45
+ var _cfg2 = _interopRequireDefault(_cfg);
46
+
47
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
48
+
49
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
50
+
51
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
52
+
53
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
54
+
55
+ var theme = (0, _styles.createMuiTheme)({
56
+ typography: {
57
+ useNextVariants: true
58
+ }
59
+ });
60
+
61
+ var styles = function styles() {
62
+ return {
63
+ panels: {
64
+ maxHeight: 'calc(90vh - 220px)', // ROI
65
+ display: 'table',
66
+ overflowX: 'hidden',
67
+ overflowY: 'auto',
68
+ margin: '5px 0 0 0',
69
+ padding: '0 0 0 0',
70
+ width: '100%'
71
+ }
72
+ };
73
+ };
74
+
75
+ var PanelViewer = function (_React$Component) {
76
+ _inherits(PanelViewer, _React$Component);
77
+
78
+ function PanelViewer(props) {
79
+ _classCallCheck(this, PanelViewer);
80
+
81
+ var _this = _possibleConstructorReturn(this, (PanelViewer.__proto__ || Object.getPrototypeOf(PanelViewer)).call(this, props));
82
+
83
+ _this.state = {
84
+ expand: 'info'
85
+ };
86
+
87
+ _this.onExapnd = _this.onExapnd.bind(_this);
88
+ _this.handleDescriptionChanged = _this.handleDescriptionChanged.bind(_this);
89
+ return _this;
90
+ }
91
+
92
+ _createClass(PanelViewer, [{
93
+ key: 'onExapnd',
94
+ value: function onExapnd(input) {
95
+ var expand = this.state.expand;
96
+
97
+ var nextExpand = input === expand ? '' : input;
98
+ this.setState({ expand: nextExpand });
99
+ }
100
+ }, {
101
+ key: 'handleDescriptionChanged',
102
+ value: function handleDescriptionChanged(content, delta, source, editor) {
103
+ if (source === 'user') {
104
+ var contentChanged = editor.getContents();
105
+ this.props.onDescriptionChanged(contentChanged);
106
+ }
107
+ }
108
+ }, {
109
+ key: 'render',
110
+ value: function render() {
111
+ var _this2 = this;
112
+
113
+ var expand = this.state.expand;
114
+ var _props = this.props,
115
+ classes = _props.classes,
116
+ feature = _props.feature,
117
+ integration = _props.integration,
118
+ editorOnly = _props.editorOnly,
119
+ molSvg = _props.molSvg,
120
+ descriptions = _props.descriptions,
121
+ layoutSt = _props.layoutSt,
122
+ canChangeDescription = _props.canChangeDescription;
123
+
124
+ var onExapndInfo = function onExapndInfo() {
125
+ return _this2.onExapnd('info');
126
+ };
127
+ var onExapndPeak = function onExapndPeak() {
128
+ return _this2.onExapnd('peak');
129
+ };
130
+ var onExapndMpy = function onExapndMpy() {
131
+ return _this2.onExapnd('mpy');
132
+ };
133
+ var onExapndCompare = function onExapndCompare() {
134
+ return _this2.onExapnd('compare');
135
+ };
136
+
137
+ return _react2.default.createElement(
138
+ 'div',
139
+ { className: (0, _classnames2.default)(classes.panels) },
140
+ _react2.default.createElement(
141
+ _styles.MuiThemeProvider,
142
+ {
143
+ theme: theme
144
+ },
145
+ _react2.default.createElement(_info2.default, {
146
+ feature: feature,
147
+ integration: integration,
148
+ editorOnly: editorOnly,
149
+ expand: expand === 'info',
150
+ molSvg: molSvg,
151
+ onExapnd: onExapndInfo,
152
+ descriptions: descriptions,
153
+ canChangeDescription: canChangeDescription,
154
+ onDescriptionChanged: this.handleDescriptionChanged
155
+ }),
156
+ _cfg2.default.hidePanelPeak(layoutSt) ? null : _react2.default.createElement(_peaks2.default, { expand: expand === 'peak', onExapnd: onExapndPeak }),
157
+ _cfg2.default.hidePanelMpy(layoutSt) ? null : _react2.default.createElement(_multiplicity2.default, { expand: expand === 'mpy', onExapnd: onExapndMpy }),
158
+ _cfg2.default.hidePanelCompare(layoutSt) ? null : _react2.default.createElement(_compare2.default, { expand: expand === 'compare', onExapnd: onExapndCompare })
159
+ )
160
+ );
161
+ }
162
+ }]);
163
+
164
+ return PanelViewer;
165
+ }(_react2.default.Component);
166
+
167
+ var mapStateToProps = function mapStateToProps(state, _) {
168
+ return (// eslint-disable-line
169
+ {
170
+ layoutSt: state.layout
171
+ }
172
+ );
173
+ };
174
+
175
+ var mapDispatchToProps = function mapDispatchToProps(dispatch) {
176
+ return (0, _redux.bindActionCreators)({}, dispatch);
177
+ };
178
+
179
+ PanelViewer.propTypes = {
180
+ classes: _propTypes2.default.object.isRequired,
181
+ feature: _propTypes2.default.object.isRequired,
182
+ integration: _propTypes2.default.object.isRequired,
183
+ editorOnly: _propTypes2.default.bool.isRequired,
184
+ molSvg: _propTypes2.default.string.isRequired,
185
+ descriptions: _propTypes2.default.array.isRequired,
186
+ layoutSt: _propTypes2.default.string.isRequired,
187
+ canChangeDescription: _propTypes2.default.bool.isRequired,
188
+ onDescriptionChanged: _propTypes2.default.func
189
+ };
190
+
191
+ exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(PanelViewer));
@@ -0,0 +1,335 @@
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('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(stackIntegration) {
138
+ var values = [];
139
+ if (Array.isArray(stackIntegration)) {
140
+ var sumVal = 0.0;
141
+ stackIntegration.forEach(function (inte) {
142
+ if (inte.area) {
143
+ sumVal += inte.area;
144
+ }
145
+ });
146
+ sumVal = sumVal.toFixed(2);
147
+ stackIntegration.forEach(function (inte) {
148
+ var areaVal = inte.area.toFixed(2);
149
+ var percent = (areaVal * 100 / sumVal).toFixed(2);
150
+ var valStr = areaVal + " (" + percent + "%)";
151
+ values.push(valStr);
152
+ });
153
+ }
154
+ return values.join(", ");
155
+ };
156
+
157
+ var InfoPanel = function InfoPanel(_ref) {
158
+ var classes = _ref.classes,
159
+ expand = _ref.expand,
160
+ feature = _ref.feature,
161
+ integration = _ref.integration,
162
+ editorOnly = _ref.editorOnly,
163
+ molSvg = _ref.molSvg,
164
+ descriptions = _ref.descriptions,
165
+ layoutSt = _ref.layoutSt,
166
+ simulationSt = _ref.simulationSt,
167
+ shiftNameSt = _ref.shiftNameSt,
168
+ onExapnd = _ref.onExapnd,
169
+ canChangeDescription = _ref.canChangeDescription,
170
+ onDescriptionChanged = _ref.onDescriptionChanged;
171
+
172
+ if (!feature) return null;
173
+ var title = feature.title,
174
+ observeFrequency = feature.observeFrequency,
175
+ solventName = feature.solventName;
176
+
177
+ var showSolvName = shiftNameSt === '- - -' ? solventName : shiftNameSt;
178
+
179
+ var originStack = null;
180
+ if (integration) {
181
+ originStack = integration.originStack;
182
+ }
183
+
184
+ return _react2.default.createElement(
185
+ _ExpansionPanel2.default,
186
+ {
187
+ expanded: expand,
188
+ onChange: onExapnd,
189
+ className: (0, _classnames2.default)(classes.panel),
190
+ TransitionProps: { unmountOnExit: true } // increase ExpansionPanel performance
191
+ },
192
+ _react2.default.createElement(
193
+ _ExpansionPanelSummary2.default,
194
+ {
195
+ expandIcon: _react2.default.createElement(_ExpandMore2.default, null),
196
+ className: (0, _classnames2.default)(classes.panelSummary)
197
+ },
198
+ _react2.default.createElement(
199
+ _Typography2.default,
200
+ { className: 'txt-panel-header' },
201
+ _react2.default.createElement(
202
+ 'span',
203
+ { className: (0, _classnames2.default)(classes.txtBadge, 'txt-sv-panel-title') },
204
+ 'Info'
205
+ )
206
+ )
207
+ ),
208
+ _react2.default.createElement(_Divider2.default, null),
209
+ _react2.default.createElement(
210
+ 'div',
211
+ { className: (0, _classnames2.default)(classes.panelDetail) },
212
+ _react2.default.createElement(
213
+ 'div',
214
+ { className: (0, _classnames2.default)(classes.rowRoot, classes.rowOdd) },
215
+ _react2.default.createElement(
216
+ 'span',
217
+ { className: (0, _classnames2.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt') },
218
+ 'Title : '
219
+ ),
220
+ _react2.default.createElement(
221
+ 'span',
222
+ { className: (0, _classnames2.default)(classes.tTxt, 'txt-sv-panel-txt') },
223
+ title
224
+ )
225
+ ),
226
+ _format2.default.isNmrLayout(layoutSt) ? _react2.default.createElement(
227
+ 'div',
228
+ { className: (0, _classnames2.default)(classes.rowRoot, classes.rowEven) },
229
+ _react2.default.createElement(
230
+ 'span',
231
+ { className: (0, _classnames2.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt') },
232
+ 'Freq : '
233
+ ),
234
+ _react2.default.createElement(
235
+ 'span',
236
+ { className: (0, _classnames2.default)(classes.tTxt, 'txt-sv-panel-txt') },
237
+ parseInt(observeFrequency, 10) || ' - '
238
+ )
239
+ ) : null,
240
+ _format2.default.isNmrLayout(layoutSt) ? _react2.default.createElement(
241
+ 'div',
242
+ { className: (0, _classnames2.default)(classes.rowRoot, classes.rowOdd) },
243
+ _react2.default.createElement(
244
+ 'span',
245
+ { className: (0, _classnames2.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt') },
246
+ 'Solv : '
247
+ ),
248
+ _react2.default.createElement(
249
+ 'span',
250
+ { className: (0, _classnames2.default)(classes.tTxt, 'txt-sv-panel-txt') },
251
+ showSolvName
252
+ )
253
+ ) : null,
254
+ !molSvg ? null : _react2.default.createElement(_reactSvgFileZoomPan2.default, {
255
+ svg: molSvg,
256
+ duration: 300,
257
+ resize: true
258
+ }),
259
+ _format2.default.isUvVisLayout(layoutSt) || _format2.default.isHplcUvVisLayout ? _react2.default.createElement(
260
+ 'div',
261
+ { className: (0, _classnames2.default)(classes.rowRoot, classes.rowOddSim) },
262
+ _react2.default.createElement(
263
+ 'span',
264
+ { className: (0, _classnames2.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt') },
265
+ 'Area under curve (AUC):'
266
+ ),
267
+ _react2.default.createElement('br', null),
268
+ _react2.default.createElement(
269
+ 'span',
270
+ { className: (0, _classnames2.default)(classes.tTxt, classes.tTxtSim, 'txt-sv-panel-txt') },
271
+ aucValue(originStack)
272
+ )
273
+ ) : null
274
+ ),
275
+ _react2.default.createElement(_reactQuill2.default, {
276
+ className: (0, _classnames2.default)(classes.quill, 'card-sv-quill'),
277
+ value: descriptions,
278
+ modules: { toolbar: false },
279
+ onChange: onDescriptionChanged,
280
+ readOnly: canChangeDescription !== undefined ? !canChangeDescription : true
281
+ }),
282
+ _react2.default.createElement(
283
+ 'div',
284
+ null,
285
+ !editorOnly && _format2.default.isNmrLayout(layoutSt) ? _react2.default.createElement(
286
+ 'div',
287
+ { className: (0, _classnames2.default)(classes.rowRoot, classes.rowOddSim) },
288
+ _react2.default.createElement(
289
+ 'span',
290
+ { className: (0, _classnames2.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt') },
291
+ simTitle(),
292
+ ':'
293
+ ),
294
+ _react2.default.createElement('br', null),
295
+ _react2.default.createElement(
296
+ 'span',
297
+ { className: (0, _classnames2.default)(classes.tTxt, classes.tTxtSim, 'txt-sv-panel-txt') },
298
+ simContent(simulationSt.nmrSimPeaks)
299
+ )
300
+ ) : null
301
+ )
302
+ );
303
+ };
304
+
305
+ var mapStateToProps = function mapStateToProps(state, props) {
306
+ return (// eslint-disable-line
307
+ {
308
+ layoutSt: state.layout,
309
+ simulationSt: state.simulation,
310
+ shiftNameSt: state.shift.ref.name
311
+ }
312
+ );
313
+ };
314
+
315
+ var mapDispatchToProps = function mapDispatchToProps(dispatch) {
316
+ return (0, _redux.bindActionCreators)({}, dispatch);
317
+ };
318
+
319
+ InfoPanel.propTypes = {
320
+ classes: _propTypes2.default.object.isRequired,
321
+ expand: _propTypes2.default.bool.isRequired,
322
+ feature: _propTypes2.default.object.isRequired,
323
+ integration: _propTypes2.default.object.isRequired,
324
+ editorOnly: _propTypes2.default.bool.isRequired,
325
+ molSvg: _propTypes2.default.string.isRequired,
326
+ descriptions: _propTypes2.default.array.isRequired,
327
+ layoutSt: _propTypes2.default.string.isRequired,
328
+ simulationSt: _propTypes2.default.array.isRequired,
329
+ shiftNameSt: _propTypes2.default.string.isRequired,
330
+ onExapnd: _propTypes2.default.func.isRequired,
331
+ canChangeDescription: _propTypes2.default.bool.isRequired,
332
+ onDescriptionChanged: _propTypes2.default.func
333
+ };
334
+
335
+ exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(InfoPanel));