react-msaview 1.3.1 → 2.0.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 (200) hide show
  1. package/bundle/index.js +283 -97265
  2. package/dist/StructureModel.d.ts +9 -0
  3. package/dist/StructureModel.js +11 -0
  4. package/dist/StructureModel.js.map +1 -0
  5. package/dist/UniprotTrack.d.ts +27 -0
  6. package/dist/UniprotTrack.js +52 -0
  7. package/dist/UniprotTrack.js.map +1 -0
  8. package/dist/colorSchemes.d.ts +2 -2
  9. package/dist/colorSchemes.js +24 -29
  10. package/dist/colorSchemes.js.map +1 -0
  11. package/dist/components/AboutDlg.d.ts +0 -1
  12. package/dist/components/AboutDlg.js +38 -48
  13. package/dist/components/AboutDlg.js.map +1 -0
  14. package/dist/components/AddTrackDlg.d.ts +0 -1
  15. package/dist/components/AddTrackDlg.js +13 -13
  16. package/dist/components/AddTrackDlg.js.map +1 -0
  17. package/dist/components/AnnotationDlg.d.ts +0 -1
  18. package/dist/components/AnnotationDlg.js +36 -48
  19. package/dist/components/AnnotationDlg.js.map +1 -0
  20. package/dist/components/BoxTrack.d.ts +3 -4
  21. package/dist/components/BoxTrack.js +51 -48
  22. package/dist/components/BoxTrack.js.map +1 -0
  23. package/dist/components/DetailsDlg.d.ts +0 -1
  24. package/dist/components/DetailsDlg.js +7 -7
  25. package/dist/components/DetailsDlg.js.map +1 -0
  26. package/dist/components/Header.d.ts +0 -1
  27. package/dist/components/Header.js +39 -34
  28. package/dist/components/Header.js.map +1 -0
  29. package/dist/components/ImportForm.d.ts +0 -1
  30. package/dist/components/ImportForm.js +59 -71
  31. package/dist/components/ImportForm.js.map +1 -0
  32. package/dist/components/MSACanvas.d.ts +0 -1
  33. package/dist/components/MSACanvas.js +71 -74
  34. package/dist/components/MSACanvas.js.map +1 -0
  35. package/dist/components/MSAView.d.ts +0 -1
  36. package/dist/components/MSAView.js +19 -38
  37. package/dist/components/MSAView.js.map +1 -0
  38. package/dist/components/MoreInfoDlg.d.ts +2 -3
  39. package/dist/components/MoreInfoDlg.js +5 -5
  40. package/dist/components/MoreInfoDlg.js.map +1 -0
  41. package/dist/components/ResizeHandles.d.ts +2 -3
  42. package/dist/components/ResizeHandles.js +31 -32
  43. package/dist/components/ResizeHandles.js.map +1 -0
  44. package/dist/components/Rubberband.d.ts +2 -1
  45. package/dist/components/Rubberband.js +42 -64
  46. package/dist/components/Rubberband.js.map +1 -0
  47. package/dist/components/Ruler.d.ts +0 -15
  48. package/dist/components/Ruler.js +18 -87
  49. package/dist/components/Ruler.js.map +1 -0
  50. package/dist/components/SettingsDlg.d.ts +0 -1
  51. package/dist/components/SettingsDlg.js +29 -22
  52. package/dist/components/SettingsDlg.js.map +1 -0
  53. package/dist/components/TextTrack.d.ts +3 -4
  54. package/dist/components/TextTrack.js +23 -24
  55. package/dist/components/TextTrack.js.map +1 -0
  56. package/dist/components/Track.d.ts +2 -3
  57. package/dist/components/Track.js +38 -38
  58. package/dist/components/Track.js.map +1 -0
  59. package/dist/components/TrackInfoDlg.d.ts +5 -3
  60. package/dist/components/TrackInfoDlg.js +12 -13
  61. package/dist/components/TrackInfoDlg.js.map +1 -0
  62. package/dist/components/TracklistDlg.d.ts +0 -1
  63. package/dist/components/TracklistDlg.js +9 -9
  64. package/dist/components/TracklistDlg.js.map +1 -0
  65. package/dist/components/TreeCanvas.d.ts +0 -1
  66. package/dist/components/TreeCanvas.js +135 -148
  67. package/dist/components/TreeCanvas.js.map +1 -0
  68. package/dist/components/TreeRuler.d.ts +0 -1
  69. package/dist/components/TreeRuler.js +3 -3
  70. package/dist/components/TreeRuler.js.map +1 -0
  71. package/dist/components/VerticalGuide.d.ts +6 -0
  72. package/dist/components/VerticalGuide.js +30 -0
  73. package/dist/components/VerticalGuide.js.map +1 -0
  74. package/dist/components/data/seq2.d.ts +3 -3
  75. package/dist/components/data/seq2.js +33 -3
  76. package/dist/components/data/seq2.js.map +1 -0
  77. package/{bundle/components/Ruler.d.ts → dist/components/util.d.ts} +1 -6
  78. package/dist/components/util.js +69 -0
  79. package/dist/components/util.js.map +1 -0
  80. package/dist/index.d.ts +2 -4
  81. package/dist/index.js +3 -3
  82. package/dist/index.js.map +1 -0
  83. package/dist/layout.js +14 -20
  84. package/dist/layout.js.map +1 -0
  85. package/dist/model.d.ts +94 -74
  86. package/dist/model.js +232 -473
  87. package/dist/model.js.map +1 -0
  88. package/dist/parseNewick.d.ts +1 -5
  89. package/dist/parseNewick.js +10 -7
  90. package/dist/parseNewick.js.map +1 -0
  91. package/dist/parsers/ClustalMSA.d.ts +6 -18
  92. package/dist/parsers/ClustalMSA.js +55 -64
  93. package/dist/parsers/ClustalMSA.js.map +1 -0
  94. package/dist/parsers/FastaMSA.d.ts +4 -9
  95. package/dist/parsers/FastaMSA.js +55 -64
  96. package/dist/parsers/FastaMSA.js.map +1 -0
  97. package/dist/parsers/StockholmMSA.d.ts +8 -13
  98. package/dist/parsers/StockholmMSA.js +78 -107
  99. package/dist/parsers/StockholmMSA.js.map +1 -0
  100. package/dist/util.d.ts +33 -4
  101. package/dist/util.js +76 -24
  102. package/dist/util.js.map +1 -0
  103. package/dist/version.d.ts +1 -0
  104. package/dist/version.js +2 -0
  105. package/dist/version.js.map +1 -0
  106. package/package.json +30 -30
  107. package/src/StructureModel.ts +11 -0
  108. package/src/UniprotTrack.ts +60 -0
  109. package/src/colorSchemes.ts +520 -0
  110. package/src/components/AboutDlg.tsx +64 -0
  111. package/src/components/AddTrackDlg.tsx +74 -0
  112. package/src/components/AnnotationDlg.tsx +144 -0
  113. package/src/components/BoxTrack.tsx +225 -0
  114. package/src/components/DetailsDlg.tsx +28 -0
  115. package/src/components/Header.tsx +117 -0
  116. package/src/components/ImportForm.tsx +192 -0
  117. package/src/components/MSACanvas.tsx +297 -0
  118. package/src/components/MSAView.tsx +132 -0
  119. package/src/components/MoreInfoDlg.tsx +21 -0
  120. package/src/components/ResizeHandles.tsx +137 -0
  121. package/src/components/Rubberband.tsx +271 -0
  122. package/src/components/Ruler.tsx +122 -0
  123. package/src/components/SettingsDlg.tsx +154 -0
  124. package/src/components/TextTrack.tsx +120 -0
  125. package/src/components/Track.tsx +150 -0
  126. package/src/components/TrackInfoDlg.tsx +59 -0
  127. package/src/components/TracklistDlg.tsx +61 -0
  128. package/src/components/TreeCanvas.tsx +633 -0
  129. package/src/components/TreeRuler.tsx +12 -0
  130. package/src/components/VerticalGuide.tsx +50 -0
  131. package/src/components/data/seq2.ts +35 -0
  132. package/src/components/util.ts +94 -0
  133. package/src/declare.d.ts +2 -0
  134. package/src/index.ts +2 -0
  135. package/src/layout.ts +83 -0
  136. package/src/model.ts +790 -0
  137. package/{bundle/parseNewick.d.ts → src/parseNewick.ts} +36 -5
  138. package/src/parsers/ClustalMSA.ts +79 -0
  139. package/src/parsers/FastaMSA.ts +82 -0
  140. package/src/parsers/StockholmMSA.ts +137 -0
  141. package/src/util.ts +142 -0
  142. package/src/version.ts +1 -0
  143. package/bundle/colorSchemes.d.ts +0 -16
  144. package/bundle/colorSchemes.js +0 -455
  145. package/bundle/components/AboutDlg.d.ts +0 -5
  146. package/bundle/components/AboutDlg.js +0 -47
  147. package/bundle/components/AddTrackDlg.d.ts +0 -8
  148. package/bundle/components/AddTrackDlg.js +0 -26
  149. package/bundle/components/AnnotationDlg.d.ts +0 -11
  150. package/bundle/components/AnnotationDlg.js +0 -77
  151. package/bundle/components/BoxTrack.d.ts +0 -7
  152. package/bundle/components/BoxTrack.js +0 -143
  153. package/bundle/components/DetailsDlg.d.ts +0 -8
  154. package/bundle/components/DetailsDlg.js +0 -12
  155. package/bundle/components/Header.d.ts +0 -6
  156. package/bundle/components/Header.js +0 -63
  157. package/bundle/components/ImportForm.d.ts +0 -6
  158. package/bundle/components/ImportForm.js +0 -89
  159. package/bundle/components/MSACanvas.d.ts +0 -6
  160. package/bundle/components/MSACanvas.js +0 -210
  161. package/bundle/components/MSAView.d.ts +0 -6
  162. package/bundle/components/MSAView.js +0 -88
  163. package/bundle/components/MoreInfoDlg.d.ts +0 -6
  164. package/bundle/components/MoreInfoDlg.js +0 -11
  165. package/bundle/components/ResizeHandles.d.ts +0 -8
  166. package/bundle/components/ResizeHandles.js +0 -110
  167. package/bundle/components/Rubberband.d.ts +0 -7
  168. package/bundle/components/Rubberband.js +0 -196
  169. package/bundle/components/Ruler.js +0 -121
  170. package/bundle/components/SettingsDlg.d.ts +0 -8
  171. package/bundle/components/SettingsDlg.js +0 -40
  172. package/bundle/components/TextTrack.d.ts +0 -7
  173. package/bundle/components/TextTrack.js +0 -72
  174. package/bundle/components/Track.d.ts +0 -11
  175. package/bundle/components/Track.js +0 -81
  176. package/bundle/components/TrackInfoDlg.d.ts +0 -6
  177. package/bundle/components/TrackInfoDlg.js +0 -33
  178. package/bundle/components/TracklistDlg.d.ts +0 -8
  179. package/bundle/components/TracklistDlg.js +0 -18
  180. package/bundle/components/TreeCanvas.d.ts +0 -6
  181. package/bundle/components/TreeCanvas.js +0 -431
  182. package/bundle/components/TreeRuler.d.ts +0 -6
  183. package/bundle/components/TreeRuler.js +0 -8
  184. package/bundle/components/data/seq2.d.ts +0 -3
  185. package/bundle/components/data/seq2.js +0 -3
  186. package/bundle/index.d.ts +0 -4
  187. package/bundle/layout.d.ts +0 -23
  188. package/bundle/layout.js +0 -53
  189. package/bundle/model.d.ts +0 -364
  190. package/bundle/model.js +0 -894
  191. package/bundle/parseNewick.js +0 -94
  192. package/bundle/parsers/ClustalMSA.d.ts +0 -39
  193. package/bundle/parsers/ClustalMSA.js +0 -77
  194. package/bundle/parsers/FastaMSA.d.ts +0 -26
  195. package/bundle/parsers/FastaMSA.js +0 -78
  196. package/bundle/parsers/StockholmMSA.d.ts +0 -75
  197. package/bundle/parsers/StockholmMSA.js +0 -142
  198. package/bundle/util.d.ts +0 -17
  199. package/bundle/util.js +0 -33
  200. package/dist/components/package.json +0 -62
