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/model.d.ts CHANGED
@@ -6,12 +6,17 @@ import type { Instance } from '@jbrowse/mobx-state-tree';
6
6
  import type { Theme } from '@mui/material';
7
7
  /**
8
8
  * #stateModel MsaView
9
- * extends
10
- * - [DialogQueueSessionMixin](../dialogqueuesessionmixin)
11
- * - [MSAModel](../msamodel)
12
- * - [Tree](../tree)
9
+ * #example
10
+ * ```js
11
+ * import { MSAModelF } from 'react-msaview'
12
+ * import { types } from '@jbrowse/mobx-state-tree'
13
+ *
14
+ * const RootModel = types.model({ view: types.optional(MSAModelF(), {}) })
15
+ * const root = RootModel.create({})
16
+ * root.view.setData({ msa: '>seq1\nACGT\n>seq2\nACGT' })
17
+ * ```
13
18
  */
14
- declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelType<{
19
+ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelType<Omit<Omit<Omit<{}, "drawLabels" | "labelsAlignRight" | "treeAreaWidth" | "treeWidth" | "showBranchLen" | "drawTree" | "drawNodeBubbles"> & {
15
20
  drawLabels: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
16
21
  labelsAlignRight: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
17
22
  treeAreaWidth: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<number>, [undefined]>;
@@ -19,10 +24,10 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
19
24
  showBranchLen: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
20
25
  drawTree: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
21
26
  drawNodeBubbles: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
22
- } & {
27
+ }, "bgColor" | "colorSchemeName"> & {
23
28
  bgColor: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
24
29
  colorSchemeName: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
25
- } & {
30
+ }, "type" | "id" | "data" | "showDomains" | "hideGaps" | "allowedGappyness" | "subFeatureRows" | "drawMsaLetters" | "scrollZoom" | "rowHeight" | "scrollY" | "scrollX" | "colWidth" | "currentAlignment" | "height" | "treeFilehandle" | "msaFilehandle" | "treeMetadataFilehandle" | "gffFilehandle" | "collapsed" | "showOnly" | "turnedOffTracks" | "featureFilters" | "relativeTo"> & {
26
31
  id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
27
32
  showDomains: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
28
33
  hideGaps: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
@@ -30,6 +35,7 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
30
35
  subFeatureRows: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
31
36
  type: import("@jbrowse/mobx-state-tree").ISimpleType<"MsaView">;
32
37
  drawMsaLetters: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
38
+ scrollZoom: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
33
39
  height: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<number>, [undefined]>;
34
40
  rowHeight: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
35
41
  scrollY: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
@@ -43,18 +49,18 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
43
49
  internetAccountType: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
44
50
  authInfo: import("@jbrowse/mobx-state-tree").IType<any, any, any>;
45
51
  }> | undefined;
46
- } | {
47
- locationType: "BlobLocation";
48
- name: string;
49
- blobId: string;
50
- } | {
51
- locationType: "FileHandleLocation";
52
- name: string;
53
- handleId: string;
54
- } | {
55
- locationType: "LocalPathLocation";
56
- localPath: string;
57
- }, any>, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
52
+ } | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
53
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"BlobLocation">;
54
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
55
+ blobId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
56
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
57
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"FileHandleLocation">;
58
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
59
+ handleId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
60
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
61
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"LocalPathLocation">;
62
+ localPath: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
63
+ }>, any>, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
58
64
  msaFilehandle: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISnapshotProcessor<import("@jbrowse/mobx-state-tree").ITypeUnion<any, {
59
65
  locationType: "UriLocation";
60
66
  uri: string;
@@ -63,18 +69,18 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
63
69
  internetAccountType: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
64
70
  authInfo: import("@jbrowse/mobx-state-tree").IType<any, any, any>;
65
71
  }> | undefined;
