@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.
- package/LICENSE +662 -0
- package/README.md +37 -0
- package/dist/actions/edit_peak.js +25 -0
- package/dist/actions/forecast.js +41 -0
- package/dist/actions/integration.js +33 -0
- package/dist/actions/jcamp.js +41 -0
- package/dist/actions/layout.js +17 -0
- package/dist/actions/manager.js +49 -0
- package/dist/actions/meta.js +17 -0
- package/dist/actions/multiplicity.js +57 -0
- package/dist/actions/scan.js +33 -0
- package/dist/actions/shift.js +25 -0
- package/dist/actions/status.js +33 -0
- package/dist/actions/submit.js +41 -0
- package/dist/actions/threshold.js +33 -0
- package/dist/actions/ui.js +50 -0
- package/dist/app.js +125 -0
- package/dist/components/cmd_bar/01_viewer.js +133 -0
- package/dist/components/cmd_bar/02_zoom.js +119 -0
- package/dist/components/cmd_bar/03_peak.js +176 -0
- package/dist/components/cmd_bar/04_integration.js +273 -0
- package/dist/components/cmd_bar/05_multiplicity.js +228 -0
- package/dist/components/cmd_bar/06_undo_redo.js +137 -0
- package/dist/components/cmd_bar/common.js +104 -0
- package/dist/components/cmd_bar/index.js +113 -0
- package/dist/components/cmd_bar/r01_layout.js +351 -0
- package/dist/components/cmd_bar/r02_scan.js +226 -0
- package/dist/components/cmd_bar/r03_threshold.js +209 -0
- package/dist/components/cmd_bar/r04_submit.js +349 -0
- package/dist/components/cmd_bar/r05_submit_btn.js +147 -0
- package/dist/components/cmd_bar/r06_predict_btn.js +307 -0
- package/dist/components/cmd_bar/tri_btn.js +202 -0
- package/dist/components/common/chem.js +115 -0
- package/dist/components/common/comps.js +29 -0
- package/dist/components/common/draw.js +41 -0
- package/dist/components/d3_line/index.js +236 -0
- package/dist/components/d3_line/line_focus.js +765 -0
- package/dist/components/d3_rect/index.js +200 -0
- package/dist/components/d3_rect/rect_focus.js +301 -0
- package/dist/components/forecast/comps.js +337 -0
- package/dist/components/forecast/ir_comps.js +224 -0
- package/dist/components/forecast/ir_viewer.js +172 -0
- package/dist/components/forecast/nmr_comps.js +253 -0
- package/dist/components/forecast/nmr_viewer.js +170 -0
- package/dist/components/forecast/section_loading.js +95 -0
- package/dist/components/forecast_viewer.js +190 -0
- package/dist/components/panel/compare.js +370 -0
- package/dist/components/panel/index.js +191 -0
- package/dist/components/panel/info.js +335 -0
- package/dist/components/panel/multiplicity.js +405 -0
- package/dist/components/panel/multiplicity_coupling.js +195 -0
- package/dist/components/panel/multiplicity_select.js +114 -0
- package/dist/components/panel/peaks.js +296 -0
- package/dist/constants/action_type.js +140 -0
- package/dist/constants/list_layout.js +23 -0
- package/dist/constants/list_shift.js +480 -0
- package/dist/constants/list_ui.js +33 -0
- package/dist/fn.js +31 -0
- package/dist/helpers/brush.js +109 -0
- package/dist/helpers/calc.js +10 -0
- package/dist/helpers/carbonFeatures.js +47 -0
- package/dist/helpers/cfg.js +89 -0
- package/dist/helpers/chem.js +594 -0
- package/dist/helpers/compass.js +91 -0
- package/dist/helpers/converter.js +74 -0
- package/dist/helpers/extractParams.js +77 -0
- package/dist/helpers/extractPeaksEdit.js +69 -0
- package/dist/helpers/focus.js +15 -0
- package/dist/helpers/format.js +403 -0
- package/dist/helpers/init.js +80 -0
- package/dist/helpers/integration.js +30 -0
- package/dist/helpers/mount.js +112 -0
- package/dist/helpers/multiplicity.js +44 -0
- package/dist/helpers/multiplicity_calc.js +117 -0
- package/dist/helpers/multiplicity_complat.js +126 -0
- package/dist/helpers/multiplicity_manual.js +94 -0
- package/dist/helpers/multiplicity_verify_basic.js +196 -0
- package/dist/helpers/shift.js +48 -0
- package/dist/helpers/zoom.js +32 -0
- package/dist/index.js +705 -0
- package/dist/layer_content.js +125 -0
- package/dist/layer_init.js +231 -0
- package/dist/layer_prism.js +186 -0
- package/dist/reducers/index.js +89 -0
- package/dist/reducers/reducer_edit_peak.js +111 -0
- package/dist/reducers/reducer_forecast.js +113 -0
- package/dist/reducers/reducer_integration.js +136 -0
- package/dist/reducers/reducer_jcamp.js +74 -0
- package/dist/reducers/reducer_layout.js +27 -0
- package/dist/reducers/reducer_manager.js +20 -0
- package/dist/reducers/reducer_meta.js +30 -0
- package/dist/reducers/reducer_multiplicity.js +131 -0
- package/dist/reducers/reducer_scan.js +55 -0
- package/dist/reducers/reducer_shift.js +99 -0
- package/dist/reducers/reducer_simulation.js +30 -0
- package/dist/reducers/reducer_status.js +41 -0
- package/dist/reducers/reducer_submit.js +54 -0
- package/dist/reducers/reducer_threshold.js +34 -0
- package/dist/reducers/reducer_ui.js +46 -0
- package/dist/reducers/undo_redo_config.js +24 -0
- package/dist/sagas/index.js +50 -0
- package/dist/sagas/saga_edit_peak.js +84 -0
- package/dist/sagas/saga_manager.js +116 -0
- package/dist/sagas/saga_meta.js +46 -0
- package/dist/sagas/saga_multiplicity.js +387 -0
- package/dist/sagas/saga_ui.js +392 -0
- package/dist/third_party/jAnalyzer.js +596 -0
- package/dist/third_party/peakInterval.js +107 -0
- package/package.json +77 -0
|
@@ -0,0 +1,307 @@
|
|
|
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 _GpsFixedOutlined = require('@material-ui/icons/GpsFixedOutlined');
|
|
28
|
+
|
|
29
|
+
var _GpsFixedOutlined2 = _interopRequireDefault(_GpsFixedOutlined);
|
|
30
|
+
|
|
31
|
+
var _HelpOutlineOutlined = require('@material-ui/icons/HelpOutlineOutlined');
|
|
32
|
+
|
|
33
|
+
var _HelpOutlineOutlined2 = _interopRequireDefault(_HelpOutlineOutlined);
|
|
34
|
+
|
|
35
|
+
var _Button = require('@material-ui/core/Button');
|
|
36
|
+
|
|
37
|
+
var _Button2 = _interopRequireDefault(_Button);
|
|
38
|
+
|
|
39
|
+
var _styles = require('@material-ui/core/styles');
|
|
40
|
+
|
|
41
|
+
var _common = require('./common');
|
|
42
|
+
|
|
43
|
+
var _format = require('../../helpers/format');
|
|
44
|
+
|
|
45
|
+
var _format2 = _interopRequireDefault(_format);
|
|
46
|
+
|
|
47
|
+
var _carbonFeatures = require('../../helpers/carbonFeatures');
|
|
48
|
+
|
|
49
|
+
var _extractPeaksEdit = require('../../helpers/extractPeaksEdit');
|
|
50
|
+
|
|
51
|
+
var _ui = require('../../actions/ui');
|
|
52
|
+
|
|
53
|
+
var _list_ui = require('../../constants/list_ui');
|
|
54
|
+
|
|
55
|
+
var _chem = require('../../helpers/chem');
|
|
56
|
+
|
|
57
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
58
|
+
|
|
59
|
+
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
|
|
60
|
+
|
|
61
|
+
var styles = function styles() {
|
|
62
|
+
return Object.assign({}, _common.commonStyle, {
|
|
63
|
+
tTxt: {
|
|
64
|
+
fontSize: '0.8rem',
|
|
65
|
+
fontFamily: 'Helvetica',
|
|
66
|
+
marginRight: 5
|
|
67
|
+
},
|
|
68
|
+
btnWidthUnknown: {
|
|
69
|
+
minWidth: 30,
|
|
70
|
+
width: 30
|
|
71
|
+
},
|
|
72
|
+
btnWidthIr: {
|
|
73
|
+
minWidth: 30,
|
|
74
|
+
width: 30
|
|
75
|
+
},
|
|
76
|
+
btnWidthNmr: {
|
|
77
|
+
minWidth: 80,
|
|
78
|
+
width: 80
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
var MuPredictButton = (0, _styles.withStyles)({
|
|
84
|
+
root: {
|
|
85
|
+
border: '1px solid #ccc',
|
|
86
|
+
borderRadius: 4,
|
|
87
|
+
fontFamily: 'Helvetica',
|
|
88
|
+
fontSize: 20,
|
|
89
|
+
height: 30,
|
|
90
|
+
lineHeight: '20px',
|
|
91
|
+
padding: 0
|
|
92
|
+
}
|
|
93
|
+
})(_Button2.default);
|
|
94
|
+
|
|
95
|
+
var onClickFail = function onClickFail(layoutSt, simuCount, realCount) {
|
|
96
|
+
var feature = _format2.default.is13CLayout(layoutSt) ? 'peak' : 'multiplet';
|
|
97
|
+
|
|
98
|
+
return function () {
|
|
99
|
+
return alert('Selected ' + feature + ' count (' + realCount + ') must be larger than 0, and must be eqal or less than simulated count (' + simuCount + ').');
|
|
100
|
+
}; // eslint-disable-line
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
var onClickReady = function onClickReady(forecast, peaksEdit, layoutSt, scan, shiftSt, thres, analysis, integrationSt, multiplicitySt, setUiViewerTypeAct) {
|
|
104
|
+
var btnCb = forecast.btnCb;
|
|
105
|
+
|
|
106
|
+
if (!btnCb) {
|
|
107
|
+
return function () {
|
|
108
|
+
return alert('[Developer Warning] You need to implement btnCb in forecast!');
|
|
109
|
+
}; // eslint-disable-line
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return function () {
|
|
113
|
+
setUiViewerTypeAct(_list_ui.LIST_UI_VIEWER_TYPE.ANALYSIS);
|
|
114
|
+
|
|
115
|
+
return btnCb({
|
|
116
|
+
peaks: peaksEdit,
|
|
117
|
+
layout: layoutSt,
|
|
118
|
+
scan: scan,
|
|
119
|
+
thres: thres,
|
|
120
|
+
analysis: analysis,
|
|
121
|
+
integration: integrationSt,
|
|
122
|
+
multiplicity: multiplicitySt,
|
|
123
|
+
shift: shiftSt
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
var onClicUnknown = function onClicUnknown(feature, forecast, peaksEdit, layoutSt, scan, shiftSt, thres, analysis, integrationSt, multiplicitySt) {
|
|
129
|
+
var refreshCb = forecast.refreshCb;
|
|
130
|
+
|
|
131
|
+
if (!refreshCb) {
|
|
132
|
+
return function () {
|
|
133
|
+
return alert('[Developer Warning] You need to implement refreshCb in forecast!');
|
|
134
|
+
}; // eslint-disable-line
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return function () {
|
|
138
|
+
return refreshCb({
|
|
139
|
+
peaks: peaksEdit,
|
|
140
|
+
layout: layoutSt,
|
|
141
|
+
scan: scan,
|
|
142
|
+
shift: shiftSt,
|
|
143
|
+
thres: thres,
|
|
144
|
+
analysis: analysis,
|
|
145
|
+
integration: integrationSt,
|
|
146
|
+
multiplicity: multiplicitySt
|
|
147
|
+
});
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
var counterText = function counterText(classes, isIr, realCount, uniqCount, simuCount) {
|
|
152
|
+
return isIr ? null : _react2.default.createElement(
|
|
153
|
+
'span',
|
|
154
|
+
{ className: (0, _classnames2.default)(classes.tTxt, 'txt-sv-panel-txt') },
|
|
155
|
+
realCount + '/' + uniqCount + '/' + simuCount
|
|
156
|
+
);
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
var renderBtnPredict = function renderBtnPredict(classes, isIr, realCount, uniqCount, simuCount, color, btnWidthCls, onClick) {
|
|
160
|
+
return _react2.default.createElement(
|
|
161
|
+
_Tooltip2.default,
|
|
162
|
+
{
|
|
163
|
+
title: _react2.default.createElement(
|
|
164
|
+
'div',
|
|
165
|
+
null,
|
|
166
|
+
_react2.default.createElement(
|
|
167
|
+
'span',
|
|
168
|
+
{ className: 'txt-sv-tp' },
|
|
169
|
+
'Predict'
|
|
170
|
+
),
|
|
171
|
+
_react2.default.createElement('br', null),
|
|
172
|
+
_react2.default.createElement(
|
|
173
|
+
'span',
|
|
174
|
+
{ className: 'txt-sv-tp' },
|
|
175
|
+
'- Selected features must be eqal or less than simulated features.'
|
|
176
|
+
)
|
|
177
|
+
)
|
|
178
|
+
},
|
|
179
|
+
_react2.default.createElement(
|
|
180
|
+
MuPredictButton,
|
|
181
|
+
{
|
|
182
|
+
className: (0, _classnames2.default)('btn-sv-bar-submit', btnWidthCls),
|
|
183
|
+
style: { color: color },
|
|
184
|
+
onClick: onClick
|
|
185
|
+
},
|
|
186
|
+
counterText(classes, isIr, realCount, uniqCount, simuCount),
|
|
187
|
+
_react2.default.createElement(_GpsFixedOutlined2.default, { className: classes.icon })
|
|
188
|
+
)
|
|
189
|
+
);
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
var renderBtnUnknown = function renderBtnUnknown(classes, onClick) {
|
|
193
|
+
return _react2.default.createElement(
|
|
194
|
+
_Tooltip2.default,
|
|
195
|
+
{
|
|
196
|
+
title: _react2.default.createElement(
|
|
197
|
+
'div',
|
|
198
|
+
null,
|
|
199
|
+
_react2.default.createElement(
|
|
200
|
+
'span',
|
|
201
|
+
{ className: 'txt-sv-tp' },
|
|
202
|
+
'Refresh Simulation'
|
|
203
|
+
),
|
|
204
|
+
_react2.default.createElement('br', null),
|
|
205
|
+
_react2.default.createElement(
|
|
206
|
+
'span',
|
|
207
|
+
{ className: 'txt-sv-tp' },
|
|
208
|
+
'- Simulation must be refreshed before making a prediction.'
|
|
209
|
+
),
|
|
210
|
+
_react2.default.createElement('br', null),
|
|
211
|
+
_react2.default.createElement(
|
|
212
|
+
'span',
|
|
213
|
+
{ className: 'txt-sv-tp' },
|
|
214
|
+
'- If you continue to see this button after clicking it, the server is not ready. Please wait for a while.'
|
|
215
|
+
)
|
|
216
|
+
)
|
|
217
|
+
},
|
|
218
|
+
_react2.default.createElement(
|
|
219
|
+
MuPredictButton,
|
|
220
|
+
{
|
|
221
|
+
className: (0, _classnames2.default)('btn-sv-bar-submit', classes.btnWidthUnknown),
|
|
222
|
+
style: { color: 'orange' },
|
|
223
|
+
onClick: onClick
|
|
224
|
+
},
|
|
225
|
+
_react2.default.createElement(_HelpOutlineOutlined2.default, { className: classes.icon })
|
|
226
|
+
)
|
|
227
|
+
);
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
var BtnPredict = function BtnPredict(_ref) {
|
|
231
|
+
var classes = _ref.classes,
|
|
232
|
+
feature = _ref.feature,
|
|
233
|
+
forecast = _ref.forecast,
|
|
234
|
+
layoutSt = _ref.layoutSt,
|
|
235
|
+
simulationSt = _ref.simulationSt,
|
|
236
|
+
editPeakSt = _ref.editPeakSt,
|
|
237
|
+
scanSt = _ref.scanSt,
|
|
238
|
+
shiftSt = _ref.shiftSt,
|
|
239
|
+
thresSt = _ref.thresSt,
|
|
240
|
+
integrationSt = _ref.integrationSt,
|
|
241
|
+
multiplicitySt = _ref.multiplicitySt,
|
|
242
|
+
setUiViewerTypeAct = _ref.setUiViewerTypeAct;
|
|
243
|
+
|
|
244
|
+
var is13Cor1H = _format2.default.is13CLayout(layoutSt) || _format2.default.is1HLayout(layoutSt);
|
|
245
|
+
var isIr = _format2.default.isIrLayout(layoutSt);
|
|
246
|
+
if (!(is13Cor1H || isIr)) return null;
|
|
247
|
+
|
|
248
|
+
var oriPeaksEdit = (0, _extractPeaksEdit.extractPeaksEdit)(feature, editPeakSt, thresSt, shiftSt, layoutSt);
|
|
249
|
+
var peaksEdit = _format2.default.rmShiftFromPeaks(oriPeaksEdit, shiftSt);
|
|
250
|
+
var scan = (0, _chem.Convert2Scan)(feature, scanSt);
|
|
251
|
+
var thres = (0, _chem.Convert2Thres)(feature, thresSt);
|
|
252
|
+
var simuCount = simulationSt.nmrSimPeaks.length;
|
|
253
|
+
var uniqCount = [].concat(_toConsumableArray(new Set(simulationSt.nmrSimPeaks))).length;
|
|
254
|
+
var realCount = _format2.default.is13CLayout(layoutSt) ? (0, _carbonFeatures.carbonFeatures)(peaksEdit, multiplicitySt).length : multiplicitySt.stack.length;
|
|
255
|
+
|
|
256
|
+
if (is13Cor1H && simuCount === 0) {
|
|
257
|
+
var onClickUnknownCb = onClicUnknown(feature, forecast, peaksEdit, layoutSt, scan, shiftSt, thres, forecast.predictions, integrationSt, multiplicitySt);
|
|
258
|
+
return renderBtnUnknown(classes, onClickUnknownCb);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
var predictable = isIr || simuCount >= realCount && realCount > 0;
|
|
262
|
+
var color = predictable ? 'green' : 'red';
|
|
263
|
+
|
|
264
|
+
var onClick = predictable ? onClickReady(forecast, peaksEdit, layoutSt, scan, shiftSt, thres, forecast.predictions, integrationSt, multiplicitySt, setUiViewerTypeAct) : onClickFail(layoutSt, simuCount, realCount);
|
|
265
|
+
|
|
266
|
+
var btnWidthCls = isIr ? classes.btnWidthIr : classes.btnWidthNmr;
|
|
267
|
+
|
|
268
|
+
return renderBtnPredict(classes, isIr, realCount, uniqCount, simuCount, color, btnWidthCls, onClick);
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
var mapStateToProps = function mapStateToProps(state, props) {
|
|
272
|
+
return (// eslint-disable-line
|
|
273
|
+
{
|
|
274
|
+
layoutSt: state.layout,
|
|
275
|
+
simulationSt: state.simulation,
|
|
276
|
+
editPeakSt: state.editPeak.present,
|
|
277
|
+
scanSt: state.scan,
|
|
278
|
+
shiftSt: state.shift,
|
|
279
|
+
thresSt: state.threshold,
|
|
280
|
+
integrationSt: state.integration.present,
|
|
281
|
+
multiplicitySt: state.multiplicity.present
|
|
282
|
+
}
|
|
283
|
+
);
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
var mapDispatchToProps = function mapDispatchToProps(dispatch) {
|
|
287
|
+
return (0, _redux.bindActionCreators)({
|
|
288
|
+
setUiViewerTypeAct: _ui.setUiViewerType
|
|
289
|
+
}, dispatch);
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
BtnPredict.propTypes = {
|
|
293
|
+
classes: _propTypes2.default.object.isRequired,
|
|
294
|
+
feature: _propTypes2.default.object.isRequired,
|
|
295
|
+
forecast: _propTypes2.default.object.isRequired,
|
|
296
|
+
layoutSt: _propTypes2.default.string.isRequired,
|
|
297
|
+
simulationSt: _propTypes2.default.array.isRequired,
|
|
298
|
+
editPeakSt: _propTypes2.default.object.isRequired,
|
|
299
|
+
scanSt: _propTypes2.default.object.isRequired,
|
|
300
|
+
shiftSt: _propTypes2.default.object.isRequired,
|
|
301
|
+
thresSt: _propTypes2.default.object.isRequired,
|
|
302
|
+
integrationSt: _propTypes2.default.object.isRequired,
|
|
303
|
+
multiplicitySt: _propTypes2.default.object.isRequired,
|
|
304
|
+
setUiViewerTypeAct: _propTypes2.default.func.isRequired
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _styles.withStyles)(styles))(BtnPredict);
|
|
@@ -0,0 +1,202 @@
|
|
|
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 _reactRedux = require('react-redux');
|
|
14
|
+
|
|
15
|
+
var _redux = require('redux');
|
|
16
|
+
|
|
17
|
+
var _classnames = require('classnames');
|
|
18
|
+
|
|
19
|
+
var _classnames2 = _interopRequireDefault(_classnames);
|
|
20
|
+
|
|
21
|
+
var _propTypes = require('prop-types');
|
|
22
|
+
|
|
23
|
+
var _propTypes2 = _interopRequireDefault(_propTypes);
|
|
24
|
+
|
|
25
|
+
var _styles = require('@material-ui/core/styles');
|
|
26
|
+
|
|
27
|
+
var _Tooltip = require('@material-ui/core/Tooltip');
|
|
28
|
+
|
|
29
|
+
var _Tooltip2 = _interopRequireDefault(_Tooltip);
|
|
30
|
+
|
|
31
|
+
var _cfg = require('../../helpers/cfg');
|
|
32
|
+
|
|
33
|
+
var _cfg2 = _interopRequireDefault(_cfg);
|
|
34
|
+
|
|
35
|
+
var _common = require('./common');
|
|
36
|
+
|
|
37
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
38
|
+
|
|
39
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
40
|
+
|
|
41
|
+
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; }
|
|
42
|
+
|
|
43
|
+
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; }
|
|
44
|
+
|
|
45
|
+
var styles = function styles() {
|
|
46
|
+
return Object.assign({
|
|
47
|
+
btnYes: {
|
|
48
|
+
color: 'green'
|
|
49
|
+
},
|
|
50
|
+
btnNo: {
|
|
51
|
+
color: 'red'
|
|
52
|
+
},
|
|
53
|
+
btnTxtConfirm: {
|
|
54
|
+
fontFamily: 'Helvetica',
|
|
55
|
+
fontSize: 12
|
|
56
|
+
}
|
|
57
|
+
}, _common.commonStyle);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
var TriBtn = function (_React$Component) {
|
|
61
|
+
_inherits(TriBtn, _React$Component);
|
|
62
|
+
|
|
63
|
+
function TriBtn(props) {
|
|
64
|
+
_classCallCheck(this, TriBtn);
|
|
65
|
+
|
|
66
|
+
var _this = _possibleConstructorReturn(this, (TriBtn.__proto__ || Object.getPrototypeOf(TriBtn)).call(this, props));
|
|
67
|
+
|
|
68
|
+
_this.state = {
|
|
69
|
+
toggled: false
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
_this.onToggle = _this.onToggle.bind(_this);
|
|
73
|
+
_this.renderStageOne = _this.renderStageOne.bind(_this);
|
|
74
|
+
_this.renderStageTwo = _this.renderStageTwo.bind(_this);
|
|
75
|
+
return _this;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
_createClass(TriBtn, [{
|
|
79
|
+
key: 'onToggle',
|
|
80
|
+
value: function onToggle(e) {
|
|
81
|
+
e.stopPropagation();
|
|
82
|
+
e.preventDefault();
|
|
83
|
+
var toggled = this.state.toggled;
|
|
84
|
+
|
|
85
|
+
this.setState({ toggled: !toggled });
|
|
86
|
+
}
|
|
87
|
+
}, {
|
|
88
|
+
key: 'renderStageOne',
|
|
89
|
+
value: function renderStageOne() {
|
|
90
|
+
var _props = this.props,
|
|
91
|
+
content = _props.content,
|
|
92
|
+
layoutSt = _props.layoutSt,
|
|
93
|
+
children = _props.children;
|
|
94
|
+
var tp = content.tp;
|
|
95
|
+
|
|
96
|
+
var title = _react2.default.createElement(
|
|
97
|
+
'span',
|
|
98
|
+
{ className: 'txt-sv-tp' },
|
|
99
|
+
tp
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
return _react2.default.createElement(
|
|
103
|
+
_Tooltip2.default,
|
|
104
|
+
{ title: title },
|
|
105
|
+
_react2.default.createElement(
|
|
106
|
+
'span',
|
|
107
|
+
null,
|
|
108
|
+
_react2.default.createElement(
|
|
109
|
+
_common.MuButton,
|
|
110
|
+
{
|
|
111
|
+
className: (0, _classnames2.default)('btn-sv-bar-one'),
|
|
112
|
+
disabled: _cfg2.default.btnCmdMpy(layoutSt) && _cfg2.default.btnCmdIntg(layoutSt),
|
|
113
|
+
onClick: this.onToggle
|
|
114
|
+
},
|
|
115
|
+
children
|
|
116
|
+
)
|
|
117
|
+
)
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
}, {
|
|
121
|
+
key: 'renderStageTwo',
|
|
122
|
+
value: function renderStageTwo() {
|
|
123
|
+
var _this2 = this;
|
|
124
|
+
|
|
125
|
+
var _props2 = this.props,
|
|
126
|
+
classes = _props2.classes,
|
|
127
|
+
layoutSt = _props2.layoutSt,
|
|
128
|
+
cb = _props2.cb;
|
|
129
|
+
|
|
130
|
+
var onExec = function onExec(e) {
|
|
131
|
+
cb();
|
|
132
|
+
_this2.onToggle(e);
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
return _react2.default.createElement(
|
|
136
|
+
'span',
|
|
137
|
+
{ disabled: _cfg2.default.btnCmdMpy(layoutSt) && _cfg2.default.btnCmdIntg(layoutSt) },
|
|
138
|
+
_react2.default.createElement(
|
|
139
|
+
'span',
|
|
140
|
+
{ className: (0, _classnames2.default)(classes.txtLabel, 'txt-sv-bar-desc') },
|
|
141
|
+
'Delete ALL?'
|
|
142
|
+
),
|
|
143
|
+
_react2.default.createElement(
|
|
144
|
+
_common.MuButton,
|
|
145
|
+
{
|
|
146
|
+
className: (0, _classnames2.default)('btn-sv-bar-yes'),
|
|
147
|
+
onClick: onExec
|
|
148
|
+
},
|
|
149
|
+
_react2.default.createElement(
|
|
150
|
+
'span',
|
|
151
|
+
{ className: (0, _classnames2.default)(classes.txt, classes.btnYes, 'txt-sv-bar-yes') },
|
|
152
|
+
'Y'
|
|
153
|
+
)
|
|
154
|
+
),
|
|
155
|
+
_react2.default.createElement(
|
|
156
|
+
_common.MuButton,
|
|
157
|
+
{
|
|
158
|
+
className: (0, _classnames2.default)('btn-sv-bar-no'),
|
|
159
|
+
onClick: this.onToggle
|
|
160
|
+
},
|
|
161
|
+
_react2.default.createElement(
|
|
162
|
+
'span',
|
|
163
|
+
{ className: (0, _classnames2.default)(classes.txt, classes.btnNo, 'txt-sv-bar-no') },
|
|
164
|
+
'N'
|
|
165
|
+
)
|
|
166
|
+
)
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
}, {
|
|
170
|
+
key: 'render',
|
|
171
|
+
value: function render() {
|
|
172
|
+
var toggled = this.state.toggled;
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
return !toggled ? this.renderStageOne() : this.renderStageTwo();
|
|
176
|
+
}
|
|
177
|
+
}]);
|
|
178
|
+
|
|
179
|
+
return TriBtn;
|
|
180
|
+
}(_react2.default.Component);
|
|
181
|
+
|
|
182
|
+
var mapStateToProps = function mapStateToProps(state, props) {
|
|
183
|
+
return (// eslint-disable-line
|
|
184
|
+
{
|
|
185
|
+
layoutSt: state.layout
|
|
186
|
+
}
|
|
187
|
+
);
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
var mapDispatchToProps = function mapDispatchToProps(dispatch) {
|
|
191
|
+
return (0, _redux.bindActionCreators)({}, dispatch);
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
TriBtn.propTypes = {
|
|
195
|
+
classes: _propTypes2.default.object.isRequired,
|
|
196
|
+
layoutSt: _propTypes2.default.string.isRequired,
|
|
197
|
+
content: _propTypes2.default.object.isRequired,
|
|
198
|
+
cb: _propTypes2.default.func.isRequired,
|
|
199
|
+
children: _propTypes2.default.node.isRequired
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(TriBtn));
|