jcampconverter 9.2.0 → 9.2.2

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 (156) hide show
  1. package/jcampconverter.cjs +8 -0
  2. package/{lib/convert.d.ts → jcampconverter.d.ts} +222 -182
  3. package/jcampconverter.mjs +8 -0
  4. package/package.json +27 -19
  5. package/lib/2d/add2D.d.ts +0 -2
  6. package/lib/2d/add2D.d.ts.map +0 -1
  7. package/lib/2d/add2D.js +0 -17
  8. package/lib/2d/add2D.js.map +0 -1
  9. package/lib/2d/convertTo3DZ.d.ts +0 -11
  10. package/lib/2d/convertTo3DZ.d.ts.map +0 -1
  11. package/lib/2d/convertTo3DZ.js +0 -59
  12. package/lib/2d/convertTo3DZ.js.map +0 -1
  13. package/lib/2d/generateContourLines.d.ts +0 -8
  14. package/lib/2d/generateContourLines.d.ts.map +0 -1
  15. package/lib/2d/generateContourLines.js +0 -163
  16. package/lib/2d/generateContourLines.js.map +0 -1
  17. package/lib/complexChromatogram.d.ts +0 -4
  18. package/lib/complexChromatogram.d.ts.map +0 -1
  19. package/lib/complexChromatogram.js +0 -49
  20. package/lib/complexChromatogram.js.map +0 -1
  21. package/lib/convert.d.ts.map +0 -1
  22. package/lib/convert.js +0 -412
  23. package/lib/convert.js.map +0 -1
  24. package/lib/convertToFloatArray.d.ts +0 -2
  25. package/lib/convertToFloatArray.d.ts.map +0 -1
  26. package/lib/convertToFloatArray.js +0 -11
  27. package/lib/convertToFloatArray.js.map +0 -1
  28. package/lib/createTree.d.ts +0 -29
  29. package/lib/createTree.d.ts.map +0 -1
  30. package/lib/createTree.js +0 -101
  31. package/lib/createTree.js.map +0 -1
  32. package/lib/index.d.ts +0 -3
  33. package/lib/index.d.ts.map +0 -1
  34. package/lib/index.js +0 -8
  35. package/lib/index.js.map +0 -1
  36. package/lib/parse/fastParseXYData.d.ts +0 -2
  37. package/lib/parse/fastParseXYData.d.ts.map +0 -1
  38. package/lib/parse/fastParseXYData.js +0 -193
  39. package/lib/parse/fastParseXYData.js.map +0 -1
  40. package/lib/parse/parsePeakTable.d.ts +0 -2
  41. package/lib/parse/parsePeakTable.d.ts.map +0 -1
  42. package/lib/parse/parsePeakTable.js +0 -67
  43. package/lib/parse/parsePeakTable.js.map +0 -1
  44. package/lib/parse/parseXYA.d.ts +0 -2
  45. package/lib/parse/parseXYA.d.ts.map +0 -1
  46. package/lib/parse/parseXYA.js +0 -51
  47. package/lib/parse/parseXYA.js.map +0 -1
  48. package/lib/postProcessing.d.ts +0 -2
  49. package/lib/postProcessing.d.ts.map +0 -1
  50. package/lib/postProcessing.js +0 -93
  51. package/lib/postProcessing.js.map +0 -1
  52. package/lib/postProcessingNMR.d.ts +0 -2
  53. package/lib/postProcessingNMR.d.ts.map +0 -1
  54. package/lib/postProcessingNMR.js +0 -95
  55. package/lib/postProcessingNMR.js.map +0 -1
  56. package/lib/prepareNtuplesDatatable.d.ts +0 -2
  57. package/lib/prepareNtuplesDatatable.d.ts.map +0 -1
  58. package/lib/prepareNtuplesDatatable.js +0 -87
  59. package/lib/prepareNtuplesDatatable.js.map +0 -1
  60. package/lib/prepareSpectrum.d.ts +0 -2
  61. package/lib/prepareSpectrum.d.ts.map +0 -1
  62. package/lib/prepareSpectrum.js +0 -10
  63. package/lib/prepareSpectrum.js.map +0 -1
  64. package/lib/profiling.d.ts +0 -2
  65. package/lib/profiling.d.ts.map +0 -1
  66. package/lib/profiling.js +0 -13
  67. package/lib/profiling.js.map +0 -1
  68. package/lib/simpleChromatogram.d.ts +0 -2
  69. package/lib/simpleChromatogram.d.ts.map +0 -1
  70. package/lib/simpleChromatogram.js +0 -16
  71. package/lib/simpleChromatogram.js.map +0 -1
  72. package/lib-esm/2d/add2D.d.ts +0 -2
  73. package/lib-esm/2d/add2D.d.ts.map +0 -1
  74. package/lib-esm/2d/add2D.js +0 -11
  75. package/lib-esm/2d/add2D.js.map +0 -1
  76. package/lib-esm/2d/convertTo3DZ.d.ts +0 -11
  77. package/lib-esm/2d/convertTo3DZ.d.ts.map +0 -1
  78. package/lib-esm/2d/convertTo3DZ.js +0 -53
  79. package/lib-esm/2d/convertTo3DZ.js.map +0 -1
  80. package/lib-esm/2d/generateContourLines.d.ts +0 -8
  81. package/lib-esm/2d/generateContourLines.d.ts.map +0 -1
  82. package/lib-esm/2d/generateContourLines.js +0 -160
  83. package/lib-esm/2d/generateContourLines.js.map +0 -1
  84. package/lib-esm/complexChromatogram.d.ts +0 -4
  85. package/lib-esm/complexChromatogram.d.ts.map +0 -1
  86. package/lib-esm/complexChromatogram.js +0 -43
  87. package/lib-esm/complexChromatogram.js.map +0 -1
  88. package/lib-esm/convert.d.ts +0 -182
  89. package/lib-esm/convert.d.ts.map +0 -1
  90. package/lib-esm/convert.js +0 -405
  91. package/lib-esm/convert.js.map +0 -1
  92. package/lib-esm/convertToFloatArray.d.ts +0 -2
  93. package/lib-esm/convertToFloatArray.d.ts.map +0 -1
  94. package/lib-esm/convertToFloatArray.js +0 -8
  95. package/lib-esm/convertToFloatArray.js.map +0 -1
  96. package/lib-esm/createTree.d.ts +0 -29
  97. package/lib-esm/createTree.d.ts.map +0 -1
  98. package/lib-esm/createTree.js +0 -97
  99. package/lib-esm/createTree.js.map +0 -1
  100. package/lib-esm/index.d.ts +0 -3
  101. package/lib-esm/index.d.ts.map +0 -1
  102. package/lib-esm/index.js +0 -3
  103. package/lib-esm/index.js.map +0 -1
  104. package/lib-esm/parse/fastParseXYData.d.ts +0 -2
  105. package/lib-esm/parse/fastParseXYData.d.ts.map +0 -1
  106. package/lib-esm/parse/fastParseXYData.js +0 -190
  107. package/lib-esm/parse/fastParseXYData.js.map +0 -1
  108. package/lib-esm/parse/parsePeakTable.d.ts +0 -2
  109. package/lib-esm/parse/parsePeakTable.d.ts.map +0 -1
  110. package/lib-esm/parse/parsePeakTable.js +0 -64
  111. package/lib-esm/parse/parsePeakTable.js.map +0 -1
  112. package/lib-esm/parse/parseXYA.d.ts +0 -2
  113. package/lib-esm/parse/parseXYA.d.ts.map +0 -1
  114. package/lib-esm/parse/parseXYA.js +0 -48
  115. package/lib-esm/parse/parseXYA.js.map +0 -1
  116. package/lib-esm/postProcessing.d.ts +0 -2
  117. package/lib-esm/postProcessing.d.ts.map +0 -1
  118. package/lib-esm/postProcessing.js +0 -87
  119. package/lib-esm/postProcessing.js.map +0 -1
  120. package/lib-esm/postProcessingNMR.d.ts +0 -2
  121. package/lib-esm/postProcessingNMR.d.ts.map +0 -1
  122. package/lib-esm/postProcessingNMR.js +0 -92
  123. package/lib-esm/postProcessingNMR.js.map +0 -1
  124. package/lib-esm/prepareNtuplesDatatable.d.ts +0 -2
  125. package/lib-esm/prepareNtuplesDatatable.d.ts.map +0 -1
  126. package/lib-esm/prepareNtuplesDatatable.js +0 -84
  127. package/lib-esm/prepareNtuplesDatatable.js.map +0 -1
  128. package/lib-esm/prepareSpectrum.d.ts +0 -2
  129. package/lib-esm/prepareSpectrum.d.ts.map +0 -1
  130. package/lib-esm/prepareSpectrum.js +0 -7
  131. package/lib-esm/prepareSpectrum.js.map +0 -1
  132. package/lib-esm/profiling.d.ts +0 -2
  133. package/lib-esm/profiling.d.ts.map +0 -1
  134. package/lib-esm/profiling.js +0 -10
  135. package/lib-esm/profiling.js.map +0 -1
  136. package/lib-esm/simpleChromatogram.d.ts +0 -2
  137. package/lib-esm/simpleChromatogram.d.ts.map +0 -1
  138. package/lib-esm/simpleChromatogram.js +0 -13
  139. package/lib-esm/simpleChromatogram.js.map +0 -1
  140. package/src/2d/add2D.js +0 -11
  141. package/src/2d/convertTo3DZ.js +0 -55
  142. package/src/2d/generateContourLines.js +0 -166
  143. package/src/complexChromatogram.js +0 -49
  144. package/src/convert.js +0 -412
  145. package/src/convertToFloatArray.js +0 -7
  146. package/src/createTree.js +0 -100
  147. package/src/index.js +0 -2
  148. package/src/parse/fastParseXYData.js +0 -175
  149. package/src/parse/parsePeakTable.js +0 -69
  150. package/src/parse/parseXYA.js +0 -50
  151. package/src/postProcessing.js +0 -93
  152. package/src/postProcessingNMR.js +0 -99
  153. package/src/prepareNtuplesDatatable.js +0 -85
  154. package/src/prepareSpectrum.js +0 -4
  155. package/src/profiling.js +0 -9
  156. package/src/simpleChromatogram.js +0 -12
