react-msaview 1.3.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/bundle/index.js +285 -97099
  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 +53 -0
  7. package/dist/UniprotTrack.js.map +1 -0
  8. package/dist/colorSchemes.d.ts +5 -11
  9. package/dist/colorSchemes.js +27 -32
  10. package/dist/colorSchemes.js.map +1 -0
  11. package/dist/components/BoxTrack.d.ts +6 -6
  12. package/dist/components/BoxTrack.js +9 -137
  13. package/dist/components/BoxTrack.js.map +1 -0
  14. package/dist/components/BoxTrackBlock.d.ts +8 -0
  15. package/dist/components/BoxTrackBlock.js +136 -0
  16. package/dist/components/BoxTrackBlock.js.map +1 -0
  17. package/dist/components/Header.d.ts +2 -2
  18. package/dist/components/Header.js +55 -48
  19. package/dist/components/Header.js.map +1 -0
  20. package/dist/components/ImportForm.d.ts +2 -2
  21. package/dist/components/ImportForm.js +59 -71
  22. package/dist/components/ImportForm.js.map +1 -0
  23. package/dist/components/MSABlock.d.ts +8 -0
  24. package/dist/components/MSABlock.js +103 -0
  25. package/dist/components/MSABlock.js.map +1 -0
  26. package/dist/components/MSACanvas.d.ts +2 -2
  27. package/dist/components/MSACanvas.js +32 -133
  28. package/dist/components/MSACanvas.js.map +1 -0
  29. package/dist/components/MSAMouseoverCanvas.d.ts +6 -0
  30. package/dist/components/MSAMouseoverCanvas.js +52 -0
  31. package/dist/components/MSAMouseoverCanvas.js.map +1 -0
  32. package/dist/components/MSAView.d.ts +2 -2
  33. package/dist/components/MSAView.js +17 -62
  34. package/dist/components/MSAView.js.map +1 -0
  35. package/dist/components/MultiAlignmentSelector.d.ts +6 -0
  36. package/dist/components/MultiAlignmentSelector.js +13 -0
  37. package/dist/components/MultiAlignmentSelector.js.map +1 -0
  38. package/dist/components/ResizeHandles.d.ts +5 -5
  39. package/dist/components/ResizeHandles.js +31 -32
  40. package/dist/components/ResizeHandles.js.map +1 -0
  41. package/dist/components/Rubberband.d.ts +3 -2
  42. package/dist/components/Rubberband.js +41 -64
  43. package/dist/components/Rubberband.js.map +1 -0
  44. package/dist/components/Ruler.d.ts +2 -16
  45. package/dist/components/Ruler.js +19 -88
  46. package/dist/components/Ruler.js.map +1 -0
  47. package/dist/components/TextTrack.d.ts +5 -5
  48. package/dist/components/TextTrack.js +23 -24
  49. package/dist/components/TextTrack.js.map +1 -0
  50. package/dist/components/Track.d.ts +5 -5
  51. package/dist/components/Track.js +41 -40
  52. package/dist/components/Track.js.map +1 -0
  53. package/dist/components/TreeBranchMenu.d.ts +14 -0
  54. package/dist/components/TreeBranchMenu.js +26 -0
  55. package/dist/components/TreeBranchMenu.js.map +1 -0
  56. package/dist/components/TreeCanvas.d.ts +2 -2
  57. package/dist/components/TreeCanvas.js +24 -356
  58. package/dist/components/TreeCanvas.js.map +1 -0
  59. package/dist/components/TreeCanvasBlock.d.ts +7 -0
  60. package/dist/components/TreeCanvasBlock.js +252 -0
  61. package/dist/components/TreeCanvasBlock.js.map +1 -0
  62. package/dist/components/TreeMenu.d.ts +12 -0
  63. package/dist/components/TreeMenu.js +56 -0
  64. package/dist/components/TreeMenu.js.map +1 -0
  65. package/dist/components/TreeRuler.d.ts +2 -2
  66. package/dist/components/TreeRuler.js +3 -3
  67. package/dist/components/TreeRuler.js.map +1 -0
  68. package/dist/components/VerticalGuide.d.ts +7 -0
  69. package/dist/components/VerticalGuide.js +30 -0
  70. package/dist/components/VerticalGuide.js.map +1 -0
  71. package/dist/components/ZoomControls.d.ts +6 -0
  72. package/dist/components/ZoomControls.js +58 -0
  73. package/dist/components/ZoomControls.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/dist/components/dialogs/AboutDlg.d.ts +4 -0
  78. package/dist/components/dialogs/AboutDlg.js +40 -0
  79. package/dist/components/dialogs/AboutDlg.js.map +1 -0
  80. package/{bundle/components → dist/components/dialogs}/AddTrackDlg.d.ts +3 -3
  81. package/dist/components/dialogs/AddTrackDlg.js +26 -0
  82. package/dist/components/dialogs/AddTrackDlg.js.map +1 -0
  83. package/dist/components/{AnnotationDlg.d.ts → dialogs/AnnotationDlg.d.ts} +3 -3
  84. package/dist/components/dialogs/AnnotationDlg.js +65 -0
  85. package/dist/components/dialogs/AnnotationDlg.js.map +1 -0
  86. package/dist/components/dialogs/DetailsDlg.d.ts +7 -0
  87. package/dist/components/dialogs/DetailsDlg.js +13 -0
  88. package/dist/components/dialogs/DetailsDlg.js.map +1 -0
  89. package/dist/components/dialogs/MoreInfoDlg.d.ts +6 -0
  90. package/dist/components/dialogs/MoreInfoDlg.js +11 -0
  91. package/dist/components/dialogs/MoreInfoDlg.js.map +1 -0
  92. package/dist/components/dialogs/SettingsDlg.d.ts +7 -0
  93. package/dist/components/dialogs/SettingsDlg.js +48 -0
  94. package/dist/components/dialogs/SettingsDlg.js.map +1 -0
  95. package/dist/components/dialogs/TrackInfoDlg.d.ts +9 -0
  96. package/{bundle/components → dist/components/dialogs}/TrackInfoDlg.js +12 -13
  97. package/dist/components/dialogs/TrackInfoDlg.js.map +1 -0
  98. package/dist/components/dialogs/TracklistDlg.d.ts +7 -0
  99. package/dist/components/dialogs/TracklistDlg.js +18 -0
  100. package/dist/components/dialogs/TracklistDlg.js.map +1 -0
  101. package/{bundle/components/Ruler.d.ts → dist/components/util.d.ts} +1 -6
  102. package/dist/components/util.js +68 -0
  103. package/dist/components/util.js.map +1 -0
  104. package/dist/index.d.ts +2 -4
  105. package/dist/index.js +3 -3
  106. package/dist/index.js.map +1 -0
  107. package/dist/layout.js +14 -20
  108. package/dist/layout.js.map +1 -0
  109. package/dist/model.d.ts +114 -97
  110. package/dist/model.js +248 -486
  111. package/dist/model.js.map +1 -0
  112. package/dist/parseNewick.d.ts +1 -5
  113. package/dist/parseNewick.js +11 -8
  114. package/dist/parseNewick.js.map +1 -0
  115. package/dist/parsers/ClustalMSA.d.ts +6 -18
  116. package/dist/parsers/ClustalMSA.js +55 -64
  117. package/dist/parsers/ClustalMSA.js.map +1 -0
  118. package/dist/parsers/FastaMSA.d.ts +5 -12
  119. package/dist/parsers/FastaMSA.js +55 -64
  120. package/dist/parsers/FastaMSA.js.map +1 -0
  121. package/dist/parsers/StockholmMSA.d.ts +10 -17
  122. package/dist/parsers/StockholmMSA.js +81 -110
  123. package/dist/parsers/StockholmMSA.js.map +1 -0
  124. package/dist/util.d.ts +34 -7
  125. package/dist/util.js +76 -24
  126. package/dist/util.js.map +1 -0
  127. package/dist/version.d.ts +1 -0
  128. package/dist/version.js +2 -0
  129. package/dist/version.js.map +1 -0
  130. package/package.json +34 -34
  131. package/src/StructureModel.ts +11 -0
  132. package/src/UniprotTrack.ts +59 -0
  133. package/src/colorSchemes.ts +520 -0
  134. package/src/components/BoxTrack.tsx +33 -0
  135. package/src/components/BoxTrackBlock.tsx +198 -0
  136. package/src/components/Header.tsx +106 -0
  137. package/src/components/ImportForm.tsx +192 -0
  138. package/src/components/MSABlock.tsx +164 -0
  139. package/src/components/MSACanvas.tsx +142 -0
  140. package/src/components/MSAMouseoverCanvas.tsx +87 -0
  141. package/src/components/MSAView.tsx +88 -0
  142. package/src/components/MultiAlignmentSelector.tsx +33 -0
  143. package/src/components/ResizeHandles.tsx +137 -0
  144. package/src/components/Rubberband.tsx +270 -0
  145. package/src/components/Ruler.tsx +123 -0
  146. package/src/components/TextTrack.tsx +120 -0
  147. package/src/components/Track.tsx +153 -0
  148. package/src/components/TreeBranchMenu.tsx +67 -0
  149. package/src/components/TreeCanvas.tsx +128 -0
  150. package/src/components/TreeCanvasBlock.tsx +359 -0
  151. package/src/components/TreeMenu.tsx +105 -0
  152. package/src/components/TreeRuler.tsx +12 -0
  153. package/src/components/VerticalGuide.tsx +50 -0
  154. package/src/components/ZoomControls.tsx +78 -0
  155. package/src/components/data/seq2.ts +35 -0
  156. package/src/components/dialogs/AboutDlg.tsx +58 -0
  157. package/src/components/dialogs/AddTrackDlg.tsx +74 -0
  158. package/src/components/dialogs/AnnotationDlg.tsx +144 -0
  159. package/src/components/dialogs/DetailsDlg.tsx +28 -0
  160. package/src/components/dialogs/MoreInfoDlg.tsx +21 -0
  161. package/src/components/dialogs/SettingsDlg.tsx +154 -0
  162. package/src/components/dialogs/TrackInfoDlg.tsx +59 -0
  163. package/src/components/dialogs/TracklistDlg.tsx +59 -0
  164. package/src/components/util.ts +93 -0
  165. package/src/declare.d.ts +1 -0
  166. package/src/index.ts +2 -0
  167. package/src/layout.ts +83 -0
  168. package/src/model.ts +793 -0
  169. package/{bundle/parseNewick.d.ts → src/parseNewick.ts} +35 -5
  170. package/src/parsers/ClustalMSA.ts +79 -0
  171. package/src/parsers/FastaMSA.ts +82 -0
  172. package/src/parsers/StockholmMSA.ts +137 -0
  173. package/src/util.ts +142 -0
  174. package/src/version.ts +1 -0
  175. package/bundle/colorSchemes.d.ts +0 -16
  176. package/bundle/colorSchemes.js +0 -455
  177. package/bundle/components/AboutDlg.d.ts +0 -5
  178. package/bundle/components/AboutDlg.js +0 -47
  179. package/bundle/components/AddTrackDlg.js +0 -26
  180. package/bundle/components/AnnotationDlg.d.ts +0 -11
  181. package/bundle/components/AnnotationDlg.js +0 -77
  182. package/bundle/components/BoxTrack.d.ts +0 -7
  183. package/bundle/components/BoxTrack.js +0 -143
  184. package/bundle/components/DetailsDlg.d.ts +0 -8
  185. package/bundle/components/DetailsDlg.js +0 -12
  186. package/bundle/components/Header.d.ts +0 -6
  187. package/bundle/components/Header.js +0 -63
  188. package/bundle/components/ImportForm.d.ts +0 -6
  189. package/bundle/components/ImportForm.js +0 -89
  190. package/bundle/components/MSACanvas.d.ts +0 -6
  191. package/bundle/components/MSACanvas.js +0 -210
  192. package/bundle/components/MSAView.d.ts +0 -6
  193. package/bundle/components/MSAView.js +0 -88
  194. package/bundle/components/MoreInfoDlg.d.ts +0 -6
  195. package/bundle/components/MoreInfoDlg.js +0 -11
  196. package/bundle/components/ResizeHandles.d.ts +0 -8
  197. package/bundle/components/ResizeHandles.js +0 -110
  198. package/bundle/components/Rubberband.d.ts +0 -7
  199. package/bundle/components/Rubberband.js +0 -196
  200. package/bundle/components/Ruler.js +0 -121
  201. package/bundle/components/SettingsDlg.d.ts +0 -8
  202. package/bundle/components/SettingsDlg.js +0 -40
  203. package/bundle/components/TextTrack.d.ts +0 -7
  204. package/bundle/components/TextTrack.js +0 -72
  205. package/bundle/components/Track.d.ts +0 -11
  206. package/bundle/components/Track.js +0 -81
  207. package/bundle/components/TrackInfoDlg.d.ts +0 -6
  208. package/bundle/components/TracklistDlg.d.ts +0 -8
  209. package/bundle/components/TracklistDlg.js +0 -18
  210. package/bundle/components/TreeCanvas.d.ts +0 -6
  211. package/bundle/components/TreeCanvas.js +0 -431
  212. package/bundle/components/TreeRuler.d.ts +0 -6
  213. package/bundle/components/TreeRuler.js +0 -8
  214. package/bundle/components/data/seq2.d.ts +0 -3
  215. package/bundle/components/data/seq2.js +0 -3
  216. package/bundle/index.d.ts +0 -4
  217. package/bundle/layout.d.ts +0 -23
  218. package/bundle/layout.js +0 -53
  219. package/bundle/model.d.ts +0 -364
  220. package/bundle/model.js +0 -894
  221. package/bundle/parseNewick.js +0 -94
  222. package/bundle/parsers/ClustalMSA.d.ts +0 -39
  223. package/bundle/parsers/ClustalMSA.js +0 -77
  224. package/bundle/parsers/FastaMSA.d.ts +0 -26
  225. package/bundle/parsers/FastaMSA.js +0 -78
  226. package/bundle/parsers/StockholmMSA.d.ts +0 -75
  227. package/bundle/parsers/StockholmMSA.js +0 -142
  228. package/bundle/util.d.ts +0 -17
  229. package/bundle/util.js +0 -33
  230. package/dist/components/AboutDlg.d.ts +0 -5
  231. package/dist/components/AboutDlg.js +0 -50
  232. package/dist/components/AddTrackDlg.d.ts +0 -8
  233. package/dist/components/AddTrackDlg.js +0 -26
  234. package/dist/components/AnnotationDlg.js +0 -77
  235. package/dist/components/DetailsDlg.d.ts +0 -8
  236. package/dist/components/DetailsDlg.js +0 -12
  237. package/dist/components/MoreInfoDlg.d.ts +0 -6
  238. package/dist/components/MoreInfoDlg.js +0 -11
  239. package/dist/components/SettingsDlg.d.ts +0 -8
  240. package/dist/components/SettingsDlg.js +0 -40
  241. package/dist/components/TrackInfoDlg.d.ts +0 -6
  242. package/dist/components/TrackInfoDlg.js +0 -33
  243. package/dist/components/TracklistDlg.d.ts +0 -8
  244. package/dist/components/TracklistDlg.js +0 -18
  245. package/dist/components/package.json +0 -62
