react-msaview 8.2.0 → 8.4.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 (255) hide show
  1. package/bundle/index.js +77 -300
  2. package/bundle/index.js.map +4 -4
  3. package/dist/blockFasta.d.ts +6 -0
  4. package/dist/blockFasta.js +12 -0
  5. package/dist/blockFasta.js.map +1 -0
  6. package/dist/colorSchemes.d.ts +7 -0
  7. package/dist/colorSchemes.js +15 -0
  8. package/dist/colorSchemes.js.map +1 -1
  9. package/dist/columnCounts.d.ts +4 -3
  10. package/dist/columnCounts.js +11 -6
  11. package/dist/columnCounts.js.map +1 -1
  12. package/dist/components/CopyButton.d.ts +1 -1
  13. package/dist/components/CopyButton.js +1 -1
  14. package/dist/components/CopyButton.js.map +1 -1
  15. package/dist/components/DragHandle.js +14 -2
  16. package/dist/components/DragHandle.js.map +1 -1
  17. package/dist/components/Loading.js +10 -11
  18. package/dist/components/Loading.js.map +1 -1
  19. package/dist/components/MSAView.js +15 -9
  20. package/dist/components/MSAView.js.map +1 -1
  21. package/dist/components/MSAViewer.d.ts +39 -7
  22. package/dist/components/MSAViewer.js +72 -22
  23. package/dist/components/MSAViewer.js.map +1 -1
  24. package/dist/components/MetadataTable.d.ts +5 -0
  25. package/dist/components/MetadataTable.js +29 -0
  26. package/dist/components/MetadataTable.js.map +1 -0
  27. package/dist/components/SequenceTextArea.d.ts +11 -0
  28. package/dist/components/SequenceTextArea.js +40 -8
  29. package/dist/components/SequenceTextArea.js.map +1 -1
  30. package/dist/components/StatusMessage.d.ts +12 -0
  31. package/dist/components/StatusMessage.js +43 -0
  32. package/dist/components/StatusMessage.js.map +1 -0
  33. package/dist/components/Track.js +13 -4
  34. package/dist/components/Track.js.map +1 -1
  35. package/dist/components/VerticalScrollbar.js +6 -1
  36. package/dist/components/VerticalScrollbar.js.map +1 -1
  37. package/dist/components/dialogs/ExportSVGDialog.d.ts +3 -2
  38. package/dist/components/dialogs/ExportSVGDialog.js +4 -2
  39. package/dist/components/dialogs/ExportSVGDialog.js.map +1 -1
  40. package/dist/components/dialogs/FeatureDialog.js +15 -10
  41. package/dist/components/dialogs/FeatureDialog.js.map +1 -1
  42. package/dist/components/dialogs/MetadataDialog.js +5 -6
  43. package/dist/components/dialogs/MetadataDialog.js.map +1 -1
  44. package/dist/components/getVisibleLeaves.d.ts +1 -1
  45. package/dist/components/header/ColorSchemeMenu.d.ts +6 -0
  46. package/dist/components/header/ColorSchemeMenu.js +23 -5
  47. package/dist/components/header/ColorSchemeMenu.js.map +1 -1
  48. package/dist/components/header/FileMenu.js +9 -0
  49. package/dist/components/header/FileMenu.js.map +1 -1
  50. package/dist/components/header/GappynessSlider.js +15 -3
  51. package/dist/components/header/GappynessSlider.js.map +1 -1
  52. package/dist/components/header/{HeaderStatusArea.d.ts → GoToBox.d.ts} +2 -2
  53. package/dist/components/header/GoToBox.js +21 -0
  54. package/dist/components/header/GoToBox.js.map +1 -0
  55. package/dist/components/header/Header.js +8 -7
  56. package/dist/components/header/Header.js.map +1 -1
  57. package/dist/components/header/SelectionMenu.d.ts +12 -0
  58. package/dist/components/header/SelectionMenu.js +72 -0
  59. package/dist/components/header/SelectionMenu.js.map +1 -0
  60. package/dist/components/header/goTo.d.ts +20 -0
  61. package/dist/components/header/goTo.js +69 -0
  62. package/dist/components/header/goTo.js.map +1 -0
  63. package/dist/components/header/settingsMenuItems.js +57 -1
  64. package/dist/components/header/settingsMenuItems.js.map +1 -1
  65. package/dist/components/import/ImportForm.js +10 -4
  66. package/dist/components/import/ImportForm.js.map +1 -1
  67. package/dist/components/import/ImportFormExamples.js +19 -27
  68. package/dist/components/import/ImportFormExamples.js.map +1 -1
  69. package/dist/components/minimap/Minimap.js +6 -1
  70. package/dist/components/minimap/Minimap.js.map +1 -1
  71. package/dist/components/msa/AnnotationLegend.js +11 -5
  72. package/dist/components/msa/AnnotationLegend.js.map +1 -1
  73. package/dist/components/msa/MSACanvas.js +17 -1
  74. package/dist/components/msa/MSACanvas.js.map +1 -1
  75. package/dist/components/msa/MSACanvasBlock.js +6 -6
  76. package/dist/components/msa/MSACanvasBlock.js.map +1 -1
  77. package/dist/components/msa/msaKeys.d.ts +5 -0
  78. package/dist/components/msa/msaKeys.js +41 -0
  79. package/dist/components/msa/msaKeys.js.map +1 -0
  80. package/dist/components/msa/msaRaster.js +1 -0
  81. package/dist/components/msa/msaRaster.js.map +1 -1
  82. package/dist/components/msa/renderHighlights.d.ts +14 -3
  83. package/dist/components/msa/renderHighlights.js +29 -4
  84. package/dist/components/msa/renderHighlights.js.map +1 -1
  85. package/dist/components/msa/tileColor.js +9 -8
  86. package/dist/components/msa/tileColor.js.map +1 -1
  87. package/dist/components/msa/useMsaBlockMouse.d.ts +2 -4
  88. package/dist/components/msa/useMsaBlockMouse.js +34 -14
  89. package/dist/components/msa/useMsaBlockMouse.js.map +1 -1
  90. package/dist/components/overlayColors.d.ts +2 -0
  91. package/dist/components/overlayColors.js +3 -0
  92. package/dist/components/overlayColors.js.map +1 -1
  93. package/dist/components/rowpanels/RowPanelBlock.js +10 -14
  94. package/dist/components/rowpanels/RowPanelBlock.js.map +1 -1
  95. package/dist/components/selectionDrag.d.ts +17 -0
  96. package/dist/components/selectionDrag.js +30 -0
  97. package/dist/components/selectionDrag.js.map +1 -0
  98. package/dist/components/tracks/drawTracks.d.ts +1 -0
  99. package/dist/components/tracks/drawTracks.js +14 -2
  100. package/dist/components/tracks/drawTracks.js.map +1 -1
  101. package/dist/components/tracks/useTrackHover.d.ts +4 -6
  102. package/dist/components/tracks/useTrackHover.js +30 -10
  103. package/dist/components/tracks/useTrackHover.js.map +1 -1
  104. package/dist/components/tree/ScaleBarSVG.d.ts +14 -0
  105. package/dist/components/tree/ScaleBarSVG.js +11 -0
  106. package/dist/components/tree/ScaleBarSVG.js.map +1 -0
  107. package/dist/components/tree/TreeCanvas.js +8 -26
  108. package/dist/components/tree/TreeCanvas.js.map +1 -1
  109. package/dist/components/tree/TreeCanvasBlock.js +11 -20
  110. package/dist/components/tree/TreeCanvasBlock.js.map +1 -1
  111. package/dist/components/tree/{TreeBranchMenu.d.ts → TreeMenu.d.ts} +5 -4
  112. package/dist/components/tree/TreeMenu.js +48 -0
  113. package/dist/components/tree/TreeMenu.js.map +1 -0
  114. package/dist/components/tree/TreeRuler.js +3 -3
  115. package/dist/components/tree/TreeRuler.js.map +1 -1
  116. package/dist/components/tree/dialogs/TreeNodeInfoDialog.js +9 -8
  117. package/dist/components/tree/dialogs/TreeNodeInfoDialog.js.map +1 -1
  118. package/dist/components/tree/renderTreeCanvas.js +19 -9
  119. package/dist/components/tree/renderTreeCanvas.js.map +1 -1
  120. package/dist/components/tree/renderTreeMouseover.d.ts +5 -0
  121. package/dist/components/tree/renderTreeMouseover.js +20 -0
  122. package/dist/components/tree/renderTreeMouseover.js.map +1 -0
  123. package/dist/components/tree/useTreeHover.d.ts +3 -8
  124. package/dist/components/tree/useTreeHover.js +8 -10
  125. package/dist/components/tree/useTreeHover.js.map +1 -1
  126. package/dist/components/useHoverAnchor.d.ts +19 -0
  127. package/dist/components/useHoverAnchor.js +18 -0
  128. package/dist/components/useHoverAnchor.js.map +1 -0
  129. package/dist/constants.d.ts +3 -0
  130. package/dist/constants.js +12 -3
  131. package/dist/constants.js.map +1 -1
  132. package/dist/element.d.ts +7 -3
  133. package/dist/element.js +32 -4
  134. package/dist/element.js.map +1 -1
  135. package/dist/expandSpec.js +3 -3
  136. package/dist/expandSpec.js.map +1 -1
  137. package/dist/exportFileName.d.ts +3 -3
  138. package/dist/exportFileName.js +4 -4
  139. package/dist/exportFileName.js.map +1 -1
  140. package/dist/featuresLayer.d.ts +8 -0
  141. package/dist/featuresLayer.js +42 -0
  142. package/dist/featuresLayer.js.map +1 -0
  143. package/dist/hierarchy.d.ts +51 -0
  144. package/dist/hierarchy.js +125 -0
  145. package/dist/hierarchy.js.map +1 -1
  146. package/dist/index.d.ts +2 -2
  147. package/dist/model/DataModel.d.ts +1 -1
  148. package/dist/model/DataModel.js +3 -3
  149. package/dist/model/DataModel.js.map +1 -1
  150. package/dist/model/msaModel.d.ts +14 -1
  151. package/dist/model/msaModel.js +17 -1
  152. package/dist/model/msaModel.js.map +1 -1
  153. package/dist/model/treeModel.d.ts +12 -0
  154. package/dist/model/treeModel.js +14 -1
  155. package/dist/model/treeModel.js.map +1 -1
  156. package/dist/model.d.ts +285 -53
  157. package/dist/model.js +693 -231
  158. package/dist/model.js.map +1 -1
  159. package/dist/renderToSvg.js +2 -4
  160. package/dist/renderToSvg.js.map +1 -1
  161. package/dist/rerootTree.d.ts +33 -0
  162. package/dist/rerootTree.js +144 -0
  163. package/dist/rerootTree.js.map +1 -0
  164. package/dist/svgTestUtil.d.ts +172 -26
  165. package/dist/types.d.ts +75 -12
  166. package/dist/useMsaSvgFigure.d.ts +2 -1
  167. package/dist/useMsaSvgFigure.js +11 -4
  168. package/dist/useMsaSvgFigure.js.map +1 -1
  169. package/dist/version.d.ts +1 -1
  170. package/dist/version.js +1 -1
  171. package/dist/writeNewick.d.ts +8 -0
  172. package/dist/writeNewick.js +34 -0
  173. package/dist/writeNewick.js.map +1 -0
  174. package/package.json +3 -3
  175. package/src/blockFasta.ts +18 -0
  176. package/src/colorSchemes.ts +20 -0
  177. package/src/columnCounts.ts +14 -6
  178. package/src/components/CopyButton.tsx +2 -2
  179. package/src/components/DragHandle.tsx +21 -1
  180. package/src/components/Loading.tsx +14 -30
  181. package/src/components/MSAView.tsx +16 -9
  182. package/src/components/MSAViewer.tsx +121 -26
  183. package/src/components/MetadataTable.tsx +55 -0
  184. package/src/components/SequenceTextArea.tsx +54 -8
  185. package/src/components/StatusMessage.tsx +70 -0
  186. package/src/components/Track.tsx +21 -4
  187. package/src/components/VerticalScrollbar.tsx +7 -0
  188. package/src/components/dialogs/ExportSVGDialog.tsx +5 -2
  189. package/src/components/dialogs/FeatureDialog.tsx +59 -38
  190. package/src/components/dialogs/MetadataDialog.tsx +9 -8
  191. package/src/components/header/ColorSchemeMenu.tsx +31 -12
  192. package/src/components/header/FileMenu.tsx +9 -0
  193. package/src/components/header/GappynessSlider.tsx +17 -4
  194. package/src/components/header/GoToBox.tsx +50 -0
  195. package/src/components/header/Header.tsx +11 -8
  196. package/src/components/header/SelectionMenu.tsx +117 -0
  197. package/src/components/header/goTo.ts +75 -0
  198. package/src/components/header/settingsMenuItems.ts +66 -0
  199. package/src/components/import/ImportForm.tsx +14 -7
  200. package/src/components/import/ImportFormExamples.tsx +20 -28
  201. package/src/components/minimap/Minimap.tsx +7 -0
  202. package/src/components/msa/AnnotationLegend.tsx +12 -6
  203. package/src/components/msa/MSACanvas.tsx +19 -1
  204. package/src/components/msa/MSACanvasBlock.tsx +9 -11
  205. package/src/components/msa/msaKeys.ts +45 -0
  206. package/src/components/msa/msaRaster.ts +1 -0
  207. package/src/components/msa/renderHighlights.ts +46 -4
  208. package/src/components/msa/tileColor.ts +9 -8
  209. package/src/components/msa/useMsaBlockMouse.ts +44 -31
  210. package/src/components/overlayColors.ts +4 -0
  211. package/src/components/rowpanels/RowPanelBlock.tsx +16 -23
  212. package/src/components/selectionDrag.ts +42 -0
  213. package/src/components/tracks/drawTracks.ts +15 -2
  214. package/src/components/tracks/useTrackHover.ts +32 -10
  215. package/src/components/tree/ScaleBarSVG.tsx +30 -0
  216. package/src/components/tree/TreeCanvas.tsx +9 -40
  217. package/src/components/tree/TreeCanvasBlock.tsx +19 -39
  218. package/src/components/tree/TreeMenu.tsx +129 -0
  219. package/src/components/tree/TreeRuler.tsx +7 -13
  220. package/src/components/tree/dialogs/TreeNodeInfoDialog.tsx +14 -16
  221. package/src/components/tree/renderTreeCanvas.ts +20 -8
  222. package/src/components/tree/renderTreeMouseover.ts +41 -0
  223. package/src/components/tree/useTreeHover.ts +8 -17
  224. package/src/components/useHoverAnchor.ts +31 -0
  225. package/src/constants.ts +14 -3
  226. package/src/element.ts +45 -5
  227. package/src/expandSpec.ts +3 -3
  228. package/src/exportFileName.ts +4 -3
  229. package/src/featuresLayer.ts +48 -0
  230. package/src/hierarchy.ts +151 -4
  231. package/src/index.ts +8 -1
  232. package/src/model/DataModel.ts +3 -3
  233. package/src/model/msaModel.ts +19 -1
  234. package/src/model/treeModel.ts +22 -0
  235. package/src/model.ts +841 -272
  236. package/src/renderToSvg.tsx +6 -9
  237. package/src/rerootTree.ts +172 -0
  238. package/src/types.ts +92 -12
  239. package/src/useMsaSvgFigure.ts +11 -4
  240. package/src/version.ts +1 -1
  241. package/src/writeNewick.ts +38 -0
  242. package/dist/components/PortalTooltip.d.ts +0 -11
  243. package/dist/components/PortalTooltip.js +0 -29
  244. package/dist/components/PortalTooltip.js.map +0 -1
  245. package/dist/components/header/HeaderStatusArea.js +0 -21
  246. package/dist/components/header/HeaderStatusArea.js.map +0 -1
  247. package/dist/components/tree/TreeBranchMenu.js +0 -29
  248. package/dist/components/tree/TreeBranchMenu.js.map +0 -1
  249. package/dist/components/tree/TreeNodeMenu.d.ts +0 -13
  250. package/dist/components/tree/TreeNodeMenu.js +0 -41
  251. package/dist/components/tree/TreeNodeMenu.js.map +0 -1
  252. package/src/components/PortalTooltip.tsx +0 -47
  253. package/src/components/header/HeaderStatusArea.tsx +0 -32
  254. package/src/components/tree/TreeBranchMenu.tsx +0 -68
  255. package/src/components/tree/TreeNodeMenu.tsx +0 -95
