react-msaview 3.1.12 → 3.2.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 (186) hide show
  1. package/bundle/index.js +32 -31
  2. package/dist/colorSchemes.d.ts +2 -2
  3. package/dist/colorSchemes.js +3 -4
  4. package/dist/colorSchemes.js.map +1 -1
  5. package/dist/components/Loading.d.ts +1 -1
  6. package/dist/components/Loading.js +4 -4
  7. package/dist/components/Loading.js.map +1 -1
  8. package/dist/components/MSAView.d.ts +1 -1
  9. package/dist/components/MSAView.js +13 -9
  10. package/dist/components/MSAView.js.map +1 -1
  11. package/dist/components/ResizeHandles.d.ts +1 -1
  12. package/dist/components/ResizeHandles.js +2 -2
  13. package/dist/components/TextTrack.d.ts +1 -1
  14. package/dist/components/Track.d.ts +1 -1
  15. package/dist/components/VerticalScrollbar.d.ts +6 -0
  16. package/dist/components/VerticalScrollbar.js +65 -0
  17. package/dist/components/VerticalScrollbar.js.map +1 -0
  18. package/dist/components/dialogs/AddTrackDialog.d.ts +1 -1
  19. package/dist/components/dialogs/DomainDialog.d.ts +1 -1
  20. package/dist/components/dialogs/DomainDialog.js +2 -2
  21. package/dist/components/dialogs/DomainDialog.js.map +1 -1
  22. package/dist/components/dialogs/ExportSVGDialog.d.ts +1 -1
  23. package/dist/components/dialogs/FeatureDialog.d.ts +1 -1
  24. package/dist/components/dialogs/FeatureDialog.js.map +1 -1
  25. package/dist/components/dialogs/{InterProScanPanel.d.ts → InterProScanDialog.d.ts} +1 -1
  26. package/dist/components/dialogs/{InterProScanPanel.js → InterProScanDialog.js} +4 -3
  27. package/dist/components/dialogs/InterProScanDialog.js.map +1 -0
  28. package/dist/components/dialogs/MetadataDialog.d.ts +1 -1
  29. package/dist/components/dialogs/SettingsDialog.d.ts +1 -1
  30. package/dist/components/dialogs/SettingsDialog.js +10 -1
  31. package/dist/components/dialogs/SettingsDialog.js.map +1 -1
  32. package/dist/components/dialogs/TracklistDialog.d.ts +1 -1
  33. package/dist/components/dialogs/UserProvidedDomainsDialog.d.ts +7 -0
  34. package/dist/components/dialogs/UserProvidedDomainsDialog.js +58 -0
  35. package/dist/components/dialogs/UserProvidedDomainsDialog.js.map +1 -0
  36. package/dist/components/header/Header.d.ts +1 -1
  37. package/dist/components/header/Header.js +8 -3
  38. package/dist/components/header/Header.js.map +1 -1
  39. package/dist/components/header/HeaderInfoArea.d.ts +1 -1
  40. package/dist/components/header/HeaderMenu.d.ts +1 -1
  41. package/dist/components/header/HeaderMenuExtra.d.ts +1 -1
  42. package/dist/components/header/HeaderMenuExtra.js +30 -28
  43. package/dist/components/header/HeaderMenuExtra.js.map +1 -1
  44. package/dist/components/header/HeaderStatusArea.d.ts +2 -2
  45. package/dist/components/header/HeaderStatusArea.js +1 -1
  46. package/dist/components/header/HeaderStatusArea.js.map +1 -1
  47. package/dist/components/header/MultiAlignmentSelector.d.ts +1 -1
  48. package/dist/components/header/ZoomControls.js +31 -1
  49. package/dist/components/header/ZoomControls.js.map +1 -1
  50. package/dist/components/import/ImportForm.d.ts +1 -1
  51. package/dist/components/import/ImportForm.js +1 -1
  52. package/dist/components/import/ImportForm.js.map +1 -1
  53. package/dist/components/import/ImportFormExamples.d.ts +1 -1
  54. package/dist/components/import/ImportFormExamples.js +10 -8
  55. package/dist/components/import/ImportFormExamples.js.map +1 -1
  56. package/dist/components/import/util.d.ts +2 -2
  57. package/dist/components/minimap/Minimap.d.ts +1 -1
  58. package/dist/components/minimap/Minimap.js +14 -15
  59. package/dist/components/minimap/Minimap.js.map +1 -1
  60. package/dist/components/minimap/MinimapSVG.d.ts +1 -1
  61. package/dist/components/minimap/MinimapSVG.js +1 -1
  62. package/dist/components/minimap/MinimapSVG.js.map +1 -1
  63. package/dist/components/msa/MSACanvas.d.ts +1 -1
  64. package/dist/components/msa/MSACanvas.js +3 -3
  65. package/dist/components/msa/MSACanvas.js.map +1 -1
  66. package/dist/components/msa/MSACanvasBlock.d.ts +3 -3
  67. package/dist/components/msa/MSACanvasBlock.js +4 -3
  68. package/dist/components/msa/MSACanvasBlock.js.map +1 -1
  69. package/dist/components/msa/MSAMouseoverCanvas.d.ts +2 -2
  70. package/dist/components/msa/MSAMouseoverCanvas.js +1 -1
  71. package/dist/components/msa/MSAMouseoverCanvas.js.map +1 -1
  72. package/dist/components/msa/MSAPanel.d.ts +1 -1
  73. package/dist/components/msa/renderBoxFeatureCanvasBlock.d.ts +1 -1
  74. package/dist/components/msa/renderBoxFeatureCanvasBlock.js +1 -2
  75. package/dist/components/msa/renderBoxFeatureCanvasBlock.js.map +1 -1
  76. package/dist/components/msa/renderMSABlock.d.ts +2 -2
  77. package/dist/components/msa/renderMSABlock.js +12 -12
  78. package/dist/components/msa/renderMSABlock.js.map +1 -1
  79. package/dist/components/msa/renderMSAMouseover.d.ts +1 -1
  80. package/dist/components/tree/TreeBranchMenu.d.ts +1 -1
  81. package/dist/components/tree/TreeCanvas.d.ts +1 -1
  82. package/dist/components/tree/TreeCanvas.js +13 -12
  83. package/dist/components/tree/TreeCanvas.js.map +1 -1
  84. package/dist/components/tree/TreeCanvasBlock.d.ts +1 -1
  85. package/dist/components/tree/TreeCanvasBlock.js +2 -1
  86. package/dist/components/tree/TreeCanvasBlock.js.map +1 -1
  87. package/dist/components/tree/TreeNodeMenu.d.ts +1 -1
  88. package/dist/components/tree/TreeNodeMenu.js +2 -2
  89. package/dist/components/tree/TreeNodeMenu.js.map +1 -1
  90. package/dist/components/tree/TreePanel.d.ts +1 -1
  91. package/dist/components/tree/TreeRuler.d.ts +1 -1
  92. package/dist/components/tree/dialogs/TreeNodeInfoDialog.d.ts +1 -1
  93. package/dist/components/tree/renderTreeCanvas.d.ts +3 -3
  94. package/dist/components/tree/renderTreeCanvas.js +25 -9
  95. package/dist/components/tree/renderTreeCanvas.js.map +1 -1
  96. package/dist/components/util.js +1 -1
  97. package/dist/components/util.js.map +1 -1
  98. package/dist/launchInterProScan.d.ts +1 -1
  99. package/dist/launchInterProScan.js +7 -9
  100. package/dist/launchInterProScan.js.map +1 -1
  101. package/dist/model/DataModel.d.ts +5 -1
  102. package/dist/model/DataModel.js +10 -1
  103. package/dist/model/DataModel.js.map +1 -1
  104. package/dist/model/DialogQueue.d.ts +1 -1
  105. package/dist/model.d.ts +141 -24
  106. package/dist/model.js +236 -50
  107. package/dist/model.js.map +1 -1
  108. package/dist/parseNewick.js +1 -1
  109. package/dist/parseNewick.js.map +1 -1
  110. package/dist/parsers/ClustalMSA.d.ts +1 -1
  111. package/dist/parsers/FastaMSA.d.ts +1 -1
  112. package/dist/parsers/StockholmMSA.d.ts +1 -1
  113. package/dist/parsers/StockholmMSA.js.map +1 -1
  114. package/dist/renderToSvg.d.ts +2 -2
  115. package/dist/renderToSvg.js +3 -5
  116. package/dist/renderToSvg.js.map +1 -1
  117. package/dist/reparseTree.d.ts +1 -1
  118. package/dist/util.d.ts +2 -2
  119. package/dist/util.js +0 -2
  120. package/dist/util.js.map +1 -1
  121. package/dist/version.d.ts +1 -1
  122. package/dist/version.js +1 -1
  123. package/dist/version.js.map +1 -1
  124. package/package.json +5 -2
  125. package/src/colorSchemes.ts +3 -2
  126. package/src/components/Checkbox2.tsx +1 -1
  127. package/src/components/Loading.tsx +11 -5
  128. package/src/components/MSAView.tsx +27 -18
  129. package/src/components/ResizeHandles.tsx +3 -3
  130. package/src/components/TextTrack.tsx +1 -1
  131. package/src/components/Track.tsx +1 -1
  132. package/src/components/VerticalScrollbar.tsx +85 -0
  133. package/src/components/dialogs/AddTrackDialog.tsx +2 -2
  134. package/src/components/dialogs/DomainDialog.tsx +3 -3
  135. package/src/components/dialogs/ExportSVGDialog.tsx +1 -1
  136. package/src/components/dialogs/FeatureDialog.tsx +3 -3
  137. package/src/components/dialogs/{InterProScanPanel.tsx → InterProScanDialog.tsx} +11 -4
  138. package/src/components/dialogs/MetadataDialog.tsx +1 -1
  139. package/src/components/dialogs/SettingsDialog.tsx +38 -3
  140. package/src/components/dialogs/TracklistDialog.tsx +1 -1
  141. package/src/components/dialogs/UserProvidedDomainsDialog.tsx +133 -0
  142. package/src/components/header/Header.tsx +9 -4
  143. package/src/components/header/HeaderInfoArea.tsx +1 -1
  144. package/src/components/header/HeaderMenu.tsx +1 -1
  145. package/src/components/header/HeaderMenuExtra.tsx +36 -32
  146. package/src/components/header/HeaderStatusArea.tsx +2 -6
  147. package/src/components/header/MultiAlignmentSelector.tsx +1 -1
  148. package/src/components/header/ZoomControls.tsx +34 -0
  149. package/src/components/import/ImportForm.tsx +3 -3
  150. package/src/components/import/ImportFormExamples.tsx +19 -17
  151. package/src/components/import/util.ts +2 -2
  152. package/src/components/minimap/Minimap.tsx +15 -22
  153. package/src/components/minimap/MinimapSVG.tsx +2 -2
  154. package/src/components/msa/MSACanvas.tsx +11 -4
  155. package/src/components/msa/MSACanvasBlock.tsx +5 -4
  156. package/src/components/msa/MSAMouseoverCanvas.tsx +2 -6
  157. package/src/components/msa/MSAPanel.tsx +1 -1
  158. package/src/components/msa/renderBoxFeatureCanvasBlock.ts +4 -5
  159. package/src/components/msa/renderMSABlock.ts +37 -17
  160. package/src/components/msa/renderMSAMouseover.ts +1 -1
  161. package/src/components/tree/TreeBranchMenu.tsx +1 -1
  162. package/src/components/tree/TreeCanvas.tsx +15 -16
  163. package/src/components/tree/TreeCanvasBlock.tsx +3 -2
  164. package/src/components/tree/TreeNodeMenu.tsx +3 -3
  165. package/src/components/tree/TreePanel.tsx +1 -1
  166. package/src/components/tree/TreeRuler.tsx +1 -1
  167. package/src/components/tree/dialogs/TreeNodeInfoDialog.tsx +1 -1
  168. package/src/components/tree/renderTreeCanvas.ts +32 -12
  169. package/src/components/util.ts +1 -1
  170. package/src/launchInterProScan.ts +8 -10
  171. package/src/model/DataModel.ts +10 -0
  172. package/src/model/DialogQueue.ts +1 -1
  173. package/src/model.ts +262 -62
  174. package/src/parseNewick.ts +1 -1
  175. package/src/parsers/ClustalMSA.ts +1 -1
  176. package/src/parsers/FastaMSA.ts +1 -1
  177. package/src/parsers/StockholmMSA.ts +1 -1
  178. package/src/renderToSvg.tsx +6 -6
  179. package/src/reparseTree.ts +1 -1
  180. package/src/util.ts +2 -4
  181. package/src/version.ts +1 -1
  182. package/dist/components/dialogs/InterProScanPanel.js.map +0 -1
  183. package/dist/components/dialogs/UserProvidedResultPanel.d.ts +0 -7
  184. package/dist/components/dialogs/UserProvidedResultPanel.js +0 -56
  185. package/dist/components/dialogs/UserProvidedResultPanel.js.map +0 -1
  186. package/src/components/dialogs/UserProvidedResultPanel.tsx +0 -119