66
- } | {
67
- locationType: "BlobLocation";
68
- name: string;
69
- blobId: string;
70
- } | {
71
- locationType: "FileHandleLocation";
72
- name: string;
73
- handleId: string;
74
- } | {
75
- locationType: "LocalPathLocation";
76
- localPath: string;
77
- }, any>, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
72
+ } | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
73
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"BlobLocation">;
74
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
75
+ blobId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
76
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
77
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"FileHandleLocation">;
78
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
79
+ handleId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
80
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
81
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"LocalPathLocation">;
82
+ localPath: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
83
+ }>, any>, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
78
84
  treeMetadataFilehandle: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISnapshotProcessor<import("@jbrowse/mobx-state-tree").ITypeUnion<any, {
79
85
  locationType: "UriLocation";
80
86
  uri: string;
@@ -83,18 +89,18 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
83
89
  internetAccountType: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
84
90
  authInfo: import("@jbrowse/mobx-state-tree").IType<any, any, any>;
85
91
  }> | undefined;
86
- } | {
87
- locationType: "BlobLocation";
88
- name: string;
89
- blobId: string;
90
- } | {
91
- locationType: "FileHandleLocation";
92
- name: string;
93
- handleId: string;
94
- } | {
95
- locationType: "LocalPathLocation";
96
- localPath: string;
97
- }, any>, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
92
+ } | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
93
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"BlobLocation">;
94
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
95
+ blobId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
96
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
97
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"FileHandleLocation">;
98
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
99
+ handleId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
100
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
101
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"LocalPathLocation">;
102
+ localPath: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
103
+ }>, any>, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
98
104
  gffFilehandle: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISnapshotProcessor<import("@jbrowse/mobx-state-tree").ITypeUnion<any, {
99
105
  locationType: "UriLocation";
100
106
  uri: string;
@@ -103,18 +109,18 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
103
109
  internetAccountType: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
104
110
  authInfo: import("@jbrowse/mobx-state-tree").IType<any, any, any>;
105
111
  }> | undefined;
106
- } | {
107
- locationType: "BlobLocation";
108
- name: string;
109
- blobId: string;
110
- } | {
111
- locationType: "FileHandleLocation";
112
- name: string;
113
- handleId: string;
114
- } | {
115
- locationType: "LocalPathLocation";
116
- localPath: string;
117
- }, any>, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
112
+ } | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
113
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"BlobLocation">;
114
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
115
+ blobId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
116
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
117
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"FileHandleLocation">;
118
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
119
+ handleId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
120
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
121
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"LocalPathLocation">;
122
+ localPath: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
123
+ }>, any>, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
118
124
  currentAlignment: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
119
125
  collapsed: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
120
126
  showOnly: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
@@ -172,7 +178,8 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
172
178
  /**
173
179
  * #volatile
174
180
  * high resolution scale factor, helps make canvas look better on hi-dpi
175
- * screens
181
+ * screens. derived from the device pixel ratio so canvases are crisp on
182
+ * retina/4k displays and not needlessly oversized on standard ones
176
183
  */
177
184
  highResScaleFactor: number;
178
185
  /**
@@ -275,6 +282,12 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
275
282
  * #action
276
283
  */
277
284
  setWidth(arg: number): void;
285
+ /**
286
+ * #action
287
+ * high-res scale factor, tracks the device pixel ratio so canvases stay
288
+ * crisp when the window moves between monitors or the browser zooms
289
+ */
290
+ setHighResScaleFactor(arg: number): void;
278
291
  /**
279
292
  * #action
280
293
  * set the height of the view in px
@@ -294,11 +307,6 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
294
307
  * signature stable; see that repo's ProteinToMsaHoverSync.tsx.
295
308
  */
296
309
  setMousePos(col?: number, row?: number): void;
297
- /**
298
- * #action
299
- * set hovered tree node and its descendants
300
- */
301
- setHoveredTreeNode(nodeId?: string): void;
302
310
  /**
303
311
  * #action
304
312
  * set highlighted columns
@@ -414,7 +422,18 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
414
422
  /**
415
423
  * #getter
416
424
  */
