@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,209 @@
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 _TextField = require('@material-ui/core/TextField');
24
+
25
+ var _TextField2 = _interopRequireDefault(_TextField);
26
+
27
+ var _InputAdornment = require('@material-ui/core/InputAdornment');
28
+
29
+ var _InputAdornment2 = _interopRequireDefault(_InputAdornment);
30
+
31
+ var _styles = require('@material-ui/core/styles');
32
+
33
+ var _Tooltip = require('@material-ui/core/Tooltip');
34
+
35
+ var _Tooltip2 = _interopRequireDefault(_Tooltip);
36
+
37
+ var _CloudDoneOutlined = require('@material-ui/icons/CloudDoneOutlined');
38
+
39
+ var _CloudDoneOutlined2 = _interopRequireDefault(_CloudDoneOutlined);
40
+
41
+ var _HowToRegOutlined = require('@material-ui/icons/HowToRegOutlined');
42
+
43
+ var _HowToRegOutlined2 = _interopRequireDefault(_HowToRegOutlined);
44
+
45
+ var _RefreshOutlined = require('@material-ui/icons/RefreshOutlined');
46
+
47
+ var _RefreshOutlined2 = _interopRequireDefault(_RefreshOutlined);
48
+
49
+ var _cfg = require('../../helpers/cfg');
50
+
51
+ var _cfg2 = _interopRequireDefault(_cfg);
52
+
53
+ var _threshold = require('../../actions/threshold');
54
+
55
+ var _common = require('./common');
56
+
57
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
58
+
59
+ var styles = function styles() {
60
+ return Object.assign({
61
+ field: {
62
+ width: 110
63
+ },
64
+ txtIcon: {}
65
+ }, _common.commonStyle);
66
+ };
67
+
68
+ var txtPercent = function txtPercent() {
69
+ return _react2.default.createElement(
70
+ _InputAdornment2.default,
71
+ { position: 'end' },
72
+ _react2.default.createElement(
73
+ 'span',
74
+ { className: 'txt-percent' },
75
+ '%'
76
+ )
77
+ );
78
+ };
79
+
80
+ var setThreshold = function setThreshold(classes, thresVal, updateThresholdValueAct) {
81
+ var onBlur = function onBlur(e) {
82
+ return updateThresholdValueAct(e.target.value);
83
+ };
84
+ var onChange = function onChange(e) {
85
+ return updateThresholdValueAct(e.target.value);
86
+ };
87
+ var onEnterPress = function onEnterPress(e) {
88
+ if (e.key === 'Enter') {
89
+ updateThresholdValueAct(e.target.value);
90
+ }
91
+ };
92
+
93
+ return _react2.default.createElement(_TextField2.default, {
94
+ className: classes.field,
95
+ id: 'outlined-name',
96
+ placeholder: 'N.A.',
97
+ type: 'number',
98
+ value: thresVal || 0.01,
99
+ margin: 'none',
100
+ InputProps: {
101
+ endAdornment: txtPercent(),
102
+ className: (0, _classnames2.default)(classes.txtInput, 'txtfield-sv-bar-input'),
103
+ inputProps: { min: 0.01 }
104
+ },
105
+ label: _react2.default.createElement(
106
+ 'span',
107
+ { className: (0, _classnames2.default)(classes.txtLabel, 'txtfield-sv-bar-label') },
108
+ 'Threshold'
109
+ ),
110
+ onChange: onChange,
111
+ onBlur: onBlur,
112
+ onKeyPress: onEnterPress,
113
+ variant: 'outlined'
114
+ });
115
+ };
116
+
117
+ var restoreIcon = function restoreIcon(classes, hasEdit, isEdit) {
118
+ return hasEdit && isEdit ? _react2.default.createElement(_HowToRegOutlined2.default, { className: classes.icon }) : _react2.default.createElement(_CloudDoneOutlined2.default, { className: classes.icon });
119
+ };
120
+
121
+ var restoreTp = function restoreTp(hasEdit, isEdit) {
122
+ return hasEdit && isEdit ? 'User Defined Threshold' : 'Auto Picked Threshold';
123
+ };
124
+
125
+ var Threshold = function Threshold(_ref) {
126
+ var classes = _ref.classes,
127
+ feature = _ref.feature,
128
+ hasEdit = _ref.hasEdit,
129
+ hideThresSt = _ref.hideThresSt,
130
+ thresValSt = _ref.thresValSt,
131
+ isEditSt = _ref.isEditSt,
132
+ updateThresholdValueAct = _ref.updateThresholdValueAct,
133
+ resetThresholdValueAct = _ref.resetThresholdValueAct,
134
+ toggleThresholdIsEditAct = _ref.toggleThresholdIsEditAct;
135
+
136
+ var thresVal = thresValSt || feature.thresRef;
137
+
138
+ return _react2.default.createElement(
139
+ 'span',
140
+ { className: classes.groupRight },
141
+ setThreshold(classes, thresVal, updateThresholdValueAct),
142
+ _react2.default.createElement(
143
+ _Tooltip2.default,
144
+ { title: _react2.default.createElement(
145
+ 'span',
146
+ { className: 'txt-sv-tp' },
147
+ 'Restore Threshold'
148
+ ) },
149
+ _react2.default.createElement(
150
+ _common.MuButton,
151
+ {
152
+ className: (0, _classnames2.default)('btn-sv-bar-thresref'),
153
+ disabled: _cfg2.default.btnCmdThres(thresVal),
154
+ onClick: resetThresholdValueAct
155
+ },
156
+ _react2.default.createElement(_RefreshOutlined2.default, { className: classes.icon })
157
+ )
158
+ ),
159
+ hideThresSt ? null : _react2.default.createElement(
160
+ _Tooltip2.default,
161
+ { title: _react2.default.createElement(
162
+ 'span',
163
+ { className: 'txt-sv-tp' },
164
+ restoreTp(hasEdit, isEditSt)
165
+ ) },
166
+ _react2.default.createElement(
167
+ _common.MuButton,
168
+ {
169
+ className: (0, _classnames2.default)('btn-sv-bar-thresrst'),
170
+ disabled: _cfg2.default.btnCmdThres(thresVal),
171
+ onClick: toggleThresholdIsEditAct
172
+ },
173
+ restoreIcon(classes, hasEdit, isEditSt)
174
+ )
175
+ )
176
+ );
177
+ };
178
+
179
+ var mapStateToProps = function mapStateToProps(state, props) {
180
+ return (// eslint-disable-line
181
+ {
182
+ hideThresSt: _cfg2.default.hideCmdThres(state.layout),
183
+ isEditSt: state.threshold.isEdit,
184
+ thresValSt: parseFloat(state.threshold.value) || 0
185
+ }
186
+ );
187
+ };
188
+
189
+ var mapDispatchToProps = function mapDispatchToProps(dispatch) {
190
+ return (0, _redux.bindActionCreators)({
191
+ updateThresholdValueAct: _threshold.updateThresholdValue,
192
+ resetThresholdValueAct: _threshold.resetThresholdValue,
193
+ toggleThresholdIsEditAct: _threshold.toggleThresholdIsEdit
194
+ }, dispatch);
195
+ };
196
+
197
+ Threshold.propTypes = {
198
+ classes: _propTypes2.default.object.isRequired,
199
+ feature: _propTypes2.default.object.isRequired,
200
+ hasEdit: _propTypes2.default.bool.isRequired,
201
+ hideThresSt: _propTypes2.default.bool.isRequired,
202
+ isEditSt: _propTypes2.default.bool.isRequired,
203
+ thresValSt: _propTypes2.default.number.isRequired,
204
+ updateThresholdValueAct: _propTypes2.default.func.isRequired,
205
+ resetThresholdValueAct: _propTypes2.default.func.isRequired,
206
+ toggleThresholdIsEditAct: _propTypes2.default.func.isRequired
207
+ };
208
+
209
+ exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(Threshold));
@@ -0,0 +1,349 @@
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 _Select = require('@material-ui/core/Select');
24
+
25
+ var _Select2 = _interopRequireDefault(_Select);
26
+
27
+ var _MenuItem = require('@material-ui/core/MenuItem');
28
+
29
+ var _MenuItem2 = _interopRequireDefault(_MenuItem);
30
+
31
+ var _FormControl = require('@material-ui/core/FormControl');
32
+
33
+ var _FormControl2 = _interopRequireDefault(_FormControl);
34
+
35
+ var _OutlinedInput = require('@material-ui/core/OutlinedInput');
36
+
37
+ var _OutlinedInput2 = _interopRequireDefault(_OutlinedInput);
38
+
39
+ var _InputLabel = require('@material-ui/core/InputLabel');
40
+
41
+ var _InputLabel2 = _interopRequireDefault(_InputLabel);
42
+
43
+ var _styles = require('@material-ui/core/styles');
44
+
45
+ var _submit = require('../../actions/submit');
46
+
47
+ var _r05_submit_btn = require('./r05_submit_btn');
48
+
49
+ var _r05_submit_btn2 = _interopRequireDefault(_r05_submit_btn);
50
+
51
+ var _r06_predict_btn = require('./r06_predict_btn');
52
+
53
+ var _r06_predict_btn2 = _interopRequireDefault(_r06_predict_btn);
54
+
55
+ var _common = require('./common');
56
+
57
+ var _format = require('../../helpers/format');
58
+
59
+ var _format2 = _interopRequireDefault(_format);
60
+
61
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
62
+
63
+ var styles = function styles() {
64
+ return Object.assign({
65
+ fieldOrder: {
66
+ width: 90
67
+ },
68
+ fieldIntensity: {
69
+ width: 90
70
+ },
71
+ fieldDecimal: {
72
+ width: 80
73
+ },
74
+ fieldOpertaion: {
75
+ width: 120
76
+ }
77
+ }, _common.commonStyle);
78
+ };
79
+
80
+ var ascendSelect = function ascendSelect(classes, hideSwitch, isAscendSt, toggleIsAscendAct) {
81
+ if (hideSwitch) return null;
82
+
83
+ return _react2.default.createElement(
84
+ _FormControl2.default,
85
+ {
86
+ className: (0, _classnames2.default)(classes.fieldOrder),
87
+ variant: 'outlined'
88
+ },
89
+ _react2.default.createElement(
90
+ _InputLabel2.default,
91
+ { className: (0, _classnames2.default)(classes.selectLabel, 'select-sv-bar-label') },
92
+ 'Write Peaks'
93
+ ),
94
+ _react2.default.createElement(
95
+ _Select2.default,
96
+ {
97
+ value: isAscendSt,
98
+ onChange: toggleIsAscendAct,
99
+ input: _react2.default.createElement(_OutlinedInput2.default, {
100
+ className: (0, _classnames2.default)(classes.selectInput, 'input-sv-bar-order'),
101
+ labelWidth: 90
102
+ })
103
+ },
104
+ _react2.default.createElement(
105
+ _MenuItem2.default,
106
+ { value: true, key: 'ascend' },
107
+ _react2.default.createElement(
108
+ 'span',
109
+ { className: (0, _classnames2.default)(classes.txtOpt, 'option-sv-bar-ascend') },
110
+ 'Ascend'
111
+ )
112
+ ),
113
+ _react2.default.createElement(
114
+ _MenuItem2.default,
115
+ { value: false, key: 'descend' },
116
+ _react2.default.createElement(
117
+ 'span',
118
+ { className: (0, _classnames2.default)(classes.txtOpt, 'option-sv-bar-descend') },
119
+ 'Descend'
120
+ )
121
+ )
122
+ )
123
+ );
124
+ };
125
+
126
+ var intensitySelect = function intensitySelect(classes, hideSwitch, isIntensitySt, toggleIsIntensityAct) {
127
+ if (hideSwitch) return null;
128
+
129
+ return _react2.default.createElement(
130
+ _FormControl2.default,
131
+ {
132
+ className: (0, _classnames2.default)(classes.fieldIntensity),
133
+ variant: 'outlined'
134
+ },
135
+ _react2.default.createElement(
136
+ _InputLabel2.default,
137
+ { className: (0, _classnames2.default)(classes.selectLabel, 'select-sv-bar-label') },
138
+ 'Write Intensity'
139
+ ),
140
+ _react2.default.createElement(
141
+ _Select2.default,
142
+ {
143
+ value: isIntensitySt,
144
+ onChange: toggleIsIntensityAct,
145
+ input: _react2.default.createElement(_OutlinedInput2.default, {
146
+ className: (0, _classnames2.default)(classes.selectInput, 'input-sv-bar-intensity'),
147
+ labelWidth: 100
148
+ })
149
+ },
150
+ _react2.default.createElement(
151
+ _MenuItem2.default,
152
+ { value: true, key: 'ascend' },
153
+ _react2.default.createElement(
154
+ 'span',
155
+ { className: (0, _classnames2.default)(classes.txtOpt, 'option-sv-bar-show') },
156
+ 'Show'
157
+ )
158
+ ),
159
+ _react2.default.createElement(
160
+ _MenuItem2.default,
161
+ { value: false, key: 'descend' },
162
+ _react2.default.createElement(
163
+ 'span',
164
+ { className: (0, _classnames2.default)(classes.txtOpt, 'option-sv-bar-hide') },
165
+ 'Hide'
166
+ )
167
+ )
168
+ )
169
+ );
170
+ };
171
+
172
+ var decimalSelect = function decimalSelect(classes, hideSwitch, decimalSt, updateDecimalAct) {
173
+ if (hideSwitch) return null;
174
+ var decimals = [0, 1, 2, 3, 4];
175
+ var options = decimals.map(function (d) {
176
+ return _react2.default.createElement(
177
+ _MenuItem2.default,
178
+ { value: d, key: d },
179
+ _react2.default.createElement(
180
+ 'span',
181
+ { className: (0, _classnames2.default)(classes.txtOpt, 'option-sv-bar-decimal') },
182
+ d
183
+ )
184
+ );
185
+ });
186
+
187
+ return _react2.default.createElement(
188
+ _FormControl2.default,
189
+ {
190
+ className: (0, _classnames2.default)(classes.fieldDecimal),
191
+ variant: 'outlined'
192
+ },
193
+ _react2.default.createElement(
194
+ _InputLabel2.default,
195
+ { className: (0, _classnames2.default)(classes.selectLabel, 'select-sv-bar-label') },
196
+ 'Decimal'
197
+ ),
198
+ _react2.default.createElement(
199
+ _Select2.default,
200
+ {
201
+ value: decimalSt,
202
+ onChange: updateDecimalAct,
203
+ input: _react2.default.createElement(_OutlinedInput2.default, {
204
+ className: (0, _classnames2.default)(classes.selectInput, 'input-sv-bar-decimal'),
205
+ labelWidth: 60
206
+ })
207
+ },
208
+ options
209
+ )
210
+ );
211
+ };
212
+
213
+ var operationSelect = function operationSelect(classes, operations, operation, onChangeSelect) {
214
+ var options = operations.map(function (o) {
215
+ return _react2.default.createElement(
216
+ _MenuItem2.default,
217
+ { value: o.name, key: o.name },
218
+ _react2.default.createElement(
219
+ 'span',
220
+ { className: (0, _classnames2.default)(classes.txtOpt, 'option-sv-bar-operation') },
221
+ o.name
222
+ )
223
+ );
224
+ });
225
+
226
+ var selectedValue = operation.name || operations[0].name;
227
+
228
+ return _react2.default.createElement(
229
+ _FormControl2.default,
230
+ {
231
+ className: (0, _classnames2.default)(classes.fieldOpertaion),
232
+ variant: 'outlined'
233
+ },
234
+ _react2.default.createElement(
235
+ _InputLabel2.default,
236
+ { className: (0, _classnames2.default)(classes.selectLabel, 'select-sv-bar-label') },
237
+ 'Submit'
238
+ ),
239
+ _react2.default.createElement(
240
+ _Select2.default,
241
+ {
242
+ value: selectedValue,
243
+ onChange: onChangeSelect,
244
+ input: _react2.default.createElement(_OutlinedInput2.default, {
245
+ className: (0, _classnames2.default)(classes.selectInput, 'input-sv-bar-operation'),
246
+ labelWidth: 50
247
+ })
248
+ },
249
+ options
250
+ )
251
+ );
252
+ };
253
+
254
+ var selectOperation = function selectOperation(name, operations, updateOperationAct) {
255
+ var operation = false;
256
+ operations.forEach(function (o) {
257
+ if (o.name === name) {
258
+ operation = o;
259
+ }
260
+ });
261
+ updateOperationAct(operation);
262
+ };
263
+
264
+ var Submit = function Submit(_ref) {
265
+ var operations = _ref.operations,
266
+ classes = _ref.classes,
267
+ feature = _ref.feature,
268
+ forecast = _ref.forecast,
269
+ editorOnly = _ref.editorOnly,
270
+ hideSwitch = _ref.hideSwitch,
271
+ disabled = _ref.disabled,
272
+ isAscendSt = _ref.isAscendSt,
273
+ isIntensitySt = _ref.isIntensitySt,
274
+ operationSt = _ref.operationSt,
275
+ decimalSt = _ref.decimalSt,
276
+ isEmWaveSt = _ref.isEmWaveSt,
277
+ toggleIsAscendAct = _ref.toggleIsAscendAct,
278
+ toggleIsIntensityAct = _ref.toggleIsIntensityAct,
279
+ updateOperationAct = _ref.updateOperationAct,
280
+ updateDecimalAct = _ref.updateDecimalAct;
281
+
282
+ var onChangeSelect = function onChangeSelect(e) {
283
+ return selectOperation(e.target.value, operations, updateOperationAct);
284
+ };
285
+
286
+ if (!operations || operations.length === 0) return null;
287
+
288
+ return _react2.default.createElement(
289
+ 'span',
290
+ { className: classes.groupRightMost },
291
+ ascendSelect(classes, hideSwitch, isAscendSt, toggleIsAscendAct),
292
+ intensitySelect(classes, hideSwitch || !isEmWaveSt, isIntensitySt, toggleIsIntensityAct),
293
+ decimalSelect(classes, hideSwitch, decimalSt, updateDecimalAct),
294
+ editorOnly ? null : _react2.default.createElement(_r06_predict_btn2.default, {
295
+ feature: feature,
296
+ forecast: forecast
297
+ }),
298
+ operationSelect(classes, operations, operationSt, onChangeSelect),
299
+ _react2.default.createElement(_r05_submit_btn2.default, {
300
+ feature: feature,
301
+ isAscend: isAscendSt,
302
+ isIntensity: isIntensitySt,
303
+ operation: operationSt,
304
+ disabled: disabled
305
+ })
306
+ );
307
+ };
308
+
309
+ var mapStateToProps = function mapStateToProps(state, props) {
310
+ return (// eslint-disable-line
311
+ {
312
+ isEmWaveSt: _format2.default.isEmWaveLayout(state.layout),
313
+ isAscendSt: state.submit.isAscend,
314
+ isIntensitySt: state.submit.isIntensity,
315
+ decimalSt: state.submit.decimal,
316
+ operationSt: state.submit.operation
317
+ }
318
+ );
319
+ };
320
+
321
+ var mapDispatchToProps = function mapDispatchToProps(dispatch) {
322
+ return (0, _redux.bindActionCreators)({
323
+ toggleIsAscendAct: _submit.toggleIsAscend,
324
+ toggleIsIntensityAct: _submit.toggleIsIntensity,
325
+ updateOperationAct: _submit.updateOperation,
326
+ updateDecimalAct: _submit.updateDecimal
327
+ }, dispatch);
328
+ };
329
+
330
+ Submit.propTypes = {
331
+ classes: _propTypes2.default.object.isRequired,
332
+ feature: _propTypes2.default.object.isRequired,
333
+ forecast: _propTypes2.default.object.isRequired,
334
+ editorOnly: _propTypes2.default.bool.isRequired,
335
+ operations: _propTypes2.default.array.isRequired,
336
+ operationSt: _propTypes2.default.object.isRequired,
337
+ hideSwitch: _propTypes2.default.bool.isRequired,
338
+ disabled: _propTypes2.default.bool.isRequired,
339
+ isAscendSt: _propTypes2.default.bool.isRequired,
340
+ isIntensitySt: _propTypes2.default.bool.isRequired,
341
+ isEmWaveSt: _propTypes2.default.bool.isRequired,
342
+ decimalSt: _propTypes2.default.number.isRequired,
343
+ toggleIsAscendAct: _propTypes2.default.func.isRequired,
344
+ toggleIsIntensityAct: _propTypes2.default.func.isRequired,
345
+ updateOperationAct: _propTypes2.default.func.isRequired,
346
+ updateDecimalAct: _propTypes2.default.func.isRequired
347
+ };
348
+
349
+ exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _styles.withStyles)(styles))(Submit);
@@ -0,0 +1,147 @@
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 _reactRedux = require('react-redux');
16
+
17
+ var _classnames = require('classnames');
18
+
19
+ var _classnames2 = _interopRequireDefault(_classnames);
20
+
21
+ var _redux = require('redux');
22
+
23
+ var _Tooltip = require('@material-ui/core/Tooltip');
24
+
25
+ var _Tooltip2 = _interopRequireDefault(_Tooltip);
26
+
27
+ var _PlayCircleOutline = require('@material-ui/icons/PlayCircleOutline');
28
+
29
+ var _PlayCircleOutline2 = _interopRequireDefault(_PlayCircleOutline);
30
+
31
+ var _styles = require('@material-ui/core/styles');
32
+
33
+ var _chem = require('../../helpers/chem');
34
+
35
+ var _common = require('./common');
36
+
37
+ var _extractPeaksEdit = require('../../helpers/extractPeaksEdit');
38
+
39
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
40
+
41
+ var styles = function styles() {
42
+ return Object.assign({}, _common.commonStyle);
43
+ };
44
+
45
+ var onClickCb = function onClickCb(operation, peaksEdit, isAscend, isIntensity, scan, thres, layoutSt, shiftSt, analysis, decimalSt, integrationSt, multiplicitySt, aucValues) {
46
+ return function () {
47
+ operation({
48
+ peaks: peaksEdit,
49
+ layout: layoutSt,
50
+ shift: shiftSt,
51
+ scan: scan,
52
+ thres: thres,
53
+ isAscend: isAscend,
54
+ isIntensity: isIntensity,
55
+ analysis: analysis,
56
+ decimal: decimalSt,
57
+ integration: integrationSt,
58
+ multiplicity: multiplicitySt,
59
+ aucValues: aucValues
60
+ });
61
+ };
62
+ };
63
+
64
+ var BtnSubmit = function BtnSubmit(_ref) {
65
+ var classes = _ref.classes,
66
+ operation = _ref.operation,
67
+ feature = _ref.feature,
68
+ isAscend = _ref.isAscend,
69
+ isIntensity = _ref.isIntensity,
70
+ editPeakSt = _ref.editPeakSt,
71
+ thresSt = _ref.thresSt,
72
+ layoutSt = _ref.layoutSt,
73
+ shiftSt = _ref.shiftSt,
74
+ scanSt = _ref.scanSt,
75
+ forecastSt = _ref.forecastSt,
76
+ decimalSt = _ref.decimalSt,
77
+ integrationSt = _ref.integrationSt,
78
+ multiplicitySt = _ref.multiplicitySt,
79
+ allIntegrationSt = _ref.allIntegrationSt;
80
+
81
+ var peaksEdit = (0, _extractPeaksEdit.extractPeaksEdit)(feature, editPeakSt, thresSt, shiftSt, layoutSt);
82
+ // const disBtn = peaksEdit.length === 0 || statusSt.btnSubmit || disabled;
83
+ var scan = (0, _chem.Convert2Scan)(feature, scanSt);
84
+ var thres = (0, _chem.Convert2Thres)(feature, thresSt);
85
+ var aucValues = (0, _extractPeaksEdit.extractAreaUnderCurve)(allIntegrationSt, integrationSt, layoutSt);
86
+
87
+ if (!operation) return null;
88
+
89
+ return _react2.default.createElement(
90
+ _Tooltip2.default,
91
+ { title: _react2.default.createElement(
92
+ 'span',
93
+ { className: 'txt-sv-tp' },
94
+ 'Submit'
95
+ ) },
96
+ _react2.default.createElement(
97
+ _common.MuButton,
98
+ {
99
+ className: (0, _classnames2.default)('btn-sv-bar-submit'),
100
+ color: 'primary',
101
+ onClick: onClickCb(operation.value, peaksEdit, isAscend, isIntensity, scan, thres, layoutSt, shiftSt, forecastSt.predictions, decimalSt, integrationSt, multiplicitySt, allIntegrationSt, aucValues)
102
+ },
103
+ _react2.default.createElement(_PlayCircleOutline2.default, { className: classes.icon })
104
+ )
105
+ );
106
+ };
107
+
108
+ var mapStateToProps = function mapStateToProps(state, props) {
109
+ return (// eslint-disable-line
110
+ {
111
+ editPeakSt: state.editPeak.present,
112
+ thresSt: state.threshold,
113
+ layoutSt: state.layout,
114
+ shiftSt: state.shift,
115
+ scanSt: state.scan,
116
+ forecastSt: state.forecast,
117
+ decimalSt: state.submit.decimal,
118
+ integrationSt: state.integration.present,
119
+ multiplicitySt: state.multiplicity.present,
120
+ allIntegrationSt: state.integration.past.concat(state.integration.present)
121
+ }
122
+ );
123
+ };
124
+
125
+ var mapDispatchToProps = function mapDispatchToProps(dispatch) {
126
+ return (0, _redux.bindActionCreators)({}, dispatch);
127
+ };
128
+
129
+ BtnSubmit.propTypes = {
130
+ classes: _propTypes2.default.object.isRequired,
131
+ feature: _propTypes2.default.object.isRequired,
132
+ isAscend: _propTypes2.default.bool.isRequired,
133
+ isIntensity: _propTypes2.default.bool.isRequired,
134
+ operation: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]).isRequired,
135
+ editPeakSt: _propTypes2.default.object.isRequired,
136
+ thresSt: _propTypes2.default.object.isRequired,
137
+ layoutSt: _propTypes2.default.string.isRequired,
138
+ shiftSt: _propTypes2.default.object.isRequired,
139
+ scanSt: _propTypes2.default.object.isRequired,
140
+ forecastSt: _propTypes2.default.object.isRequired,
141
+ decimalSt: _propTypes2.default.number.isRequired,
142
+ integrationSt: _propTypes2.default.object.isRequired,
143
+ multiplicitySt: _propTypes2.default.object.isRequired,
144
+ allIntegrationSt: _propTypes2.default.object.isRequired
145
+ };
146
+
147
+ exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _styles.withStyles)(styles))(BtnSubmit);