@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,172 @@
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 _styles = require('@material-ui/core/styles');
24
+
25
+ var _Table = require('@material-ui/core/Table');
26
+
27
+ var _Table2 = _interopRequireDefault(_Table);
28
+
29
+ var _TableBody = require('@material-ui/core/TableBody');
30
+
31
+ var _TableBody2 = _interopRequireDefault(_TableBody);
32
+
33
+ var _Paper = require('@material-ui/core/Paper');
34
+
35
+ var _Paper2 = _interopRequireDefault(_Paper);
36
+
37
+ var _Grid = require('@material-ui/core/Grid');
38
+
39
+ var _Grid2 = _interopRequireDefault(_Grid);
40
+
41
+ var _comps = require('./comps');
42
+
43
+ var _ir_comps = require('./ir_comps');
44
+
45
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
46
+
47
+ var Styles = function Styles() {
48
+ return {
49
+ root: {
50
+ overflowX: 'hidden',
51
+ overflowY: 'auto'
52
+ },
53
+ container: {
54
+ minHeight: '400px'
55
+ },
56
+ svgRoot: {
57
+ margin: '10px 40px 0px 40px',
58
+ height: 'calc(70vh)',
59
+ overflowY: 'hidden'
60
+ },
61
+ tableRoot: {
62
+ margin: '10px 40px 0px 40px',
63
+ maxHeight: 'calc(70vh)',
64
+ overflowY: 'scroll'
65
+ },
66
+ title: {
67
+ textAlign: 'left'
68
+ },
69
+ btn: {
70
+ marginLeft: 40
71
+ },
72
+ reference: {
73
+ borderTop: '1px solid #cfd8dc',
74
+ margin: '10px 40px 0px 40px',
75
+ padding: 5
76
+ },
77
+ inputRoot: {
78
+ margin: '10px 40px 0px 40px'
79
+ },
80
+ txtLabel: {
81
+ fontSize: '12px'
82
+ },
83
+ submit: {
84
+ margin: '0 0 0 30px',
85
+ width: 300
86
+ }
87
+ };
88
+ };
89
+
90
+ var sectionTable = function sectionTable(classes, pds) {
91
+ var renderMsg = (0, _comps.notToRenderAnalysis)(pds);
92
+ if (renderMsg) return renderMsg;
93
+
94
+ if (!pds.output.result || !pds.output.result[0]) return null;
95
+
96
+ var fgs = pds.output.result[0].fgs;
97
+
98
+ if (!fgs) return null;
99
+ return _react2.default.createElement(
100
+ _Paper2.default,
101
+ { className: classes.tableRoot },
102
+ _react2.default.createElement(
103
+ _Table2.default,
104
+ { className: classes.table, size: 'small' },
105
+ (0, _ir_comps.IrTableHeader)(classes),
106
+ _react2.default.createElement(
107
+ _TableBody2.default,
108
+ null,
109
+ fgs.sort(function (a, b) {
110
+ return b.confidence - a.confidence;
111
+ }).map(function (fg, idx) {
112
+ return (0, _ir_comps.IrTableBodyRow)(classes, idx, fg);
113
+ })
114
+ )
115
+ )
116
+ );
117
+ };
118
+
119
+ var IrViewer = function IrViewer(_ref) {
120
+ var classes = _ref.classes,
121
+ molecule = _ref.molecule,
122
+ inputCb = _ref.inputCb,
123
+ forecastSt = _ref.forecastSt;
124
+ return _react2.default.createElement(
125
+ 'div',
126
+ { className: (0, _classnames2.default)(classes.root, 'card-forecast-viewer') },
127
+ _react2.default.createElement(
128
+ _Grid2.default,
129
+ { className: (0, _classnames2.default)(classes.container), container: true },
130
+ _react2.default.createElement(
131
+ _Grid2.default,
132
+ { item: true, xs: 4 },
133
+ _react2.default.createElement(
134
+ _Paper2.default,
135
+ { className: classes.svgRoot },
136
+ (0, _comps.sectionSvg)(classes, forecastSt.predictions)
137
+ )
138
+ ),
139
+ _react2.default.createElement(
140
+ _Grid2.default,
141
+ { item: true, xs: 8 },
142
+ sectionTable(classes, forecastSt.predictions)
143
+ )
144
+ ),
145
+ (0, _comps.sectionInput)(classes, molecule, inputCb)
146
+ );
147
+ };
148
+
149
+ var mapStateToProps = function mapStateToProps(state, props) {
150
+ return (// eslint-disable-line
151
+ {
152
+ forecastSt: state.forecast
153
+ }
154
+ );
155
+ };
156
+
157
+ var mapDispatchToProps = function mapDispatchToProps(dispatch) {
158
+ return (0, _redux.bindActionCreators)({}, dispatch);
159
+ };
160
+
161
+ IrViewer.propTypes = {
162
+ classes: _propTypes2.default.object.isRequired,
163
+ molecule: _propTypes2.default.string.isRequired,
164
+ inputCb: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.bool]),
165
+ forecastSt: _propTypes2.default.object.isRequired
166
+ };
167
+
168
+ IrViewer.defaultProps = {
169
+ inputCb: false
170
+ };
171
+
172
+ exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _styles.withStyles)(Styles))(IrViewer);
@@ -0,0 +1,253 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SectionReference = exports.NmrTableBodyRow = exports.NmrTableHeader = undefined;
7
+
8
+ var _react = require('react');
9
+
10
+ var _react2 = _interopRequireDefault(_react);
11
+
12
+ var _propTypes = require('prop-types');
13
+
14
+ var _propTypes2 = _interopRequireDefault(_propTypes);
15
+
16
+ var _classnames = require('classnames');
17
+
18
+ var _classnames2 = _interopRequireDefault(_classnames);
19
+
20
+ var _reactRedux = require('react-redux');
21
+
22
+ var _redux = require('redux');
23
+
24
+ var _Select = require('@material-ui/core/Select');
25
+
26
+ var _Select2 = _interopRequireDefault(_Select);
27
+
28
+ var _FormControl = require('@material-ui/core/FormControl');
29
+
30
+ var _FormControl2 = _interopRequireDefault(_FormControl);
31
+
32
+ var _MenuItem = require('@material-ui/core/MenuItem');
33
+
34
+ var _MenuItem2 = _interopRequireDefault(_MenuItem);
35
+
36
+ var _CheckCircleOutline = require('@material-ui/icons/CheckCircleOutline');
37
+
38
+ var _CheckCircleOutline2 = _interopRequireDefault(_CheckCircleOutline);
39
+
40
+ var _HighlightOff = require('@material-ui/icons/HighlightOff');
41
+
42
+ var _HighlightOff2 = _interopRequireDefault(_HighlightOff);
43
+
44
+ var _TableCell = require('@material-ui/core/TableCell');
45
+
46
+ var _TableCell2 = _interopRequireDefault(_TableCell);
47
+
48
+ var _TableHead = require('@material-ui/core/TableHead');
49
+
50
+ var _TableHead2 = _interopRequireDefault(_TableHead);
51
+
52
+ var _TableRow = require('@material-ui/core/TableRow');
53
+
54
+ var _TableRow2 = _interopRequireDefault(_TableRow);
55
+
56
+ var _comps = require('./comps');
57
+
58
+ var _forecast = require('../../actions/forecast');
59
+
60
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
61
+
62
+ var baseSelectNmrStatus = function baseSelectNmrStatus(_ref) {
63
+ var idx = _ref.idx,
64
+ atom = _ref.atom,
65
+ status = _ref.status,
66
+ identity = _ref.identity,
67
+ setNmrStatusAct = _ref.setNmrStatusAct;
68
+
69
+ var theStatus = ['accept', 'reject'].includes(status) ? status : '';
70
+
71
+ return _react2.default.createElement(
72
+ _FormControl2.default,
73
+ null,
74
+ _react2.default.createElement(
75
+ _Select2.default,
76
+ {
77
+ value: theStatus,
78
+ onChange: function onChange(e) {
79
+ setNmrStatusAct({
80
+ predictions: {
81
+ idx: idx, atom: atom, identity: identity, value: e.target.value
82
+ },
83
+ svgs: []
84
+ });
85
+ }
86
+ },
87
+ _react2.default.createElement(
88
+ _MenuItem2.default,
89
+ { value: 'accept' },
90
+ _react2.default.createElement(_CheckCircleOutline2.default, { style: { color: '#4caf50' } })
91
+ ),
92
+ _react2.default.createElement(
93
+ _MenuItem2.default,
94
+ { value: 'reject' },
95
+ _react2.default.createElement(_HighlightOff2.default, { style: { color: '#e91e63' } })
96
+ ),
97
+ _react2.default.createElement(
98
+ _MenuItem2.default,
99
+ { value: '' },
100
+ _react2.default.createElement('span', null)
101
+ )
102
+ )
103
+ );
104
+ };
105
+
106
+ var bssMapStateToProps = function bssMapStateToProps(state, props) {
107
+ return (// eslint-disable-line
108
+ {}
109
+ );
110
+ };
111
+
112
+ var bssMapDispatchToProps = function bssMapDispatchToProps(dispatch) {
113
+ return (0, _redux.bindActionCreators)({
114
+ setNmrStatusAct: _forecast.setNmrStatus
115
+ }, dispatch);
116
+ };
117
+
118
+ baseSelectNmrStatus.propTypes = {
119
+ idx: _propTypes2.default.number.isRequired,
120
+ atom: _propTypes2.default.number.isRequired,
121
+ status: _propTypes2.default.string,
122
+ identity: _propTypes2.default.string.isRequired,
123
+ setNmrStatusAct: _propTypes2.default.func.isRequired
124
+ };
125
+
126
+ baseSelectNmrStatus.defaultProps = {
127
+ status: ''
128
+ };
129
+
130
+ var SelectNmrStatus = (0, _reactRedux.connect)(bssMapStateToProps, bssMapDispatchToProps)(baseSelectNmrStatus);
131
+
132
+ var numFormat = function numFormat(input) {
133
+ return parseFloat(input).toFixed(2);
134
+ };
135
+
136
+ var realFormat = function realFormat(val, status) {
137
+ if (status === 'missing') {
138
+ return '- - -';
139
+ }
140
+ return numFormat(val);
141
+ };
142
+
143
+ var NmrTableHeader = function NmrTableHeader(classes) {
144
+ return _react2.default.createElement(
145
+ _TableHead2.default,
146
+ null,
147
+ _react2.default.createElement(
148
+ _TableRow2.default,
149
+ null,
150
+ _react2.default.createElement(
151
+ _TableCell2.default,
152
+ null,
153
+ (0, _comps.TxtLabel)(classes, 'Atom', 'txt-prd-table-title')
154
+ ),
155
+ _react2.default.createElement(
156
+ _TableCell2.default,
157
+ { align: 'right' },
158
+ (0, _comps.TxtLabel)(classes, 'Prediction (ppm)', 'txt-prd-table-title')
159
+ ),
160
+ _react2.default.createElement(
161
+ _TableCell2.default,
162
+ { align: 'right' },
163
+ (0, _comps.TxtLabel)(classes, 'Real (ppm)', 'txt-prd-table-title')
164
+ ),
165
+ _react2.default.createElement(
166
+ _TableCell2.default,
167
+ { align: 'right' },
168
+ (0, _comps.TxtLabel)(classes, 'Diff (ppm)', 'txt-prd-table-title')
169
+ ),
170
+ _react2.default.createElement(
171
+ _TableCell2.default,
172
+ { align: 'right' },
173
+ (0, _comps.TxtLabel)(classes, 'Machine', 'txt-prd-table-title')
174
+ ),
175
+ _react2.default.createElement(
176
+ _TableCell2.default,
177
+ { align: 'right' },
178
+ (0, _comps.TxtLabel)(classes, 'Owner', 'txt-prd-table-title')
179
+ )
180
+ )
181
+ );
182
+ };
183
+
184
+ var NmrTableBodyRow = function NmrTableBodyRow(classes, row, idx) {
185
+ return _react2.default.createElement(
186
+ _TableRow2.default,
187
+ { key: idx + '-' + row.atom },
188
+ _react2.default.createElement(
189
+ _TableCell2.default,
190
+ { component: 'th', scope: 'row' },
191
+ (0, _comps.TxtLabel)(classes, row.atom, 'txt-prd-table-content')
192
+ ),
193
+ _react2.default.createElement(
194
+ _TableCell2.default,
195
+ { align: 'right' },
196
+ (0, _comps.TxtLabel)(classes, numFormat(row.prediction), 'txt-prd-table-content')
197
+ ),
198
+ _react2.default.createElement(
199
+ _TableCell2.default,
200
+ { align: 'right' },
201
+ (0, _comps.TxtLabel)(classes, realFormat(row.real, row.status), 'txt-prd-table-content')
202
+ ),
203
+ _react2.default.createElement(
204
+ _TableCell2.default,
205
+ { align: 'right' },
206
+ (0, _comps.TxtLabel)(classes, realFormat(row.diff, row.status), 'txt-prd-table-content')
207
+ ),
208
+ _react2.default.createElement(
209
+ _TableCell2.default,
210
+ { align: 'right' },
211
+ (0, _comps.StatusIcon)(row.status)
212
+ ),
213
+ _react2.default.createElement(
214
+ _TableCell2.default,
215
+ { align: 'right' },
216
+ _react2.default.createElement(SelectNmrStatus, {
217
+ idx: idx,
218
+ atom: row.atom,
219
+ status: row.statusOwner,
220
+ identity: 'Owner'
221
+ })
222
+ )
223
+ );
224
+ };
225
+
226
+ var SectionReference = function SectionReference(classes) {
227
+ return _react2.default.createElement(
228
+ 'div',
229
+ { className: (0, _classnames2.default)(classes.reference) },
230
+ _react2.default.createElement(
231
+ 'p',
232
+ null,
233
+ _react2.default.createElement(
234
+ 'span',
235
+ null,
236
+ 'NMR prediction source: '
237
+ ),
238
+ _react2.default.createElement(
239
+ 'a',
240
+ {
241
+ href: 'https://www.ncbi.nlm.nih.gov/pubmed/15464159',
242
+ target: '_blank',
243
+ rel: 'noopener noreferrer'
244
+ },
245
+ 'nmrshiftdb'
246
+ )
247
+ )
248
+ );
249
+ };
250
+
251
+ exports.NmrTableHeader = NmrTableHeader;
252
+ exports.NmrTableBodyRow = NmrTableBodyRow;
253
+ exports.SectionReference = SectionReference;
@@ -0,0 +1,170 @@
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 _styles = require('@material-ui/core/styles');
24
+
25
+ var _Table = require('@material-ui/core/Table');
26
+
27
+ var _Table2 = _interopRequireDefault(_Table);
28
+
29
+ var _TableBody = require('@material-ui/core/TableBody');
30
+
31
+ var _TableBody2 = _interopRequireDefault(_TableBody);
32
+
33
+ var _Paper = require('@material-ui/core/Paper');
34
+
35
+ var _Paper2 = _interopRequireDefault(_Paper);
36
+
37
+ var _Grid = require('@material-ui/core/Grid');
38
+
39
+ var _Grid2 = _interopRequireDefault(_Grid);
40
+
41
+ var _comps = require('./comps');
42
+
43
+ var _nmr_comps = require('./nmr_comps');
44
+
45
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
46
+
47
+ var Styles = function Styles() {
48
+ return {
49
+ root: {
50
+ overflowX: 'hidden',
51
+ overflowY: 'auto'
52
+ },
53
+ container: {
54
+ minHeight: '400px'
55
+ },
56
+ svgRoot: {
57
+ margin: '10px 40px 0px 40px',
58
+ height: 'calc(70vh)',
59
+ overflowY: 'hidden'
60
+ },
61
+ tableRoot: {
62
+ margin: '10px 40px 0px 40px',
63
+ maxHeight: 'calc(70vh)',
64
+ overflowY: 'scroll'
65
+ },
66
+ title: {
67
+ textAlign: 'left'
68
+ },
69
+ btn: {
70
+ marginLeft: 40
71
+ },
72
+ reference: {
73
+ borderTop: '1px solid #cfd8dc',
74
+ margin: '10px 40px 0px 40px',
75
+ padding: 5
76
+ },
77
+ inputRoot: {
78
+ margin: '10px 40px 0px 40px'
79
+ },
80
+ txtLabel: {
81
+ fontSize: '12px'
82
+ },
83
+ submit: {
84
+ margin: '0 0 0 30px',
85
+ width: 300
86
+ }
87
+ };
88
+ };
89
+
90
+ var sectionTable = function sectionTable(classes, pds) {
91
+ var renderMsg = (0, _comps.notToRenderAnalysis)(pds);
92
+ if (renderMsg) return renderMsg;
93
+
94
+ var dict = pds.output.result[0];
95
+ if (!dict) return _react2.default.createElement('div', null);
96
+ return _react2.default.createElement(
97
+ _Paper2.default,
98
+ { className: classes.tableRoot },
99
+ _react2.default.createElement(
100
+ _Table2.default,
101
+ { className: classes.table, size: 'small' },
102
+ (0, _nmr_comps.NmrTableHeader)(classes),
103
+ _react2.default.createElement(
104
+ _TableBody2.default,
105
+ null,
106
+ dict.shifts.sort(function (a, b) {
107
+ return a.atom - b.atom;
108
+ }).map(function (row, idx) {
109
+ return (0, _nmr_comps.NmrTableBodyRow)(classes, row, idx);
110
+ })
111
+ )
112
+ )
113
+ );
114
+ };
115
+
116
+ var NmrViewer = function NmrViewer(_ref) {
117
+ var classes = _ref.classes,
118
+ molecule = _ref.molecule,
119
+ inputCb = _ref.inputCb,
120
+ forecastSt = _ref.forecastSt;
121
+ return _react2.default.createElement(
122
+ 'div',
123
+ { className: (0, _classnames2.default)(classes.root, 'card-forecast-viewer') },
124
+ _react2.default.createElement(
125
+ _Grid2.default,
126
+ { className: (0, _classnames2.default)(classes.container), container: true },
127
+ _react2.default.createElement(
128
+ _Grid2.default,
129
+ { item: true, xs: 4 },
130
+ _react2.default.createElement(
131
+ _Paper2.default,
132
+ { className: classes.svgRoot },
133
+ (0, _comps.sectionSvg)(classes, forecastSt.predictions)
134
+ )
135
+ ),
136
+ _react2.default.createElement(
137
+ _Grid2.default,
138
+ { item: true, xs: 8 },
139
+ sectionTable(classes, forecastSt.predictions)
140
+ )
141
+ ),
142
+ (0, _comps.sectionInput)(classes, molecule, inputCb),
143
+ (0, _nmr_comps.SectionReference)(classes)
144
+ );
145
+ };
146
+
147
+ var mapStateToProps = function mapStateToProps(state, props) {
148
+ return (// eslint-disable-line
149
+ {
150
+ forecastSt: state.forecast
151
+ }
152
+ );
153
+ };
154
+
155
+ var mapDispatchToProps = function mapDispatchToProps(dispatch) {
156
+ return (0, _redux.bindActionCreators)({}, dispatch);
157
+ };
158
+
159
+ NmrViewer.propTypes = {
160
+ classes: _propTypes2.default.object.isRequired,
161
+ molecule: _propTypes2.default.string.isRequired,
162
+ inputCb: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.bool]),
163
+ forecastSt: _propTypes2.default.object.isRequired
164
+ };
165
+
166
+ NmrViewer.defaultProps = {
167
+ inputCb: false
168
+ };
169
+
170
+ exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _styles.withStyles)(Styles))(NmrViewer);
@@ -0,0 +1,95 @@
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 _CircularProgress = require('@material-ui/core/CircularProgress');
14
+
15
+ var _CircularProgress2 = _interopRequireDefault(_CircularProgress);
16
+
17
+ var _ErrorOutline = require('@material-ui/icons/ErrorOutline');
18
+
19
+ var _ErrorOutline2 = _interopRequireDefault(_ErrorOutline);
20
+
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+
23
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
24
+
25
+ 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; }
26
+
27
+ 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; }
28
+
29
+ var styleLoading = {
30
+ alignItems: 'center',
31
+ display: 'flex',
32
+ height: '100%',
33
+ justifyContent: 'center'
34
+ };
35
+
36
+ var SectionLoading = function (_React$Component) {
37
+ _inherits(SectionLoading, _React$Component);
38
+
39
+ function SectionLoading(props) {
40
+ _classCallCheck(this, SectionLoading);
41
+
42
+ var _this = _possibleConstructorReturn(this, (SectionLoading.__proto__ || Object.getPrototypeOf(SectionLoading)).call(this, props));
43
+
44
+ _this.state = {
45
+ loading: true
46
+ };
47
+ return _this;
48
+ }
49
+
50
+ _createClass(SectionLoading, [{
51
+ key: 'componentDidMount',
52
+ value: function componentDidMount() {
53
+ var _this2 = this;
54
+
55
+ setTimeout(function () {
56
+ return _this2.setState({ loading: false });
57
+ }, 5000);
58
+ }
59
+ }, {
60
+ key: 'renderLoading',
61
+ value: function renderLoading() {
62
+ return _react2.default.createElement(
63
+ 'div',
64
+ { style: styleLoading },
65
+ _react2.default.createElement(_CircularProgress2.default, { style: { color: 'blue', fontSize: 50 } })
66
+ );
67
+ }
68
+ }, {
69
+ key: 'renderNotFound',
70
+ value: function renderNotFound() {
71
+ return _react2.default.createElement(
72
+ 'div',
73
+ { style: styleLoading },
74
+ _react2.default.createElement(_ErrorOutline2.default, { style: { color: '#ffc107', fontSize: 50, margin: 20 } }),
75
+ _react2.default.createElement(
76
+ 'h3',
77
+ null,
78
+ 'Structure Not Found'
79
+ )
80
+ );
81
+ }
82
+ }, {
83
+ key: 'render',
84
+ value: function render() {
85
+ var loading = this.state.loading;
86
+
87
+
88
+ return loading ? this.renderLoading() : this.renderNotFound();
89
+ }
90
+ }]);
91
+
92
+ return SectionLoading;
93
+ }(_react2.default.Component);
94
+
95
+ exports.default = SectionLoading;