@jbrowse/plugin-variants 2.18.0 → 3.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 (272) hide show
  1. package/dist/ChordVariantDisplay/models/stateModelFactory.d.ts +1 -1
  2. package/dist/LinearVariantDisplay/model.d.ts +5 -5
  3. package/dist/MultiLinearVariantDisplay/components/Crosshair.d.ts +7 -0
  4. package/dist/MultiLinearVariantDisplay/components/Crosshair.js +35 -0
  5. package/dist/MultiLinearVariantDisplay/components/VariantDisplayComponent.d.ts +1 -2
  6. package/dist/MultiLinearVariantDisplay/components/VariantDisplayComponent.js +5 -49
  7. package/dist/MultiLinearVariantDisplay/index.js +18 -8
  8. package/dist/MultiLinearVariantDisplay/model.d.ts +113 -40
  9. package/dist/MultiLinearVariantDisplay/model.js +24 -176
  10. package/dist/MultiLinearVariantDisplay/renderSvg.d.ts +1 -2
  11. package/dist/MultiLinearVariantDisplay/renderSvg.js +2 -5
  12. package/dist/MultiLinearVariantMatrixDisplay/components/Crosshair.d.ts +7 -0
  13. package/dist/MultiLinearVariantMatrixDisplay/components/Crosshair.js +28 -0
  14. package/dist/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.d.ts +1 -2
  15. package/dist/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.js +13 -16
  16. package/dist/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.d.ts +1 -2
  17. package/dist/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.js +6 -56
  18. package/dist/MultiLinearVariantMatrixDisplay/model.d.ts +109 -27
  19. package/dist/MultiLinearVariantMatrixDisplay/model.js +31 -136
  20. package/dist/MultiLinearVariantMatrixDisplay/renderSvg.d.ts +1 -2
  21. package/dist/MultiLinearVariantMatrixDisplay/renderSvg.js +3 -7
  22. package/dist/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.d.ts +4 -32
  23. package/dist/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.js +44 -63
  24. package/dist/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.d.ts +3 -2
  25. package/dist/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.js +31 -5
  26. package/dist/MultiLinearVariantMatrixRenderer/index.js +2 -2
  27. package/dist/MultiLinearVariantMatrixRenderer/makeImageData.d.ts +10 -0
  28. package/dist/MultiLinearVariantMatrixRenderer/makeImageData.js +100 -0
  29. package/dist/MultiLinearVariantMatrixRenderer/types.d.ts +15 -0
  30. package/dist/MultiLinearVariantMatrixRenderer/types.js +2 -0
  31. package/dist/MultiLinearVariantRenderer/MultiVariantRenderer.d.ts +4 -21
  32. package/dist/MultiLinearVariantRenderer/MultiVariantRenderer.js +38 -25
  33. package/dist/MultiLinearVariantRenderer/MultiVariantRendering.d.ts +7 -3
  34. package/dist/MultiLinearVariantRenderer/MultiVariantRendering.js +36 -27
  35. package/dist/MultiLinearVariantRenderer/configSchema.d.ts +1 -33
  36. package/dist/MultiLinearVariantRenderer/configSchema.js +0 -5
  37. package/dist/MultiLinearVariantRenderer/makeImageData.d.ts +4 -0
  38. package/dist/MultiLinearVariantRenderer/makeImageData.js +67 -0
  39. package/dist/MultiLinearVariantRenderer/types.d.ts +19 -0
  40. package/dist/MultiLinearVariantRenderer/types.js +2 -0
  41. package/dist/MultiVariantBaseRenderer.d.ts +4 -4
  42. package/dist/StructuralVariantChordRenderer/Chord.d.ts +2 -19
  43. package/dist/StructuralVariantChordRenderer/Chord.js +3 -25
  44. package/dist/StructuralVariantChordRenderer/ReactComponent.d.ts +2 -3
  45. package/dist/StructuralVariantChordRenderer/ReactComponent.js +7 -29
  46. package/dist/StructuralVariantChordRenderer/types.d.ts +17 -0
  47. package/dist/StructuralVariantChordRenderer/types.js +2 -0
  48. package/dist/Tooltip.d.ts +2 -2
  49. package/dist/Tooltip.js +6 -32
  50. package/dist/VariantFeatureWidget/Checkbox2.d.ts +1 -2
  51. package/dist/VariantFeatureWidget/Checkbox2.js +2 -5
  52. package/dist/VariantFeatureWidget/LaunchBreakendPanel.d.ts +2 -3
  53. package/dist/VariantFeatureWidget/LaunchBreakendPanel.js +66 -69
  54. package/dist/VariantFeatureWidget/LaunchBreakendWidgetArea.d.ts +4 -0
  55. package/dist/VariantFeatureWidget/LaunchBreakendWidgetArea.js +60 -0
  56. package/dist/VariantFeatureWidget/VariantConsequenceDataGrid.d.ts +5 -0
  57. package/dist/VariantFeatureWidget/VariantConsequenceDataGrid.js +15 -0
  58. package/dist/VariantFeatureWidget/VariantConsequenceDataGridWrapper.d.ts +5 -0
  59. package/dist/VariantFeatureWidget/VariantConsequenceDataGridWrapper.js +20 -0
  60. package/dist/VariantFeatureWidget/VariantConsequencePanel.d.ts +5 -0
  61. package/dist/VariantFeatureWidget/VariantConsequencePanel.js +15 -0
  62. package/dist/VariantFeatureWidget/VariantFeatureWidget.d.ts +1 -2
  63. package/dist/VariantFeatureWidget/VariantFeatureWidget.js +47 -36
  64. package/dist/VariantFeatureWidget/VariantSampleFilters.d.ts +9 -0
  65. package/dist/VariantFeatureWidget/VariantSampleFilters.js +10 -0
  66. package/dist/VariantFeatureWidget/VariantSampleGrid.d.ts +9 -7
  67. package/dist/VariantFeatureWidget/VariantSampleGrid.js +14 -44
  68. package/dist/VariantFeatureWidget/index.js +17 -7
  69. package/dist/VariantFeatureWidget/types.d.ts +16 -0
  70. package/dist/VariantFeatureWidget/types.js +2 -0
  71. package/dist/VariantRPC/MultiVariantGetGenotypeMatrix.js +10 -27
  72. package/dist/VariantRPC/MultiVariantGetSimplifiedFeatures.d.ts +12 -7
  73. package/dist/VariantRPC/MultiVariantGetSimplifiedFeatures.js +27 -37
  74. package/dist/VcfAdapter/VcfAdapter.d.ts +7 -0
  75. package/dist/VcfAdapter/VcfAdapter.js +29 -3
  76. package/dist/VcfAdapter/configSchema.d.ts +8 -0
  77. package/dist/VcfAdapter/configSchema.js +12 -1
  78. package/dist/VcfAdapter/index.js +17 -7
  79. package/dist/VcfFeature/index.js +2 -1
  80. package/dist/VcfFeature/util.js +3 -4
  81. package/dist/VcfTabixAdapter/VcfTabixAdapter.js +38 -12
  82. package/dist/VcfTabixAdapter/configSchema.d.ts +8 -0
  83. package/dist/VcfTabixAdapter/configSchema.js +8 -0
  84. package/dist/VcfTabixAdapter/index.js +17 -7
  85. package/dist/extensionPoints.js +21 -33
  86. package/dist/getMultiVariantFeaturesAutorun.d.ts +4 -7
  87. package/dist/getMultiVariantFeaturesAutorun.js +16 -15
  88. package/dist/getMultiVariantSourcesAutorun.d.ts +1 -6
  89. package/dist/shared/BulkEditPanel.d.ts +4 -5
  90. package/dist/shared/BulkEditPanel.js +69 -88
  91. package/dist/shared/ClusterDialog.d.ts +4 -5
  92. package/dist/shared/ClusterDialog.js +45 -86
  93. package/dist/shared/ColorLegend.d.ts +2 -3
  94. package/dist/shared/ColorLegend.js +8 -10
  95. package/dist/shared/HelpfulTips.d.ts +1 -0
  96. package/dist/shared/HelpfulTips.js +7 -0
  97. package/dist/shared/LegendBar.d.ts +3 -3
  98. package/dist/shared/LegendBar.js +6 -12
  99. package/dist/shared/MAFFilterDialog.d.ts +2 -3
  100. package/dist/shared/MAFFilterDialog.js +14 -42
  101. package/dist/shared/MultiVariantBaseModel.d.ts +341 -0
  102. package/dist/shared/MultiVariantBaseModel.js +316 -0
  103. package/dist/shared/MultiVariantTooltip.d.ts +6 -0
  104. package/dist/shared/MultiVariantTooltip.js +23 -0
  105. package/dist/shared/RectBg.d.ts +2 -3
  106. package/dist/shared/RectBg.js +3 -7
  107. package/dist/shared/RowPalettizer.d.ts +2 -3
  108. package/dist/shared/RowPalettizer.js +30 -28
  109. package/dist/shared/SetColorDialog.d.ts +2 -3
  110. package/dist/shared/SetColorDialog.js +26 -65
  111. package/dist/shared/SetMinMaxDialog.d.ts +1 -2
  112. package/dist/shared/SetMinMaxDialog.js +11 -41
  113. package/dist/shared/SetRowHeightDialog.d.ts +8 -0
  114. package/dist/shared/SetRowHeightDialog.js +18 -0
  115. package/dist/shared/SharedVariantMixin.d.ts +7 -7
  116. package/dist/shared/SourcesDataGrid.d.ts +6 -0
  117. package/dist/shared/SourcesDataGrid.js +68 -0
  118. package/dist/shared/SourcesGrid.d.ts +2 -3
  119. package/dist/shared/SourcesGrid.js +5 -134
  120. package/dist/shared/SourcesGridHeader.d.ts +7 -0
  121. package/dist/shared/SourcesGridHeader.js +41 -0
  122. package/dist/shared/multiVariantColor.d.ts +3 -0
  123. package/dist/shared/multiVariantColor.js +50 -0
  124. package/dist/types.d.ts +14 -0
  125. package/dist/types.js +2 -0
  126. package/dist/util.d.ts +6 -9
  127. package/dist/util.js +47 -14
  128. package/esm/ChordVariantDisplay/models/stateModelFactory.d.ts +1 -1
  129. package/esm/LinearVariantDisplay/model.d.ts +5 -5
  130. package/esm/MultiLinearVariantDisplay/components/Crosshair.d.ts +7 -0
  131. package/esm/MultiLinearVariantDisplay/components/Crosshair.js +30 -0
  132. package/esm/MultiLinearVariantDisplay/components/VariantDisplayComponent.d.ts +1 -2
  133. package/esm/MultiLinearVariantDisplay/components/VariantDisplayComponent.js +5 -26
  134. package/esm/MultiLinearVariantDisplay/index.js +1 -1
  135. package/esm/MultiLinearVariantDisplay/model.d.ts +113 -40
  136. package/esm/MultiLinearVariantDisplay/model.js +7 -169
  137. package/esm/MultiLinearVariantDisplay/renderSvg.d.ts +1 -2
  138. package/esm/MultiLinearVariantDisplay/renderSvg.js +2 -5
  139. package/esm/MultiLinearVariantMatrixDisplay/components/Crosshair.d.ts +7 -0
  140. package/esm/MultiLinearVariantMatrixDisplay/components/Crosshair.js +23 -0
  141. package/esm/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.d.ts +1 -2
  142. package/esm/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.js +13 -13
  143. package/esm/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.d.ts +1 -2
  144. package/esm/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.js +6 -33
  145. package/esm/MultiLinearVariantMatrixDisplay/model.d.ts +109 -27
  146. package/esm/MultiLinearVariantMatrixDisplay/model.js +14 -129
  147. package/esm/MultiLinearVariantMatrixDisplay/renderSvg.d.ts +1 -2
  148. package/esm/MultiLinearVariantMatrixDisplay/renderSvg.js +3 -7
  149. package/esm/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.d.ts +4 -32
  150. package/esm/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.js +11 -63
  151. package/esm/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.d.ts +3 -2
  152. package/esm/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.js +31 -2
  153. package/esm/MultiLinearVariantMatrixRenderer/index.js +1 -1
  154. package/esm/MultiLinearVariantMatrixRenderer/makeImageData.d.ts +10 -0
  155. package/esm/MultiLinearVariantMatrixRenderer/makeImageData.js +97 -0
  156. package/esm/MultiLinearVariantMatrixRenderer/types.d.ts +15 -0
  157. package/esm/MultiLinearVariantMatrixRenderer/types.js +1 -0
  158. package/esm/MultiLinearVariantRenderer/MultiVariantRenderer.d.ts +4 -21
  159. package/esm/MultiLinearVariantRenderer/MultiVariantRenderer.js +6 -26
  160. package/esm/MultiLinearVariantRenderer/MultiVariantRendering.d.ts +7 -3
  161. package/esm/MultiLinearVariantRenderer/MultiVariantRendering.js +34 -5
  162. package/esm/MultiLinearVariantRenderer/configSchema.d.ts +1 -33
  163. package/esm/MultiLinearVariantRenderer/configSchema.js +0 -2
  164. package/esm/MultiLinearVariantRenderer/makeImageData.d.ts +4 -0
  165. package/esm/MultiLinearVariantRenderer/makeImageData.js +61 -0
  166. package/esm/MultiLinearVariantRenderer/types.d.ts +19 -0
  167. package/esm/MultiLinearVariantRenderer/types.js +1 -0
  168. package/esm/MultiVariantBaseRenderer.d.ts +4 -4
  169. package/esm/StructuralVariantChordRenderer/Chord.d.ts +2 -19
  170. package/esm/StructuralVariantChordRenderer/Chord.js +3 -2
  171. package/esm/StructuralVariantChordRenderer/ReactComponent.d.ts +2 -3
  172. package/esm/StructuralVariantChordRenderer/ReactComponent.js +7 -6
  173. package/esm/StructuralVariantChordRenderer/types.d.ts +17 -0
  174. package/esm/StructuralVariantChordRenderer/types.js +1 -0
  175. package/esm/Tooltip.d.ts +2 -2
  176. package/esm/Tooltip.js +6 -9
  177. package/esm/VariantFeatureWidget/Checkbox2.d.ts +1 -2
  178. package/esm/VariantFeatureWidget/Checkbox2.js +2 -2
  179. package/esm/VariantFeatureWidget/LaunchBreakendPanel.d.ts +2 -3
  180. package/esm/VariantFeatureWidget/LaunchBreakendPanel.js +48 -61
  181. package/esm/VariantFeatureWidget/LaunchBreakendWidgetArea.d.ts +4 -0
  182. package/esm/VariantFeatureWidget/LaunchBreakendWidgetArea.js +24 -0
  183. package/esm/VariantFeatureWidget/VariantConsequenceDataGrid.d.ts +5 -0
  184. package/esm/VariantFeatureWidget/VariantConsequenceDataGrid.js +9 -0
  185. package/esm/VariantFeatureWidget/VariantConsequenceDataGridWrapper.d.ts +5 -0
  186. package/esm/VariantFeatureWidget/VariantConsequenceDataGridWrapper.js +17 -0
  187. package/esm/VariantFeatureWidget/VariantConsequencePanel.d.ts +5 -0
  188. package/esm/VariantFeatureWidget/VariantConsequencePanel.js +9 -0
  189. package/esm/VariantFeatureWidget/VariantFeatureWidget.d.ts +1 -2
  190. package/esm/VariantFeatureWidget/VariantFeatureWidget.js +30 -29
  191. package/esm/VariantFeatureWidget/VariantSampleFilters.d.ts +9 -0
  192. package/esm/VariantFeatureWidget/VariantSampleFilters.js +7 -0
  193. package/esm/VariantFeatureWidget/VariantSampleGrid.d.ts +9 -7
  194. package/esm/VariantFeatureWidget/VariantSampleGrid.js +15 -22
  195. package/esm/VariantFeatureWidget/types.d.ts +16 -0
  196. package/esm/VariantFeatureWidget/types.js +1 -0
  197. package/esm/VariantRPC/MultiVariantGetGenotypeMatrix.js +10 -27
  198. package/esm/VariantRPC/MultiVariantGetSimplifiedFeatures.d.ts +12 -7
  199. package/esm/VariantRPC/MultiVariantGetSimplifiedFeatures.js +27 -37
  200. package/esm/VcfAdapter/VcfAdapter.d.ts +7 -0
  201. package/esm/VcfAdapter/VcfAdapter.js +31 -5
  202. package/esm/VcfAdapter/configSchema.d.ts +8 -0
  203. package/esm/VcfAdapter/configSchema.js +12 -1
  204. package/esm/VcfFeature/index.js +2 -1
  205. package/esm/VcfFeature/util.js +3 -4
  206. package/esm/VcfTabixAdapter/VcfTabixAdapter.js +38 -12
  207. package/esm/VcfTabixAdapter/configSchema.d.ts +8 -0
  208. package/esm/VcfTabixAdapter/configSchema.js +8 -0
  209. package/esm/extensionPoints.js +21 -33
  210. package/esm/getMultiVariantFeaturesAutorun.d.ts +4 -7
  211. package/esm/getMultiVariantFeaturesAutorun.js +16 -15
  212. package/esm/getMultiVariantSourcesAutorun.d.ts +1 -6
  213. package/esm/shared/BulkEditPanel.d.ts +4 -5
  214. package/esm/shared/BulkEditPanel.js +70 -66
  215. package/esm/shared/ClusterDialog.d.ts +4 -5
  216. package/esm/shared/ClusterDialog.js +44 -62
  217. package/esm/shared/ColorLegend.d.ts +2 -3
  218. package/esm/shared/ColorLegend.js +8 -10
  219. package/esm/shared/HelpfulTips.d.ts +1 -0
  220. package/esm/shared/HelpfulTips.js +4 -0
  221. package/esm/shared/LegendBar.d.ts +3 -3
  222. package/esm/shared/LegendBar.js +7 -13
  223. package/esm/shared/MAFFilterDialog.d.ts +2 -3
  224. package/esm/shared/MAFFilterDialog.js +14 -19
  225. package/esm/shared/MultiVariantBaseModel.d.ts +341 -0
  226. package/esm/shared/MultiVariantBaseModel.js +277 -0
  227. package/esm/shared/MultiVariantTooltip.d.ts +6 -0
  228. package/esm/shared/MultiVariantTooltip.js +17 -0
  229. package/esm/shared/RectBg.d.ts +2 -3
  230. package/esm/shared/RectBg.js +3 -4
  231. package/esm/shared/RowPalettizer.d.ts +2 -3
  232. package/esm/shared/RowPalettizer.js +30 -25
  233. package/esm/shared/SetColorDialog.d.ts +2 -3
  234. package/esm/shared/SetColorDialog.js +26 -42
  235. package/esm/shared/SetMinMaxDialog.d.ts +1 -2
  236. package/esm/shared/SetMinMaxDialog.js +11 -18
  237. package/esm/shared/SetRowHeightDialog.d.ts +8 -0
  238. package/esm/shared/SetRowHeightDialog.js +15 -0
  239. package/esm/shared/SharedVariantMixin.d.ts +7 -7
  240. package/esm/shared/SourcesDataGrid.d.ts +6 -0
  241. package/esm/shared/SourcesDataGrid.js +62 -0
  242. package/esm/shared/SourcesGrid.d.ts +2 -3
  243. package/esm/shared/SourcesGrid.js +5 -111
  244. package/esm/shared/SourcesGridHeader.d.ts +7 -0
  245. package/esm/shared/SourcesGridHeader.js +35 -0
  246. package/esm/shared/multiVariantColor.d.ts +3 -0
  247. package/esm/shared/multiVariantColor.js +45 -0
  248. package/esm/types.d.ts +14 -0
  249. package/esm/types.js +1 -0
  250. package/esm/util.d.ts +6 -9
  251. package/esm/util.js +43 -13
  252. package/package.json +6 -7
  253. package/dist/VariantFeatureWidget/AnnotGrid.d.ts +0 -6
  254. package/dist/VariantFeatureWidget/AnnotGrid.js +0 -39
  255. package/dist/VariantFeatureWidget/VariantAnnotationTable.d.ts +0 -6
  256. package/dist/VariantFeatureWidget/VariantAnnotationTable.js +0 -16
  257. package/dist/configSchema.d.ts +0 -34
  258. package/dist/configSchema.js +0 -44
  259. package/dist/shared/DraggableDialog.d.ts +0 -6
  260. package/dist/shared/DraggableDialog.js +0 -62
  261. package/dist/shared/Tooltip.d.ts +0 -18
  262. package/dist/shared/Tooltip.js +0 -38
  263. package/esm/VariantFeatureWidget/AnnotGrid.d.ts +0 -6
  264. package/esm/VariantFeatureWidget/AnnotGrid.js +0 -13
  265. package/esm/VariantFeatureWidget/VariantAnnotationTable.d.ts +0 -6
  266. package/esm/VariantFeatureWidget/VariantAnnotationTable.js +0 -10
  267. package/esm/configSchema.d.ts +0 -34
  268. package/esm/configSchema.js +0 -42
  269. package/esm/shared/DraggableDialog.d.ts +0 -6
  270. package/esm/shared/DraggableDialog.js +0 -34
  271. package/esm/shared/Tooltip.d.ts +0 -18
  272. package/esm/shared/Tooltip.js +0 -33