@@ -1,97 +0,0 @@
1
- import { ensureString } from 'ensure-string';
2
- /**
3
- *
4
- * @typedef {object} CreateTreeOptions
5
- * @property {boolean} [flatten=false]
6
- */
7
- /**
8
- *
9
- * @typedef {object} Tree
10
- * @property {string} title
11
- * @property {string} jcamp
12
- * @property {Tree[]} [children]
13
- */
14
- /**
15
- * Parse the jcamp to extract the structure as a tree.
16
- *
17
- * @param {string|ArrayBuffer|Uint8Array} jcamp
18
- * @param {CreateTreeOptions} [options={}]
19
- * @returns {Tree[]}
20
- */
21
- export function createTree(jcamp, options = {}) {
22
- jcamp = ensureString(jcamp);
23
- const { flatten = false } = options;
24
- if (typeof jcamp !== 'string') {
25
- throw new TypeError('the JCAMP should be a string');
26
- }
27
- let lines = jcamp.split(/[\r\n]+/);
28
- let flat = [];
29
- let stack = [];
30
- let result = [];
31
- let current;
32
- let ntupleLevel = 0;
33
- let spaces = jcamp.includes('## ');
34
- for (let i = 0; i < lines.length; i++) {
35
- let line = lines[i];
36
- let labelLine = spaces ? line.replace(/ /g, '') : line;
37
- if (labelLine.substring(0, 9) === '##NTUPLES') {
38
- ntupleLevel++;
39
- }
40
- if (labelLine.substring(0, 7) === '##TITLE') {
41
- let title = [labelLine.substring(8).trim()];
42
- for (let j = i + 1; j < lines.length; j++) {
43
- if (lines[j].startsWith('##')) {
44
- break;
45
- }
46
- else {
47
- title.push(lines[j].trim());
48
- }
49
- }
50
- stack.push({
51
- title: title.join('\n'),
52
- jcamp: `${line}\n`,
53
- children: [],
54
- });
55
- current = stack[stack.length - 1];
56
- flat.push(current);
57
- }
58
- else if (labelLine.substring(0, 5) === '##END' && ntupleLevel === 0) {
59
- current.jcamp += `${line}\n`;
60
- let finished = stack.pop();
61
- if (stack.length !== 0) {
62
- current = stack[stack.length - 1];
63
- current.children.push(finished);
64
- }
65
- else {
66
- current = undefined;
67
- result.push(finished);
68
- }
69
- }
70
- else if (current && current.jcamp) {
71
- current.jcamp += `${line}\n`;
72
- let match = labelLine.match(/^##(.*?)=(.+)/);
73
- if (match) {
74
- let canonicDataLabel = match[1].replace(/[ _-]/g, '').toUpperCase();
75
- if (canonicDataLabel === 'DATATYPE') {
76
- current.dataType = match[2].trim();
77
- }
78
- if (canonicDataLabel === 'DATACLASS') {
79
- current.dataClass = match[2].trim();
80
- }
81
- }
82
- }
83
- if (labelLine.substring(0, 5) === '##END' && ntupleLevel > 0) {
84
- ntupleLevel--;
85
- }
86
- }
87
- if (flatten) {
88
- flat.forEach((entry) => {
89
- entry.children = undefined;
90
- });
91
- return flat;
92
- }
93
- else {
94
- return result;
95
- }
96
- }
97
- //# sourceMappingURL=createTree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createTree.js","sourceRoot":"","sources":["../src/createTree.js"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export { createTree } from "./createTree";
2
- export { convert } from "./convert";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":""}
package/lib-esm/index.js DELETED
@@ -1,3 +0,0 @@
1
- export { createTree } from './createTree';
2
- export { convert } from './convert';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -1,2 +0,0 @@
1
- export default function fastParseXYData(spectrum: any, value: any): void;
2
- //# sourceMappingURL=fastParseXYData.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fastParseXYData.d.ts","sourceRoot":"","sources":["../../src/parse/fastParseXYData.js"],"names":[],"mappings":"AAAA,yEA8KC"}
@@ -1,190 +0,0 @@
1
- export default function fastParseXYData(spectrum, value) {
2
- // TODO need to deal with result
3
- // console.log(value);
4
- // we check if deltaX is defined otherwise we calculate it
5
- let yFactor = spectrum.yFactor;
6
- let deltaX = spectrum.deltaX;
7
- spectrum.isXYdata = true;
8
- let currentData = { x: [], y: [] };
9
- spectrum.data = currentData;
10
- let currentX = spectrum.firstX;
11
- let currentY = spectrum.firstY;
12
- // we skip the first line
13
- //
14
- let endLine = false;
15
- let ascii;
16
- let i = 0;
17
- for (; i < value.length; i++) {
18
- ascii = value.charCodeAt(i);
19
- if (ascii === 13 || ascii === 10) {
20
- endLine = true;
21
- }
22
- else if (endLine) {
23
- break;
24
- }
25
- }
26
- // we proceed taking the i after the first line
27
- let newLine = true;
28
- let isDifference = false;
29
- let isLastDifference = false;
30
- let lastDifference = 0;
31
- let isDuplicate = false;
32
- let inComment = false;
33
- let currentValue = 0; // can be a difference or a duplicate
34
- let lastValue = 0; // must be the real last value
35
- let isNegative = false;
36
- let inValue = false;
37
- let skipFirstValue = false;
38
- let decimalPosition = 0;
39
- for (; i <= value.length; i++) {
40
- if (i === value.length)
41
- ascii = 13;
42
- else
43
- ascii = value.charCodeAt(i);
44
- if (inComment) {
45
- // we should ignore the text if we are after $$
46
- if (ascii === 13 || ascii === 10) {
47
- newLine = true;
48
- inComment = false;
49
- }
50
- }
51
- else {
52
- // when is it a new value ?
53
- // when it is not a digit, . or comma
54
- // it is a number that is either new or we continue
55
- // eslint-disable-next-line no-lonely-if
56
- if (ascii <= 57 && ascii >= 48) {
57
- // a number
58
- inValue = true;
59
- if (decimalPosition > 0) {
60
- currentValue += (ascii - 48) / Math.pow(10, decimalPosition++);
61
- }
62
- else {
63
- currentValue *= 10;
64
- currentValue += ascii - 48;
65
- }
66
- }
67
- else if (ascii === 44 || ascii === 46) {
68
- // a "," or "."
69
- inValue = true;
70
- decimalPosition++;
71
- }
72
- else {
73
- if (inValue) {
74
- // need to process the previous value
75
- if (newLine) {
76
- newLine = false; // we don't check the X value
77
- // console.log("NEW LINE",isDifference, lastDifference);
78
- // if new line and lastDifference, the first value is just a check !
79
- // that we don't check ...
80
- if (isLastDifference)
81
- skipFirstValue = true;
82
- }
83
- else {
84
- // need to deal with duplicate and differences
85
- // eslint-disable-next-line no-lonely-if
86
- if (skipFirstValue) {
87
- skipFirstValue = false;
88
- }
89
- else {
90
- if (isDifference) {
91
- lastDifference = isNegative ? 0 - currentValue : currentValue;
92
- isLastDifference = true;
93
- isDifference = false;
94
- }
95
- else if (!isDuplicate) {
96
- lastValue = isNegative ? 0 - currentValue : currentValue;
97
- }
98
- let duplicate = isDuplicate ? currentValue - 1 : 1;
99
- for (let j = 0; j < duplicate; j++) {
100
- if (isLastDifference) {
101
- currentY += lastDifference;
102
- }
103
- else {
104
- currentY = lastValue;
105
- }
106
- currentData.x.push(currentX);
107
- currentData.y.push(currentY * yFactor);
108
- currentX += deltaX;
109
- }
110
- }
111
- }
112
- isNegative = false;
113
- currentValue = 0;
114
- decimalPosition = 0;
115
- inValue = false;
116
- isDuplicate = false;
117
- }
118
- // positive SQZ digits @ A B C D E F G H I (ascii 64-73)
119
- if (ascii < 74 && ascii > 63) {
120
- inValue = true;
121
- isLastDifference = false;
122
- currentValue = ascii - 64;
123
- }
124
- else if (ascii > 96 && ascii < 106) {
125
- // negative SQZ digits a b c d e f g h i (ascii 97-105)
126
- inValue = true;
127
- isLastDifference = false;
128
- currentValue = ascii - 96;
129
- isNegative = true;
130
- }
131
- else if (ascii === 115) {
132
- // DUP digits S T U V W X Y Z s (ascii 83-90, 115)
133
- inValue = true;
134
- isDuplicate = true;
135
- currentValue = 9;
136
- }
137
- else if (ascii > 82 && ascii < 91) {
138
- inValue = true;
139
- isDuplicate = true;
140
- currentValue = ascii - 82;
141
- }
142
- else if (ascii > 73 && ascii < 83) {
143
- // positive DIF digits % J K L M N O P Q R (ascii 37, 74-82)
144
- inValue = true;
145
- isDifference = true;
146
- currentValue = ascii - 73;
147
- }
148
- else if (ascii > 105 && ascii < 115) {
149
- // negative DIF digits j k l m n o p q r (ascii 106-114)
150
- inValue = true;
151
- isDifference = true;
152
- currentValue = ascii - 105;
153
- isNegative = true;
154
- }
155
- else if (ascii === 36 && value.charCodeAt(i + 1) === 36) {
156
- // $ sign, we need to check the next one
157
- inValue = true;
158
- inComment = true;
159
- }
160
- else if (ascii === 37) {
161
- // positive DIF digits % J K L M N O P Q R (ascii 37, 74-82)
162
- inValue = true;
163
- isDifference = true;
164
- currentValue = 0;
165
- isNegative = false;
166
- }
167
- else if (ascii === 45) {
168
- // a "-"
169
- // check if after there is a number, decimal or comma
170
- let ascii2 = value.charCodeAt(i + 1);
171
- if ((ascii2 >= 48 && ascii2 <= 57) ||
172
- ascii2 === 44 ||
173
- ascii2 === 46) {
174
- inValue = true;
175
- if (!newLine)
176
- isLastDifference = false;
177
- isNegative = true;
178
- }
179
- }
180
- else if (ascii === 13 || ascii === 10) {
181
- newLine = true;
182
- inComment = false;
183
- }
184
- // and now analyse the details ... space or tabulation
185
- // if "+" we just don't care
186
- }
187
- }
188
- }
189
- }
190
- //# sourceMappingURL=fastParseXYData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fastParseXYData.js","sourceRoot":"","sources":["../../src/parse/fastParseXYData.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,QAAQ,EAAE,KAAK;IACrD,gCAAgC;IAChC,uBAAuB;IACvB,0DAA0D;IAE1D,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC/B,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAE7B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,IAAI,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IACnC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;IAE5B,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;IAE/B,yBAAyB;IACzB,EAAE;IACF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,KAAK,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC5B,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE;YAChC,OAAO,GAAG,IAAI,CAAC;SAChB;aAAM,IAAI,OAAO,EAAE;YAClB,MAAM;SACP;KACF;IAED,+CAA+C;IAC/C,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,qCAAqC;IAC3D,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,8BAA8B;IACjD,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7B,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM;YAAE,KAAK,GAAG,EAAE,CAAC;;YAC9B,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,SAAS,EAAE;YACb,+CAA+C;YAC/C,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE;gBAChC,OAAO,GAAG,IAAI,CAAC;gBACf,SAAS,GAAG,KAAK,CAAC;aACnB;SACF;aAAM;YACL,2BAA2B;YAC3B,qCAAqC;YACrC,mDAAmD;YACnD,wCAAwC;YACxC,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,EAAE;gBAC9B,WAAW;gBACX,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,eAAe,GAAG,CAAC,EAAE;oBACvB,YAAY,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;iBAChE;qBAAM;oBACL,YAAY,IAAI,EAAE,CAAC;oBACnB,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC;iBAC5B;aACF;iBAAM,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE;gBACvC,eAAe;gBACf,OAAO,GAAG,IAAI,CAAC;gBACf,eAAe,EAAE,CAAC;aACnB;iBAAM;gBACL,IAAI,OAAO,EAAE;oBACX,qCAAqC;oBACrC,IAAI,OAAO,EAAE;wBACX,OAAO,GAAG,KAAK,CAAC,CAAC,6BAA6B;wBAC9C,wDAAwD;wBACxD,oEAAoE;wBACpE,0BAA0B;wBAC1B,IAAI,gBAAgB;4BAAE,cAAc,GAAG,IAAI,CAAC;qBAC7C;yBAAM;wBACL,8CAA8C;wBAC9C,wCAAwC;wBACxC,IAAI,cAAc,EAAE;4BAClB,cAAc,GAAG,KAAK,CAAC;yBACxB;6BAAM;4BACL,IAAI,YAAY,EAAE;gCAChB,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;gCAC9D,gBAAgB,GAAG,IAAI,CAAC;gCACxB,YAAY,GAAG,KAAK,CAAC;6BACtB;iCAAM,IAAI,CAAC,WAAW,EAAE;gCACvB,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;6BAC1D;4BACD,IAAI,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;gCAClC,IAAI,gBAAgB,EAAE;oCACpB,QAAQ,IAAI,cAAc,CAAC;iCAC5B;qCAAM;oCACL,QAAQ,GAAG,SAAS,CAAC;iCACtB;gCACD,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gCAC7B,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;gCACvC,QAAQ,IAAI,MAAM,CAAC;6BACpB;yBACF;qBACF;oBACD,UAAU,GAAG,KAAK,CAAC;oBACnB,YAAY,GAAG,CAAC,CAAC;oBACjB,eAAe,GAAG,CAAC,CAAC;oBACpB,OAAO,GAAG,KAAK,CAAC;oBAChB,WAAW,GAAG,KAAK,CAAC;iBACrB;gBAED,wDAAwD;gBACxD,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;oBAC5B,OAAO,GAAG,IAAI,CAAC;oBACf,gBAAgB,GAAG,KAAK,CAAC;oBACzB,YAAY,GAAG,KAAK,GAAG,EAAE,CAAC;iBAC3B;qBAAM,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,GAAG,EAAE;oBACpC,uDAAuD;oBACvD,OAAO,GAAG,IAAI,CAAC;oBACf,gBAAgB,GAAG,KAAK,CAAC;oBACzB,YAAY,GAAG,KAAK,GAAG,EAAE,CAAC;oBAC1B,UAAU,GAAG,IAAI,CAAC;iBACnB;qBAAM,IAAI,KAAK,KAAK,GAAG,EAAE;oBACxB,kDAAkD;oBAClD,OAAO,GAAG,IAAI,CAAC;oBACf,WAAW,GAAG,IAAI,CAAC;oBACnB,YAAY,GAAG,CAAC,CAAC;iBAClB;qBAAM,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;oBACnC,OAAO,GAAG,IAAI,CAAC;oBACf,WAAW,GAAG,IAAI,CAAC;oBACnB,YAAY,GAAG,KAAK,GAAG,EAAE,CAAC;iBAC3B;qBAAM,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;oBACnC,4DAA4D;oBAC5D,OAAO,GAAG,IAAI,CAAC;oBACf,YAAY,GAAG,IAAI,CAAC;oBACpB,YAAY,GAAG,KAAK,GAAG,EAAE,CAAC;iBAC3B;qBAAM,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE;oBACrC,wDAAwD;oBACxD,OAAO,GAAG,IAAI,CAAC;oBACf,YAAY,GAAG,IAAI,CAAC;oBACpB,YAAY,GAAG,KAAK,GAAG,GAAG,CAAC;oBAC3B,UAAU,GAAG,IAAI,CAAC;iBACnB;qBAAM,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBACzD,wCAAwC;oBACxC,OAAO,GAAG,IAAI,CAAC;oBACf,SAAS,GAAG,IAAI,CAAC;iBAClB;qBAAM,IAAI,KAAK,KAAK,EAAE,EAAE;oBACvB,4DAA4D;oBAC5D,OAAO,GAAG,IAAI,CAAC;oBACf,YAAY,GAAG,IAAI,CAAC;oBACpB,YAAY,GAAG,CAAC,CAAC;oBACjB,UAAU,GAAG,KAAK,CAAC;iBACpB;qBAAM,IAAI,KAAK,KAAK,EAAE,EAAE;oBACvB,QAAQ;oBACR,qDAAqD;oBACrD,IAAI,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACrC,IACE,CAAC,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,CAAC;wBAC9B,MAAM,KAAK,EAAE;wBACb,MAAM,KAAK,EAAE,EACb;wBACA,OAAO,GAAG,IAAI,CAAC;wBACf,IAAI,CAAC,OAAO;4BAAE,gBAAgB,GAAG,KAAK,CAAC;wBACvC,UAAU,GAAG,IAAI,CAAC;qBACnB;iBACF;qBAAM,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE;oBACvC,OAAO,GAAG,IAAI,CAAC;oBACf,SAAS,GAAG,KAAK,CAAC;iBACnB;gBACD,sDAAsD;gBACtD,4BAA4B;aAC7B;SACF;KACF;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export default function parsePeakTable(spectrum: any, value: any, result: any): void;
2
- //# sourceMappingURL=parsePeakTable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parsePeakTable.d.ts","sourceRoot":"","sources":["../../src/parse/parsePeakTable.js"],"names":[],"mappings":"AAGA,qFAeC"}
@@ -1,64 +0,0 @@
1
- const removeCommentRegExp = /\$\$.*/;
2
- const peakTableSplitRegExp = /[,\t ]+/;
3
- export default function parsePeakTable(spectrum, value, result) {
4
- spectrum.isPeaktable = true;
5
- if (!spectrum.variables || Object.keys(spectrum.variables) === 2) {
6
- parseXY(spectrum, value, result);
7
- }
8
- else {
9
- parseXYZ(spectrum, value, result);
10
- }
11
- // we will add the data in the variables
12
- if (spectrum.variables) {
13
- for (let key in spectrum.variables) {
14
- spectrum.variables[key].data = spectrum.data[key];
15
- }
16
- }
17
- }
18
- function parseXY(spectrum, value, result) {
19
- let currentData = { x: [], y: [] };
20
- spectrum.data = currentData;
21
- // counts for around 20% of the time
22
- let lines = value.split(/,? *,?[;\r\n]+ */);
23
- for (let i = 1; i < lines.length; i++) {
24
- let values = lines[i]
25
- .trim()
26
- .replace(removeCommentRegExp, '')
27
- .split(peakTableSplitRegExp);
28
- if (values.length % 2 === 0) {
29
- for (let j = 0; j < values.length; j = j + 2) {
30
- // takes around 40% of the time to add and parse the 2 values nearly exclusively because of Number
31
- currentData.x.push(Number(values[j]) * spectrum.xFactor);
32
- currentData.y.push(Number(values[j + 1]) * spectrum.yFactor);
33
- }
34
- }
35
- else {
36
- result.logs.push(`Format error: ${values}`);
37
- }
38
- }
39
- }
40
- function parseXYZ(spectrum, value, result) {
41
- let currentData = {};
42
- let variables = Object.keys(spectrum.variables);
43
- let numberOfVariables = variables.length;
44
- variables.forEach((variable) => (currentData[variable] = []));
45
- spectrum.data = currentData;
46
- // counts for around 20% of the time
47
- let lines = value.split(/,? *,?[;\r\n]+ */);
48
- for (let i = 1; i < lines.length; i++) {
49
- let values = lines[i]
50
- .trim()
51
- .replace(removeCommentRegExp, '')
52
- .split(peakTableSplitRegExp);
53
- if (values.length % numberOfVariables === 0) {
54
- for (let j = 0; j < values.length; j++) {
55
- // todo should try to find a xFactor (y, ...)
56
- currentData[variables[j % numberOfVariables]].push(Number(values[j]));
57
- }
58
- }
59
- else {
60
- result.logs.push(`Format error: ${values}`);
61
- }
62
- }
63
- }
64
- //# sourceMappingURL=parsePeakTable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parsePeakTable.js","sourceRoot":"","sources":["../../src/parse/parsePeakTable.js"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AACrC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAEvC,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;IAC5D,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;IAE5B,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QAChE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;KAClC;SAAM;QACL,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;KACnC;IAED,wCAAwC;IACxC,IAAI,QAAQ,CAAC,SAAS,EAAE;QACtB,KAAK,IAAI,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE;YAClC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACnD;KACF;AACH,CAAC;AAED,SAAS,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;IACtC,IAAI,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IACnC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;IAE5B,oCAAoC;IACpC,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;aAClB,IAAI,EAAE;aACN,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;aAChC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC5C,kGAAkG;gBAClG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACzD,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;aAC9D;SACF;aAAM;YACL,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC;SAC7C;KACF;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;IACvC,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC;IACzC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;IAE5B,oCAAoC;IACpC,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;aAClB,IAAI,EAAE;aACN,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;aAChC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,MAAM,GAAG,iBAAiB,KAAK,CAAC,EAAE;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,6CAA6C;gBAC7C,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACvE;SACF;aAAM;YACL,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC;SAC7C;KACF;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export default function parseXYA(spectrum: any, value: any): void;
2
- //# sourceMappingURL=parseXYA.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseXYA.d.ts","sourceRoot":"","sources":["../../src/parse/parseXYA.js"],"names":[],"mappings":"AAcA,kEAmCC"}
@@ -1,48 +0,0 @@
1
- /*
2
- (5.4.4) ##РЕАК ASSIGNMENTS= (STRING). List
3
- of peak assignments for components or functional groups
4
- in the forms ##РЕАК ASSIGNMENTS= (ХУА),
5
- (XYW А), (ХУМА), (XYMW А). Each entry is surrounded Ьу parentheses and starts а new line. У, W (peak
6
- width), and М (multiplicity) values are optional. The
7
- symbol А stands for а string detailing the assignment
8
- and must Ье enclosed Ьу angle brackets. If the peak width
9
- value is included, then the function used to calculate the
10
- peak width must Ье detailed in а $$ comment on the
11
- line(s) below ##PEAKASSIGNMENTS=. Priority OPTIONAL. N.B.: ##РЕАК ASSIGNMENTS= is the preferred method of transmitting peak information when
12
- the assignments are known.
13
- */
14
- export default function parseXYA(spectrum, value) {
15
- spectrum.isXYAdata = true;
16
- const currentData = {};
17
- spectrum.data = currentData;
18
- let lines = value.split(/\r?\n/);
19
- const variables = lines[0]
20
- .replace(/^.*?([A-Z]+).*$/, '$1')
21
- .split('')
22
- .map((variable) => variable.toLowerCase());
23
- for (let i = 1; i < lines.length; i++) {
24
- const fields = lines[i].replace(/^\((.*)\)$/, '$1').split(/ *, */);
25
- for (let j = 0; j < variables.length; j++) {
26
- let value = fields[j];
27
- switch (variables[j]) {
28
- case 'x':
29
- case 'y':
30
- case 'w':
31
- value = Number.parseFloat(value);
32
- break;
33
- case 'a':
34
- value = value.replace(/^<(.*)>$/, '$1');
35
- break;
36
- case 'm':
37
- break;
38
- default:
39
- continue;
40
- }
41
- if (!currentData[variables[j]]) {
42
- currentData[variables[j]] = [];
43
- }
44
- currentData[variables[j]].push(value);
45
- }
46
- }
47
- }
48
- //# sourceMappingURL=parseXYA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseXYA.js","sourceRoot":"","sources":["../../src/parse/parseXYA.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,QAAQ,EAAE,KAAK;IAC9C,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;IAE5B,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC;SACvB,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC;SAChC,KAAK,CAAC,EAAE,CAAC;SACT,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,QAAQ,SAAS,CAAC,CAAC,CAAC,EAAE;gBACpB,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACN,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBACjC,MAAM;gBACR,KAAK,GAAG;oBACN,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBACxC,MAAM;gBACR,KAAK,GAAG;oBACN,MAAM;gBACR;oBACE,SAAS;aACZ;YACD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC9B,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;aAChC;YACD,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACvC;KACF;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export default function postProcessing(entriesFlat: any, result: any, options: any): void;
2
- //# sourceMappingURL=postProcessing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postProcessing.d.ts","sourceRoot":"","sources":["../src/postProcessing.js"],"names":[],"mappings":"AAQA,0FA2CC"}
@@ -1,87 +0,0 @@
1
- import { parseString } from 'dynamic-typing';
2
- import add2D from './2d/add2D';
3
- import { complexChromatogram } from './complexChromatogram';
4
- import postProcessingNMR from './postProcessingNMR';
5
- import profiling from './profiling';
6
- import simpleChromatogram from './simpleChromatogram';
7
- export default function postProcessing(entriesFlat, result, options) {
8
- // converting Hz to ppm
9
- postProcessingNMR(entriesFlat);
10
- createArray(entriesFlat, options);
11
- for (let entry of entriesFlat) {
12
- if (Object.keys(entry.ntuples).length > 0) {
13
- let newNtuples = [];
14
- let keys = Object.keys(entry.ntuples);
15
- for (let i = 0; i < keys.length; i++) {
16
- let key = keys[i];
17
- let values = entry.ntuples[key];
18
- for (let j = 0; j < values.length; j++) {
19
- if (!newNtuples[j])
20
- newNtuples[j] = {};
21
- newNtuples[j][key] = values[j];
22
- }
23
- }
24
- entry.ntuples = newNtuples;
25
- }
26
- if (entry.twoD && options.wantXY) {
27
- add2D(entry, options);
28
- profiling(result, 'Finished countour plot calculation', options);
29
- if (!options.keepSpectra) {
30
- delete entry.spectra;
31
- }
32
- }
33
- // maybe it is a GC (HPLC) / MS. In this case we add a new format
34
- if (options.chromatogram) {
35
- if (entry.spectra.length > 1) {
36
- complexChromatogram(entry);
37
- }
38
- else {
39
- simpleChromatogram(entry);
40
- }
41
- profiling(result, 'Finished chromatogram calculation', options);
42
- }
43
- delete entry.tmp;
44
- }
45
- }
46
- function createArray(entriesFlat, options) {
47
- for (const entry of entriesFlat) {
48
- for (const key in entry.meta) {
49
- const value = entry.meta[key];
50
- if (typeof value === 'string') {
51
- if (value[0] === '{') {
52
- // could be an array
53
- if (value[value.length - 1] === '}') {
54
- const array = value
55
- .slice(1, -1)
56
- .split(/[,; ]+/)
57
- .filter((e) => e);
58
- for (let i = 0; i < array.length; i++) {
59
- entry.meta[key + String(i)] = options.dynamicTyping
60
- ? parseString(array[i])
61
- : array[i];
62
- }
63
- }
64
- }
65
- else if (value[0] === '(') {
66
- const lines = value.split(/\r?\n/);
67
- const regexp = /^\((?<from>\d+)\.\.(?<to>\d+)\)$/;
68
- if (regexp.test(lines[0])) {
69
- // parsing '(0..63)'
70
- const [from, to] = lines[0].match(regexp).slice(1).map(Number);
71
- const array = lines
72
- .slice(1)
73
- .join(' ')
74
- .split(/[,; ]+/)
75
- .filter((e) => e);
76
- for (let i = from; i <= to; i++) {
77
- entry.meta[key + String(i)] = options.dynamicTyping
78
- ? parseString(array[i - from])
79
- : array[i - from];
80
- }
81
- }
82
- }
83
- }
84
- }
85
- }
86
- }
87
- //# sourceMappingURL=postProcessing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postProcessing.js","sourceRoot":"","sources":["../src/postProcessing.js"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export default function postProcessingNMR(entriesFlat: any): void;
2
- //# sourceMappingURL=postProcessingNMR.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postProcessingNMR.d.ts","sourceRoot":"","sources":["../src/postProcessingNMR.js"],"names":[],"mappings":"AAEA,kEAgGC"}