@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,15 @@
1
+ import React from 'react';
2
+ import { BaseBlock } from '@jbrowse/core/util/blockTypes';
3
+ declare const ContentBlock: ({ block, children }: {
4
+ block: BaseBlock;
5
+ children: React.ReactNode;
6
+ }) => JSX.Element;
7
+ declare function ElidedBlock({ width }: {
8
+ width: number;
9
+ }): JSX.Element;
10
+ declare function InterRegionPaddingBlock({ boundary, width, style, }: {
11
+ boundary: boolean;
12
+ width: number;
13
+ style?: React.CSSProperties;
14
+ }): JSX.Element;
15
+ export { ContentBlock, ElidedBlock, InterRegionPaddingBlock };
@@ -0,0 +1,46 @@
1
+ import React from 'react';
2
+ import { makeStyles } from 'tss-react/mui';
3
+ import { observer } from 'mobx-react';
4
+ const useStyles = makeStyles()(theme => ({
5
+ contentBlock: {
6
+ position: 'relative',
7
+ minHeight: '100%',
8
+ boxSizing: 'border-box',
9
+ whiteSpace: 'nowrap',
10
+ overflow: 'hidden',
11
+ },
12
+ elidedBlock: {
13
+ minHeight: '100%',
14
+ boxSizing: 'border-box',
15
+ backgroundColor: '#999',
16
+ backgroundImage: 'repeating-linear-gradient(90deg, transparent, transparent 1px, rgba(255,255,255,.5) 1px, rgba(255,255,255,.5) 3px)',
17
+ },
18
+ interRegionPaddingBlock: {
19
+ minHeight: '100%',
20
+ backgroundColor: theme.palette.text.primary,
21
+ },
22
+ boundaryPaddingBlock: {
23
+ minHeight: '100%',
24
+ backgroundColor: theme.palette.action.disabledBackground,
25
+ },
26
+ }));
27
+ const ContentBlock = observer(({ block, children }) => {
28
+ const { classes } = useStyles();
29
+ const { widthPx } = block;
30
+ return (React.createElement("div", { style: { width: widthPx }, className: classes.contentBlock }, children));
31
+ });
32
+ function ElidedBlock({ width }) {
33
+ const { classes } = useStyles();
34
+ return React.createElement("div", { className: classes.elidedBlock, style: { width } });
35
+ }
36
+ function InterRegionPaddingBlock({ boundary, width, style = {}, }) {
37
+ const { classes } = useStyles();
38
+ return (React.createElement("div", { style: {
39
+ ...style,
40
+ width,
41
+ }, className: boundary
42
+ ? classes.boundaryPaddingBlock
43
+ : classes.interRegionPaddingBlock }));
44
+ }
45
+ export { ContentBlock, ElidedBlock, InterRegionPaddingBlock };
46
+ //# sourceMappingURL=Block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Block.js","sourceRoot":"","sources":["../../../src/BaseLinearDisplay/components/Block.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,YAAY,EAAE;QACZ,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,QAAQ;KACnB;IACD,WAAW,EAAE;QACX,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,YAAY;QACvB,eAAe,EAAE,MAAM;QACvB,eAAe,EACb,oHAAoH;KACvH;IACD,uBAAuB,EAAE;QACvB,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;KAC5C;IACD,oBAAoB,EAAE;QACpB,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB;KACzD;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,YAAY,GAAG,QAAQ,CAC3B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAmD,EAAE,EAAE;IACvE,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IACzB,OAAO,CACL,6BAAK,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,YAAY,IAC5D,QAAQ,CACL,CACP,CAAA;AACH,CAAC,CACF,CAAA;AAED,SAAS,WAAW,CAAC,EAAE,KAAK,EAAqB;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,OAAO,6BAAK,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAI,CAAA;AAClE,CAAC;AAED,SAAS,uBAAuB,CAAC,EAC/B,QAAQ,EACR,KAAK,EACL,KAAK,GAAG,EAAE,GAKX;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,OAAO,CACL,6BACE,KAAK,EAAE;YACL,GAAG,KAAK;YACR,KAAK;SACN,EACD,SAAS,EACP,QAAQ;YACN,CAAC,CAAC,OAAO,CAAC,oBAAoB;YAC9B,CAAC,CAAC,OAAO,CAAC,uBAAuB,GAErC,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAA"}
@@ -0,0 +1,22 @@
1
+ /// <reference types="react" />
2
+ import { BaseLinearDisplayModel } from '../models/BaseLinearDisplayModel';
3
+ declare const useStyles: (params: void, styleOverrides?: {
4
+ props: {
5
+ classes?: Record<string, string> | undefined;
6
+ } & Record<string, unknown>;
7
+ ownerState?: Record<string, unknown> | undefined;
8
+ } | undefined) => {
9
+ classes: Record<"linearBlocks" | "heightOverflowed", string>;
10
+ theme: import("@mui/material").Theme;
11
+ css: import("tss-react/types").Css;
12
+ cx: import("tss-react/types").Cx;
13
+ };
14
+ declare const RenderedBlocks: ({ model }: {
15
+ model: BaseLinearDisplayModel;
16
+ }) => JSX.Element;
17
+ declare function LinearBlocks({ model }: {
18
+ model: BaseLinearDisplayModel;
19
+ }): JSX.Element;
20
+ export { RenderedBlocks, useStyles };
21
+ declare const _default: typeof LinearBlocks;
22
+ export default _default;
@@ -0,0 +1,62 @@
1
+ import React from 'react';
2
+ import { makeStyles } from 'tss-react/mui';
3
+ import { getContainingView } from '@jbrowse/core/util';
4
+ import { observer } from 'mobx-react';
5
+ import { ContentBlock, ElidedBlock, InterRegionPaddingBlock, } from '@jbrowse/core/util/blockTypes';
6
+ import { ContentBlock as ContentBlockComponent, ElidedBlock as ElidedBlockComponent, InterRegionPaddingBlock as InterRegionPaddingBlockComponent, } from './Block';
7
+ const useStyles = makeStyles()({
8
+ linearBlocks: {
9
+ whiteSpace: 'nowrap',
10
+ textAlign: 'left',
11
+ position: 'absolute',
12
+ minHeight: '100%',
13
+ display: 'flex',
14
+ },
15
+ heightOverflowed: {
16
+ position: 'absolute',
17
+ color: 'rgb(77,77,77)',
18
+ borderBottom: '2px solid rgb(77,77,77)',
19
+ textShadow: 'white 0px 0px 1px',
20
+ whiteSpace: 'nowrap',
21
+ width: '100%',
22
+ fontWeight: 'bold',
23
+ textAlign: 'center',
24
+ zIndex: 2000,
25
+ boxSizing: 'border-box',
26
+ },
27
+ });
28
+ const RenderedBlocks = observer(({ model }) => {
29
+ const { classes } = useStyles();
30
+ const { blockDefinitions, blockState } = model;
31
+ return (React.createElement(React.Fragment, null, blockDefinitions.map(block => {
32
+ if (block instanceof ContentBlock) {
33
+ const state = blockState.get(block.key);
34
+ return (React.createElement(ContentBlockComponent, { block: block, key: `${model.id}-${block.key}` },
35
+ state && state.ReactComponent ? (React.createElement(state.ReactComponent, { model: state })) : null,
36
+ state && state.maxHeightReached ? (React.createElement("div", { className: classes.heightOverflowed, style: {
37
+ top: state.layout.getTotalHeight() - 16,
38
+ pointerEvents: 'none',
39
+ height: 16,
40
+ } }, "Max height reached")) : null));
41
+ }
42
+ if (block instanceof ElidedBlock) {
43
+ return (React.createElement(ElidedBlockComponent, { key: `${model.id}-${block.key}`, width: block.widthPx }));
44
+ }
45
+ if (block instanceof InterRegionPaddingBlock) {
46
+ return (React.createElement(InterRegionPaddingBlockComponent, { key: block.key, width: block.widthPx, style: { background: 'none' }, boundary: block.variant === 'boundary' }));
47
+ }
48
+ throw new Error(`invalid block type ${typeof block}`);
49
+ })));
50
+ });
51
+ function LinearBlocks({ model }) {
52
+ const { classes } = useStyles();
53
+ const { blockDefinitions } = model;
54
+ const viewModel = getContainingView(model);
55
+ return (React.createElement("div", { "data-testid": "Blockset", className: classes.linearBlocks, style: {
56
+ left: blockDefinitions.offsetPx - viewModel.offsetPx,
57
+ } },
58
+ React.createElement(RenderedBlocks, { model: model })));
59
+ }
60
+ export { RenderedBlocks, useStyles };
61
+ export default observer(LinearBlocks);
62
+ //# sourceMappingURL=LinearBlocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinearBlocks.js","sourceRoot":"","sources":["../../../src/BaseLinearDisplay/components/LinearBlocks.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ declare const ServerSideRenderedBlockContent: ({ model, }: {
2
+ model: any;
3
+ }) => any;
4
+ export default ServerSideRenderedBlockContent;
@@ -0,0 +1,113 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { Typography, Button } from '@mui/material';
3
+ import { makeStyles } from 'tss-react/mui';
4
+ import { observer } from 'mobx-react';
5
+ import { getParent } from 'mobx-state-tree';
6
+ import { getParentRenderProps } from '@jbrowse/core/util/tracks';
7
+ import RefreshIcon from '@mui/icons-material/Refresh';
8
+ const useStyles = makeStyles()(theme => ({
9
+ loading: {
10
+ paddingLeft: '0.6em',
11
+ backgroundColor: theme.palette.action.disabledBackground,
12
+ backgroundImage: 'repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,.5) 5px, rgba(255,255,255,.5) 10px)',
13
+ height: '100%',
14
+ width: '100%',
15
+ pointerEvents: 'none',
16
+ textAlign: 'center',
17
+ },
18
+ blockMessage: {
19
+ width: '100%',
20
+ background: theme.palette.action.disabledBackground,
21
+ padding: theme.spacing(2),
22
+ pointerEvents: 'none',
23
+ textAlign: 'center',
24
+ },
25
+ blockError: {
26
+ padding: theme.spacing(2),
27
+ width: '100%',
28
+ whiteSpace: 'normal',
29
+ color: theme.palette.error.main,
30
+ overflowY: 'auto',
31
+ },
32
+ blockReactNodeMessage: {
33
+ width: '100%',
34
+ background: theme.palette.action.disabledBackground,
35
+ padding: theme.spacing(2),
36
+ textAlign: 'center',
37
+ },
38
+ dots: {
39
+ '&::after': {
40
+ display: 'inline-block',
41
+ animation: '$ellipsis 1.5s infinite',
42
+ content: '"."',
43
+ width: '1em',
44
+ textAlign: 'left',
45
+ },
46
+ },
47
+ '@keyframes ellipsis': {
48
+ '0%': {
49
+ content: '"."',
50
+ },
51
+ '33%': {
52
+ content: '".."',
53
+ },
54
+ '66%': {
55
+ content: '"..."',
56
+ },
57
+ },
58
+ }));
59
+ function Repeater({ children }) {
60
+ return (React.createElement("div", { style: { display: 'flex' } },
61
+ children,
62
+ children));
63
+ }
64
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
+ const LoadingMessage = observer(({ model }) => {
66
+ // only show the loading message after 300ms to prevent excessive flickering
67
+ const [shown, setShown] = useState(false);
68
+ const { classes } = useStyles();
69
+ useEffect(() => {
70
+ let killed = false;
71
+ const timeout = setTimeout(() => {
72
+ if (!killed) {
73
+ setShown(true);
74
+ }
75
+ }, 300);
76
+ return () => {
77
+ clearTimeout(timeout);
78
+ killed = true;
79
+ };
80
+ }, []);
81
+ const { status: blockStatus } = model;
82
+ const { message: displayStatus } = getParent(model, 2);
83
+ const status = displayStatus || blockStatus;
84
+ return (React.createElement(React.Fragment, null, shown ? (React.createElement("div", { className: classes.loading },
85
+ React.createElement(Typography, { className: classes.dots, variant: "body2" }, status ? `${status}` : 'Loading'))) : null));
86
+ });
87
+ function BlockMessage({ messageContent, }) {
88
+ const { classes } = useStyles();
89
+ return React.isValidElement(messageContent) ? (React.createElement("div", { className: classes.blockReactNodeMessage }, messageContent)) : (React.createElement(Typography, { variant: "body2", className: classes.blockMessage }, messageContent));
90
+ }
91
+ function BlockError({ error, reload, displayHeight, }) {
92
+ const { classes } = useStyles();
93
+ return (React.createElement("div", { className: classes.blockError, style: { height: displayHeight } },
94
+ reload ? (React.createElement(Button, { "data-testid": "reload_button", onClick: reload, startIcon: React.createElement(RefreshIcon, null) }, "Reload")) : null,
95
+ React.createElement(Typography, { color: "error", variant: "body2", display: "inline" }, `${error}`)));
96
+ }
97
+ const ServerSideRenderedBlockContent = observer(({ model, }) => {
98
+ if (model.error) {
99
+ return (React.createElement(Repeater, null,
100
+ React.createElement(BlockError, { error: model.error, reload: model.reload, displayHeight: getParentRenderProps(model).displayModel.height })));
101
+ }
102
+ if (model.message) {
103
+ return (React.createElement(Repeater, null,
104
+ React.createElement(BlockMessage, { messageContent: model.message })));
105
+ }
106
+ if (!model.filled) {
107
+ return (React.createElement(Repeater, null,
108
+ React.createElement(LoadingMessage, { model: model })));
109
+ }
110
+ return model.reactElement;
111
+ });
112
+ export default ServerSideRenderedBlockContent;
113
+ //# sourceMappingURL=ServerSideRenderedBlockContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerSideRenderedBlockContent.js","sourceRoot":"","sources":["../../../src/BaseLinearDisplay/components/ServerSideRenderedBlockContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,WAAW,MAAM,6BAA6B,CAAA;AAErD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,OAAO,EAAE;QACP,WAAW,EAAE,OAAO;QACpB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB;QACxD,eAAe,EACb,qHAAqH;QACvH,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,MAAM;QACb,aAAa,EAAE,MAAM;QACrB,SAAS,EAAE,QAAQ;KACpB;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB;QACnD,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzB,aAAa,EAAE,MAAM;QACrB,SAAS,EAAE,QAAQ;KACpB;IACD,UAAU,EAAE;QACV,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzB,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;QAC/B,SAAS,EAAE,MAAM;KAClB;IACD,qBAAqB,EAAE;QACrB,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB;QACnD,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzB,SAAS,EAAE,QAAQ;KACpB;IACD,IAAI,EAAE;QACJ,UAAU,EAAE;YACV,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE,yBAAyB;YACpC,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,MAAM;SAClB;KACF;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE;YACJ,OAAO,EAAE,KAAK;SACf;QACD,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;SAChB;QACD,KAAK,EAAE;YACL,OAAO,EAAE,OAAO;SACjB;KACF;CACF,CAAC,CAAC,CAAA;AAEH,SAAS,QAAQ,CAAC,EAAE,QAAQ,EAAiC;IAC3D,OAAO,CACL,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAC5B,QAAQ;QACR,QAAQ,CACL,CACP,CAAA;AACH,CAAC;AAED,8DAA8D;AAC9D,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAkB,EAAE,EAAE;IAC5D,4EAA4E;IAC5E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACzC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC,MAAM,EAAE;gBACX,QAAQ,CAAC,IAAI,CAAC,CAAA;aACf;QACH,CAAC,EAAE,GAAG,CAAC,CAAA;QACP,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,MAAM,GAAG,IAAI,CAAA;QACf,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IACrC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,aAAa,IAAI,WAAW,CAAA;IAC3C,OAAO,CACL,0CACG,KAAK,CAAC,CAAC,CAAC,CACP,6BAAK,SAAS,EAAE,OAAO,CAAC,OAAO;QAC7B,oBAAC,UAAU,IAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAC,OAAO,IACjD,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CACtB,CACT,CACP,CAAC,CAAC,CAAC,IAAI,CACP,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,SAAS,YAAY,CAAC,EACpB,cAAc,GAGf;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAE/B,OAAO,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAC5C,6BAAK,SAAS,EAAE,OAAO,CAAC,qBAAqB,IAAG,cAAc,CAAO,CACtE,CAAC,CAAC,CAAC,CACF,oBAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAE,OAAO,CAAC,YAAY,IACxD,cAAc,CACJ,CACd,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAClB,KAAK,EACL,MAAM,EACN,aAAa,GAKd;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,OAAO,CACL,6BAAK,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;QACjE,MAAM,CAAC,CAAC,CAAC,CACR,oBAAC,MAAM,mBACO,eAAe,EAC3B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,oBAAC,WAAW,OAAG,aAGnB,CACV,CAAC,CAAC,CAAC,IAAI;QACR,oBAAC,UAAU,IAAC,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,QAAQ,IACvD,GAAG,KAAK,EAAE,CACA,CACT,CACP,CAAA;AACH,CAAC;AAED,MAAM,8BAA8B,GAAG,QAAQ,CAC7C,CAAC,EACC,KAAK,GAIN,EAAE,EAAE;IACH,IAAI,KAAK,CAAC,KAAK,EAAE;QACf,OAAO,CACL,oBAAC,QAAQ;YACP,oBAAC,UAAU,IACT,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,aAAa,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,GAC9D,CACO,CACZ,CAAA;KACF;IACD,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,OAAO,CACL,oBAAC,QAAQ;YACP,oBAAC,YAAY,IAAC,cAAc,EAAE,KAAK,CAAC,OAAO,GAAI,CACtC,CACZ,CAAA;KACF;IACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QACjB,OAAO,CACL,oBAAC,QAAQ;YACP,oBAAC,cAAc,IAAC,KAAK,EAAE,KAAK,GAAI,CACvB,CACZ,CAAA;KACF;IACD,OAAO,KAAK,CAAC,YAAY,CAAA;AAC3B,CAAC,CACF,CAAA;AAED,eAAe,8BAA8B,CAAA"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { BaseLinearDisplayModel } from '../models/BaseLinearDisplayModel';
3
+ declare type Coord = [number, number];
4
+ declare const Tooltip: ({ model, clientMouseCoord, }: {
5
+ model: BaseLinearDisplayModel;
6
+ clientMouseCoord: Coord;
7
+ }) => JSX.Element | null;
8
+ export default Tooltip;
@@ -0,0 +1,64 @@
1
+ import React, { useState, useMemo } from 'react';
2
+ import { getConf } from '@jbrowse/core/configuration';
3
+ import { SanitizedHTML } from '@jbrowse/core/ui';
4
+ import { observer } from 'mobx-react';
5
+ import { Portal, alpha } from '@mui/material';
6
+ import { makeStyles } from 'tss-react/mui';
7
+ import { usePopper } from 'react-popper';
8
+ function round(value) {
9
+ return Math.round(value * 1e5) / 1e5;
10
+ }
11
+ const useStyles = makeStyles()(theme => ({
12
+ // these styles come from
13
+ // https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/Tooltip/Tooltip.js
14
+ tooltip: {
15
+ pointerEvents: 'none',
16
+ backgroundColor: alpha(theme.palette.grey[700], 0.9),
17
+ borderRadius: theme.shape.borderRadius,
18
+ color: theme.palette.common.white,
19
+ fontFamily: theme.typography.fontFamily,
20
+ padding: '4px 8px',
21
+ fontSize: theme.typography.pxToRem(12),
22
+ lineHeight: `${round(14 / 10)}em`,
23
+ maxWidth: 300,
24
+ wordWrap: 'break-word',
25
+ },
26
+ }));
27
+ const TooltipContents = React.forwardRef(({ message }, ref) => {
28
+ return (React.createElement("div", { ref: ref }, React.isValidElement(message) ? (message) : message ? (React.createElement(SanitizedHTML, { html: String(message) })) : null));
29
+ });
30
+ const Tooltip = observer(({ model, clientMouseCoord, }) => {
31
+ const { classes } = useStyles();
32
+ const { featureUnderMouse } = model;
33
+ const [width, setWidth] = useState(0);
34
+ const [popperElt, setPopperElt] = useState(null);
35
+ // must be memoized a la https://github.com/popperjs/react-popper/issues/391
36
+ const virtElement = useMemo(() => ({
37
+ getBoundingClientRect: () => {
38
+ const x = clientMouseCoord[0] + width / 2 + 20;
39
+ const y = clientMouseCoord[1];
40
+ return {
41
+ top: y,
42
+ left: x,
43
+ bottom: y,
44
+ right: x,
45
+ width: 0,
46
+ height: 0,
47
+ x,
48
+ y,
49
+ toJSON() { },
50
+ };
51
+ },
52
+ }), [clientMouseCoord, width]);
53
+ const { styles, attributes } = usePopper(virtElement, popperElt);
54
+ const contents = featureUnderMouse
55
+ ? getConf(model, 'mouseover', { feature: featureUnderMouse })
56
+ : undefined;
57
+ return featureUnderMouse && contents ? (React.createElement(Portal, null,
58
+ React.createElement("div", { ref: setPopperElt, className: classes.tooltip,
59
+ // zIndex needed to go over widget drawer
60
+ style: { ...styles.popper, zIndex: 100000 }, ...attributes.popper },
61
+ React.createElement(TooltipContents, { ref: elt => setWidth((elt === null || elt === void 0 ? void 0 : elt.getBoundingClientRect().width) || 0), message: contents })))) : null;
62
+ });
63
+ export default Tooltip;
64
+ //# sourceMappingURL=Tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../src/BaseLinearDisplay/components/Tooltip.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { baseLinearDisplayConfigSchema } from './models/baseLinearDisplayConfigSchema';
2
+ export { BaseLinearDisplay } from './models/BaseLinearDisplayModel';
3
+ export type { BlockModel } from './models/serverSideRenderedBlock';
4
+ export type { BaseLinearDisplayModel, BaseLinearDisplayStateModel, } from './models/BaseLinearDisplayModel';
5
+ export { default as BaseLinearDisplayComponent, Tooltip, } from './components/BaseLinearDisplay';
@@ -0,0 +1,4 @@
1
+ export { baseLinearDisplayConfigSchema } from './models/baseLinearDisplayConfigSchema';
2
+ export { BaseLinearDisplay } from './models/BaseLinearDisplayModel';
3
+ export { default as BaseLinearDisplayComponent, Tooltip, } from './components/BaseLinearDisplay';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/BaseLinearDisplay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAA;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAMnE,OAAO,EACL,OAAO,IAAI,0BAA0B,EACrC,OAAO,GACR,MAAM,gCAAgC,CAAA"}
@@ -0,0 +1,232 @@
1
+ import React from 'react';
2
+ import { MenuItem } from '@jbrowse/core/ui';
3
+ import { Stats } from '@jbrowse/core/data_adapters/BaseAdapter';
4
+ import { BaseBlock } from '@jbrowse/core/util/blockTypes';
5
+ import { Region } from '@jbrowse/core/util/types';
6
+ import CompositeMap from '@jbrowse/core/util/compositeMap';
7
+ import { Feature } from '@jbrowse/core/util/simpleFeature';
8
+ import { Instance } from 'mobx-state-tree';
9
+ import { ExportSvgOptions } from '../../LinearGenomeView';
10
+ export interface Layout {
11
+ minX: number;
12
+ minY: number;
13
+ maxX: number;
14
+ maxY: number;
15
+ name: string;
16
+ }
17
+ declare type LayoutRecord = [number, number, number, number];
18
+ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
19
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
20
+ type: import("mobx-state-tree").ISimpleType<string>;
21
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
22
+ } & {
23
+ height: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
24
+ blockState: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
25
+ key: import("mobx-state-tree").ISimpleType<string>;
26
+ region: import("mobx-state-tree").IModelType<{
27
+ refName: import("mobx-state-tree").ISimpleType<string>;
28
+ start: import("mobx-state-tree").ISimpleType<number>;
29
+ end: import("mobx-state-tree").ISimpleType<number>;
30
+ reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
31
+ } & {
32
+ assemblyName: import("mobx-state-tree").ISimpleType<string>;
33
+ }, {
34
+ setRefName(newRefName: string): void;
35
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
36
+ reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
37
+ isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
38
+ isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
39
+ }, {
40
+ renderInProgress: AbortController | undefined;
41
+ filled: boolean;
42
+ reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
43
+ features: Map<string, Feature> | undefined;
44
+ layout: any;
45
+ status: string;
46
+ error: unknown;
47
+ message: string | undefined;
48
+ maxHeightReached: boolean;
49
+ ReactComponent: ({ model, }: {
50
+ model: any;
51
+ }) => any;
52
+ renderProps: any;
53
+ } & {
54
+ doReload(): void;
55
+ afterAttach(): void;
56
+ setStatus(message: string): void;
57
+ setLoading(abortController: AbortController): void;
58
+ setMessage(messageText: string): void;
59
+ setRendered(props: {
60
+ reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
61
+ features: Map<string, Feature>;
62
+ layout: any;
63
+ maxHeightReached: boolean;
64
+ renderProps: any;
65
+ } | undefined): void;
66
+ setError(error: unknown): void;
67
+ reload(): void;
68
+ beforeDestroy(): void;
69
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
70
+ userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
71
+ userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
72
+ }, {
73
+ rendererTypeName: string;
74
+ error: unknown;
75
+ } & {
76
+ readonly RenderingComponent: React.FC<{
77
+ model: {
78
+ id: string;
79
+ type: string;
80
+ rpcDriverName: string | undefined;
81
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
82
+ rendererTypeName: string;
83
+ error: unknown;
84
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
85
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
86
+ type: import("mobx-state-tree").ISimpleType<string>;
87
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
88
+ }, {
89
+ rendererTypeName: string;
90
+ error: unknown;
91
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
92
+ onHorizontalScroll?: Function | undefined;
93
+ blockState?: Record<string, any> | undefined;
94
+ }>;
95
+ readonly DisplayBlurb: React.FC<{
96
+ model: {
97
+ id: string;
98
+ type: string;
99
+ rpcDriverName: string | undefined;
100
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
101
+ rendererTypeName: string;
102
+ error: unknown;
103
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
104
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
105
+ type: import("mobx-state-tree").ISimpleType<string>;
106
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
107
+ }, {
108
+ rendererTypeName: string;
109
+ error: unknown;
110
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
111
+ }> | null;
112
+ readonly adapterConfig: any;
113
+ readonly parentTrack: any;
114
+ renderProps(): any;
115
+ readonly rendererType: any;
116
+ readonly DisplayMessageComponent: React.FC<any> | undefined;
117
+ trackMenuItems(): MenuItem[];
118
+ readonly viewMenuActions: MenuItem[];
119
+ regionCannotBeRendered(): undefined; /**
120
+ * how many milliseconds to wait for the display to
121
+ * "settle" before re-rendering a block
122
+ */
123
+ } & {
124
+ setError(error?: unknown): void;
125
+ setRpcDriverName(rpcDriverName: string): void;
126
+ reload(): void;
127
+ } & {
128
+ currBpPerPx: number;
129
+ message: string;
130
+ featureIdUnderMouse: string | undefined;
131
+ contextMenuFeature: Feature | undefined;
132
+ scrollTop: number;
133
+ estimatedRegionStatsP: Promise<Stats> | undefined;
134
+ estimatedRegionStats: Stats | undefined;
135
+ } & {
136
+ readonly blockType: "dynamicBlocks" | "staticBlocks";
137
+ readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
138
+ } & {
139
+ /**
140
+ * how many milliseconds to wait for the display to
141
+ * "settle" before re-rendering a block
142
+ */
143
+ readonly renderDelay: number;
144
+ readonly TooltipComponent: React.FC<any>;
145
+ /**
146
+ * returns a string feature ID if the globally-selected object
147
+ * is probably a feature
148
+ */
149
+ readonly selectedFeatureId: string | undefined;
150
+ /**
151
+ * if a display-level message should be displayed instead of the blocks,
152
+ * make this return a react component
153
+ */
154
+ readonly DisplayMessageComponent: React.FC<any> | undefined;
155
+ } & {
156
+ /**
157
+ * a CompositeMap of `featureId -> feature obj` that
158
+ * just looks in all the block data for that feature
159
+ */
160
+ readonly features: CompositeMap<string, Feature>;
161
+ readonly featureUnderMouse: Feature | undefined;
162
+ getFeatureOverlapping(blockKey: string, x: number, y: number): any;
163
+ getFeatureByID(blockKey: string, id: string): LayoutRecord | undefined;
164
+ searchFeatureByID(id: string): LayoutRecord | undefined;
165
+ readonly currentBytesRequested: number;
166
+ readonly currentFeatureScreenDensity: number;
167
+ readonly maxFeatureScreenDensity: any;
168
+ readonly estimatedStatsReady: boolean;
169
+ readonly maxAllowableBytes: number;
170
+ } & {
171
+ setMessage(message: string): void;
172
+ afterAttach(): void;
173
+ estimateRegionsStats(regions: Region[], opts: {
174
+ headers?: Record<string, string>;
175
+ signal?: AbortSignal;
176
+ filters?: string[];
177
+ }): Promise<{}>;
178
+ setRegionStatsP(p?: Promise<Stats>): void;
179
+ setRegionStats(estimatedRegionStats?: Stats): void;
180
+ clearRegionStats(): void;
181
+ setHeight(displayHeight: number): number;
182
+ resizeHeight(distance: number): number;
183
+ setScrollTop(scrollTop: number): void;
184
+ updateStatsLimit(stats: Stats): void;
185
+ addBlock(key: string, block: BaseBlock): void;
186
+ setCurrBpPerPx(n: number): void;
187
+ deleteBlock(key: string): void;
188
+ selectFeature(feature: Feature): void;
189
+ clearFeatureSelection(): void;
190
+ setFeatureIdUnderMouse(feature: string | undefined): void;
191
+ reload(): void;
192
+ setContextMenuFeature(feature?: Feature): void;
193
+ } & {
194
+ readonly regionTooLarge: boolean;
195
+ readonly regionTooLargeReason: string;
196
+ } & {
197
+ reload(): Promise<void>;
198
+ afterAttach(): void;
199
+ } & {
200
+ regionCannotBeRenderedText(_region: Region): "" | "Force load to see features";
201
+ /**
202
+ * @param region -
203
+ * @returns falsy if the region is fine to try rendering. Otherwise,
204
+ * return a react node + string of text.
205
+ * string of text describes why it cannot be rendered
206
+ * react node allows user to force load at current setting
207
+ */
208
+ regionCannotBeRendered(_region: Region): JSX.Element | undefined;
209
+ trackMenuItems(): MenuItem[];
210
+ contextMenuItems(): {
211
+ label: string;
212
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
213
+ muiName: string;
214
+ };
215
+ onClick: () => void;
216
+ }[];
217
+ renderProps(): any;
218
+ } & {
219
+ renderSvg(opts: ExportSvgOptions & {
220
+ overrideHeight: number;
221
+ }): Promise<JSX.Element>;
222
+ }, import("mobx-state-tree")._NotCustomized, {
223
+ type: string;
224
+ height: number;
225
+ id: string;
226
+ rpcDriverName: string | undefined;
227
+ userBpPerPxLimit: number | undefined;
228
+ userByteSizeLimit: number | undefined;
229
+ }>;
230
+ export declare type BaseLinearDisplayStateModel = typeof BaseLinearDisplay;
231
+ export declare type BaseLinearDisplayModel = Instance<BaseLinearDisplayStateModel>;
232
+ export {};