@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,403 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _spectraOps;
|
|
8
|
+
|
|
9
|
+
var _converter = require('./converter');
|
|
10
|
+
|
|
11
|
+
var _list_layout = require('../constants/list_layout');
|
|
12
|
+
|
|
13
|
+
var _multiplicity_calc = require('./multiplicity_calc');
|
|
14
|
+
|
|
15
|
+
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); } }
|
|
16
|
+
|
|
17
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
18
|
+
|
|
19
|
+
var spectraDigit = function spectraDigit(layout) {
|
|
20
|
+
switch (layout) {
|
|
21
|
+
case _list_layout.LIST_LAYOUT.IR:
|
|
22
|
+
case _list_layout.LIST_LAYOUT.RAMAN:
|
|
23
|
+
case _list_layout.LIST_LAYOUT.UVVIS:
|
|
24
|
+
case _list_layout.LIST_LAYOUT.HPLC_UVVIS:
|
|
25
|
+
case _list_layout.LIST_LAYOUT.TGA:
|
|
26
|
+
case _list_layout.LIST_LAYOUT.XRD:
|
|
27
|
+
case _list_layout.LIST_LAYOUT.MS:
|
|
28
|
+
return 0;
|
|
29
|
+
case _list_layout.LIST_LAYOUT.C13:
|
|
30
|
+
return 1;
|
|
31
|
+
case _list_layout.LIST_LAYOUT.H1:
|
|
32
|
+
case _list_layout.LIST_LAYOUT.F19:
|
|
33
|
+
case _list_layout.LIST_LAYOUT.P31:
|
|
34
|
+
case _list_layout.LIST_LAYOUT.N15:
|
|
35
|
+
case _list_layout.LIST_LAYOUT.Si29:
|
|
36
|
+
case _list_layout.LIST_LAYOUT.PLAIN:
|
|
37
|
+
default:
|
|
38
|
+
return 2;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var fixDigit = function fixDigit(input, precision) {
|
|
43
|
+
var output = input || 0.0;
|
|
44
|
+
return output.toFixed(precision);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
var buildData = function buildData(entity) {
|
|
48
|
+
if (!entity) return { isExist: false };
|
|
49
|
+
var sp = entity && entity.spectrum;
|
|
50
|
+
var xLabel = sp ? 'X (' + sp.xUnit + ')' : '';
|
|
51
|
+
var yLabel = sp ? 'Y (' + sp.yUnit + ')' : '';
|
|
52
|
+
return {
|
|
53
|
+
entity: entity, xLabel: xLabel, yLabel: yLabel, isExist: true
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
var toPeakStr = function toPeakStr(peaks) {
|
|
58
|
+
var arr = peaks.map(function (p) {
|
|
59
|
+
return p.x + ',' + p.y;
|
|
60
|
+
});
|
|
61
|
+
var str = arr.join('#');
|
|
62
|
+
return str;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
var spectraOps = (_spectraOps = {}, _defineProperty(_spectraOps, _list_layout.LIST_LAYOUT.PLAIN, { head: '', tail: '.' }), _defineProperty(_spectraOps, _list_layout.LIST_LAYOUT.H1, { head: '1H', tail: '.' }), _defineProperty(_spectraOps, _list_layout.LIST_LAYOUT.C13, { head: '13C', tail: '.' }), _defineProperty(_spectraOps, _list_layout.LIST_LAYOUT.F19, { head: '19F', tail: '.' }), _defineProperty(_spectraOps, _list_layout.LIST_LAYOUT.P31, { head: '31P', tail: '.' }), _defineProperty(_spectraOps, _list_layout.LIST_LAYOUT.N15, { head: '15N', tail: '.' }), _defineProperty(_spectraOps, _list_layout.LIST_LAYOUT.Si29, { head: '29Si', tail: '.' }), _defineProperty(_spectraOps, _list_layout.LIST_LAYOUT.IR, { head: 'IR', tail: ' cm-1' }), _defineProperty(_spectraOps, _list_layout.LIST_LAYOUT.RAMAN, { head: 'RAMAN', tail: ' cm-1' }), _defineProperty(_spectraOps, _list_layout.LIST_LAYOUT.UVVIS, { head: 'UV/VIS (transmittance)', tail: ' nm' }), _defineProperty(_spectraOps, _list_layout.LIST_LAYOUT.TGA, { head: 'THERMOGRAVIMETRIC ANALYSIS', tail: ' SECONDS' }), _defineProperty(_spectraOps, _list_layout.LIST_LAYOUT.MS, { head: 'MASS', tail: ' m/z' }), _defineProperty(_spectraOps, _list_layout.LIST_LAYOUT.XRD, { head: 'X-RAY DIFFRACTION', tail: '.' }), _spectraOps);
|
|
66
|
+
|
|
67
|
+
var rmRef = function rmRef(peaks, shift) {
|
|
68
|
+
var refValue = shift.ref.value || shift.peak.x;
|
|
69
|
+
return peaks.map(function (p) {
|
|
70
|
+
return (0, _converter.IsSame)(p.x, refValue) ? null : p;
|
|
71
|
+
}).filter(function (r) {
|
|
72
|
+
return r != null;
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
var formatedMS = function formatedMS(peaks, maxY) {
|
|
77
|
+
var decimal = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;
|
|
78
|
+
var isAscend = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
79
|
+
|
|
80
|
+
var ascendFunc = function ascendFunc(a, b) {
|
|
81
|
+
return parseFloat(a) - parseFloat(b);
|
|
82
|
+
};
|
|
83
|
+
var descendFunc = function descendFunc(a, b) {
|
|
84
|
+
return parseFloat(b) - parseFloat(a);
|
|
85
|
+
};
|
|
86
|
+
var sortFunc = isAscend ? ascendFunc : descendFunc;
|
|
87
|
+
var ordered = {};
|
|
88
|
+
|
|
89
|
+
peaks.forEach(function (p) {
|
|
90
|
+
var x = fixDigit(p.x, decimal);
|
|
91
|
+
var better = !ordered[x] || p.y > ordered[x];
|
|
92
|
+
if (better) {
|
|
93
|
+
ordered = Object.assign({}, ordered, _defineProperty({}, x, p.y));
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
ordered = Object.keys(ordered).sort(sortFunc).map(function (k) {
|
|
98
|
+
return { x: k, y: ordered[k] };
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
return ordered.map(function (o) {
|
|
102
|
+
return o.x + ' (' + parseInt(100 * o.y / maxY, 10) + ')';
|
|
103
|
+
}).join(', ');
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
var emLevel = function emLevel(boundary, val, lowerIsStronger) {
|
|
107
|
+
var maxY = boundary.maxY,
|
|
108
|
+
minY = boundary.minY;
|
|
109
|
+
|
|
110
|
+
var ratio = lowerIsStronger ? 100 * (val - minY) / (maxY - minY) : 100 * (maxY - val) / (maxY - minY);
|
|
111
|
+
if (ratio > 85) return 'vw';
|
|
112
|
+
if (ratio > 60) return 'w';
|
|
113
|
+
if (ratio > 45) return 'm';
|
|
114
|
+
if (ratio > 30) return 's';
|
|
115
|
+
return 'vs';
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
var formatedEm = function formatedEm(peaks, maxY) {
|
|
119
|
+
var decimal = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;
|
|
120
|
+
var isAscend = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
121
|
+
var isIntensity = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
122
|
+
var boundary = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
|
|
123
|
+
var lowerIsStronger = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
|
|
124
|
+
|
|
125
|
+
var ascendFunc = function ascendFunc(a, b) {
|
|
126
|
+
return parseFloat(a) - parseFloat(b);
|
|
127
|
+
};
|
|
128
|
+
var descendFunc = function descendFunc(a, b) {
|
|
129
|
+
return parseFloat(b) - parseFloat(a);
|
|
130
|
+
};
|
|
131
|
+
var sortFunc = isAscend ? ascendFunc : descendFunc;
|
|
132
|
+
var ordered = {};
|
|
133
|
+
|
|
134
|
+
peaks.forEach(function (p) {
|
|
135
|
+
var x = fixDigit(p.x, decimal);
|
|
136
|
+
var better = !ordered[x] || p.y > ordered[x];
|
|
137
|
+
if (better) {
|
|
138
|
+
ordered = Object.assign({}, ordered, _defineProperty({}, x, p.y));
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
ordered = Object.keys(ordered).sort(sortFunc).map(function (k) {
|
|
143
|
+
return { x: k, y: ordered[k] };
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
if (isIntensity) {
|
|
147
|
+
return ordered.map(function (o) {
|
|
148
|
+
return o.x + ' (' + emLevel(boundary, o.y, lowerIsStronger) + ')';
|
|
149
|
+
}).join(', ');
|
|
150
|
+
}
|
|
151
|
+
return ordered.map(function (o) {
|
|
152
|
+
return '' + o.x;
|
|
153
|
+
}).join(', ');
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
var formatedUvVis = function formatedUvVis(peaks, maxY) {
|
|
157
|
+
var decimal = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;
|
|
158
|
+
var isAscend = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
159
|
+
var isIntensity = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
160
|
+
var boundary = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
|
|
161
|
+
var lowerIsStronger = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
|
|
162
|
+
|
|
163
|
+
var ascendFunc = function ascendFunc(a, b) {
|
|
164
|
+
return parseFloat(a) - parseFloat(b);
|
|
165
|
+
};
|
|
166
|
+
var descendFunc = function descendFunc(a, b) {
|
|
167
|
+
return parseFloat(b) - parseFloat(a);
|
|
168
|
+
};
|
|
169
|
+
var sortFunc = isAscend ? ascendFunc : descendFunc;
|
|
170
|
+
var ordered = {};
|
|
171
|
+
|
|
172
|
+
peaks.forEach(function (p) {
|
|
173
|
+
var x = fixDigit(p.x, decimal);
|
|
174
|
+
var better = !ordered[x] || p.y > ordered[x];
|
|
175
|
+
if (better) {
|
|
176
|
+
ordered = Object.assign({}, ordered, _defineProperty({}, x, p.y));
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
ordered = Object.keys(ordered).sort(sortFunc).map(function (k) {
|
|
181
|
+
return { x: k, y: ordered[k] };
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
return ordered.map(function (o) {
|
|
185
|
+
return o.x + ' (' + o.y.toFixed(2) + ')';
|
|
186
|
+
}).join(', ');
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
var rmShiftFromPeaks = function rmShiftFromPeaks(peaks, shift) {
|
|
190
|
+
var peaksXY = (0, _converter.ToXY)(peaks);
|
|
191
|
+
// const digit = spectraDigit(layout);
|
|
192
|
+
var rmShiftX = shift.ref.value || shift.peak.x;
|
|
193
|
+
var result = peaksXY.map(function (p) {
|
|
194
|
+
var srcX = parseFloat(p[0]);
|
|
195
|
+
var x = (0, _converter.IsSame)(srcX, rmShiftX) ? null : srcX;
|
|
196
|
+
if (!x) return null;
|
|
197
|
+
var y = parseFloat(p[1]);
|
|
198
|
+
return { x: x, y: y };
|
|
199
|
+
}).filter(function (r) {
|
|
200
|
+
return r != null;
|
|
201
|
+
});
|
|
202
|
+
return result;
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
var peaksBody = function peaksBody(_ref) {
|
|
206
|
+
var peaks = _ref.peaks,
|
|
207
|
+
layout = _ref.layout,
|
|
208
|
+
decimal = _ref.decimal,
|
|
209
|
+
shift = _ref.shift,
|
|
210
|
+
isAscend = _ref.isAscend,
|
|
211
|
+
_ref$isIntensity = _ref.isIntensity,
|
|
212
|
+
isIntensity = _ref$isIntensity === undefined ? false : _ref$isIntensity,
|
|
213
|
+
_ref$boundary = _ref.boundary,
|
|
214
|
+
boundary = _ref$boundary === undefined ? {} : _ref$boundary;
|
|
215
|
+
|
|
216
|
+
var result = rmShiftFromPeaks(peaks, shift);
|
|
217
|
+
|
|
218
|
+
var ascendFunc = function ascendFunc(a, b) {
|
|
219
|
+
return parseFloat(a.x) - parseFloat(b.x);
|
|
220
|
+
};
|
|
221
|
+
var descendFunc = function descendFunc(a, b) {
|
|
222
|
+
return parseFloat(b.x) - parseFloat(a.x);
|
|
223
|
+
};
|
|
224
|
+
var sortFunc = isAscend ? ascendFunc : descendFunc;
|
|
225
|
+
var ordered = result.sort(sortFunc);
|
|
226
|
+
var maxY = Math.max.apply(Math, _toConsumableArray(ordered.map(function (o) {
|
|
227
|
+
return o.y;
|
|
228
|
+
})));
|
|
229
|
+
|
|
230
|
+
if (layout === _list_layout.LIST_LAYOUT.MS) {
|
|
231
|
+
return formatedMS(ordered, maxY, decimal, isAscend);
|
|
232
|
+
}
|
|
233
|
+
if (layout === _list_layout.LIST_LAYOUT.IR) {
|
|
234
|
+
return formatedEm(ordered, maxY, decimal, isAscend, isIntensity, boundary, true);
|
|
235
|
+
}
|
|
236
|
+
if (layout === _list_layout.LIST_LAYOUT.RAMAN) {
|
|
237
|
+
return formatedEm(ordered, maxY, decimal, isAscend, isIntensity, boundary, false);
|
|
238
|
+
}
|
|
239
|
+
if (layout === _list_layout.LIST_LAYOUT.UVVIS || layout === _list_layout.LIST_LAYOUT.HPLC_UVVIS) {
|
|
240
|
+
return formatedUvVis(ordered, maxY, decimal, isAscend, isIntensity, boundary, false);
|
|
241
|
+
}
|
|
242
|
+
if (layout === _list_layout.LIST_LAYOUT.TGA) {
|
|
243
|
+
return formatedEm(ordered, maxY, decimal, isAscend, isIntensity, boundary, false);
|
|
244
|
+
}
|
|
245
|
+
if (layout === _list_layout.LIST_LAYOUT.XRD) {
|
|
246
|
+
return formatedEm(ordered, maxY, decimal, isAscend, isIntensity, boundary, false);
|
|
247
|
+
}
|
|
248
|
+
return ordered.map(function (o) {
|
|
249
|
+
return fixDigit(o.x, decimal);
|
|
250
|
+
}).join(', ');
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
var peaksWrapper = function peaksWrapper(layout, shift) {
|
|
254
|
+
var solvTxt = '';
|
|
255
|
+
if (shift.ref.label) {
|
|
256
|
+
solvTxt = ' (' + shift.ref.label + ')';
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
if (layout === _list_layout.LIST_LAYOUT.PLAIN) {
|
|
260
|
+
return { head: '', tail: '' };
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
var ops = spectraOps[layout];
|
|
264
|
+
return { head: '' + ops.head + solvTxt + ' = ', tail: ops.tail };
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
var isNmrLayout = function isNmrLayout(layoutSt) {
|
|
268
|
+
return [_list_layout.LIST_LAYOUT.H1, _list_layout.LIST_LAYOUT.C13, _list_layout.LIST_LAYOUT.F19, _list_layout.LIST_LAYOUT.P31, _list_layout.LIST_LAYOUT.N15, _list_layout.LIST_LAYOUT.Si29].indexOf(layoutSt) >= 0;
|
|
269
|
+
};
|
|
270
|
+
var is29SiLayout = function is29SiLayout(layoutSt) {
|
|
271
|
+
return _list_layout.LIST_LAYOUT.Si29 === layoutSt;
|
|
272
|
+
};
|
|
273
|
+
var is15NLayout = function is15NLayout(layoutSt) {
|
|
274
|
+
return _list_layout.LIST_LAYOUT.N15 === layoutSt;
|
|
275
|
+
};
|
|
276
|
+
var is31PLayout = function is31PLayout(layoutSt) {
|
|
277
|
+
return _list_layout.LIST_LAYOUT.P31 === layoutSt;
|
|
278
|
+
};
|
|
279
|
+
var is19FLayout = function is19FLayout(layoutSt) {
|
|
280
|
+
return _list_layout.LIST_LAYOUT.F19 === layoutSt;
|
|
281
|
+
};
|
|
282
|
+
var is13CLayout = function is13CLayout(layoutSt) {
|
|
283
|
+
return _list_layout.LIST_LAYOUT.C13 === layoutSt;
|
|
284
|
+
};
|
|
285
|
+
var is1HLayout = function is1HLayout(layoutSt) {
|
|
286
|
+
return _list_layout.LIST_LAYOUT.H1 === layoutSt;
|
|
287
|
+
};
|
|
288
|
+
var isMsLayout = function isMsLayout(layoutSt) {
|
|
289
|
+
return _list_layout.LIST_LAYOUT.MS === layoutSt;
|
|
290
|
+
};
|
|
291
|
+
var isIrLayout = function isIrLayout(layoutSt) {
|
|
292
|
+
return [_list_layout.LIST_LAYOUT.IR, 'INFRARED'].indexOf(layoutSt) >= 0;
|
|
293
|
+
};
|
|
294
|
+
var isRamanLayout = function isRamanLayout(layoutSt) {
|
|
295
|
+
return _list_layout.LIST_LAYOUT.RAMAN === layoutSt;
|
|
296
|
+
};
|
|
297
|
+
var isUvVisLayout = function isUvVisLayout(layoutSt) {
|
|
298
|
+
return _list_layout.LIST_LAYOUT.UVVIS === layoutSt;
|
|
299
|
+
};
|
|
300
|
+
var isHplcUvVisLayout = function isHplcUvVisLayout(layoutSt) {
|
|
301
|
+
return _list_layout.LIST_LAYOUT.HPLC_UVVIS === layoutSt;
|
|
302
|
+
};
|
|
303
|
+
var isTGALayout = function isTGALayout(layoutSt) {
|
|
304
|
+
return _list_layout.LIST_LAYOUT.TGA === layoutSt;
|
|
305
|
+
};
|
|
306
|
+
var isXRDLayout = function isXRDLayout(layoutSt) {
|
|
307
|
+
return _list_layout.LIST_LAYOUT.XRD === layoutSt;
|
|
308
|
+
};
|
|
309
|
+
var isEmWaveLayout = function isEmWaveLayout(layoutSt) {
|
|
310
|
+
return [_list_layout.LIST_LAYOUT.IR, _list_layout.LIST_LAYOUT.RAMAN, _list_layout.LIST_LAYOUT.UVVIS, _list_layout.LIST_LAYOUT.HPLC_UVVIS].indexOf(layoutSt) >= 0;
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
var getNmrTyp = function getNmrTyp(layout) {
|
|
314
|
+
switch (layout) {
|
|
315
|
+
case _list_layout.LIST_LAYOUT.H1:
|
|
316
|
+
return 'H';
|
|
317
|
+
case _list_layout.LIST_LAYOUT.C13:
|
|
318
|
+
return 'C';
|
|
319
|
+
case _list_layout.LIST_LAYOUT.F19:
|
|
320
|
+
return 'F';
|
|
321
|
+
case _list_layout.LIST_LAYOUT.P31:
|
|
322
|
+
return 'P';
|
|
323
|
+
case _list_layout.LIST_LAYOUT.N15:
|
|
324
|
+
return 'N';
|
|
325
|
+
case _list_layout.LIST_LAYOUT.Si29:
|
|
326
|
+
return 'Si';
|
|
327
|
+
default:
|
|
328
|
+
return '';
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
var formatPeaksByPrediction = function formatPeaksByPrediction(peaks, layout, isAscend, decimal) {
|
|
333
|
+
var predictions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
|
|
334
|
+
|
|
335
|
+
var pDict = {};
|
|
336
|
+
peaks.forEach(function (p) {
|
|
337
|
+
pDict[p.x.toFixed(decimal)] = 0;
|
|
338
|
+
});
|
|
339
|
+
|
|
340
|
+
predictions.forEach(function (p) {
|
|
341
|
+
var key = p.real.toFixed(decimal);
|
|
342
|
+
if (typeof pDict[key] === 'number') {
|
|
343
|
+
pDict[key] += 1;
|
|
344
|
+
}
|
|
345
|
+
});
|
|
346
|
+
|
|
347
|
+
var typ = getNmrTyp(layout);
|
|
348
|
+
|
|
349
|
+
var ascendFunc = function ascendFunc(a, b) {
|
|
350
|
+
return parseFloat(a.k) - parseFloat(b.k);
|
|
351
|
+
};
|
|
352
|
+
var descendFunc = function descendFunc(a, b) {
|
|
353
|
+
return parseFloat(b.k) - parseFloat(a.k);
|
|
354
|
+
};
|
|
355
|
+
var sortFunc = isAscend ? ascendFunc : descendFunc;
|
|
356
|
+
var pArr = Object.keys(pDict).map(function (k) {
|
|
357
|
+
if (pDict[k] === 1) return { k: k, v: k };
|
|
358
|
+
return { k: k, v: k + ' (' + pDict[k] + typ + ')' };
|
|
359
|
+
}).sort(sortFunc);
|
|
360
|
+
|
|
361
|
+
var body = pArr.map(function (p) {
|
|
362
|
+
return p.v;
|
|
363
|
+
}).join(', ');
|
|
364
|
+
return body;
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
var compareColors = function compareColors(idx) {
|
|
368
|
+
return ['#ABB2B9', '#EDBB99', '#ABEBC6', '#D2B4DE', '#F9E79F'][idx % 5];
|
|
369
|
+
};
|
|
370
|
+
|
|
371
|
+
var Format = {
|
|
372
|
+
toPeakStr: toPeakStr,
|
|
373
|
+
buildData: buildData,
|
|
374
|
+
spectraDigit: spectraDigit,
|
|
375
|
+
spectraOps: spectraOps,
|
|
376
|
+
peaksBody: peaksBody,
|
|
377
|
+
peaksWrapper: peaksWrapper,
|
|
378
|
+
rmRef: rmRef,
|
|
379
|
+
rmShiftFromPeaks: rmShiftFromPeaks,
|
|
380
|
+
isNmrLayout: isNmrLayout,
|
|
381
|
+
is13CLayout: is13CLayout,
|
|
382
|
+
is1HLayout: is1HLayout,
|
|
383
|
+
is19FLayout: is19FLayout,
|
|
384
|
+
is31PLayout: is31PLayout,
|
|
385
|
+
is15NLayout: is15NLayout,
|
|
386
|
+
is29SiLayout: is29SiLayout,
|
|
387
|
+
isMsLayout: isMsLayout,
|
|
388
|
+
isIrLayout: isIrLayout,
|
|
389
|
+
isRamanLayout: isRamanLayout,
|
|
390
|
+
isUvVisLayout: isUvVisLayout,
|
|
391
|
+
isHplcUvVisLayout: isHplcUvVisLayout,
|
|
392
|
+
isTGALayout: isTGALayout,
|
|
393
|
+
isXRDLayout: isXRDLayout,
|
|
394
|
+
isEmWaveLayout: isEmWaveLayout,
|
|
395
|
+
fixDigit: fixDigit,
|
|
396
|
+
formatPeaksByPrediction: formatPeaksByPrediction,
|
|
397
|
+
formatedMS: formatedMS,
|
|
398
|
+
formatedEm: formatedEm,
|
|
399
|
+
calcMpyCenter: _multiplicity_calc.calcMpyCenter,
|
|
400
|
+
compareColors: compareColors
|
|
401
|
+
};
|
|
402
|
+
|
|
403
|
+
exports.default = Format;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.InitTip = exports.InitPathCall = exports.InitAxisCall = exports.InitScale = undefined;
|
|
7
|
+
|
|
8
|
+
var _d = require('d3');
|
|
9
|
+
|
|
10
|
+
var d3 = _interopRequireWildcard(_d);
|
|
11
|
+
|
|
12
|
+
var _d3Tip = require('d3-tip');
|
|
13
|
+
|
|
14
|
+
var _d3Tip2 = _interopRequireDefault(_d3Tip);
|
|
15
|
+
|
|
16
|
+
var _format = require('./format');
|
|
17
|
+
|
|
18
|
+
var _format2 = _interopRequireDefault(_format);
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
22
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
|
23
|
+
|
|
24
|
+
var InitScale = function InitScale(target) {
|
|
25
|
+
var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
26
|
+
|
|
27
|
+
var xRange = reverse ? [target.w, 0] : [0, target.w];
|
|
28
|
+
var x = d3.scaleLinear().range(xRange);
|
|
29
|
+
var y = d3.scaleLinear().range([target.h, 0]);
|
|
30
|
+
return { x: x, y: y };
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
var InitAxisCall = function InitAxisCall(count) {
|
|
34
|
+
var yAxisFormat = d3.format('.2n');
|
|
35
|
+
var xAxisCall = d3.axisBottom().ticks(10);
|
|
36
|
+
var yAxisCall = d3.axisLeft().ticks(count).tickFormat(yAxisFormat);
|
|
37
|
+
return { x: xAxisCall, y: yAxisCall };
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
var InitPathCall = function InitPathCall(target) {
|
|
41
|
+
var line = d3.line().x(function (d) {
|
|
42
|
+
return target.scales.x(d.x);
|
|
43
|
+
}).y(function (d) {
|
|
44
|
+
return target.scales.y(d.y);
|
|
45
|
+
});
|
|
46
|
+
return line;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
var tpStyle = function tpStyle() {
|
|
50
|
+
var stBorder = ' border: 2px solid #aaa;';
|
|
51
|
+
var stBorderRadius = ' border-radius: 5px;';
|
|
52
|
+
var stBackground = ' background: #555;';
|
|
53
|
+
var stColor = ' color: #fff;';
|
|
54
|
+
var stPadding = ' padding: 8px;';
|
|
55
|
+
var stOpacity = ' opacity: 0.9; ';
|
|
56
|
+
var stZindex = ' z-index: 1999;';
|
|
57
|
+
var stFontFamily = ' font-family: Helvetica;';
|
|
58
|
+
var style = stBorder + stBorderRadius + stBackground + stColor + stPadding + stOpacity + stPadding + stZindex + stFontFamily;
|
|
59
|
+
|
|
60
|
+
return style;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
var tpDiv = function tpDiv(d, digits) {
|
|
64
|
+
return '\n <div\n class="peak-tp"\n style="' + tpStyle() + '"\n >\n <span> x: ' + _format2.default.fixDigit(d.x, digits) + '</span>\n <br/>\n <span> y: ' + d3.format('.2~e')(d.y) + '</span>\n <div>\n ';
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
var InitTip = function InitTip() {
|
|
68
|
+
d3.select('.peak-tp').remove();
|
|
69
|
+
var tip = (0, _d3Tip2.default)().attr('class', 'd3-tip').html(function (_ref) {
|
|
70
|
+
var d = _ref.d,
|
|
71
|
+
layout = _ref.layout;
|
|
72
|
+
return tpDiv(d, _format2.default.spectraDigit(layout));
|
|
73
|
+
});
|
|
74
|
+
return tip;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
exports.InitScale = InitScale;
|
|
78
|
+
exports.InitAxisCall = InitAxisCall;
|
|
79
|
+
exports.InitPathCall = InitPathCall;
|
|
80
|
+
exports.InitTip = InitTip;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var getArea = function getArea(xL, xU, data) {
|
|
7
|
+
var iL = data.length - 1,
|
|
8
|
+
iU = 0;
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
for (var i = 0; i < data.length; i += 1) {
|
|
12
|
+
var pt = data[i];
|
|
13
|
+
if (xL <= pt.x && pt.x <= xU) {
|
|
14
|
+
if (iL > i) {
|
|
15
|
+
iL = i;
|
|
16
|
+
}
|
|
17
|
+
if (i > iU) {
|
|
18
|
+
iU = i;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return Math.abs(data[iU].k - data[iL].k);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
var calcArea = function calcArea(d, refArea, refFactor) {
|
|
26
|
+
return (d.area * refFactor / refArea).toFixed(2);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
exports.getArea = getArea;
|
|
30
|
+
exports.calcArea = calcArea; // eslint-disable-line
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MountBars = exports.MountMainFrame = exports.MountClip = exports.MountMarker = exports.MountAxisLabelY = exports.MountAxisLabelX = exports.MountComparePath = exports.MountAxis = exports.MountGrid = exports.MountThresLine = exports.MountPath = exports.MountRef = exports.MountTags = undefined;
|
|
7
|
+
|
|
8
|
+
var _compass = require('./compass');
|
|
9
|
+
|
|
10
|
+
var MountTags = function MountTags(target) {
|
|
11
|
+
var igbPath = target.root.append('g').attr('class', 'igbPath-clip').attr('clip-path', 'url(#clip)');
|
|
12
|
+
var igcPath = target.root.append('g').attr('class', 'igcPath-clip').attr('clip-path', 'url(#clip)');
|
|
13
|
+
var igtPath = target.root.append('g').attr('class', 'igtPath-clip').attr('clip-path', 'url(#clip)');
|
|
14
|
+
var pPath = target.root.append('g').attr('class', 'pPath-clip').attr('clip-path', 'url(#clip)');
|
|
15
|
+
var bpPath = target.root.append('g').attr('class', 'bpPath-clip').attr('clip-path', 'url(#clip)');
|
|
16
|
+
var bpTxt = target.root.append('g').attr('class', 'bpTxt-clip').attr('clip-path', 'url(#clip)');
|
|
17
|
+
var mpybPath = target.root.append('g').attr('class', 'mpybPath-clip').attr('clip-path', 'url(#clip)');
|
|
18
|
+
var mpyt1Path = target.root.append('g').attr('class', 'mpyt1Path-clip').attr('clip-path', 'url(#clip)');
|
|
19
|
+
var mpyt2Path = target.root.append('g').attr('class', 'mpyt2Path-clip').attr('clip-path', 'url(#clip)');
|
|
20
|
+
var mpypPath = target.root.append('g').attr('class', 'mpypPath-clip').attr('clip-path', 'url(#clip)');
|
|
21
|
+
return {
|
|
22
|
+
pPath: pPath, bpPath: bpPath, bpTxt: bpTxt, igbPath: igbPath, igcPath: igcPath, igtPath: igtPath, mpybPath: mpybPath, mpyt1Path: mpyt1Path, mpyt2Path: mpyt2Path, mpypPath: mpypPath
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var MountBars = function MountBars(target) {
|
|
27
|
+
var bars = target.root.append('g').attr('class', 'bars-clip').attr('clip-path', 'url(#clip)');
|
|
28
|
+
return bars;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
var MountRef = function MountRef(target) {
|
|
32
|
+
var ref = target.root.append('g').attr('class', 'ref-clip').attr('clip-path', 'url(#ref-clip)');
|
|
33
|
+
return ref;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var MountPath = function MountPath(target, color) {
|
|
37
|
+
var path = target.root.append('g').attr('class', 'line-clip').attr('clip-path', 'url(#clip)').append('path').attr('class', 'line').style('fill', 'none').style('stroke', color).style('stroke-width', 1).on('click', function () {
|
|
38
|
+
return (0, _compass.ClickCompass)(target);
|
|
39
|
+
});
|
|
40
|
+
return path;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
var MountComparePath = function MountComparePath(target, color, id) {
|
|
44
|
+
var path = target.root.append('g').attr('class', 'line-clip-compare').attr('id', id).attr('clip-path', 'url(#clip)').append('path').attr('class', 'line').style('fill', 'none').style('stroke', color).style('stroke-width', 1).style('stroke-dasharray', '30, 3').on('click', function () {
|
|
45
|
+
return (0, _compass.ClickCompass)(target);
|
|
46
|
+
});
|
|
47
|
+
return path;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
var MountThresLine = function MountThresLine(target, color) {
|
|
51
|
+
var thresLineUp = target.root.append('g').attr('class', 'line-clip').attr('clip-path', 'url(#clip)').append('path').attr('class', 'thresholdUp').style('stroke-dasharray', '3, 3').style('fill', 'none').style('stroke', color).style('stroke-width', 1);
|
|
52
|
+
var thresLineDw = target.root.append('g').attr('class', 'line-clip').attr('clip-path', 'url(#clip)').append('path').attr('class', 'thresholdDw').style('stroke-dasharray', '3, 3').style('fill', 'none').style('stroke', color).style('stroke-width', 1);
|
|
53
|
+
return [thresLineUp, thresLineDw];
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
var MountGrid = function MountGrid(target) {
|
|
57
|
+
var gridTrans = 'translate(0, ' + target.h + ')';
|
|
58
|
+
var xGrid = target.root.append('g').attr('class', 'x-grid').attr('transform', gridTrans);
|
|
59
|
+
var yGrid = target.root.append('g').attr('class', 'y-grid');
|
|
60
|
+
return { x: xGrid, y: yGrid };
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
var MountAxis = function MountAxis(target) {
|
|
64
|
+
var xAxisTrans = 'translate(0, ' + target.h + ')';
|
|
65
|
+
var xAxis = target.root.append('g').attr('class', 'x-axis').attr('transform', xAxisTrans);
|
|
66
|
+
var yAxis = target.root.append('g').attr('class', 'y-axis');
|
|
67
|
+
return { x: xAxis, y: yAxis };
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
var MountAxisLabelX = function MountAxisLabelX(target) {
|
|
71
|
+
var xTrans = 'translate(' + target.w / 2 + ', ' + (target.h + 30) + ')';
|
|
72
|
+
target.root.append('text').attr('text-anchor', 'middle').attr('transform', xTrans).attr('class', 'xLabel').attr('font-family', 'Helvetica').style('font-size', '12px');
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
var MountAxisLabelY = function MountAxisLabelY(target) {
|
|
76
|
+
var yR = 'rotate(-90)';
|
|
77
|
+
var yTrans = 'translate(' + (16 - target.margin.l) + ', ' + target.h / 2 + ') ' + yR;
|
|
78
|
+
target.root.append('text').attr('text-anchor', 'middle').attr('transform', yTrans).attr('class', 'yLabel').attr('font-family', 'Helvetica').style('font-size', '12px');
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
var MountMarker = function MountMarker(target, color) {
|
|
82
|
+
var tTrans = 'translate(' + (target.w - 80) + ', -10)';
|
|
83
|
+
var lTrans = 'translate(' + (target.w - 200) + ', -18)';
|
|
84
|
+
target.root.append('text').attr('text-anchor', 'middle').attr('transform', tTrans).attr('class', 'mark-text').attr('font-family', 'Helvetica');
|
|
85
|
+
|
|
86
|
+
target.root.append('rect').attr('transform', lTrans).attr('width', 30).attr('height', 5).attr('class', 'mark-line').style('fill', color);
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
var MountClip = function MountClip(target) {
|
|
90
|
+
target.svg.append('defs').append('clipPath').attr('id', 'clip').append('rect').attr('width', target.w).attr('height', target.h).attr('x', 0).attr('y', 0);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
var MountMainFrame = function MountMainFrame(target, name) {
|
|
94
|
+
var transFrame = 'translate(' + target.margin.l + ', ' + target.margin.t + ')';
|
|
95
|
+
var clsName = name + '-main';
|
|
96
|
+
|
|
97
|
+
target.svg.append('g').attr('class', clsName).attr('transform', transFrame);
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
exports.MountTags = MountTags;
|
|
101
|
+
exports.MountRef = MountRef;
|
|
102
|
+
exports.MountPath = MountPath;
|
|
103
|
+
exports.MountThresLine = MountThresLine;
|
|
104
|
+
exports.MountGrid = MountGrid;
|
|
105
|
+
exports.MountAxis = MountAxis;
|
|
106
|
+
exports.MountComparePath = MountComparePath;
|
|
107
|
+
exports.MountAxisLabelX = MountAxisLabelX;
|
|
108
|
+
exports.MountAxisLabelY = MountAxisLabelY;
|
|
109
|
+
exports.MountMarker = MountMarker;
|
|
110
|
+
exports.MountClip = MountClip;
|
|
111
|
+
exports.MountMainFrame = MountMainFrame;
|
|
112
|
+
exports.MountBars = MountBars;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
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); } }
|
|
8
|
+
|
|
9
|
+
var mpyBasicPatterns = ['s', 'd', 't', 'q', 'quint', 'h', 'sept', 'o', 'n'];
|
|
10
|
+
|
|
11
|
+
var getInterval = function getInterval(peaks) {
|
|
12
|
+
var itvs = [];
|
|
13
|
+
for (var idx = 0; idx < peaks.length - 1; idx += 1) {
|
|
14
|
+
var itv = Math.abs(peaks[idx + 1].x - peaks[idx].x);
|
|
15
|
+
itvs = [].concat(_toConsumableArray(itvs), [itv]);
|
|
16
|
+
}
|
|
17
|
+
return itvs;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
var groupInterval = function groupInterval(itvs) {
|
|
21
|
+
var gitvs = [];
|
|
22
|
+
itvs.forEach(function (vv) {
|
|
23
|
+
var applied = false;
|
|
24
|
+
gitvs.forEach(function (gv, idx) {
|
|
25
|
+
if (applied) return;
|
|
26
|
+
if (Math.abs((gv.c - vv) / gv.c) <= 0.03) {
|
|
27
|
+
var c = (gv.c * gv.es.length + vv) / (gv.es.length + 1);
|
|
28
|
+
var es = [].concat(_toConsumableArray(gv.es), [vv]);
|
|
29
|
+
gitvs = [].concat(_toConsumableArray(gitvs.filter(function (v, i) {
|
|
30
|
+
return i !== idx;
|
|
31
|
+
})), [{ c: c, es: es }]);
|
|
32
|
+
applied = true;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
if (!applied) {
|
|
36
|
+
gitvs = [].concat(_toConsumableArray(gitvs), [{ c: vv, es: [vv] }]);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return gitvs;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
exports.mpyBasicPatterns = mpyBasicPatterns;
|
|
43
|
+
exports.getInterval = getInterval;
|
|
44
|
+
exports.groupInterval = groupInterval;
|