@@ -0,0 +1,6 @@
1
+ /**
2
+ * FASTA for a block of the alignment: each row's letters from column `start`
3
+ * to `end`, 1-based and inclusive, under its name. Gaps stay in, and a row that
4
+ * ends before `end` is padded with gaps, so every record is the block's width.
5
+ */
6
+ export declare function blockFasta(rows: readonly (readonly [string, string])[], start: number, end: number): string;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * FASTA for a block of the alignment: each row's letters from column `start`
3
+ * to `end`, 1-based and inclusive, under its name. Gaps stay in, and a row that
4
+ * ends before `end` is padded with gaps, so every record is the block's width.
5
+ */
6
+ export function blockFasta(rows, start, end) {
7
+ const width = Math.max(0, end - start + 1);
8
+ return rows
9
+ .map(([name, seq]) => `>${name}\n${seq.slice(start - 1, end).padEnd(width, '-')}\n`)
10
+ .join('');
11
+ }
12
+ //# sourceMappingURL=blockFasta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockFasta.js","sourceRoot":"","sources":["../src/blockFasta.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,IAA4C,EAC5C,KAAa,EACb,GAAW;IAEX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAA;IAC1C,OAAO,IAAI;SACR,GAAG,CACF,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CACd,IAAI,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAChE;SACA,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC"}
@@ -2,3 +2,10 @@ declare const _default: {
2
2
  [k: string]: Record<string, string>;
3
3
  };
