react-msaview 8.4.1 → 9.1.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 (193) hide show
  1. package/README.md +19 -10
  2. package/bundle/index.js +74 -74
  3. package/bundle/index.js.map +4 -4
  4. package/dist/colorSchemes.js +1 -3
  5. package/dist/colorSchemes.js.map +1 -1
  6. package/dist/columnCounts.d.ts +0 -1
  7. package/dist/columnCounts.js +1 -1
  8. package/dist/columnCounts.js.map +1 -1
  9. package/dist/components/Loading.js +5 -5
  10. package/dist/components/Loading.js.map +1 -1
  11. package/dist/components/MSAView.js +2 -2
  12. package/dist/components/MSAView.js.map +1 -1
  13. package/dist/components/MSAViewer.d.ts +1892 -7
  14. package/dist/components/MSAViewer.js +144 -202
  15. package/dist/components/MSAViewer.js.map +1 -1
  16. package/dist/components/ResizeHandles.js +4 -3
  17. package/dist/components/ResizeHandles.js.map +1 -1
  18. package/dist/components/Track.js +3 -2
  19. package/dist/components/Track.js.map +1 -1
  20. package/dist/components/controls.d.ts +11 -0
  21. package/dist/components/controls.js +48 -0
  22. package/dist/components/controls.js.map +1 -0
  23. package/dist/components/dialogs/AnnotationFileDialog.js +5 -16
  24. package/dist/components/dialogs/AnnotationFileDialog.js.map +1 -1
  25. package/dist/components/dialogs/ExportSVGDialog.js +5 -7
  26. package/dist/components/dialogs/ExportSVGDialog.js.map +1 -1
  27. package/dist/components/dialogs/HelpDialog.d.ts +6 -0
  28. package/dist/components/dialogs/HelpDialog.js +30 -0
  29. package/dist/components/dialogs/HelpDialog.js.map +1 -0
  30. package/dist/components/header/FileMenu.js +33 -7
  31. package/dist/components/header/FileMenu.js.map +1 -1
  32. package/dist/components/header/Header.js +4 -6
  33. package/dist/components/header/Header.js.map +1 -1
  34. package/dist/components/header/TreeSettingsMenu.d.ts +1 -1
  35. package/dist/components/header/TreeSettingsMenu.js +1 -32
  36. package/dist/components/header/TreeSettingsMenu.js.map +1 -1
  37. package/dist/components/header/ZoomControls.js +28 -44
  38. package/dist/components/header/ZoomControls.js.map +1 -1
  39. package/dist/components/header/settingsMenuItems.d.ts +1 -0
  40. package/dist/components/header/settingsMenuItems.js +48 -1
  41. package/dist/components/header/settingsMenuItems.js.map +1 -1
  42. package/dist/components/import/data/seq2.d.ts +0 -1
  43. package/dist/components/import/data/seq2.js +0 -17
  44. package/dist/components/import/data/seq2.js.map +1 -1
  45. package/dist/components/msa/MSACanvas.js +2 -1
  46. package/dist/components/msa/MSACanvas.js.map +1 -1
  47. package/dist/components/msa/MSACanvasBlock.js +2 -5
  48. package/dist/components/msa/MSACanvasBlock.js.map +1 -1
  49. package/dist/components/msa/drawFeatureSpans.d.ts +50 -11
  50. package/dist/components/msa/drawFeatureSpans.js +99 -56
  51. package/dist/components/msa/drawFeatureSpans.js.map +1 -1
  52. package/dist/components/msa/msaRaster.d.ts +14 -1
  53. package/dist/components/msa/msaRaster.js +19 -9
  54. package/dist/components/msa/msaRaster.js.map +1 -1
  55. package/dist/components/msa/renderBoxFeatureCanvasBlock.d.ts +9 -0
  56. package/dist/components/msa/renderBoxFeatureCanvasBlock.js +19 -8
  57. package/dist/components/msa/renderBoxFeatureCanvasBlock.js.map +1 -1
  58. package/dist/components/msa/renderHighlights.d.ts +2 -2
  59. package/dist/components/msa/renderHighlights.js +2 -3
  60. package/dist/components/msa/renderHighlights.js.map +1 -1
  61. package/dist/components/msa/renderMSAMouseover.js +2 -1
  62. package/dist/components/msa/renderMSAMouseover.js.map +1 -1
  63. package/dist/components/renderCtx.d.ts +1 -1
  64. package/dist/components/rowpanels/renderFeaturePanel.d.ts +5 -1
  65. package/dist/components/rowpanels/renderFeaturePanel.js +12 -5
  66. package/dist/components/rowpanels/renderFeaturePanel.js.map +1 -1
  67. package/dist/components/tracks/drawTracks.d.ts +1 -53
  68. package/dist/components/tracks/drawTracks.js +5 -5
  69. package/dist/components/tracks/drawTracks.js.map +1 -1
  70. package/dist/components/tree/CladeLabels.d.ts +1 -1
  71. package/dist/components/tree/CladeLabels.js +22 -34
  72. package/dist/components/tree/CladeLabels.js.map +1 -1
  73. package/dist/components/tree/TreeCanvas.js +4 -4
  74. package/dist/components/tree/TreeCanvas.js.map +1 -1
  75. package/dist/components/tree/TreeCanvasBlock.js +4 -4
  76. package/dist/components/tree/TreeCanvasBlock.js.map +1 -1
  77. package/dist/components/tree/TreeOverview.js +10 -5
  78. package/dist/components/tree/TreeOverview.js.map +1 -1
  79. package/dist/components/tree/TreePanel.js +6 -2
  80. package/dist/components/tree/TreePanel.js.map +1 -1
  81. package/dist/components/tree/TreeRuler.js +2 -2
  82. package/dist/components/tree/TreeRuler.js.map +1 -1
  83. package/dist/components/tree/cladeBrackets.d.ts +22 -17
  84. package/dist/components/tree/cladeBrackets.js +40 -9
  85. package/dist/components/tree/cladeBrackets.js.map +1 -1
  86. package/dist/components/tree/clickMap.d.ts +2 -0
  87. package/dist/components/tree/clickMap.js.map +1 -1
  88. package/dist/components/tree/ellipsize.d.ts +8 -0
  89. package/dist/components/tree/ellipsize.js +20 -0
  90. package/dist/components/tree/ellipsize.js.map +1 -0
  91. package/dist/components/tree/renderTreeCanvas.js +30 -32
  92. package/dist/components/tree/renderTreeCanvas.js.map +1 -1
  93. package/dist/components/tree/renderTreeMouseover.js +1 -1
  94. package/dist/components/tree/renderTreeMouseover.js.map +1 -1
  95. package/dist/components/tree/renderTreeOverview.js +4 -11
  96. package/dist/components/tree/renderTreeOverview.js.map +1 -1
  97. package/dist/constants.d.ts +6 -3
  98. package/dist/constants.js +16 -6
  99. package/dist/constants.js.map +1 -1
  100. package/dist/element.js +3 -6
  101. package/dist/element.js.map +1 -1
  102. package/dist/exportLayout.d.ts +39 -0
  103. package/dist/exportLayout.js +78 -0
  104. package/dist/exportLayout.js.map +1 -0
  105. package/dist/headlessRenderEnv.d.ts +12 -39
  106. package/dist/headlessRenderEnv.js +18 -12
  107. package/dist/headlessRenderEnv.js.map +1 -1
  108. package/dist/hierarchy.d.ts +5 -8
  109. package/dist/hierarchy.js +5 -79
  110. package/dist/hierarchy.js.map +1 -1
  111. package/dist/index.d.ts +3 -1
  112. package/dist/index.js +4 -1
  113. package/dist/index.js.map +1 -1
  114. package/dist/measureTextCanvas.d.ts +7 -0
  115. package/dist/measureTextCanvas.js +10 -8
  116. package/dist/measureTextCanvas.js.map +1 -1
  117. package/dist/model/treeModel.d.ts +14 -25
  118. package/dist/model/treeModel.js +16 -30
  119. package/dist/model/treeModel.js.map +1 -1
  120. package/dist/model.d.ts +108 -79
  121. package/dist/model.js +258 -209
  122. package/dist/model.js.map +1 -1
  123. package/dist/renderToSvg.d.ts +2 -7
  124. package/dist/renderToSvg.js +49 -135
  125. package/dist/renderToSvg.js.map +1 -1
  126. package/dist/svgTestUtil.d.ts +48 -48
  127. package/dist/tipLabels.d.ts +8 -0
  128. package/dist/tipLabels.js +46 -0
  129. package/dist/tipLabels.js.map +1 -0
  130. package/dist/types.d.ts +0 -1
  131. package/dist/version.d.ts +1 -1
  132. package/dist/version.js +1 -1
  133. package/dist/viewerSnapshot.d.ts +169 -0
  134. package/dist/viewerSnapshot.js +100 -0
  135. package/dist/viewerSnapshot.js.map +1 -0
  136. package/package.json +3 -3
  137. package/src/colorSchemes.ts +1 -4
  138. package/src/columnCounts.ts +1 -1
  139. package/src/components/Loading.tsx +19 -12
  140. package/src/components/MSAView.tsx +2 -2
  141. package/src/components/MSAViewer.tsx +276 -256
  142. package/src/components/ResizeHandles.tsx +10 -3
  143. package/src/components/Track.tsx +3 -2
  144. package/src/components/controls.ts +61 -0
  145. package/src/components/dialogs/AnnotationFileDialog.tsx +5 -21
  146. package/src/components/dialogs/ExportSVGDialog.tsx +8 -19
  147. package/src/components/dialogs/HelpDialog.tsx +79 -0
  148. package/src/components/header/FileMenu.tsx +33 -7
  149. package/src/components/header/Header.tsx +4 -6
  150. package/src/components/header/TreeSettingsMenu.tsx +2 -32
  151. package/src/components/header/ZoomControls.tsx +30 -66
  152. package/src/components/header/settingsMenuItems.ts +67 -0
  153. package/src/components/import/data/seq2.ts +0 -18
  154. package/src/components/msa/MSACanvas.tsx +2 -1
  155. package/src/components/msa/MSACanvasBlock.tsx +2 -6
  156. package/src/components/msa/drawFeatureSpans.ts +160 -79
  157. package/src/components/msa/msaRaster.ts +27 -9
  158. package/src/components/msa/renderBoxFeatureCanvasBlock.ts +39 -24
  159. package/src/components/msa/renderHighlights.ts +2 -3
  160. package/src/components/msa/renderMSAMouseover.ts +5 -1
  161. package/src/components/renderCtx.ts +0 -1
  162. package/src/components/rowpanels/renderFeaturePanel.ts +26 -7
  163. package/src/components/tracks/drawTracks.ts +5 -5
  164. package/src/components/tree/CladeLabels.tsx +30 -54
  165. package/src/components/tree/TreeCanvas.tsx +10 -4
  166. package/src/components/tree/TreeCanvasBlock.tsx +4 -4
  167. package/src/components/tree/TreeOverview.tsx +10 -5
  168. package/src/components/tree/TreePanel.tsx +8 -2
  169. package/src/components/tree/TreeRuler.tsx +7 -3
  170. package/src/components/tree/cladeBrackets.ts +59 -19
  171. package/src/components/tree/clickMap.ts +2 -0
  172. package/src/components/tree/ellipsize.ts +24 -0
  173. package/src/components/tree/renderTreeCanvas.ts +37 -36
  174. package/src/components/tree/renderTreeMouseover.ts +1 -1
  175. package/src/components/tree/renderTreeOverview.ts +7 -14
  176. package/src/constants.ts +17 -6
  177. package/src/element.ts +3 -7
  178. package/src/exportLayout.ts +134 -0
  179. package/src/headlessRenderEnv.ts +24 -11
  180. package/src/hierarchy.ts +5 -88
  181. package/src/index.ts +5 -5
  182. package/src/measureTextCanvas.ts +10 -8
  183. package/src/model/treeModel.ts +17 -34
  184. package/src/model.ts +296 -243
  185. package/src/renderToSvg.tsx +72 -209
  186. package/src/tipLabels.ts +51 -0
  187. package/src/types.ts +0 -1
  188. package/src/version.ts +1 -1
  189. package/src/viewerSnapshot.ts +147 -0
  190. package/dist/components/header/ZoomMenu.d.ts +0 -6
  191. package/dist/components/header/ZoomMenu.js +0 -37
  192. package/dist/components/header/ZoomMenu.js.map +0 -1
  193. package/src/components/header/ZoomMenu.tsx +0 -48