417
- readonly header: Record<string, unknown>;
425
+ readonly header: Record<string, unknown> | {
426
+ info: string;
427
+ version: string | undefined;
428
+ } | {
429
+ General: Record<string, string[]>;
430
+ Accessions: {
431
+ [k: string]: string | undefined;
432
+ };
433
+ Dbxref: {
434
+ [k: string]: string;
435
+ };
436
+ };
418
437
  /**
419
438
  * #getter
420
439
  */
@@ -441,9 +460,6 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
441
460
  * #getter
442
461
  */
443
462
  readonly tree: NodeWithIds;
444
- /**
445
- * #getter
446
- */
447
463
  /**
448
464
  * #getter
449
465
  * Returns the list of row (sequence) names in display order.
@@ -598,7 +614,7 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
598
614
  /**
599
615
  * #getter
600
616
  */
601
- readonly dataInitialized: boolean | "" | undefined;
617
+ readonly dataInitialized: boolean;
602
618
  /**
603
619
  * #getter
604
620
  */
@@ -620,6 +636,13 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
620
636
  * #getter
621
637
  */
622
638
  readonly maxScrollX: number;
639
+ /**
640
+ * #getter
641
+ * most-negative allowed scrollY, keeping the last row in view rather than
642
+ * letting the whole alignment scroll off the top. visible MSA height is
643
+ * computed inline here because msaAreaHeight is defined later in the chain.
644
+ */
645
+ readonly maxScrollY: number;
623
646
  /**
624
647
  * #getter
625
648
  */
@@ -633,6 +656,15 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
633
656
  * #action
634
657
  */
635
658
  setDrawMsaLetters(arg: boolean): void;
659
+ /**
660
+ * #action
661
+ */
662
+ setScrollZoom(arg: boolean): void;
663
+ /**
664
+ * #action
665
+ * set hovered tree node and its descendants
666
+ */
667
+ setHoveredTreeNode(nodeId?: string): void;
636
668
  /**
637
669
  * #action
638
670
  * Calculate a neighbor joining tree from the current MSA using BLOSUM62 distances
@@ -666,11 +698,28 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
666
698
  * #action
667
699
  */
668
700
  zoomOut(): void;
701
+ /**
702
+ * #action
703
+ * Smoothly zoom by a continuous scaleFactor. The column under the cursor
704
+ * (offsetX/offsetY, px relative to the MSA area) stays anchored
705
+ * horizontally. Vertically the anchor is biased toward the top: when the
706
+ * alignment nearly fits the viewport, snap to y=0 rather than pinning a
707
+ * random row under the cursor, with the bias fading out as the alignment
708
+ * grows taller than the viewport (where cursor-anchoring is useful).
709
+ * Drives wheel/trackpad-pinch zoom.
710
+ */
711
+ zoomToPos(scaleFactor: number, offsetX: number, offsetY: number): void;
669
712
  /**
670
713
  * #action
671
714
  */
672
715
  doScrollY(deltaY: number): void;
673
- setInterProAnnotations(data?: Record<string, InterProScanResults>): void;
716
+ /**
717
+ * #action
718
+ * Set domain annotations and reveal the overlay in a single step (or clear
719
+ * both when passed undefined). Shared by every domain source: InterProScan,
720
+ * GFF, user-provided uploads, and NCBI CDD.
721
+ */
722
+ setDomains(data?: Record<string, InterProScanResults>): void;
674
723
  applyGFFText(gffText: string): void;
675
724
  /**
676
725
  * #action
@@ -892,29 +941,32 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
892
941
  */
893
942
  fitHorizontally(): void;
894
943
  afterCreate(): void;
