react-msaview 1.3.1 → 2.0.0

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 (200) hide show
  1. package/bundle/index.js +283 -97265
  2. package/dist/StructureModel.d.ts +9 -0
  3. package/dist/StructureModel.js +11 -0
  4. package/dist/StructureModel.js.map +1 -0
  5. package/dist/UniprotTrack.d.ts +27 -0
  6. package/dist/UniprotTrack.js +52 -0
  7. package/dist/UniprotTrack.js.map +1 -0
  8. package/dist/colorSchemes.d.ts +2 -2
  9. package/dist/colorSchemes.js +24 -29
  10. package/dist/colorSchemes.js.map +1 -0
  11. package/dist/components/AboutDlg.d.ts +0 -1
  12. package/dist/components/AboutDlg.js +38 -48
  13. package/dist/components/AboutDlg.js.map +1 -0
  14. package/dist/components/AddTrackDlg.d.ts +0 -1
  15. package/dist/components/AddTrackDlg.js +13 -13
  16. package/dist/components/AddTrackDlg.js.map +1 -0
  17. package/dist/components/AnnotationDlg.d.ts +0 -1
  18. package/dist/components/AnnotationDlg.js +36 -48
  19. package/dist/components/AnnotationDlg.js.map +1 -0
  20. package/dist/components/BoxTrack.d.ts +3 -4
  21. package/dist/components/BoxTrack.js +51 -48
  22. package/dist/components/BoxTrack.js.map +1 -0
  23. package/dist/components/DetailsDlg.d.ts +0 -1
  24. package/dist/components/DetailsDlg.js +7 -7
  25. package/dist/components/DetailsDlg.js.map +1 -0
  26. package/dist/components/Header.d.ts +0 -1
  27. package/dist/components/Header.js +39 -34
  28. package/dist/components/Header.js.map +1 -0
  29. package/dist/components/ImportForm.d.ts +0 -1
  30. package/dist/components/ImportForm.js +59 -71
  31. package/dist/components/ImportForm.js.map +1 -0
  32. package/dist/components/MSACanvas.d.ts +0 -1
  33. package/dist/components/MSACanvas.js +71 -74
  34. package/dist/components/MSACanvas.js.map +1 -0
  35. package/dist/components/MSAView.d.ts +0 -1
  36. package/dist/components/MSAView.js +19 -38
  37. package/dist/components/MSAView.js.map +1 -0
  38. package/dist/components/MoreInfoDlg.d.ts +2 -3
  39. package/dist/components/MoreInfoDlg.js +5 -5
  40. package/dist/components/MoreInfoDlg.js.map +1 -0
  41. package/dist/components/ResizeHandles.d.ts +2 -3
  42. package/dist/components/ResizeHandles.js +31 -32
  43. package/dist/components/ResizeHandles.js.map +1 -0
  44. package/dist/components/Rubberband.d.ts +2 -1
  45. package/dist/components/Rubberband.js +42 -64
  46. package/dist/components/Rubberband.js.map +1 -0
  47. package/dist/components/Ruler.d.ts +0 -15
  48. package/dist/components/Ruler.js +18 -87
  49. package/dist/components/Ruler.js.map +1 -0
  50. package/dist/components/SettingsDlg.d.ts +0 -1
  51. package/dist/components/SettingsDlg.js +29 -22
  52. package/dist/components/SettingsDlg.js.map +1 -0
  53. package/dist/components/TextTrack.d.ts +3 -4
  54. package/dist/components/TextTrack.js +23 -24
  55. package/dist/components/TextTrack.js.map +1 -0
  56. package/dist/components/Track.d.ts +2 -3
  57. package/dist/components/Track.js +38 -38
  58. package/dist/components/Track.js.map +1 -0
  59. package/dist/components/TrackInfoDlg.d.ts +5 -3
  60. package/dist/components/TrackInfoDlg.js +12 -13
  61. package/dist/components/TrackInfoDlg.js.map +1 -0
  62. package/dist/components/TracklistDlg.d.ts +0 -1
  63. package/dist/components/TracklistDlg.js +9 -9
  64. package/dist/components/TracklistDlg.js.map +1 -0
  65. package/dist/components/TreeCanvas.d.ts +0 -1
  66. package/dist/components/TreeCanvas.js +135 -148
  67. package/dist/components/TreeCanvas.js.map +1 -0
  68. package/dist/components/TreeRuler.d.ts +0 -1
  69. package/dist/components/TreeRuler.js +3 -3
  70. package/dist/components/TreeRuler.js.map +1 -0
  71. package/dist/components/VerticalGuide.d.ts +6 -0
  72. package/dist/components/VerticalGuide.js +30 -0
  73. package/dist/components/VerticalGuide.js.map +1 -0
  74. package/dist/components/data/seq2.d.ts +3 -3
  75. package/dist/components/data/seq2.js +33 -3
  76. package/dist/components/data/seq2.js.map +1 -0
  77. package/{bundle/components/Ruler.d.ts → dist/components/util.d.ts} +1 -6
  78. package/dist/components/util.js +69 -0
  79. package/dist/components/util.js.map +1 -0
  80. package/dist/index.d.ts +2 -4
  81. package/dist/index.js +3 -3
  82. package/dist/index.js.map +1 -0
  83. package/dist/layout.js +14 -20
  84. package/dist/layout.js.map +1 -0
  85. package/dist/model.d.ts +94 -74
  86. package/dist/model.js +232 -473
  87. package/dist/model.js.map +1 -0
  88. package/dist/parseNewick.d.ts +1 -5
  89. package/dist/parseNewick.js +10 -7
  90. package/dist/parseNewick.js.map +1 -0
  91. package/dist/parsers/ClustalMSA.d.ts +6 -18
  92. package/dist/parsers/ClustalMSA.js +55 -64
  93. package/dist/parsers/ClustalMSA.js.map +1 -0
  94. package/dist/parsers/FastaMSA.d.ts +4 -9
  95. package/dist/parsers/FastaMSA.js +55 -64
  96. package/dist/parsers/FastaMSA.js.map +1 -0
  97. package/dist/parsers/StockholmMSA.d.ts +8 -13
  98. package/dist/parsers/StockholmMSA.js +78 -107
  99. package/dist/parsers/StockholmMSA.js.map +1 -0
  100. package/dist/util.d.ts +33 -4
  101. package/dist/util.js +76 -24
  102. package/dist/util.js.map +1 -0
  103. package/dist/version.d.ts +1 -0
  104. package/dist/version.js +2 -0
  105. package/dist/version.js.map +1 -0
  106. package/package.json +30 -30
  107. package/src/StructureModel.ts +11 -0
  108. package/src/UniprotTrack.ts +60 -0
  109. package/src/colorSchemes.ts +520 -0
  110. package/src/components/AboutDlg.tsx +64 -0
  111. package/src/components/AddTrackDlg.tsx +74 -0
  112. package/src/components/AnnotationDlg.tsx +144 -0
  113. package/src/components/BoxTrack.tsx +225 -0
  114. package/src/components/DetailsDlg.tsx +28 -0
  115. package/src/components/Header.tsx +117 -0
  116. package/src/components/ImportForm.tsx +192 -0
  117. package/src/components/MSACanvas.tsx +297 -0
  118. package/src/components/MSAView.tsx +132 -0
  119. package/src/components/MoreInfoDlg.tsx +21 -0
  120. package/src/components/ResizeHandles.tsx +137 -0
  121. package/src/components/Rubberband.tsx +271 -0
  122. package/src/components/Ruler.tsx +122 -0
  123. package/src/components/SettingsDlg.tsx +154 -0
  124. package/src/components/TextTrack.tsx +120 -0
  125. package/src/components/Track.tsx +150 -0
  126. package/src/components/TrackInfoDlg.tsx +59 -0
  127. package/src/components/TracklistDlg.tsx +61 -0
  128. package/src/components/TreeCanvas.tsx +633 -0
  129. package/src/components/TreeRuler.tsx +12 -0
  130. package/src/components/VerticalGuide.tsx +50 -0
  131. package/src/components/data/seq2.ts +35 -0
  132. package/src/components/util.ts +94 -0
  133. package/src/declare.d.ts +2 -0
  134. package/src/index.ts +2 -0
  135. package/src/layout.ts +83 -0
  136. package/src/model.ts +790 -0
  137. package/{bundle/parseNewick.d.ts → src/parseNewick.ts} +36 -5
  138. package/src/parsers/ClustalMSA.ts +79 -0
  139. package/src/parsers/FastaMSA.ts +82 -0
  140. package/src/parsers/StockholmMSA.ts +137 -0
  141. package/src/util.ts +142 -0
  142. package/src/version.ts +1 -0
  143. package/bundle/colorSchemes.d.ts +0 -16
  144. package/bundle/colorSchemes.js +0 -455
  145. package/bundle/components/AboutDlg.d.ts +0 -5
  146. package/bundle/components/AboutDlg.js +0 -47
  147. package/bundle/components/AddTrackDlg.d.ts +0 -8
  148. package/bundle/components/AddTrackDlg.js +0 -26
  149. package/bundle/components/AnnotationDlg.d.ts +0 -11
  150. package/bundle/components/AnnotationDlg.js +0 -77
  151. package/bundle/components/BoxTrack.d.ts +0 -7
  152. package/bundle/components/BoxTrack.js +0 -143
  153. package/bundle/components/DetailsDlg.d.ts +0 -8
  154. package/bundle/components/DetailsDlg.js +0 -12
  155. package/bundle/components/Header.d.ts +0 -6
  156. package/bundle/components/Header.js +0 -63
  157. package/bundle/components/ImportForm.d.ts +0 -6
  158. package/bundle/components/ImportForm.js +0 -89
  159. package/bundle/components/MSACanvas.d.ts +0 -6
  160. package/bundle/components/MSACanvas.js +0 -210
  161. package/bundle/components/MSAView.d.ts +0 -6
  162. package/bundle/components/MSAView.js +0 -88
  163. package/bundle/components/MoreInfoDlg.d.ts +0 -6
  164. package/bundle/components/MoreInfoDlg.js +0 -11
  165. package/bundle/components/ResizeHandles.d.ts +0 -8
  166. package/bundle/components/ResizeHandles.js +0 -110
  167. package/bundle/components/Rubberband.d.ts +0 -7
  168. package/bundle/components/Rubberband.js +0 -196
  169. package/bundle/components/Ruler.js +0 -121
  170. package/bundle/components/SettingsDlg.d.ts +0 -8
  171. package/bundle/components/SettingsDlg.js +0 -40
  172. package/bundle/components/TextTrack.d.ts +0 -7
  173. package/bundle/components/TextTrack.js +0 -72
  174. package/bundle/components/Track.d.ts +0 -11
  175. package/bundle/components/Track.js +0 -81
  176. package/bundle/components/TrackInfoDlg.d.ts +0 -6
  177. package/bundle/components/TrackInfoDlg.js +0 -33
  178. package/bundle/components/TracklistDlg.d.ts +0 -8
  179. package/bundle/components/TracklistDlg.js +0 -18
  180. package/bundle/components/TreeCanvas.d.ts +0 -6
  181. package/bundle/components/TreeCanvas.js +0 -431
  182. package/bundle/components/TreeRuler.d.ts +0 -6
  183. package/bundle/components/TreeRuler.js +0 -8
  184. package/bundle/components/data/seq2.d.ts +0 -3
  185. package/bundle/components/data/seq2.js +0 -3
  186. package/bundle/index.d.ts +0 -4
  187. package/bundle/layout.d.ts +0 -23
  188. package/bundle/layout.js +0 -53
  189. package/bundle/model.d.ts +0 -364
  190. package/bundle/model.js +0 -894
  191. package/bundle/parseNewick.js +0 -94
  192. package/bundle/parsers/ClustalMSA.d.ts +0 -39
  193. package/bundle/parsers/ClustalMSA.js +0 -77
  194. package/bundle/parsers/FastaMSA.d.ts +0 -26
  195. package/bundle/parsers/FastaMSA.js +0 -78
  196. package/bundle/parsers/StockholmMSA.d.ts +0 -75
  197. package/bundle/parsers/StockholmMSA.js +0 -142
  198. package/bundle/util.d.ts +0 -17
  199. package/bundle/util.js +0 -33
  200. package/dist/components/package.json +0 -62
