@jbrowse/plugin-variants 3.2.0 → 3.4.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 (239) hide show
  1. package/dist/LinearVariantDisplay/model.d.ts +1 -1
  2. package/dist/MultiLinearVariantDisplay/components/VariantDisplayComponent.js +3 -3
  3. package/dist/MultiLinearVariantDisplay/index.js +1 -1
  4. package/dist/MultiLinearVariantDisplay/model.d.ts +40 -4
  5. package/dist/MultiLinearVariantDisplay/model.js +0 -1
  6. package/dist/MultiLinearVariantDisplay/renderSvg.js +2 -2
  7. package/dist/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.js +15 -5
  8. package/dist/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.js +3 -3
  9. package/dist/MultiLinearVariantMatrixDisplay/index.js +1 -1
  10. package/dist/MultiLinearVariantMatrixDisplay/model.d.ts +40 -3
  11. package/dist/MultiLinearVariantMatrixDisplay/model.js +1 -0
  12. package/dist/MultiLinearVariantMatrixDisplay/renderSvg.js +2 -2
  13. package/dist/MultiLinearVariantMatrixRenderer/{LinearVariantMatrixRenderer.d.ts → MultiLinearVariantMatrixRenderer.d.ts} +14 -11
  14. package/dist/MultiLinearVariantMatrixRenderer/{LinearVariantMatrixRenderer.js → MultiLinearVariantMatrixRenderer.js} +3 -3
  15. package/dist/MultiLinearVariantMatrixRenderer/components/MultiLinearVariantMatrixRendering.d.ts +8 -0
  16. package/dist/MultiLinearVariantMatrixRenderer/components/MultiLinearVariantMatrixRendering.js +41 -0
  17. package/dist/MultiLinearVariantMatrixRenderer/index.js +4 -4
  18. package/dist/MultiLinearVariantMatrixRenderer/makeImageData.d.ts +3 -3
  19. package/dist/MultiLinearVariantMatrixRenderer/makeImageData.js +71 -17
  20. package/dist/MultiLinearVariantMatrixRenderer/types.d.ts +2 -4
  21. package/dist/MultiLinearVariantRenderer/MultiVariantRenderer.d.ts +34 -5
  22. package/dist/MultiLinearVariantRenderer/MultiVariantRenderer.js +13 -7
  23. package/dist/MultiLinearVariantRenderer/components/{MultiVariantRendering.d.ts → MultiLinearVariantRendering.d.ts} +10 -4
  24. package/dist/MultiLinearVariantRenderer/{MultiVariantRendering.js → components/MultiLinearVariantRendering.js} +25 -7
  25. package/dist/MultiLinearVariantRenderer/components/util.d.ts +1 -0
  26. package/dist/MultiLinearVariantRenderer/components/util.js +15 -0
  27. package/dist/MultiLinearVariantRenderer/index.js +2 -2
  28. package/dist/MultiLinearVariantRenderer/makeImageData.d.ts +9 -0
  29. package/dist/MultiLinearVariantRenderer/makeImageData.js +104 -41
  30. package/dist/MultiLinearVariantRenderer/types.d.ts +2 -0
  31. package/dist/MultiVariantBaseRenderer.d.ts +4 -4
  32. package/dist/SplitVcfTabixAdapter/SplitVcfTabixAdapter.d.ts +0 -1
  33. package/dist/SplitVcfTabixAdapter/SplitVcfTabixAdapter.js +0 -1
  34. package/dist/SplitVcfTabixAdapter/configSchema.js +4 -2
  35. package/dist/VariantFeatureWidget/AltFormatter.d.ts +4 -0
  36. package/dist/VariantFeatureWidget/AltFormatter.js +13 -0
  37. package/dist/VariantFeatureWidget/Checkbox2.js +1 -8
  38. package/dist/VariantFeatureWidget/Formatter.d.ts +3 -0
  39. package/dist/VariantFeatureWidget/Formatter.js +23 -0
  40. package/dist/VariantFeatureWidget/{VariantConsequenceDataGridWrapper.js → VariantConsequence/VariantConsequenceDataGridWrapper.js} +3 -5
  41. package/dist/VariantFeatureWidget/VariantFeatureWidget.js +16 -6
  42. package/dist/VariantFeatureWidget/VariantSampleGrid/VariantGenotypeFrequencyTable.d.ts +4 -0
  43. package/dist/VariantFeatureWidget/VariantSampleGrid/VariantGenotypeFrequencyTable.js +80 -0
  44. package/dist/VariantFeatureWidget/VariantSampleGrid/VariantSampleGrid.d.ts +3 -9
  45. package/dist/VariantFeatureWidget/VariantSampleGrid/VariantSampleGrid.js +41 -20
  46. package/dist/VariantFeatureWidget/VariantSampleGrid/types.d.ts +21 -0
  47. package/dist/VariantFeatureWidget/VariantSampleGrid/util.d.ts +1 -0
  48. package/dist/VariantFeatureWidget/VariantSampleGrid/util.js +14 -0
  49. package/dist/VariantFeatureWidget/stateModelFactory.d.ts +9 -6
  50. package/dist/VariantRPC/MultiVariantClusterGenotypeMatrix.d.ts +2 -16
  51. package/dist/VariantRPC/MultiVariantClusterGenotypeMatrix.js +4 -7
  52. package/dist/VariantRPC/MultiVariantGetGenotypeMatrix.d.ts +2 -15
  53. package/dist/VariantRPC/MultiVariantGetSimplifiedFeatures.d.ts +3 -13
  54. package/dist/VariantRPC/MultiVariantGetSimplifiedFeatures.js +14 -8
  55. package/dist/VariantRPC/getGenotypeMatrix.js +20 -7
  56. package/dist/VariantRPC/types.d.ts +23 -0
  57. package/dist/VcfAdapter/VcfAdapter.d.ts +0 -1
  58. package/dist/VcfAdapter/VcfAdapter.js +0 -1
  59. package/dist/VcfFeature/index.js +0 -1
  60. package/dist/VcfFeature/util.d.ts +2 -0
  61. package/dist/VcfFeature/util.js +123 -25
  62. package/dist/VcfTabixAdapter/VcfTabixAdapter.d.ts +0 -1
  63. package/dist/VcfTabixAdapter/VcfTabixAdapter.js +12 -8
  64. package/dist/getMultiVariantFeaturesAutorun.d.ts +2 -0
  65. package/dist/getMultiVariantFeaturesAutorun.js +9 -2
  66. package/dist/getMultiVariantSourcesAutorun.js +3 -2
  67. package/dist/shared/MultiVariantBaseModel.d.ts +41 -4
  68. package/dist/shared/MultiVariantBaseModel.js +69 -3
  69. package/dist/shared/SharedVariantMixin.d.ts +1 -1
  70. package/dist/shared/components/AddFiltersDialog.d.ts +9 -0
  71. package/dist/shared/components/AddFiltersDialog.js +61 -0
  72. package/dist/shared/components/MultiVariantBaseDisplayComponent.d.ts +5 -0
  73. package/dist/shared/components/MultiVariantBaseDisplayComponent.js +29 -0
  74. package/dist/shared/components/{ClusterDialog → MultiVariantClusterDialog}/ClusterDialog.js +2 -2
  75. package/dist/shared/components/{ClusterDialog → MultiVariantClusterDialog}/ClusterDialogAuto.js +8 -3
  76. package/dist/shared/components/{ClusterDialog → MultiVariantClusterDialog}/ClusterDialogManual.js +29 -28
  77. package/dist/shared/components/{ClusterDialog → MultiVariantClusterDialog}/types.d.ts +1 -0
  78. package/dist/shared/components/MultiVariantClusterDialog/types.js +2 -0
  79. package/{esm/shared/components/ColorLegend.d.ts → dist/shared/components/MultiVariantColorLegend.d.ts} +2 -2
  80. package/dist/shared/components/{ColorLegend.js → MultiVariantColorLegend.js} +5 -3
  81. package/dist/shared/components/MultiVariantCrosshairs.d.ts +7 -0
  82. package/dist/shared/components/MultiVariantCrosshairs.js +40 -0
  83. package/dist/shared/components/MultiVariantLegendBar.d.ts +7 -0
  84. package/dist/shared/components/{LegendBar.js → MultiVariantLegendBar.js} +2 -2
  85. package/dist/shared/components/MultiVariantTooltip.d.ts +4 -0
  86. package/dist/shared/components/MultiVariantTooltip.js +3 -2
  87. package/dist/shared/components/RectBg.js +4 -2
  88. package/dist/shared/components/SetColorDialog.js +1 -1
  89. package/dist/shared/components/SourcesDataGrid.d.ts +2 -1
  90. package/dist/shared/components/SourcesDataGrid.js +40 -47
  91. package/dist/shared/components/SourcesGrid.js +1 -1
  92. package/dist/shared/components/SourcesGridHeader.d.ts +2 -1
  93. package/dist/shared/drawAlleleCount.d.ts +2 -1
  94. package/dist/shared/drawAlleleCount.js +26 -24
  95. package/dist/shared/drawPhased.d.ts +1 -1
  96. package/dist/shared/drawPhased.js +14 -10
  97. package/dist/shared/minorAlleleFrequencyUtils.d.ts +9 -4
  98. package/dist/shared/minorAlleleFrequencyUtils.js +19 -14
  99. package/dist/shared/sourcesGridUtils.d.ts +3 -2
  100. package/esm/LinearVariantDisplay/model.d.ts +1 -1
  101. package/esm/MultiLinearVariantDisplay/components/VariantDisplayComponent.js +2 -2
  102. package/esm/MultiLinearVariantDisplay/index.js +1 -1
  103. package/esm/MultiLinearVariantDisplay/model.d.ts +40 -4
  104. package/esm/MultiLinearVariantDisplay/model.js +0 -1
  105. package/esm/MultiLinearVariantDisplay/renderSvg.js +1 -1
  106. package/esm/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.js +15 -8
  107. package/esm/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.js +2 -2
  108. package/esm/MultiLinearVariantMatrixDisplay/index.js +1 -1
  109. package/esm/MultiLinearVariantMatrixDisplay/model.d.ts +40 -3
  110. package/esm/MultiLinearVariantMatrixDisplay/model.js +1 -0
  111. package/esm/MultiLinearVariantMatrixDisplay/renderSvg.js +1 -1
  112. package/esm/MultiLinearVariantMatrixRenderer/{LinearVariantMatrixRenderer.d.ts → MultiLinearVariantMatrixRenderer.d.ts} +14 -11
  113. package/esm/MultiLinearVariantMatrixRenderer/{LinearVariantMatrixRenderer.js → MultiLinearVariantMatrixRenderer.js} +3 -3
  114. package/esm/MultiLinearVariantMatrixRenderer/components/MultiLinearVariantMatrixRendering.d.ts +8 -0
  115. package/esm/MultiLinearVariantMatrixRenderer/components/MultiLinearVariantMatrixRendering.js +39 -0
  116. package/esm/MultiLinearVariantMatrixRenderer/index.js +4 -4
  117. package/esm/MultiLinearVariantMatrixRenderer/makeImageData.d.ts +3 -3
  118. package/esm/MultiLinearVariantMatrixRenderer/makeImageData.js +73 -19
  119. package/esm/MultiLinearVariantMatrixRenderer/types.d.ts +2 -4
  120. package/esm/MultiLinearVariantRenderer/MultiVariantRenderer.d.ts +34 -5
  121. package/esm/MultiLinearVariantRenderer/MultiVariantRenderer.js +13 -7
  122. package/esm/MultiLinearVariantRenderer/components/{MultiVariantRendering.d.ts → MultiLinearVariantRendering.d.ts} +10 -4
  123. package/esm/MultiLinearVariantRenderer/components/{MultiVariantRendering.js → MultiLinearVariantRendering.js} +25 -7
  124. package/esm/MultiLinearVariantRenderer/components/util.d.ts +1 -0
  125. package/esm/MultiLinearVariantRenderer/components/util.js +12 -0
  126. package/esm/MultiLinearVariantRenderer/index.js +1 -1
  127. package/esm/MultiLinearVariantRenderer/makeImageData.d.ts +9 -0
  128. package/esm/MultiLinearVariantRenderer/makeImageData.js +106 -43
  129. package/esm/MultiLinearVariantRenderer/types.d.ts +2 -0
  130. package/esm/MultiVariantBaseRenderer.d.ts +4 -4
  131. package/esm/SplitVcfTabixAdapter/SplitVcfTabixAdapter.d.ts +0 -1
  132. package/esm/SplitVcfTabixAdapter/SplitVcfTabixAdapter.js +0 -1
  133. package/esm/SplitVcfTabixAdapter/configSchema.js +4 -2
  134. package/esm/VariantFeatureWidget/AltFormatter.d.ts +4 -0
  135. package/esm/VariantFeatureWidget/AltFormatter.js +10 -0
  136. package/esm/VariantFeatureWidget/Checkbox2.js +2 -9
  137. package/esm/VariantFeatureWidget/Formatter.d.ts +3 -0
  138. package/esm/VariantFeatureWidget/Formatter.js +17 -0
  139. package/esm/VariantFeatureWidget/{VariantConsequenceDataGridWrapper.js → VariantConsequence/VariantConsequenceDataGridWrapper.js} +4 -6
  140. package/esm/VariantFeatureWidget/VariantFeatureWidget.js +16 -6
  141. package/esm/VariantFeatureWidget/VariantSampleGrid/VariantGenotypeFrequencyTable.d.ts +4 -0
  142. package/esm/VariantFeatureWidget/VariantSampleGrid/VariantGenotypeFrequencyTable.js +74 -0
  143. package/esm/VariantFeatureWidget/VariantSampleGrid/VariantSampleGrid.d.ts +3 -9
  144. package/esm/VariantFeatureWidget/VariantSampleGrid/VariantSampleGrid.js +43 -22
  145. package/esm/VariantFeatureWidget/VariantSampleGrid/types.d.ts +21 -0
  146. package/esm/VariantFeatureWidget/VariantSampleGrid/util.d.ts +1 -0
  147. package/esm/VariantFeatureWidget/VariantSampleGrid/util.js +11 -0
  148. package/esm/VariantFeatureWidget/stateModelFactory.d.ts +9 -6
  149. package/esm/VariantRPC/MultiVariantClusterGenotypeMatrix.d.ts +2 -16
  150. package/esm/VariantRPC/MultiVariantClusterGenotypeMatrix.js +4 -7
  151. package/esm/VariantRPC/MultiVariantGetGenotypeMatrix.d.ts +2 -15
  152. package/esm/VariantRPC/MultiVariantGetSimplifiedFeatures.d.ts +3 -13
  153. package/esm/VariantRPC/MultiVariantGetSimplifiedFeatures.js +14 -8
  154. package/esm/VariantRPC/getGenotypeMatrix.js +20 -7
  155. package/esm/VariantRPC/types.d.ts +23 -0
  156. package/esm/VcfAdapter/VcfAdapter.d.ts +0 -1
  157. package/esm/VcfAdapter/VcfAdapter.js +0 -1
  158. package/esm/VcfFeature/index.js +0 -1
  159. package/esm/VcfFeature/util.d.ts +2 -0
  160. package/esm/VcfFeature/util.js +121 -25
  161. package/esm/VcfTabixAdapter/VcfTabixAdapter.d.ts +0 -1
  162. package/esm/VcfTabixAdapter/VcfTabixAdapter.js +13 -9
  163. package/esm/getMultiVariantFeaturesAutorun.d.ts +2 -0
  164. package/esm/getMultiVariantFeaturesAutorun.js +9 -2
  165. package/esm/getMultiVariantSourcesAutorun.js +3 -2
  166. package/esm/shared/MultiVariantBaseModel.d.ts +41 -4
  167. package/esm/shared/MultiVariantBaseModel.js +71 -5
  168. package/esm/shared/SharedVariantMixin.d.ts +1 -1
  169. package/esm/shared/components/AddFiltersDialog.d.ts +9 -0
  170. package/esm/shared/components/AddFiltersDialog.js +59 -0
  171. package/esm/shared/components/MultiVariantBaseDisplayComponent.d.ts +5 -0
  172. package/esm/shared/components/MultiVariantBaseDisplayComponent.js +24 -0
  173. package/esm/shared/components/{ClusterDialog → MultiVariantClusterDialog}/ClusterDialog.js +2 -2
  174. package/esm/shared/components/{ClusterDialog → MultiVariantClusterDialog}/ClusterDialogAuto.js +9 -4
  175. package/esm/shared/components/{ClusterDialog → MultiVariantClusterDialog}/ClusterDialogManual.js +29 -28
  176. package/esm/shared/components/{ClusterDialog → MultiVariantClusterDialog}/types.d.ts +1 -0
  177. package/esm/shared/components/MultiVariantClusterDialog/types.js +1 -0
  178. package/{dist/shared/components/ColorLegend.d.ts → esm/shared/components/MultiVariantColorLegend.d.ts} +2 -2
  179. package/esm/shared/components/{ColorLegend.js → MultiVariantColorLegend.js} +6 -4
  180. package/esm/shared/components/MultiVariantCrosshairs.d.ts +7 -0
  181. package/esm/shared/components/MultiVariantCrosshairs.js +35 -0
  182. package/esm/shared/components/MultiVariantLegendBar.d.ts +7 -0
  183. package/esm/shared/components/{LegendBar.js → MultiVariantLegendBar.js} +1 -1
  184. package/esm/shared/components/MultiVariantTooltip.d.ts +4 -0
  185. package/esm/shared/components/MultiVariantTooltip.js +3 -2
  186. package/esm/shared/components/RectBg.js +4 -2
  187. package/esm/shared/components/SetColorDialog.js +1 -1
  188. package/esm/shared/components/SourcesDataGrid.d.ts +2 -1
  189. package/esm/shared/components/SourcesDataGrid.js +40 -47
  190. package/esm/shared/components/SourcesGrid.js +1 -1
  191. package/esm/shared/components/SourcesGridHeader.d.ts +2 -1
  192. package/esm/shared/drawAlleleCount.d.ts +2 -1
  193. package/esm/shared/drawAlleleCount.js +25 -24
  194. package/esm/shared/drawPhased.d.ts +1 -1
  195. package/esm/shared/drawPhased.js +14 -10
  196. package/esm/shared/minorAlleleFrequencyUtils.d.ts +9 -4
  197. package/esm/shared/minorAlleleFrequencyUtils.js +20 -15
  198. package/esm/shared/sourcesGridUtils.d.ts +3 -2
  199. package/package.json +12 -11
  200. package/dist/MultiLinearVariantDisplay/components/Crosshair.d.ts +0 -7
  201. package/dist/MultiLinearVariantDisplay/components/Crosshair.js +0 -35
  202. package/dist/MultiLinearVariantMatrixDisplay/components/Crosshair.d.ts +0 -7
  203. package/dist/MultiLinearVariantMatrixDisplay/components/Crosshair.js +0 -28
  204. package/dist/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.d.ts +0 -7
  205. package/dist/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.js +0 -38
  206. package/dist/MultiLinearVariantRenderer/MultiVariantRendering.d.ts +0 -22
  207. package/dist/MultiLinearVariantRenderer/components/MultiVariantRendering.js +0 -52
  208. package/dist/VariantFeatureWidget/VariantConsequencePanel.d.ts +0 -5
  209. package/dist/VariantFeatureWidget/VariantConsequencePanel.js +0 -15
  210. package/dist/VariantRPC/cluster.d.ts +0 -17
  211. package/dist/VariantRPC/cluster.js +0 -84
  212. package/dist/shared/components/LegendBar.d.ts +0 -18
  213. package/esm/MultiLinearVariantDisplay/components/Crosshair.d.ts +0 -7
  214. package/esm/MultiLinearVariantDisplay/components/Crosshair.js +0 -30
  215. package/esm/MultiLinearVariantMatrixDisplay/components/Crosshair.d.ts +0 -7
  216. package/esm/MultiLinearVariantMatrixDisplay/components/Crosshair.js +0 -23
  217. package/esm/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.d.ts +0 -7
  218. package/esm/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.js +0 -36
  219. package/esm/MultiLinearVariantRenderer/MultiVariantRendering.d.ts +0 -22
  220. package/esm/MultiLinearVariantRenderer/MultiVariantRendering.js +0 -47
  221. package/esm/VariantFeatureWidget/VariantConsequencePanel.d.ts +0 -5
  222. package/esm/VariantFeatureWidget/VariantConsequencePanel.js +0 -9
  223. package/esm/VariantRPC/cluster.d.ts +0 -17
  224. package/esm/VariantRPC/cluster.js +0 -79
  225. package/esm/shared/components/LegendBar.d.ts +0 -18
  226. /package/dist/VariantFeatureWidget/{VariantConsequenceDataGrid.d.ts → VariantConsequence/VariantConsequenceDataGrid.d.ts} +0 -0
  227. /package/dist/VariantFeatureWidget/{VariantConsequenceDataGrid.js → VariantConsequence/VariantConsequenceDataGrid.js} +0 -0
  228. /package/dist/VariantFeatureWidget/{VariantConsequenceDataGridWrapper.d.ts → VariantConsequence/VariantConsequenceDataGridWrapper.d.ts} +0 -0
  229. /package/dist/{shared/components/ClusterDialog → VariantFeatureWidget/VariantSampleGrid}/types.js +0 -0
  230. /package/dist/shared/components/{ClusterDialog → MultiVariantClusterDialog}/ClusterDialog.d.ts +0 -0
  231. /package/dist/shared/components/{ClusterDialog → MultiVariantClusterDialog}/ClusterDialogAuto.d.ts +0 -0
  232. /package/dist/shared/components/{ClusterDialog → MultiVariantClusterDialog}/ClusterDialogManual.d.ts +0 -0
  233. /package/esm/VariantFeatureWidget/{VariantConsequenceDataGrid.d.ts → VariantConsequence/VariantConsequenceDataGrid.d.ts} +0 -0
  234. /package/esm/VariantFeatureWidget/{VariantConsequenceDataGrid.js → VariantConsequence/VariantConsequenceDataGrid.js} +0 -0
  235. /package/esm/VariantFeatureWidget/{VariantConsequenceDataGridWrapper.d.ts → VariantConsequence/VariantConsequenceDataGridWrapper.d.ts} +0 -0
  236. /package/esm/{shared/components/ClusterDialog → VariantFeatureWidget/VariantSampleGrid}/types.js +0 -0
  237. /package/esm/shared/components/{ClusterDialog → MultiVariantClusterDialog}/ClusterDialog.d.ts +0 -0
  238. /package/esm/shared/components/{ClusterDialog → MultiVariantClusterDialog}/ClusterDialogAuto.d.ts +0 -0
  239. /package/esm/shared/components/{ClusterDialog → MultiVariantClusterDialog}/ClusterDialogManual.d.ts +0 -0