@@ -1,130 +1,31 @@
1
- import React, { useEffect, useState, useRef, useMemo } from 'react';
2
- import { Typography, CircularProgress, useTheme } from '@material-ui/core';
1
+ import React, { useEffect, useState, useRef } from 'react';
2
+ import { Typography, CircularProgress } from '@mui/material';
3
3
  import { observer } from 'mobx-react';
4
4
  import normalizeWheel from 'normalize-wheel';
5
- import { colorContrast } from '../util';
6
- import { getClustalXColor, getPercentIdentityColor } from '../colorSchemes';
7
- var MSABlock = observer(function (_a) {
8
- var model = _a.model, offsetX = _a.offsetX, offsetY = _a.offsetY;
9
- var MSA = model.MSA, colWidth = model.colWidth, bgColor = model.bgColor, columns = model.columns, rowHeight = model.rowHeight, scrollY = model.scrollY, scrollX = model.scrollX, hierarchy = model.hierarchy, colorScheme = model.colorScheme, colorSchemeName = model.colorSchemeName, blockSize = model.blockSize, highResScaleFactor = model.highResScaleFactor, colStats = model.colStats;
10
- var theme = useTheme();
11
- var contrastScheme = useMemo(function () { return colorContrast(colorScheme, theme); }, [colorScheme, theme]);
12
- var ref = useRef(null);
13
- useEffect(function () {
14
- if (!ref.current) {
15
- return;
16
- }
17
- var ctx = ref.current.getContext('2d');
18
- if (!ctx) {
19
- return;
20
- }
21
- ctx.resetTransform();
22
- ctx.scale(highResScaleFactor, highResScaleFactor);
23
- ctx.clearRect(0, 0, blockSize, blockSize);
24
- ctx.translate(-offsetX, rowHeight / 2 - offsetY);
25
- ctx.textAlign = 'center';
26
- ctx.font = ctx.font.replace(/\d+px/, "".concat(Math.max(8, rowHeight - 8), "px"));
27
- var leaves = hierarchy.leaves();
28
- var b = blockSize;
29
- // slice vertical rows, e.g. tree leaves, avoid negative slice
30
- var yStart = Math.max(0, Math.floor((offsetY - rowHeight) / rowHeight));
31
- var yEnd = Math.max(0, Math.ceil((offsetY + b + rowHeight) / rowHeight));
32
- // slice horizontal visible letters, avoid negative slice
33
- var xStart = Math.max(0, Math.floor(offsetX / colWidth));
34
- var xEnd = Math.max(0, Math.ceil((offsetX + b) / colWidth));
35
- var visibleLeaves = leaves.slice(yStart, yEnd);
36
- visibleLeaves.forEach(function (node) {
37
- var _a;
38
- var
39
- //@ts-ignore
40
- y = node.x, name = node.data.name;
41
- var str = (_a = columns[name]) === null || _a === void 0 ? void 0 : _a.slice(xStart, xEnd);
42
- for (var i = 0; i < (str === null || str === void 0 ? void 0 : str.length); i++) {
43
- var letter = str[i];
44
- var color = colorSchemeName === 'clustalx_protein_dynamic'
45
- ? getClustalXColor(colStats[xStart + i], model, name, xStart + i)
46
- : colorSchemeName === 'percent_identity_dynamic'
47
- ? getPercentIdentityColor(colStats[xStart + i], model, name, xStart + i)
48
- : colorScheme[letter.toUpperCase()];
49
- if (bgColor) {
50
- var x = i * colWidth + offsetX - (offsetX % colWidth);
51
- ctx.fillStyle = color || 'white';
52
- ctx.fillRect(x, y - rowHeight, colWidth, rowHeight);
53
- }
54
- }
55
- });
56
- if (rowHeight >= 10 && colWidth >= rowHeight / 2) {
57
- visibleLeaves.forEach(function (node) {
58
- var _a;
59
- var
60
- //@ts-ignore
61
- y = node.x, name = node.data.name;
62
- var str = (_a = columns[name]) === null || _a === void 0 ? void 0 : _a.slice(xStart, xEnd);
63
- for (var i = 0; i < (str === null || str === void 0 ? void 0 : str.length); i++) {
64
- var letter = str[i];
65
- var color = colorScheme[letter.toUpperCase()];
66
- var contrast = contrastScheme[letter.toUpperCase()] || 'black';
67
- var x = i * colWidth + offsetX - (offsetX % colWidth);
68
- //note: -rowHeight/4 matches +rowHeight/4 in tree
69
- ctx.fillStyle = bgColor ? contrast : color || 'black';
70
- ctx.fillText(letter, x + colWidth / 2, y - rowHeight / 4);
71
- }
72
- });
73
- }
74
- }, [
75
- MSA,
76
- highResScaleFactor,
77
- columns,
78
- colorScheme,
79
- contrastScheme,
80
- bgColor,
81
- rowHeight,
82
- colWidth,
83
- hierarchy,
84
- offsetX,
85
- offsetY,
86
- blockSize,
87
- ]);
88
- return (React.createElement("canvas", { ref: ref, onMouseMove: function (event) {
89
- if (!ref.current) {
90
- return;
91
- }
92
- var _a = ref.current.getBoundingClientRect(), left = _a.left, top = _a.top;
93
- var mouseX = event.clientX - left;
94
- var mouseY = event.clientY - top;
95
- model.setMousePos(Math.floor((mouseX + offsetX) / colWidth) + 1, Math.floor((mouseY + offsetY) / rowHeight));
96
- }, onMouseLeave: function () { return model.setMousePos(); }, width: blockSize * highResScaleFactor, height: blockSize * highResScaleFactor, style: {
97
- position: 'absolute',
98
- top: scrollY + offsetY,
99
- left: scrollX + offsetX,
100
- width: blockSize,
101
- height: blockSize,
102
- } }));
103
- });
104
- var MSACanvas = observer(function (_a) {
105
- var model = _a.model;
106
- var MSA = model.MSA, msaFilehandle = model.msaFilehandle, height = model.height, msaAreaWidth = model.msaAreaWidth, blocks2d = model.blocks2d;
107
- var ref = useRef(null);
5
+ import MSABlock from './MSABlock';
6
+ const MSACanvas = observer(function ({ model }) {
7
+ const { MSA, msaFilehandle, height, msaAreaWidth, blocks2d } = model;
8
+ const ref = useRef(null);
108
9
  // wheel
109
- var scheduled = useRef(false);
110
- var deltaX = useRef(0);
111
- var deltaY = useRef(0);
10
+ const scheduled = useRef(false);
11
+ const deltaX = useRef(0);
12
+ const deltaY = useRef(0);
112
13
  // mouse click-and-drag scrolling
113
- var prevX = useRef(0);
114
- var prevY = useRef(0);
115
- var _b = useState(false), mouseDragging = _b[0], setMouseDragging = _b[1];
116
- useEffect(function () {
117
- var curr = ref.current;
14
+ const prevX = useRef(0);
15
+ const prevY = useRef(0);
16
+ const [mouseDragging, setMouseDragging] = useState(false);
17
+ useEffect(() => {
18
+ const curr = ref.current;
118
19
  if (!curr) {
119
20
  return;
120
21
  }
121
22
  function onWheel(origEvent) {
122
- var event = normalizeWheel(origEvent);
23
+ const event = normalizeWheel(origEvent);
123
24
  deltaX.current += event.pixelX;
124
25
  deltaY.current += event.pixelY;
125
26
  if (!scheduled.current) {
126
27
  scheduled.current = true;
127
- requestAnimationFrame(function () {
28
+ requestAnimationFrame(() => {
128
29
  model.doScrollX(-deltaX.current);
129
30
  model.doScrollY(-deltaY.current);
130
31
  deltaX.current = 0;
@@ -135,24 +36,24 @@ var MSACanvas = observer(function (_a) {
135
36
  origEvent.preventDefault();
136
37
  }
137
38
  curr.addEventListener('wheel', onWheel);
138
- return function () {
39
+ return () => {
139
40
  curr.removeEventListener('wheel', onWheel);
140
41
  };
141
42
  }, [model]);
142
- useEffect(function () {
143
- var cleanup = function () { };
43
+ useEffect(() => {
44
+ let cleanup = () => { };
144
45
  function globalMouseMove(event) {
145
46
  event.preventDefault();
146
- var currX = event.clientX;
147
- var currY = event.clientY;
148
- var distanceX = currX - prevX.current;
149
- var distanceY = currY - prevY.current;
47
+ const currX = event.clientX;
48
+ const currY = event.clientY;
49
+ const distanceX = currX - prevX.current;
50
+ const distanceY = currY - prevY.current;
150
51
  if (distanceX || distanceY) {
151
52
  // use rAF to make it so multiple event handlers aren't fired per-frame
152
53
  // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/
153
54
  if (!scheduled.current) {
154
55
  scheduled.current = true;
155
- window.requestAnimationFrame(function () {
56
+ window.requestAnimationFrame(() => {
156
57
  model.doScrollX(distanceX);
157
58
  model.doScrollY(distanceY);
158
59
  scheduled.current = false;
@@ -171,16 +72,16 @@ var MSACanvas = observer(function (_a) {
171
72
  if (mouseDragging) {
172
73
  window.addEventListener('mousemove', globalMouseMove, true);
173
74
  window.addEventListener('mouseup', globalMouseUp, true);
174
- cleanup = function () {
75
+ cleanup = () => {
175
76
  window.removeEventListener('mousemove', globalMouseMove, true);
176
77
  window.removeEventListener('mouseup', globalMouseUp, true);
177
78
  };
178
79
  }
179
80
  return cleanup;
180
81
  }, [model, mouseDragging]);
181
- return (React.createElement("div", { ref: ref, onMouseDown: function (event) {
82
+ return (React.createElement("div", { ref: ref, onMouseDown: event => {
182
83
  // check if clicking a draggable element or a resize handle
183
- var target = event.target;
84
+ const target = event.target;
184
85
  if (target.draggable || target.dataset.resizer) {
185
86
  return;
186
87
  }
@@ -190,21 +91,19 @@ var MSACanvas = observer(function (_a) {
190
91
  prevY.current = event.clientY;
191
92
  setMouseDragging(true);
192
93
  }
193
- }, onMouseUp: function (event) {
94
+ }, onMouseUp: event => {
194
95
  event.preventDefault();
195
96
  setMouseDragging(false);
196
- }, onMouseLeave: function (event) {
97
+ }, onMouseLeave: event => {
197
98
  event.preventDefault();
198
99
  }, style: {
199
100
  position: 'relative',
200
- height: height,
101
+ height,
201
102
  width: msaAreaWidth,
202
103
  overflow: 'hidden',
203
104
  } }, !MSA && !msaFilehandle ? null : !MSA ? (React.createElement("div", { style: { position: 'absolute', left: '50%', top: '50%' } },
204
105
  React.createElement(CircularProgress, null),
205
- React.createElement(Typography, null, "Loading..."))) : (blocks2d.map(function (_a) {
206
- var bx = _a[0], by = _a[1];
207
- return (React.createElement(MSABlock, { key: "".concat(bx, "_").concat(by), model: model, offsetX: bx, offsetY: by }));
208
- }))));
106
+ React.createElement(Typography, null, "Loading..."))) : (blocks2d.map(([bx, by]) => (React.createElement(MSABlock, { key: `${bx}_${by}`, model: model, offsetX: bx, offsetY: by }))))));
209
107
  });
210
108
  export default MSACanvas;
109
+ //# sourceMappingURL=MSACanvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MSACanvas.js","sourceRoot":"","sources":["../../src/components/MSACanvas.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { MsaViewModel } from '../model';
3
+ declare const MSAMouseoverCanvas: ({ model, }: {
4
+ model: MsaViewModel;
5
+ }) => React.JSX.Element;
6
+ export default MSAMouseoverCanvas;
@@ -0,0 +1,52 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ import { observer } from 'mobx-react';
3
+ import { sum } from '@jbrowse/core/util';
4
+ const MSAMouseoverCanvas = observer(function ({ model, }) {
5
+ const ref = useRef(null);
6
+ const { height, width, treeAreaWidth, resizeHandleWidth, rulerHeight, turnedOnTracks, scrollX, scrollY, mouseCol, mouseRow, rowHeight, colWidth, } = model;
7
+ const totalTrackAreaHeight = sum(turnedOnTracks.map(r => r.model.height));
8
+ useEffect(() => {
9
+ if (!ref.current) {
10
+ return;
11
+ }
12
+ const ctx = ref.current.getContext('2d');
13
+ if (!ctx) {
14
+ return;
15
+ }
16
+ ctx.resetTransform();
17
+ ctx.clearRect(0, 0, width, height);
18
+ ctx.fillStyle = 'rgba(0,0,0,0.15)';
19
+ if (mouseCol !== undefined) {
20
+ const x = (mouseCol - 1) * colWidth + scrollX + treeAreaWidth + resizeHandleWidth;
21
+ ctx.fillRect(x, 0, colWidth, height);
22
+ }
23
+ if (mouseRow !== undefined) {
24
+ const y = mouseRow * rowHeight + scrollY + rulerHeight + totalTrackAreaHeight;
25
+ ctx.fillRect(treeAreaWidth + resizeHandleWidth, y, width, rowHeight);
26
+ }
27
+ }, [
28
+ mouseCol,
29
+ colWidth,
30
+ scrollY,
31
+ totalTrackAreaHeight,
32
+ mouseRow,
33
+ rowHeight,
34
+ rulerHeight,
35
+ scrollX,
36
+ height,
37
+ resizeHandleWidth,
38
+ treeAreaWidth,
39
+ width,
40
+ ]);
41
+ return (React.createElement("canvas", { ref: ref, width: width, height: height, style: {
42
+ position: 'absolute',
43
+ top: 0,
44
+ left: 0,
45
+ width,
46
+ height,
47
+ zIndex: 1000,
48
+ pointerEvents: 'none',
49
+ } }));
50
+ });
51
+ export default MSAMouseoverCanvas;
52
+ //# sourceMappingURL=MSAMouseoverCanvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MSAMouseoverCanvas.js","sourceRoot":"","sources":["../../src/components/MSAMouseoverCanvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAExC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,EAC5C,KAAK,GAGN;IACC,MAAM,GAAG,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAC3C,MAAM,EACJ,MAAM,EACN,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,OAAO,EACP,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,GAAG,KAAK,CAAA;IACT,MAAM,oBAAoB,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IACzE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,OAAM;SACP;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,GAAG,EAAE;YACR,OAAM;SACP;QAED,GAAG,CAAC,cAAc,EAAE,CAAA;QACpB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAElC,GAAG,CAAC,SAAS,GAAG,kBAAkB,CAAA;QAClC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,MAAM,CAAC,GACL,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,iBAAiB,CAAA;YAEzE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;SACrC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,MAAM,CAAC,GACL,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,oBAAoB,CAAA;YACrE,GAAG,CAAC,QAAQ,CAAC,aAAa,GAAG,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;SACrE;IACH,CAAC,EAAE;QACD,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,oBAAoB;QACpB,QAAQ;QACR,SAAS;QACT,WAAW;QACX,OAAO;QACP,MAAM;QACN,iBAAiB;QACjB,aAAa;QACb,KAAK;KACN,CAAC,CAAA;IAEF,OAAO,CACL,gCACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK;YACL,MAAM;YACN,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,MAAM;SACtB,GACD,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,kBAAkB,CAAA"}
@@ -1,6 +1,6 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { MsaViewModel } from '../model';
3
3
  declare const _default: ({ model }: {
4
4
  model: MsaViewModel;
5
- }) => JSX.Element;
5
+ }) => React.JSX.Element;
6
6
  export default _default;
@@ -1,17 +1,7 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import React, { useRef, useEffect } from 'react';
1
+ import React, { lazy, Suspense } from 'react';
13
2
  import { observer } from 'mobx-react';
14
- import { Typography } from '@material-ui/core';
3
+ import { Typography } from '@mui/material';
4
+ // locals
15
5
  import ImportForm from './ImportForm';
16
6
  import Rubberband from './Rubberband';
17
7
  import TreeCanvas from './TreeCanvas';
@@ -20,52 +10,14 @@ import Ruler from './Ruler';
20
10
  import TreeRuler from './TreeRuler';
21
11
  import Header from './Header';
22
12
  import Track from './Track';
23
- import AnnotationDialog from './AnnotationDlg';
24
13
  import { HorizontalResizeHandle, VerticalResizeHandle } from './ResizeHandles';
25
- var MouseoverCanvas = observer(function (_a) {
26
- var model = _a.model;
27
- var ref = useRef(null);
28
- var height = model.height, width = model.width, treeAreaWidth = model.treeAreaWidth, resizeHandleWidth = model.resizeHandleWidth, scrollX = model.scrollX, mouseCol = model.mouseCol, colWidth = model.colWidth;
29
- useEffect(function () {
30
- if (!ref.current) {
31
- return;
32
- }
33
- var ctx = ref.current.getContext('2d');
34
- if (!ctx) {
35
- return;
36
- }
37
- ctx.resetTransform();
38
- ctx.clearRect(0, 0, width, height);
39
- if (mouseCol !== undefined) {
40
- var x = (mouseCol - 1) * colWidth + scrollX + treeAreaWidth + resizeHandleWidth;
41
- ctx.fillStyle = 'rgba(100,100,100,0.5)';
42
- ctx.fillRect(x, 0, colWidth, height);
43
- }
44
- }, [
45
- mouseCol,
46
- colWidth,
47
- scrollX,
48
- height,
49
- resizeHandleWidth,
50
- treeAreaWidth,
51
- width,
52
- ]);
53
- return (React.createElement("canvas", { ref: ref, width: width, height: height, style: {
54
- position: 'absolute',
55
- top: 0,
56
- left: 0,
57
- width: width,
58
- height: height,
59
- zIndex: 1000,
60
- pointerEvents: 'none',
61
- } }));
62
- });
63
- export default observer(function (_a) {
64
- var model = _a.model;
65
- var done = model.done, initialized = model.initialized, treeAreaWidth = model.treeAreaWidth, height = model.height, resizeHandleWidth = model.resizeHandleWidth, turnedOnTracks = model.turnedOnTracks;
14
+ import MSAMouseoverCanvas from './MSAMouseoverCanvas';
15
+ const AnnotationDialog = lazy(() => import('./dialogs/AnnotationDlg'));
16
+ export default observer(function ({ model }) {
17
+ const { done, initialized, treeAreaWidth, height, turnedOnTracks } = model;
66
18
  return (React.createElement("div", null,
67
19
  !initialized ? (React.createElement(ImportForm, { model: model })) : !done ? (React.createElement(Typography, { variant: "h4" }, "Loading...")) : (React.createElement("div", null,
68
- React.createElement("div", { style: { height: height, overflow: 'hidden' } },
20
+ React.createElement("div", { style: { height, overflow: 'hidden' } },
69
21
  React.createElement(Header, { model: model }),
70
22
  React.createElement("div", null,
71
23
  React.createElement("div", { style: { position: 'relative' } },
@@ -73,16 +25,19 @@ export default observer(function (_a) {
73
25
  React.createElement("div", { style: { flexShrink: 0, width: treeAreaWidth } },
74
26
  React.createElement(TreeRuler, { model: model })),
75
27
  React.createElement(Rubberband, { model: model, ControlComponent: React.createElement(Ruler, { model: model }) })), turnedOnTracks === null || turnedOnTracks === void 0 ? void 0 :
76
- turnedOnTracks.map(function (track) { return (React.createElement(Track, { key: track.model.id, model: model, track: track })); }),
28
+ turnedOnTracks.map(track => (React.createElement(Track, { key: track.model.id, model: model, track: track }))),
77
29
  React.createElement("div", { style: { display: 'flex' } },
78
30
  React.createElement("div", { style: { flexShrink: 0, width: treeAreaWidth } },
79
31
  React.createElement(TreeCanvas, { model: model })),
80
32
  React.createElement(VerticalResizeHandle, { model: model }),
81
33
  React.createElement(MSACanvas, { model: model }),
82
- React.createElement(MouseoverCanvas, { model: model }))))),
34
+ React.createElement(MSAMouseoverCanvas, { model: model }))))),
83
35
  React.createElement(HorizontalResizeHandle, { model: model }))),
84
- model.DialogComponent ? (React.createElement(model.DialogComponent, __assign({}, (model.DialogProps || {}), { onClose: function () {
85
- model.setDialogComponent(undefined, undefined);
86
- } }))) : null,
87
- model.annotPos ? (React.createElement(AnnotationDialog, { data: model.annotPos, model: model, onClose: function () { return model.clearAnnotPos(); } })) : null));
36
+ model.DialogComponent ? (React.createElement(Suspense, { fallback: null },
37
+ React.createElement(model.DialogComponent, { ...(model.DialogProps || {}), onClose: () => {
38
+ model.setDialogComponent(undefined, undefined);
39
+ } }))) : null,
40
+ model.annotPos ? (React.createElement(Suspense, { fallback: null },
41
+ React.createElement(AnnotationDialog, { data: model.annotPos, model: model, onClose: () => model.clearAnnotPos() }))) : null));
88
42
  });
43
+ //# sourceMappingURL=MSAView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MSAView.js","sourceRoot":"","sources":["../../src/components/MSAView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { MsaViewModel } from '../model';
3
+ declare const MultiAlignmentSelector: ({ model, }: {
4
+ model: MsaViewModel;
5
+ }) => React.JSX.Element | null;
6
+ export default MultiAlignmentSelector;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { observer } from 'mobx-react';
3
+ import { Select } from '@mui/material';
4
+ const MultiAlignmentSelector = observer(function ({ model, }) {
5
+ const { currentAlignment, alignmentNames } = model;
6
+ return alignmentNames.length > 0 ? (React.createElement(Select, { native: true, value: currentAlignment, size: "small", onChange: event => {
7
+ model.setCurrentAlignment(+event.target.value);
8
+ model.setScrollX(0);
9
+ model.setScrollY(0);
10
+ } }, alignmentNames.map((option, index) => (React.createElement("option", { key: `${option}-${index}`, value: index }, option))))) : null;
11
+ });
12
+ export default MultiAlignmentSelector;
13
+ //# sourceMappingURL=MultiAlignmentSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiAlignmentSelector.js","sourceRoot":"","sources":["../../src/components/MultiAlignmentSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAKtC,MAAM,sBAAsB,GAAG,QAAQ,CAAC,UAAU,EAChD,KAAK,GAGN;IACC,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,KAAK,CAAA;IAClD,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjC,oBAAC,MAAM,IACL,MAAM,QACN,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,KAAK,CAAC,EAAE;YAChB,KAAK,CAAC,mBAAmB,CAAC,CAAE,KAAK,CAAC,MAAM,CAAC,KAAgB,CAAC,CAAA;YAC1D,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACnB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACrB,CAAC,IAEA,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACrC,gCAAQ,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,IAC5C,MAAM,CACA,CACV,CAAC,CACK,CACV,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAC,CAAA;AACF,eAAe,sBAAsB,CAAA"}
@@ -1,8 +1,8 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { MsaViewModel } from '../model';
3
- export declare const VerticalResizeHandle: ({ model }: {
3
+ export declare const VerticalResizeHandle: ({ model, }: {
4
4
  model: MsaViewModel;
5
- }) => JSX.Element;
6
- export declare const HorizontalResizeHandle: ({ model }: {
5
+ }) => React.JSX.Element;
6
+ export declare const HorizontalResizeHandle: ({ model, }: {
7
7
  model: MsaViewModel;
8
- }) => JSX.Element;
8
+ }) => React.JSX.Element;
@@ -1,27 +1,26 @@
1
1
  import React, { useEffect, useRef, useState } from 'react';
2
2
  import { observer } from 'mobx-react';
3
- export var VerticalResizeHandle = observer(function (_a) {
4
- var model = _a.model;
5
- var resizeHandleWidth = model.resizeHandleWidth;
6
- var _b = useState(false), mouseDragging = _b[0], setMouseDragging = _b[1];
7
- var scheduled = useRef(false);
8
- var prevX = useRef(0);
9
- useEffect(function () {
3
+ export const VerticalResizeHandle = observer(function ({ model, }) {
4
+ const { resizeHandleWidth } = model;
5
+ const [mouseDragging, setMouseDragging] = useState(false);
6
+ const scheduled = useRef(false);
7
+ const prevX = useRef(0);
8
+ useEffect(() => {
10
9
  function globalMouseMove(event) {
11
10
  event.preventDefault();
12
- var currX = event.clientX;
11
+ const currX = event.clientX;
13
12
  if (prevX.current === 0) {
14
13
  prevX.current = event.clientX;
15
14
  }
16
15
  else {
17
- var distance_1 = currX - prevX.current;
18
- if (distance_1) {
16
+ const distance = currX - prevX.current;
17
+ if (distance) {
19
18
  // use rAF to make it so multiple event handlers aren't fired per-frame
20
19
  // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/
21
20
  if (!scheduled.current) {
22
21
  scheduled.current = true;
23
- window.requestAnimationFrame(function () {
24
- model.setTreeAreaWidth(model.treeAreaWidth + distance_1);
22
+ window.requestAnimationFrame(() => {
23
+ model.setTreeAreaWidth(model.treeAreaWidth + distance);
25
24
  scheduled.current = false;
26
25
  prevX.current = event.clientX;
27
26
  });
@@ -38,44 +37,43 @@ export var VerticalResizeHandle = observer(function (_a) {
38
37
  if (mouseDragging) {
39
38
  document.addEventListener('mousemove', globalMouseMove, true);
40
39
  document.addEventListener('mouseup', globalMouseUp, true);
41
- return function () {
40
+ return () => {
42
41
  document.removeEventListener('mousemove', globalMouseMove, true);
43
42
  document.removeEventListener('mouseup', globalMouseUp, true);
44
43
  };
45
44
  }
46
- return function () { };
45
+ return () => { };
47
46
  }, [mouseDragging, model]);
48
47
  return (React.createElement("div", null,
49
- React.createElement("div", { onMouseDown: function () { return setMouseDragging(true); }, style: {
48
+ React.createElement("div", { onMouseDown: () => setMouseDragging(true), style: {
50
49
  cursor: 'ew-resize',
51
50
  height: '100%',
52
51
  width: resizeHandleWidth,
53
- background: "rgba(200,200,200)",
52
+ background: `rgba(200,200,200)`,
54
53
  position: 'relative',
55
54
  } })));
56
55
  });
57
- export var HorizontalResizeHandle = observer(function (_a) {
58
- var model = _a.model;
59
- var resizeHandleWidth = model.resizeHandleWidth;
60
- var _b = useState(false), mouseDragging = _b[0], setMouseDragging = _b[1];
61
- var scheduled = useRef(false);
62
- var prevY = useRef(0);
63
- useEffect(function () {
56
+ export const HorizontalResizeHandle = observer(function ({ model, }) {
57
+ const { resizeHandleWidth } = model;
58
+ const [mouseDragging, setMouseDragging] = useState(false);
59
+ const scheduled = useRef(false);
60
+ const prevY = useRef(0);
61
+ useEffect(() => {
64
62
  function globalMouseMove(event) {
65
63
  event.preventDefault();
66
- var currY = event.clientY;
64
+ const currY = event.clientY;
67
65
  if (prevY.current === 0) {
68
66
  prevY.current = event.clientY;
69
67
  }
70
68
  else {
71
- var distance_2 = currY - prevY.current;
72
- if (distance_2) {
69
+ const distance = currY - prevY.current;
70
+ if (distance) {
73
71
  // use rAF to make it so multiple event handlers aren't fired per-frame
74
72
  // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/
75
73
  if (!scheduled.current) {
76
74
  scheduled.current = true;
77
- window.requestAnimationFrame(function () {
78
- model.setHeight(model.height + distance_2);
75
+ window.requestAnimationFrame(() => {
76
+ model.setHeight(model.height + distance);
79
77
  scheduled.current = false;
80
78
  prevY.current = event.clientY;
81
79
  });
@@ -92,19 +90,20 @@ export var HorizontalResizeHandle = observer(function (_a) {
92
90
  if (mouseDragging) {
93
91
  document.addEventListener('mousemove', globalMouseMove, true);
94
92
  document.addEventListener('mouseup', globalMouseUp, true);
95
- return function () {
93
+ return () => {
96
94
  document.removeEventListener('mousemove', globalMouseMove, true);
97
95
  document.removeEventListener('mouseup', globalMouseUp, true);
98
96
  };
99
97
  }
100
- return function () { };
98
+ return () => { };
101
99
  }, [mouseDragging, model]);
102
100
  return (React.createElement("div", null,
103
- React.createElement("div", { onMouseDown: function () { return setMouseDragging(true); }, style: {
101
+ React.createElement("div", { onMouseDown: () => setMouseDragging(true), style: {
104
102
  cursor: 'ns-resize',
105
103
  width: '100%',
106
104
  height: resizeHandleWidth,
107
- background: "rgba(200,200,200)",
105
+ background: `rgba(200,200,200)`,
108
106
  position: 'relative',
109
107
  } })));
110
108
  });
109
+ //# sourceMappingURL=ResizeHandles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizeHandles.js","sourceRoot":"","sources":["../../src/components/ResizeHandles.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
+ import { MsaViewModel } from '../model';
2
3
  declare function Rubberband({ model, ControlComponent, }: {
3
- model: any;
4
+ model: MsaViewModel;
4
5
  ControlComponent?: React.ReactElement;
5
- }): JSX.Element;
6
+ }): React.JSX.Element;
6
7
  declare const _default: typeof Rubberband;
7
8
  export default _default;