895
- }, import("@jbrowse/mobx-state-tree")._NotCustomized, Omit<{
896
- drawLabels: boolean;
897
- labelsAlignRight: boolean;
898
- treeAreaWidth: number;
899
- treeWidth: number;
900
- showBranchLen: boolean;
901
- drawTree: boolean;
902
- drawNodeBubbles: boolean;
903
- bgColor: boolean;
904
- colorSchemeName: string;
905
- id: string;
906
- showDomains: boolean;
907
- hideGaps: boolean;
908
- allowedGappyness: number;
909
- subFeatureRows: boolean;
910
- type: "MsaView";
911
- drawMsaLetters: boolean;
912
- height: number;
913
- rowHeight: number;
914
- scrollY: number;
915
- scrollX: number;
916
- colWidth: number;
917
- treeFilehandle: {
944
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, Omit<import("@jbrowse/mobx-state-tree").ModelSnapshotType<Omit<Omit<Omit<{}, "drawLabels" | "labelsAlignRight" | "treeAreaWidth" | "treeWidth" | "showBranchLen" | "drawTree" | "drawNodeBubbles"> & {
945
+ drawLabels: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
946
+ labelsAlignRight: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
947
+ treeAreaWidth: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<number>, [undefined]>;
948
+ treeWidth: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<number>, [undefined]>;
949
+ showBranchLen: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
950
+ drawTree: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
951
+ drawNodeBubbles: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
952
+ }, "bgColor" | "colorSchemeName"> & {
953
+ bgColor: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
954
+ colorSchemeName: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
955
+ }, "type" | "id" | "data" | "showDomains" | "hideGaps" | "allowedGappyness" | "subFeatureRows" | "drawMsaLetters" | "scrollZoom" | "rowHeight" | "scrollY" | "scrollX" | "colWidth" | "currentAlignment" | "height" | "treeFilehandle" | "msaFilehandle" | "treeMetadataFilehandle" | "gffFilehandle" | "collapsed" | "showOnly" | "turnedOffTracks" | "featureFilters" | "relativeTo"> & {
956
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
957
+ showDomains: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
958
+ hideGaps: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
959
+ allowedGappyness: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
960
+ subFeatureRows: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
961
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<"MsaView">;
962
+ drawMsaLetters: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
963
+ scrollZoom: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
964
+ height: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<number>, [undefined]>;
965
+ rowHeight: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
966
+ scrollY: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
967
+ scrollX: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
968
+ colWidth: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
969
+ treeFilehandle: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISnapshotProcessor<import("@jbrowse/mobx-state-tree").ITypeUnion<any, {
918
970
  locationType: "UriLocation";
919
971
  uri: string;
920
972
  internetAccountId: string | undefined;
@@ -922,19 +974,19 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
922
974
  internetAccountType: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
923
975
  authInfo: import("@jbrowse/mobx-state-tree").IType<any, any, any>;
924
976
  }> | undefined;
925
- } | {
926
- locationType: "BlobLocation";
927
- name: string;
928
- blobId: string;
929
- } | {
930
- locationType: "FileHandleLocation";
931
- name: string;
932
- handleId: string;
933
- } | {
934
- locationType: "LocalPathLocation";
935
- localPath: string;
936
- } | undefined;
937
- msaFilehandle: {
977
+ } | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
978
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"BlobLocation">;
979
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
980
+ blobId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
981
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
982
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"FileHandleLocation">;
983
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
984
+ handleId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
985
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
986
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"LocalPathLocation">;
987
+ localPath: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
988
+ }>, any>, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
989
+ msaFilehandle: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISnapshotProcessor<import("@jbrowse/mobx-state-tree").ITypeUnion<any, {
938
990
  locationType: "UriLocation";
939
991
  uri: string;
940
992
  internetAccountId: string | undefined;
@@ -942,19 +994,19 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
942
994
  internetAccountType: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
943
995
  authInfo: import("@jbrowse/mobx-state-tree").IType<any, any, any>;
944
996
  }> | undefined;
945
- } | {
946
- locationType: "BlobLocation";
947
- name: string;
948
- blobId: string;
949
- } | {
950
- locationType: "FileHandleLocation";
951
- name: string;
952
- handleId: string;
953
- } | {
954
- locationType: "LocalPathLocation";
955
- localPath: string;
956
- } | undefined;
957
- treeMetadataFilehandle: {
997
+ } | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
998
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"BlobLocation">;
999
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1000
+ blobId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1001
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
1002
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"FileHandleLocation">;
1003
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1004
+ handleId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1005
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
1006
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"LocalPathLocation">;
1007
+ localPath: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1008
+ }>, any>, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
1009
+ treeMetadataFilehandle: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISnapshotProcessor<import("@jbrowse/mobx-state-tree").ITypeUnion<any, {
958
1010
  locationType: "UriLocation";
959
1011
  uri: string;
960
1012
  internetAccountId: string | undefined;
@@ -962,19 +1014,19 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
962
1014
  internetAccountType: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
963
1015
  authInfo: import("@jbrowse/mobx-state-tree").IType<any, any, any>;
964
1016
  }> | undefined;