package/dist/model.js CHANGED
@@ -1,210 +1,23 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
- return new (P || (P = Promise))(function (resolve, reject) {
15
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
- step((generator = generator.apply(thisArg, _arguments || [])).next());
19
- });
20
- };
21
- var __generator = (this && this.__generator) || function (thisArg, body) {
22
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
- function verb(n) { return function (v) { return step([n, v]); }; }
25
- function step(op) {
26
- if (f) throw new TypeError("Generator is already executing.");
27
- while (_) try {
28
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
- if (y = 0, t) op = [op[0] & 2, t.value];
30
- switch (op[0]) {
31
- case 0: case 1: t = op; break;
32
- case 4: _.label++; return { value: op[1], done: false };
33
- case 5: _.label++; y = op[1]; op = [0]; continue;
34
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
- default:
36
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
- if (t[2]) _.ops.pop();
41
- _.trys.pop(); continue;
42
- }
43
- op = body.call(thisArg, _);
44
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
- }
47
- };
48
- var __rest = (this && this.__rest) || function (s, e) {
49
- var t = {};
50
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
51
- t[p] = s[p];
52
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
53
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
54
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
55
- t[p[i]] = s[p[i]];
56
- }
57
- return t;
58
- };
59
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
60
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
61
- if (ar || !(i in from)) {
62
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
63
- ar[i] = from[i];
64
- }
65
- }
66
- return to.concat(ar || Array.prototype.slice.call(from));
67
- };
68
1
  import { cast, types, addDisposer } from 'mobx-state-tree';