@@ -1,3 +1,4 @@
1
+ import { labelFitFontSize } from '../../constants.js';
1
2
  import { measureTextCanvas } from '../../measureTextCanvas.js';
2
3
  // The bar of the bracket mark and the space around it, in px.
3
4
  export const bracketBarWidth = 3;
@@ -10,37 +11,37 @@ export function cladeInGutter(clade) {
10
11
  return (clade.mark === 'bracket' || (clade.mark === 'highlight' && !!clade.label));
11
12
  }
12
13
  /** the pixel height of the rows a clade covers */
13
- export function cladeHeight(clade, rowHeight) {
14
+ function cladeHeight(clade, rowHeight) {
14
15
  return (clade.rows[1] - clade.rows[0] + 1) * rowHeight;
15
16
  }
16
17
  /**
17
18
  * Whether a label reads across the rows. It does where they are taller than the
18
19
  * font, and runs up the bar where they are not.
19
20
  */
20
- export function cladeLabelHorizontal(clade, rowHeight, fontSize) {
21
+ function cladeLabelHorizontal(clade, rowHeight, fontSize) {
21
22
  return cladeHeight(clade, rowHeight) >= fontSize;
22
23
  }
23
24
  /** the px between the left edge of the gutter and the label's own column */
24
- export function cladeLabelOffset(clade) {
25
+ function cladeLabelOffset(clade) {
25
26
  return clade.mark === 'bracket'
26
27
  ? bracketGap + bracketBarWidth + bracketGap
27
28
  : bracketGap;
28
29
  }
29
30
  /**
30
31
  * The gutter the bracket mark needs at the right of the tree area: the bar plus
31
- * the widest label at the tree font, zero where no clade draws there, and at
32
- * most maxCladeGutterWidth.
32
+ * the widest label read across at labelFitFontSize, zero where no clade draws
33
+ * there, and at most maxCladeGutterWidth. The records size it, so a zoom, a
34
+ * collapse or a focus leaves it as it is, and a renderer clips a label that
35
+ * outgrows it.
33
36
  */
34
- export function cladeGutterWidth({ clades, rowHeight, fontSize, }) {
37
+ export function cladeGutterWidth(clades) {
35
38
  let widest = 0;
36
39
  for (const clade of clades) {
37
40
  if (!cladeInGutter(clade)) {
38
41
  continue;
39
42
  }
40
43
  const text = clade.label
41
- ? cladeLabelHorizontal(clade, rowHeight, fontSize)
42
- ? measureTextCanvas(clade.label, fontSize)
43
- : fontSize
44
+ ? measureTextCanvas(clade.label, labelFitFontSize)
44
45
  : 0;
45
46
  widest = Math.max(widest, cladeLabelOffset(clade) + text + bracketGap);
46
47
  }
@@ -48,4 +49,34 @@ export function cladeGutterWidth({ clades, rowHeight, fontSize, }) {
48
49
  // the measurement here sized the gutter for
49
50
  return Math.min(maxCladeGutterWidth, Math.ceil(widest));
50
51
  }
52
+ /**
53
+ * The box each gutter label takes, in unscrolled tree-area px: from the
54
+ * label's column to the right edge of the gutter, across the clade's rows. The
55
+ * live view sets DOM text in it, and the SVG export a `<text>`.
56
+ */
57
+ export function cladeLabelBoxes(model) {
58
+ const { resolvedClades, cladeGutterWidth, rowHeight, effectiveTreeAreaWidth, fontSize, } = model;
59
+ const gutterLeft = effectiveTreeAreaWidth - cladeGutterWidth;
60
+ return cladeGutterWidth === 0
61
+ ? []
62
+ : resolvedClades.flatMap((clade, index) => {
63
+ const { label, markColor, rows } = clade;
64
+ if (!label || !cladeInGutter(clade)) {
65
+ return [];
66
+ }
67
+ const left = gutterLeft + cladeLabelOffset(clade);
68
+ return [
69
+ {
70
+ key: `${rows[0]}-${rows[1]}-${index}`,
71
+ label,
72
+ color: markColor,
73
+ left,
74
+ top: rows[0] * rowHeight,
75
+ width: effectiveTreeAreaWidth - left - bracketGap,
76
+ height: cladeHeight(clade, rowHeight),
77
+ horizontal: cladeLabelHorizontal(clade, rowHeight, fontSize),
78
+ },
79
+ ];
80
+ });
81
+ }
51
82
  //# sourceMappingURL=cladeBrackets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cladeBrackets.js","sourceRoot":"","sources":["../../../src/components/tree/cladeBrackets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAI9D,8DAA8D;AAC9D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAA;AAChC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAA;AAE3B,8EAA8E;AAC9E,kDAAkD;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAEtC,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAAC,KAAoB;IAChD,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAC1E,CAAA;AACH,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,WAAW,CAAC,KAAoB,EAAE,SAAiB;IACjE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAA;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAoB,EACpB,SAAiB,EACjB,QAAgB;IAEhB,OAAO,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,QAAQ,CAAA;AAClD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,KAAoB;IACnD,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS;QAC7B,CAAC,CAAC,UAAU,GAAG,eAAe,GAAG,UAAU;QAC3C,CAAC,CAAC,UAAU,CAAA;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,MAAM,EACN,SAAS,EACT,QAAQ,GAKT;IACC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK;YACtB,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;gBAChD,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC;gBAC1C,CAAC,CAAC,QAAQ;YACZ,CAAC,CAAC,CAAC,CAAA;QACL,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,UAAU,CAAC,CAAA;IACxE,CAAC;IACD,4EAA4E;IAC5E,4CAA4C;IAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AACzD,CAAC"}
1
+ {"version":3,"file":"cladeBrackets.js","sourceRoot":"","sources":["../../../src/components/tree/cladeBrackets.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  export interface ClickEntry {
2
2
  name: string;
3
+ /** the text a tip label draws, which may be cut short */
4
+ label?: string;
3
5
  id: string;
4
6
  branch?: boolean;
5
7
  minX: number;
@@ -1 +1 @@
1
- {"version":3,"file":"clickMap.js","sourceRoot":"","sources":["../../../src/components/tree/clickMap.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAmB/B,uEAAuE;AACvE,+EAA+E;AAC/E,6DAA6D;AAC7D,MAAM,OAAO,aAAa;IAChB,QAAQ,GAAoB,IAAI,CAAA;IAChC,OAAO,GAAiB,EAAE,CAAA;IAElC,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACjD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YACnE,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;QACxB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,OAAO,CACL,IAAI,CAAC,QAAQ;YACX,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC;aAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CACpC,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"clickMap.js","sourceRoot":"","sources":["../../../src/components/tree/clickMap.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAqB/B,uEAAuE;AACvE,+EAA+E;AAC/E,6DAA6D;AAC7D,MAAM,OAAO,aAAa;IAChB,QAAQ,GAAoB,IAAI,CAAA;IAChC,OAAO,GAAiB,EAAE,CAAA;IAElC,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACjD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YACnE,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;QACxB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,OAAO,CACL,IAAI,CAAC,QAAQ;YACX,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC;aAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CACpC,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * the longest prefix of `text`, plus an ellipsis, that measures at most
3
+ * `room` px
4
+ */
5
+ export declare function ellipsize(measure: (text: string) => number, text: string, room: number): {
6
+ text: string;
7
+ width: number;
8
+ };
@@ -0,0 +1,20 @@
1
+ const ellipsis = '…';
2
+ /**
3
+ * the longest prefix of `text`, plus an ellipsis, that measures at most
4
+ * `room` px
5
+ */
6
+ export function ellipsize(measure, text, room) {
7
+ const width = measure(text);
8
+ if (width <= room) {
9
+ return { text, width };
10
+ }
11
+ for (let n = Math.floor((text.length * room) / width); n > 0; n--) {
12
+ const truncated = text.slice(0, n).trimEnd() + ellipsis;
13
+ const truncatedWidth = measure(truncated);
14
+ if (truncatedWidth <= room) {
15
+ return { text: truncated, width: truncatedWidth };
16
+ }
17
+ }
18
+ return { text: '', width: 0 };
19
+ }
20
+ //# sourceMappingURL=ellipsize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ellipsize.js","sourceRoot":"","sources":["../../../src/components/tree/ellipsize.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,GAAG,CAAA;AAEpB;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,OAAiC,EACjC,IAAY,EACZ,IAAY;IAEZ,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACxB,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAA;QACvD,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;QACzC,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,CAAA;QACnD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAC/B,CAAC"}
@@ -4,6 +4,7 @@ import { getVisibleLeaves } from '../getVisibleLeaves.js';
4
4
  import { drawHighlightLabel, highlightLabelHeight, highlightRowFill, } from '../msa/renderHighlights.js';
5
5
  import { referenceColor } from '../overlayColors.js';
6
6
  import { bracketBarWidth, bracketGap } from './cladeBrackets.js';
7
+ import { ellipsize } from './ellipsize.js';
7
8
  const radius = 2.5;
8
9
  const d = radius * 2;
9
10
  // How far outside a block a node's row-center can sit and still draw into it: a
@@ -20,7 +21,7 @@ function inYBlock(y, offsetY, by, pad) {
20
21
  /**
21
22
  * Every node whose subtree reaches into the block, skipping the subtrees that
22
23
  * do not. A subtree's leaves are one contiguous run of rows, recorded by
23
- * clusterLayout as xMin/xMax, so a block of a 200k-tip tree visits a few dozen
24
+ * layoutTree as xMin/xMax, so a block of a 200k-tip tree visits a few dozen
24
25
  * nodes.
25
26
  *
26
27
  * A link out of a visited node is drawn even when its child is pruned, so a
@@ -219,7 +220,8 @@ function renderNodeLabels({ ctx, theme, offsetY, model, tipX, maxDepthToLeaf, bl
219
220
  setFontSize(ctx, fontSize);
220
221
  }
221
222
  function renderTreeLabels({ theme, model, offsetY, ctx, clickMap, tipX, maxDepthToLeaf, blockSizeYOverride, collapsedSet, }) {
222
- const { fontSize, showBranchLenEffective: showBranchLen, tipLabelColors, blockSize, labelsAlignRight, drawTree, treeAreaWidthMinusMargin, marginLeft, noTree, labelWidthMap, labelWidthScale, } = model;
223
+ const { fontSize, showBranchLenEffective: showBranchLen, tipLabelColors, blockSize, labelsAlignRight, drawTree, treeAreaWidthMinusMargin, marginLeft, noTree, } = model;
224
+ const treeDrawn = drawTree && !noTree;
223
225
  const by = blockSizeYOverride ?? blockSize;
224
226
  // labels only exist for leaves, which are laid out top to bottom, so take the
225
227
  // same slice the MSA renderer uses instead of walking every tip per block
@@ -245,19 +247,18 @@ function renderTreeLabels({ theme, model, offsetY, ctx, clickMap, tipX, maxDepth
245
247
  // fontSize/4 below the row center, the baseline the alignment letters
246
248
  // share
247
249
  const yp = y + fontSize / 4;
248
- let xp = 0;
249
- if (!noTree) {
250
- xp = getNodeX(node, showBranchLen, tipX, maxDepthToLeaf) ?? 0;
251
- }
252
- const measured = labelWidthMap.get(name);
253
- const width = measured === undefined
254
- ? ctx.measureText(displayName).width
255
- : measured * labelWidthScale;
250
+ const xp = treeDrawn
251
+ ? (getNodeX(node, showBranchLen, tipX, maxDepthToLeaf) ?? 0)
252
+ : 0;
253
+ const fit = (room) => ellipsize(text => ctx.measureText(text).width, displayName, room);
254
+ // a label cut to nothing still gets a click box the font size wide
255
+ const boxWidth = (width) => Math.max(width, fontSize);
256
256
  ctx.fillStyle = tipLabelColors?.get(name) ?? theme.palette.text.primary;
257
257
  if (labelsAlignRight) {
258
258
  const smallPadding = 2;
259
259
  const offset = treeAreaWidthMinusMargin - smallPadding;
260
- if (drawTree && !noTree) {
260
+ const { text, width } = fit(offset - (treeDrawn ? xp + radius + 2 + smallPadding : 0));
261
+ if (treeDrawn) {
261
262
  // beginPath is load-bearing: without it every leader line re-strokes
262
263
  // all the ones before it, which is quadratic in the label count
263
264
  ctx.beginPath();
@@ -265,29 +266,32 @@ function renderTreeLabels({ theme, model, offsetY, ctx, clickMap, tipX, maxDepth
265
266
  ctx.lineTo(offset - smallPadding - width, y);
266
267
  ctx.stroke();
267
268
  }
268
- ctx.fillText(displayName, offset, yp);
269
+ ctx.fillText(text, offset, yp);
269
270
  // everything here is drawn under translate(marginLeft), so the click box
270
271
  // has to be the text's own right edge in that same space -- taking
271
- // treeAreaWidth instead put the target smallPadding off the label
272
+ // the tree area width instead put the target smallPadding off the label
272
273
  const labelRight = offset + marginLeft;
273
274
  clickMap?.insert({
274
- minX: labelRight - width,
275
+ minX: labelRight - boxWidth(width),
275
276
  maxX: labelRight,
276
277
  minY: yp - emHeight,
277
278
  maxY: yp,
278
279
  name,
280
+ label: displayName,
279
281
  id,
280
282
  });
281
283
  }
282
284
  else {
283
- const labelX = noTree ? 2 : xp + d;
284
- ctx.fillText(displayName, labelX, yp);
285
+ const labelX = treeDrawn ? xp + d : 2;
286
+ const { text, width } = fit(treeAreaWidthMinusMargin - labelX);
287
+ ctx.fillText(text, labelX, yp);
285
288
  clickMap?.insert({
286
289
  minX: labelX + marginLeft,
287
- maxX: labelX + width + marginLeft,
290
+ maxX: labelX + boxWidth(width) + marginLeft,
288
291
  minY: yp - emHeight,
289
292
  maxY: yp,
290
293
  name,
294
+ label: displayName,
291
295
  id,
292
296
  });
293
297
  }
@@ -312,9 +316,9 @@ function firstRow(rowIndices) {
312
316
  // branches. A clade spanning hundreds of rows crosses several blocks, so each
313
317
  // block draws the whole rectangle and the canvas takes the part that is its.
314
318
  function renderCladeHighlights({ ctx, model, offsetY, tipX, maxDepthToLeaf, blockSizeYOverride, }) {
315
- const { resolvedClades, hierarchy, showBranchLenEffective: showBranchLen, rowHeight, treeAreaWidth, marginLeft, blockSize, } = model;
319
+ const { resolvedClades, hierarchy, showBranchLenEffective: showBranchLen, rowHeight, effectiveTreeAreaWidth, marginLeft, blockSize, } = model;
316
320
  const by = blockSizeYOverride ?? blockSize;
317
- const right = treeAreaWidth - marginLeft;
321
+ const right = effectiveTreeAreaWidth - marginLeft;
318
322
  for (const { rows, color, mark } of resolvedClades) {
319
323
  if (mark !== 'highlight') {
320
324
  continue;
@@ -334,12 +338,12 @@ function renderCladeHighlights({ ctx, model, offsetY, tipX, maxDepthToLeaf, bloc
334
338
  // right of the tree area. The label beside it is DOM text on screen and a
335
339
  // <text> in the export, since the canvas layer has no rotation.
336
340
  function renderCladeBrackets({ ctx, model, theme, offsetY, blockSizeYOverride, }) {
337
- const { resolvedClades, cladeGutterWidth, rowHeight, treeAreaWidth, marginLeft, blockSize, } = model;
341
+ const { resolvedClades, cladeGutterWidth, rowHeight, effectiveTreeAreaWidth, marginLeft, blockSize, } = model;
338
342
  if (cladeGutterWidth === 0) {
339
343
  return;
340
344
  }
341
345
  const by = blockSizeYOverride ?? blockSize;
342
- const x = treeAreaWidth -
346
+ const x = effectiveTreeAreaWidth -
343
347
  marginLeft -
344
348
  cladeGutterWidth +
345
349
  bracketGap +
@@ -364,12 +368,12 @@ function renderCladeBrackets({ ctx, model, theme, offsetY, blockSizeYOverride, }
364
368
  // washed across the tree area under the labels, with each set's label in the
365
369
  // gutter at its first row
366
370
  function renderRowHighlights({ ctx, model, theme, offsetY, blockSizeYOverride, }) {
367
- const { resolvedHighlights, rowTints, referenceRowIndex, rowHeight, treeAreaWidth, marginLeft, blockSize, } = model;
371
+ const { resolvedHighlights, rowTints, referenceRowIndex, rowHeight, effectiveTreeAreaWidth, marginLeft, blockSize, } = model;
368
372
  const by = blockSizeYOverride ?? blockSize;
369
373
  const pad = blockPad(model);
370
374
  const placed = [];
371
375
  const fillRow = (index) => {
372
- ctx.fillRect(-marginLeft, index * rowHeight, treeAreaWidth, rowHeight);
376
+ ctx.fillRect(-marginLeft, index * rowHeight, effectiveTreeAreaWidth, rowHeight);
373
377
  };
374
378
  if (rowTints) {
375
379
  const top = Math.max(0, Math.floor((offsetY - pad) / rowHeight));
@@ -403,8 +407,8 @@ function renderRowHighlights({ ctx, model, theme, offsetY, blockSizeYOverride, }
403
407
  label,
404
408
  x: -marginLeft + 2,
405
409
  y: first * rowHeight,
406
- spanWidth: treeAreaWidth,
407
- bounds: { min: -marginLeft, max: treeAreaWidth - marginLeft },
410
+ spanWidth: effectiveTreeAreaWidth,
411
+ bounds: { min: -marginLeft, max: effectiveTreeAreaWidth - marginLeft },
408
412
  placed,
409
413
  });
410
414
  }
@@ -424,13 +428,7 @@ export function renderTreeCanvas({ model, clickMap, ctx, offsetY, theme, highRes
424
428
  setFontSize(ctx, fontSize);
425
429
  // memoized on the model and shared across the tree/bubble/label passes (and
426
430
  // across all tree blocks) rather than re-traversing the hierarchy in each
427
- const { maxBranchLength, maxDepthToLeaf, showBranchLenEffective, treeWidth } = model;
428
- // pixel x of the tips. A phylogram scales branch lengths so the longest
429
- // root-to-tip path lands at maxBranchLength; a cladogram ignores lengths and
430
- // spreads topological depth across the whole tree area instead. Reusing
431
- // maxBranchLength for the cladogram would pin every node to x=0 for a tree
432
- // with no branch lengths -- which is exactly what forces cladogram mode.
433
- const tipX = showBranchLenEffective ? maxBranchLength : treeWidth;
431
+ const { maxDepthToLeaf, effectiveTreeWidth: tipX } = model;
434
432
  // built once for all three passes: each of them asks about a different node on
435
433
  // every block of every redraw, and `collapsed` is a list
436
434
  const collapsedSet = new Set(model.collapsed);
@@ -1 +1 @@
1
- {"version":3,"file":"renderTreeCanvas.js","sourceRoot":"","sources":["../../../src/components/tree/renderTreeCanvas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderTreeCanvas.js","sourceRoot":"","sources":["../../../src/components/tree/renderTreeCanvas.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { treeHoverColor } from '../overlayColors.js';
2
2
  export function renderTreeMouseover({ ctx, model, }) {
3
- const { rowHeight, treeAreaWidth: width, height, scrollY, mouseRow, referenceRowIndex, hoveredRowIndices, highResScaleFactor, } = model;
3
+ const { rowHeight, effectiveTreeAreaWidth: width, height, scrollY, mouseRow, referenceRowIndex, hoveredRowIndices, highResScaleFactor, } = model;
4
4
  ctx.resetTransform();
5
5
  ctx.clearRect(0, 0, width * highResScaleFactor, height * highResScaleFactor);
6
6
  ctx.scale(highResScaleFactor, highResScaleFactor);
@@ -1 +1 @@
1
- {"version":3,"file":"renderTreeMouseover.js","sourceRoot":"","sources":["../../../src/components/tree/renderTreeMouseover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAIpD,MAAM,UAAU,mBAAmB,CAAC,EAClC,GAAG,EACH,KAAK,GAIN;IACC,MAAM,EACJ,SAAS,EACT,aAAa,EAAE,KAAK,EACpB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,GAAG,KAAK,CAAA;IACT,GAAG,CAAC,cAAc,EAAE,CAAA;IACpB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,kBAAkB,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAA;IAC5E,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAA;IAEjD,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;QAChC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC,CAAA;IAED,GAAG,CAAC,SAAS,GAAG,cAAc,CAAA;IAC9B,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC;IACD,IACE,QAAQ,KAAK,SAAS;QACtB,QAAQ,KAAK,iBAAiB;QAC9B,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACrC,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"renderTreeMouseover.js","sourceRoot":"","sources":["../../../src/components/tree/renderTreeMouseover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAIpD,MAAM,UAAU,mBAAmB,CAAC,EAClC,GAAG,EACH,KAAK,GAIN;IACC,MAAM,EACJ,SAAS,EACT,sBAAsB,EAAE,KAAK,EAC7B,MAAM,EACN,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,GAAG,KAAK,CAAA;IACT,GAAG,CAAC,cAAc,EAAE,CAAA;IACpB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,kBAAkB,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAA;IAC5E,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAA;IAEjD,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;QAChC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC,CAAA;IAED,GAAG,CAAC,SAAS,GAAG,cAAc,CAAA;IAC9B,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC;IACD,IACE,QAAQ,KAAK,SAAS;QACtB,QAAQ,KAAK,iBAAiB;QAC9B,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACrC,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnB,CAAC;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { descendants } from '../../hierarchy.js';
2
+ import { makeOffscreenCanvas } from '../msa/msaRaster.js';
2
3
  import { getNodeX } from './renderTreeCanvas.js';
3
4
  // the tree draws this far inside the band, so a box around the first or the
4
5
  // last row keeps both of its edges
@@ -100,16 +101,8 @@ function overviewKeys({ model, theme, width, height, scale, }) {
100
101
  theme.palette.text.primary,
101
102
  ];
102
103
  }
103
- function makeCanvas(width, height) {
104
- const canvas = typeof OffscreenCanvas !== 'undefined'
105
- ? new OffscreenCanvas(width, height)
106
- : typeof document !== 'undefined'
107
- ? Object.assign(document.createElement('canvas'), { width, height })
108
- : undefined;
109
- const ctx = canvas?.getContext('2d');
110
- return ctx && typeof ctx.stroke === 'function'
111
- ? { canvas: canvas, ctx: ctx }
112
- : undefined;
104
+ function canStroke(ctx) {
105
+ return typeof ctx?.stroke === 'function';
113
106
  }
114
107
  /**
115
108
  * The tree and its clade highlights on an offscreen canvas, drawn once per
@@ -126,7 +119,7 @@ export function treeOverviewImage({ model, theme, width, height, scale, }) {
126
119
  if (prev && keys.every((key, i) => key === prev.keys[i])) {
127
120
  return prev.canvas;
128
121
  }
129
- const made = makeCanvas(Math.max(1, Math.round(width * scale)), Math.max(1, Math.round(height * scale)));
122
+ const made = makeOffscreenCanvas(Math.max(1, Math.round(width * scale)), Math.max(1, Math.round(height * scale)), canStroke);
130
123
  if (made) {
131
124
  made.ctx.scale(scale, scale);
132
125
  drawTreeOverview({ model, ctx: made.ctx, theme, width, height });
@@ -1 +1 @@
1
- {"version":3,"file":"renderTreeOverview.js","sourceRoot":"","sources":["../../../src/components/tree/renderTreeOverview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderTreeOverview.js","sourceRoot":"","sources":["../../../src/components/tree/renderTreeOverview.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,8 @@ export declare const defaultScrollZoomAxis: ScrollZoomAxis;
22
22
  export declare const minLetterRowHeight = 8;
23
23
  export declare const minLetterColWidth = 5;
24
24
  export declare const minFeatureLabelHeight = 9;
25
- export declare const labelReferenceFontSize = 16;
25
+ export declare function fontSizeFor(rowHeight: number): number;
26
+ export declare const labelFitFontSize: number;
26
27
  export declare const minColWidth = 0.2;
27
28
  export declare const minRowHeight = 1;
28
29
  export declare const maxCellSize = 80;
@@ -31,8 +32,10 @@ export declare const defaultColorSchemeName = "maeditor";
31
32
  export declare const defaultShowColumnStats = true;
32
33
  export declare const defaultDrawLabels = true;
33
34
  export declare const defaultLabelsAlignRight = false;
34
- export declare const defaultTreeAreaWidth = 400;
35
- export declare const defaultTreeWidth = 300;
35
+ export declare const minTreeWidth = 70;
36
+ export declare const maxFitTreeWidth = 160;
37
+ export declare const pxPerTreeDepth = 10;
38
+ export declare const maxTreeAreaShare = 0.3;
36
39
  export declare const defaultShowBranchLen = true;
37
40
  export declare const treeOrders: readonly ["branchLength", "input", "ladderize", "ladderizeReverse"];
38
41
  export declare const defaultTreeOrder: TreeOrder;
package/dist/constants.js CHANGED
@@ -46,9 +46,13 @@ export const minLetterColWidth = 5;
46
46
  // so a span shorter than this holds no readable text: an underline bar, a
47
47
  // sub-row band or a features panel over small rows
48
48
  export const minFeatureLabelHeight = 9;
49
- // Tree labels are measured once at this size and scaled to the current font
50
- // size, so a vertical zoom never re-measures the tree.
51
- export const labelReferenceFontSize = 16;
49
+ export function fontSizeFor(rowHeight) {
50
+ return Math.min(Math.max(6, rowHeight - 3), 18);
51
+ }
52
+ // The fitted tree area measures the tip labels and the clade labels at the
53
+ // font a default row draws, so a vertical zoom leaves the alignment in place.
54
+ // A larger font ellipsizes the labels.
55
+ export const labelFitFontSize = fontSizeFor(defaultRowHeight);
52
56
  // Zoom limits, px per cell. maxCellSize caps both smooth zoom and the stepwise
53
57
  // zoom-in buttons (which otherwise grow unbounded). minColWidth/minRowHeight are
54
58
  // the smooth-zoom floors.
@@ -62,8 +66,14 @@ export const defaultShowColumnStats = true;
62
66
  // Tree model defaults
63
67
  export const defaultDrawLabels = true;
64
68
  export const defaultLabelsAlignRight = false;
65
- export const defaultTreeAreaWidth = 400;
66
- export const defaultTreeWidth = 300;
69
+ // The fitted tree area gives the tree pxPerTreeDepth per level of its depth,
70
+ // between minTreeWidth and maxFitTreeWidth, beside the widest label, and takes
71
+ // at most maxTreeAreaShare of a view with an alignment. Where the share binds,
72
+ // the tree keeps minTreeWidth and the labels ellipsize.
73
+ export const minTreeWidth = 70;
74
+ export const maxFitTreeWidth = 160;
75
+ export const pxPerTreeDepth = 10;
76
+ export const maxTreeAreaShare = 0.3;
67
77
  export const defaultShowBranchLen = true;
68
78
  export const treeOrders = [
69
79
  'branchLength',
@@ -80,7 +90,7 @@ export const defaultOverviewHeight = 120;
80
90
  // Neighbor joining does not run above this many rows. The distance matrix is
81
91
  // O(n^2*L) and the join loop O(n^3), both on the main thread with no progress
82
92
  // and no cancel: 400 rows measured 1.5s, 800 rows 10s, and 1600 would be about
83
- // seventy. See agent-docs/ideas/neighbor-joining-scaling.md.
93
+ // seventy. See agent-docs/reference/neighbor-joining-scaling.md.
84
94
  export const maxNeighborJoiningRows = 500;
85
95
  // The opacity a `rowTint` encoding draws its scale's color at, so the residues
86
96
  // under the wash stay readable. A color the producer already gave an alpha
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/element.js CHANGED
@@ -13,9 +13,6 @@ const ownAttributes = [
13
13
  ];
14
14
  // the attributes a <nightingale-manager> writes on the elements it holds
15
15
  const nightingaleAttributes = ['display-start', 'display-end', 'highlight'];
16
- function location(uri) {
17
- return uri ? { uri, locationType: 'UriLocation' } : undefined;
18
- }
19
16
  function numberAttribute(value) {
20
17
  const n = value ? Number(value) : Number.NaN;
21
18
  return Number.isFinite(n) ? n : undefined;
@@ -141,9 +138,9 @@ export function defineMsaElement(tagName = 'jbrowse-msa') {
141
138
  const theme = this.getAttribute('theme');
142
139
  return {
143
140
  ...this.#data,
144
- msaFilehandle: location(this.getAttribute('msa-url')),
145
- treeFilehandle: location(this.getAttribute('tree-url')),
146
- gffFilehandle: location(this.getAttribute('gff-url')),
141
+ msaUrl: this.getAttribute('msa-url') ?? undefined,
142
+ treeUrl: this.getAttribute('tree-url') ?? undefined,
143
+ gffUrl: this.getAttribute('gff-url') ?? undefined,
147
144
  colorScheme: this.#data.colorScheme ??
148
145
  this.getAttribute('color-scheme') ??
149
146
  undefined,