965
- } | {
966
- locationType: "BlobLocation";
967
- name: string;
968
- blobId: string;
969
- } | {
970
- locationType: "FileHandleLocation";
971
- name: string;
972
- handleId: string;
973
- } | {
974
- locationType: "LocalPathLocation";
975
- localPath: string;
976
- } | undefined;
977
- gffFilehandle: {
1017
+ } | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
1018
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"BlobLocation">;
1019
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1020
+ blobId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1021
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
1022
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"FileHandleLocation">;
1023
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1024
+ handleId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1025
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
1026
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"LocalPathLocation">;
1027
+ localPath: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1028
+ }>, any>, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
1029
+ gffFilehandle: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISnapshotProcessor<import("@jbrowse/mobx-state-tree").ITypeUnion<any, {
978
1030
  locationType: "UriLocation";
979
1031
  uri: string;
980
1032
  internetAccountId: string | undefined;
@@ -982,31 +1034,41 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
982
1034
  internetAccountType: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
983
1035
  authInfo: import("@jbrowse/mobx-state-tree").IType<any, any, any>;
984
1036
  }> | undefined;
985
- } | {
986
- locationType: "BlobLocation";
987
- name: string;
988
- blobId: string;
989
- } | {
990
- locationType: "FileHandleLocation";
991
- name: string;
992
- handleId: string;
993
- } | {
994
- locationType: "LocalPathLocation";
995
- localPath: string;
996
- } | undefined;
997
- currentAlignment: number;
998
- collapsed: string[];
999
- showOnly: string | undefined;
1000
- turnedOffTracks: import("mobx").IKeyValueMap<boolean>;
1001
- data: {
1037
+ } | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
1038
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"BlobLocation">;
1039
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1040
+ blobId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1041
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
1042
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"FileHandleLocation">;
1043
+ name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1044
+ handleId: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1045
+ }> | import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
1046
+ locationType: import("@jbrowse/mobx-state-tree").ISimpleType<"LocalPathLocation">;
1047
+ localPath: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
1048
+ }>, any>, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
1049
+ currentAlignment: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
1050
+ collapsed: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
1051
+ showOnly: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
1052
+ turnedOffTracks: import("@jbrowse/mobx-state-tree").IMapType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
1053
+ data: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IModelType<{
1054
+ tree: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
1055
+ msa: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
1056
+ treeMetadata: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
1057
+ gff: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
1058
+ }, {
1059
+ setTree(tree?: string): void;
1060
+ setMSA(msa?: string): void;
1061
+ setTreeMetadata(treeMetadata?: string): void;
1062
+ setGFF(gff?: string): void;
1063
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, {
1002
1064
  tree: string | undefined;
1003
1065
  msa: string | undefined;
1004
1066
  treeMetadata: string | undefined;
1005
1067
  gff: string | undefined;
1006
- };
1007
- featureFilters: import("mobx").IKeyValueMap<boolean>;
1008
- relativeTo: string | undefined;
1009
- }, symbol>>;
1068
+ }>, [undefined]>;
1069
+ featureFilters: import("@jbrowse/mobx-state-tree").IMapType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
1070
+ relativeTo: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
1071
+ }>, symbol>>;
1010
1072
  export default stateModelFactory;
1011
1073
  export type MsaViewStateModel = ReturnType<typeof stateModelFactory>;
1012
1074
  export type MsaViewModel = Instance<MsaViewStateModel>;