69
2
  import { hierarchy, cluster } from 'd3-hierarchy';
70
- import { ascending, max } from 'd3-array';
3
+ import { ascending } from 'd3-array';
71
4
  import { FileLocation, ElementId } from '@jbrowse/core/util/types/mst';
72
5
  import { openLocation } from '@jbrowse/core/util/io';
73
6
  import { autorun } from 'mobx';
74
7
  import BaseViewModel from '@jbrowse/core/pluggableElementTypes/models/BaseViewModel';
75
8
  import Stockholm from 'stockholm-js';
9
+ // locals
10
+ import { collapse, generateNodeIds, maxLength, setBrLength, skipBlanks, clamp, } from './util';
11
+ import TextTrack from './components/TextTrack';
12
+ import BoxTrack from './components/BoxTrack';
76
13
  import ClustalMSA from './parsers/ClustalMSA';
77
14
  import StockholmMSA from './parsers/StockholmMSA';
78
15
  import FastaMSA from './parsers/FastaMSA';
79
16
  import parseNewick from './parseNewick';
80
17
  import colorSchemes from './colorSchemes';
81
- import { generateNodeIds } from './util';
82
- import TextTrack from './components/TextTrack';
83
- import BoxTrack from './components/BoxTrack';
84
- function skipBlanks(blanks, arg) {
85
- var s = '';
86
- var b = 0;
87
- for (var j = 0; j < arg.length; j++) {
88
- if (j === blanks[b]) {
89
- b++;
90
- }
91
- else {
92
- s += arg[j];
93
- }
94
- }
95
- return s;
96
- }
97
- function setBrLength(d, y0, k) {
98
- var _a;
99
- //@ts-ignore
100
- d.len = (y0 += Math.max(d.data.length || 0, 0)) * k;
101
- (_a = d.children) === null || _a === void 0 ? void 0 : _a.forEach(function (d) {
102
- setBrLength(d, y0, k);
103
- });
104
- }
105
- function maxLength(d) {
106
- return (d.data.length || 1) + (d.children ? max(d.children, maxLength) : 0);
107
- }
108
- // Collapse the node and all it's children, from
109
- // https://bl.ocks.org/d3noob/43a860bc0024792f8803bba8ca0d5ecd
110
- function collapse(d) {
111
- if (d.children) {
112
- //@ts-ignore
113
- d._children = d.children;
114
- //@ts-ignore
115
- d._children.forEach(collapse);
116
- //@ts-ignore
117
- d.children = null;
118
- }
119
- }
120
- function clamp(min, num, max) {
121
- return Math.min(Math.max(num, min), max);
122
- }
123
- var StructureModel = types.model({
124
- id: types.identifier,
125
- structure: types.model({
126
- pdb: types.string,
127
- startPos: types.number,
128
- endPos: types.number,
129
- }),
130
- range: types.maybe(types.string),
131
- });
132
- var UniprotTrack = types
133
- .model({
134
- id: types.string,
135
- accession: types.string,
136
- name: types.string,
137
- associatedRowName: types.string,
138
- height: types.optional(types.number, 100),
139
- })
140
- .volatile(function () { return ({
141
- error: undefined,
142
- data: undefined,
143
- }); })
144
- .actions(function (self) { return ({
145
- setError: function (error) {
146
- self.error = error;
147
- },
148
- setData: function (data) {
149
- self.data = data;
150
- },
151
- }); })
152
- .actions(function (self) { return ({
153
- afterCreate: function () {
154
- var _this = this;
155
- addDisposer(self, autorun(function () { return __awaiter(_this, void 0, void 0, function () {
156
- var accession, url, response, text, e_1;
157
- return __generator(this, function (_a) {
158
- switch (_a.label) {
159
- case 0:
160
- _a.trys.push([0, 3, , 4]);
161
- accession = self.accession;
162
- url = "https://www.uniprot.org/uniprot/" + accession + ".gff";
163
- return [4 /*yield*/, fetch(url)];
164
- case 1:
165
- response = _a.sent();
166
- if (!response.ok) {
167
- throw new Error("HTTP " + response.status + " " + response.statusText + " fetching " + url);
168
- }
169
- return [4 /*yield*/, response.text()];
170
- case 2:
171
- text = _a.sent();
172
- self.setData(text);
173
- return [3 /*break*/, 4];
174
- case 3:
175
- e_1 = _a.sent();
176
- self.setError(e_1);
177
- return [3 /*break*/, 4];
178
- case 4: return [2 /*return*/];
179
- }
180
- });
181
- }); }));
182
- },
183
- }); })
184
- .views(function (self) { return ({
185
- get loading() {
186
- return !self.data;
187
- },
188
- get features() {
189
- var _a;
190
- return (_a = self.data) === null || _a === void 0 ? void 0 : _a.split('\n').map(function (f) { return f.trim(); }).filter(function (f) { return !!f; }).filter(function (f) { return !f.startsWith('#'); }).map(function (f) {
191
- var _a = f.split('\t'), seq_id = _a[0], source = _a[1], type = _a[2], start = _a[3], end = _a[4], score = _a[5], strand = _a[6], phase = _a[7], col9 = _a[8];
192
- return __assign({ seq_id: seq_id, source: source, type: type, start: +start, end: +end, score: +score, strand: strand, phase: phase }, Object.fromEntries(col9
193
- .split(';')
194
- .map(function (f) { return f.trim(); })
195
- .filter(function (f) { return !!f; })
196
- .map(function (f) { return f.split('='); })
197
- .map(function (_a) {
198
- var key = _a[0], val = _a[1];
199
- return [
200
- key.trim(),
201
- decodeURIComponent(val).trim().split(',').join(' '),
202
- ];
203
- })));
204
- });
205
- },
206
- }); });
207
- var MSAModel = types
18
+ import { UniprotTrack } from './UniprotTrack';
19
+ import { StructureModel } from './StructureModel';
20
+ const MSAModel = types
208
21
  .model('MsaView', {
209
22
  id: ElementId,
210
23
  type: types.literal('MsaView'),
@@ -244,45 +57,45 @@ var MSAModel = types
244
57
  tree: types.maybe(types.string),
245
58
  msa: types.maybe(types.string),
246
59
  })