@@ -1 +1 @@
1
- {"version":3,"file":"parseNewick.js","sourceRoot":"","sources":["../src/parseNewick.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,CAAS;IACrC,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,8DAA8D;IAC9D,IAAI,IAAI,GAAG,EAAyB,CAAA;IACpC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,OAAO,GAAG,EAAE,CAAA;QAClB,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,GAAG,EAAE,gBAAgB;gBACxB,IAAI,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC1B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACpB,IAAI,GAAG,OAAO,CAAA;gBACd,MAAK;YACP,KAAK,GAAG,EAAE,iBAAiB;gBACzB,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACzC,IAAI,GAAG,OAAO,CAAA;gBACd,MAAK;YACP,KAAK,GAAG,EAAE,qBAAqB;gBAC7B,IAAI,GAAG,SAAS,CAAC,GAAG,EAAG,CAAA;gBACvB,MAAK;YACP,KAAK,GAAG,EAAE,uBAAuB;gBAC/B,MAAK;YACP,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBACxC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;gBACnB,CAAC;qBAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBACrB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"parseNewick.js","sourceRoot":"","sources":["../src/parseNewick.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,CAAS;IACrC,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,8DAA8D;IAC9D,IAAI,IAAI,GAAG,EAAyB,CAAA;IACpC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,OAAO,GAAG,EAAE,CAAA;QAClB,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,GAAG,EAAE,gBAAgB;gBACxB,IAAI,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC1B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACpB,IAAI,GAAG,OAAO,CAAA;gBACd,MAAK;YACP,KAAK,GAAG,EAAE,iBAAiB;gBACzB,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACzC,IAAI,GAAG,OAAO,CAAA;gBACd,MAAK;YACP,KAAK,GAAG,EAAE,qBAAqB;gBAC7B,IAAI,GAAG,SAAS,CAAC,GAAG,EAAG,CAAA;gBACvB,MAAK;YACP,KAAK,GAAG,EAAE,uBAAuB;gBAC/B,MAAK;YACP,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBACxC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;gBACnB,CAAC;qBAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,4 +1,4 @@
1
- import { NodeWithIds } from '../util';
1
+ import type { NodeWithIds } from '../util';
2
2
  export default class ClustalMSA {
3
3
  private MSA;
4
4
  constructor(text: string);
@@ -1,4 +1,4 @@
1
- import { NodeWithIds } from '../util';
1
+ import type { NodeWithIds } from '../util';
2
2
  export default class FastaMSA {
3
3
  private MSA;
4
4
  constructor(text: string);
@@ -1,4 +1,4 @@
1
- import { NodeWithIds } from '../util';
1
+ import { type NodeWithIds } from '../util';
2
2
  interface StockholmEntry {
3
3
  gf: {
4
4
  DE?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"StockholmMSA.js","sourceRoot":"","sources":["../../src/parsers/StockholmMSA.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StockholmMSA.js","sourceRoot":"","sources":["../../src/parsers/StockholmMSA.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { Theme } from '@mui/material';
2
- import { MsaViewModel } from './model';
1
+ import type { Theme } from '@mui/material';
2
+ import type { MsaViewModel } from './model';
3
3
  export declare function renderToSvg(model: MsaViewModel, opts: {
4
4
  theme: Theme;
5
5
  includeMinimap?: boolean;
@@ -8,7 +8,7 @@ import { colorContrast } from './util';
8
8
  import MinimapSVG from './components/minimap/MinimapSVG';
9
9
  import { renderBoxFeatureCanvasBlock } from './components/msa/renderBoxFeatureCanvasBlock';
10
10
  export async function renderToSvg(model, opts) {
11
- await when(() => !!model.initialized);
11
+ await when(() => !!model.dataInitialized);
12
12
  const { width, height, scrollX, scrollY } = model;
13
13
  const { exportType, theme, includeMinimap } = opts;
14
14
  if (exportType === 'entire') {
@@ -22,7 +22,7 @@ export async function renderToSvg(model, opts) {
22
22
  includeMinimap,
23
23
  });
24
24
  }
25
- else if (exportType === 'viewport') {
25
+ if (exportType === 'viewport') {
26
26
  return render({
27
27
  width,
28
28
  height,
@@ -33,9 +33,7 @@ export async function renderToSvg(model, opts) {
33
33
  includeMinimap,
34
34
  });
35
35
  }
36
- else {
37
- throw new Error('unknown export type');
38
- }
36
+ throw new Error('unknown export type');
39
37
  }
40
38
  async function render({ width, height, offsetX, offsetY, theme, model, includeMinimap, }) {
41
39
  const { Context } = await import('svgcanvas');
@@ -1 +1 @@
1
- {"version":3,"file":"renderToSvg.js","sourceRoot":"","sources":["../src/renderToSvg.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderToSvg.js","sourceRoot":"","sources":["../src/renderToSvg.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { NodeWithIds } from './util';
1
+ import type { NodeWithIds } from './util';
2
2
  export declare function reparseTree(tree: NodeWithIds): NodeWithIds;
package/dist/util.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { HierarchyNode } from 'd3-hierarchy';
2
- import { Theme } from '@mui/material';
1
+ import type { HierarchyNode } from 'd3-hierarchy';
2
+ import type { Theme } from '@mui/material';
3
3
  export declare function transform<T>(obj: Record<string, T>, cb: (arg0: [string, T]) => [string, T]): {
4
4
  [k: string]: T;
5
5
  };
package/dist/util.js CHANGED
@@ -54,8 +54,6 @@ export function collapse(d) {
54
54
  // @ts-expect-error
55
55
  d._children = d.children;
56
56
  // @ts-expect-error
57
- d._children.forEach(collapse);
58
- // @ts-expect-error
59
57
  d.children = null;
60
58
  }
61
59
  }
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "3.1.12";
1
+ export declare const version = "3.2.0";
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = '3.1.12';
1
+ export const version = '3.2.0';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-msaview",
3
3
  "author": "Colin",
4
- "version": "3.1.12",
4
+ "version": "3.2.0",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -15,6 +15,7 @@
15
15
  },
16
16
  "scripts": {
17
17
  "clean": "rimraf dist",
18
+ "format": "prettier --write .",
18
19
  "prebuild": "npm run clean",
19
20
  "prepublishOnly": "node output-version.js > src/version.ts && git add -A src && git commit -m '[skip ci] Bump version.ts'",
20
21
  "build:esm": "tsc",
@@ -23,7 +24,8 @@
23
24
  "prepack": "npm run build",
24
25
  "postversion": "git push --follow-tags",
25
26
  "prestatedocs": "yarn tsc --build docgen/tsconfig.json",
26
- "statedocs": "rm -rf apidocs && mkdir apidocs && node docgen/dist/generateStateModelDocs.js"
27
+ "statedocs": "rm -rf apidocs && mkdir apidocs && node docgen/dist/generateStateModelDocs.js",
28
+ "poststatedocs": "npm run format"
27
29
  },
28
30
  "peerDependencies": {
29
31
  "@jbrowse/core": ">=2.0.0",
@@ -42,6 +44,7 @@
42
44
  "d3-array": "^3.2.3",
43
45
  "d3-hierarchy": "^3.1.2",
44
46
  "file-saver": "^2.0.5",
47
+ "pako": "^2.1.0",
45
48
  "rbush": "^3.0.1",
46
49
  "react-error-boundary": "^4.0.13",
47
50
  "stockholm-js": "^1.0.10",
@@ -5,6 +5,7 @@ import { transform } from './util'
5
5
  extend([namesPlugin])
6
6
 
7
7
  const colorSchemes = {
8
+ none: {},
8
9
  clustal: {
9
10
  G: 'orange',
10
11
  P: 'orange',
@@ -351,11 +352,11 @@ export default transform(colorSchemes, ([key, val]) => [
351
352
  // should be WLVIMAFCHPY, colprot.xml says e.g. %#ACFHILMVWYPp" which has Y
352
353
  export function getClustalXColor(
353
354
  stats: Record<string, number>,
355
+ total: number,
354
356
  model: { columns: Record<string, string> },
355
357
  row: string,
356
358
  col: number,
357
359
  ) {
358
- const total = Object.values(stats).reduce((a, b) => a + b, 0)
359
360
  const l = model.columns[row][col]
360
361
  const {
361
362
  W = 0,
@@ -498,11 +499,11 @@ export function getClustalXColor(
498
499
  // should be WLVIMAFCHPY, colprot.xml says e.g. %#ACFHILMVWYPp" which has Y
499
500
  export function getPercentIdentityColor(
500
501
  stats: Record<string, number>,
502
+ total: number,
501
503
  model: { columns: Record<string, string> },
502
504
  row: string,
503
505
  col: number,
504
506
  ) {
505
- const total = Object.values(stats).reduce((a, b) => a + b, 0)
506
507
  const l = model.columns[row][col]
507
508
  const entries = Object.entries(stats)
508
509
  let ent = 0
@@ -2,7 +2,7 @@ import React from 'react'
2
2
  import {
3
3
  Checkbox,
4
4
  FormControlLabel,
5
- FormControlLabelProps,
5
+ type FormControlLabelProps,
6
6
  } from '@mui/material'
7
7
 
8
8
  function FormControlLabel2(rest: FormControlLabelProps) {
@@ -7,9 +7,15 @@ import { ErrorMessage } from '@jbrowse/core/ui'
7
7
  // locals
8
8
  import ImportForm from './import/ImportForm'
9
9
  import MSAView from './MSAView'
10
- import { MsaViewModel } from '../model'
10
+ import type { MsaViewModel } from '../model'
11
11
 
12
- function Reset({ model, error }: { model: MsaViewModel; error: unknown }) {
12
+ const Reset = observer(function ({
13
+ model,
14
+ error,
15
+ }: {
16
+ model: MsaViewModel
17
+ error: unknown
18
+ }) {
13
19
  return (
14
20
  <div>
15
21
  <ErrorMessage error={error} />
@@ -18,17 +24,17 @@ function Reset({ model, error }: { model: MsaViewModel; error: unknown }) {
18
24
  </Button>
19
25
  </div>
20
26
  )
21
- }
27
+ })
22
28
 
23
29
  const Loading = observer(function ({ model }: { model: MsaViewModel }) {
24
- const { isLoading, initialized } = model
30
+ const { isLoading, dataInitialized } = model
25
31
 
26
32
  return (
27
33
  <div>
28
34
  <ErrorBoundary
29
35
  fallbackRender={props => <Reset model={model} error={props.error} />}
30
36
  >
31
- {initialized ? (
37
+ {dataInitialized ? (
32
38
  isLoading ? (
33
39
  <Typography variant="h4">Loading...</Typography>
34
40
  ) : (
@@ -3,55 +3,64 @@ import { observer } from 'mobx-react'
3
3
 
4
4
  // locals
5
5
  import { HorizontalResizeHandle, VerticalResizeHandle } from './ResizeHandles'
6
- import { MsaViewModel } from '../model'
6
+ import type { MsaViewModel } from '../model'
7
7
  import TreeRuler from './tree/TreeRuler'
8
8
  import Header from './header/Header'
9
9
  import MSAPanel from './msa/MSAPanel'
10
10
  import TreePanel from './tree/TreePanel'
11
11
  import Minimap from './minimap/Minimap'
12
+ import VerticalScrollbar from './VerticalScrollbar'
12
13
 
13
- function TopArea({ model }: { model: MsaViewModel }) {
14
+ const TopArea = observer(function ({ model }: { model: MsaViewModel }) {
15
+ const { showHorizontalScrollbar } = model
14
16
  return (
15
17
  <div style={{ display: 'flex' }}>
16
18
  <TreeRuler model={model} />
17
- <Minimap model={model} />
19
+ {showHorizontalScrollbar ? <Minimap model={model} /> : null}
18
20
  </div>
19
21
  )
20
- }
21
- function MainArea({ model }: { model: MsaViewModel }) {
22
+ })
23
+
24
+ const MainArea = observer(function ({ model }: { model: MsaViewModel }) {
25
+ const { showVerticalScrollbar } = model
26
+
22
27
  return (
23
28
  <div style={{ display: 'flex' }}>
24
29
  <TreePanel model={model} />
25
30
  <VerticalResizeHandle model={model} />
26
31
  <MSAPanel model={model} />
32
+ {showVerticalScrollbar ? <VerticalScrollbar model={model} /> : null}
27
33
  </div>
28
34
  )
29
- }
35
+ })
30
36
 
31
37
  const View = observer(function ({ model }: { model: MsaViewModel }) {
32
38
  return (
33
39
  <div style={{ position: 'relative' }}>
34
40
  <TopArea model={model} />
35
-
36
41
  <MainArea model={model} />
37
42
  </div>
38
43
  )
39
44
  })
40
45
 
41
46
  const MSAView = observer(function ({ model }: { model: MsaViewModel }) {
42
- const { height, DialogComponent, DialogProps } = model
47
+ const { height, viewInitialized, DialogComponent, DialogProps } = model
43
48
  return (
44
49
  <div>
45
- <div style={{ height, overflow: 'hidden' }}>
46
- <Header model={model} />
47
- <View model={model} />
48
- </div>
49
- <HorizontalResizeHandle model={model} />
50
-
51
- {DialogComponent ? (
52
- <Suspense fallback={null}>
53
- <DialogComponent {...DialogProps} />
54
- </Suspense>
50
+ {viewInitialized ? (
51
+ <>
52
+ <div style={{ height, overflow: 'hidden' }}>
53
+ <Header model={model} />
54
+ <View model={model} />
55
+ </div>
56
+ <HorizontalResizeHandle model={model} />
57
+
58
+ {DialogComponent ? (
59
+ <Suspense fallback={null}>
60
+ <DialogComponent {...DialogProps} />
61
+ </Suspense>
62
+ ) : null}
63
+ </>
55
64
  ) : null}
56
65
  </div>
57
66
  )
@@ -2,7 +2,7 @@ import React, { useEffect, useRef, useState } from 'react'
2
2
  import { observer } from 'mobx-react'
3
3
 
4
4
  // locals
5
- import { MsaViewModel } from '../model'
5
+ import type { MsaViewModel } from '../model'
6
6
 
7
7
  export const VerticalResizeHandle = observer(function ({
8
8
  model,
@@ -62,7 +62,7 @@ export const VerticalResizeHandle = observer(function ({
62
62
  cursor: 'ew-resize',
63
63
  height: '100%',
64
64
  width: resizeHandleWidth,
65
- background: `rgba(200,200,200)`,
65
+ background: 'rgba(200,200,200)',
66
66
  position: 'relative',
67
67
  }}
68
68
  />
@@ -128,7 +128,7 @@ export const HorizontalResizeHandle = observer(function ({
128
128
  cursor: 'ns-resize',
129
129
  width: '100%',
130
130
  height: resizeHandleWidth,
131
- background: `rgba(200,200,200)`,
131
+ background: 'rgba(200,200,200)',
132
132
  position: 'relative',
133
133
  }}
134
134
  />
@@ -2,7 +2,7 @@ import React, { useRef, useMemo, useEffect } from 'react'
2
2
  import { useTheme } from '@mui/material'
3
3
  import { observer } from 'mobx-react'
4
4
  // locals
5
- import { MsaViewModel, ITextTrack } from '../model'
5
+ import type { MsaViewModel, ITextTrack } from '../model'
6
6
  import { colorContrast } from '../util'
7
7
 
8
8
  const AnnotationBlock = observer(function ({
@@ -8,7 +8,7 @@ import { makeStyles } from 'tss-react/mui'
8
8
  import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'
9
9
 
10
10
  // locals
11
- import { MsaViewModel } from '../model'
11
+ import type { MsaViewModel } from '../model'
12
12
 
13
13
  // lazies
14
14
  const TrackInfoDialog = lazy(() => import('./dialogs/TrackInfoDialog'))
@@ -0,0 +1,85 @@
1
+ import { observer } from 'mobx-react'
2
+ import React, { useEffect, useRef, useState } from 'react'
3
+ import type { MsaViewModel } from '../model'
4
+ import { clamp } from '../util'
5
+
6
+ const VerticalScrollbar = observer(({ model }: { model: MsaViewModel }) => {
7
+ const { msaAreaHeight, scrollY, totalHeight } = model
8
+ const [hovered, setHovered] = useState(false)
9
+ const scheduled = useRef(false)
10
+ const [mouseDown, setMouseDown] = useState<{
11
+ clientY: number
12
+ scrollY: number
13
+ }>()
14
+ const fill = 'rgba(66, 119, 127, 0.3)'
15
+ const unit = msaAreaHeight / totalHeight
16
+ const top = -scrollY
17
+ const bottom = top + msaAreaHeight
18
+ const t = top * unit
19
+ const b = bottom * unit
20
+ useEffect(() => {
21
+ function fn(event: MouseEvent) {
22
+ if (mouseDown !== undefined) {
23
+ if (!scheduled.current) {
24
+ scheduled.current = true
25
+ window.requestAnimationFrame(() => {
26
+ model.setScrollY(
27
+ clamp(
28
+ -totalHeight,
29
+ mouseDown.scrollY - (event.clientY - mouseDown.clientY) / unit,
30
+ 0,
31
+ ),
32
+ )
33
+ scheduled.current = false
34
+ })
35
+ }
36
+ }
37
+ }
38
+ function fn2() {
39
+ setMouseDown(undefined)
40
+ }
41
+ if (mouseDown !== undefined) {
42
+ document.addEventListener('mousemove', fn)
43
+ document.addEventListener('mouseup', fn2)
44
+ return () => {
45
+ document.removeEventListener('mousemove', fn)
46
+ document.removeEventListener('mousemove', fn2)
47
+ }
48
+ }
49
+ }, [model, unit, totalHeight, mouseDown])
50
+ return (
51
+ <div
52
+ style={{
53
+ position: 'relative',
54
+ width: 20,
55
+ height: msaAreaHeight,
56
+ borderLeft: '1px solid #555',
57
+ borderTop: '1px solid #555',
58
+ boxSizing: 'border-box',
59
+ }}
60
+ >
61
+ <div
62
+ style={{
63
+ position: 'absolute',
64
+ top: Math.max(0, t),
65
+ left: 0,
66
+ background: hovered ? 'rgba(66,119,127,0.6)' : fill,
67
+ cursor: 'pointer',
68
+ boxSizing: 'border-box',
69
+ width: 20,
70
+ height: Math.max(b - t, 20),
71
+ zIndex: 100,
72
+ }}
73
+ onMouseOver={() => setHovered(true)}
74
+ onMouseOut={() => setHovered(false)}
75
+ onMouseDown={event => {
76
+ setMouseDown({
77
+ clientY: event.clientY,
78
+ scrollY: model.scrollY,
79
+ })
80
+ }}
81
+ />
82
+ </div>
83
+ )
84
+ })
85
+ export default VerticalScrollbar
@@ -8,9 +8,9 @@ import {
8
8
  Typography,
9
9
  } from '@mui/material'
10
10
  import { Dialog, FileSelector } from '@jbrowse/core/ui'
11
- import { FileLocation } from '@jbrowse/core/util/types'
11
+ import type { FileLocation } from '@jbrowse/core/util/types'
12
12
  import { observer } from 'mobx-react'
13
- import { MsaViewModel } from '../../model'
13
+ import type { MsaViewModel } from '../../model'
14
14
 
15
15
  export default observer(function ({
16
16
  model,
@@ -3,10 +3,10 @@ import { Dialog } from '@jbrowse/core/ui'
3
3
  import { Tab, Tabs } from '@mui/material'
4
4
 
5
5
  // locals
6
- import InterProScanPanel from './InterProScanPanel'
7
- import UserProvidedResultPanel from './UserProvidedResultPanel'
6
+ import InterProScanPanel from './InterProScanDialog'
7
+ import UserProvidedResultPanel from './UserProvidedDomainsDialog'
8
8
  import TabPanel from './TabPanel'
9
- import { MsaViewModel } from '../../model'
9
+ import type { MsaViewModel } from '../../model'
10
10
 
11
11
  export default function LaunchDomainViewDialog({
12
12
  handleClose,
@@ -13,7 +13,7 @@ import {
13
13
  useTheme,
14
14
  } from '@mui/material'
15
15
  // locals
16
- import { MsaViewModel } from '../../model'
16
+ import type { MsaViewModel } from '../../model'
17
17
  import Checkbox2 from '../Checkbox2'
18
18
 
19
19
  export default function ExportSVGDialog({
@@ -4,7 +4,7 @@ import { Dialog } from '@jbrowse/core/ui'
4
4
  import { Button, DialogContent } from '@mui/material'
5
5
 
6
6
  // locals
7
- import { MsaViewModel } from '../../model'
7
+ import type { MsaViewModel } from '../../model'
8
8
  import { getPalette } from '../../ggplotPalettes'
9
9
 
10
10
  const Toggles = observer(function ({ model }: { model: MsaViewModel }) {
@@ -44,7 +44,7 @@ const Table = observer(function ({ model }: { model: MsaViewModel }) {
44
44
  <table>
45
45
  <thead>
46
46
  <tr>
47
- <td></td>
47
+ <td />
48
48
  <td>accession</td>
49
49
  <td>name</td>
50
50
  <td>description</td>
@@ -75,7 +75,7 @@ const Table = observer(function ({ model }: { model: MsaViewModel }) {
75
75
  height: 20,
76
76
  background: palette[idx] || 'black',
77
77
  }}
78
- ></div>
78
+ />
79
79
  </td>
80
80
  </tr>
81
81
  ))}
@@ -3,9 +3,10 @@ import { observer } from 'mobx-react'
3
3
  import { Button, DialogActions, DialogContent, Typography } from '@mui/material'
4
4
 
5
5
  // locals
6
- import { MsaViewModel } from '../../model'
6
+ import type { MsaViewModel } from '../../model'
7
7
  import { getSession } from '@jbrowse/core/util'
8
8
  import { launchInterProScan } from '../../launchInterProScan'
9
+ import { Dialog } from '@jbrowse/core/ui'
9
10
 
10
11
  const InterProScanDialog = observer(function ({
11
12
  handleClose,
@@ -147,10 +148,16 @@ const InterProScanDialog = observer(function ({
147
148
  const [show, setShow] = useState(false)
148
149
 
149
150
  return (
150
- <>
151
+ <Dialog
152
+ maxWidth="xl"
153
+ title="Query InterProScan API for domains"
154
+ onClose={() => handleClose()}
155
+ open
156
+ >
151
157
  <DialogContent>
152
158
  <Typography>
153
- This will run InterProScan on all rows of the current MSA
159
+ This will run InterProScan via the InterProScan API on all rows of the
160
+ current MSA
154
161
  </Typography>
155
162
  <Button onClick={() => setShow(!show)}>
156
163
  {show ? 'Hide' : 'Show'} advanced options
@@ -254,7 +261,7 @@ const InterProScanDialog = observer(function ({
254
261
  Send sequences to InterProScan
255
262
  </Button>
256
263
  </DialogActions>
257
- </>
264
+ </Dialog>
258
265
  )
259
266
  })
260
267
 
@@ -8,7 +8,7 @@ import {
8
8
  } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail'
9
9
 
10
10
  // locals
11
- import { MsaViewModel } from '../../model'
11
+ import type { MsaViewModel } from '../../model'
12
12
  import SequenceTextArea from '../SequenceTextArea'
13
13
 
14
14
  const MetadataDialog = observer(function ({