@@ -1,12 +1,38 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("react");
7
5
  const ui_1 = require("@jbrowse/core/ui");
8
6
  const mobx_react_1 = require("mobx-react");
9
7
  const LinearVariantMatrixRendering = (0, mobx_react_1.observer)(function (props) {
10
- return react_1.default.createElement(ui_1.PrerenderedCanvas, { ...props });
8
+ const { arr, width, height, displayModel } = props;
9
+ const ref = (0, react_1.useRef)(null);
10
+ function getFeatureUnderMouse(eventClientX, eventClientY) {
11
+ var _a, _b;
12
+ let offsetX = 0;
13
+ let offsetY = 0;
14
+ if (ref.current) {
15
+ const r = ref.current.getBoundingClientRect();
16
+ offsetX = eventClientX - r.left;
17
+ offsetY = eventClientY - r.top;
18
+ }
19
+ const dimY = arr.length;
20
+ const dimX = ((_a = arr[0]) === null || _a === void 0 ? void 0 : _a.length) || 0;
21
+ return (_b = arr[Math.floor((offsetX / width) * dimY)]) === null || _b === void 0 ? void 0 : _b[Math.floor((offsetY / height) * dimX)];
22
+ }
23
+ return ((0, jsx_runtime_1.jsx)("div", { ref: ref, onMouseMove: e => {
24
+ var _a;
25
+ return (_a = displayModel.setHoveredGenotype) === null || _a === void 0 ? void 0 : _a.call(displayModel, getFeatureUnderMouse(e.clientX, e.clientY));
26
+ }, onMouseLeave: () => {
27
+ var _a;
28
+ (_a = displayModel.setHoveredGenotype) === null || _a === void 0 ? void 0 : _a.call(displayModel, undefined);
29
+ }, onMouseOut: () => {
30
+ var _a;
31
+ (_a = displayModel.setHoveredGenotype) === null || _a === void 0 ? void 0 : _a.call(displayModel, undefined);
32
+ }, style: {
33
+ overflow: 'visible',
34
+ position: 'relative',
35
+ height,
36
+ }, children: (0, jsx_runtime_1.jsx)(ui_1.PrerenderedCanvas, { ...props }) }));
11
37
  });