@@ -2,38 +2,40 @@ import React, { useRef, useMemo, useEffect } from 'react';
2
2
  import { observer } from 'mobx-react';
3
3
  import { getSnapshot, isStateTreeNode } from 'mobx-state-tree';
4
4
  import Layout from '../layout';
5
- var AnnotationBlock = observer(function (_a) {
6
- var track = _a.track, model = _a.model, offsetX = _a.offsetX;
7
- var blockSize = model.blockSize, colWidth = model.colWidth, blanks = model.blanks, rowHeight = model.rowHeight, highResScaleFactor = model.highResScaleFactor, scrollX = model.scrollX;
8
- var _b = track.model, height = _b.height, features = _b.features, associatedRowName = _b.associatedRowName;
9
- var feats = isStateTreeNode(features)
10
- ? getSnapshot(features)
5
+ const AnnotationBlock = observer(function ({ track, model, offsetX, }) {
6
+ const { blockSize, colWidth, blanks, rowHeight, highResScaleFactor, scrollX, } = model;
7
+ const { model: { height, features, associatedRowName }, } = track;
8
+ const feats = isStateTreeNode(features)
9
+ ? // @ts-expect-error
10
+ getSnapshot(features)
11
11
  : features;
12
- var layout = useMemo(function () {
13
- var temp = new Layout();
14
- feats === null || feats === void 0 ? void 0 : feats.forEach(function (feature, index) {
15
- var start = feature.start, end = feature.end;
12
+ const layout = useMemo(() => {
13
+ const temp = new Layout();
14
+ feats === null || feats === void 0 ? void 0 : feats.forEach((feature, index) => {
15
+ const { start, end } = feature;
16
16
  if (associatedRowName) {
17
- var s = model.rowSpecificBpToPx(associatedRowName, start - 1);
18
- var e = model.rowSpecificBpToPx(associatedRowName, end);
19
- temp.addRect("" + index, s, e, rowHeight, feature);
17
+ const s = model.rowSpecificBpToPx(associatedRowName, start - 1);
18
+ const e = model.rowSpecificBpToPx(associatedRowName, end);
19
+ temp.addRect(`${index}`, s, e, rowHeight, feature);
20
20
  }
21
21
  else {
22
- var s = model.globalBpToPx(start - 1);
23
- var e = model.globalBpToPx(end);
24
- temp.addRect("" + index, s, e, rowHeight, feature);
22
+ const s = model.globalBpToPx(start - 1);
23
+ const e = model.globalBpToPx(end);
24
+ temp.addRect(`${index}`, s, e, rowHeight, feature);
25
25
  }
26
26
  });
27
27
  return temp;
28
+ // might convert to autorun based drawing
29
+ // eslint-disable-next-line react-hooks/exhaustive-deps
28
30
  }, [rowHeight, feats, associatedRowName, model, blanks]);
29
- var ref = useRef(null);
30
- var labelRef = useRef(null);
31
- var mouseoverRef = useRef(null);
32
- useEffect(function () {
31
+ const ref = useRef(null);
32
+ const labelRef = useRef(null);
33
+ const mouseoverRef = useRef(null);
34
+ useEffect(() => {
33
35
  if (!ref.current) {
34
36
  return;
35
37
  }
36
- var ctx = ref.current.getContext('2d');
38
+ const ctx = ref.current.getContext('2d');
37
39
  if (!ctx) {
38
40
  return;
39
41
  }
@@ -42,13 +44,13 @@ var AnnotationBlock = observer(function (_a) {
42
44
  ctx.clearRect(0, 0, blockSize, height);
43
45
  ctx.translate(-offsetX, 0);
44
46
  ctx.textAlign = 'center';
45
- ctx.font = ctx.font.replace(/\d+px/, Math.max(8, rowHeight - 8) + "px");
46
- var xStart = Math.max(0, Math.floor(offsetX / colWidth));
47
+ ctx.font = ctx.font.replace(/\d+px/, `${Math.max(8, rowHeight - 8)}px`);
48
+ const xStart = Math.max(0, Math.floor(offsetX / colWidth));
47
49
  ctx.fillStyle = 'goldenrod';
48
- layout.rectangles.forEach(function (value) {
49
- var minX = value.minX, maxX = value.maxX, minY = value.minY, maxY = value.maxY;
50
- var x1 = (minX - xStart) * colWidth + offsetX - (offsetX % colWidth);
51
- var x2 = (maxX - xStart) * colWidth + offsetX - (offsetX % colWidth);
50
+ layout.rectangles.forEach(value => {
51
+ const { minX, maxX, minY, maxY } = value;
52
+ const x1 = (minX - xStart) * colWidth + offsetX - (offsetX % colWidth);
53
+ const x2 = (maxX - xStart) * colWidth + offsetX - (offsetX % colWidth);
52
54
  if (x2 - x1 > 0) {
53
55
  ctx.fillRect(x1, minY, x2 - x1, (maxY - minY) / 2);
54
56
  }
@@ -66,11 +68,11 @@ var AnnotationBlock = observer(function (_a) {
66
68
  features,
67
69
  blanks,
68
70
  ]);
69
- useEffect(function () {
71
+ useEffect(() => {
70
72
  if (!labelRef.current) {
71
73
  return;
72
74
  }
73
- var ctx = labelRef.current.getContext('2d');
75
+ const ctx = labelRef.current.getContext('2d');
74
76
  if (!ctx) {
75
77
  return;
76
78
  }
@@ -80,20 +82,21 @@ var AnnotationBlock = observer(function (_a) {
80
82
  ctx.clearRect(0, 0, blockSize, height);
81
83
  ctx.translate(-offsetX, 0);
82
84
  ctx.textAlign = 'center';
83
- ctx.font = ctx.font.replace(/\d+px/, Math.max(8, rowHeight - 8) + "px");
85
+ ctx.font = ctx.font.replace(/\d+px/, `${Math.max(8, rowHeight - 8)}px`);
84
86
  ctx.fillStyle = 'black';
85
87
  ctx.textAlign = 'left';
86
- layout.rectangles.forEach(function (value) {
88
+ layout.rectangles.forEach(value => {
87
89
  var _a, _b, _c, _d;
88
- var minX = value.minX, maxX = value.maxX, maxY = value.maxY, minY = value.minY;
89
- var feature = value.data;
90
- var x1 = minX * colWidth;
91
- var x2 = maxX * colWidth;
90
+ const { minX, maxX, maxY, minY } = value;
91
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
92
+ const feature = value.data;
93
+ const x1 = minX * colWidth;
94
+ const x2 = maxX * colWidth;
92
95
  if (x2 - x1 > 0) {
93
- var note = (_b = (_a = feature.attributes) === null || _a === void 0 ? void 0 : _a.Note) === null || _b === void 0 ? void 0 : _b[0];
94
- var name_1 = (_d = (_c = feature.attributes) === null || _c === void 0 ? void 0 : _c.Name) === null || _d === void 0 ? void 0 : _d[0];
95
- var type = feature.type;
96
- ctx.fillText([type, name_1, note].filter(function (f) { return !!f; }).join(' - '), Math.max(Math.min(-scrollX, x2), x1), minY + (maxY - minY));
96
+ const note = (_b = (_a = feature.attributes) === null || _a === void 0 ? void 0 : _a.Note) === null || _b === void 0 ? void 0 : _b[0];
97
+ const name = (_d = (_c = feature.attributes) === null || _c === void 0 ? void 0 : _c.Name) === null || _d === void 0 ? void 0 : _d[0];
98
+ const type = feature.type;
99
+ ctx.fillText([type, name, note].filter(f => !!f).join(' - '), Math.max(Math.min(-scrollX, x2), x1), minY + (maxY - minY));
97
100
  }
98
101
  });
99
102
  }, [
@@ -114,30 +117,30 @@ var AnnotationBlock = observer(function (_a) {
114
117
  position: 'absolute',
115
118
  left: scrollX + offsetX,
116
119
  width: blockSize,
117
- height: height,
120
+ height,
118
121
  } }),
119
122
  React.createElement("canvas", { ref: labelRef, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {
120
123
  position: 'absolute',
121
124
  left: scrollX + offsetX,
122
125
  width: blockSize,
123
- height: height,
126
+ height,
124
127
  } }),
125
128
  React.createElement("canvas", { ref: mouseoverRef, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {
126
129
  position: 'absolute',
127
130
  left: scrollX + offsetX,
128
131
  width: blockSize,
129
- height: height,
132
+ height,
130
133
  } })));
131
134
  });
132
- var AnnotationTrack = observer(function (_a) {
133
- var model = _a.model, track = _a.track;
134
- var blocksX = model.blocksX, msaAreaWidth = model.msaAreaWidth;
135
- var height = track.model.height;
135
+ const AnnotationTrack = observer(function ({ model, track, }) {
136
+ const { blocksX, msaAreaWidth } = model;
137
+ const { model: { height }, } = track;
136
138
  return (React.createElement("div", { style: {
137
139
  position: 'relative',
138
- height: height,
140
+ height,
139
141
  width: msaAreaWidth,
140
142
  overflow: 'hidden',
141
- } }, blocksX.map(function (bx) { return (React.createElement(AnnotationBlock, { track: track, key: bx, model: model, offsetX: bx })); })));
143
+ } }, blocksX.map(bx => (React.createElement(AnnotationBlock, { track: track, key: bx, model: model, offsetX: bx })))));
142
144
  });
143
145
  export default AnnotationTrack;
146
+ //# sourceMappingURL=BoxTrack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoxTrack.js","sourceRoot":"","sources":["../../src/components/BoxTrack.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { MsaViewModel } from '../model';
3
2
  declare const _default: ({ model, onClose, open, }: {
4
3
  model: MsaViewModel;
@@ -1,12 +1,12 @@
1
1
  import React from 'react';
2
- import { Dialog, DialogTitle, DialogContent } from '@material-ui/core';
2
+ import { DialogContent } from '@mui/material';
3
3
  import { observer } from 'mobx-react';
4
+ import { Dialog } from '@jbrowse/core/ui';
4
5
  import { Attributes } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail';
5
- export default observer(function (_a) {
6
- var model = _a.model, onClose = _a.onClose, open = _a.open;
7
- var alignmentDetails = model.alignmentDetails;
8
- return (React.createElement(Dialog, { onClose: function () { return onClose(); }, open: open },
9
- React.createElement(DialogTitle, null, "Metadata"),
6
+ export default observer(function ({ model, onClose, open, }) {
7
+ const { header } = model;
8
+ return (React.createElement(Dialog, { onClose: () => onClose(), open: open, title: "Metadata" },
10
9
  React.createElement(DialogContent, null,
11
- React.createElement(Attributes, { attributes: alignmentDetails }))));
10
+ React.createElement(Attributes, { attributes: header }))));
12
11
  });
12
+ //# sourceMappingURL=DetailsDlg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsDlg.js","sourceRoot":"","sources":["../../src/components/DetailsDlg.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mDAAmD,CAAA;AAK9E,eAAe,QAAQ,CAAC,UAAU,EAChC,KAAK,EACL,OAAO,EACP,IAAI,GAKL;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IAExB,OAAO,CACL,oBAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,UAAU;QAC5D,oBAAC,aAAa;YACZ,oBAAC,UAAU,IAAC,UAAU,EAAE,MAAM,GAAI,CACpB,CACT,CACV,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { MsaViewModel } from '../model';
3
2
  declare const Header: ({ model }: {
4
3
  model: MsaViewModel;
@@ -1,19 +1,18 @@
1
1
  import React, { useState } from 'react';
2
- import { IconButton, Select, Typography } from '@material-ui/core';
2
+ import { IconButton, Select, Typography } from '@mui/material';
3
3
  import { observer } from 'mobx-react';
4
4
  import SettingsDialog from './SettingsDlg';
5
5
  import AboutDialog from './AboutDlg';
6
6
  import DetailsDialog from './DetailsDlg';
7
7
  import TracklistDialog from './TracklistDlg';
8
- //icons
9
- import FolderOpenIcon from '@material-ui/icons/FolderOpen';
10
- import SettingsIcon from '@material-ui/icons/Settings';
11
- import HelpIcon from '@material-ui/icons/Help';
12
- import AssignmentIcon from '@material-ui/icons/Assignment';
13
- import ListIcon from '@material-ui/icons/List';
14
- var InfoArea = observer(function (_a) {
15
- var model = _a.model;
16
- var mouseOverRowName = model.mouseOverRowName, mouseCol = model.mouseCol;
8
+ // icons
9
+ import FolderOpenIcon from '@mui/icons-material/FolderOpen';
10
+ import SettingsIcon from '@mui/icons-material/Settings';
11
+ import HelpIcon from '@mui/icons-material/Help';
12
+ import AssignmentIcon from '@mui/icons-material/Assignment';
13
+ import ListIcon from '@mui/icons-material/List';
14
+ const InfoArea = observer(({ model }) => {
15
+ const { mouseOverRowName, mouseCol } = model;
17
16
  return (React.createElement("div", null,
18
17
  React.createElement(Typography, { display: "inline" },
19
18
  "Row name: ",
@@ -23,41 +22,47 @@ var InfoArea = observer(function (_a) {
23
22
  "Position: ",
24
23
  mouseCol)));
25
24
  });
26
- var Header = observer(function (_a) {
27
- var model = _a.model;
28
- var _b = useState(false), settingsDialogVisible = _b[0], setSettingsDialogVisible = _b[1];
29
- var _c = useState(false), aboutDialogVisible = _c[0], setAboutDialogVisible = _c[1];
30
- var _d = useState(false), detailsDialogVisible = _d[0], setDetailsDialogVisible = _d[1];
31
- var _e = useState(false), tracklistDialogVisible = _e[0], setTracklistDialogVisible = _e[1];
32
- var currentAlignment = model.currentAlignment, alignmentNames = model.alignmentNames;
25
+ const Header = observer(({ model }) => {
26
+ const [settingsDialogViz, setSettingsDialogViz] = useState(false);
27
+ const [aboutDialogViz, setAboutDialogViz] = useState(false);
28
+ const [detailsDialogViz, setDetailsDialogViz] = useState(false);
29
+ const [tracklistDialogViz, setTracklistDialogViz] = useState(false);
30
+ const { currentAlignment, alignmentNames } = model;
33
31
  return (React.createElement("div", { style: { display: 'flex' } },
34
- React.createElement(IconButton, { onClick: function () {
35
- model.setData({ tree: '', msa: '' });
36
- model.setTreeFilehandle(undefined);
37
- model.setMSAFilehandle(undefined);
38
- model.setScrollY(0);
39
- model.setScrollX(0);
40
- model.setCurrentAlignment(0);
32
+ React.createElement(IconButton, { onClick: async () => {
33
+ try {
34
+ model.setData({ tree: '', msa: '' });
35
+ await model.setTreeFilehandle(undefined);
36
+ await model.setMSAFilehandle(undefined);
37
+ model.setScrollY(0);
38
+ model.setScrollX(0);
39
+ model.setCurrentAlignment(0);
40
+ }
41
+ catch (e) {
42
+ console.error(e);
43
+ model.setError(e);
44
+ }
41
45
  } },
42
46
  React.createElement(FolderOpenIcon, null)),
43
- React.createElement(IconButton, { onClick: function () { return setSettingsDialogVisible(true); } },
47
+ React.createElement(IconButton, { onClick: () => setSettingsDialogViz(true) },
44
48
  React.createElement(SettingsIcon, null)),
45
- React.createElement(IconButton, { onClick: function () { return setDetailsDialogVisible(true); } },
49
+ React.createElement(IconButton, { onClick: () => setDetailsDialogViz(true) },
46
50
  React.createElement(AssignmentIcon, null)),
47
- React.createElement(IconButton, { onClick: function () { return setTracklistDialogVisible(true); } },
51
+ React.createElement(IconButton, { onClick: () => setTracklistDialogViz(true) },
48
52
  React.createElement(ListIcon, null)),
49
- settingsDialogVisible ? (React.createElement(SettingsDialog, { open: true, model: model, onClose: function () { return setSettingsDialogVisible(false); } })) : null,
50
- aboutDialogVisible ? (React.createElement(AboutDialog, { open: true, onClose: function () { return setAboutDialogVisible(false); } })) : null,
51
- detailsDialogVisible ? (React.createElement(DetailsDialog, { open: true, model: model, onClose: function () { return setDetailsDialogVisible(false); } })) : null,
52
- tracklistDialogVisible ? (React.createElement(TracklistDialog, { open: true, model: model, onClose: function () { return setTracklistDialogVisible(false); } })) : null,
53
- alignmentNames.length > 0 ? (React.createElement(Select, { native: true, value: currentAlignment, onChange: function (event) {
53
+ settingsDialogViz ? (React.createElement(SettingsDialog, { open: true, model: model, onClose: () => setSettingsDialogViz(false) })) : null,
54
+ aboutDialogViz ? (React.createElement(AboutDialog, { open: true, onClose: () => setAboutDialogViz(false) })) : null,
55
+ detailsDialogViz ? (React.createElement(DetailsDialog, { open: true, model: model, onClose: () => setDetailsDialogViz(false) })) : null,
56
+ tracklistDialogViz ? (React.createElement(TracklistDialog, { open: true, model: model, onClose: () => setTracklistDialogViz(false) })) : null,
57
+ alignmentNames.length > 0 ? (React.createElement(Select, { native: true, value: currentAlignment, size: "small", onChange: event => {
54
58
  model.setCurrentAlignment(+event.target.value);
55
59
  model.setScrollX(0);
56
60
  model.setScrollY(0);
57
- } }, alignmentNames.map(function (option, index) { return (React.createElement("option", { key: option + "-" + index, value: index }, option)); }))) : null,
61
+ } }, alignmentNames.map((option, index) => (React.createElement("option", { key: `${option}-${index}`, value: index }, option))))) : null,
58
62
  React.createElement(InfoArea, { model: model }),
59
63
  React.createElement("div", { style: { flex: 1 } }),
60
- React.createElement(IconButton, { onClick: function () { return setAboutDialogVisible(true); } },
64
+ React.createElement(IconButton, { onClick: () => setAboutDialogViz(true) },
61
65
  React.createElement(HelpIcon, null))));
62
66
  });
63
67
  export default Header;
68
+ //# sourceMappingURL=Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { MsaViewModel } from '../model';
3
2
  declare const _default: ({ model }: {
4
3
  model: MsaViewModel;
@@ -1,29 +1,39 @@
1
1
  import React, { useState } from 'react';
2
- import { Button, Container, Grid, Typography, Link } from '@material-ui/core';
2
+ import { Button, Container, Grid, Typography, Link } from '@mui/material';
3
3
  import { observer } from 'mobx-react';
4
- import { transaction } from 'mobx';
5
4
  import { FileSelector } from '@jbrowse/core/ui';
6
5
  import { smallTree, smallMSA, smallMSAOnly } from './data/seq2';
7
- var ListItem = function (_a) {
8
- var onClick = _a.onClick, model = _a.model, children = _a.children;
9
- return (React.createElement("li", null,
10
- React.createElement(Link, { onClick: function (event) {
11
- model.setError(undefined);
12
- event.preventDefault();
13
- onClick();
14
- }, href: "#" },
15
- React.createElement(Typography, null, children))));
16
- };
17
- export default observer(function (_a) {
18
- var model = _a.model;
19
- var _b = useState(), msaFile = _b[0], setMsaFile = _b[1];
20
- var _c = useState(), treeFile = _c[0], setTreeFile = _c[1];
21
- var error = model.error;
6
+ async function load(model, msaFile, treeFile) {
7
+ model.setError(undefined);
8
+ try {
9
+ if (msaFile) {
10
+ await model.setMSAFilehandle(msaFile);
11
+ }
12
+ if (treeFile) {
13
+ await model.setTreeFilehandle(treeFile);
14
+ }
15
+ }
16
+ catch (e) {
17
+ model.setError(e);
18
+ }
19
+ }
20
+ const ListItem = ({ onClick, model, children, }) => (React.createElement("li", null,
21
+ React.createElement(Link, { onClick: event => {
22
+ model.setError(undefined);
23
+ event.preventDefault();
24
+ onClick();
25
+ }, href: "#" },
26
+ React.createElement(Typography, { display: "inline" }, children))));
27
+ export default observer(({ model }) => {
28
+ const [msaFile, setMsaFile] = useState();
29
+ const [treeFile, setTreeFile] = useState();
30
+ const { error } = model;
22
31
  return (React.createElement(Container, null,
23
32
  React.createElement("div", { style: { width: '50%' } },
24
33
  error ? (React.createElement("div", { style: { padding: 20 } },
25
34
  React.createElement(Typography, { color: "error" },
26
- "Error: ", "" + error))) : null,
35
+ "Error: ",
36
+ `${error}`))) : null,
27
37
  React.createElement(Typography, null, "Open an MSA file (stockholm or clustal format) and/or a tree file (newick format)."),
28
38
  React.createElement(Typography, { color: "error" }, "Note: you can open up just an MSA or just a tree, both are not required. Some MSA files e.g. stockholm format have an embedded tree also and this is fine, and opening a separate tree file is not required.")),
29
39
  React.createElement(Grid, { container: true, spacing: 10, justifyContent: "center", alignItems: "center" },
@@ -33,64 +43,42 @@ export default observer(function (_a) {
33
43
  React.createElement(Typography, null, "Tree file or URL"),
34
44
  React.createElement(FileSelector, { location: treeFile, setLocation: setTreeFile })),
35
45
  React.createElement(Grid, { item: true },
36
- React.createElement(Button, { onClick: function () {
37
- model.setError(undefined);
38
- if (msaFile) {
39
- model.setMSAFilehandle(msaFile);
40
- }
41
- if (treeFile) {
42
- model.setTreeFilehandle(treeFile);
43
- }
44
- }, variant: "contained", color: "primary", disabled: !msaFile && !treeFile }, "Open")),
46
+ React.createElement(Button, { onClick: () => load(model, msaFile, treeFile), variant: "contained", color: "primary", disabled: !msaFile && !treeFile }, "Open")),
45
47
  React.createElement(Grid, { item: true },
46
48
  React.createElement(Typography, null, "Examples"),
47
49
  React.createElement("ul", null,
48
- React.createElement(ListItem, { model: model, onClick: function () {
49
- model.setTreeFilehandle({
50
- uri: 'https://jbrowse.org/genomes/newick_trees/sarscov2phylo.pub.ft.nh',
51
- locationType: 'UriLocation',
52
- });
53
- } }, "230k COVID-19 samples (tree only)"),
54
- React.createElement(ListItem, { model: model, onClick: function () {
50
+ React.createElement(ListItem, { model: model, onClick: () => load(model, undefined, {
51
+ uri: 'https://jbrowse.org/genomes/newick_trees/sarscov2phylo.pub.ft.nh',
52
+ locationType: 'UriLocation',
53
+ }) }, "230k COVID-19 samples (tree only)"),
54
+ React.createElement(ListItem, { model: model, onClick: () => {
55
55
  model.setData({ msa: smallMSA, tree: smallTree });
56
56
  } }, "Small protein MSA+tree"),
57
- React.createElement(ListItem, { model: model, onClick: function () {
57
+ React.createElement(ListItem, { model: model, onClick: () => {
58
58
  model.setData({ msa: smallMSAOnly });
59
59
  } }, "Small MSA only"),
60
- React.createElement(ListItem, { model: model, onClick: function () {
61
- model.setMSAFilehandle({
62
- uri: 'https://ihh.github.io/abrowse/build/pfam-cov2.stock',
63
- locationType: 'UriLocation',
64
- });
65
- } }, "PFAM SARS-CoV2 multi-stockholm"),
66
- React.createElement(ListItem, { model: model, onClick: function () {
67
- model.setMSAFilehandle({
68
- uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/Lysine.stock',
69
- locationType: 'UriLocation',
70
- });
71
- } }, "Lysine stockholm file"),
72
- React.createElement(ListItem, { model: model, onClick: function () {
73
- model.setMSAFilehandle({
74
- uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/PF01601_full.txt',
75
- locationType: 'UriLocation',
76
- });
77
- } }, "PF01601 stockholm file (SARS-CoV2 spike protein)"),
78
- React.createElement(ListItem, { model: model, onClick: function () {
79
- model.setMSAFilehandle({
80
- uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/europe_covid.fa',
81
- locationType: 'UriLocation',
82
- });
83
- } }, "Europe COVID full genomes (LR883044.1 and 199 other sequences)"),
84
- React.createElement(ListItem, { model: model, onClick: function () {
85
- transaction(function () {
86
- model.setMSAFilehandle({
87
- uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/rhv_test-only.aligned_with_mafft_auto.fa',
88
- locationType: 'UriLocation',
89
- });
90
- model.setTreeFilehandle({
91
- uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/rhv_test-only.aligned_with_mafft_auto.nh',
92
- locationType: 'UriLocation',
93
- });
94
- });
95
- } }, "MAFFT+VeryFastTree(17.9k samples)"))))));
60
+ React.createElement(ListItem, { model: model, onClick: () => load(model, {
61
+ uri: 'https://ihh.github.io/abrowse/build/pfam-cov2.stock',
62
+ locationType: 'UriLocation',
63
+ }) }, "PFAM SARS-CoV2 multi-stockholm"),
64
+ React.createElement(ListItem, { model: model, onClick: () => load(model, {
65
+ uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/Lysine.stock',
66
+ locationType: 'UriLocation',
67
+ }) }, "Lysine stockholm file"),
68
+ React.createElement(ListItem, { model: model, onClick: () => load(model, {
69
+ uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/PF01601_full.txt',
70
+ locationType: 'UriLocation',
71
+ }) }, "PF01601 stockholm file (SARS-CoV2 spike protein)"),
72
+ React.createElement(ListItem, { model: model, onClick: () => load(model, {
73
+ uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/europe_covid.fa',
74
+ locationType: 'UriLocation',
75
+ }) }, "Europe COVID full genomes (LR883044.1 and 199 other sequences)"),
76
+ React.createElement(ListItem, { model: model, onClick: () => load(model, {
77
+ uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/rhv_test-only.aligned_with_mafft_auto.fa',
78
+ locationType: 'UriLocation',
79
+ }, {
80
+ uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/rhv_test-only.aligned_with_mafft_auto.nh',
81
+ locationType: 'UriLocation',
82
+ }) }, "MAFFT+VeryFastTree(17.9k samples)"))))));
96
83
  });
84
+ //# sourceMappingURL=ImportForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImportForm.js","sourceRoot":"","sources":["../../src/components/ImportForm.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { MsaViewModel } from '../model';
3
2
  declare const MSACanvas: ({ model }: {
4
3
  model: MsaViewModel;