@jbrowse/plugin-linear-genome-view 1.7.11 → 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 (270) hide show
  1. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js +119 -139
  2. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js.map +1 -0
  3. package/dist/BaseLinearDisplay/components/Block.js +53 -74
  4. package/dist/BaseLinearDisplay/components/Block.js.map +1 -0
  5. package/dist/BaseLinearDisplay/components/LinearBlocks.d.ts +11 -1
  6. package/dist/BaseLinearDisplay/components/LinearBlocks.js +64 -103
  7. package/dist/BaseLinearDisplay/components/LinearBlocks.js.map +1 -0
  8. package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +145 -175
  9. package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js.map +1 -0
  10. package/dist/BaseLinearDisplay/components/Tooltip.js +109 -116
  11. package/dist/BaseLinearDisplay/components/Tooltip.js.map +1 -0
  12. package/dist/BaseLinearDisplay/index.js +13 -40
  13. package/dist/BaseLinearDisplay/index.js.map +1 -0
  14. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +19 -14
  15. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +605 -684
  16. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +1 -0
  17. package/dist/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js +15 -22
  18. package/dist/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js.map +1 -0
  19. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.d.ts +7 -8
  20. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js +266 -312
  21. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -0
  22. package/dist/LinearBareDisplay/configSchema.js +11 -17
  23. package/dist/LinearBareDisplay/configSchema.js.map +1 -0
  24. package/dist/LinearBareDisplay/index.js +7 -20
  25. package/dist/LinearBareDisplay/index.js.map +1 -0
  26. package/dist/LinearBareDisplay/model.d.ts +15 -13
  27. package/dist/LinearBareDisplay/model.js +36 -42
  28. package/dist/LinearBareDisplay/model.js.map +1 -0
  29. package/dist/LinearBasicDisplay/components/SetMaxHeight.d.ts +1 -1
  30. package/dist/LinearBasicDisplay/components/SetMaxHeight.js +76 -85
  31. package/dist/LinearBasicDisplay/components/SetMaxHeight.js.map +1 -0
  32. package/dist/LinearBasicDisplay/configSchema.js +15 -23
  33. package/dist/LinearBasicDisplay/configSchema.js.map +1 -0
  34. package/dist/LinearBasicDisplay/index.js +10 -22
  35. package/dist/LinearBasicDisplay/index.js.map +1 -0
  36. package/dist/LinearBasicDisplay/model.d.ts +20 -14
  37. package/dist/LinearBasicDisplay/model.js +180 -159
  38. package/dist/LinearBasicDisplay/model.js.map +1 -0
  39. package/dist/LinearGenomeView/components/CenterLine.d.ts +2 -8
  40. package/dist/LinearGenomeView/components/CenterLine.js +60 -74
  41. package/dist/LinearGenomeView/components/CenterLine.js.map +1 -0
  42. package/dist/LinearGenomeView/components/ExportSvgDialog.js +141 -141
  43. package/dist/LinearGenomeView/components/ExportSvgDialog.js.map +1 -0
  44. package/dist/LinearGenomeView/components/Header.d.ts +1 -0
  45. package/dist/LinearGenomeView/components/Header.js +70 -125
  46. package/dist/LinearGenomeView/components/Header.js.map +1 -0
  47. package/dist/LinearGenomeView/components/HelpDialog.d.ts +0 -1
  48. package/dist/LinearGenomeView/components/HelpDialog.js +62 -44
  49. package/dist/LinearGenomeView/components/HelpDialog.js.map +1 -0
  50. package/dist/LinearGenomeView/components/ImportForm.d.ts +1 -0
  51. package/dist/LinearGenomeView/components/ImportForm.js +222 -289
  52. package/dist/LinearGenomeView/components/ImportForm.js.map +1 -0
  53. package/dist/LinearGenomeView/components/LinearGenomeView.js +64 -124
  54. package/dist/LinearGenomeView/components/LinearGenomeView.js.map +1 -0
  55. package/dist/LinearGenomeView/components/LinearGenomeViewSvg.js +198 -337
  56. package/dist/LinearGenomeView/components/LinearGenomeViewSvg.js.map +1 -0
  57. package/dist/LinearGenomeView/components/MiniControls.js +64 -78
  58. package/dist/LinearGenomeView/components/MiniControls.js.map +1 -0
  59. package/dist/LinearGenomeView/components/OverviewRubberBand.js +226 -293
  60. package/dist/LinearGenomeView/components/OverviewRubberBand.js.map +1 -0
  61. package/dist/LinearGenomeView/components/OverviewScaleBar.d.ts +3 -3
  62. package/dist/LinearGenomeView/components/OverviewScaleBar.js +275 -370
  63. package/dist/LinearGenomeView/components/OverviewScaleBar.js.map +1 -0
  64. package/dist/LinearGenomeView/components/RefNameAutocomplete.d.ts +1 -1
  65. package/dist/LinearGenomeView/components/RefNameAutocomplete.js +237 -324
  66. package/dist/LinearGenomeView/components/RefNameAutocomplete.js.map +1 -0
  67. package/dist/LinearGenomeView/components/RubberBand.js +229 -296
  68. package/dist/LinearGenomeView/components/RubberBand.js.map +1 -0
  69. package/dist/LinearGenomeView/components/Ruler.js +45 -90
  70. package/dist/LinearGenomeView/components/Ruler.js.map +1 -0
  71. package/dist/LinearGenomeView/components/ScaleBar.d.ts +8 -403
  72. package/dist/LinearGenomeView/components/ScaleBar.js +121 -172
  73. package/dist/LinearGenomeView/components/ScaleBar.js.map +1 -0
  74. package/dist/LinearGenomeView/components/SearchBox.js +155 -166
  75. package/dist/LinearGenomeView/components/SearchBox.js.map +1 -0
  76. package/dist/LinearGenomeView/components/SearchResultsDialog.d.ts +0 -1
  77. package/dist/LinearGenomeView/components/SearchResultsDialog.js +105 -149
  78. package/dist/LinearGenomeView/components/SearchResultsDialog.js.map +1 -0
  79. package/dist/LinearGenomeView/components/SequenceDialog.js +219 -272
  80. package/dist/LinearGenomeView/components/SequenceDialog.js.map +1 -0
  81. package/dist/LinearGenomeView/components/TrackContainer.js +116 -156
  82. package/dist/LinearGenomeView/components/TrackContainer.js.map +1 -0
  83. package/dist/LinearGenomeView/components/TrackLabel.d.ts +6 -42
  84. package/dist/LinearGenomeView/components/TrackLabel.js +115 -134
  85. package/dist/LinearGenomeView/components/TrackLabel.js.map +1 -0
  86. package/dist/LinearGenomeView/components/TracksContainer.d.ts +1 -1
  87. package/dist/LinearGenomeView/components/TracksContainer.js +172 -199
  88. package/dist/LinearGenomeView/components/TracksContainer.js.map +1 -0
  89. package/dist/LinearGenomeView/components/VerticalGuides.d.ts +2 -3
  90. package/dist/LinearGenomeView/components/VerticalGuides.js +66 -104
  91. package/dist/LinearGenomeView/components/VerticalGuides.js.map +1 -0
  92. package/dist/LinearGenomeView/components/ZoomControls.js +72 -87
  93. package/dist/LinearGenomeView/components/ZoomControls.js.map +1 -0
  94. package/dist/LinearGenomeView/components/util.js +94 -71
  95. package/dist/LinearGenomeView/components/util.js.map +1 -0
  96. package/dist/LinearGenomeView/index.d.ts +3 -3
  97. package/dist/LinearGenomeView/index.js +1163 -1414
  98. package/dist/LinearGenomeView/index.js.map +1 -0
  99. package/dist/LinearGenomeView/util.js +76 -83
  100. package/dist/LinearGenomeView/util.js.map +1 -0
  101. package/dist/index.d.ts +98 -48
  102. package/dist/index.js +225 -295
  103. package/dist/index.js.map +1 -0
  104. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.d.ts +9 -0
  105. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.js +68 -0
  106. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.js.map +1 -0
  107. package/esm/BaseLinearDisplay/components/Block.d.ts +15 -0
  108. package/esm/BaseLinearDisplay/components/Block.js +46 -0
  109. package/esm/BaseLinearDisplay/components/Block.js.map +1 -0
  110. package/esm/BaseLinearDisplay/components/LinearBlocks.d.ts +22 -0
  111. package/esm/BaseLinearDisplay/components/LinearBlocks.js +62 -0
  112. package/esm/BaseLinearDisplay/components/LinearBlocks.js.map +1 -0
  113. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.d.ts +4 -0
  114. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +113 -0
  115. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js.map +1 -0
  116. package/esm/BaseLinearDisplay/components/Tooltip.d.ts +8 -0
  117. package/esm/BaseLinearDisplay/components/Tooltip.js +64 -0
  118. package/esm/BaseLinearDisplay/components/Tooltip.js.map +1 -0
  119. package/esm/BaseLinearDisplay/index.d.ts +5 -0
  120. package/esm/BaseLinearDisplay/index.js +4 -0
  121. package/esm/BaseLinearDisplay/index.js.map +1 -0
  122. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +232 -0
  123. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js +541 -0
  124. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +1 -0
  125. package/esm/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.d.ts +1 -0
  126. package/esm/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js +14 -0
  127. package/esm/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js.map +1 -0
  128. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.d.ts +96 -0
  129. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js +225 -0
  130. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -0
  131. package/esm/LinearBareDisplay/configSchema.d.ts +2 -0
  132. package/esm/LinearBareDisplay/configSchema.js +9 -0
  133. package/esm/LinearBareDisplay/configSchema.js.map +1 -0
  134. package/esm/LinearBareDisplay/index.d.ts +2 -0
  135. package/esm/LinearBareDisplay/index.js +3 -0
  136. package/esm/LinearBareDisplay/index.js.map +1 -0
  137. package/esm/LinearBareDisplay/model.d.ts +194 -0
  138. package/esm/LinearBareDisplay/model.js +28 -0
  139. package/esm/LinearBareDisplay/model.js.map +1 -0
  140. package/esm/LinearBasicDisplay/components/SetMaxHeight.d.ts +10 -0
  141. package/esm/LinearBasicDisplay/components/SetMaxHeight.js +40 -0
  142. package/esm/LinearBasicDisplay/components/SetMaxHeight.js.map +1 -0
  143. package/esm/LinearBasicDisplay/configSchema.d.ts +2 -0
  144. package/esm/LinearBasicDisplay/configSchema.js +14 -0
  145. package/esm/LinearBasicDisplay/configSchema.js.map +1 -0
  146. package/esm/LinearBasicDisplay/index.d.ts +2 -0
  147. package/esm/LinearBasicDisplay/index.js +3 -0
  148. package/esm/LinearBasicDisplay/index.js.map +1 -0
  149. package/esm/LinearBasicDisplay/model.d.ts +218 -0
  150. package/esm/LinearBasicDisplay/model.js +127 -0
  151. package/esm/LinearBasicDisplay/model.js.map +1 -0
  152. package/esm/LinearGenomeView/components/CenterLine.d.ts +8 -0
  153. package/esm/LinearGenomeView/components/CenterLine.js +40 -0
  154. package/esm/LinearGenomeView/components/CenterLine.js.map +1 -0
  155. package/esm/LinearGenomeView/components/ExportSvgDialog.d.ts +6 -0
  156. package/esm/LinearGenomeView/components/ExportSvgDialog.js +52 -0
  157. package/esm/LinearGenomeView/components/ExportSvgDialog.js.map +1 -0
  158. package/esm/LinearGenomeView/components/Header.d.ts +7 -0
  159. package/esm/LinearGenomeView/components/Header.js +81 -0
  160. package/esm/LinearGenomeView/components/Header.js.map +1 -0
  161. package/esm/LinearGenomeView/components/HelpDialog.d.ts +4 -0
  162. package/esm/LinearGenomeView/components/HelpDialog.js +58 -0
  163. package/esm/LinearGenomeView/components/HelpDialog.js.map +1 -0
  164. package/esm/LinearGenomeView/components/ImportForm.d.ts +7 -0
  165. package/esm/LinearGenomeView/components/ImportForm.js +141 -0
  166. package/esm/LinearGenomeView/components/ImportForm.js.map +1 -0
  167. package/esm/LinearGenomeView/components/LinearGenomeView.d.ts +7 -0
  168. package/esm/LinearGenomeView/components/LinearGenomeView.js +67 -0
  169. package/esm/LinearGenomeView/components/LinearGenomeView.js.map +1 -0
  170. package/esm/LinearGenomeView/components/LinearGenomeViewSvg.d.ts +4 -0
  171. package/esm/LinearGenomeView/components/LinearGenomeViewSvg.js +132 -0
  172. package/esm/LinearGenomeView/components/LinearGenomeViewSvg.js.map +1 -0
  173. package/esm/LinearGenomeView/components/MiniControls.d.ts +6 -0
  174. package/esm/LinearGenomeView/components/MiniControls.js +25 -0
  175. package/esm/LinearGenomeView/components/MiniControls.js.map +1 -0
  176. package/esm/LinearGenomeView/components/OverviewRubberBand.d.ts +22 -0
  177. package/esm/LinearGenomeView/components/OverviewRubberBand.js +194 -0
  178. package/esm/LinearGenomeView/components/OverviewRubberBand.js.map +1 -0
  179. package/esm/LinearGenomeView/components/OverviewScaleBar.d.ts +148 -0
  180. package/esm/LinearGenomeView/components/OverviewScaleBar.js +287 -0
  181. package/esm/LinearGenomeView/components/OverviewScaleBar.js.map +1 -0
  182. package/esm/LinearGenomeView/components/RefNameAutocomplete.d.ts +22 -0
  183. package/esm/LinearGenomeView/components/RefNameAutocomplete.js +136 -0
  184. package/esm/LinearGenomeView/components/RefNameAutocomplete.js.map +1 -0
  185. package/esm/LinearGenomeView/components/RubberBand.d.ts +9 -0
  186. package/esm/LinearGenomeView/components/RubberBand.js +198 -0
  187. package/esm/LinearGenomeView/components/RubberBand.js.map +1 -0
  188. package/esm/LinearGenomeView/components/Ruler.d.ts +27 -0
  189. package/esm/LinearGenomeView/components/Ruler.js +50 -0
  190. package/esm/LinearGenomeView/components/Ruler.js.map +1 -0
  191. package/esm/LinearGenomeView/components/ScaleBar.d.ts +10 -0
  192. package/esm/LinearGenomeView/components/ScaleBar.js +112 -0
  193. package/esm/LinearGenomeView/components/ScaleBar.js.map +1 -0
  194. package/esm/LinearGenomeView/components/SearchBox.d.ts +8 -0
  195. package/esm/LinearGenomeView/components/SearchBox.js +94 -0
  196. package/esm/LinearGenomeView/components/SearchBox.js.map +1 -0
  197. package/esm/LinearGenomeView/components/SearchResultsDialog.d.ts +7 -0
  198. package/esm/LinearGenomeView/components/SearchResultsDialog.js +107 -0
  199. package/esm/LinearGenomeView/components/SearchResultsDialog.js.map +1 -0
  200. package/esm/LinearGenomeView/components/SequenceDialog.d.ts +8 -0
  201. package/esm/LinearGenomeView/components/SequenceDialog.js +147 -0
  202. package/esm/LinearGenomeView/components/SequenceDialog.js.map +1 -0
  203. package/esm/LinearGenomeView/components/TrackContainer.d.ts +9 -0
  204. package/esm/LinearGenomeView/components/TrackContainer.js +109 -0
  205. package/esm/LinearGenomeView/components/TrackContainer.js.map +1 -0
  206. package/esm/LinearGenomeView/components/TrackLabel.d.ts +8 -0
  207. package/esm/LinearGenomeView/components/TrackLabel.js +89 -0
  208. package/esm/LinearGenomeView/components/TrackLabel.js.map +1 -0
  209. package/esm/LinearGenomeView/components/TracksContainer.d.ts +10 -0
  210. package/esm/LinearGenomeView/components/TracksContainer.js +142 -0
  211. package/esm/LinearGenomeView/components/TracksContainer.js.map +1 -0
  212. package/esm/LinearGenomeView/components/VerticalGuides.d.ts +8 -0
  213. package/esm/LinearGenomeView/components/VerticalGuides.js +71 -0
  214. package/esm/LinearGenomeView/components/VerticalGuides.js.map +1 -0
  215. package/esm/LinearGenomeView/components/ZoomControls.d.ts +7 -0
  216. package/esm/LinearGenomeView/components/ZoomControls.js +32 -0
  217. package/esm/LinearGenomeView/components/ZoomControls.js.map +1 -0
  218. package/esm/LinearGenomeView/components/util.d.ts +14 -0
  219. package/esm/LinearGenomeView/components/util.js +17 -0
  220. package/esm/LinearGenomeView/components/util.js.map +1 -0
  221. package/esm/LinearGenomeView/index.d.ts +288 -0
  222. package/esm/LinearGenomeView/index.js +1124 -0
  223. package/esm/LinearGenomeView/index.js.map +1 -0
  224. package/esm/LinearGenomeView/util.d.ts +14 -0
  225. package/esm/LinearGenomeView/util.js +62 -0
  226. package/esm/LinearGenomeView/util.js.map +1 -0
  227. package/esm/index.d.ts +615 -0
  228. package/esm/index.js +127 -0
  229. package/esm/index.js.map +1 -0
  230. package/package.json +21 -14
  231. package/src/BaseLinearDisplay/components/BaseLinearDisplay.tsx +4 -3
  232. package/src/BaseLinearDisplay/components/Block.tsx +5 -5
  233. package/src/BaseLinearDisplay/components/LinearBlocks.tsx +4 -4
  234. package/src/BaseLinearDisplay/components/ServerSideRenderedBlockContent.tsx +7 -8
  235. package/src/BaseLinearDisplay/components/Tooltip.tsx +14 -4
  236. package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +6 -4
  237. package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +1 -1
  238. package/src/LinearBasicDisplay/components/SetMaxHeight.tsx +10 -7
  239. package/src/LinearBasicDisplay/model.ts +19 -11
  240. package/src/LinearGenomeView/components/CenterLine.tsx +6 -11
  241. package/src/LinearGenomeView/components/ExportSvgDialog.tsx +5 -5
  242. package/src/LinearGenomeView/components/Header.tsx +10 -15
  243. package/src/LinearGenomeView/components/HelpDialog.tsx +5 -5
  244. package/src/LinearGenomeView/components/ImportForm.tsx +6 -12
  245. package/src/LinearGenomeView/components/LinearGenomeView.test.js +16 -6
  246. package/src/LinearGenomeView/components/LinearGenomeView.tsx +4 -3
  247. package/src/LinearGenomeView/components/MiniControls.tsx +29 -40
  248. package/src/LinearGenomeView/components/OverviewRubberBand.tsx +6 -10
  249. package/src/LinearGenomeView/components/OverviewScaleBar.tsx +61 -59
  250. package/src/LinearGenomeView/components/RefNameAutocomplete.tsx +13 -44
  251. package/src/LinearGenomeView/components/RubberBand.tsx +12 -17
  252. package/src/LinearGenomeView/components/Ruler.tsx +5 -11
  253. package/src/LinearGenomeView/components/ScaleBar.tsx +23 -27
  254. package/src/LinearGenomeView/components/SearchBox.tsx +4 -3
  255. package/src/LinearGenomeView/components/SearchResultsDialog.tsx +7 -6
  256. package/src/LinearGenomeView/components/SequenceDialog.tsx +9 -9
  257. package/src/LinearGenomeView/components/TrackContainer.tsx +12 -12
  258. package/src/LinearGenomeView/components/TrackLabel.tsx +21 -31
  259. package/src/LinearGenomeView/components/TracksContainer.tsx +8 -13
  260. package/src/LinearGenomeView/components/VerticalGuides.tsx +9 -11
  261. package/src/LinearGenomeView/components/ZoomControls.tsx +12 -13
  262. package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +500 -547
  263. package/src/LinearGenomeView/index.test.ts +1 -0
  264. package/src/LinearGenomeView/index.tsx +47 -62
  265. package/src/index.ts +1 -1
  266. package/dist/LinearBareDisplay/index.test.js +0 -33
  267. package/dist/LinearGenomeView/components/LinearGenomeView.test.js +0 -234
  268. package/dist/LinearGenomeView/components/ScaleBar.test.js +0 -180
  269. package/dist/LinearGenomeView/index.test.js +0 -1187
  270. package/dist/LinearGenomeView/util.test.js +0 -78
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrackLabel.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/TrackLabel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { Instance } from 'mobx-state-tree';
3
+ import { LinearGenomeViewStateModel } from '..';
4
+ declare type LGV = Instance<LinearGenomeViewStateModel>;
5
+ declare function TracksContainer({ children, model, }: {
6
+ children: React.ReactNode;
7
+ model: LGV;
8
+ }): JSX.Element;
9
+ declare const _default: typeof TracksContainer;
10
+ export default _default;
@@ -0,0 +1,142 @@
1
+ import React, { useEffect, useRef, useState } from 'react';
2
+ import { makeStyles } from 'tss-react/mui';
3
+ import { observer } from 'mobx-react';
4
+ import normalizeWheel from 'normalize-wheel';
5
+ import { SCALE_BAR_HEIGHT } from '..';
6
+ import RubberBand from './RubberBand';
7
+ import ScaleBar from './ScaleBar';
8
+ import VerticalGuides from './VerticalGuides';
9
+ import CenterLine from './CenterLine';
10
+ const useStyles = makeStyles()({
11
+ tracksContainer: {
12
+ position: 'relative',
13
+ overflow: 'hidden',
14
+ },
15
+ spacer: {
16
+ position: 'relative',
17
+ height: 3,
18
+ },
19
+ });
20
+ function TracksContainer({ children, model, }) {
21
+ const { classes } = useStyles();
22
+ // refs are to store these variables to avoid repeated rerenders associated
23
+ // with useState/setState
24
+ const delta = useRef(0);
25
+ const scheduled = useRef(false);
26
+ const timeout = useRef();
27
+ const ref = useRef(null);
28
+ const prevX = useRef(0);
29
+ const [mouseDragging, setMouseDragging] = useState(false);
30
+ useEffect(() => {
31
+ let cleanup = () => { };
32
+ function globalMouseMove(event) {
33
+ event.preventDefault();
34
+ const currX = event.clientX;
35
+ const distance = currX - prevX.current;
36
+ if (distance) {
37
+ // use rAF to make it so multiple event handlers aren't fired per-frame
38
+ // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/
39
+ if (!scheduled.current) {
40
+ scheduled.current = true;
41
+ window.requestAnimationFrame(() => {
42
+ model.horizontalScroll(-distance);
43
+ scheduled.current = false;
44
+ prevX.current = event.clientX;
45
+ });
46
+ }
47
+ }
48
+ }
49
+ function globalMouseUp() {
50
+ prevX.current = 0;
51
+ if (mouseDragging) {
52
+ setMouseDragging(false);
53
+ }
54
+ }
55
+ if (mouseDragging) {
56
+ window.addEventListener('mousemove', globalMouseMove, true);
57
+ window.addEventListener('mouseup', globalMouseUp, true);
58
+ cleanup = () => {
59
+ window.removeEventListener('mousemove', globalMouseMove, true);
60
+ window.removeEventListener('mouseup', globalMouseUp, true);
61
+ };
62
+ }
63
+ return cleanup;
64
+ }, [model, mouseDragging, prevX]);
65
+ function mouseDown(event) {
66
+ // check if clicking a draggable element or a resize handle
67
+ const target = event.target;
68
+ if (target.draggable || target.dataset.resizer) {
69
+ return;
70
+ }
71
+ // otherwise do click and drag scroll
72
+ if (event.button === 0) {
73
+ prevX.current = event.clientX;
74
+ setMouseDragging(true);
75
+ }
76
+ }
77
+ // this local mouseup is used in addition to the global because sometimes
78
+ // the global add/remove are not called in time, resulting in issue #533
79
+ function mouseUp(event) {
80
+ event.preventDefault();
81
+ setMouseDragging(false);
82
+ }
83
+ function mouseLeave(event) {
84
+ event.preventDefault();
85
+ }
86
+ useEffect(() => {
87
+ const curr = ref.current;
88
+ // if ctrl is held down, zoom in with y-scroll
89
+ // else scroll horizontally with x-scroll
90
+ function onWheel(origEvent) {
91
+ const event = normalizeWheel(origEvent);
92
+ if (origEvent.ctrlKey === true) {
93
+ origEvent.preventDefault();
94
+ delta.current += event.pixelY / 500;
95
+ model.setScaleFactor(delta.current < 0 ? 1 - delta.current : 1 / (1 + delta.current));
96
+ if (timeout.current) {
97
+ clearTimeout(timeout.current);
98
+ }
99
+ timeout.current = setTimeout(() => {
100
+ model.setScaleFactor(1);
101
+ model.zoomTo(delta.current > 0
102
+ ? model.bpPerPx * (1 + delta.current)
103
+ : model.bpPerPx / (1 - delta.current));
104
+ delta.current = 0;
105
+ }, 300);
106
+ }
107
+ else {
108
+ // this is needed to stop the event from triggering "back button
109
+ // action" on MacOSX etc. but is a heuristic to avoid preventing the
110
+ // inner-track scroll behavior
111
+ if (Math.abs(event.pixelX) > Math.abs(2 * event.pixelY)) {
112
+ origEvent.preventDefault();
113
+ }
114
+ delta.current += event.pixelX;
115
+ if (!scheduled.current) {
116
+ // use rAF to make it so multiple event handlers aren't fired per-frame
117
+ // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/
118
+ scheduled.current = true;
119
+ window.requestAnimationFrame(() => {
120
+ model.horizontalScroll(delta.current);
121
+ delta.current = 0;
122
+ scheduled.current = false;
123
+ });
124
+ }
125
+ }
126
+ }
127
+ if (curr) {
128
+ curr.addEventListener('wheel', onWheel);
129
+ return () => {
130
+ curr.removeEventListener('wheel', onWheel);
131
+ };
132
+ }
133
+ return () => { };
134
+ }, [model]);
135
+ return (React.createElement("div", { ref: ref, "data-testid": "trackContainer", className: classes.tracksContainer, onMouseDown: mouseDown, onMouseUp: mouseUp, onMouseLeave: mouseLeave },
136
+ React.createElement(VerticalGuides, { model: model }),
137
+ model.showCenterLine ? React.createElement(CenterLine, { model: model }) : null,
138
+ React.createElement(RubberBand, { model: model, ControlComponent: React.createElement(ScaleBar, { model: model, style: { height: SCALE_BAR_HEIGHT, boxSizing: 'border-box' } }) }),
139
+ children));
140
+ }
141
+ export default observer(TracksContainer);
142
+ //# sourceMappingURL=TracksContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TracksContainer.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/TracksContainer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { LinearGenomeViewModel } from '..';
3
+ declare type LGV = LinearGenomeViewModel;
4
+ declare function VerticalGuides({ model }: {
5
+ model: LGV;
6
+ }): JSX.Element;
7
+ declare const _default: typeof VerticalGuides;
8
+ export default _default;
@@ -0,0 +1,71 @@
1
+ import React from 'react';
2
+ import { ContentBlock, ElidedBlock, InterRegionPaddingBlock, } from '@jbrowse/core/util/blockTypes';
3
+ import { makeStyles } from 'tss-react/mui';
4
+ import { observer } from 'mobx-react';
5
+ import { ContentBlock as ContentBlockComponent, ElidedBlock as ElidedBlockComponent, InterRegionPaddingBlock as InterRegionPaddingBlockComponent, } from '../../BaseLinearDisplay/components/Block';
6
+ import { makeTicks } from '../util';
7
+ const useStyles = makeStyles()(theme => ({
8
+ verticalGuidesZoomContainer: {
9
+ position: 'absolute',
10
+ height: '100%',
11
+ width: '100%',
12
+ zIndex: 1,
13
+ pointerEvents: 'none',
14
+ },
15
+ verticalGuidesContainer: {
16
+ position: 'absolute',
17
+ height: '100%',
18
+ zIndex: 1,
19
+ pointerEvents: 'none',
20
+ display: 'flex',
21
+ },
22
+ tick: {
23
+ position: 'absolute',
24
+ height: '100%',
25
+ width: 1,
26
+ },
27
+ majorTick: {
28
+ background: theme.palette.text.secondary,
29
+ },
30
+ minorTick: {
31
+ background: theme.palette.divider,
32
+ },
33
+ }));
34
+ const RenderedVerticalGuides = observer(({ model }) => {
35
+ const { classes, cx } = useStyles();
36
+ return (React.createElement(React.Fragment, null, model.staticBlocks.map((block, index) => {
37
+ if (block instanceof ContentBlock) {
38
+ const ticks = makeTicks(block.start, block.end, model.bpPerPx);
39
+ return (React.createElement(ContentBlockComponent, { key: `${block.key}-${index}`, block: block }, ticks.map(tick => {
40
+ const x = (block.reversed
41
+ ? block.end - tick.base
42
+ : tick.base - block.start) / model.bpPerPx;
43
+ return (React.createElement("div", { key: tick.base, className: cx(classes.tick, tick.type === 'major' || tick.type === 'labeledMajor'
44
+ ? classes.majorTick
45
+ : classes.minorTick), style: { left: x } }));
46
+ })));
47
+ }
48
+ if (block instanceof ElidedBlock) {
49
+ return React.createElement(ElidedBlockComponent, { key: block.key, width: block.widthPx });
50
+ }
51
+ if (block instanceof InterRegionPaddingBlock) {
52
+ return (React.createElement(InterRegionPaddingBlockComponent, { key: block.key, width: block.widthPx, boundary: block.variant === 'boundary' }));
53
+ }
54
+ return null;
55
+ })));
56
+ });
57
+ function VerticalGuides({ model }) {
58
+ const { classes } = useStyles();
59
+ // find the block that needs pinning to the left side for context
60
+ const offsetLeft = model.staticBlocks.offsetPx - model.offsetPx;
61
+ return (React.createElement("div", { className: classes.verticalGuidesZoomContainer, style: {
62
+ transform: model.scaleFactor !== 1 ? `scaleX(${model.scaleFactor})` : undefined,
63
+ } },
64
+ React.createElement("div", { className: classes.verticalGuidesContainer, style: {
65
+ left: offsetLeft,
66
+ width: model.staticBlocks.totalWidthPx,
67
+ } },
68
+ React.createElement(RenderedVerticalGuides, { model: model }))));
69
+ }
70
+ export default observer(VerticalGuides);
71
+ //# sourceMappingURL=VerticalGuides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalGuides.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/VerticalGuides.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { LinearGenomeViewModel } from '..';
3
+ declare function ZoomControls({ model }: {
4
+ model: LinearGenomeViewModel;
5
+ }): JSX.Element;
6
+ declare const _default: typeof ZoomControls;
7
+ export default _default;
@@ -0,0 +1,32 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { observer } from 'mobx-react';
3
+ import { Slider, IconButton } from '@mui/material';
4
+ import { makeStyles } from 'tss-react/mui';
5
+ import ZoomIn from '@mui/icons-material/ZoomIn';
6
+ import ZoomOut from '@mui/icons-material/ZoomOut';
7
+ const useStyles = makeStyles()({
8
+ container: {
9
+ display: 'flex',
10
+ flexDirection: 'row',
11
+ alignItems: 'center',
12
+ },
13
+ slider: {
14
+ width: 70,
15
+ },
16
+ });
17
+ function ZoomControls({ model }) {
18
+ const { classes } = useStyles();
19
+ const { maxBpPerPx, minBpPerPx, bpPerPx, scaleFactor } = model;
20
+ const [value, setValue] = useState(-Math.log2(bpPerPx) * 100);
21
+ useEffect(() => {
22
+ setValue(-Math.log2(bpPerPx) * 100);
23
+ }, [setValue, bpPerPx]);
24
+ return (React.createElement("div", { className: classes.container },
25
+ React.createElement(IconButton, { "data-testid": "zoom_out", onClick: () => model.zoom(bpPerPx * 2), disabled: bpPerPx >= maxBpPerPx - 0.0001 || scaleFactor !== 1, color: "secondary", size: "large" },
26
+ React.createElement(ZoomOut, null)),
27
+ React.createElement(Slider, { size: "small", className: classes.slider, value: value, min: -Math.log2(maxBpPerPx) * 100, max: -Math.log2(minBpPerPx) * 100, onChange: (_, val) => setValue(val), onChangeCommitted: () => model.zoomTo(2 ** (-value / 100)), disabled: scaleFactor !== 1 }),
28
+ React.createElement(IconButton, { "data-testid": "zoom_in", onClick: () => model.zoom(model.bpPerPx / 2), disabled: bpPerPx <= minBpPerPx + 0.0001 || scaleFactor !== 1, color: "secondary", size: "large" },
29
+ React.createElement(ZoomIn, null))));
30
+ }
31
+ export default observer(ZoomControls);
32
+ //# sourceMappingURL=ZoomControls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomControls.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/ZoomControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,MAAM,MAAM,4BAA4B,CAAA;AAC/C,OAAO,OAAO,MAAM,6BAA6B,CAAA;AAGjD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC7B,SAAS,EAAE;QACT,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;KACrB;IACD,MAAM,EAAE;QACN,KAAK,EAAE,EAAE;KACV;CACF,CAAC,CAAA;AAEF,SAAS,YAAY,CAAC,EAAE,KAAK,EAAoC;IAC/D,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAC9D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAA;IAC7D,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAA;IACrC,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;IAEvB,OAAO,CACL,6BAAK,SAAS,EAAE,OAAO,CAAC,SAAS;QAC/B,oBAAC,UAAU,mBACG,UAAU,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EACtC,QAAQ,EAAE,OAAO,IAAI,UAAU,GAAG,MAAM,IAAI,WAAW,KAAK,CAAC,EAC7D,KAAK,EAAC,WAAW,EACjB,IAAI,EAAC,OAAO;YAEZ,oBAAC,OAAO,OAAG,CACA;QAEb,oBAAC,MAAM,IACL,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,OAAO,CAAC,MAAM,EACzB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,EACjC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,EACjC,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAa,CAAC,EAC7C,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,EAC1D,QAAQ,EAAE,WAAW,KAAK,CAAC,GAC3B;QACF,oBAAC,UAAU,mBACG,SAAS,EACrB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,EAC5C,QAAQ,EAAE,OAAO,IAAI,UAAU,GAAG,MAAM,IAAI,WAAW,KAAK,CAAC,EAC7D,KAAK,EAAC,WAAW,EACjB,IAAI,EAAC,OAAO;YAEZ,oBAAC,MAAM,OAAG,CACC,CACT,CACP,CAAA;AACH,CAAC;AAED,eAAe,QAAQ,CAAC,YAAY,CAAC,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { Assembly } from '@jbrowse/core/assemblyManager/assembly';
2
+ import { SearchType } from '@jbrowse/core/data_adapters/BaseAdapter';
3
+ import BaseResult from '@jbrowse/core/TextSearch/BaseResults';
4
+ import { SearchScope } from '@jbrowse/core/TextSearch/TextSearchManager';
5
+ import { TextSearchManager } from '@jbrowse/core/util';
6
+ export declare function dedupe(results: BaseResult[] | undefined, cb: (result: BaseResult) => string): BaseResult[];
7
+ export declare function fetchResults({ queryString, searchType, searchScope, rankSearchResults, textSearchManager, assembly, }: {
8
+ queryString: string;
9
+ searchScope: SearchScope;
10
+ rankSearchResults: (results: BaseResult[]) => BaseResult[];
11
+ searchType?: SearchType;
12
+ textSearchManager?: TextSearchManager;
13
+ assembly?: Assembly;
14
+ }): Promise<BaseResult[]>;
@@ -0,0 +1,17 @@
1
+ import BaseResult from '@jbrowse/core/TextSearch/BaseResults';
2
+ export function dedupe(results = [], cb) {
3
+ return results.filter((elt, idx, self) => idx === self.findIndex(t => cb(t) === cb(elt)));
4
+ }
5
+ export async function fetchResults({ queryString, searchType, searchScope, rankSearchResults, textSearchManager, assembly, }) {
6
+ var _a;
7
+ if (!textSearchManager) {
8
+ console.warn('No text search manager');
9
+ }
10
+ const textSearchResults = await (textSearchManager === null || textSearchManager === void 0 ? void 0 : textSearchManager.search({
11
+ queryString,
12
+ searchType,
13
+ }, searchScope, rankSearchResults));
14
+ const refNameResults = (_a = assembly === null || assembly === void 0 ? void 0 : assembly.allRefNames) === null || _a === void 0 ? void 0 : _a.filter(ref => ref.toLowerCase().startsWith(queryString.toLowerCase())).slice(0, 10).map(r => new BaseResult({ label: r }));
15
+ return dedupe([...(refNameResults || []), ...(textSearchResults || [])], elt => elt.getId());
16
+ }
17
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/util.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,sCAAsC,CAAA;AAI7D,MAAM,UAAU,MAAM,CACpB,UAAwB,EAAE,EAC1B,EAAkC;IAElC,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CACnE,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,WAAW,EACX,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,GAQT;;IACC,IAAI,CAAC,iBAAiB,EAAE;QACtB,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;KACvC;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,CACvD;QACE,WAAW;QACX,UAAU;KACX,EACD,WAAW,EACX,iBAAiB,CAClB,CAAA,CAAA;IAED,MAAM,cAAc,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,0CACxC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EACtE,KAAK,CAAC,CAAC,EAAE,EAAE,EACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAEzC,OAAO,MAAM,CACX,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,EACzD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CACnB,CAAA;AACH,CAAC"}
@@ -0,0 +1,288 @@
1
+ import { Region } from '@jbrowse/core/util/types';
2
+ import { MenuItem } from '@jbrowse/core/ui';
3
+ import BaseResult from '@jbrowse/core/TextSearch/BaseResults';
4
+ import { BlockSet, BaseBlock } from '@jbrowse/core/util/blockTypes';
5
+ import { Instance } from 'mobx-state-tree';
6
+ import PluginManager from '@jbrowse/core/PluginManager';
7
+ import { renderToSvg } from './components/LinearGenomeViewSvg';
8
+ import RefNameAutocomplete from './components/RefNameAutocomplete';
9
+ import SearchBox from './components/SearchBox';
10
+ export interface BpOffset {
11
+ refName?: string;
12
+ index: number;
13
+ offset: number;
14
+ start?: number;
15
+ end?: number;
16
+ coord?: number;
17
+ reversed?: boolean;
18
+ assemblyName?: string;
19
+ oob?: boolean;
20
+ }
21
+ export interface ExportSvgOptions {
22
+ rasterizeLayers?: boolean;
23
+ filename?: string;
24
+ }
25
+ export interface NavLocation {
26
+ refName: string;
27
+ start?: number;
28
+ end?: number;
29
+ assemblyName?: string;
30
+ }
31
+ export declare const HEADER_BAR_HEIGHT = 48;
32
+ export declare const HEADER_OVERVIEW_HEIGHT = 20;
33
+ export declare const SCALE_BAR_HEIGHT = 17;
34
+ export declare const RESIZE_HANDLE_HEIGHT = 3;
35
+ export declare const INTER_REGION_PADDING_WIDTH = 2;
36
+ export declare const SPACING = 7;
37
+ export declare const WIDGET_HEIGHT = 32;
38
+ export declare function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
39
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
40
+ displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
41
+ } & {
42
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
43
+ type: import("mobx-state-tree").ISimpleType<"LinearGenomeView">;
44
+ offsetPx: import("mobx-state-tree").IType<number | undefined, number, number>;
45
+ bpPerPx: import("mobx-state-tree").IType<number | undefined, number, number>;
46
+ displayedRegions: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
47
+ refName: import("mobx-state-tree").ISimpleType<string>;
48
+ start: import("mobx-state-tree").ISimpleType<number>;
49
+ end: import("mobx-state-tree").ISimpleType<number>;
50
+ reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
51
+ } & {
52
+ assemblyName: import("mobx-state-tree").ISimpleType<string>;
53
+ }, {
54
+ setRefName(newRefName: string): void;
55
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
56
+ tracks: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>;
57
+ hideHeader: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
58
+ hideHeaderOverview: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
59
+ hideNoTracksActive: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
60
+ trackSelectorType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<"hierarchical">, [undefined]>;
61
+ trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
62
+ showCenterLine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
63
+ showCytobandsSetting: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
64
+ }, {
65
+ width: number;
66
+ } & {
67
+ menuItems(): MenuItem[];
68
+ } & {
69
+ setDisplayName(name: string): void;
70
+ setWidth(newWidth: number): void;
71
+ } & {
72
+ volatileWidth: number | undefined;
73
+ minimumBlockWidth: number;
74
+ draggingTrackId: string | undefined;
75
+ volatileError: Error | undefined;
76
+ afterDisplayedRegionsSetCallbacks: Function[];
77
+ scaleFactor: number;
78
+ trackRefs: {
79
+ [key: string]: any;
80
+ };
81
+ coarseDynamicBlocks: BaseBlock[];
82
+ coarseTotalBp: number;
83
+ leftOffset: BpOffset | undefined;
84
+ rightOffset: BpOffset | undefined;
85
+ searchResults: BaseResult[] | undefined;
86
+ searchQuery: string | undefined;
87
+ seqDialogDisplayed: boolean;
88
+ } & {
89
+ readonly width: number;
90
+ readonly interRegionPaddingWidth: number;
91
+ readonly assemblyNames: string[];
92
+ } & {
93
+ readonly assemblyErrors: string;
94
+ readonly assembliesInitialized: boolean;
95
+ readonly initialized: boolean;
96
+ readonly hasDisplayedRegions: boolean;
97
+ readonly isSearchDialogDisplayed: boolean;
98
+ readonly scaleBarHeight: number;
99
+ readonly headerHeight: number;
100
+ readonly trackHeights: any;
101
+ readonly trackHeightsWithResizeHandles: any;
102
+ readonly height: any;
103
+ readonly totalBp: number;
104
+ readonly maxBpPerPx: number;
105
+ readonly minBpPerPx: number;
106
+ readonly error: string | Error;
107
+ readonly maxOffset: number;
108
+ readonly minOffset: number;
109
+ readonly displayedRegionsTotalPx: number;
110
+ renderProps(): any;
111
+ searchScope(assemblyName: string): {
112
+ assemblyName: string;
113
+ includeAggregateIndexes: boolean;
114
+ tracks: import("mobx-state-tree").IMSTArray<import("mobx-state-tree").IAnyType> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>>;
115
+ };
116
+ bpToPx({ refName, coord, regionNumber, }: {
117
+ refName: string;
118
+ coord: number;
119
+ regionNumber?: number | undefined;
120
+ }): {
121
+ index: number;
122
+ offsetPx: number;
123
+ } | undefined;
124
+ /**
125
+ *
126
+ * @param px - px in the view area, return value is the displayed regions
127
+ * @returns BpOffset of the displayed region that it lands in
128
+ */
129
+ pxToBp(px: number): {
130
+ oob: boolean;
131
+ coord: number;
132
+ offset: number;
133
+ index: number;
134
+ start: number;
135
+ end: number;
136
+ reversed: boolean;
137
+ refName: string;
138
+ assemblyName: string;
139
+ };
140
+ getTrack(id: string): any;
141
+ rankSearchResults(results: BaseResult[]): BaseResult[];
142
+ rewriteOnClicks(trackType: string, viewMenuActions: MenuItem[]): void;
143
+ readonly trackTypeActions: Map<string, MenuItem[]>;
144
+ readonly centerLineInfo: {
145
+ oob: boolean;
146
+ coord: number;
147
+ offset: number;
148
+ index: number;
149
+ start: number;
150
+ end: number;
151
+ reversed: boolean;
152
+ refName: string;
153
+ assemblyName: string;
154
+ } | undefined;
155
+ } & {
156
+ setShowCytobands(flag: boolean): void;
157
+ setWidth(newWidth: number): void;
158
+ setError(error: Error | undefined): void;
159
+ toggleHeader(): void;
160
+ toggleHeaderOverview(): void;
161
+ toggleNoTracksActive(): void;
162
+ scrollTo(offsetPx: number): number;
163
+ zoomTo(bpPerPx: number): number;
164
+ setOffsets(left: undefined | BpOffset, right: undefined | BpOffset): void;
165
+ setSearchResults(results: BaseResult[] | undefined, query: string | undefined): void;
166
+ setSequenceDialogOpen(open: boolean): void;
167
+ setNewView(bpPerPx: number, offsetPx: number): void;
168
+ horizontallyFlip(): void;
169
+ showTrack(trackId: string, initialSnapshot?: {}, displayInitialSnapshot?: {}): any;
170
+ hideTrack(trackId: string): number;
171
+ } & {
172
+ moveTrack(movingId: string, targetId: string): void;
173
+ closeView(): void;
174
+ toggleTrack(trackId: string): void;
175
+ setTrackLabels(setting: 'overlapping' | 'offset' | 'hidden'): void;
176
+ toggleCenterLine(): void;
177
+ setDisplayedRegions(regions: Region[]): void;
178
+ activateTrackSelector(): import("@jbrowse/core/util").Widget;
179
+ navToLocString(locString: string, optAssemblyName?: string): void;
180
+ /**
181
+ * Navigate to a location based on its refName and optionally start, end,
182
+ * and assemblyName. Can handle if there are multiple displayedRegions
183
+ * from same refName. Only navigates to a location if it is entirely
184
+ * within a displayedRegion. Navigates to the first matching location
185
+ * encountered.
186
+ *
187
+ * Throws an error if navigation was unsuccessful
188
+ *
189
+ * @param location - a proposed location to navigate to
190
+ */
191
+ navTo(query: NavLocation): void;
192
+ navToMultiple(locations: NavLocation[]): void;
193
+ /**
194
+ * Navigate to a location based on user clicking and dragging on the
195
+ * overview scale bar to select a region to zoom into.
196
+ * Can handle if there are multiple displayedRegions from same refName.
197
+ * Only navigates to a location if it is entirely within a displayedRegion.
198
+ *
199
+ * @param leftPx- `object as {start, end, index, offset}`, offset = start of user drag
200
+ * @param rightPx- `object as {start, end, index, offset}`, offset = end of user drag
201
+ */
202
+ zoomToDisplayedRegions(leftPx: BpOffset, rightPx: BpOffset): void;
203
+ /**
204
+ * Helper method for the fetchSequence.
205
+ * Retrieves the corresponding regions that were selected by the rubberband
206
+ *
207
+ * @param leftOffset - `object as {start, end, index, offset}`, offset = start of user drag
208
+ * @param rightOffset - `object as {start, end, index, offset}`, offset = end of user drag
209
+ * @returns array of Region[]
210
+ */
211
+ getSelectedRegions(leftOffset: BpOffset | undefined, rightOffset: BpOffset | undefined): {
212
+ start: number;
213
+ end: number;
214
+ regionNumber?: number | undefined;
215
+ reversed?: boolean | undefined;
216
+ refName: string;
217
+ assemblyName: string;
218
+ key: string;
219
+ offsetPx: number;
220
+ widthPx: number;
221
+ variant?: string | undefined;
222
+ isLeftEndOfDisplayedRegion?: boolean | undefined;
223
+ }[];
224
+ afterDisplayedRegionsSet(cb: Function): void;
225
+ /**
226
+ * offset is the base-pair-offset in the displayed region, index is the index of the
227
+ * displayed region in the linear genome view
228
+ *
229
+ * @param start - object as `{start, end, offset, index}`
230
+ * @param end - object as `{start, end, offset, index}`
231
+ */
232
+ moveTo(start: BpOffset, end: BpOffset): void;
233
+ horizontalScroll(distance: number): number;
234
+ /**
235
+ * scrolls the view to center on the given bp. if that is not in any
236
+ * of the displayed regions, does nothing
237
+ * @param bp - basepair at which you want to center the view
238
+ * @param refName - refName of the displayedRegion you are centering at
239
+ * @param regionIndex - index of the displayedRegion
240
+ */
241
+ centerAt(bp: number, refName: string, regionIndex: number): void;
242
+ center(): void;
243
+ showAllRegions(): void;
244
+ showAllRegionsInAssembly(assemblyName?: string): void;
245
+ setDraggingTrackId(idx?: string): void;
246
+ setScaleFactor(factor: number): void;
247
+ } & {
248
+ slide: (viewWidths: number) => void;
249
+ } & {
250
+ zoom: (targetBpPerPx: number) => void;
251
+ } & {
252
+ readonly canShowCytobands: boolean;
253
+ readonly showCytobands: boolean;
254
+ readonly anyCytobandsExist: boolean;
255
+ readonly cytobandOffset: number;
256
+ } & {
257
+ menuItems(): MenuItem[];
258
+ } & {
259
+ readonly staticBlocks: BlockSet;
260
+ readonly dynamicBlocks: BlockSet;
261
+ readonly roundedDynamicBlocks: {
262
+ start: number;
263
+ end: number;
264
+ regionNumber?: number | undefined;
265
+ reversed?: boolean | undefined;
266
+ refName: string;
267
+ assemblyName: string;
268
+ key: string;
269
+ offsetPx: number;
270
+ widthPx: number;
271
+ variant?: string | undefined;
272
+ isLeftEndOfDisplayedRegion?: boolean | undefined;
273
+ }[];
274
+ readonly visibleLocStrings: string;
275
+ readonly coarseVisibleLocStrings: string;
276
+ } & {
277
+ clearView(): void;
278
+ setCoarseDynamicBlocks(blocks: BlockSet): void;
279
+ afterAttach(): void;
280
+ } & {
281
+ exportSvg(opts?: ExportSvgOptions): Promise<void>;
282
+ } & {
283
+ rubberBandMenuItems(): MenuItem[];
284
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
285
+ export { renderToSvg, RefNameAutocomplete, SearchBox };
286
+ export declare type LinearGenomeViewStateModel = ReturnType<typeof stateModelFactory>;
287
+ export declare type LinearGenomeViewModel = Instance<LinearGenomeViewStateModel>;
288
+ export { default as ReactComponent } from './components/LinearGenomeView';