247
- .actions(function (self) { return ({
248
- setTree: function (tree) {
60
+ .actions(self => ({
61
+ setTree(tree) {
249
62
  self.tree = tree;
250
63
  },
251
- setMSA: function (msa) {
64
+ setMSA(msa) {
252
65
  self.msa = msa;
253
66
  },
254
- }); }), { tree: '', msa: '' }),
67
+ })), { tree: '', msa: '' }),
255
68
  })
256
- .volatile(function () { return ({
69
+ .volatile(() => ({
257
70
  error: undefined,
258
71
  margin: { left: 20, top: 20 },
259
- //eslint-disable-next-line @typescript-eslint/no-explicit-any
72
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
260
73
  DialogComponent: undefined,
261
- //eslint-disable-next-line @typescript-eslint/no-explicit-any
74
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
262
75
  DialogProps: undefined,
263
76
  // annotations
264
77
  annotPos: undefined,
265
- }); })
266
- .actions(function (self) { return ({
267
- //eslint-disable-next-line @typescript-eslint/no-explicit-any
268
- setDialogComponent: function (dlg, props) {
78
+ }))
79
+ .actions(self => ({
80
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
+ setDialogComponent(dlg, props) {
269
82
  self.DialogComponent = dlg;
270
83
  self.DialogProps = props;
271
84
  },
272
- setHeight: function (height) {
85
+ setHeight(height) {
273
86
  self.height = height;
274
87
  },
275
- addStructureToSelection: function (elt) {
88
+ addStructureToSelection(elt) {
276
89
  self.selectedStructures.push(elt);
277
90
  },
278
- removeStructureFromSelection: function (elt) {
279
- var r = self.selectedStructures.find(function (node) { return node.id === elt.id; });
91
+ removeStructureFromSelection(elt) {
92
+ const r = self.selectedStructures.find(node => node.id === elt.id);
280
93
  if (r) {
281
94
  self.selectedStructures.remove(r);
282
95
  }
283
96
  },
284
- toggleStructureSelection: function (elt) {
285
- var r = self.selectedStructures.find(function (node) { return node.id === elt.id; });
97
+ toggleStructureSelection(elt) {
98
+ const r = self.selectedStructures.find(node => node.id === elt.id);
286
99
  if (r) {
287
100
  self.selectedStructures.remove(r);
288
101
  }
@@ -290,51 +103,48 @@ var MSAModel = types
290
103
  self.selectedStructures.push(elt);
291
104
  }
292
105
  },
293
- clearSelectedStructures: function () {
294
- //@ts-ignore
106
+ clearSelectedStructures() {
107
+ // @ts-expect-error
295
108
  self.selectedStructures = [];
296
109
  },
297
- setError: function (error) {
298
- if (error) {
299
- console.error(error);
300
- }
110
+ setError(error) {
301
111
  self.error = error;
302
112
  },
303
- setMousePos: function (col, row) {
113
+ setMousePos(col, row) {
304
114
  self.mouseCol = col;
305
115
  self.mouseRow = row;
306
116
  },
307
- setRowHeight: function (n) {
117
+ setRowHeight(n) {
308
118
  self.rowHeight = n;
309
119
  },
310
- setColWidth: function (n) {
120
+ setColWidth(n) {
311
121
  self.colWidth = n;
312
122
  },
313
- setColorSchemeName: function (name) {
123
+ setColorSchemeName(name) {
314
124
  self.colorSchemeName = name;
315
125
  },
316
- setScrollY: function (n) {
126
+ setScrollY(n) {
317
127
  self.scrollY = n;
318
128
  },
319
- setScrollX: function (n) {
129
+ setScrollX(n) {
320
130
  self.scrollX = n;
321
131
  },
322
- setTreeAreaWidth: function (n) {
132
+ setTreeAreaWidth(n) {
323
133
  self.treeAreaWidth = n;
324
134
  },
325
- setTreeWidth: function (n) {
135
+ setTreeWidth(n) {
326
136
  self.treeWidth = n;
327
137
  },
328
- setCurrentAlignment: function (n) {
138
+ setCurrentAlignment(n) {
329
139
  self.currentAlignment = n;
330
140
  },
331
- toggleLabelsAlignRight: function () {
141
+ toggleLabelsAlignRight() {
332
142
  self.labelsAlignRight = !self.labelsAlignRight;
333
143
  },
334
- toggleDrawTree: function () {
144
+ toggleDrawTree() {
335
145
  self.drawTree = !self.drawTree;
336
146
  },
337
- toggleCollapsed: function (node) {
147
+ toggleCollapsed(node) {
338
148
  if (self.collapsed.includes(node)) {
339
149
  self.collapsed.remove(node);
340
150
  }
@@ -342,110 +152,71 @@ var MSAModel = types
342
152
  self.collapsed.push(node);
343
153
  }
344
154
  },
345
- setShowOnly: function (node) {
155
+ setShowOnly(node) {
346
156
  self.showOnly = node;
347
157
  },
348
- toggleBranchLen: function () {
158
+ toggleBranchLen() {
349
159
  self.showBranchLen = !self.showBranchLen;
350
160
  },
351
- toggleBgColor: function () {
161
+ toggleBgColor() {
352
162
  self.bgColor = !self.bgColor;
353
163
  },
354
- toggleNodeBubbles: function () {
164
+ toggleNodeBubbles() {
355
165
  self.drawNodeBubbles = !self.drawNodeBubbles;
356
166
  },
357
- setData: function (data) {
167
+ setData(data) {
358
168
  self.data = cast(data);
359
169
  },
360
- setMSAFilehandle: function (msaFilehandle) {
361
- return __awaiter(this, void 0, void 0, function () {
362
- return __generator(this, function (_a) {
363
- self.msaFilehandle = msaFilehandle;
364
- return [2 /*return*/];
365
- });
366
- });
170
+ async setMSAFilehandle(msaFilehandle) {
171
+ self.msaFilehandle = msaFilehandle;
367
172
  },
368
- setTreeFilehandle: function (treeFilehandle) {
369
- return __awaiter(this, void 0, void 0, function () {
370
- var r;
371
- return __generator(this, function (_a) {
372
- switch (_a.label) {
373
- case 0:
374
- if (!(treeFilehandle && 'blobId' in treeFilehandle)) return [3 /*break*/, 2];
375
- return [4 /*yield*/, openLocation(treeFilehandle).readFile('utf8')];
376
- case 1:
377
- r = (_a.sent());
378
- this.setTree(r);
379
- return [3 /*break*/, 3];
380
- case 2:
381
- self.treeFilehandle = treeFilehandle;
382
- _a.label = 3;
383
- case 3: return [2 /*return*/];
384
- }
385
- });
386
- });
173
+ async setTreeFilehandle(treeFilehandle) {
174
+ if (treeFilehandle && 'blobId' in treeFilehandle) {
175
+ const r = await openLocation(treeFilehandle).readFile('utf8');
176
+ this.setTree(r);
177
+ }
178
+ else {
179
+ self.treeFilehandle = treeFilehandle;
180
+ }
387
181
  },
388
- setMSA: function (result) {
182
+ setMSA(result) {
389
183
  self.data.setMSA(result);
390
184
  },
391
- setTree: function (result) {
185
+ setTree(result) {
392
186
  self.data.setTree(result);
393
187
  },
394
- afterCreate: function () {
395
- var _this = this;
396
- addDisposer(self, autorun(function () { return __awaiter(_this, void 0, void 0, function () {
397
- var treeFilehandle, _a, e_2;
398
- return __generator(this, function (_b) {
399
- switch (_b.label) {
400
- case 0:
401
- treeFilehandle = self.treeFilehandle;
402
- if (!treeFilehandle) return [3 /*break*/, 4];
403
- _b.label = 1;
404
- case 1:
405
- _b.trys.push([1, 3, , 4]);
406
- _a = this.setTree;
407
- return [4 /*yield*/, openLocation(treeFilehandle).readFile('utf8')];
408
- case 2:
409
- _a.apply(this, [(_b.sent())]);
410
- return [3 /*break*/, 4];
411
- case 3:
412
- e_2 = _b.sent();
413
- this.setError(e_2);
414
- return [3 /*break*/, 4];
415
- case 4: return [2 /*return*/];
188
+ afterCreate() {
189
+ addDisposer(self, autorun(async () => {
190
+ const { treeFilehandle } = self;
191
+ if (treeFilehandle) {
192
+ try {
193
+ this.setTree(await openLocation(treeFilehandle).readFile('utf8'));
416
194
  }
417
- });
418
- }); }));
419
- addDisposer(self, autorun(function () { return __awaiter(_this, void 0, void 0, function () {
420
- var msaFilehandle, _a, e_3;
421
- return __generator(this, function (_b) {
422
- switch (_b.label) {
423
- case 0:
424
- msaFilehandle = self.msaFilehandle;
425
- if (!msaFilehandle) return [3 /*break*/, 4];
426
- _b.label = 1;
427
- case 1:
428
- _b.trys.push([1, 3, , 4]);
429
- _a = this.setMSA;
430
- return [4 /*yield*/, openLocation(msaFilehandle).readFile('utf8')];
431
- case 2:
432
- _a.apply(this, [(_b.sent())]);
433
- return [3 /*break*/, 4];
434
- case 3:
435
- e_3 = _b.sent();
436
- this.setError(e_3);
437
- return [3 /*break*/, 4];
438
- case 4: return [2 /*return*/];
195
+ catch (e) {
196
+ console.error(e);
197
+ this.setError(e);
439
198
  }
440
- });
441
- }); }));
442
- },
443
- }); })
444
- .views(function (self) {
445
- var oldBlocksX = [];
446
- var oldBlocksY = [];
447
- var oldValX = 0;
448
- var oldValY = 0;
199
+ }
200
+ }));
201
+ addDisposer(self, autorun(async () => {
202
+ const { msaFilehandle } = self;
203
+ if (msaFilehandle) {
204
+ try {
205
+ this.setMSA(await openLocation(msaFilehandle).readFile('utf8'));
206
+ }
207
+ catch (e) {
208
+ console.error(e);
209
+ this.setError(e);
210
+ }
211
+ }
212
+ }));
213
+ },
214
+ }))
215
+ .views(self => {
216
+ let oldBlocksX = [];
217
+ let oldBlocksY = [];
218
+ let oldValX = 0;
219
+ let oldValY = 0;
449
220
  return {
450
221
  get initialized() {
451
222
  return ((self.data.msa ||
@@ -455,10 +226,10 @@ var MSAModel = types
455
226
  !self.error);
456
227
  },
457
228
  get blocksX() {
458
- var scrollX = self.scrollX, size = self.blockSize, colWidth = self.colWidth;
459
- var ret = -(size * Math.floor(scrollX / size)) - size;
460
- var b = [];
461
- for (var i = ret; i < ret + size * 3; i += size) {
229
+ const { scrollX, blockSize: size, colWidth } = self;
230
+ const ret = -(size * Math.floor(scrollX / size)) - size;
231
+ const b = [];
232
+ for (let i = ret; i < ret + size * 3; i += size) {
462
233
  if (i + size > 0) {
463
234
  b.push(i);
464
235
  }
@@ -471,10 +242,10 @@ var MSAModel = types
471
242
  return oldBlocksX;
472
243
  },
473
244
  get blocksY() {
474
- var scrollY = self.scrollY, size = self.blockSize, rowHeight = self.rowHeight;
475
- var ret = -(size * Math.floor(scrollY / size)) - 2 * size;
476
- var b = [];
477
- for (var i = ret; i < ret + size * 3; i += size) {
245
+ const { scrollY, blockSize: size, rowHeight } = self;
246
+ const ret = -(size * Math.floor(scrollY / size)) - 2 * size;
247
+ const b = [];
248
+ for (let i = ret; i < ret + size * 3; i += size) {
478
249
  if (i + size > 0) {
479
250
  b.push(i);
480
251
  }
@@ -488,9 +259,9 @@ var MSAModel = types
488
259
  },
489
260
  };
490
261
  })
491
- .views(function (self) { return ({
262
+ .views(self => ({
492
263
  get blocks2d() {
493
- return self.blocksY.map(function (by) { return self.blocksX.map(function (bx) { return [bx, by]; }); }).flat();
264
+ return self.blocksY.flatMap(by => self.blocksX.map(bx => [bx, by]));
494
265
  },
495
266
  get done() {
496
267
  return self.initialized && (self.data.msa || self.data.tree);
@@ -498,16 +269,17 @@ var MSAModel = types
498
269
  get colorScheme() {
499
270
  return colorSchemes[self.colorSchemeName];
500
271
  },
501
- get alignmentDetails() {
272
+ get header() {
502
273
  var _a;
503
- return ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getDetails()) || {};
274
+ return ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getHeader()) || {};
504
275
  },
505
- getRowDetails: function (name) {
276
+ getRowData(name) {
506
277
  var _a;
507
- //@ts-ignore
508
- var details = (_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getRowDetails(name);
509
- var matches = name.match(/\S+\/(\d+)-(\d+)/);
510
- return __assign(__assign({}, details), (matches && { range: { start: +matches[1], end: +matches[2] } }));
278
+ const matches = name.match(/\S+\/(\d+)-(\d+)/);
279
+ return {
280
+ data: ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getRowData(name)) || {},
281
+ ...(matches && { range: { start: +matches[1], end: +matches[2] } }),
282
+ };
511
283
  },
512
284
  get currentAlignmentName() {
513
285
  return this.alignmentNames[self.currentAlignment];
@@ -523,7 +295,7 @@ var MSAModel = types
523
295
  return [];
524
296
  },
525
297
  get MSA() {
526
- var text = self.data.msa;
298
+ const text = self.data.msa;
527
299
  if (text) {
528
300
  if (Stockholm.sniff(text)) {
529
301
  return new StockholmMSA(text, self.currentAlignment);
@@ -545,38 +317,39 @@ var MSAModel = types
545
317
  var _a;
546
318
  return self.data.tree
547
319
  ? generateNodeIds(parseNewick(self.data.tree))
548
- : ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getTree()) || { noTree: true };
320
+ : ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getTree()) || {
321
+ noTree: true,
322
+ branchset: [],
323
+ id: 'empty',
324
+ name: 'empty',
325
+ };
549
326
  },
550
327
  get rowNames() {
551
- return this.hierarchy.leaves().map(function (node) { return node.data.name; });
328
+ return this.hierarchy.leaves().map(node => node.data.name);
552
329
  },
553
330
  get mouseOverRowName() {
554
331
  return self.mouseRow !== undefined
555
332
  ? this.rowNames[self.mouseRow]
556
333
  : undefined;
557
334
  },
558
- getMouseOverResidue: function (rowName) {
335
+ getMouseOverResidue(rowName) {
559
336
  return this.columns[rowName];
560
337
  },
561
338
  get root() {
562
- var hier = hierarchy(this.tree, function (d) { return d.branchset; })
563
- .sum(function (d) { return (d.branchset ? 0 : 1); })
564
- .sort(function (a, b) {
565
- return ascending(a.data.length || 1, b.data.length || 1);
566
- });
339
+ let hier = hierarchy(this.tree, d => d.branchset)
340
+ .sum(d => (d.branchset ? 0 : 1))
341
+ .sort((a, b) => ascending(a.data.length || 1, b.data.length || 1));
567
342
  if (self.showOnly) {
568
- var res = hier.find(function (node) { return node.data.id === self.showOnly; });
343
+ const res = hier.find(node => node.data.id === self.showOnly);
569
344
  if (res) {
570
345
  hier = res;
571
346
  }
572
347
  }
573
348
  if (self.collapsed.length) {
574
349
  self.collapsed
575
- .map(function (collapsedId) {
576
- return hier.find(function (node) { return node.data.id === collapsedId; });
577
- })
578
- .filter(function (f) { return !!f; })
579
- .map(function (node) { return collapse(node); });
350
+ .map(collapsedId => hier.find(node => node.data.id === collapsedId))
351
+ .filter((f) => !!f)
352
+ .map(node => collapse(node));
580
353
  }
581
354
  return hier;
582
355
  },
@@ -585,33 +358,22 @@ var MSAModel = types
585
358
  return ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getStructures()) || {};
586
359
  },
587
360
  get inverseStructures() {
588
- var map = Object.entries(this.structures)
589
- .map(function (_a) {
590
- var key = _a[0], val = _a[1];
591
- return val.map(function (pdbEntry) { return [pdbEntry.pdb, { id: key }]; });
592
- })
593
- .flat();
594
- return Object.fromEntries(map);
361
+ return Object.fromEntries(Object.entries(this.structures).flatMap(([key, val]) => val.map(pdbEntry => [pdbEntry.pdb, { id: key }])));
595
362
  },
596
363
  get msaAreaWidth() {
597
- //@ts-ignore
364
+ // @ts-expect-error
598
365
  return self.width - self.treeAreaWidth;
599
366
  },
600
367
  get blanks() {
601
- var _this = this;
602
368
  var _a;
603
- var blanks = [];
604
- var strs = this.hierarchy
369
+ const blanks = [];
370
+ const strs = this.hierarchy
605
371
  .leaves()
606
- .map(function (_a) {
607
- var _b;
608
- var data = _a.data;
609
- return (_b = _this.MSA) === null || _b === void 0 ? void 0 : _b.getRow(data.name);
610
- })
611
- .filter(function (item) { return !!item; });
612
- for (var i = 0; i < ((_a = strs[0]) === null || _a === void 0 ? void 0 : _a.length); i++) {
613
- var counter = 0;
614
- for (var j = 0; j < strs.length; j++) {
372
+ .map(({ data }) => { var _a; return (_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getRow(data.name); })
373
+ .filter((item) => !!item);
374
+ for (let i = 0; i < ((_a = strs[0]) === null || _a === void 0 ? void 0 : _a.length); i++) {
375
+ let counter = 0;
376
+ for (let j = 0; j < strs.length; j++) {
615
377
  if (strs[j][i] === '-') {
616
378
  counter++;
617
379
  }
@@ -623,35 +385,23 @@ var MSAModel = types
623
385
  return blanks;
624
386
  },
625
387
  get rows() {
626
- var _this = this;
627
388
  return this.hierarchy
628
389
  .leaves()
629
- .map(function (_a) {
630
- var _b;
631
- var data = _a.data;
632
- return [data.name, (_b = _this.MSA) === null || _b === void 0 ? void 0 : _b.getRow(data.name)];
633
- })
634
- .filter(function (f) { return !!f[1]; });
390
+ .map(({ data }) => { var _a; return [data.name, (_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getRow(data.name)]; })
391
+ .filter((f) => !!f[1]);
635
392
  },
636
393
  get columns() {
637
- var rows = this.rows;
638
- var cols = this.columns2d;
639
- return Object.fromEntries(rows.map(function (row, index) { return [row[0], cols[index]]; }));
394
+ return Object.fromEntries(this.rows.map((row, index) => [row[0], this.columns2d[index]]));
640
395
  },
641
396
  get columns2d() {
642
- var strs = this.rows.map(function (r) { return r[1]; });
643
- var ret = [];
644
- for (var i = 0; i < strs.length; i++) {
645
- ret.push(skipBlanks(this.blanks, strs[i]));
646
- }
647
- return ret;
397
+ return this.rows.map(r => r[1]).map(str => skipBlanks(this.blanks, str));
648
398
  },
649
399
  get colStats() {
650
- var r = [];
651
- var m = this.columns2d;
652
- for (var i = 0; i < m.length; i++) {
653
- for (var j = 0; j < m[i].length; j++) {
654
- var l = r[j] || {};
400
+ const r = [];
401
+ const m = this.columns2d;
402
+ for (let i = 0; i < m.length; i++) {
403
+ for (let j = 0; j < m[i].length; j++) {
404
+ const l = r[j] || {};
655
405
  if (!l[m[i][j]]) {
656
406
  l[m[i][j]] = 0;
657
407
  }
@@ -663,43 +413,45 @@ var MSAModel = types
663
413
  },
664
414
  // generates a new tree that is clustered with x,y positions
665
415
  get hierarchy() {
666
- var root = this.root;
667
- var clust = cluster()
416
+ const root = this.root;
417
+ const clust = cluster()
668
418
  .size([this.totalHeight, self.treeWidth])
669
- .separation(function () { return 1; });
419
+ .separation(() => 1);
670
420
  clust(root);
671
- setBrLength(root,
672
- //@ts-ignore
673
- (root.data.length = 0), self.treeWidth / maxLength(root));
421
+ setBrLength(root, (root.data.length = 0), self.treeWidth / maxLength(root));
674
422
  return root;
675
423
  },
676
424
  get totalHeight() {
677
425
  return this.root.leaves().length * self.rowHeight;
678
426
  },
679
- }); })
680
- .actions(function (self) { return ({
681
- addUniprotTrack: function (node) {
682
- if (self.boxTracks.find(function (t) { return t.name === node.name; })) {
427
+ }))
428
+ .actions(self => ({
429
+ addUniprotTrack(node) {
430
+ if (self.boxTracks.some(t => t.name === node.name)) {
683
431
  if (self.turnedOffTracks.has(node.name)) {
684
432
  this.toggleTrack(node.name);
685
433
  }
686
434
  }
687
435
  else {
688
- self.boxTracks.push(__assign(__assign({}, node), { id: node.name, associatedRowName: node.name }));
436
+ self.boxTracks.push({
437
+ ...node,
438
+ id: node.name,
439
+ associatedRowName: node.name,
440
+ });
689
441
  }
690
442
  },
691
- doScrollY: function (deltaY) {
443
+ doScrollY(deltaY) {
692
444
  self.scrollY = clamp(-self.totalHeight + 10, self.scrollY + deltaY, 0);
693
445
  },
694
- doScrollX: function (deltaX) {
446
+ doScrollX(deltaX) {
695
447
  self.scrollX = clamp(-self.numColumns + (self.msaAreaWidth - 100), self.scrollX + deltaX, 0);
696
448
  },
697
- setMouseoveredColumn: function (n, chain, file) {
449
+ setMouseoveredColumn(n, chain, file) {
698
450
  var _a;
699
- var j = 0;
700
- var i = 0;
701
- var id = (self.inverseStructures[file.slice(0, -4)] || {}).id;
702
- var row = (_a = self.MSA) === null || _a === void 0 ? void 0 : _a.getRow(id);
451
+ let j = 0;
452
+ let i = 0;
453
+ const { id } = self.inverseStructures[file.slice(0, -4)] || {};
454
+ const row = (_a = self.MSA) === null || _a === void 0 ? void 0 : _a.getRow(id);
703
455
  if (row) {
704
456
  for (i = 0; i < row.length && j < n; i++) {
705
457
  if (row[i] !== '-') {
@@ -712,7 +464,7 @@ var MSAModel = types
712
464
  self.mouseCol = undefined;
713
465
  }
714
466
  },
715
- toggleTrack: function (id) {
467
+ toggleTrack(id) {
716
468
  if (self.turnedOffTracks.has(id)) {
717
469
  self.turnedOffTracks.delete(id);
718
470
  }
@@ -720,8 +472,8 @@ var MSAModel = types
720
472
  self.turnedOffTracks.set(id, true);
721
473
  }
722
474
  },
723
- }); })
724
- .views(function (self) { return ({
475
+ }))
476
+ .views(self => ({
725
477
  get secondaryStructureConsensus() {
726
478
  var _a;
727
479
  return (_a = self.MSA) === null || _a === void 0 ? void 0 : _a.secondaryStructureConsensus;
@@ -731,11 +483,11 @@ var MSAModel = types
731
483
  return (_a = self.MSA) === null || _a === void 0 ? void 0 : _a.seqConsensus;
732
484
  },
733
485
  get conservation() {
734
- var m = self.columns2d;
486
+ const m = self.columns2d;
735
487
  if (m.length) {
736
- for (var i = 0; i < m[0].length; i++) {
737
- var col = [];
738
- for (var j = 0; j < m.length; j++) {
488
+ for (let i = 0; i < m[0].length; i++) {
489
+ const col = [];
490
+ for (let j = 0; j < m.length; j++) {
739
491
  col.push(m[j][i]);
740
492
  }
741
493
  }
@@ -743,24 +495,28 @@ var MSAModel = types
743
495
  return ['a'];
744
496
  },
745
497
  get tracks() {
746
- var blanks = self.blanks;
747
- var adapterTracks = self.MSA
748
- ? self.MSA.tracks.map(function (track) {
749
- var data = track.data;
498
+ const blanks = self.blanks;
499
+ const adapterTracks = self.MSA
500
+ ? self.MSA.tracks.map(track => {
501
+ const { data } = track;
750
502
  return {
751
- model: __assign(__assign({}, track), { data: data ? skipBlanks(blanks, data) : undefined, height: self.rowHeight }),
503
+ model: {
504
+ ...track,
505
+ data: data ? skipBlanks(blanks, data) : undefined,
506
+ height: self.rowHeight,
507
+ },
752
508
  ReactComponent: TextTrack,
753
509
  };
754
510
  })
755
511
  : [];
756
- var boxTracks = self.boxTracks
512
+ const boxTracks = self.boxTracks
757
513
  // filter out tracks that are associated with hidden rows
758
- .filter(function (track) { return !!self.rows.find(function (row) { return row[0] === track.name; }); })
759
- .map(function (track) { return ({
514
+ .filter(track => !!self.rows.some(row => row[0] === track.name))
515
+ .map(track => ({
760
516
  model: track,
761
517
  ReactComponent: BoxTrack,
762
- }); });
763
- var annotationTracks = self.annotatedRegions.length > 0
518
+ }));
519
+ const annotationTracks = self.annotatedRegions.length > 0
764
520
  ? [
765
521
  {
766
522
  model: {
@@ -769,13 +525,10 @@ var MSAModel = types
769
525
  id: 'annotations',
770
526
  name: 'User-created annotations',
771
527
  data: self.annotatedRegions
772
- .map(function (region) {
773
- var attrs = region.attributes
528
+ .map(region => {
529
+ const attrs = region.attributes
774
530
  ? Object.entries(region.attributes)
775
- .map(function (_a) {
776
- var k = _a[0], v = _a[1];
777
- return k + "=" + v.join(',');
778
- })
531
+ .map(([k, v]) => `${k}=${v.join(',')}`)
779
532
  .join(';')
780
533
  : '.';
781
534
  return [
@@ -796,57 +549,57 @@ var MSAModel = types
796
549
  },
797
550
  ]
798
551
  : [];
799
- return __spreadArray(__spreadArray(__spreadArray([], adapterTracks, true), boxTracks, true), annotationTracks, true);
552
+ return [...adapterTracks, ...boxTracks, ...annotationTracks];
800
553
  },
801
554
  get turnedOnTracks() {
802
- return this.tracks.filter(function (f) { return !self.turnedOffTracks.has(f.model.id); });
555
+ return this.tracks.filter(f => !self.turnedOffTracks.has(f.model.id));
803
556
  },
804
557
  // returns coordinate in the current relative coordinate scheme
805
- pxToBp: function (coord) {
558
+ pxToBp(coord) {
806
559
  return Math.floor((coord - self.scrollX) / self.colWidth);
807
560
  },
808
- rowSpecificBpToPx: function (rowName, position) {
561
+ rowSpecificBpToPx(rowName, position) {
809
562
  var _a;
810
- var rowNames = self.rowNames, rows = self.rows, blanks = self.blanks;
811
- var index = rowNames.indexOf(rowName);
812
- var row = rows[index][1];
813
- var details = self.getRowDetails(rowName);
814
- var offset = ((_a = details.range) === null || _a === void 0 ? void 0 : _a.start) || 0;
815
- var current = position - offset;
563
+ const { rowNames, rows, blanks } = self;
564
+ const index = rowNames.indexOf(rowName);
565
+ const row = rows[index][1];
566
+ const details = self.getRowData(rowName);
567
+ const offset = ((_a = details.range) === null || _a === void 0 ? void 0 : _a.start) || 0;
568
+ const current = position - offset;
816
569
  if (current < 0) {
817
570
  return 0;
818
571
  }
819
- var j = 0;
820
- var i = 0;
572
+ let j = 0;
573
+ let i = 0;
821
574
  for (; i < row.length; i++) {
822
575
  if (row[i] !== '-' && j++ === current) {
823
576
  break;
824
577
  }
825
578
  }
826
- var count = 0;
827
- for (var k = 0; k < row.length; k++) {
828
- if (blanks.indexOf(k) !== -1 && k < i + 1) {
579
+ let count = 0;
580
+ for (let k = 0; k < row.length; k++) {
581
+ if (blanks.includes(k) && k < i + 1) {
829
582
  count++;
830
583
  }
831
584
  }
832
585
  return i - count;
833
586
  },
834
- globalBpToPx: function (position) {
587
+ globalBpToPx(position) {
835
588
  var _a;
836
- var count = 0;
837
- for (var k = 0; k < ((_a = self.rows[0]) === null || _a === void 0 ? void 0 : _a[1].length); k++) {
838
- if (self.blanks.indexOf(k) !== -1 && k < position + 1) {
589
+ let count = 0;
590
+ for (let k = 0; k < ((_a = self.rows[0]) === null || _a === void 0 ? void 0 : _a[1].length); k++) {
591
+ if (self.blanks.includes(k) && k < position + 1) {
839
592
  count++;
840
593
  }
841
594
  }
842
595
  return position - count;
843
596
  },
844
- relativePxToBp: function (rowName, position) {
845
- var rowNames = self.rowNames, rows = self.rows;
846
- var index = rowNames.indexOf(rowName);
847
- var row = rows[index][1];
848
- var k = 0;
849
- for (var i = 0; i < position; i++) {
597
+ relativePxToBp(rowName, position) {
598
+ const { rowNames, rows } = self;
599
+ const index = rowNames.indexOf(rowName);
600
+ const row = rows[index][1];
601
+ let k = 0;
602
+ for (let i = 0; i < position; i++) {
850
603
  if (row[i] !== '-') {
851
604
  k++;
852
605
  }
@@ -856,9 +609,9 @@ var MSAModel = types
856
609
  }
857
610
  return k;
858
611
  },
859
- getPos: function (pos) {
860
- var j = 0;
861
- for (var i = 0, k = 0; i < pos; i++, j++) {
612
+ getPos(pos) {
613
+ let j = 0;
614
+ for (let i = 0, k = 0; i < pos; i++, j++) {
862
615
  while (j === self.blanks[k]) {
863
616
  k++;
864
617
  j++;
@@ -866,31 +619,37 @@ var MSAModel = types
866
619
  }
867
620
  return j;
868
621
  },
869
- }); })
870
- .actions(function (self) { return ({
871
- addAnnotation: function (start, end, attributes) {
622
+ }))
623
+ .actions(self => ({
624
+ addAnnotation(start, end, attributes) {
872
625
  self.annotatedRegions.push({
873
626
  start: self.getPos(start),
874
627
  end: self.getPos(end),
875
- attributes: attributes,
628
+ attributes,
876
629
  });
877
630
  },
878
- setOffsets: function (left, right) {
879
- self.annotPos = { left: left, right: right };
631
+ setOffsets(left, right) {
632
+ self.annotPos = { left, right };
880
633
  },
881
- clearAnnotPos: function () {
634
+ clearAnnotPos() {
882
635
  self.annotPos = undefined;
883
636
  },
884
- }); });
885
- var model = types.snapshotProcessor(types.compose(BaseViewModel, MSAModel), {
886
- postProcessor: function (result) {
887
- var _a = result.data, tree = _a.tree, msa = _a.msa, rest = __rest(result
888
- // remove the MSA/tree data from the tree if the filehandle available in
889
- // which case it can be reloaded on refresh
890
- , ["data"]);
637
+ }));
638
+ const model = types.snapshotProcessor(types.compose(BaseViewModel, MSAModel), {
639
+ postProcessor(result) {
640
+ const snap = result;
641
+ const { data: { tree, msa }, ...rest } = snap;
891
642
  // remove the MSA/tree data from the tree if the filehandle available in
892
643
  // which case it can be reloaded on refresh
893
- return __assign({ data: __assign(__assign({}, (!result.treeFilehandle && { tree: tree })), (!result.msaFilehandle && { msa: msa })) }, rest);
644
+ return {
645
+ data: {
646
+ // https://andreasimonecosta.dev/posts/the-shortest-way-to-conditionally-insert-properties-into-an-object-literal/
647
+ ...(!result.treeFilehandle && { tree }),
648
+ ...(!result.msaFilehandle && { msa }),
649
+ },
650
+ ...rest,
651
+ };
894
652
  },
895
653
  });
896
654
  export default model;
655
+ //# sourceMappingURL=model.js.map