4
4
  export default _default;
5
+ /**
6
+ * A letter map as the renderer looks letters up. The model upper-cases every
7
+ * row before coloring it, so a table keys its letters in upper case and a map
8
+ * may key them in either. The table is cached per map, so its identity is
9
+ * stable enough for the raster cache to key on.
10
+ */
11
+ export declare function letterColorTable(map: Record<string, string>): Record<string, string>;
@@ -343,4 +343,19 @@ export default transform(colorSchemes, ([key, val]) => [
343
343
  key,
344
344
  transform(val, ([letter, color]) => [letter, colord(color).toHex()]),
345
345
  ]);
346
+ const letterTables = new WeakMap();
347
+ /**
348
+ * A letter map as the renderer looks letters up. The model upper-cases every
349
+ * row before coloring it, so a table keys its letters in upper case and a map
350
+ * may key them in either. The table is cached per map, so its identity is
351
+ * stable enough for the raster cache to key on.
352
+ */
353
+ export function letterColorTable(map) {
354
+ let table = letterTables.get(map);
355
+ if (!table) {
356
+ table = transform(map, ([letter, color]) => [letter.toUpperCase(), color]);
357
+ letterTables.set(map, table);
358
+ }
359
+ return table;
360
+ }
346
361
  //# sourceMappingURL=colorSchemes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"colorSchemes.js","sourceRoot":"","sources":["../src/colorSchemes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"colorSchemes.js","sourceRoot":"","sources":["../src/colorSchemes.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare class ColumnCounts {
