react-msaview 5.2.0 → 5.2.1

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 (141) hide show
  1. package/README.md +41 -8
  2. package/bundle/index.js +17 -17
  3. package/bundle/index.js.LICENSE.txt +1 -1
  4. package/bundle/index.js.map +1 -1
  5. package/dist/components/ConservationTrack.js +2 -13
  6. package/dist/components/ConservationTrack.js.map +1 -1
  7. package/dist/components/MSAView.js +8 -1
  8. package/dist/components/MSAView.js.map +1 -1
  9. package/dist/components/ResizeHandles.d.ts +3 -0
  10. package/dist/components/ResizeHandles.js +60 -105
  11. package/dist/components/ResizeHandles.js.map +1 -1
  12. package/dist/components/TextTrack.js +2 -1
  13. package/dist/components/TextTrack.js.map +1 -1
  14. package/dist/components/Track.js +1 -1
  15. package/dist/components/Track.js.map +1 -1
  16. package/dist/components/VerticalScrollbar.js +2 -2
  17. package/dist/components/VerticalScrollbar.js.map +1 -1
  18. package/dist/components/dialogs/UserProvidedDomainsDialog.js +1 -2
  19. package/dist/components/dialogs/UserProvidedDomainsDialog.js.map +1 -1
  20. package/dist/components/header/ColorSchemeMenu.js +1 -1
  21. package/dist/components/header/ColorSchemeMenu.js.map +1 -1
  22. package/dist/components/header/FileMenu.js +1 -1
  23. package/dist/components/header/FileMenu.js.map +1 -1
  24. package/dist/components/header/HeaderInfoArea.js +28 -8
  25. package/dist/components/header/HeaderInfoArea.js.map +1 -1
  26. package/dist/components/header/MSASettingsMenu.js +1 -1
  27. package/dist/components/header/MSASettingsMenu.js.map +1 -1
  28. package/dist/components/header/TreeSettingsMenu.js +1 -1
  29. package/dist/components/header/TreeSettingsMenu.js.map +1 -1
  30. package/dist/components/header/ZoomControls.js +7 -2
  31. package/dist/components/header/ZoomControls.js.map +1 -1
  32. package/dist/components/header/ZoomMenu.js +9 -0
  33. package/dist/components/header/ZoomMenu.js.map +1 -1
  34. package/dist/components/minimap/Minimap.js +6 -12
  35. package/dist/components/minimap/Minimap.js.map +1 -1
  36. package/dist/components/minimap/MinimapSVG.js +7 -13
  37. package/dist/components/minimap/MinimapSVG.js.map +1 -1
  38. package/dist/components/minimap/minimapLayout.d.ts +9 -0
  39. package/dist/components/minimap/minimapLayout.js +15 -0
  40. package/dist/components/minimap/minimapLayout.js.map +1 -0
  41. package/dist/components/msa/MSACanvas.js +6 -1
  42. package/dist/components/msa/MSACanvas.js.map +1 -1
  43. package/dist/components/msa/MSACanvasBlock.js +5 -1
  44. package/dist/components/msa/MSACanvasBlock.js.map +1 -1
  45. package/dist/components/msa/MSAMouseoverCanvas.js +2 -2
  46. package/dist/components/msa/MSAMouseoverCanvas.js.map +1 -1
  47. package/dist/components/msa/renderMSABlock.js +5 -7
  48. package/dist/components/msa/renderMSABlock.js.map +1 -1
  49. package/dist/components/msa/renderMSAMouseover.js +3 -2
  50. package/dist/components/msa/renderMSAMouseover.js.map +1 -1
  51. package/dist/components/tracks/renderTracksSvg.js +2 -1
  52. package/dist/components/tracks/renderTracksSvg.js.map +1 -1
  53. package/dist/components/tree/renderTreeCanvas.js +2 -2
  54. package/dist/components/tree/renderTreeCanvas.js.map +1 -1
  55. package/dist/constants.d.ts +4 -0
  56. package/dist/constants.js +7 -0
  57. package/dist/constants.js.map +1 -1
  58. package/dist/flatToTree.js +6 -0
  59. package/dist/flatToTree.js.map +1 -1
  60. package/dist/hierarchy.d.ts +1 -1
  61. package/dist/hierarchy.js +136 -102
  62. package/dist/hierarchy.js.map +1 -1
  63. package/dist/index.d.ts +1 -0
  64. package/dist/index.js +1 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/launchInterProScan.js +22 -9
  67. package/dist/launchInterProScan.js.map +1 -1
  68. package/dist/measureTextCanvas.js +2 -1
  69. package/dist/measureTextCanvas.js.map +1 -1
  70. package/dist/model.d.ts +212 -150
  71. package/dist/model.js +239 -205
  72. package/dist/model.js.map +1 -1
  73. package/dist/parseAsn1.js +8 -2
  74. package/dist/parseAsn1.js.map +1 -1
  75. package/dist/renderToSvg.js +27 -24
  76. package/dist/renderToSvg.js.map +1 -1
  77. package/dist/setFontSize.d.ts +3 -0
  78. package/dist/setFontSize.js +14 -0
  79. package/dist/setFontSize.js.map +1 -0
  80. package/dist/useDevicePixelRatio.d.ts +1 -0
  81. package/dist/useDevicePixelRatio.js +27 -0
  82. package/dist/useDevicePixelRatio.js.map +1 -0
  83. package/dist/useWheelScroll.d.ts +3 -1
  84. package/dist/useWheelScroll.js +64 -22
  85. package/dist/useWheelScroll.js.map +1 -1
  86. package/dist/util.d.ts +4 -0
  87. package/dist/util.js +36 -0
  88. package/dist/util.js.map +1 -1
  89. package/dist/version.d.ts +1 -1
  90. package/dist/version.js +1 -1
  91. package/dist/webpack.js +0 -1
  92. package/dist/webpack.js.map +1 -1
  93. package/dist/wheelZoom.d.ts +4 -0
  94. package/dist/wheelZoom.js +43 -0
  95. package/dist/wheelZoom.js.map +1 -0
  96. package/package.json +5 -5
  97. package/src/components/ConservationTrack.tsx +2 -18
  98. package/src/components/MSAView.tsx +10 -1
  99. package/src/components/ResizeHandles.tsx +101 -113
  100. package/src/components/TextTrack.tsx +2 -1
  101. package/src/components/Track.tsx +1 -1
  102. package/src/components/VerticalScrollbar.tsx +2 -2
  103. package/src/components/dialogs/UserProvidedDomainsDialog.tsx +1 -2
  104. package/src/components/header/ColorSchemeMenu.tsx +1 -0
  105. package/src/components/header/FileMenu.tsx +1 -0
  106. package/src/components/header/HeaderInfoArea.tsx +32 -7
  107. package/src/components/header/MSASettingsMenu.tsx +1 -0
  108. package/src/components/header/TreeSettingsMenu.tsx +1 -0
  109. package/src/components/header/ZoomControls.tsx +14 -1
  110. package/src/components/header/ZoomMenu.tsx +10 -0
  111. package/src/components/minimap/Minimap.tsx +6 -15
  112. package/src/components/minimap/MinimapSVG.tsx +9 -22
  113. package/src/components/minimap/minimapLayout.ts +17 -0
  114. package/src/components/msa/MSACanvas.tsx +9 -0
  115. package/src/components/msa/MSACanvasBlock.tsx +7 -1
  116. package/src/components/msa/MSAMouseoverCanvas.tsx +4 -3
  117. package/src/components/msa/renderMSABlock.ts +6 -9
  118. package/src/components/msa/renderMSAMouseover.ts +3 -1
  119. package/src/components/tracks/renderTracksSvg.ts +2 -1
  120. package/src/components/tree/renderTreeCanvas.ts +2 -2
  121. package/src/constants.ts +8 -0
  122. package/src/flatToTree.test.ts +30 -0
  123. package/src/flatToTree.ts +10 -1
  124. package/src/hierarchy.test.ts +53 -1
  125. package/src/hierarchy.ts +139 -113
  126. package/src/index.ts +1 -0
  127. package/src/launchInterProScan.ts +33 -11
  128. package/src/measureTextCanvas.ts +3 -1
  129. package/src/model.ts +312 -242
  130. package/src/parseAsn1.test.ts +6 -0
  131. package/src/parseAsn1.ts +11 -3
  132. package/src/renderToSvg.tsx +79 -67
  133. package/src/setFontSize.test.ts +33 -0
  134. package/src/setFontSize.ts +20 -0
  135. package/src/useDevicePixelRatio.ts +29 -0
  136. package/src/useWheelScroll.ts +79 -21
  137. package/src/util.ts +35 -0
  138. package/src/version.ts +1 -1
  139. package/src/webpack.ts +0 -1
  140. package/src/wheelZoom.test.ts +46 -0
  141. package/src/wheelZoom.ts +47 -0
