@jbrowse/plugin-variants 2.18.0 → 3.0.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 (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 +99 -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 +96 -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 +12 -13
  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
package/esm/util.d.ts CHANGED
@@ -1,11 +1,8 @@
1
- export interface Source {
2
- baseUri?: string;
3
- name: string;
4
- color?: string;
5
- group?: string;
6
- [key: string]: unknown;
7
- }
1
+ import type { Feature } from '@jbrowse/core/util';
8
2
  export declare function fillRectCtx(x: number, y: number, width: number, height: number, ctx: CanvasRenderingContext2D, color?: string): void;
9
- export declare function getCol(gt: string): "#ccc" | "teal" | "blue" | "#CBC3E3";
10
- export declare const colorPaletteDefault: string[];
3
+ export declare function getCol(gt: string): "blue" | "teal" | "#ccc" | "#CBC3E3";
11
4
  export declare function randomColor(str: string): string;
5
+ export declare function colorify(n: number): string;
6
+ export declare function findSecondLargest(arr: Iterable<number>): number;
7
+ export declare function calculateMinorAlleleFrequency(feat: Feature): number;
8
+ export declare function getFeaturesThatPassMinorAlleleFrequencyFilter(feats: Iterable<Feature>, minorAlleleFrequencyFilter: number): Feature[];
package/esm/util.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { sum } from '@jbrowse/core/util';
1
2
  export function fillRectCtx(x, y, width, height, ctx, color) {
2
3
  if (width < 0) {
3
4
  x += width;
@@ -26,22 +27,51 @@ export function getCol(gt) {
26
27
  return '#CBC3E3';
27
28
  }
28
29
  }
29
- export const colorPaletteDefault = [
30
- 'red',
31
- 'blue',
32
- 'green',
33
- 'orange',
34
- 'purple',
35
- 'cyan',
36
- 'pink',
37
- 'darkblue',
38
- 'darkred',
39
- 'pink',
40
- ];
41
30
  export function randomColor(str) {
42
31
  let sum = 0;
43
32
  for (let i = 0; i < str.length; i++) {
44
33
  sum += str.charCodeAt(i);
45
34
  }
46
- return `hsl(${sum * 10}, 20%, 50%)`;
35
+ return `hsl(${colorify(sum * 10)}, 50%, 50%)`;
36
+ }
37
+ export function colorify(n) {
38
+ return `hsl(${n % 255}, 50%, 50%)`;
39
+ }
40
+ export function findSecondLargest(arr) {
41
+ let firstMax = 0;
42
+ let secondMax = 0;
43
+ for (const num of arr) {
44
+ if (num > firstMax) {
45
+ secondMax = firstMax;
46
+ firstMax = num;
47
+ }
48
+ else if (num > secondMax && num !== firstMax) {
49
+ secondMax = num;
50
+ }
51
+ }
52
+ return secondMax;
53
+ }
54
+ export function calculateMinorAlleleFrequency(feat) {
55
+ if (feat.get('end') - feat.get('start') <= 10) {
56
+ const samp = feat.get('genotypes');
57
+ const alleleCounts = new Map();
58
+ for (const val of Object.values(samp)) {
59
+ const alleles = val.split(/[/|]/);
60
+ for (const allele of alleles) {
61
+ alleleCounts.set(allele, (alleleCounts.get(allele) || 0) + 1);
62
+ }
63
+ }
64
+ return (findSecondLargest(alleleCounts.values()) /
65
+ (sum(alleleCounts.values()) || 1));
66
+ }
67
+ return -1;
68
+ }
69
+ export function getFeaturesThatPassMinorAlleleFrequencyFilter(feats, minorAlleleFrequencyFilter) {
70
+ const mafs = [];
71
+ for (const feat of feats) {
72
+ if (calculateMinorAlleleFrequency(feat) >= minorAlleleFrequencyFilter) {
73
+ mafs.push(feat);
74
+ }
75
+ }
76
+ return mafs;
47
77
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-variants",
3
- "version": "2.18.0",
3
+ "version": "3.0.1",
4
4
  "description": "JBrowse 2 variant adapters, tracks, etc.",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -37,31 +37,30 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@flatten-js/interval-tree": "^1.0.15",
40
- "@gmod/bgzf-filehandle": "^1.4.3",
41
- "@gmod/tabix": "^1.5.6",
40
+ "@gmod/bgzf-filehandle": "^2.0.1",
41
+ "@gmod/tabix": "^2.0.0",
42
42
  "@gmod/vcf": "^6.0.0",
43
- "@jbrowse/sv-core": "^2.18.0",
43
+ "@jbrowse/core": "^3.0.1",
44
+ "@jbrowse/plugin-circular-view": "^3.0.1",
45
+ "@jbrowse/plugin-linear-genome-view": "^3.0.1",
46
+ "@jbrowse/sv-core": "^3.0.1",
44
47
  "@mui/icons-material": "^6.0.0",
45
- "@mui/x-data-grid": "^7.0.0",
46
- "generic-filehandle": "^3.0.0"
47
- },
48
- "peerDependencies": {
49
- "@jbrowse/core": "^2.0.0",
50
- "@jbrowse/plugin-circular-view": "^2.0.0",
51
- "@jbrowse/plugin-linear-genome-view": "^2.0.0",
52
48
  "@mui/material": "^6.0.0",
49
+ "@mui/x-data-grid": "^7.0.0",
53
50
  "mobx": "^6.0.0",
54
51
  "mobx-react": "^9.0.0",
55
52
  "mobx-state-tree": "^5.0.0",
56
- "react": ">=16.8.0",
57
53
  "rxjs": "^7.0.0",
58
54
  "tss-react": "^4.0.0"
59
55
  },
56
+ "peerDependencies": {
57
+ "react": ">=18.0.0"
58
+ },
60
59
  "publishConfig": {
61
60
  "access": "public"
62
61
  },
63
62
  "distModule": "esm/index.js",
64
63
  "srcModule": "src/index.ts",
65
64
  "module": "esm/index.js",
66
- "gitHead": "c344ea60099cb7e460b77f15808946b24a7eee74"
65
+ "gitHead": "aa2f1d1a89d2361c7fd1a93fe29506fa4554f5cc"
67
66
  }
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import type { GridColDef, GridValidRowModel } from '@mui/x-data-grid';
3
- export default function VariantAnnotPanel({ rows, columns, }: {
4
- rows: GridValidRowModel[];
5
- columns: GridColDef[];
6
- }): React.JSX.Element | null;
@@ -1,39 +0,0 @@
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
- exports.default = VariantAnnotPanel;
27
- const react_1 = __importStar(require("react"));
28
- const util_1 = require("@jbrowse/core/util");
29
- const material_1 = require("@mui/material");
30
- const x_data_grid_1 = require("@mui/x-data-grid");
31
- function VariantAnnotPanel({ rows, columns, }) {
32
- const [checked, setChecked] = (0, react_1.useState)(false);
33
- const widths = columns.map(e => (0, util_1.measureGridWidth)(rows.map(r => r[e.field])));
34
- return rows.length ? (react_1.default.createElement("div", null,
35
- react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.Checkbox, { checked: checked, onChange: event => {
36
- setChecked(event.target.checked);
37
- } }), label: react_1.default.createElement(material_1.Typography, { variant: "body2" }, "Show options") }),
38
- react_1.default.createElement(x_data_grid_1.DataGrid, { rowHeight: 25, rows: rows, columns: columns.map((c, i) => ({ ...c, width: widths[i] })), slots: { toolbar: checked ? x_data_grid_1.GridToolbar : null } }))) : null;
39
- }
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- export default function VariantAnnotationTable({ data, fields, title, }: {
3
- data: string[];
4
- fields: string[];
5
- title: string;
6
- }): React.JSX.Element | null;
@@ -1,16 +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 = VariantAnnotationTable;
7
- const react_1 = __importDefault(require("react"));
8
- const BaseCard_1 = __importDefault(require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard"));
9
- const AnnotGrid_1 = __importDefault(require("./AnnotGrid"));
10
- function VariantAnnotationTable({ data, fields, title, }) {
11
- return data.length ? (react_1.default.createElement(BaseCard_1.default, { title: title },
12
- react_1.default.createElement(AnnotGrid_1.default, { rows: data.map((elt, id) => ({
13
- id,
14
- ...Object.fromEntries(elt.split('|').map((e, i) => [fields[i], e])),
15
- })), columns: fields.map(c => ({ field: c })) }))) : null;
16
- }
@@ -1,34 +0,0 @@
1
- declare const WiggleRenderer: 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>>;
34
- export default WiggleRenderer;
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const configuration_1 = require("@jbrowse/core/configuration");
4
- const mobx_state_tree_1 = require("mobx-state-tree");
5
- function x() { }
6
- const WiggleRenderer = (0, configuration_1.ConfigurationSchema)('WiggleRenderer', {
7
- color: {
8
- type: 'color',
9
- description: 'the color of track, overrides posColor and negColor',
10
- defaultValue: '#f0f',
11
- },
12
- posColor: {
13
- type: 'color',
14
- description: 'the color to use when the score is positive',
15
- defaultValue: 'blue',
16
- },
17
- negColor: {
18
- type: 'color',
19
- description: 'the color to use when the score is negative',
20
- defaultValue: 'red',
21
- },
22
- clipColor: {
23
- type: 'color',
24
- description: 'the color of the clipping marker',
25
- defaultValue: 'red',
26
- },
27
- bicolorPivot: {
28
- type: 'stringEnum',
29
- model: mobx_state_tree_1.types.enumeration('Scale type', [
30
- 'numeric',
31
- 'mean',
32
- 'z_score',
33
- 'none',
34
- ]),
35
- description: 'type of bicolor pivot',
36
- defaultValue: 'numeric',
37
- },
38
- bicolorPivotValue: {
39
- type: 'number',
40
- defaultValue: 0,
41
- description: 'value to use for bicolor pivot',
42
- },
43
- }, { explicitlyTyped: true });
44
- exports.default = WiggleRenderer;
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import type { DialogProps } from '@mui/material';
3
- declare const DraggableDialog: (props: DialogProps & {
4
- title: string;
5
- }) => React.JSX.Element;
6
- export default DraggableDialog;
@@ -1,62 +0,0 @@
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 Close_1 = __importDefault(require("@mui/icons-material/Close"));
31
- const material_1 = require("@mui/material");
32
- const mobx_react_1 = require("mobx-react");
33
- const react_draggable_1 = __importDefault(require("react-draggable"));
34
- const mui_1 = require("tss-react/mui");
35
- const useStyles = (0, mui_1.makeStyles)()(theme => ({
36
- closeButton: {
37
- position: 'absolute',
38
- right: theme.spacing(1),
39
- top: theme.spacing(1),
40
- color: theme.palette.grey[500],
41
- },
42
- }));
43
- function PaperComponent(props) {
44
- const ref = (0, react_1.useRef)(null);
45
- return (react_1.default.createElement(react_draggable_1.default, { nodeRef: ref, cancel: '[class*="MuiDialogContent-root"]', onStart: arg => { var _a, _b; return (_b = (_a = arg.target) === null || _a === void 0 ? void 0 : _a.className) === null || _b === void 0 ? void 0 : _b.includes('MuiDialogTitle'); } },
46
- react_1.default.createElement(material_1.Paper, { ref: ref, ...props })));
47
- }
48
- const DraggableDialog = (0, mobx_react_1.observer)(function DraggableDialog(props) {
49
- const { classes } = useStyles();
50
- const { title, children, onClose } = props;
51
- return (react_1.default.createElement(material_1.Dialog, { ...props, PaperComponent: PaperComponent },
52
- react_1.default.createElement(material_1.ScopedCssBaseline, null,
53
- react_1.default.createElement(material_1.DialogTitle, { style: { cursor: 'move' } },
54
- title,
55
- onClose ? (react_1.default.createElement(material_1.IconButton, { className: classes.closeButton, onClick: () => {
56
- onClose();
57
- } },
58
- react_1.default.createElement(Close_1.default, null))) : null),
59
- react_1.default.createElement(material_1.Divider, null),
60
- children)));
61
- });
62
- exports.default = DraggableDialog;
@@ -1,18 +0,0 @@
1
- import React from 'react';
2
- import type { TooltipContentsComponent } from '../Tooltip';
3
- import type { Source } from '../util';
4
- import type { Feature } from '@jbrowse/core/util';
5
- type Coord = [number, number];
6
- declare const VariantTooltip: (props: {
7
- model: {
8
- featureUnderMouse: Feature;
9
- sources: Source[];
10
- rowHeight: number;
11
- };
12
- height: number;
13
- offsetMouseCoord: Coord;
14
- clientMouseCoord: Coord;
15
- clientRect?: DOMRect;
16
- TooltipContents?: TooltipContentsComponent;
17
- }) => React.JSX.Element;
18
- export default VariantTooltip;
@@ -1,38 +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 react_1 = __importDefault(require("react"));
7
- const mobx_react_1 = require("mobx-react");
8
- const Tooltip_1 = __importDefault(require("../Tooltip"));
9
- const en = (n) => n.toLocaleString('en-US');
10
- const TooltipContents = react_1.default.forwardRef(function TooltipContents2({ model, feature }, ref) {
11
- const start = feature.get('start');
12
- const end = feature.get('end');
13
- const refName = feature.get('refName');
14
- const coord = start === end ? en(start) : `${en(start)}..${en(end)}`;
15
- const sources = feature.get('sources');
16
- const source = feature.get('source');
17
- const obj = Object.fromEntries(model.sources.map(ent => [ent.name, ent]));
18
- return (react_1.default.createElement("div", { ref: ref },
19
- [refName, coord].filter(f => !!f).join(':'),
20
- react_1.default.createElement("br", null),
21
- sources ? (react_1.default.createElement("table", null,
22
- react_1.default.createElement("thead", null,
23
- react_1.default.createElement("tr", null,
24
- react_1.default.createElement("th", null, "color"),
25
- react_1.default.createElement("th", null, "source"),
26
- react_1.default.createElement("th", null, "score"))),
27
- react_1.default.createElement("tbody", null, Object.entries(sources).map(([source, data]) => {
28
- var _a;
29
- return (react_1.default.createElement("tr", { key: source },
30
- react_1.default.createElement("td", { style: { background: (_a = obj[source]) === null || _a === void 0 ? void 0 : _a.color } }, " "),
31
- react_1.default.createElement("td", null, source),
32
- react_1.default.createElement("td", null, data.score)));
33
- })))) : (react_1.default.createElement("span", null, source))));
34
- });
35
- const VariantTooltip = (0, mobx_react_1.observer)((props) => {
36
- return react_1.default.createElement(Tooltip_1.default, { useClientY: true, TooltipContents: TooltipContents, ...props });
37
- });
38
- exports.default = VariantTooltip;
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import type { GridColDef, GridValidRowModel } from '@mui/x-data-grid';
3
- export default function VariantAnnotPanel({ rows, columns, }: {
4
- rows: GridValidRowModel[];
5
- columns: GridColDef[];
6
- }): React.JSX.Element | null;
@@ -1,13 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { measureGridWidth } from '@jbrowse/core/util';
3
- import { Checkbox, FormControlLabel, Typography } from '@mui/material';
4
- import { DataGrid, GridToolbar } from '@mui/x-data-grid';
5
- export default function VariantAnnotPanel({ rows, columns, }) {
6
- const [checked, setChecked] = useState(false);
7
- const widths = columns.map(e => measureGridWidth(rows.map(r => r[e.field])));
8
- return rows.length ? (React.createElement("div", null,
9
- React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: checked, onChange: event => {
10
- setChecked(event.target.checked);
11
- } }), label: React.createElement(Typography, { variant: "body2" }, "Show options") }),
12
- React.createElement(DataGrid, { rowHeight: 25, rows: rows, columns: columns.map((c, i) => ({ ...c, width: widths[i] })), slots: { toolbar: checked ? GridToolbar : null } }))) : null;
13
- }
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- export default function VariantAnnotationTable({ data, fields, title, }: {
3
- data: string[];
4
- fields: string[];
5
- title: string;
6
- }): React.JSX.Element | null;
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard';
3
- import AnnotGrid from './AnnotGrid';
4
- export default function VariantAnnotationTable({ data, fields, title, }) {
5
- return data.length ? (React.createElement(BaseCard, { title: title },
6
- React.createElement(AnnotGrid, { rows: data.map((elt, id) => ({
7
- id,
8
- ...Object.fromEntries(elt.split('|').map((e, i) => [fields[i], e])),
9
- })), columns: fields.map(c => ({ field: c })) }))) : null;
10
- }
@@ -1,34 +0,0 @@
1
- declare const WiggleRenderer: 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>>;
34
- export default WiggleRenderer;
@@ -1,42 +0,0 @@
1
- import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
- import { types } from 'mobx-state-tree';
3
- function x() { }
4
- const WiggleRenderer = ConfigurationSchema('WiggleRenderer', {
5
- color: {
6
- type: 'color',
7
- description: 'the color of track, overrides posColor and negColor',
8
- defaultValue: '#f0f',
9
- },
10
- posColor: {
11
- type: 'color',
12
- description: 'the color to use when the score is positive',
13
- defaultValue: 'blue',
14
- },
15
- negColor: {
16
- type: 'color',
17
- description: 'the color to use when the score is negative',
18
- defaultValue: 'red',
19
- },
20
- clipColor: {
21
- type: 'color',
22
- description: 'the color of the clipping marker',
23
- defaultValue: 'red',
24
- },
25
- bicolorPivot: {
26
- type: 'stringEnum',
27
- model: types.enumeration('Scale type', [
28
- 'numeric',
29
- 'mean',
30
- 'z_score',
31
- 'none',
32
- ]),
33
- description: 'type of bicolor pivot',
34
- defaultValue: 'numeric',
35
- },
36
- bicolorPivotValue: {
37
- type: 'number',
38
- defaultValue: 0,
39
- description: 'value to use for bicolor pivot',
40
- },
41
- }, { explicitlyTyped: true });
42
- export default WiggleRenderer;
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import type { DialogProps } from '@mui/material';
3
- declare const DraggableDialog: (props: DialogProps & {
4
- title: string;
5
- }) => React.JSX.Element;
6
- export default DraggableDialog;
@@ -1,34 +0,0 @@
1
- import React, { useRef } from 'react';
2
- import CloseIcon from '@mui/icons-material/Close';
3
- import { Dialog, DialogTitle, Divider, IconButton, Paper, ScopedCssBaseline, } from '@mui/material';
4
- import { observer } from 'mobx-react';
5
- import Draggable from 'react-draggable';
6
- import { makeStyles } from 'tss-react/mui';
7
- const useStyles = makeStyles()(theme => ({
8
- closeButton: {
9
- position: 'absolute',
10
- right: theme.spacing(1),
11
- top: theme.spacing(1),
12
- color: theme.palette.grey[500],
13
- },
14
- }));
15
- function PaperComponent(props) {
16
- const ref = useRef(null);
17
- return (React.createElement(Draggable, { nodeRef: ref, cancel: '[class*="MuiDialogContent-root"]', onStart: arg => { var _a, _b; return (_b = (_a = arg.target) === null || _a === void 0 ? void 0 : _a.className) === null || _b === void 0 ? void 0 : _b.includes('MuiDialogTitle'); } },
18
- React.createElement(Paper, { ref: ref, ...props })));
19
- }
20
- const DraggableDialog = observer(function DraggableDialog(props) {
21
- const { classes } = useStyles();
22
- const { title, children, onClose } = props;
23
- return (React.createElement(Dialog, { ...props, PaperComponent: PaperComponent },
24
- React.createElement(ScopedCssBaseline, null,
25
- React.createElement(DialogTitle, { style: { cursor: 'move' } },
26
- title,
27
- onClose ? (React.createElement(IconButton, { className: classes.closeButton, onClick: () => {
28
- onClose();
29
- } },
30
- React.createElement(CloseIcon, null))) : null),
31
- React.createElement(Divider, null),
32
- children)));
33
- });
34
- export default DraggableDialog;
@@ -1,18 +0,0 @@
1
- import React from 'react';
2
- import type { TooltipContentsComponent } from '../Tooltip';
3
- import type { Source } from '../util';
4
- import type { Feature } from '@jbrowse/core/util';
5
- type Coord = [number, number];
6
- declare const VariantTooltip: (props: {
7
- model: {
8
- featureUnderMouse: Feature;
9
- sources: Source[];
10
- rowHeight: number;
11
- };
12
- height: number;
13
- offsetMouseCoord: Coord;
14
- clientMouseCoord: Coord;
15
- clientRect?: DOMRect;
16
- TooltipContents?: TooltipContentsComponent;
17
- }) => React.JSX.Element;
18
- export default VariantTooltip;
@@ -1,33 +0,0 @@
1
- import React from 'react';
2
- import { observer } from 'mobx-react';
3
- import Tooltip from '../Tooltip';
4
- const en = (n) => n.toLocaleString('en-US');
5
- const TooltipContents = React.forwardRef(function TooltipContents2({ model, feature }, ref) {
6
- const start = feature.get('start');
7
- const end = feature.get('end');
8
- const refName = feature.get('refName');
9
- const coord = start === end ? en(start) : `${en(start)}..${en(end)}`;
10
- const sources = feature.get('sources');
11
- const source = feature.get('source');
12
- const obj = Object.fromEntries(model.sources.map(ent => [ent.name, ent]));
13
- return (React.createElement("div", { ref: ref },
14
- [refName, coord].filter(f => !!f).join(':'),
15
- React.createElement("br", null),
16
- sources ? (React.createElement("table", null,
17
- React.createElement("thead", null,
18
- React.createElement("tr", null,
19
- React.createElement("th", null, "color"),
20
- React.createElement("th", null, "source"),
21
- React.createElement("th", null, "score"))),
22
- React.createElement("tbody", null, Object.entries(sources).map(([source, data]) => {
23
- var _a;
24
- return (React.createElement("tr", { key: source },
25
- React.createElement("td", { style: { background: (_a = obj[source]) === null || _a === void 0 ? void 0 : _a.color } }, " "),
26
- React.createElement("td", null, source),
27
- React.createElement("td", null, data.score)));
28
- })))) : (React.createElement("span", null, source))));
29
- });
30
- const VariantTooltip = observer((props) => {
31
- return React.createElement(Tooltip, { useClientY: true, TooltipContents: TooltipContents, ...props });
32
- });
33
- export default VariantTooltip;