5
5
  readonly totals: Uint32Array;
6
6
  private readonly slotTotals;
7
7
  constructor(numColumns: number);
8
+ /** tallies a row, counting the columns past a short row's end as gaps */
8
9
  addRow(row: string): void;
9
10
  add(col: number, letter: string): void;
10
11
  total(col: number): number;
@@ -32,10 +33,10 @@ export declare function residueSlotOfLetter(letter: string): number;
32
33
  export declare const numResidueSlots = 32;
33
34
  /**
34
35
  * Tally counts from alignment rows (gapped sequence strings, one per row). The
35
- * column count follows the longest row, matching what a per-column tally of
36
- * ragged input produces.
36
+ * column count defaults to the longest row, and a shorter row counts as gapped
37
+ * to the end.
37
38
  */
38
- export declare function columnCountsFromRows(rows: string[]): ColumnCounts;
39
+ export declare function columnCountsFromRows(rows: string[], numColumns?: number): ColumnCounts;
39
40
  /**
40
41
  * Tally counts from column strings (one string per column, listing that
41
42
  * column's residues top to bottom). Convenient for tests and for callers that
@@ -52,15 +52,21 @@ export class ColumnCounts {
52
52
  this.counts = new Uint32Array(numColumns * SLOTS);
53
53
  this.totals = new Uint32Array(numColumns);
54
54
  }
55
+ /** tallies a row, counting the columns past a short row's end as gaps */
55
56
  addRow(row) {
56
- const { counts, totals, slotTotals } = this;
57
- const n = Math.min(row.length, this.numColumns);
57
+ const { counts, totals, slotTotals, numColumns } = this;
58
+ const n = Math.min(row.length, numColumns);
58
59
  for (let col = 0; col < n; col++) {
59
60
  const slot = slotOf(row.charCodeAt(col));
60
61
  counts[col * SLOTS + slot]++;
61
62
  totals[col]++;
62
63
  slotTotals[slot]++;
63
64
  }
65
+ for (let col = n; col < numColumns; col++) {
66
+ counts[col * SLOTS + DASH]++;
67
+ totals[col]++;
68
+ }
69
+ slotTotals[DASH] += numColumns - n;
64
70
  }