12
38
  exports.default = LinearVariantMatrixRendering;
@@ -4,15 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = LinearVariantMatrixRendererF;
7
- const ui_1 = require("@jbrowse/core/ui");
8
7
  const LinearVariantMatrixRenderer_1 = __importDefault(require("./LinearVariantMatrixRenderer"));
8
+ const LinearVariantMatrixRendering_1 = __importDefault(require("./components/LinearVariantMatrixRendering"));
9
9
  const configSchema_1 = __importDefault(require("./configSchema"));
10
10
  function LinearVariantMatrixRendererF(pluginManager) {
11
11
  pluginManager.addRendererType(() => {
12
12
  return new LinearVariantMatrixRenderer_1.default({
13
13
  name: 'LinearVariantMatrixRenderer',
14
14
  displayName: 'Linear variant matrix renderer',
15
- ReactComponent: ui_1.PrerenderedCanvas,
15
+ ReactComponent: LinearVariantMatrixRendering_1.default,
16
16
  configSchema: configSchema_1.default,
17
17
  pluginManager,
18
18
  });
@@ -0,0 +1,10 @@
1
+ import type { RenderArgsDeserializedWithFeaturesAndLayout } from './types';
2
+ export declare function makeImageData({ ctx, canvasWidth, canvasHeight, renderArgs, }: {
3
+ ctx: CanvasRenderingContext2D;
4
+ canvasWidth: number;
5
+ canvasHeight: number;
6
+ renderArgs: RenderArgsDeserializedWithFeaturesAndLayout;
7
+ }): {
8
+ mafs: import("@jbrowse/core/util").Feature[];
9
+ arr: string[][];
10
+ };
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeImageData = makeImageData;
4
+ const multiVariantColor_1 = require("../shared/multiVariantColor");
5
+ const util_1 = require("../util");
6
+ const fudgeFactor = 0.6;
7
+ const f2 = fudgeFactor / 2;
8
+ function drawColorAlleleCount(alleles, ctx, x, y, w, h) {
9
+ ctx.fillStyle = (0, multiVariantColor_1.getColorAlleleCount)(alleles);
10
+ ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
11
+ }
12
+ function drawPhased(alleles, ctx, x, y, w, h, HP, PS) {
13
+ ctx.fillStyle =
14
+ PS !== undefined
15
+ ? (0, multiVariantColor_1.getColorPhasedWithPhaseSet)(alleles, HP, PS)
16
+ : (0, multiVariantColor_1.getColorPhased)(alleles, HP);
17
+ ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
18
+ }
19
+ function makeImageData({ ctx, canvasWidth, canvasHeight, renderArgs, }) {
20
+ var _a, _b;
21
+ const { renderingMode: renderingMode, minorAlleleFrequencyFilter, sources, features, } = renderArgs;
22
+ const { statusCallback = () => { } } = renderArgs;
23
+ statusCallback('Drawing variant matrix');
24
+ const h = canvasHeight / sources.length;
25
+ const mafs = (0, util_1.getFeaturesThatPassMinorAlleleFrequencyFilter)(features.values(), minorAlleleFrequencyFilter);
26
+ const arr = [];
27
+ const m = mafs.length;
28
+ const w = canvasWidth / m;
29
+ for (let i = 0; i < m; i++) {
30
+ const arr2 = [];
31
+ const f = mafs[i];
32
+ const hasPhaseSet = f.get('format').includes('PS');
33
+ if (hasPhaseSet) {
34
+ const samp = f.get('samples');
35
+ const x = (i / mafs.length) * canvasWidth;
36
+ const sln = sources.length;
37
+ for (let j = 0; j < sln; j++) {
38
+ const y = (j / sln) * canvasHeight;
39
+ const { name, HP } = sources[j];
40
+ const s = samp[name];
41
+ if (s) {
42
+ const genotype = (_a = s.GT) === null || _a === void 0 ? void 0 : _a[0];
43
+ if (genotype) {
44
+ arr2.push(genotype);
45
+ const isPhased = genotype.includes('|');
46
+ if (renderingMode === 'phased') {
47
+ if (isPhased) {
48
+ const PS = (_b = s.PS) === null || _b === void 0 ? void 0 : _b[0];
49
+ const alleles = genotype.split('|');
50
+ drawPhased(alleles, ctx, x, y, w, h, HP, PS);
51
+ }
52
+ else {
53
+ ctx.fillStyle = 'black';
54
+ ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
55
+ }
56
+ }
57
+ else {
58
+ const alleles = genotype.split(/[/|]/);
59
+ drawColorAlleleCount(alleles, ctx, x, y, w, h);
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+ else {
66
+ const samp = f.get('genotypes');
67
+ const x = (i / mafs.length) * canvasWidth;
68
+ const sln = sources.length;
69
+ const arr2 = [];
70
+ for (let j = 0; j < sln; j++) {
71
+ const y = (j / sln) * canvasHeight;
72
+ const { name, HP } = sources[j];
73
+ const genotype = samp[name];
74
+ if (genotype) {
75
+ arr2.push(genotype);
76
+ const isPhased = genotype.includes('|');
77
+ if (renderingMode === 'phased') {
78
+ if (isPhased) {
79
+ const alleles = genotype.split('|');
80
+ drawPhased(alleles, ctx, x, y, w, h, HP);
81
+ }
82
+ else {
83
+ ctx.fillStyle = 'black';
84
+ ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
85
+ }
86
+ }
87
+ else {
88
+ const alleles = genotype.split(/[/|]/);
89
+ drawColorAlleleCount(alleles, ctx, x, y, w, h);
90
+ }
91
+ }
92
+ }
93
+ }
94
+ arr.push(arr2);
95
+ }
96
+ return {
97
+ mafs,
98
+ arr,
99
+ };
100
+ }
@@ -0,0 +1,15 @@
1
+ import type { Source } from '../types';
2
+ import type { RenderArgsDeserialized as BoxRenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType';
3
+ import type { Feature } from '@jbrowse/core/util';
4
+ export interface RenderArgsDeserialized extends BoxRenderArgsDeserialized {
5
+ sources: Source[];
6
+ minorAlleleFrequencyFilter: number;
7
+ highResolutionScaling: number;
8
+ height: number;
9
+ renderingMode: string;
10
+ }
11
+ export interface RenderArgsDeserializedWithFeaturesAndLayout extends RenderArgsDeserialized {
12
+ sources: Source[];
13
+ features: Map<string, Feature>;
14
+ renderingMode: string;
15
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,22 +1,6 @@
1
1
  import FeatureRendererType from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
2
- import type { Source } from '../util';
3
- import type { RenderArgsDeserialized as FeatureRenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
2
+ import type { MultiRenderArgsDeserialized } from './types';
4
3
  import type { Feature } from '@jbrowse/core/util';
5
- import type { ThemeOptions } from '@mui/material';
6
- export interface RenderArgsDeserialized extends FeatureRenderArgsDeserialized {
7
- bpPerPx: number;
8
- height: number;
9
- highResolutionScaling: number;
10
- themeOptions: ThemeOptions;
11
- }
12
- export interface RenderArgsDeserializedWithFeatures extends RenderArgsDeserialized {
13
- features: Map<string, Feature>;
14
- }
15
- export interface MultiRenderArgsDeserialized extends RenderArgsDeserializedWithFeatures {
16
- sources: Source[];
17
- rowHeight: number;
18
- scrollTop: number;
19
- }
20
4
  export default class MultiVariantBaseRenderer extends FeatureRendererType {
21
5
  supportsSVG: boolean;
22
6
  render(renderProps: MultiRenderArgsDeserialized): Promise<{
@@ -25,14 +9,14 @@ export default class MultiVariantBaseRenderer extends FeatureRendererType {
25
9
  width: number;
26
10
  containsNoTransferables: boolean;
27
11
  canvasRecordedData: any;
28
- reactElement?: import("react").ReactElement;
12
+ reactElement?: React.ReactElement;
29
13
  html?: string;
30
14
  } | {
31
15
  features: Map<string, Feature>;
32
16
  height: number;
33
17
  width: number;
34
18
  containsNoTransferables: boolean;
35
- reactElement: React.JSX.Element;
19
+ reactElement: import("react/jsx-runtime").JSX.Element;
36
20
  html?: string;
37
21
  } | {
38
22
  features: Map<string, Feature>;
@@ -40,9 +24,8 @@ export default class MultiVariantBaseRenderer extends FeatureRendererType {
40
24
  width: number;
41
25
  containsNoTransferables: boolean;
42
26
  imageData: any;
43
- reactElement?: import("react").ReactElement;
27
+ reactElement?: React.ReactElement;
44
28
  html?: string;
45
29
  }>;
46
- draw(ctx: CanvasRenderingContext2D, props: MultiRenderArgsDeserialized): Promise<void>;
47
30
  }
48
31
  export type { RenderArgsSerialized, RenderResults, ResultsDeserialized, ResultsSerialized, } from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
@@ -1,11 +1,43 @@
1
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  const FeatureRendererType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType"));
7
40
  const util_1 = require("@jbrowse/core/util");
8
- const util_2 = require("../util");
9
41
  class MultiVariantBaseRenderer extends FeatureRendererType_1.default {
10
42
  constructor() {
11
43
  super(...arguments);
@@ -16,13 +48,11 @@ class MultiVariantBaseRenderer extends FeatureRendererType_1.default {
16
48
  const { height, regions, bpPerPx } = renderProps;
17
49
  const region = regions[0];
18
50
  const width = (region.end - region.start) / bpPerPx;
19
- const rest = await (0, util_1.renderToAbstractCanvas)(width, height, renderProps, async (ctx) => {
20
- await this.draw(ctx, {
21
- ...renderProps,
22
- features,
23
- });
24
- return undefined;
25
- });
51
+ const { makeImageData } = await Promise.resolve().then(() => __importStar(require('./makeImageData')));
52
+ const rest = await (0, util_1.renderToAbstractCanvas)(width, height, renderProps, ctx => makeImageData(ctx, {
53
+ ...renderProps,
54
+ features,
55
+ }));
26
56
  const results = await super.render({
27
57
  ...renderProps,
28
58
  ...rest,
@@ -39,22 +69,5 @@ class MultiVariantBaseRenderer extends FeatureRendererType_1.default {
39
69
  containsNoTransferables: true,
40
70
  };
41
71
  }
42
- async draw(ctx, props) {
43
- const { scrollTop, sources, rowHeight, features, regions, bpPerPx } = props;
44
- const region = regions[0];
45
- for (const feature of features.values()) {
46
- if (feature.get('end') - feature.get('start') <= 10) {
47
- const [leftPx, rightPx] = (0, util_1.featureSpanPx)(feature, region, bpPerPx);
48
- const w = Math.max(Math.round(rightPx - leftPx), 2);
49
- const genotypes = feature.get('genotypes');
50
- let t = -scrollTop;
51
- for (const { name } of sources) {
52
- ctx.fillStyle = (0, util_2.getCol)(genotypes[name]);
53
- ctx.fillRect(Math.floor(leftPx), t, w, Math.max(t + rowHeight, 1));
54
- t += rowHeight;
55
- }
56
- }
57
- }
58
- }
59
72
  }
60
73
  exports.default = MultiVariantBaseRenderer;
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
- import type { Source } from '../util';
1
+ import RBush from 'rbush';
2
+ import type { Source } from '../types';
3
3
  import type { Feature } from '@jbrowse/core/util';
4
4
  import type { Region } from '@jbrowse/core/util/types';
5
5
  declare const MultiVariantRendering: (props: {
@@ -11,8 +11,12 @@ declare const MultiVariantRendering: (props: {
11
11
  sources: Source[];
12
12
  scrollTop: number;
13
13
  totalHeight: number;
14
+ rbush: RBush<{
15
+ genotype: string;
16
+ }>;
17
+ displayModel: any;
14
18
  onMouseLeave?: (event: React.MouseEvent) => void;
15
19
  onMouseMove?: (event: React.MouseEvent, arg?: Feature) => void;
16
20
  onFeatureClick?: (event: React.MouseEvent, arg?: Feature) => void;
17
- }) => React.JSX.Element;
21
+ }) => import("react/jsx-runtime").JSX.Element;
18
22
  export default MultiVariantRendering;
@@ -1,43 +1,52 @@
1
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;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
4
  };
25
5
  Object.defineProperty(exports, "__esModule", { value: true });
26
- const react_1 = __importStar(require("react"));
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
27
8
  const ui_1 = require("@jbrowse/core/ui");
28
9
  const mobx_react_1 = require("mobx-react");
10
+ const rbush_1 = __importDefault(require("rbush"));
29
11
  const MultiVariantRendering = (0, mobx_react_1.observer)(function (props) {
30
12
  const { totalHeight, scrollTop } = props;
13
+ const { rbush, displayModel } = props;
31
14
  const ref = (0, react_1.useRef)(null);
32
- return (react_1.default.createElement("div", { ref: ref, style: {
15
+ const rbush2 = (0, react_1.useMemo)(() => new rbush_1.default().fromJSON(rbush), [rbush]);
16
+ function getFeatureUnderMouse(eventClientX, eventClientY) {
17
+ var _a;
18
+ let offsetX = 0;
19
+ let offsetY = 0;
20
+ if (ref.current) {
21
+ const r = ref.current.getBoundingClientRect();
22
+ offsetX = eventClientX - r.left;
23
+ offsetY = eventClientY - r.top;
24
+ }
25
+ const ret = rbush2.search({
26
+ minX: offsetX,
27
+ maxX: offsetX + 3,
28
+ minY: offsetY,
29
+ maxY: offsetY + 3,
30
+ });
31
+ return (_a = ret[0]) === null || _a === void 0 ? void 0 : _a.genotype;
32
+ }
33
+ return ((0, jsx_runtime_1.jsx)("div", { ref: ref, onMouseMove: e => {
34
+ var _a;
35
+ return (_a = displayModel.setHoveredGenotype) === null || _a === void 0 ? void 0 : _a.call(displayModel, getFeatureUnderMouse(e.clientX, e.clientY));
36
+ }, onMouseLeave: () => {
37
+ var _a;
38
+ (_a = displayModel.setHoveredGenotype) === null || _a === void 0 ? void 0 : _a.call(displayModel, undefined);
39
+ }, onMouseOut: () => {
40
+ var _a;
41
+ (_a = displayModel.setHoveredGenotype) === null || _a === void 0 ? void 0 : _a.call(displayModel, undefined);
42
+ }, style: {
33
43
  overflow: 'visible',
34
44
  position: 'relative',
35
45
  height: totalHeight,
36
- } },
37
- react_1.default.createElement(ui_1.PrerenderedCanvas, { ...props, style: {
46
+ }, children: (0, jsx_runtime_1.jsx)(ui_1.PrerenderedCanvas, { ...props, style: {
38
47
  position: 'absolute',
39
48
  left: 0,
40
49
  top: scrollTop,
41
- } })));
50
+ } }) }));
42
51
  });
43
52
  exports.default = MultiVariantRendering;
@@ -1,34 +1,2 @@
1
- declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
2
- color: {
3
- type: string;
4
- description: string;
5
- defaultValue: string;
6
- };
7
- posColor: {
8
- type: string;
9
- description: string;
10
- defaultValue: string;
11
- };
12
- negColor: {
13
- type: string;
14
- description: string;
15
- defaultValue: string;
16
- };
17
- clipColor: {
18
- type: string;
19
- description: string;
20
- defaultValue: string;
21
- };
22
- bicolorPivot: {
23
- type: string;
24
- model: import("mobx-state-tree").ISimpleType<string>;
25
- description: string;
26
- defaultValue: string;
27
- };
28
- bicolorPivotValue: {
29
- type: string;
30
- defaultValue: number;
31
- description: string;
32
- };
33
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>, undefined>>;
1
+ declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
34
2
  export default configSchema;
@@ -1,13 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  const configuration_1 = require("@jbrowse/core/configuration");
7
- const configSchema_1 = __importDefault(require("../configSchema"));
8
4
  function x() { }
9
5
  const configSchema = (0, configuration_1.ConfigurationSchema)('MultiVariantRenderer', {}, {
10
- baseConfiguration: configSchema_1.default,
11
6
  explicitlyTyped: true,
12
7
  });
13
8
  exports.default = configSchema;
@@ -0,0 +1,4 @@
1
+ import type { MultiRenderArgsDeserialized } from './types';
2
+ export declare function makeImageData(ctx: CanvasRenderingContext2D, props: MultiRenderArgsDeserialized): Promise<{
3
+ rbush: any;
4
+ }>;
@@ -0,0 +1,67 @@
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
+ exports.makeImageData = makeImageData;
7
+ const util_1 = require("@jbrowse/core/util");
8
+ const rbush_1 = __importDefault(require("rbush"));
9
+ const multiVariantColor_1 = require("../shared/multiVariantColor");
10
+ const util_2 = require("../util");
11
+ const fudgeFactor = 0.6;
12
+ const f2 = fudgeFactor / 2;
13
+ function drawColorAlleleCount(alleles, ctx, x, y, w, h) {
14
+ ctx.fillStyle = (0, multiVariantColor_1.getColorAlleleCount)(alleles);
15
+ ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
16
+ }
17
+ function drawPhased(alleles, ctx, x, y, w, h, HP) {
18
+ ctx.fillStyle = (0, multiVariantColor_1.getColorPhased)(alleles, HP);
19
+ ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
20
+ }
21
+ async function makeImageData(ctx, props) {
22
+ const { scrollTop, minorAlleleFrequencyFilter, sources, rowHeight, features, regions, bpPerPx, renderingMode, } = props;
23
+ const region = regions[0];
24
+ const mafs = (0, util_2.getFeaturesThatPassMinorAlleleFrequencyFilter)(features.values(), minorAlleleFrequencyFilter);
25
+ const rbush = new rbush_1.default();
26
+ for (const feature of mafs) {
27
+ const [leftPx, rightPx] = (0, util_1.featureSpanPx)(feature, region, bpPerPx);
28
+ const w = Math.max(Math.round(rightPx - leftPx), 2);
29
+ const samp = feature.get('genotypes');
30
+ let y = -scrollTop;
31
+ const s = sources.length;
32
+ for (let j = 0; j < s; j++) {
33
+ const { name, HP } = sources[j];
34
+ const genotype = samp[name];
35
+ const x = Math.floor(leftPx);
36
+ const h = Math.max(rowHeight, 1);
37
+ if (genotype) {
38
+ rbush.insert({
39
+ minX: x - f2,
40
+ maxX: x + w + f2,
41
+ minY: y - f2,
42
+ maxY: y + h + f2,
43
+ genotype,
44
+ });
45
+ const isPhased = genotype.includes('|');
46
+ if (renderingMode === 'phased') {
47
+ if (isPhased) {
48
+ const alleles = genotype.split('|');
49
+ drawPhased(alleles, ctx, x, y, w, h, HP);
50
+ }
51
+ else {
52
+ ctx.fillStyle = 'black';
53
+ ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
54
+ }
55
+ }
56
+ else {
57
+ const alleles = genotype.split(/[/|]/);
58
+ drawColorAlleleCount(alleles, ctx, x, y, w, h);
59
+ }
60
+ }
61
+ y += rowHeight;
62
+ }
63
+ }
64
+ return {
65
+ rbush: rbush.toJSON(),
66
+ };
67
+ }
@@ -0,0 +1,19 @@
1
+ import type { Source } from '../types';
2
+ import type { RenderArgsDeserialized as FeatureRenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
3
+ import type { Feature } from '@jbrowse/core/util';
4
+ import type { ThemeOptions } from '@mui/material';
5
+ export interface RenderArgsDeserialized extends FeatureRenderArgsDeserialized {
6
+ bpPerPx: number;
7
+ height: number;
8
+ highResolutionScaling: number;
9
+ themeOptions: ThemeOptions;
10
+ }
11
+ export interface RenderArgsDeserializedWithFeatures extends RenderArgsDeserialized {
12
+ features: Map<string, Feature>;
13
+ }
14
+ export interface MultiRenderArgsDeserialized extends RenderArgsDeserializedWithFeatures {
15
+ sources: Source[];
16
+ rowHeight: number;
17
+ scrollTop: number;
18
+ minorAlleleFrequencyFilter: number;
19
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,5 @@
1
1
  import FeatureRendererType from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
2
- import type { Source } from './util';
2
+ import type { Source } from './types';
3
3
  import type { RenderArgsDeserialized as FeatureRenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
4
4
  import type { Feature } from '@jbrowse/core/util';
5
5
  import type { ThemeOptions } from '@mui/material';
@@ -23,14 +23,14 @@ export default abstract class MultiVariantBaseRenderer extends FeatureRendererTy
23
23
  width: number;
24
24
  containsNoTransferables: boolean;
25
25
  canvasRecordedData: any;
26
- reactElement?: import("react").ReactElement;
26
+ reactElement?: React.ReactElement;
27
27
  html?: string;
28
28
  } | {
29
29
  features: Map<string, Feature>;
30
30
  height: number;
31
31
  width: number;
32
32
  containsNoTransferables: boolean;
33
- reactElement: React.JSX.Element;
33
+ reactElement: import("react/jsx-runtime").JSX.Element;
34
34
  html?: string;
35
35
  } | {
36
36
  features: Map<string, Feature>;
@@ -38,7 +38,7 @@ export default abstract class MultiVariantBaseRenderer extends FeatureRendererTy
38
38
  width: number;
39
39
  containsNoTransferables: boolean;
40
40
  imageData: any;
41
- reactElement?: import("react").ReactElement;
41
+ reactElement?: React.ReactElement;
42
42
  html?: string;
43
43
  }>;
44
44
  abstract draw<T extends RenderArgsDeserializedWithFeatures>(ctx: CanvasRenderingContext2D, props: T): Promise<Record<string, unknown> | undefined>;
@@ -1,23 +1,6 @@
1
- import React from 'react';
1
+ import type { AnyRegion, Block } from './types';
2
2
  import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
3
  import type { Feature } from '@jbrowse/core/util';
4
- export interface Region {
5
- end: number;
6
- start: number;
7
- refName: string;
8
- elided?: false;
9
- }
10
- export interface ElidedRegion {
11
- elided: true;
12
- regions: Region[];
13
- }
14
- export type AnyRegion = Region | ElidedRegion;
15
- export interface Block {
16
- flipped: boolean;
17
- bpPerRadian: number;
18
- startRadians: number;
19
- region: AnyRegion;
20
- }
21
4
  declare const Chord: ({ feature, blocksForRefs, radius, config, bezierRadius, selected, onClick, }: {
22
5
  feature: Feature;
23
6
  blocksForRefs: Record<string, Block>;
@@ -26,5 +9,5 @@ declare const Chord: ({ feature, blocksForRefs, radius, config, bezierRadius, se
26
9
  bezierRadius: number;
27
10
  selected: boolean;
28
11
  onClick: (feat: Feature, reg: AnyRegion, end: AnyRegion, evt: unknown) => void;
29
- }) => React.JSX.Element | null;
12
+ }) => import("react/jsx-runtime").JSX.Element | null;
30
13
  export default Chord;