package/dist/hierarchy.js CHANGED
@@ -1,133 +1,148 @@
1
+ // All traversals below are iterative (explicit stack / reversed-preorder) rather
2
+ // than recursive: phylogenetic trees can be deeply unbalanced (a caterpillar tree
3
+ // has depth ~= leaf count), which overflows the JS call stack on recursion.
4
+ // Pre-order: every parent precedes all of its descendants. Iterating the result
5
+ // in reverse therefore yields a valid post-order (children before parents), which
6
+ // the accumulation helpers rely on.
7
+ export function descendants(node) {
8
+ const result = [];
9
+ const stack = [node];
10
+ while (stack.length > 0) {
11
+ const n = stack.pop();
12
+ result.push(n);
13
+ if (n.children) {
14
+ for (let i = n.children.length - 1; i >= 0; i--) {
15
+ stack.push(n.children[i]);
16
+ }
17
+ }
18
+ }
19
+ return result;
20
+ }
1
21
  function computeHeight(node) {
2
- let h = 0;
3
- if (node.children) {
4
- for (const child of node.children) {
5
- const ch = computeHeight(child) + 1;
6
- if (ch > h) {
7
- h = ch;
22
+ const nodes = descendants(node);
23
+ for (let i = nodes.length - 1; i >= 0; i--) {
24
+ const n = nodes[i];
25
+ let h = 0;
26
+ if (n.children) {
27
+ for (const child of n.children) {
28
+ if (child.height + 1 > h) {
29
+ h = child.height + 1;
30
+ }
8
31
  }
9
32
  }
33
+ n.height = h;
10
34
  }
11
- node.height = h;
12
- return h;
13
35
  }
14
- function wrap(data, childrenAccessor, parent, depth) {
15
- const kids = childrenAccessor(data);
16
- const node = {
36
+ export function hierarchy(data, childrenAccessor) {
37
+ const root = {
17
38
  data,
18
39
  children: null,
19
- parent,
20
- depth,
40
+ parent: null,
41
+ depth: 0,
21
42
  height: 0,
22
43
  };
23
- if (kids?.length) {
24
- node.children = kids.map(d => wrap(d, childrenAccessor, node, depth + 1));
44
+ const stack = [root];
45
+ while (stack.length > 0) {
46
+ const node = stack.pop();
47
+ const kids = childrenAccessor(node.data);
48
+ if (kids?.length) {
49
+ node.children = kids.map(d => ({
50
+ data: d,
51
+ children: null,
52
+ parent: node,
53
+ depth: node.depth + 1,
54
+ height: 0,
55
+ }));
56
+ for (const child of node.children) {
57
+ stack.push(child);
58
+ }
59
+ }
25
60
  }
26
- return node;
27
- }
28
- export function hierarchy(data, childrenAccessor) {
29
- const root = wrap(data, childrenAccessor, null, 0);
30
61
  computeHeight(root);
31
62
  return root;
32
63
  }
33
64
  export function sum(node, valueFn) {
34
- function visit(n) {
65
+ const nodes = descendants(node);
66
+ for (let i = nodes.length - 1; i >= 0; i--) {
67
+ const n = nodes[i];
35
68
  let s = valueFn(n.data);
36
69
  if (n.children) {
37
70
  for (const child of n.children) {
38
- s += visit(child);
71
+ s += child.value;
39
72
  }
40
73
  }
41
74
  n.value = s;
42
- return s;
43
75
  }
44
- visit(node);
45
76
  return node;
46
77
  }
47
78
  export function sort(node, compareFn) {
48
- function visit(n) {
79
+ const stack = [node];
80
+ while (stack.length > 0) {
81
+ const n = stack.pop();
49
82
  if (n.children) {
50
83
  n.children.sort(compareFn);
51
84
  for (const child of n.children) {
52
- visit(child);
85
+ stack.push(child);
53
86
  }
54
87
  }
55
88
  }
56
- visit(node);
57
89
  return node;
58
90
  }
59
91
  export function find(node, predicate) {
60
- if (predicate(node)) {
61
- return node;
62
- }
63
- if (node.children) {
64
- for (const child of node.children) {
65
- const result = find(child, predicate);
66
- if (result) {
67
- return result;
92
+ const stack = [node];
93
+ let found;
94
+ while (stack.length > 0 && found === undefined) {
95
+ const n = stack.pop();
96
+ if (predicate(n)) {
97
+ found = n;
98
+ }
99
+ else if (n.children) {
100
+ for (let i = n.children.length - 1; i >= 0; i--) {
101
+ stack.push(n.children[i]);
68
102
  }
69
103
  }
70
104
  }
71
- return undefined;
105
+ return found;
72
106
  }
73
107
  export function leaves(node) {
74
108
  const result = [];
75
- function visit(n) {
109
+ const stack = [node];
110
+ while (stack.length > 0) {
111
+ const n = stack.pop();
76
112
  if (n.children) {
77
- for (const child of n.children) {
78
- visit(child);
113
+ for (let i = n.children.length - 1; i >= 0; i--) {
114
+ stack.push(n.children[i]);
79
115
  }
80
116
  }
81
117
  else {
82
118
  result.push(n);
83
119
  }
84
120
  }
85
- visit(node);
86
- return result;
87
- }
88
- export function descendants(node) {
89
- const result = [];
90
- function visit(n) {
91
- result.push(n);
92
- if (n.children) {
93
- for (const child of n.children) {
94
- visit(child);
95
- }
96
- }
97
- }
98
- visit(node);
99
121
  return result;
100
122
  }
101
123
  export function links(node) {
102
124
  const result = [];
103
- function visit(n) {
104
- if (n.children) {
105
- for (const child of n.children) {
106
- result.push({ source: n, target: child });
107
- visit(child);
108
- }
109
- }
110
- }
111
- visit(node);
125
+ forEachLink(node, (source, target) => {
126
+ result.push({ source, target });
127
+ });
112
128
  return result;
113
129
  }
114
130
  export function forEachLink(node, cb) {
115
- function visit(n) {
131
+ const stack = [node];
132
+ while (stack.length > 0) {
133
+ const n = stack.pop();
116
134
  if (n.children) {
117
- for (const child of n.children) {
135
+ for (let i = n.children.length - 1; i >= 0; i--) {
136
+ const child = n.children[i];
118
137
  cb(n, child);
119
- visit(child);
138
+ stack.push(child);
120
139
  }
121
140
  }
122
141
  }
123
- visit(node);
124
142
  }
125
143
  export function forEachDescendant(node, cb) {
126
- cb(node);
127
- if (node.children) {
128
- for (const child of node.children) {
129
- forEachDescendant(child, cb);
130
- }
144
+ for (const n of descendants(node)) {
145
+ cb(n);
131
146
  }
132
147
  }
133
148
  export function clusterLayout(root, sizeX, sizeY) {
@@ -137,30 +152,30 @@ export function clusterLayout(root, sizeX, sizeY) {
137
152
  for (let i = 0; i < n; i++) {
138
153
  leafNodes[i].x = (i + 0.5) * step;
139
154
  }
140
- function assignX(node) {
141
- if (!node.children) {
142
- return;
143
- }
144
- for (const child of node.children) {
145
- assignX(child);
146
- }
147
- let sum = 0;
148
- for (const child of node.children) {
149
- sum += child.x;
155
+ // x of an internal node is the mean of its children's x, so process in
156
+ // post-order (children before parents)
157
+ const nodes = descendants(root);
158
+ for (let i = nodes.length - 1; i >= 0; i--) {
159
+ const node = nodes[i];
160
+ if (node.children) {
161
+ let sum = 0;
162
+ for (const child of node.children) {
163
+ sum += child.x;
164
+ }
165
+ node.x = sum / node.children.length;
150
166
  }
151
- node.x = sum / node.children.length;
152
167
  }
153
- assignX(root);
154
168
  const rootHeight = root.height;
155
- function assignY(node, depth) {
169
+ const stack = [{ node: root, depth: 0 }];
170
+ while (stack.length > 0) {
171
+ const { node, depth } = stack.pop();
156
172
  node.y = rootHeight === 0 ? sizeY : (depth / rootHeight) * sizeY;
157
173
  if (node.children) {
158
174
  for (const child of node.children) {
159
- assignY(child, depth + 1);
175
+ stack.push({ node: child, depth: depth + 1 });
160
176
  }
161
177
  }
162
178
  }
163
- assignY(root, 0);
164
179
  }
165
180
  export function collapse(node) {
166
181
  if (node.children) {
@@ -173,35 +188,54 @@ export function collapse(node) {
173
188
  // x. Memoizes onto node.depthToLeaf since the layout walks the tree repeatedly.
174
189
  // See https://github.com/emmanuelparadis/ape/blob/master/R/plot.phylo.R
175
190
  export function calcDepthToLeaf(node) {
176
- if (node.depthToLeaf === undefined) {
177
- let maxDepth = 0;
178
- if (node.children) {
179
- for (const child of node.children) {
180
- maxDepth = Math.max(maxDepth, 1 + calcDepthToLeaf(child));
191
+ const nodes = descendants(node);
192
+ for (let i = nodes.length - 1; i >= 0; i--) {
193
+ const n = nodes[i];
194
+ if (n.depthToLeaf === undefined) {
195
+ let maxDepth = 0;
196
+ if (n.children) {
197
+ for (const child of n.children) {
198
+ maxDepth = Math.max(maxDepth, 1 + child.depthToLeaf);
199
+ }
181
200
  }
201
+ n.depthToLeaf = maxDepth;
182
202
  }
183
- node.depthToLeaf = maxDepth;
184
203
  }
185
204
  return node.depthToLeaf;
186
205
  }
187
206
  export function findMaxBranchLen(node) {
188
- let maxLen = node.len || 0;
189
- if (node.children) {
190
- for (const child of node.children) {
191
- maxLen = Math.max(maxLen, findMaxBranchLen(child));
192
- }
207
+ let maxLen = 0;
208
+ for (const n of descendants(node)) {
209
+ maxLen = Math.max(maxLen, n.len || 0);
193
210
  }
194
211
  return maxLen;
195
212
  }
213
+ // Max root-to-leaf sum of branch lengths within the subtree at d
196
214
  export function maxLength(d) {
197
- return ((d.data.length || 0) +
198
- (d.children ? d.children.reduce((m, c) => Math.max(m, maxLength(c)), 0) : 0));
215
+ const nodes = descendants(d);
216
+ const pathLen = new Map();
217
+ for (let i = nodes.length - 1; i >= 0; i--) {
218
+ const n = nodes[i];
219
+ let childMax = 0;
220
+ if (n.children) {
221
+ for (const child of n.children) {
222
+ childMax = Math.max(childMax, pathLen.get(child));
223
+ }
224
+ }
225
+ pathLen.set(n, (n.data.length || 0) + childMax);
226
+ }
227
+ return pathLen.get(d);
199
228
  }
200
229
  export function setBrLength(d, y0, k) {
201
- d.len = (y0 += Math.max(d.data.length || 0, 0)) * k;
202
- if (d.children) {
203
- for (const child of d.children) {
204
- setBrLength(child, y0, k);
230
+ const stack = [{ node: d, y0 }];
231
+ while (stack.length > 0) {
232
+ const { node, y0: acc } = stack.pop();
233
+ const next = acc + Math.max(node.data.length || 0, 0);
234
+ node.len = next * k;
235
+ if (node.children) {
236
+ for (const child of node.children) {
237
+ stack.push({ node: child, y0: next });
238
+ }
205
239
  }
206
240
  }
207
241
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hierarchy.js","sourceRoot":"","sources":["../src/hierarchy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hierarchy.js","sourceRoot":"","sources":["../src/hierarchy.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { renderToSvg } from './renderToSvg.tsx';
1
2
  export { default as MSAView } from './components/Loading.tsx';
2
3
  export { default as MSAViewer } from './components/MSAViewer.tsx';
3
4
  export { type MsaViewModel, default as MSAModelF } from './model.ts';
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@
5
5
  // Those plugins also reach into the MsaViewModel instance at runtime; the model
6
6
  // members they rely on (e.g. mouseCol/setMousePos, setHighlightedColumns,
7
7
  // seqPosToVisibleCol/visibleColToSeqPos) are flagged inline in model.ts.
8
+ export { renderToSvg } from "./renderToSvg.js";
8
9
  export { default as MSAView } from "./components/Loading.js";
9
10
  export { default as MSAViewer } from "./components/MSAViewer.js";
10
11
  export { default as MSAModelF } from "./model.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,yDAAyD;AACzD,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,0EAA0E;AAC1E,yEAAyE;AACzE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAA0B,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA4B,CAAA;AACjE,OAAO,EAAqB,OAAO,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,yDAAyD;AACzD,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,0EAA0E;AAC1E,yEAAyE;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAA0B,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA4B,CAAA;AACjE,OAAO,EAAqB,OAAO,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA"}
@@ -24,21 +24,31 @@ function loadInterProScanResults(jobId, signal) {
24
24
  }
25
25
  async function wait({ onProgress, jobId, signal, }) {
26
26
  const url = `${base}/iprscan5/status/${jobId}`;
27
+ // EBI jobs run for minutes; cap polling so an unexpected/stuck status can't
28
+ // spin forever (the abort signal is the normal early exit). ~10s per check.
29
+ const maxChecks = 360;
27
30
  try {
28
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
29
- while (true) {
31
+ let finished = false;
32
+ for (let check = 0; check < maxChecks && !finished; check++) {
30
33
  for (let i = 0; i < 10; i++) {
31
34
  await timeout(1000, signal);
32
35
  onProgress({ msg: `Checking status ${10 - i}`, url });
33
36
  }
34
- const result = await textfetch(url, { signal });
35
- if (result.includes('FINISHED')) {
36
- break;
37
+ // status endpoint returns a bare status token; match exactly rather than
38
+ // substring so an error page mentioning "FINISHED" can't be a false hit
39
+ const status = (await textfetch(url, { signal })).trim();
40
+ if (status === 'FINISHED') {
41
+ finished = true;
37
42
  }
38
- if (result.includes('FAILURE')) {
39
- throw new Error(`Failed to run: jobId ${jobId}`);
43
+ else if (status === 'FAILURE' ||
44
+ status === 'ERROR' ||
45
+ status === 'NOT_FOUND') {
46
+ throw new Error(`InterProScan job ${jobId} ended with status: ${status}`);
40
47
  }
41
48
  }
49
+ if (!finished) {
50
+ throw new Error(`InterProScan job ${jobId} did not finish after ${maxChecks} status checks`);
51
+ }
42
52
  }
43
53
  finally {
44
54
  onProgress();
@@ -80,8 +90,11 @@ async function loadInterProScanResultsWithStatus({ jobId, model, onProgress, sig
80
90
  url: `https://www.ebi.ac.uk/Tools/services/rest/iprscan5/result/${jobId}/json`,
81
91
  });
82
92
  const ret = await loadInterProScanResults(jobId, signal);
83
- model.setInterProAnnotations(Object.fromEntries(ret.results.map(r => [r.xref[0].id, r])));
84
- model.setShowDomains(true);
93
+ // key each result by its xref id; skip any result lacking an xref entry
94
+ // rather than crashing the whole load on one malformed result
95
+ model.setDomains(Object.fromEntries(ret.results
96
+ .map(r => [r.xref[0]?.id, r])
97
+ .filter((e) => e[0] !== undefined)));
85
98
  getSession(model).notify(`Loaded interproscan ${jobId} results`, 'success');
86
99
  }
87
100
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"launchInterProScan.js","sourceRoot":"","sources":["../src/launchInterProScan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launchInterProScan.js","sourceRoot":"","sources":["../src/launchInterProScan.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { setFontSize } from "./setFontSize.js";
1
2
  let canvasHandle;
2
3
  export function measureTextCanvas(text, fontSize) {
3
4
  if (!canvasHandle) {
@@ -7,7 +8,7 @@ export function measureTextCanvas(text, fontSize) {
7
8
  if (!ctx) {
8
9
  throw new Error('no canvas context');
9
10
  }
10
- ctx.font = ctx.font.replace(/\d+px/, `${fontSize}px`);
11
+ setFontSize(ctx, fontSize);
11
12
  return ctx.measureText(text).width;
12
13
  }
13
14
  //# sourceMappingURL=measureTextCanvas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"measureTextCanvas.js","sourceRoot":"","sources":["../src/measureTextCanvas.ts"],"names":[],"mappings":"AAAA,IAAI,YAA2C,CAAA;AAE/C,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAgB;IAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACzC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACtC,CAAC;IACD,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,QAAQ,IAAI,CAAC,CAAA;IACrD,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAA;AACpC,CAAC"}
1
+ {"version":3,"file":"measureTextCanvas.js","sourceRoot":"","sources":["../src/measureTextCanvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,IAAI,YAA2C,CAAA;AAE/C,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAgB;IAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACzC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACtC,CAAC;IACD,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC1B,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAA;AACpC,CAAC"}