@@ -14,56 +14,49 @@ const useStyles = makeStyles()({
14
14
  });
15
15
  export default function SourcesDataGrid({ rows, onChange, setSelected, }) {
16
16
  const { classes } = useStyles();
17
+ const { id: _id, name: _name, label: _label, color: _color, baseUri: _baseUri, HP: _HP, ...rest } = rows[0];
17
18
  const [currSort, setCurrSort] = useState({
18
19
  idx: 0,
19
20
  field: null,
20
21
  });
21
- if (rows.length) {
22
- const { id: _id, name: _name, label: _label, color: _color, baseUri: _baseUri, HP: _HP, ...rest } = rows[0];
23
- return (_jsx("div", { style: { height: 400, width: '100%' }, children: _jsx(DataGrid, { checkboxSelection: true, disableRowSelectionOnClick: true, onRowSelectionModelChange: arg => {
24
- setSelected(arg);
25
- }, rows: rows, rowHeight: 25, columnHeaderHeight: 33, columns: [
26
- {
27
- field: 'color',
28
- headerName: 'Color',
29
- renderCell: params => {
30
- const { value, id } = params;
31
- return (_jsx(ColorPicker, { color: value || 'blue', onChange: c => {
32
- const elt = rows.find(f => f.name === id);
33
- if (elt) {
34
- elt.color = c;
35
- }
36
- onChange([...rows]);
37
- } }));
38
- },
22
+ return (_jsx("div", { style: { height: 400, width: '100%' }, children: _jsx(DataGrid, { checkboxSelection: true, onRowSelectionModelChange: arg => {
23
+ setSelected([...arg.ids]);
24
+ }, rows: rows, rowHeight: 25, columnHeaderHeight: 33, columns: [
25
+ {
26
+ field: 'color',
27
+ headerName: 'Color',
28
+ renderCell: params => {
29
+ const { value, id } = params;
30
+ return (_jsx(ColorPicker, { color: value || 'blue', onChange: c => {
31
+ const elt = rows.find(f => f.name === id);
32
+ if (elt) {
33
+ elt.color = c;
34
+ }
35
+ onChange([...rows]);
36
+ } }));
39
37
  },
40
- {
41
- field: 'label',
42
- headerName: 'Name',
43
- width: measureGridWidth(rows.map(r => r.label)),
44
- },
45
- ...Object.keys(rest).map(val => ({
46
- field: val,
47
- renderCell: ({ value }) => (_jsx("div", { className: classes.cell, children: _jsx(SanitizedHTML, { html: getStr(value) }) })),
48
- width: measureGridWidth(rows.map(r => `${r[val]}`)),
49
- })),
50
- ], sortModel: [], onSortModelChange: args => {
51
- const sort = args[0];
52
- const idx = (currSort.idx + 1) % 2;
53
- const field = sort.field || currSort.field;
54
- setCurrSort({ idx, field });
55
- onChange(field
56
- ? [...rows].sort((a, b) => {
57
- const aa = getStr(a[field]);
58
- const bb = getStr(b[field]);
59
- return idx === 1
60
- ? aa.localeCompare(bb)
61
- : bb.localeCompare(aa);
62
- })
63
- : rows);
64
- } }) }));
65
- }
66
- else {
67
- return _jsx("div", { children: "No rows, check sample metadata configuration" });
68
- }
38
+ },
39
+ {
40
+ field: 'label',
41
+ headerName: 'Name',
42
+ width: measureGridWidth(rows.map(r => r.label)),
43
+ },
44
+ ...Object.keys(rest).map(val => ({
45
+ field: val,
46
+ renderCell: ({ value }) => (_jsx("div", { className: classes.cell, children: _jsx(SanitizedHTML, { html: getStr(value) }) })),
47
+ width: measureGridWidth(rows.map(r => `${r[val]}`)),
48
+ })),
49
+ ], sortModel: [], onSortModelChange: args => {
50
+ const sort = args[0];
51
+ const idx = (currSort.idx + 1) % 2;
52
+ const field = sort.field || currSort.field;
53
+ setCurrSort({ idx, field });
54
+ onChange(field
55
+ ? [...rows].sort((a, b) => {
56
+ const aa = getStr(a[field]);
57
+ const bb = getStr(b[field]);
58
+ return idx === 1 ? aa.localeCompare(bb) : bb.localeCompare(aa);
59
+ })
60
+ : rows);
61
+ } }) }));
69
62
  }
@@ -4,6 +4,6 @@ import SourcesDataGrid from './SourcesDataGrid';
4
4
  import SourcesGridHeader from './SourcesGridHeader';
5
5
  function SourcesGrid({ rows, onChange, showTips, }) {
6
6
  const [selected, setSelected] = useState([]);
7
- return (_jsxs("div", { children: [_jsx(SourcesGridHeader, { selected: selected, rows: rows, showTips: showTips, onChange: onChange }), _jsx(SourcesDataGrid, { rows: rows, onChange: onChange, setSelected: setSelected })] }));
7
+ return (_jsxs("div", { children: [_jsx(SourcesGridHeader, { selected: selected, rows: rows, showTips: showTips, onChange: onChange }), rows.length ? (_jsx(SourcesDataGrid, { rows: rows, onChange: onChange, setSelected: setSelected })) : (_jsx("div", { children: "No rows" }))] }));
8
8
  }
9
9
  export default SourcesGrid;
@@ -1,7 +1,8 @@
1
1
  import type { Source } from '../types';
2
+ import type { GridRowId } from '@mui/x-data-grid';
2
3
  export default function SourcesGridHeader({ selected, onChange, rows, showTips, }: {
3
4
  onChange: (arg: Source[]) => void;
4
5
  rows: Source[];
5
- selected: string[];
6
+ selected: GridRowId[];
6
7
  showTips: boolean;
7
8
  }): import("react/jsx-runtime").JSX.Element;
@@ -1 +1,2 @@
1
- export declare function drawColorAlleleCount(alleles: string[], ctx: CanvasRenderingContext2D, x: number, y: number, w: number, h: number, mostFrequentAlt: string): void;
1
+ export declare function getColorAlleleCount(ref: number, alt: number, alt2: number, uncalled: number, total: number, drawReference?: boolean): any;
2
+ export declare function drawColorAlleleCount(c: string, ctx: CanvasRenderingContext2D, x: number, y: number, w: number, h: number, featureType?: string, featureStrand?: number, alpha?: number): void;
@@ -1,27 +1,8 @@
1
1
  import { colord } from '@jbrowse/core/util/colord';
2
2
  import { f2 } from './constants';
3
- function getColorAlleleCount(alleles, mostFrequentAlt) {
4
- const total = alleles.length;
5
- let alt = 0;
6
- let uncalled = 0;
7
- let alt2 = 0;
8
- let ref = 0;
9
- for (const allele of alleles) {
10
- if (allele === mostFrequentAlt) {
11
- alt++;
12
- }
13
- else if (allele === '0') {
14
- ref++;
15
- }
16
- else if (allele === '.') {
17
- uncalled++;
18
- }
19
- else {
20
- alt2++;
21
- }
22
- }
3
+ export function getColorAlleleCount(ref, alt, alt2, uncalled, total, drawReference = true) {
23
4
  if (ref === total) {
24
- return `#ccc`;
5
+ return drawReference ? '#ccc' : '';
25
6
  }
26
7
  else {
27
8
  let a1;
@@ -39,7 +20,27 @@ function getColorAlleleCount(alleles, mostFrequentAlt) {
39
20
  return (a1 === null || a1 === void 0 ? void 0 : a1.toHex()) || 'black';
40
21
  }
41
22
  }
42
- export function drawColorAlleleCount(alleles, ctx, x, y, w, h, mostFrequentAlt) {
43
- ctx.fillStyle = getColorAlleleCount(alleles, mostFrequentAlt);
44
- ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
23
+ export function drawColorAlleleCount(c, ctx, x, y, w, h, featureType = '', featureStrand, alpha = 1) {
24
+ ctx.fillStyle = alpha !== 1 ? colord(c).alpha(alpha).toHex() : c;
25
+ if (featureType === 'inversion') {
26
+ if (featureStrand === 1) {
27
+ ctx.beginPath();
28
+ ctx.moveTo(x - f2, y - f2);
29
+ ctx.lineTo(x - f2, y + h + f2);
30
+ ctx.lineTo(x + w + f2, y + h / 2);
31
+ ctx.closePath();
32
+ ctx.fill();
33
+ }
34
+ else {
35
+ ctx.beginPath();
36
+ ctx.moveTo(x + w + f2, y - f2);
37
+ ctx.lineTo(x + w + f2, y + h + f2);
38
+ ctx.lineTo(x - f2, y + h / 2);
39
+ ctx.closePath();
40
+ ctx.fill();
41
+ }
42
+ }
43
+ else {
44
+ ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
45
+ }
45
46
  }
@@ -1 +1 @@
1
- export declare function drawPhased(alleles: string[], ctx: CanvasRenderingContext2D, x: number, y: number, w: number, h: number, HP: number, PS?: string): void;
1
+ export declare function drawPhased(alleles: string[], ctx: CanvasRenderingContext2D, x: number, y: number, w: number, h: number, HP: number, PS?: string, drawReference?: boolean, alpha?: number): string | undefined;
@@ -1,18 +1,22 @@
1
1
  import { set1 } from '@jbrowse/core/ui/colors';
2
+ import { colord } from '@jbrowse/core/util/colord';
2
3
  import { f2 } from './constants';
3
4
  import { colorify } from './util';
4
- function getColorPhased(alleles, HP) {
5
+ function getColorPhased(alleles, HP, drawReference = true) {
5
6
  const c = +alleles[HP];
6
- return c ? set1[c - 1] || 'black' : '#ccc';
7
+ return c ? set1[c - 1] || 'black' : drawReference ? '#ccc' : undefined;
7
8
  }
8
- function getColorPhasedWithPhaseSet(alleles, HP, PS) {
9
+ function getColorPhasedWithPhaseSet(alleles, HP, PS, drawReference = true) {
9
10
  const c = +alleles[HP];
10
- return c ? colorify(+PS) || 'black' : '#ccc';
11
+ return c ? colorify(+PS) || 'black' : drawReference ? '#ccc' : undefined;
11
12
  }
12
- export function drawPhased(alleles, ctx, x, y, w, h, HP, PS) {
13
- ctx.fillStyle =
14
- PS !== undefined
15
- ? getColorPhasedWithPhaseSet(alleles, HP, PS)
16
- : getColorPhased(alleles, HP);
17
- ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
13
+ export function drawPhased(alleles, ctx, x, y, w, h, HP, PS, drawReference = true, alpha = 1) {
14
+ const c = PS !== undefined
15
+ ? getColorPhasedWithPhaseSet(alleles, HP, PS, drawReference)
16
+ : getColorPhased(alleles, HP, drawReference);
17
+ if (c) {
18
+ ctx.fillStyle = alpha !== 1 ? colord(c).alpha(alpha).toHex() : c;
19
+ ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
20
+ }
21
+ return c;
18
22
  }
@@ -1,9 +1,14 @@
1
1
  import type { Feature } from '@jbrowse/core/util';
2
2
  export declare function findSecondLargestNumber(arr: Iterable<number>): number;
3
- export declare function calculateAlleleCounts(feat: Feature): Map<any, any>;
4
- export declare function calculateMinorAlleleFrequency(alleleCounts: Map<string, number>): number;
5
- export declare function getFeaturesThatPassMinorAlleleFrequencyFilter(feats: Iterable<Feature>, minorAlleleFrequencyFilter: number, lengthCutoffFilter?: number): {
3
+ export declare function calculateAlleleCounts(feat: Feature): Record<string, number>;
4
+ export declare function calculateMinorAlleleFrequency(alleleCounts: Record<string, number>): number;
5
+ export declare function getFeaturesThatPassMinorAlleleFrequencyFilter({ features, minorAlleleFrequencyFilter, lengthCutoffFilter, stopToken, }: {
6
+ features: Iterable<Feature>;
7
+ minorAlleleFrequencyFilter: number;
8
+ lengthCutoffFilter: number;
9
+ stopToken?: string;
10
+ }): {
6
11
  feature: Feature;
7
12
  mostFrequentAlt: string;
8
- alleleCounts: Map<string, number>;
13
+ alleleCounts: Record<string, number>;
9
14
  }[];
@@ -1,4 +1,4 @@
1
- import { sum } from '@jbrowse/core/util';
1
+ import { forEachWithStopTokenCheck, sum } from '@jbrowse/core/util';
2
2
  export function findSecondLargestNumber(arr) {
3
3
  let firstMax = 0;
4
4
  let secondMax = 0;
@@ -14,24 +14,30 @@ export function findSecondLargestNumber(arr) {
14
14
  return secondMax;
15
15
  }
16
16
  export function calculateAlleleCounts(feat) {
17
- const samp = feat.get('genotypes');
18
- const alleleCounts = new Map();
19
- for (const val of Object.values(samp)) {
20
- const alleles = val.split(/[/|]/);
21
- for (const allele of alleles) {
22
- alleleCounts.set(allele, (alleleCounts.get(allele) || 0) + 1);
17
+ var _a;
18
+ const genotypes = feat.get('genotypes');
19
+ const alleleCounts = { 0: 0, 1: 0, '.': 0 };
20
+ const cacheSplit = {};
21
+ const vals = Object.values(genotypes);
22
+ const len = vals.length;
23
+ for (let i = 0; i < len; i++) {
24
+ const genotype = vals[i];
25
+ const alleles = cacheSplit[genotype] || (cacheSplit[genotype] = genotype.split(/[/|]/));
26
+ for (let i = 0, len = alleles.length; i < len; i++) {
27
+ const a = alleles[i];
28
+ alleleCounts[a] = ((_a = alleleCounts[a]) !== null && _a !== void 0 ? _a : 0) + 1;
23
29
  }
24
30
  }
25
31
  return alleleCounts;
26
32
  }
27
33
  export function calculateMinorAlleleFrequency(alleleCounts) {
28
- return (findSecondLargestNumber(alleleCounts.values()) /
29
- (sum(alleleCounts.values()) || 1));
34
+ return (findSecondLargestNumber(Object.values(alleleCounts)) /
35
+ (sum(Object.values(alleleCounts)) || 1));
30
36
  }
31
37
  function getMostFrequentAlt(alleleCounts) {
32
38
  let mostFrequentAlt;
33
39
  let max = 0;
34
- for (const [alt, altCount] of alleleCounts.entries()) {
40
+ for (const [alt, altCount] of Object.entries(alleleCounts)) {
35
41
  if (alt !== '.' && alt !== '0') {
36
42
  if (altCount > max) {
37
43
  mostFrequentAlt = alt;
@@ -41,21 +47,20 @@ function getMostFrequentAlt(alleleCounts) {
41
47
  }
42
48
  return mostFrequentAlt;
43
49
  }
44
- export function getFeaturesThatPassMinorAlleleFrequencyFilter(feats, minorAlleleFrequencyFilter, lengthCutoffFilter = 10) {
50
+ export function getFeaturesThatPassMinorAlleleFrequencyFilter({ features, minorAlleleFrequencyFilter, lengthCutoffFilter, stopToken, }) {
45
51
  const results = [];
46
- for (const feature of feats) {
52
+ forEachWithStopTokenCheck(features, stopToken, feature => {
47
53
  if (feature.get('end') - feature.get('start') <= lengthCutoffFilter) {
48
54
  const alleleCounts = calculateAlleleCounts(feature);
49
55
  if (calculateMinorAlleleFrequency(alleleCounts) >=
50
56
  minorAlleleFrequencyFilter) {
51
- const mostFrequentAlt = getMostFrequentAlt(alleleCounts);
52
57
  results.push({
53
58
  feature,
54
- mostFrequentAlt,
59
+ mostFrequentAlt: getMostFrequentAlt(alleleCounts),
55
60
  alleleCounts,
56
61
  });
57
62
  }
58
63
  }
59
- }
64
+ });
60
65
  return results;
61
66
  }
@@ -1,10 +1,11 @@
1
+ import type { GridRowId } from '@mui/x-data-grid';
1
2
  export declare function moveUp(arr: {
2
3
  name: string;
3
- }[], sel: string[], by?: number): {
4
+ }[], sel: GridRowId[], by?: number): {
4
5
  name: string;
5
6
  }[];
6
7
  export declare function moveDown(arr: {
7
8
  name: string;
8
- }[], sel: string[], by?: number): {
9
+ }[], sel: GridRowId[], by?: number): {
9
10
  name: string;
10
11
  }[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-variants",
3
- "version": "3.2.0",
3
+ "version": "3.4.0",
4
4
  "description": "JBrowse 2 variant adapters, tracks, etc.",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -37,16 +37,17 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@flatten-js/interval-tree": "^1.0.15",
40
- "@gmod/bgzf-filehandle": "^2.0.1",
41
- "@gmod/tabix": "^2.0.0",
40
+ "@gmod/bgzf-filehandle": "^3.0.2",
41
+ "@gmod/tabix": "^3.0.1",
42
42
  "@gmod/vcf": "^6.0.8",
43
- "@jbrowse/core": "^3.2.0",
44
- "@jbrowse/plugin-circular-view": "^3.2.0",
45
- "@jbrowse/plugin-linear-genome-view": "^3.2.0",
46
- "@jbrowse/sv-core": "^3.2.0",
47
- "@mui/icons-material": "^6.0.0",
48
- "@mui/material": "^6.0.0",
49
- "@mui/x-data-grid": "^7.0.0",
43
+ "@jbrowse/core": "^3.4.0",
44
+ "@jbrowse/plugin-circular-view": "^3.4.0",
45
+ "@jbrowse/plugin-linear-genome-view": "^3.4.0",
46
+ "@jbrowse/sv-core": "^3.4.0",
47
+ "@mui/icons-material": "^7.0.0",
48
+ "@mui/material": "^7.0.0",
49
+ "@mui/x-data-grid": "^8.0.0",
50
+ "escape-html": "^1.0.3",
50
51
  "mobx": "^6.0.0",
51
52
  "mobx-react": "^9.0.0",
52
53
  "mobx-state-tree": "^5.0.0",
@@ -62,5 +63,5 @@
62
63
  "distModule": "esm/index.js",
63
64
  "srcModule": "src/index.ts",
64
65
  "module": "esm/index.js",
65
- "gitHead": "c750e3f56706a490c19ba75abd807fec5e38aebf"
66
+ "gitHead": "a9f1ac35fc2dd810bae92cdaf1fc19995bee4413"
66
67
  }
@@ -1,7 +0,0 @@
1
- import type { MultiLinearVariantDisplayModel } from '../model';
2
- declare const Crosshair: ({ mouseX, mouseY, model, }: {
3
- mouseX: number;
4
- mouseY: number;
5
- model: MultiLinearVariantDisplayModel;
6
- }) => import("react/jsx-runtime").JSX.Element | null;
7
- export default Crosshair;
@@ -1,35 +0,0 @@
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 jsx_runtime_1 = require("react/jsx-runtime");
7
- const util_1 = require("@jbrowse/core/util");
8
- const mobx_react_1 = require("mobx-react");
9
- const mui_1 = require("tss-react/mui");
10
- const MultiVariantTooltip_1 = __importDefault(require("../../shared/components/MultiVariantTooltip"));
11
- const useStyles = (0, mui_1.makeStyles)()({
12
- rel: {
13
- position: 'relative',
14
- },
15
- cursor: {
16
- pointerEvents: 'none',
17
- zIndex: 800,
18
- position: 'absolute',
19
- },
20
- color: {
21
- width: 10,
22
- height: 10,
23
- },
24
- });
25
- const Crosshair = (0, mobx_react_1.observer)(function ({ mouseX, mouseY, model, }) {
26
- const { classes } = useStyles();
27
- const { hoveredGenotype, height, scrollTop, rowHeight, sources } = model;
28
- const { width } = (0, util_1.getContainingView)(model);
29
- const source = sources === null || sources === void 0 ? void 0 : sources[Math.floor(mouseY / rowHeight)];
30
- const y = mouseY - scrollTop;
31
- return source ? ((0, jsx_runtime_1.jsxs)("div", { className: classes.rel, children: [(0, jsx_runtime_1.jsxs)("svg", { className: classes.cursor, width: width, height: height, style: {
32
- top: scrollTop,
33
- }, children: [(0, jsx_runtime_1.jsx)("line", { x1: 0, x2: width, y1: y, y2: y, stroke: "black" }), (0, jsx_runtime_1.jsx)("line", { x1: mouseX, x2: mouseX, y1: 0, y2: height, stroke: "black" })] }), (0, jsx_runtime_1.jsx)(MultiVariantTooltip_1.default, { source: { ...source, hoveredGenotype } })] })) : null;
34
- });
35
- exports.default = Crosshair;
@@ -1,7 +0,0 @@
1
- import type { MultiLinearVariantMatrixDisplayModel } from '../model';
2
- declare const Crosshair: ({ mouseX, mouseY, model, }: {
3
- mouseX: number;
4
- mouseY: number;
5
- model: MultiLinearVariantMatrixDisplayModel;
6
- }) => import("react/jsx-runtime").JSX.Element | null;
7
- export default Crosshair;
@@ -1,28 +0,0 @@
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 jsx_runtime_1 = require("react/jsx-runtime");
7
- const util_1 = require("@jbrowse/core/util");
8
- const mobx_react_1 = require("mobx-react");
9
- const mui_1 = require("tss-react/mui");
10
- const MultiVariantTooltip_1 = __importDefault(require("../../shared/components/MultiVariantTooltip"));
11
- const useStyles = (0, mui_1.makeStyles)()({
12
- cursor: {
13
- pointerEvents: 'none',
14
- zIndex: 800,
15
- position: 'relative',
16
- },
17
- });
18
- const Crosshair = (0, mobx_react_1.observer)(function ({ mouseX, mouseY, model, }) {
19
- const { classes } = useStyles();
20
- const { hoveredGenotype, lineZoneHeight, totalHeight, rowHeight, sources } = model;
21
- const { width } = (0, util_1.getContainingView)(model);
22
- const source = sources === null || sources === void 0 ? void 0 : sources[Math.floor((mouseY - lineZoneHeight) / rowHeight)];
23
- const yoff = mouseY - lineZoneHeight;
24
- return source ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("svg", { className: classes.cursor, width: width, height: totalHeight, style: {
25
- top: lineZoneHeight,
26
- }, children: [(0, jsx_runtime_1.jsx)("line", { x1: 0, x2: width, y1: yoff, y2: yoff, stroke: "black" }), (0, jsx_runtime_1.jsx)("line", { x1: mouseX, x2: mouseX, y1: 0, y2: totalHeight, stroke: "black" })] }), (0, jsx_runtime_1.jsx)(MultiVariantTooltip_1.default, { source: { ...source, hoveredGenotype } })] })) : null;
27
- });
28
- exports.default = Crosshair;
@@ -1,7 +0,0 @@
1
- declare const LinearVariantMatrixRendering: (props: {
2
- width: number;
3
- height: number;
4
- displayModel: any;
5
- arr: string[];
6
- }) => import("react/jsx-runtime").JSX.Element;
7
- export default LinearVariantMatrixRendering;
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const react_1 = require("react");
5
- const ui_1 = require("@jbrowse/core/ui");
6
- const mobx_react_1 = require("mobx-react");
7
- const LinearVariantMatrixRendering = (0, mobx_react_1.observer)(function (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 }) }));
37
- });
38
- exports.default = LinearVariantMatrixRendering;
@@ -1,22 +0,0 @@
1
- import RBush from 'rbush';
2
- import type { Source } from '../shared/types';
3
- import type { Feature } from '@jbrowse/core/util';
4
- import type { Region } from '@jbrowse/core/util/types';
5
- declare const MultiVariantRendering: (props: {
6
- regions: Region[];
7
- features: Map<string, Feature>;
8
- bpPerPx: number;
9
- width: number;
10
- height: number;
11
- sources: Source[];
12
- scrollTop: number;
13
- totalHeight: number;
14
- rbush: RBush<{
15
- genotype: string;
16
- }>;
17
- displayModel: any;
18
- onMouseLeave?: (event: React.MouseEvent) => void;
19
- onMouseMove?: (event: React.MouseEvent, arg?: Feature) => void;
20
- onFeatureClick?: (event: React.MouseEvent, arg?: Feature) => void;
21
- }) => import("react/jsx-runtime").JSX.Element;
22
- export default MultiVariantRendering;
@@ -1,52 +0,0 @@
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 jsx_runtime_1 = require("react/jsx-runtime");
7
- const react_1 = require("react");
8
- const ui_1 = require("@jbrowse/core/ui");
9
- const mobx_react_1 = require("mobx-react");
10
- const rbush_1 = __importDefault(require("rbush"));
11
- const MultiVariantRendering = (0, mobx_react_1.observer)(function (props) {
12
- const { totalHeight, scrollTop } = props;
13
- const { rbush, displayModel } = props;
14
- const ref = (0, react_1.useRef)(null);
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: {
43
- overflow: 'visible',
44
- position: 'relative',
45
- height: totalHeight,
46
- }, children: (0, jsx_runtime_1.jsx)(ui_1.PrerenderedCanvas, { ...props, style: {
47
- position: 'absolute',
48
- left: 0,
49
- top: scrollTop,
50
- } }) }));
51
- });
52
- exports.default = MultiVariantRendering;
@@ -1,5 +0,0 @@
1
- export default function VariantConsequencePanel({ data, fields, title, }: {
2
- data: string[];
3
- fields: string[];
4
- title: string;
5
- }): import("react/jsx-runtime").JSX.Element | null;
@@ -1,15 +0,0 @@
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.default = VariantConsequencePanel;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- const BaseCard_1 = __importDefault(require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard"));
9
- const VariantConsequenceDataGridWrapper_1 = __importDefault(require("./VariantConsequenceDataGridWrapper"));
10
- function VariantConsequencePanel({ data, fields, title, }) {
11
- return data.length ? ((0, jsx_runtime_1.jsx)(BaseCard_1.default, { title: title, children: (0, jsx_runtime_1.jsx)(VariantConsequenceDataGridWrapper_1.default, { rows: data.map((elt, id) => ({
12
- id,
13
- ...Object.fromEntries(elt.split('|').map((e, i) => [fields[i], e])),
14
- })), columns: fields.map(c => ({ field: c })) }) })) : null;
15
- }
@@ -1,17 +0,0 @@
1
- export declare function euclideanDistance(a: number[], b: number[]): number;
2
- export declare function averageDistance(setA: number[], setB: number[], distances: number[][]): number;
3
- export declare function clusterData({ data, distance, linkage, onProgress, stopToken, }: {
4
- data: number[][];
5
- distance?: (a: number[], b: number[]) => number;
6
- linkage?: (a: number[], b: number[], distances: number[][]) => number;
7
- onProgress?: (a: number) => void;
8
- stopToken?: string;
9
- }): {
10
- clusters: {
11
- height: number;
12
- indexes: number[];
13
- } | undefined;
14
- distances: number[][];
15
- order: number[];
16
- clustersGivenK: number[][][];
17
- };