@jbrowse/plugin-linear-comparative-view 2.6.1

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 (276) hide show
  1. package/LICENSE +201 -0
  2. package/dist/LGVSyntenyDisplay/configSchemaF.d.ts +52 -0
  3. package/dist/LGVSyntenyDisplay/configSchemaF.js +18 -0
  4. package/dist/LGVSyntenyDisplay/configSchemaF.js.map +1 -0
  5. package/dist/LGVSyntenyDisplay/index.d.ts +3 -0
  6. package/dist/LGVSyntenyDisplay/index.js +24 -0
  7. package/dist/LGVSyntenyDisplay/index.js.map +1 -0
  8. package/dist/LGVSyntenyDisplay/model.d.ts +380 -0
  9. package/dist/LGVSyntenyDisplay/model.js +154 -0
  10. package/dist/LGVSyntenyDisplay/model.js.map +1 -0
  11. package/dist/LaunchLinearSyntenyView.d.ts +2 -0
  12. package/dist/LaunchLinearSyntenyView.js +58 -0
  13. package/dist/LaunchLinearSyntenyView.js.map +1 -0
  14. package/dist/LinearComparativeDisplay/configSchemaF.d.ts +5 -0
  15. package/dist/LinearComparativeDisplay/configSchemaF.js +18 -0
  16. package/dist/LinearComparativeDisplay/configSchemaF.js.map +1 -0
  17. package/dist/LinearComparativeDisplay/index.d.ts +3 -0
  18. package/dist/LinearComparativeDisplay/index.js +24 -0
  19. package/dist/LinearComparativeDisplay/index.js.map +1 -0
  20. package/dist/LinearComparativeDisplay/stateModelFactory.d.ts +275 -0
  21. package/dist/LinearComparativeDisplay/stateModelFactory.js +172 -0
  22. package/dist/LinearComparativeDisplay/stateModelFactory.js.map +1 -0
  23. package/dist/LinearComparativeView/components/Header.d.ts +7 -0
  24. package/dist/LinearComparativeView/components/Header.js +89 -0
  25. package/dist/LinearComparativeView/components/Header.js.map +1 -0
  26. package/dist/LinearComparativeView/components/LinearComparativeView.d.ts +8 -0
  27. package/dist/LinearComparativeView/components/LinearComparativeView.js +99 -0
  28. package/dist/LinearComparativeView/components/LinearComparativeView.js.map +1 -0
  29. package/dist/LinearComparativeView/components/Rubberband.d.ts +9 -0
  30. package/dist/LinearComparativeView/components/Rubberband.js +225 -0
  31. package/dist/LinearComparativeView/components/Rubberband.js.map +1 -0
  32. package/dist/LinearComparativeView/index.d.ts +3 -0
  33. package/dist/LinearComparativeView/index.js +42 -0
  34. package/dist/LinearComparativeView/index.js.map +1 -0
  35. package/dist/LinearComparativeView/model.d.ts +326 -0
  36. package/dist/LinearComparativeView/model.js +346 -0
  37. package/dist/LinearComparativeView/model.js.map +1 -0
  38. package/dist/LinearReadVsRef/LinearReadVsRef.d.ts +7 -0
  39. package/dist/LinearReadVsRef/LinearReadVsRef.js +284 -0
  40. package/dist/LinearReadVsRef/LinearReadVsRef.js.map +1 -0
  41. package/dist/LinearReadVsRef/index.d.ts +2 -0
  42. package/dist/LinearReadVsRef/index.js +55 -0
  43. package/dist/LinearReadVsRef/index.js.map +1 -0
  44. package/dist/LinearSyntenyDisplay/afterAttach.d.ts +2 -0
  45. package/dist/LinearSyntenyDisplay/afterAttach.js +108 -0
  46. package/dist/LinearSyntenyDisplay/afterAttach.js.map +1 -0
  47. package/dist/LinearSyntenyDisplay/components/Component.d.ts +6 -0
  48. package/dist/LinearSyntenyDisplay/components/Component.js +87 -0
  49. package/dist/LinearSyntenyDisplay/components/Component.js.map +1 -0
  50. package/dist/LinearSyntenyDisplay/components/LinearSyntenyRendering.d.ts +6 -0
  51. package/dist/LinearSyntenyDisplay/components/LinearSyntenyRendering.js +160 -0
  52. package/dist/LinearSyntenyDisplay/components/LinearSyntenyRendering.js.map +1 -0
  53. package/dist/LinearSyntenyDisplay/components/SyntenyTooltip.d.ts +7 -0
  54. package/dist/LinearSyntenyDisplay/components/SyntenyTooltip.js +83 -0
  55. package/dist/LinearSyntenyDisplay/components/SyntenyTooltip.js.map +1 -0
  56. package/dist/LinearSyntenyDisplay/components/util.d.ts +27 -0
  57. package/dist/LinearSyntenyDisplay/components/util.js +84 -0
  58. package/dist/LinearSyntenyDisplay/components/util.js.map +1 -0
  59. package/dist/LinearSyntenyDisplay/configSchemaF.d.ts +23 -0
  60. package/dist/LinearSyntenyDisplay/configSchemaF.js +36 -0
  61. package/dist/LinearSyntenyDisplay/configSchemaF.js.map +1 -0
  62. package/dist/LinearSyntenyDisplay/drawSynteny.d.ts +5 -0
  63. package/dist/LinearSyntenyDisplay/drawSynteny.js +235 -0
  64. package/dist/LinearSyntenyDisplay/drawSynteny.js.map +1 -0
  65. package/dist/LinearSyntenyDisplay/index.d.ts +3 -0
  66. package/dist/LinearSyntenyDisplay/index.js +47 -0
  67. package/dist/LinearSyntenyDisplay/index.js.map +1 -0
  68. package/dist/LinearSyntenyDisplay/model.d.ts +333 -0
  69. package/dist/LinearSyntenyDisplay/model.js +179 -0
  70. package/dist/LinearSyntenyDisplay/model.js.map +1 -0
  71. package/dist/LinearSyntenyView/components/ExportSvgDialog.d.ts +8 -0
  72. package/dist/LinearSyntenyView/components/ExportSvgDialog.js +86 -0
  73. package/dist/LinearSyntenyView/components/ExportSvgDialog.js.map +1 -0
  74. package/dist/LinearSyntenyView/components/Icons.d.ts +4 -0
  75. package/dist/LinearSyntenyView/components/Icons.js +19 -0
  76. package/dist/LinearSyntenyView/components/Icons.js.map +1 -0
  77. package/dist/LinearSyntenyView/components/ImportCustomTrack.d.ts +11 -0
  78. package/dist/LinearSyntenyView/components/ImportCustomTrack.js +180 -0
  79. package/dist/LinearSyntenyView/components/ImportCustomTrack.js.map +1 -0
  80. package/dist/LinearSyntenyView/components/ImportForm.d.ts +6 -0
  81. package/dist/LinearSyntenyView/components/ImportForm.js +127 -0
  82. package/dist/LinearSyntenyView/components/ImportForm.js.map +1 -0
  83. package/dist/LinearSyntenyView/components/ImportSyntenyTrackSelector.d.ts +9 -0
  84. package/dist/LinearSyntenyView/components/ImportSyntenyTrackSelector.js +63 -0
  85. package/dist/LinearSyntenyView/components/ImportSyntenyTrackSelector.js.map +1 -0
  86. package/dist/LinearSyntenyView/components/LinearSyntenyView.d.ts +7 -0
  87. package/dist/LinearSyntenyView/components/LinearSyntenyView.js +38 -0
  88. package/dist/LinearSyntenyView/components/LinearSyntenyView.js.map +1 -0
  89. package/dist/LinearSyntenyView/index.d.ts +3 -0
  90. package/dist/LinearSyntenyView/index.js +42 -0
  91. package/dist/LinearSyntenyView/index.js.map +1 -0
  92. package/dist/LinearSyntenyView/model.d.ts +754 -0
  93. package/dist/LinearSyntenyView/model.js +170 -0
  94. package/dist/LinearSyntenyView/model.js.map +1 -0
  95. package/dist/LinearSyntenyView/svgcomponents/SVGBackground.d.ts +6 -0
  96. package/dist/LinearSyntenyView/svgcomponents/SVGBackground.js +13 -0
  97. package/dist/LinearSyntenyView/svgcomponents/SVGBackground.js.map +1 -0
  98. package/dist/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.d.ts +4 -0
  99. package/dist/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.js +85 -0
  100. package/dist/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.js.map +1 -0
  101. package/dist/SyntenyFeatureDetail/SyntenyFeatureDetail.d.ts +5 -0
  102. package/dist/SyntenyFeatureDetail/SyntenyFeatureDetail.js +66 -0
  103. package/dist/SyntenyFeatureDetail/SyntenyFeatureDetail.js.map +1 -0
  104. package/dist/SyntenyFeatureDetail/index.d.ts +3 -0
  105. package/dist/SyntenyFeatureDetail/index.js +58 -0
  106. package/dist/SyntenyFeatureDetail/index.js.map +1 -0
  107. package/dist/SyntenyTrack/configSchema.d.ts +75 -0
  108. package/dist/SyntenyTrack/configSchema.js +16 -0
  109. package/dist/SyntenyTrack/configSchema.js.map +1 -0
  110. package/dist/SyntenyTrack/index.d.ts +3 -0
  111. package/dist/SyntenyTrack/index.js +19 -0
  112. package/dist/SyntenyTrack/index.js.map +1 -0
  113. package/dist/index.d.ts +7 -0
  114. package/dist/index.js +47 -0
  115. package/dist/index.js.map +1 -0
  116. package/dist/util.d.ts +25 -0
  117. package/dist/util.js +77 -0
  118. package/dist/util.js.map +1 -0
  119. package/esm/LGVSyntenyDisplay/configSchemaF.d.ts +52 -0
  120. package/esm/LGVSyntenyDisplay/configSchemaF.js +16 -0
  121. package/esm/LGVSyntenyDisplay/configSchemaF.js.map +1 -0
  122. package/esm/LGVSyntenyDisplay/index.d.ts +3 -0
  123. package/esm/LGVSyntenyDisplay/index.js +19 -0
  124. package/esm/LGVSyntenyDisplay/index.js.map +1 -0
  125. package/esm/LGVSyntenyDisplay/model.d.ts +380 -0
  126. package/esm/LGVSyntenyDisplay/model.js +152 -0
  127. package/esm/LGVSyntenyDisplay/model.js.map +1 -0
  128. package/esm/LaunchLinearSyntenyView.d.ts +2 -0
  129. package/esm/LaunchLinearSyntenyView.js +55 -0
  130. package/esm/LaunchLinearSyntenyView.js.map +1 -0
  131. package/esm/LinearComparativeDisplay/configSchemaF.d.ts +5 -0
  132. package/esm/LinearComparativeDisplay/configSchemaF.js +16 -0
  133. package/esm/LinearComparativeDisplay/configSchemaF.js.map +1 -0
  134. package/esm/LinearComparativeDisplay/index.d.ts +3 -0
  135. package/esm/LinearComparativeDisplay/index.js +19 -0
  136. package/esm/LinearComparativeDisplay/index.js.map +1 -0
  137. package/esm/LinearComparativeDisplay/stateModelFactory.d.ts +275 -0
  138. package/esm/LinearComparativeDisplay/stateModelFactory.js +170 -0
  139. package/esm/LinearComparativeDisplay/stateModelFactory.js.map +1 -0
  140. package/esm/LinearComparativeView/components/Header.d.ts +7 -0
  141. package/esm/LinearComparativeView/components/Header.js +61 -0
  142. package/esm/LinearComparativeView/components/Header.js.map +1 -0
  143. package/esm/LinearComparativeView/components/LinearComparativeView.d.ts +8 -0
  144. package/esm/LinearComparativeView/components/LinearComparativeView.js +94 -0
  145. package/esm/LinearComparativeView/components/LinearComparativeView.js.map +1 -0
  146. package/esm/LinearComparativeView/components/Rubberband.d.ts +9 -0
  147. package/esm/LinearComparativeView/components/Rubberband.js +200 -0
  148. package/esm/LinearComparativeView/components/Rubberband.js.map +1 -0
  149. package/esm/LinearComparativeView/index.d.ts +3 -0
  150. package/esm/LinearComparativeView/index.js +14 -0
  151. package/esm/LinearComparativeView/index.js.map +1 -0
  152. package/esm/LinearComparativeView/model.d.ts +326 -0
  153. package/esm/LinearComparativeView/model.js +318 -0
  154. package/esm/LinearComparativeView/model.js.map +1 -0
  155. package/esm/LinearReadVsRef/LinearReadVsRef.d.ts +7 -0
  156. package/esm/LinearReadVsRef/LinearReadVsRef.js +258 -0
  157. package/esm/LinearReadVsRef/LinearReadVsRef.js.map +1 -0
  158. package/esm/LinearReadVsRef/index.d.ts +2 -0
  159. package/esm/LinearReadVsRef/index.js +49 -0
  160. package/esm/LinearReadVsRef/index.js.map +1 -0
  161. package/esm/LinearSyntenyDisplay/afterAttach.d.ts +2 -0
  162. package/esm/LinearSyntenyDisplay/afterAttach.js +104 -0
  163. package/esm/LinearSyntenyDisplay/afterAttach.js.map +1 -0
  164. package/esm/LinearSyntenyDisplay/components/Component.d.ts +6 -0
  165. package/esm/LinearSyntenyDisplay/components/Component.js +59 -0
  166. package/esm/LinearSyntenyDisplay/components/Component.js.map +1 -0
  167. package/esm/LinearSyntenyDisplay/components/LinearSyntenyRendering.d.ts +6 -0
  168. package/esm/LinearSyntenyDisplay/components/LinearSyntenyRendering.js +132 -0
  169. package/esm/LinearSyntenyDisplay/components/LinearSyntenyRendering.js.map +1 -0
  170. package/esm/LinearSyntenyDisplay/components/SyntenyTooltip.d.ts +7 -0
  171. package/esm/LinearSyntenyDisplay/components/SyntenyTooltip.js +58 -0
  172. package/esm/LinearSyntenyDisplay/components/SyntenyTooltip.js.map +1 -0
  173. package/esm/LinearSyntenyDisplay/components/util.d.ts +27 -0
  174. package/esm/LinearSyntenyDisplay/components/util.js +77 -0
  175. package/esm/LinearSyntenyDisplay/components/util.js.map +1 -0
  176. package/esm/LinearSyntenyDisplay/configSchemaF.d.ts +23 -0
  177. package/esm/LinearSyntenyDisplay/configSchemaF.js +31 -0
  178. package/esm/LinearSyntenyDisplay/configSchemaF.js.map +1 -0
  179. package/esm/LinearSyntenyDisplay/drawSynteny.d.ts +5 -0
  180. package/esm/LinearSyntenyDisplay/drawSynteny.js +229 -0
  181. package/esm/LinearSyntenyDisplay/drawSynteny.js.map +1 -0
  182. package/esm/LinearSyntenyDisplay/index.d.ts +3 -0
  183. package/esm/LinearSyntenyDisplay/index.js +19 -0
  184. package/esm/LinearSyntenyDisplay/index.js.map +1 -0
  185. package/esm/LinearSyntenyDisplay/model.d.ts +333 -0
  186. package/esm/LinearSyntenyDisplay/model.js +151 -0
  187. package/esm/LinearSyntenyDisplay/model.js.map +1 -0
  188. package/esm/LinearSyntenyView/components/ExportSvgDialog.d.ts +8 -0
  189. package/esm/LinearSyntenyView/components/ExportSvgDialog.js +60 -0
  190. package/esm/LinearSyntenyView/components/ExportSvgDialog.js.map +1 -0
  191. package/esm/LinearSyntenyView/components/Icons.d.ts +4 -0
  192. package/esm/LinearSyntenyView/components/Icons.js +11 -0
  193. package/esm/LinearSyntenyView/components/Icons.js.map +1 -0
  194. package/esm/LinearSyntenyView/components/ImportCustomTrack.d.ts +11 -0
  195. package/esm/LinearSyntenyView/components/ImportCustomTrack.js +152 -0
  196. package/esm/LinearSyntenyView/components/ImportCustomTrack.js.map +1 -0
  197. package/esm/LinearSyntenyView/components/ImportForm.d.ts +6 -0
  198. package/esm/LinearSyntenyView/components/ImportForm.js +99 -0
  199. package/esm/LinearSyntenyView/components/ImportForm.js.map +1 -0
  200. package/esm/LinearSyntenyView/components/ImportSyntenyTrackSelector.d.ts +9 -0
  201. package/esm/LinearSyntenyView/components/ImportSyntenyTrackSelector.js +38 -0
  202. package/esm/LinearSyntenyView/components/ImportSyntenyTrackSelector.js.map +1 -0
  203. package/esm/LinearSyntenyView/components/LinearSyntenyView.d.ts +7 -0
  204. package/esm/LinearSyntenyView/components/LinearSyntenyView.js +10 -0
  205. package/esm/LinearSyntenyView/components/LinearSyntenyView.js.map +1 -0
  206. package/esm/LinearSyntenyView/index.d.ts +3 -0
  207. package/esm/LinearSyntenyView/index.js +14 -0
  208. package/esm/LinearSyntenyView/index.js.map +1 -0
  209. package/esm/LinearSyntenyView/model.d.ts +754 -0
  210. package/esm/LinearSyntenyView/model.js +141 -0
  211. package/esm/LinearSyntenyView/model.js.map +1 -0
  212. package/esm/LinearSyntenyView/svgcomponents/SVGBackground.d.ts +6 -0
  213. package/esm/LinearSyntenyView/svgcomponents/SVGBackground.js +7 -0
  214. package/esm/LinearSyntenyView/svgcomponents/SVGBackground.js.map +1 -0
  215. package/esm/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.d.ts +4 -0
  216. package/esm/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.js +78 -0
  217. package/esm/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.js.map +1 -0
  218. package/esm/SyntenyFeatureDetail/SyntenyFeatureDetail.d.ts +5 -0
  219. package/esm/SyntenyFeatureDetail/SyntenyFeatureDetail.js +38 -0
  220. package/esm/SyntenyFeatureDetail/SyntenyFeatureDetail.js.map +1 -0
  221. package/esm/SyntenyFeatureDetail/index.d.ts +3 -0
  222. package/esm/SyntenyFeatureDetail/index.js +30 -0
  223. package/esm/SyntenyFeatureDetail/index.js.map +1 -0
  224. package/esm/SyntenyTrack/configSchema.d.ts +75 -0
  225. package/esm/SyntenyTrack/configSchema.js +14 -0
  226. package/esm/SyntenyTrack/configSchema.js.map +1 -0
  227. package/esm/SyntenyTrack/index.d.ts +3 -0
  228. package/esm/SyntenyTrack/index.js +14 -0
  229. package/esm/SyntenyTrack/index.js.map +1 -0
  230. package/esm/index.d.ts +7 -0
  231. package/esm/index.js +41 -0
  232. package/esm/index.js.map +1 -0
  233. package/esm/util.d.ts +25 -0
  234. package/esm/util.js +69 -0
  235. package/esm/util.js.map +1 -0
  236. package/package.json +67 -0
  237. package/src/LGVSyntenyDisplay/configSchemaF.ts +22 -0
  238. package/src/LGVSyntenyDisplay/index.ts +20 -0
  239. package/src/LGVSyntenyDisplay/model.ts +177 -0
  240. package/src/LaunchLinearSyntenyView.ts +86 -0
  241. package/src/LinearComparativeDisplay/configSchemaF.ts +22 -0
  242. package/src/LinearComparativeDisplay/index.ts +21 -0
  243. package/src/LinearComparativeDisplay/stateModelFactory.ts +212 -0
  244. package/src/LinearComparativeView/components/Header.tsx +103 -0
  245. package/src/LinearComparativeView/components/LinearComparativeView.tsx +152 -0
  246. package/src/LinearComparativeView/components/Rubberband.tsx +329 -0
  247. package/src/LinearComparativeView/index.ts +15 -0
  248. package/src/LinearComparativeView/model.ts +395 -0
  249. package/src/LinearReadVsRef/LinearReadVsRef.tsx +360 -0
  250. package/src/LinearReadVsRef/index.ts +58 -0
  251. package/src/LinearSyntenyDisplay/afterAttach.ts +149 -0
  252. package/src/LinearSyntenyDisplay/components/Component.tsx +75 -0
  253. package/src/LinearSyntenyDisplay/components/LinearSyntenyRendering.tsx +200 -0
  254. package/src/LinearSyntenyDisplay/components/SyntenyTooltip.tsx +82 -0
  255. package/src/LinearSyntenyDisplay/components/util.ts +142 -0
  256. package/src/LinearSyntenyDisplay/configSchemaF.ts +38 -0
  257. package/src/LinearSyntenyDisplay/drawSynteny.ts +266 -0
  258. package/src/LinearSyntenyDisplay/index.ts +21 -0
  259. package/src/LinearSyntenyDisplay/model.ts +187 -0
  260. package/src/LinearSyntenyView/components/ExportSvgDialog.tsx +148 -0
  261. package/src/LinearSyntenyView/components/Icons.tsx +24 -0
  262. package/src/LinearSyntenyView/components/ImportCustomTrack.tsx +262 -0
  263. package/src/LinearSyntenyView/components/ImportForm.tsx +221 -0
  264. package/src/LinearSyntenyView/components/ImportSyntenyTrackSelector.tsx +82 -0
  265. package/src/LinearSyntenyView/components/LinearSyntenyView.tsx +20 -0
  266. package/src/LinearSyntenyView/index.ts +15 -0
  267. package/src/LinearSyntenyView/model.test.ts +1605 -0
  268. package/src/LinearSyntenyView/model.ts +169 -0
  269. package/src/LinearSyntenyView/svgcomponents/SVGBackground.tsx +21 -0
  270. package/src/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.tsx +176 -0
  271. package/src/SyntenyFeatureDetail/SyntenyFeatureDetail.tsx +64 -0
  272. package/src/SyntenyFeatureDetail/index.ts +36 -0
  273. package/src/SyntenyTrack/configSchema.ts +23 -0
  274. package/src/SyntenyTrack/index.tsx +15 -0
  275. package/src/index.tsx +42 -0
  276. package/src/util.ts +124 -0
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { Feature } from '@jbrowse/core/util';
3
+ export default function ReadVsRefDialog({ track, feature: preFeature, handleClose, }: {
4
+ feature: Feature;
5
+ handleClose: () => void;
6
+ track: any;
7
+ }): React.JSX.Element;
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const react_1 = __importStar(require("react"));
27
+ const material_1 = require("@mui/material");
28
+ const ui_1 = require("@jbrowse/core/ui");
29
+ const mui_1 = require("tss-react/mui");
30
+ const configuration_1 = require("@jbrowse/core/configuration");
31
+ const tracks_1 = require("@jbrowse/core/util/tracks");
32
+ const util_1 = require("@jbrowse/core/util");
33
+ // locals
34
+ const plugin_alignments_1 = require("@jbrowse/plugin-alignments");
35
+ const { featurizeSA, getClip, getLength, getLengthSansClipping, getTag } = plugin_alignments_1.MismatchParser;
36
+ const useStyles = (0, mui_1.makeStyles)()({
37
+ root: {
38
+ width: 300,
39
+ },
40
+ });
41
+ function ReadVsRefDialog({ track, feature: preFeature, handleClose, }) {
42
+ const { classes } = useStyles();
43
+ // window size stored as string, because it corresponds to a textfield which
44
+ // is parsed as number on submit
45
+ const [windowSizeText, setWindowSize] = (0, react_1.useState)('0');
46
+ const [error, setError] = (0, react_1.useState)();
47
+ const [primaryFeature, setPrimaryFeature] = (0, react_1.useState)();
48
+ const windowSize = +windowSizeText;
49
+ // we need to fetch the primary alignment if the selected feature is 2048.
50
+ // this should be the first in the list of the SA tag
51
+ (0, react_1.useEffect)(() => {
52
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
53
+ ;
54
+ (async () => {
55
+ setError(undefined);
56
+ try {
57
+ if (preFeature.get('flags') & 2048) {
58
+ const SA = getTag(preFeature, 'SA') || '';
59
+ const primaryAln = SA.split(';')[0];
60
+ const [saRef, saStart] = primaryAln.split(',');
61
+ const { rpcManager } = (0, util_1.getSession)(track);
62
+ const adapterConfig = (0, configuration_1.getConf)(track, 'adapter');
63
+ const sessionId = (0, tracks_1.getRpcSessionId)(track);
64
+ const feats = (await rpcManager.call(sessionId, 'CoreGetFeatures', {
65
+ adapterConfig,
66
+ sessionId,
67
+ regions: [
68
+ {
69
+ refName: saRef,
70
+ start: +saStart - 1,
71
+ end: +saStart,
72
+ },
73
+ ],
74
+ }));
75
+ const result = feats.find(f => f.get('name') === preFeature.get('name') &&
76
+ !(f.get('flags') & 2048) &&
77
+ !(f.get('flags') & 256));
78
+ if (result) {
79
+ setPrimaryFeature(result);
80
+ }
81
+ else {
82
+ throw new Error('primary feature not found');
83
+ }
84
+ }
85
+ else {
86
+ setPrimaryFeature(preFeature);
87
+ }
88
+ }
89
+ catch (e) {
90
+ console.error(e);
91
+ setError(e);
92
+ }
93
+ })();
94
+ }, [preFeature, track]);
95
+ function onSubmit() {
96
+ try {
97
+ if (!primaryFeature) {
98
+ return;
99
+ }
100
+ const feature = primaryFeature;
101
+ const session = (0, util_1.getSession)(track);
102
+ const view = (0, util_1.getContainingView)(track);
103
+ const cigar = feature.get('CIGAR');
104
+ const flags = feature.get('flags');
105
+ const origStrand = feature.get('strand');
106
+ const SA = getTag(feature, 'SA') || '';
107
+ const readName = feature.get('name');
108
+ const clipPos = getClip(cigar, 1);
109
+ const readAssembly = `${readName}_assembly_${Date.now()}`;
110
+ const [trackAssembly] = (0, configuration_1.getConf)(track, 'assemblyNames');
111
+ const assemblyNames = [trackAssembly, readAssembly];
112
+ const trackId = `track-${Date.now()}`;
113
+ const trackName = `${readName}_vs_${trackAssembly}`;
114
+ // get the canonical refname for the read because if the
115
+ // read.get('refName') is chr1 and the actual fasta refName is 1 then no
116
+ // tracks can be opened on the top panel of the linear read vs ref
117
+ const { assemblyManager } = session;
118
+ const assembly = assemblyManager.get(trackAssembly);
119
+ if (!assembly) {
120
+ throw new Error('assembly not found');
121
+ }
122
+ const suppAlns = featurizeSA(SA, feature.id(), origStrand, readName, true);
123
+ const feat = feature.toJSON();
124
+ feat.clipPos = clipPos;
125
+ feat.strand = 1;
126
+ feat.mate = {
127
+ refName: readName,
128
+ start: clipPos,
129
+ end: clipPos + getLengthSansClipping(cigar),
130
+ };
131
+ // if secondary alignment or supplementary, calculate length from SA[0]'s
132
+ // CIGAR which is the primary alignments. otherwise it is the primary
133
+ // alignment just use seq.length if primary alignment
134
+ const totalLength = flags & 2048 ? getLength(suppAlns[0].CIGAR) : getLength(cigar);
135
+ const features = [feat, ...suppAlns];
136
+ features.forEach((f, idx) => {
137
+ f.refName = (assembly === null || assembly === void 0 ? void 0 : assembly.getCanonicalRefName(f.refName)) || f.refName;
138
+ f.syntenyId = idx;
139
+ f.mate.syntenyId = idx;
140
+ f.mate.uniqueId = `${f.uniqueId}_mate`;
141
+ });
142
+ features.sort((a, b) => a.clipPos - b.clipPos);
143
+ const featSeq = feature.get('seq');
144
+ // the config feature store includes synthetic mate features
145
+ // mapped to the read assembly
146
+ const configFeatureStore = [...features, ...features.map(f => f.mate)];
147
+ const expand = 2 * windowSize;
148
+ const refLen = features.reduce((a, f) => a + f.end - f.start + expand, 0);
149
+ const seqTrackId = `${readName}_${Date.now()}`;
150
+ const sequenceTrackConf = (0, configuration_1.getConf)(assembly, 'sequence');
151
+ const lgvRegions = (0, util_1.gatherOverlaps)(features.map(f => ({
152
+ ...f,
153
+ start: Math.max(0, f.start - windowSize),
154
+ end: f.end + windowSize,
155
+ assemblyName: trackAssembly,
156
+ })));
157
+ session.addTemporaryAssembly({
158
+ name: `${readAssembly}`,
159
+ sequence: {
160
+ type: 'ReferenceSequenceTrack',
161
+ name: `Read sequence`,
162
+ trackId: seqTrackId,
163
+ assemblyNames: [readAssembly],
164
+ adapter: {
165
+ type: 'FromConfigSequenceAdapter',
166
+ noAssemblyManager: true,
167
+ features: [
168
+ {
169
+ start: 0,
170
+ end: totalLength,
171
+ seq: featSeq || '',
172
+ refName: readName,
173
+ uniqueId: `${Math.random()}`,
174
+ },
175
+ ],
176
+ },
177
+ },
178
+ });
179
+ session.addView('LinearSyntenyView', {
180
+ type: 'LinearSyntenyView',
181
+ views: [
182
+ {
183
+ type: 'LinearGenomeView',
184
+ hideHeader: true,
185
+ offsetPx: 0,
186
+ bpPerPx: refLen / view.width,
187
+ displayedRegions: lgvRegions,
188
+ tracks: [
189
+ {
190
+ id: `${Math.random()}`,
191
+ type: 'ReferenceSequenceTrack',
192
+ assemblyNames: [trackAssembly],
193
+ configuration: sequenceTrackConf.trackId,
194
+ displays: [
195
+ {
196
+ id: `${Math.random()}`,
197
+ type: 'LinearReferenceSequenceDisplay',
198
+ showReverse: true,
199
+ showTranslation: false,
200
+ height: 35,
201
+ configuration: `${seqTrackId}-LinearReferenceSequenceDisplay`,
202
+ },
203
+ ],
204
+ },
205
+ ],
206
+ },
207
+ {
208
+ type: 'LinearGenomeView',
209
+ hideHeader: true,
210
+ offsetPx: 0,
211
+ bpPerPx: totalLength / view.width,
212
+ displayedRegions: [
213
+ {
214
+ assemblyName: readAssembly,
215
+ start: 0,
216
+ end: totalLength,
217
+ refName: readName,
218
+ },
219
+ ],
220
+ tracks: [
221
+ {
222
+ id: `${Math.random()}`,
223
+ type: 'ReferenceSequenceTrack',
224
+ configuration: seqTrackId,
225
+ displays: [
226
+ {
227
+ id: `${Math.random()}`,
228
+ type: 'LinearReferenceSequenceDisplay',
229
+ showReverse: true,
230
+ showTranslation: false,
231
+ height: 35,
232
+ configuration: `${seqTrackId}-LinearReferenceSequenceDisplay`,
233
+ },
234
+ ],
235
+ },
236
+ ],
237
+ },
238
+ ],
239
+ viewTrackConfigs: [
240
+ {
241
+ type: 'SyntenyTrack',
242
+ assemblyNames,
243
+ adapter: {
244
+ type: 'FromConfigAdapter',
245
+ features: configFeatureStore,
246
+ },
247
+ trackId,
248
+ name: trackName,
249
+ },
250
+ ],
251
+ tracks: [
252
+ {
253
+ configuration: trackId,
254
+ type: 'SyntenyTrack',
255
+ displays: [
256
+ {
257
+ type: 'LinearSyntenyDisplay',
258
+ configuration: `${trackId}-LinearSyntenyDisplay`,
259
+ },
260
+ ],
261
+ },
262
+ ],
263
+ displayName: `${readName} vs ${trackAssembly}`,
264
+ });
265
+ handleClose();
266
+ }
267
+ catch (e) {
268
+ console.error(e);
269
+ setError(e);
270
+ }
271
+ }
272
+ return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose: handleClose, title: "Set window size" },
273
+ react_1.default.createElement(material_1.DialogContent, null, error ? (react_1.default.createElement(material_1.Typography, { color: "error" }, `${error}`)) : !primaryFeature ? (react_1.default.createElement("div", null,
274
+ react_1.default.createElement(material_1.Typography, null, "To accurately perform comparison we are fetching the primary alignment. Loading primary feature..."),
275
+ react_1.default.createElement(material_1.CircularProgress, null))) : (react_1.default.createElement("div", { className: classes.root },
276
+ primaryFeature.get('flags') & 256 ? (react_1.default.createElement(material_1.Typography, { style: { color: 'orange' } }, "Note: You selected a secondary alignment (which generally does not have SA tags or SEQ fields) so do a full reconstruction of the alignment")) : null,
277
+ react_1.default.createElement(material_1.Typography, null, "Show an extra window size around each part of the split alignment. Using a larger value can allow you to see more genomic context."),
278
+ react_1.default.createElement(material_1.TextField, { value: windowSize, onChange: event => setWindowSize(event.target.value), label: "Set window size" })))),
279
+ react_1.default.createElement(material_1.DialogActions, null,
280
+ react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: handleClose }, "Cancel"),
281
+ react_1.default.createElement(material_1.Button, { disabled: !primaryFeature, variant: "contained", color: "primary", onClick: onSubmit }, "Submit"))));
282
+ }
283
+ exports.default = ReadVsRefDialog;
284
+ //# sourceMappingURL=LinearReadVsRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinearReadVsRef.js","sourceRoot":"","sources":["../../src/LinearReadVsRef/LinearReadVsRef.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ export default function (pm: PluginManager): void;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const util_1 = require("@jbrowse/core/util");
7
+ // icons
8
+ const Add_1 = __importDefault(require("@mui/icons-material/Add"));
9
+ // locals
10
+ const LinearReadVsRef_1 = __importDefault(require("./LinearReadVsRef"));
11
+ function isDisplay(elt) {
12
+ return elt.name === 'LinearPileupDisplay';
13
+ }
14
+ function default_1(pm) {
15
+ pm.addToExtensionPoint('Core-extendPluggableElement', (pluggableElement) => {
16
+ if (!isDisplay(pluggableElement)) {
17
+ return pluggableElement;
18
+ }
19
+ pluggableElement.stateModel = pluggableElement.stateModel.extend(self => {
20
+ const superContextMenuItems = self.contextMenuItems;
21
+ return {
22
+ views: {
23
+ contextMenuItems() {
24
+ const feature = self.contextMenuFeature;
25
+ const track = (0, util_1.getContainingTrack)(self);
26
+ return [
27
+ ...superContextMenuItems(),
28
+ ...(feature
29
+ ? [
30
+ {
31
+ label: 'Linear read vs ref',
32
+ icon: Add_1.default,
33
+ onClick: () => {
34
+ (0, util_1.getSession)(self).queueDialog(handleClose => [
35
+ LinearReadVsRef_1.default,
36
+ {
37
+ track,
38
+ feature,
39
+ handleClose,
40
+ },
41
+ ]);
42
+ },
43
+ },
44
+ ]
45
+ : []),
46
+ ];
47
+ },
48
+ },
49
+ };
50
+ });
51
+ return pluggableElement;
52
+ });
53
+ }
54
+ exports.default = default_1;
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/LinearReadVsRef/index.ts"],"names":[],"mappings":";;;;;AAGA,6CAAmE;AAEnE,QAAQ;AACR,kEAA6C;AAE7C,SAAS;AACT,wEAA+C;AAE/C,SAAS,SAAS,CAAC,GAAqB;IACtC,OAAO,GAAG,CAAC,IAAI,KAAK,qBAAqB,CAAA;AAC3C,CAAC;AAED,mBAAyB,EAAiB;IACxC,EAAE,CAAC,mBAAmB,CACpB,6BAA6B,EAC7B,CAAC,gBAAsC,EAAE,EAAE;QACzC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;YAChC,OAAO,gBAAgB,CAAA;SACxB;QACD,gBAAgB,CAAC,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACtE,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAA;YACnD,OAAO;gBACL,KAAK,EAAE;oBACL,gBAAgB;wBACd,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAA;wBACvC,MAAM,KAAK,GAAG,IAAA,yBAAkB,EAAC,IAAI,CAAC,CAAA;wBACtC,OAAO;4BACL,GAAG,qBAAqB,EAAE;4BAC1B,GAAG,CAAC,OAAO;gCACT,CAAC,CAAC;oCACE;wCACE,KAAK,EAAE,oBAAoB;wCAC3B,IAAI,EAAE,aAAO;wCACb,OAAO,EAAE,GAAG,EAAE;4CACZ,IAAA,iBAAU,EAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gDAC1C,yBAAe;gDACf;oDACE,KAAK;oDACL,OAAO;oDACP,WAAW;iDACZ;6CACF,CAAC,CAAA;wCACJ,CAAC;qCACF;iCACF;gCACH,CAAC,CAAC,EAAE,CAAC;yBACR,CAAA;oBACH,CAAC;iBACF;aACF,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO,gBAAgB,CAAA;IACzB,CAAC,CACF,CAAA;AACH,CAAC;AA1CD,4BA0CC"}
@@ -0,0 +1,2 @@
1
+ import { LinearSyntenyDisplayModel } from './model';
2
+ export declare function doAfterAttach(self: LinearSyntenyDisplayModel): void;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.doAfterAttach = void 0;
4
+ const mobx_state_tree_1 = require("mobx-state-tree");
5
+ const util_1 = require("@jbrowse/core/util");
6
+ const Base1DUtils_1 = require("@jbrowse/core/util/Base1DUtils");
7
+ const plugin_alignments_1 = require("@jbrowse/plugin-alignments");
8
+ const mobx_1 = require("mobx");
9
+ const drawSynteny_1 = require("./drawSynteny");
10
+ function doAfterAttach(self) {
11
+ (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(() => {
12
+ var _a, _b;
13
+ const view = (0, util_1.getContainingView)(self);
14
+ if (!view.initialized) {
15
+ return;
16
+ }
17
+ const ctx1 = (_a = self.mainCanvas) === null || _a === void 0 ? void 0 : _a.getContext('2d');
18
+ const ctx3 = (_b = self.cigarClickMapCanvas) === null || _b === void 0 ? void 0 : _b.getContext('2d');
19
+ if (!ctx1 || !ctx3) {
20
+ return;
21
+ }
22
+ const height = view.middleComparativeHeight;
23
+ const width = view.width;
24
+ ctx1.clearRect(0, 0, width, height);
25
+ ctx3.clearRect(0, 0, width, height);
26
+ (0, drawSynteny_1.drawRef)(self, ctx1, ctx3);
27
+ }));
28
+ (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(() => {
29
+ const view = (0, util_1.getContainingView)(self);
30
+ if (!view.initialized) {
31
+ return;
32
+ }
33
+ (0, drawSynteny_1.drawMouseoverSynteny)(self);
34
+ }));
35
+ // this attempts to reduce recalculation of feature positions drawn by
36
+ // the synteny view
37
+ //
38
+ // uses a reaction to say "we know the positions don't change in any
39
+ // relevant way unless bpPerPx changes or displayedRegions changes"
40
+ (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.reaction)(() => {
41
+ const view = (0, util_1.getContainingView)(self);
42
+ return {
43
+ bpPerPx: view.views.map(v => v.bpPerPx),
44
+ // stringifying 'deeply' accesses the displayed regions, see
45
+ // issue #3456
46
+ displayedRegions: JSON.stringify(view.views.map(v => v.displayedRegions)),
47
+ features: self.features,
48
+ initialized: view.initialized,
49
+ };
50
+ }, ({ initialized }) => {
51
+ if (!initialized) {
52
+ return;
53
+ }
54
+ const { assemblyManager } = (0, util_1.getSession)(self);
55
+ const view = (0, util_1.getContainingView)(self);
56
+ const viewSnaps = view.views.map(view => ({
57
+ ...(0, mobx_state_tree_1.getSnapshot)(view),
58
+ width: view.width,
59
+ staticBlocks: view.staticBlocks,
60
+ interRegionPaddingWidth: view.interRegionPaddingWidth,
61
+ minimumBlockWidth: view.minimumBlockWidth,
62
+ }));
63
+ const map = [];
64
+ const feats = self.features || [];
65
+ for (let i = 0; i < feats.length; i++) {
66
+ const f = feats[i];
67
+ const mate = f.get('mate');
68
+ let f1s = f.get('start');
69
+ let f1e = f.get('end');
70
+ const f2s = mate.start;
71
+ const f2e = mate.end;
72
+ if (f.get('strand') === -1) {
73
+ ;
74
+ [f1e, f1s] = [f1s, f1e];
75
+ }
76
+ const a1 = assemblyManager === null || assemblyManager === void 0 ? void 0 : assemblyManager.get(f.get('assemblyName'));
77
+ const a2 = assemblyManager === null || assemblyManager === void 0 ? void 0 : assemblyManager.get(mate.assemblyName);
78
+ const r1 = f.get('refName');
79
+ const r2 = mate.refName;
80
+ const ref1 = (a1 === null || a1 === void 0 ? void 0 : a1.getCanonicalRefName(r1)) || r1;
81
+ const ref2 = (a2 === null || a2 === void 0 ? void 0 : a2.getCanonicalRefName(r2)) || r2;
82
+ const v1 = viewSnaps[0];
83
+ const v2 = viewSnaps[1];
84
+ const p11 = (0, Base1DUtils_1.bpToPx)({ self: v1, refName: ref1, coord: f1s });
85
+ const p12 = (0, Base1DUtils_1.bpToPx)({ self: v1, refName: ref1, coord: f1e });
86
+ const p21 = (0, Base1DUtils_1.bpToPx)({ self: v2, refName: ref2, coord: f2s });
87
+ const p22 = (0, Base1DUtils_1.bpToPx)({ self: v2, refName: ref2, coord: f2e });
88
+ if (p11 === undefined ||
89
+ p12 === undefined ||
90
+ p21 === undefined ||
91
+ p22 === undefined) {
92
+ continue;
93
+ }
94
+ const cigar = f.get('CIGAR');
95
+ map.push({
96
+ p11,
97
+ p12,
98
+ p21,
99
+ p22,
100
+ f,
101
+ cigar: plugin_alignments_1.MismatchParser.parseCigar(cigar),
102
+ });
103
+ }
104
+ self.setFeatPositions(map);
105
+ }, { fireImmediately: true }));
106
+ }
107
+ exports.doAfterAttach = doAfterAttach;
108
+ //# sourceMappingURL=afterAttach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"afterAttach.js","sourceRoot":"","sources":["../../src/LinearSyntenyDisplay/afterAttach.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { LinearSyntenyDisplayModel } from '../model';
3
+ declare const ServerSideRenderedBlockContent: ({ model, }: {
4
+ model: LinearSyntenyDisplayModel;
5
+ }) => React.JSX.Element;
6
+ export default ServerSideRenderedBlockContent;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const react_1 = __importStar(require("react"));
30
+ const mui_1 = require("tss-react/mui");
31
+ const mobx_react_1 = require("mobx-react");
32
+ const ui_1 = require("@jbrowse/core/ui");
33
+ // locals
34
+ const LinearSyntenyRendering_1 = __importDefault(require("./LinearSyntenyRendering"));
35
+ const useStyles = (0, mui_1.makeStyles)()(theme => {
36
+ const bg = theme.palette.action.disabledBackground;
37
+ return {
38
+ loading: {
39
+ paddingLeft: '0.6em',
40
+ backgroundColor: theme.palette.background.default,
41
+ backgroundImage: `repeating-linear-gradient(45deg, transparent, transparent 5px, ${bg} 5px, ${bg} 10px)`,
42
+ textAlign: 'center',
43
+ },
44
+ blockMessage: {
45
+ background: '#f1f1f1',
46
+ padding: 10,
47
+ },
48
+ blockError: {
49
+ background: '#f1f1f1',
50
+ padding: 10,
51
+ color: 'red',
52
+ },
53
+ };
54
+ });
55
+ function LoadingMessage() {
56
+ // only show the loading message after 300ms to prevent excessive flickering
57
+ const [shown, setShown] = (0, react_1.useState)(false);
58
+ const { classes } = useStyles();
59
+ (0, react_1.useEffect)(() => {
60
+ const timeout = setTimeout(() => setShown(true), 300);
61
+ return () => clearTimeout(timeout);
62
+ });
63
+ return shown ? (react_1.default.createElement("div", { className: classes.loading },
64
+ react_1.default.createElement(ui_1.LoadingEllipses, null))) : null;
65
+ }
66
+ function BlockMessage({ messageText }) {
67
+ const { classes } = useStyles();
68
+ return react_1.default.createElement("div", { className: classes.blockMessage }, messageText);
69
+ }
70
+ function BlockError({ error }) {
71
+ const { classes } = useStyles();
72
+ return react_1.default.createElement("div", { className: classes.blockError }, `${error}`);
73
+ }
74
+ const ServerSideRenderedBlockContent = (0, mobx_react_1.observer)(function ({ model, }) {
75
+ if (model.error) {
76
+ return react_1.default.createElement(BlockError, { error: model.error });
77
+ }
78
+ if (model.message) {
79
+ return react_1.default.createElement(BlockMessage, { messageText: model.message });
80
+ }
81
+ if (!model.features) {
82
+ return react_1.default.createElement(LoadingMessage, null);
83
+ }
84
+ return react_1.default.createElement(LinearSyntenyRendering_1.default, { model: model });
85
+ });
86
+ exports.default = ServerSideRenderedBlockContent;
87
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../src/LinearSyntenyDisplay/components/Component.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAkD;AAClD,uCAA0C;AAC1C,2CAAqC;AACrC,yCAAkD;AAElD,SAAS;AACT,sFAA6D;AAG7D,MAAM,SAAS,GAAG,IAAA,gBAAU,GAAE,CAAC,KAAK,CAAC,EAAE;IACrC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAA;IAClD,OAAO;QACL,OAAO,EAAE;YACP,WAAW,EAAE,OAAO;YACpB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO;YACjD,eAAe,EAAE,kEAAkE,EAAE,SAAS,EAAE,QAAQ;YACxG,SAAS,EAAE,QAAQ;SACpB;QACD,YAAY,EAAE;YACZ,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,EAAE;SACZ;QACD,UAAU,EAAE;YACV,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,KAAK;SACb;KACF,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,SAAS,cAAc;IACrB,4EAA4E;IAC5E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACzC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QACrD,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,uCAAK,SAAS,EAAE,OAAO,CAAC,OAAO;QAC7B,8BAAC,oBAAe,OAAG,CACf,CACP,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,WAAW,EAA2B;IAC5D,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,OAAO,uCAAK,SAAS,EAAE,OAAO,CAAC,YAAY,IAAG,WAAW,CAAO,CAAA;AAClE,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,KAAK,EAAsB;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,OAAO,uCAAK,SAAS,EAAE,OAAO,CAAC,UAAU,IAAG,GAAG,KAAK,EAAE,CAAO,CAAA;AAC/D,CAAC;AAED,MAAM,8BAA8B,GAAG,IAAA,qBAAQ,EAAC,UAAU,EACxD,KAAK,GAGN;IACC,IAAI,KAAK,CAAC,KAAK,EAAE;QACf,OAAO,8BAAC,UAAU,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,CAAA;KAC1C;IACD,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,OAAO,8BAAC,YAAY,IAAC,WAAW,EAAE,KAAK,CAAC,OAAO,GAAI,CAAA;KACpD;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;QACnB,OAAO,8BAAC,cAAc,OAAG,CAAA;KAC1B;IAED,OAAO,8BAAC,gCAAsB,IAAC,KAAK,EAAE,KAAK,GAAI,CAAA;AACjD,CAAC,CAAC,CAAA;AAEF,kBAAe,8BAA8B,CAAA"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { LinearSyntenyDisplayModel } from '../model';
3
+ declare const _default: ({ model, }: {
4
+ model: LinearSyntenyDisplayModel;
5
+ }) => React.JSX.Element;
6
+ export default _default;