65
71
  add(col, letter) {
66
72
  const slot = slotOf(letter.charCodeAt(0));
@@ -138,11 +144,10 @@ export function residueSlotOfLetter(letter) {
138
144
  export const numResidueSlots = SLOTS;
139
145
  /**
140
146
  * Tally counts from alignment rows (gapped sequence strings, one per row). The
141
- * column count follows the longest row, matching what a per-column tally of
142
- * ragged input produces.
147
+ * column count defaults to the longest row, and a shorter row counts as gapped
148
+ * to the end.
143
149
  */
144
- export function columnCountsFromRows(rows) {
145
- const numColumns = rows.reduce((max, row) => Math.max(max, row.length), 0);
150
+ export function columnCountsFromRows(rows, numColumns = rows.reduce((max, row) => Math.max(max, row.length), 0)) {
146
151
  const counts = new ColumnCounts(numColumns);
147
152
  for (const row of rows) {
148
153
  counts.addRow(row);
@@ -1 +1 @@
1
- {"version":3,"file":"columnCounts.js","sourceRoot":"","sources":["../src/columnCounts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"columnCounts.js","sourceRoot":"","sources":["../src/columnCounts.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,6 @@ import React from 'react';
4
4
  * cleared on unmount, since these live in dialogs the copy itself often closes.
5
5
  */
6
6
  export default function CopyButton({ text, label, }: {
7
- text: string;
7
+ text: string | (() => string);
8
8
  label?: string;
9
9
  }): React.JSX.Element;
@@ -12,7 +12,7 @@ export default function CopyButton({ text, label = 'Copy to clipboard', }) {
12
12
  clearTimeout(timer.current);
13
13
  }, []);
14
14
  return (React.createElement(Button, { variant: "contained", color: "primary", onClick: () => {
15
- copy(text);
15
+ copy(typeof text === 'string' ? text : text());
16
16
  setCopied(true);
17
17
  clearTimeout(timer.current);
18
18
  timer.current = setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"CopyButton.js","sourceRoot":"","sources":["../../src/components/CopyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,OAAO,IAAI,MAAM,8BAA8B,CAAA;AAE/C;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,KAAK,GAAG,mBAAmB,GAI5B;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAgC,SAAS,CAAC,CAAA;IAE9D,SAAS,CACP,GAAG,EAAE,CAAC,GAAG,EAAE;QACT,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC,EACD,EAAE,CACH,CAAA;IAED,OAAO,CACL,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,CAAA;YACV,SAAS,CAAC,IAAI,CAAC,CAAA;YACf,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3B,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,SAAS,CAAC,KAAK,CAAC,CAAA;YAClB,CAAC,EAAE,GAAG,CAAC,CAAA;QACT,CAAC,IAEA,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CACpB,CACV,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"CopyButton.js","sourceRoot":"","sources":["../../src/components/CopyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,OAAO,IAAI,MAAM,8BAA8B,CAAA;AAE/C;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,KAAK,GAAG,mBAAmB,GAI5B;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAgC,SAAS,CAAC,CAAA;IAE9D,SAAS,CACP,GAAG,EAAE,CAAC,GAAG,EAAE;QACT,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC,EACD,EAAE,CACH,CAAA;IAED,OAAO,CACL,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YAC9C,SAAS,CAAC,IAAI,CAAC,CAAA;YACf,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3B,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,SAAS,CAAC,KAAK,CAAC,CAAA;YAClB,CAAC,EAAE,GAAG,CAAC,CAAA;QACT,CAAC,IAEA,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CACpB,CACV,CAAA;AACH,CAAC"}
@@ -2,6 +2,9 @@ import React, { useState } from 'react';
2
2
  import { useTheme } from '@mui/material';
3
3
  import { useDragScroll } from '../useDragScroll.js';
4
4
  export const scrollbarThumbFill = 'rgba(66,119,127,0.3)';
5
+ // the model's resizeHandleWidth feeds the layout, so a divider keeps its drawn
6
+ // width and widens its target with this much invisible margin each side
7
+ const hitSlop = 4;
5
8
  // The scroll thumbs (minimap, vertical scrollbar) and the resize dividers are
6
9
  // one widget -- press, drag along an axis, report the pixel delta -- differing
7
10
  // only in the affordance they present, so the variant carries the whole
@@ -38,7 +41,10 @@ export default function DragHandle({ axis, variant, getStart, onDrag, style, })
38
41
  const [hovered, setHovered] = useState(false);
39
42
  const { startDrag } = useDragScroll(axis, onDrag);
40
43
  const { fill, fillHovered, cursor, position, zIndex } = variants[variant];
41
- return (React.createElement("div", { onMouseEnter: () => {
44
+ return (React.createElement("div", { ...(variant === 'resizer' && {
45
+ role: 'separator',
46
+ 'aria-orientation': axis === 'x' ? 'vertical' : 'horizontal',
47
+ }), onMouseEnter: () => {
42
48
  setHovered(true);
43
49
  }, onMouseLeave: () => {
44
50
  setHovered(false);
@@ -50,6 +56,12 @@ export default function DragHandle({ axis, variant, getStart, onDrag, style, })
50
56
  cursor: cursor(axis),
51
57
  background: hovered ? fillHovered(theme) : fill(theme),
52
58
  ...style,
53
- } }));
59
+ } }, variant === 'resizer' ? (React.createElement("div", { style: {
60
+ position: 'absolute',
61
+ zIndex: 101,
62
+ ...(axis === 'x'
63
+ ? { top: 0, bottom: 0, left: -hitSlop, right: -hitSlop }
64
+ : { left: 0, right: 0, top: -hitSlop, bottom: -hitSlop }),
65
+ } })) : null));
54
66
  }
55
67
  //# sourceMappingURL=DragHandle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DragHandle.js","sourceRoot":"","sources":["../../src/components/DragHandle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAInD,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAA;AAExD,8EAA8E;AAC9E,+EAA+E;AAC/E,wEAAwE;AACxE,2DAA2D;AAC3D,MAAM,QAAQ,GASV;IACF,KAAK,EAAE;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,kBAAkB;QAC9B,WAAW,EAAE,GAAG,EAAE,CAAC,sBAAsB;QACzC,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;QACvB,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,GAAG;KACZ;IACD,OAAO,EAAE;QACP,IAAI,EAAE,KAAK,CAAC,EAAE,CACZ,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;YAC3B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YACzB,CAAC,CAAC,mBAAmB;QACzB,WAAW,EAAE,KAAK,CAAC,EAAE,CACnB,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;YAC3B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YACzB,CAAC,CAAC,mBAAmB;QACzB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;QAC1D,QAAQ,EAAE,UAAU;KACrB;CACF,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,MAAM,EACN,KAAK,GAON;IACC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACjD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAEzE,OAAO,CACL,6BACE,YAAY,EAAE,GAAG,EAAE;YACjB,UAAU,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC,EACD,YAAY,EAAE,GAAG,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC,EACD,WAAW,EAAE,KAAK,CAAC,EAAE;YACnB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC9B,CAAC,EACD,KAAK,EAAE;YACL,QAAQ;YACR,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;YACpB,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACtD,GAAG,KAAK;SACT,GACD,CACH,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"DragHandle.js","sourceRoot":"","sources":["../../src/components/DragHandle.tsx"],"names":[],"mappings":"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"}
@@ -1,17 +1,11 @@
1
1
  import React from 'react';
2
2
  import { ErrorMessage } from '@jbrowse/core/ui';
3
3
  import { ErrorBoundary } from '@jbrowse/core/ui/ErrorBoundary';
4
- import { Button, CircularProgress, Typography } from '@mui/material';
4
+ import { Button } from '@mui/material';
5
5
  import { observer } from 'mobx-react';
6
6
  import MSAView from './MSAView.js';
7
+ import StatusMessage from './StatusMessage.js';
7
8
  import ImportForm from './import/ImportForm.js';
8
- const LoadingSpinner = observer(function ({ model }) {
9
- const { status } = model;
10
- return (React.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: 12, padding: 20 } },
11
- React.createElement(CircularProgress, { size: 24 }),
12
- React.createElement(Typography, { variant: "h6" }, status?.msg ?? 'Loading...'),
13
- status?.onCancel ? (React.createElement(Button, { variant: "outlined", size: "small", onClick: () => status.onCancel?.() }, "Cancel")) : null));
14
- });
15
9
  const Reset = observer(function ({ model, error, }) {
16
10
  return (React.createElement("div", null,
17
11
  React.createElement(ErrorMessage, { error: error }),
@@ -20,9 +14,14 @@ const Reset = observer(function ({ model, error, }) {
20
14
  } }, "Return to import form")));
21
15
  });
22
16
  const Loading = observer(function ({ model }) {
23
- const { isLoading, dataInitialized, error, resetCount, msaFilehandle, treeFilehandle, } = model;
24
- const hasPendingFilehandle = !!(msaFilehandle || treeFilehandle);
25
- return (React.createElement("div", null, React.createElement(ErrorBoundary, { key: resetCount, FallbackComponent: e => React.createElement(Reset, { model: model, error: e.error }) }, dataInitialized ? (isLoading ? (React.createElement(LoadingSpinner, { model: model })) : (React.createElement(MSAView, { model: model }))) : error ? (React.createElement(Reset, { model: model, error: error })) : hasPendingFilehandle || isLoading ? (React.createElement(LoadingSpinner, { model: model })) : (React.createElement(ImportForm, { model: model })))));
17
+ const { isLoading, dataInitialized, data, error, resetCount, msaFilehandle, treeFilehandle, } = model;
18
+ const hasData = !!(data.msa || data.tree);
19
+ // a failed load keeps its filehandle, so the error outranks the spinner
20
+ const loading = !error && !!(msaFilehandle || treeFilehandle || isLoading);
21
+ return (React.createElement("div", null, React.createElement(ErrorBoundary, { key: resetCount, FallbackComponent: e => React.createElement(Reset, { model: model, error: e.error }) }, dataInitialized ? (isLoading ? (React.createElement(StatusMessage, { model: model, variant: "page" })) : (React.createElement(MSAView, { model: model }))) : hasData ? (React.createElement(Reset, { model: model, error: error })) : (React.createElement(React.Fragment, null,
22
+ loading ? React.createElement(StatusMessage, { model: model, variant: "page" }) : null,
23
+ React.createElement("div", { style: { display: loading ? 'none' : undefined } },
24
+ React.createElement(ImportForm, { model: model })))))));
26
25
  });
27
26
  export default Loading;
28
27
  //# sourceMappingURL=Loading.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Loading.js","sourceRoot":"","sources":["../../src/components/Loading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,OAAO,MAAM,cAAe,CAAA;AACnC,OAAO,UAAU,MAAM,wBAAyB,CAAA;AAIhD,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAA2B;IAC1E,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IACxB,OAAO,CACL,6BACE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAEtE,oBAAC,gBAAgB,IAAC,IAAI,EAAE,EAAE,GAAI;QAC9B,oBAAC,UAAU,IAAC,OAAO,EAAC,IAAI,IAAE,MAAM,EAAE,GAAG,IAAI,YAAY,CAAc;QAClE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAClB,oBAAC,MAAM,IACL,OAAO,EAAC,UAAU,EAClB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,aAG3B,CACV,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAC/B,KAAK,EACL,KAAK,GAIN;IACC,OAAO,CACL;QACE,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,GAAI;QAC9B,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,GAAG,EAAE;gBACZ,KAAK,CAAC,KAAK,EAAE,CAAA;YACf,CAAC,4BAGM,CACL,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAA2B;IACnE,MAAM,EACJ,SAAS,EACT,eAAe,EACf,KAAK,EACL,UAAU,EACV,aAAa,EACb,cAAc,GACf,GAAG,KAAK,CAAA;IACT,MAAM,oBAAoB,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,cAAc,CAAC,CAAA;IAEhE,OAAO,CACL,iCAIE,oBAAC,aAAa,IACZ,GAAG,EAAE,UAAU,EACf,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,oBAAC,KAAK,IAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAI,IAE9D,eAAe,CAAC,CAAC,CAAC,CACjB,SAAS,CAAC,CAAC,CAAC,CACV,oBAAC,cAAc,IAAC,KAAK,EAAE,KAAK,GAAI,CACjC,CAAC,CAAC,CAAC,CACF,oBAAC,OAAO,IAAC,KAAK,EAAE,KAAK,GAAI,CAC1B,CACF,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAGV,oBAAC,KAAK,IAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAI,CACtC,CAAC,CAAC,CAAC,oBAAoB,IAAI,SAAS,CAAC,CAAC,CAAC,CACtC,oBAAC,cAAc,IAAC,KAAK,EAAE,KAAK,GAAI,CACjC,CAAC,CAAC,CAAC,CACF,oBAAC,UAAU,IAAC,KAAK,EAAE,KAAK,GAAI,CAC7B,CACa,CACZ,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"Loading.js","sourceRoot":"","sources":["../../src/components/Loading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,OAAO,MAAM,cAAe,CAAA;AACnC,OAAO,aAAa,MAAM,oBAAqB,CAAA;AAC/C,OAAO,UAAU,MAAM,wBAAyB,CAAA;AAIhD,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAC/B,KAAK,EACL,KAAK,GAIN;IACC,OAAO,CACL;QACE,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,GAAI;QAC9B,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,GAAG,EAAE;gBACZ,KAAK,CAAC,KAAK,EAAE,CAAA;YACf,CAAC,4BAGM,CACL,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAA2B;IACnE,MAAM,EACJ,SAAS,EACT,eAAe,EACf,IAAI,EACJ,KAAK,EACL,UAAU,EACV,aAAa,EACb,cAAc,GACf,GAAG,KAAK,CAAA;IACT,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;IACzC,wEAAwE;IACxE,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,cAAc,IAAI,SAAS,CAAC,CAAA;IAE1E,OAAO,CACL,iCAIE,oBAAC,aAAa,IACZ,GAAG,EAAE,UAAU,EACf,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,oBAAC,KAAK,IAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAI,IAE9D,eAAe,CAAC,CAAC,CAAC,CACjB,SAAS,CAAC,CAAC,CAAC,CACV,oBAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAC,MAAM,GAAG,CAC/C,CAAC,CAAC,CAAC,CACF,oBAAC,OAAO,IAAC,KAAK,EAAE,KAAK,GAAI,CAC1B,CACF,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACZ,oBAAC,KAAK,IAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAI,CACtC,CAAC,CAAC,CAAC,CACF;QACG,OAAO,CAAC,CAAC,CAAC,oBAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI;QAChE,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE;YACnD,oBAAC,UAAU,IAAC,KAAK,EAAE,KAAK,GAAI,CACxB,CACL,CACJ,CACa,CACZ,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,OAAO,CAAA"}
@@ -6,7 +6,7 @@ import VerticalScrollbar from './VerticalScrollbar.js';
6
6
  import Header from './header/Header.js';
7
7
  import Minimap from './minimap/Minimap.js';
8
8
  import MSAPanel from './msa/MSAPanel.js';
9
- import { clickColor, hoverColor } from './overlayColors.js';
9
+ import { clickColor, hoverColor, selectionFill } from './overlayColors.js';
10
10
  import RowPanelHeaders from './rowpanels/RowPanelHeaders.js';
11
11
  import RowPanels from './rowpanels/RowPanels.js';
12
12
  import TreeOverview from './tree/TreeOverview.js';
@@ -26,11 +26,17 @@ const TopArea = observer(function ({ model }) {
26
26
  showHorizontalScrollbar ? React.createElement(Minimap, { model: model }) : null));
27
27
  });
28
28
  const TrackColumnIndicator = observer(function ({ model, }) {
29
- const { mouseCol, mouseClickCol, colWidth, scrollX, treeAreaWidth, rowPanelsWidth, resizeHandleWidth, totalTrackAreaHeight, msaCanvasWidth, } = model;
30
- // hovered column, then the pinned one, matching the alignment's own overlay
29
+ const { mouseCol, mouseClickCol, colWidth, scrollX, treeAreaWidth, rowPanelsWidth, resizeHandleWidth, totalTrackAreaHeight, msaCanvasWidth, resolvedSelection, } = model;
30
+ // the selected columns, the hovered column, then the pinned one, matching
31
+ // the alignment's own overlay
31
32
  const bands = [
32
- { col: mouseCol, color: hoverColor },
33
- { col: mouseClickCol, color: clickColor },
33
+ {
34
+ start: resolvedSelection?.startCol,
35
+ end: resolvedSelection?.endCol,
36
+ color: selectionFill,
37
+ },
38
+ { start: mouseCol, end: mouseCol, color: hoverColor },
39
+ { start: mouseClickCol, end: mouseClickCol, color: clickColor },
34
40
  ];
35
41
  return (React.createElement("div", { style: {
36
42
  position: 'absolute',
@@ -40,11 +46,11 @@ const TrackColumnIndicator = observer(function ({ model, }) {
40
46
  height: totalTrackAreaHeight,
41
47
  overflow: 'hidden',
42
48
  pointerEvents: 'none',
43
- } }, bands.map(({ col, color }) => col === undefined ? null : (React.createElement("div", { key: color, style: {
49
+ } }, bands.map(({ start, end, color }) => start === undefined || end === undefined ? null : (React.createElement("div", { key: color, style: {
44
50
  position: 'absolute',
45
- left: col * colWidth + scrollX,
51
+ left: start * colWidth + scrollX,
46
52
  top: 0,
47
- width: colWidth,
53
+ width: (end - start + 1) * colWidth,
48
54
  height: totalTrackAreaHeight,
49
55
  backgroundColor: color,
50
56
  zIndex: 100,
@@ -77,7 +83,7 @@ const View = observer(function ({ model }) {
77
83
  const MSAView = observer(function ({ model }) {
78
84
  const { height, hideHeader, viewInitialized, DialogComponent, DialogProps } = model;
79
85
  return (React.createElement("div", null, viewInitialized ? (React.createElement(React.Fragment, null,
80
- React.createElement("div", { style: { height, overflow: 'hidden' } },
86
+ React.createElement("div", { style: { height, overflow: 'clip' } },
81
87
  hideHeader ? null : React.createElement(Header, { model: model }),
82
88
  React.createElement(View, { model: model })),
83
89
  React.createElement(HorizontalResizeHandle, { model: model }),
@@ -1 +1 @@
1
- {"version":3,"file":"MSAView.js","sourceRoot":"","sources":["../../src/components/MSAView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MSAView.js","sourceRoot":"","sources":["../../src/components/MSAView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,oBAAqB,CAAA;AAC5B,OAAO,KAAK,MAAM,YAAa,CAAA;AAC/B,OAAO,iBAAiB,MAAM,wBAAyB,CAAA;AACvD,OAAO,MAAM,MAAM,oBAAqB,CAAA;AACxC,OAAO,OAAO,MAAM,sBAAuB,CAAA;AAC3C,OAAO,QAAQ,MAAM,mBAAoB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,eAAe,MAAM,gCAAiC,CAAA;AAC7D,OAAO,SAAS,MAAM,0BAA2B,CAAA;AACjD,OAAO,YAAY,MAAM,wBAAyB,CAAA;AAClD,OAAO,SAAS,MAAM,qBAAsB,CAAA;AAC5C,OAAO,SAAS,MAAM,qBAAsB,CAAA;AAI5C,wEAAwE;AACxE,4EAA4E;AAC5E,gFAAgF;AAChF,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAA2B;IACnE,MAAM,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAA;IAC9E,OAAO,CACL,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAC7B,6BAAK,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;YAC1B,gBAAgB,CAAC,CAAC,CAAC,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI;YACzD,oBAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI,CACvB;QACN,oBAAC,eAAe,IAAC,KAAK,EAAE,KAAK,GAAI;QACjC,6BAAK,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,EAAE,GAAI;QAC1D,uBAAuB,CAAC,CAAC,CAAC,oBAAC,OAAO,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,CACvD,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,QAAQ,CAAC,UAAU,EAC9C,KAAK,GAGN;IACC,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,OAAO,EACP,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,GAClB,GAAG,KAAK,CAAA;IAET,0EAA0E;IAC1E,8BAA8B;IAC9B,MAAM,KAAK,GAAG;QACZ;YACE,KAAK,EAAE,iBAAiB,EAAE,QAAQ;YAClC,GAAG,EAAE,iBAAiB,EAAE,MAAM;YAC9B,KAAK,EAAE,aAAa;SACrB;QACD,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE;QACrD,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE;KAChE,CAAA;IAED,OAAO,CACL,6BACE,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,aAAa,GAAG,cAAc,GAAG,iBAAiB;YACxD,GAAG,EAAE,CAAC;YACN,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,oBAAoB;YAC5B,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,MAAM;SACtB,IAEA,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CACnC,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAChD,6BACE,GAAG,EAAE,KAAK,EACV,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,OAAO;YAChC,GAAG,EAAE,CAAC;YACN,KAAK,EAAE,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,QAAQ;YACnC,MAAM,EAAE,oBAAoB;YAC5B,eAAe,EAAE,KAAK;YACtB,MAAM,EAAE,GAAG;SACZ,GACD,CACH,CACF,CACG,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAA2B;IACrE,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAA;IAChC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,CACL,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;QAClC,oBAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK,GAAI;QACrC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAC3B,oBAAC,KAAK,IAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAI,CAC3D,CAAC,CACE,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAA2B;IACpE,MAAM,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAA;IAEvC,OAAO,CACL,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAC7B,oBAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI;QAC3B,oBAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI;QAC3B,oBAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK,GAAI;QACtC,oBAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,GAAI;QACzB,qBAAqB,CAAC,CAAC,CAAC,oBAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,CAC/D,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAA2B;IAChE,OAAO,CACL,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;QAClC,oBAAC,OAAO,IAAC,KAAK,EAAE,KAAK,GAAI;QACzB,oBAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI;QAC3B,oBAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,GAAI,CACtB,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAA2B;IACnE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,GACzE,KAAK,CAAA;IAEP,OAAO,CACL,iCACG,eAAe,CAAC,CAAC,CAAC,CACjB;QACE,6BAAK,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;YACrC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAC,MAAM,IAAC,KAAK,EAAE,KAAK,GAAI;YAC7C,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,GAAI,CAClB;QACN,oBAAC,sBAAsB,IAAC,KAAK,EAAE,KAAK,GAAI;QAEvC,eAAe,CAAC,CAAC,CAAC,CACjB,oBAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI;YACtB,oBAAC,eAAe,OAAK,WAAW,GAAI,CAC3B,CACZ,CAAC,CAAC,CAAC,IAAI,CACP,CACJ,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,OAAO,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { MsaViewModel } from '../model.ts';
3
- import type { Cell, Clade, ColumnTrackSpec, Encoding, Highlight, Region, ResidueEncoding, ResidueMapping, RowPanelSpec, Viewport } from '../types.ts';
3
+ import type { Cell, Clade, ColorScheme, ColumnTrackSpec, Encoding, Feature, Highlight, MsaSelection, Region, ResidueEncoding, ResidueMapping, RowDataInput, RowPanelSpec, TreeOrder, TreeRoot, Viewport } from '../types.ts';
4
4
  import type { FileLocation as FileLocationType } from '@jbrowse/core/util/types';
5
5
  import type { ThemeOptions } from '@mui/material/styles';
6
6
  export interface MSAViewerProps {
@@ -10,7 +10,11 @@ export interface MSAViewerProps {
10
10
  msaFilehandle?: FileLocationType;
11
11
  treeFilehandle?: FileLocationType;
12
12
  gffFilehandle?: FileLocationType;
13
- colorScheme?: string;
13
+ /**
14
+ * a scheme name from the built-in table, or `{map}`, a color per residue
15
+ * letter that leaves every other letter uncolored
16
+ */
17
+ colorScheme?: ColorScheme;
14
18
  height?: number;
15
19
  /** initial per-column pixel width (zoom level) */
16
20
  colWidth?: number;
@@ -28,6 +32,13 @@ export interface MSAViewerProps {
28
32
  * for whole rows, each with an optional `label` and `color`
29
33
  */
30
34
  highlights?: Highlight[];
35
+ /**
36
+ * features on the rows as data, drawn with the GFF's: `{row, start, end}` in
37
+ * residues of that row, 1-based and inclusive, with an optional `name`,
38
+ * `description`, `type`, `strand` and `color`, and any other field an
39
+ * encoding reads (see docs/layers.md)
40
+ */
41
+ features?: Feature[];
31
42
  /**
32
43
  * clades of the tree with a mark drawn over them: `{mrca, tips, mark}` or
33
44
  * `{range, tips, mark}`, where `mark` is `highlight`, `bracket`, `collapse`
@@ -41,7 +52,7 @@ export interface MSAViewerProps {
41
52
  /** which residue of which structure each row's residues are (see docs/layers.md) */
42
53
  residueMappings?: ResidueMapping[];
43
54
  /** extra fields per row name, such as a lineage or a host (see docs/layers.md) */
44
- rowData?: Record<string, Record<string, string>>;
55
+ rowData?: RowDataInput;
45
56
  /**
46
57
  * what the viewer's marks read from a table: `{channel, field, scale?}`,
47
58
  * where `channel` is `tipLabel`, `rowTint` or `branch` over `rowData`, or
@@ -62,6 +73,17 @@ export interface MSAViewerProps {
62
73
  autoTreeAreaWidth?: boolean;
63
74
  /** draw branch lengths (default true); false draws a cladogram */
64
75
  showBranchLen?: boolean;
76
+ /**
77
+ * the order each node's children draw in: `branchLength` (default,
78
+ * shortest first), `input` (as the file gives them), `ladderize` (fewest
79
+ * tips first) or `ladderizeReverse` (most tips first)
80
+ */
81
+ treeOrder?: TreeOrder;
82
+ /**
83
+ * reroot the tree: `midpoint`, or `{outgroup: [tip names]}` on the branch
84
+ * above those tips' common ancestor
85
+ */
86
+ treeRoot?: TreeRoot;
65
87
  /**
66
88
  * which channel `colorScheme` paints: `fill` (default) colors the background
67
89
  * of the cell a residue sits in, `color` colors the letter itself and leaves
@@ -75,6 +97,11 @@ export interface MSAViewerProps {
75
97
  * in columns, 1-based and inclusive
76
98
  */
77
99
  region?: Region;
100
+ /**
101
+ * the selected block: `{start, end}` columns of the file, 1-based and
102
+ * inclusive, and `rows` by name, every row where absent
103
+ */
104
+ selection?: MsaSelection;
78
105
  /** leave out the toolbar, for a page drawing its own controls */
79
106
  hideHeader?: boolean;
80
107
  /**
@@ -88,15 +115,20 @@ export interface MSAViewerProps {
88
115
  onCellClick?: (cell: Cell | undefined) => void;
89
116
  /** the alignment columns on screen, after every scroll, zoom and resize */
90
117
  onViewportChange?: (viewport: Viewport | undefined) => void;
118
+ /**
119
+ * the selected block, after each change a drag, the header menu, Escape or
120
+ * the `selection` prop makes, or undefined when it clears
121
+ */
122
+ onSelectionChange?: (selection: MsaSelection | undefined) => void;
91
123
  /**
92
124
  * the model the viewer built, for the model API; called again with the new
93
- * model when msa, tree, gff or a filehandle changes
125
+ * model when msa, tree, msaFilehandle or treeFilehandle changes
94
126
  */
95
127
  onModel?: (model: MsaViewModel) => void;
96
128
  }
97
129
  /**
98
- * A new alignment, tree or annotation file needs a new model, so the viewer
99
- * remounts when one of those props changes and keeps its model across every
100
- * other change.
130
+ * A new alignment or tree needs a new model, so the viewer remounts when one
131
+ * of those props changes and keeps its model across every other change,
132
+ * including a new annotation file.
101
133
  */
102
134
  export default function MSAViewer(props: MSAViewerProps): React.JSX.Element;