@jbrowse/plugin-wiggle 2.6.1 → 2.6.3

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 (388) hide show
  1. package/dist/BigWigAdapter/BigWigAdapter.js +0 -1
  2. package/dist/BigWigAdapter/configSchema.js +0 -1
  3. package/dist/BigWigAdapter/index.js +0 -1
  4. package/dist/CreateMultiWiggleExtension/ConfirmDialog.js +0 -1
  5. package/dist/CreateMultiWiggleExtension/index.js +0 -1
  6. package/dist/DensityRenderer/DensityRenderer.js +0 -1
  7. package/dist/DensityRenderer/configSchema.js +0 -1
  8. package/dist/DensityRenderer/index.js +0 -1
  9. package/dist/LinePlotRenderer/LinePlotRenderer.js +0 -1
  10. package/dist/LinePlotRenderer/configSchema.js +0 -1
  11. package/dist/LinePlotRenderer/index.js +0 -1
  12. package/dist/LinearWiggleDisplay/components/SetColorDialog.js +0 -1
  13. package/dist/LinearWiggleDisplay/components/Tooltip.js +0 -1
  14. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +0 -1
  15. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js +0 -4
  16. package/dist/LinearWiggleDisplay/index.js +0 -1
  17. package/dist/LinearWiggleDisplay/models/configSchema.js +0 -1
  18. package/dist/LinearWiggleDisplay/models/model.js +0 -1
  19. package/dist/LinearWiggleDisplay/models/renderSvg.js +0 -1
  20. package/dist/MultiDensityRenderer/MultiDensityRenderer.js +1 -2
  21. package/dist/MultiDensityRenderer/configSchema.js +0 -1
  22. package/dist/MultiDensityRenderer/index.js +0 -1
  23. package/dist/MultiLineRenderer/MultiLineRenderer.js +0 -1
  24. package/dist/MultiLineRenderer/configSchema.js +0 -1
  25. package/dist/MultiLineRenderer/index.js +0 -1
  26. package/dist/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +9 -0
  27. package/dist/MultiLinearWiggleDisplay/components/ColorLegend.js +28 -0
  28. package/dist/MultiLinearWiggleDisplay/components/DraggableDialog.js +0 -1
  29. package/dist/MultiLinearWiggleDisplay/components/RectBg.d.ts +9 -0
  30. package/dist/MultiLinearWiggleDisplay/components/RectBg.js +11 -0
  31. package/dist/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +6 -0
  32. package/dist/MultiLinearWiggleDisplay/components/ScoreLegend.js +22 -0
  33. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js +0 -1
  34. package/dist/MultiLinearWiggleDisplay/components/Tooltip.js +0 -1
  35. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +0 -5
  36. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +5 -92
  37. package/dist/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +8 -0
  38. package/dist/MultiLinearWiggleDisplay/components/YScaleBars.js +53 -0
  39. package/dist/MultiLinearWiggleDisplay/components/util.d.ts +2 -0
  40. package/dist/MultiLinearWiggleDisplay/components/util.js +14 -2
  41. package/dist/MultiLinearWiggleDisplay/index.js +0 -1
  42. package/dist/MultiLinearWiggleDisplay/models/configSchema.js +0 -1
  43. package/dist/MultiLinearWiggleDisplay/models/model.js +0 -1
  44. package/dist/MultiLinearWiggleDisplay/models/renderSvg.js +2 -3
  45. package/dist/MultiQuantitativeTrack/configSchema.js +0 -1
  46. package/dist/MultiQuantitativeTrack/index.js +0 -1
  47. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +1 -2
  48. package/dist/MultiRowLineRenderer/configSchema.js +0 -1
  49. package/dist/MultiRowLineRenderer/index.js +0 -1
  50. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +1 -2
  51. package/dist/MultiRowXYPlotRenderer/configSchema.js +0 -1
  52. package/dist/MultiRowXYPlotRenderer/index.js +0 -1
  53. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +0 -1
  54. package/dist/MultiWiggleAdapter/configSchema.js +0 -1
  55. package/dist/MultiWiggleAdapter/index.js +0 -1
  56. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +0 -1
  57. package/dist/MultiWiggleAddTrackWidget/index.js +0 -1
  58. package/dist/MultiWiggleRendering.js +0 -1
  59. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +0 -1
  60. package/dist/MultiXYPlotRenderer/configSchema.js +0 -1
  61. package/dist/MultiXYPlotRenderer/index.js +0 -1
  62. package/dist/QuantitativeTrack/configSchema.js +0 -1
  63. package/dist/QuantitativeTrack/index.js +0 -1
  64. package/dist/Tooltip.js +0 -1
  65. package/dist/WiggleBaseRenderer.js +0 -1
  66. package/dist/WiggleRPC/MultiWiggleGetSources.js +0 -1
  67. package/dist/WiggleRPC/WiggleGetGlobalQuantitativeStats.js +0 -1
  68. package/dist/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js +0 -1
  69. package/dist/WiggleRPC/rpcMethods.js +0 -1
  70. package/dist/WiggleRendering.js +0 -1
  71. package/dist/XYPlotRenderer/XYPlotRenderer.js +0 -1
  72. package/dist/XYPlotRenderer/configSchema.js +0 -1
  73. package/dist/XYPlotRenderer/index.js +0 -1
  74. package/dist/configSchema.js +0 -1
  75. package/dist/drawxy.js +0 -1
  76. package/dist/index.js +0 -1
  77. package/dist/shared/SetMinMaxDialog.js +0 -1
  78. package/dist/shared/YScaleBar.js +0 -1
  79. package/dist/shared/configShared.js +0 -1
  80. package/dist/shared/modelShared.js +0 -1
  81. package/dist/util.js +0 -1
  82. package/esm/BigWigAdapter/BigWigAdapter.js +0 -1
  83. package/esm/BigWigAdapter/configSchema.js +0 -1
  84. package/esm/BigWigAdapter/index.js +0 -1
  85. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js +0 -1
  86. package/esm/CreateMultiWiggleExtension/index.js +0 -1
  87. package/esm/DensityRenderer/DensityRenderer.js +0 -1
  88. package/esm/DensityRenderer/configSchema.js +0 -1
  89. package/esm/DensityRenderer/index.js +0 -1
  90. package/esm/LinePlotRenderer/LinePlotRenderer.js +0 -1
  91. package/esm/LinePlotRenderer/configSchema.js +0 -1
  92. package/esm/LinePlotRenderer/index.js +0 -1
  93. package/esm/LinearWiggleDisplay/components/SetColorDialog.js +0 -1
  94. package/esm/LinearWiggleDisplay/components/Tooltip.js +0 -1
  95. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +0 -1
  96. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.js +0 -2
  97. package/esm/LinearWiggleDisplay/index.js +0 -1
  98. package/esm/LinearWiggleDisplay/models/configSchema.js +0 -1
  99. package/esm/LinearWiggleDisplay/models/model.js +0 -1
  100. package/esm/LinearWiggleDisplay/models/renderSvg.js +0 -1
  101. package/esm/MultiDensityRenderer/MultiDensityRenderer.js +1 -2
  102. package/esm/MultiDensityRenderer/configSchema.js +0 -1
  103. package/esm/MultiDensityRenderer/index.js +0 -1
  104. package/esm/MultiLineRenderer/MultiLineRenderer.js +0 -1
  105. package/esm/MultiLineRenderer/configSchema.js +0 -1
  106. package/esm/MultiLineRenderer/index.js +0 -1
  107. package/esm/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +9 -0
  108. package/esm/MultiLinearWiggleDisplay/components/ColorLegend.js +23 -0
  109. package/esm/MultiLinearWiggleDisplay/components/DraggableDialog.js +0 -1
  110. package/esm/MultiLinearWiggleDisplay/components/RectBg.d.ts +9 -0
  111. package/esm/MultiLinearWiggleDisplay/components/RectBg.js +6 -0
  112. package/esm/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +6 -0
  113. package/esm/MultiLinearWiggleDisplay/components/ScoreLegend.js +17 -0
  114. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js +0 -1
  115. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js +0 -1
  116. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +0 -5
  117. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +3 -90
  118. package/esm/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +8 -0
  119. package/esm/MultiLinearWiggleDisplay/components/YScaleBars.js +47 -0
  120. package/esm/MultiLinearWiggleDisplay/components/util.d.ts +2 -0
  121. package/esm/MultiLinearWiggleDisplay/components/util.js +12 -1
  122. package/esm/MultiLinearWiggleDisplay/index.js +0 -1
  123. package/esm/MultiLinearWiggleDisplay/models/configSchema.js +0 -1
  124. package/esm/MultiLinearWiggleDisplay/models/model.js +0 -1
  125. package/esm/MultiLinearWiggleDisplay/models/renderSvg.js +2 -3
  126. package/esm/MultiQuantitativeTrack/configSchema.js +0 -1
  127. package/esm/MultiQuantitativeTrack/index.js +0 -1
  128. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js +1 -2
  129. package/esm/MultiRowLineRenderer/configSchema.js +0 -1
  130. package/esm/MultiRowLineRenderer/index.js +0 -1
  131. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +1 -2
  132. package/esm/MultiRowXYPlotRenderer/configSchema.js +0 -1
  133. package/esm/MultiRowXYPlotRenderer/index.js +0 -1
  134. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +0 -1
  135. package/esm/MultiWiggleAdapter/configSchema.js +0 -1
  136. package/esm/MultiWiggleAdapter/index.js +0 -1
  137. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +0 -1
  138. package/esm/MultiWiggleAddTrackWidget/index.js +0 -1
  139. package/esm/MultiWiggleRendering.js +0 -1
  140. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js +0 -1
  141. package/esm/MultiXYPlotRenderer/configSchema.js +0 -1
  142. package/esm/MultiXYPlotRenderer/index.js +0 -1
  143. package/esm/QuantitativeTrack/configSchema.js +0 -1
  144. package/esm/QuantitativeTrack/index.js +0 -1
  145. package/esm/Tooltip.js +0 -1
  146. package/esm/WiggleBaseRenderer.js +0 -1
  147. package/esm/WiggleRPC/MultiWiggleGetSources.js +0 -1
  148. package/esm/WiggleRPC/WiggleGetGlobalQuantitativeStats.js +0 -1
  149. package/esm/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js +0 -1
  150. package/esm/WiggleRPC/rpcMethods.js +0 -1
  151. package/esm/WiggleRendering.js +0 -1
  152. package/esm/XYPlotRenderer/XYPlotRenderer.js +0 -1
  153. package/esm/XYPlotRenderer/configSchema.js +0 -1
  154. package/esm/XYPlotRenderer/index.js +0 -1
  155. package/esm/configSchema.js +0 -1
  156. package/esm/drawxy.js +0 -1
  157. package/esm/index.js +0 -1
  158. package/esm/shared/SetMinMaxDialog.js +0 -1
  159. package/esm/shared/YScaleBar.js +0 -1
  160. package/esm/shared/configShared.js +0 -1
  161. package/esm/shared/modelShared.js +0 -1
  162. package/esm/util.js +0 -1
  163. package/package.json +3 -4
  164. package/dist/BigWigAdapter/BigWigAdapter.js.map +0 -1
  165. package/dist/BigWigAdapter/configSchema.js.map +0 -1
  166. package/dist/BigWigAdapter/index.js.map +0 -1
  167. package/dist/CreateMultiWiggleExtension/ConfirmDialog.js.map +0 -1
  168. package/dist/CreateMultiWiggleExtension/index.js.map +0 -1
  169. package/dist/DensityRenderer/DensityRenderer.js.map +0 -1
  170. package/dist/DensityRenderer/configSchema.js.map +0 -1
  171. package/dist/DensityRenderer/index.js.map +0 -1
  172. package/dist/LinePlotRenderer/LinePlotRenderer.js.map +0 -1
  173. package/dist/LinePlotRenderer/configSchema.js.map +0 -1
  174. package/dist/LinePlotRenderer/index.js.map +0 -1
  175. package/dist/LinearWiggleDisplay/components/SetColorDialog.js.map +0 -1
  176. package/dist/LinearWiggleDisplay/components/Tooltip.js.map +0 -1
  177. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js.map +0 -1
  178. package/dist/LinearWiggleDisplay/index.js.map +0 -1
  179. package/dist/LinearWiggleDisplay/models/configSchema.js.map +0 -1
  180. package/dist/LinearWiggleDisplay/models/model.js.map +0 -1
  181. package/dist/LinearWiggleDisplay/models/renderSvg.js.map +0 -1
  182. package/dist/MultiDensityRenderer/MultiDensityRenderer.js.map +0 -1
  183. package/dist/MultiDensityRenderer/configSchema.js.map +0 -1
  184. package/dist/MultiDensityRenderer/index.js.map +0 -1
  185. package/dist/MultiLineRenderer/MultiLineRenderer.js.map +0 -1
  186. package/dist/MultiLineRenderer/configSchema.js.map +0 -1
  187. package/dist/MultiLineRenderer/index.js.map +0 -1
  188. package/dist/MultiLinearWiggleDisplay/components/DraggableDialog.js.map +0 -1
  189. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +0 -1
  190. package/dist/MultiLinearWiggleDisplay/components/Tooltip.js.map +0 -1
  191. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +0 -1
  192. package/dist/MultiLinearWiggleDisplay/components/util.js.map +0 -1
  193. package/dist/MultiLinearWiggleDisplay/index.js.map +0 -1
  194. package/dist/MultiLinearWiggleDisplay/models/configSchema.js.map +0 -1
  195. package/dist/MultiLinearWiggleDisplay/models/model.js.map +0 -1
  196. package/dist/MultiLinearWiggleDisplay/models/renderSvg.js.map +0 -1
  197. package/dist/MultiQuantitativeTrack/configSchema.js.map +0 -1
  198. package/dist/MultiQuantitativeTrack/index.js.map +0 -1
  199. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js.map +0 -1
  200. package/dist/MultiRowLineRenderer/configSchema.js.map +0 -1
  201. package/dist/MultiRowLineRenderer/index.js.map +0 -1
  202. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +0 -1
  203. package/dist/MultiRowXYPlotRenderer/configSchema.js.map +0 -1
  204. package/dist/MultiRowXYPlotRenderer/index.js.map +0 -1
  205. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js.map +0 -1
  206. package/dist/MultiWiggleAdapter/configSchema.js.map +0 -1
  207. package/dist/MultiWiggleAdapter/index.js.map +0 -1
  208. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +0 -1
  209. package/dist/MultiWiggleAddTrackWidget/index.js.map +0 -1
  210. package/dist/MultiWiggleRendering.js.map +0 -1
  211. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +0 -1
  212. package/dist/MultiXYPlotRenderer/configSchema.js.map +0 -1
  213. package/dist/MultiXYPlotRenderer/index.js.map +0 -1
  214. package/dist/QuantitativeTrack/configSchema.js.map +0 -1
  215. package/dist/QuantitativeTrack/index.js.map +0 -1
  216. package/dist/Tooltip.js.map +0 -1
  217. package/dist/WiggleBaseRenderer.js.map +0 -1
  218. package/dist/WiggleRPC/MultiWiggleGetSources.js.map +0 -1
  219. package/dist/WiggleRPC/WiggleGetGlobalQuantitativeStats.js.map +0 -1
  220. package/dist/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js.map +0 -1
  221. package/dist/WiggleRPC/rpcMethods.js.map +0 -1
  222. package/dist/WiggleRendering.js.map +0 -1
  223. package/dist/XYPlotRenderer/XYPlotRenderer.js.map +0 -1
  224. package/dist/XYPlotRenderer/configSchema.js.map +0 -1
  225. package/dist/XYPlotRenderer/index.js.map +0 -1
  226. package/dist/configSchema.js.map +0 -1
  227. package/dist/drawxy.js.map +0 -1
  228. package/dist/index.js.map +0 -1
  229. package/dist/shared/SetMinMaxDialog.js.map +0 -1
  230. package/dist/shared/YScaleBar.js.map +0 -1
  231. package/dist/shared/configShared.js.map +0 -1
  232. package/dist/shared/modelShared.js.map +0 -1
  233. package/dist/util.js.map +0 -1
  234. package/esm/BigWigAdapter/BigWigAdapter.js.map +0 -1
  235. package/esm/BigWigAdapter/configSchema.js.map +0 -1
  236. package/esm/BigWigAdapter/index.js.map +0 -1
  237. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js.map +0 -1
  238. package/esm/CreateMultiWiggleExtension/index.js.map +0 -1
  239. package/esm/DensityRenderer/DensityRenderer.js.map +0 -1
  240. package/esm/DensityRenderer/configSchema.js.map +0 -1
  241. package/esm/DensityRenderer/index.js.map +0 -1
  242. package/esm/LinePlotRenderer/LinePlotRenderer.js.map +0 -1
  243. package/esm/LinePlotRenderer/configSchema.js.map +0 -1
  244. package/esm/LinePlotRenderer/index.js.map +0 -1
  245. package/esm/LinearWiggleDisplay/components/SetColorDialog.js.map +0 -1
  246. package/esm/LinearWiggleDisplay/components/Tooltip.js.map +0 -1
  247. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.js.map +0 -1
  248. package/esm/LinearWiggleDisplay/index.js.map +0 -1
  249. package/esm/LinearWiggleDisplay/models/configSchema.js.map +0 -1
  250. package/esm/LinearWiggleDisplay/models/model.js.map +0 -1
  251. package/esm/LinearWiggleDisplay/models/renderSvg.js.map +0 -1
  252. package/esm/MultiDensityRenderer/MultiDensityRenderer.js.map +0 -1
  253. package/esm/MultiDensityRenderer/configSchema.js.map +0 -1
  254. package/esm/MultiDensityRenderer/index.js.map +0 -1
  255. package/esm/MultiLineRenderer/MultiLineRenderer.js.map +0 -1
  256. package/esm/MultiLineRenderer/configSchema.js.map +0 -1
  257. package/esm/MultiLineRenderer/index.js.map +0 -1
  258. package/esm/MultiLinearWiggleDisplay/components/DraggableDialog.js.map +0 -1
  259. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +0 -1
  260. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js.map +0 -1
  261. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +0 -1
  262. package/esm/MultiLinearWiggleDisplay/components/util.js.map +0 -1
  263. package/esm/MultiLinearWiggleDisplay/index.js.map +0 -1
  264. package/esm/MultiLinearWiggleDisplay/models/configSchema.js.map +0 -1
  265. package/esm/MultiLinearWiggleDisplay/models/model.js.map +0 -1
  266. package/esm/MultiLinearWiggleDisplay/models/renderSvg.js.map +0 -1
  267. package/esm/MultiQuantitativeTrack/configSchema.js.map +0 -1
  268. package/esm/MultiQuantitativeTrack/index.js.map +0 -1
  269. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js.map +0 -1
  270. package/esm/MultiRowLineRenderer/configSchema.js.map +0 -1
  271. package/esm/MultiRowLineRenderer/index.js.map +0 -1
  272. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +0 -1
  273. package/esm/MultiRowXYPlotRenderer/configSchema.js.map +0 -1
  274. package/esm/MultiRowXYPlotRenderer/index.js.map +0 -1
  275. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js.map +0 -1
  276. package/esm/MultiWiggleAdapter/configSchema.js.map +0 -1
  277. package/esm/MultiWiggleAdapter/index.js.map +0 -1
  278. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +0 -1
  279. package/esm/MultiWiggleAddTrackWidget/index.js.map +0 -1
  280. package/esm/MultiWiggleRendering.js.map +0 -1
  281. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +0 -1
  282. package/esm/MultiXYPlotRenderer/configSchema.js.map +0 -1
  283. package/esm/MultiXYPlotRenderer/index.js.map +0 -1
  284. package/esm/QuantitativeTrack/configSchema.js.map +0 -1
  285. package/esm/QuantitativeTrack/index.js.map +0 -1
  286. package/esm/Tooltip.js.map +0 -1
  287. package/esm/WiggleBaseRenderer.js.map +0 -1
  288. package/esm/WiggleRPC/MultiWiggleGetSources.js.map +0 -1
  289. package/esm/WiggleRPC/WiggleGetGlobalQuantitativeStats.js.map +0 -1
  290. package/esm/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js.map +0 -1
  291. package/esm/WiggleRPC/rpcMethods.js.map +0 -1
  292. package/esm/WiggleRendering.js.map +0 -1
  293. package/esm/XYPlotRenderer/XYPlotRenderer.js.map +0 -1
  294. package/esm/XYPlotRenderer/configSchema.js.map +0 -1
  295. package/esm/XYPlotRenderer/index.js.map +0 -1
  296. package/esm/configSchema.js.map +0 -1
  297. package/esm/drawxy.js.map +0 -1
  298. package/esm/index.js.map +0 -1
  299. package/esm/shared/SetMinMaxDialog.js.map +0 -1
  300. package/esm/shared/YScaleBar.js.map +0 -1
  301. package/esm/shared/configShared.js.map +0 -1
  302. package/esm/shared/modelShared.js.map +0 -1
  303. package/esm/util.js.map +0 -1
  304. package/src/BigWigAdapter/BigWigAdapter.test.ts +0 -66
  305. package/src/BigWigAdapter/BigWigAdapter.ts +0 -112
  306. package/src/BigWigAdapter/__snapshots__/BigWigAdapter.test.ts.snap +0 -117
  307. package/src/BigWigAdapter/configSchema.ts +0 -34
  308. package/src/BigWigAdapter/index.ts +0 -20
  309. package/src/BigWigAdapter/test_data/volvox.bw +0 -0
  310. package/src/CreateMultiWiggleExtension/ConfirmDialog.tsx +0 -68
  311. package/src/CreateMultiWiggleExtension/index.ts +0 -66
  312. package/src/DensityRenderer/DensityRenderer.test.ts +0 -62
  313. package/src/DensityRenderer/DensityRenderer.ts +0 -14
  314. package/src/DensityRenderer/__snapshots__/DensityRenderer.test.ts.snap +0 -21
  315. package/src/DensityRenderer/configSchema.ts +0 -22
  316. package/src/DensityRenderer/index.ts +0 -17
  317. package/src/LinePlotRenderer/LinePlotRenderer.ts +0 -19
  318. package/src/LinePlotRenderer/configSchema.ts +0 -30
  319. package/src/LinePlotRenderer/index.ts +0 -16
  320. package/src/LinearWiggleDisplay/components/SetColorDialog.tsx +0 -107
  321. package/src/LinearWiggleDisplay/components/Tooltip.tsx +0 -59
  322. package/src/LinearWiggleDisplay/components/WiggleDisplayComponent.tsx +0 -53
  323. package/src/LinearWiggleDisplay/index.ts +0 -26
  324. package/src/LinearWiggleDisplay/models/configSchema.ts +0 -47
  325. package/src/LinearWiggleDisplay/models/model.tsx +0 -232
  326. package/src/LinearWiggleDisplay/models/renderSvg.tsx +0 -29
  327. package/src/MultiDensityRenderer/MultiDensityRenderer.ts +0 -38
  328. package/src/MultiDensityRenderer/configSchema.ts +0 -21
  329. package/src/MultiDensityRenderer/index.ts +0 -16
  330. package/src/MultiLineRenderer/MultiLineRenderer.ts +0 -28
  331. package/src/MultiLineRenderer/configSchema.ts +0 -39
  332. package/src/MultiLineRenderer/index.ts +0 -17
  333. package/src/MultiLinearWiggleDisplay/components/DraggableDialog.tsx +0 -71
  334. package/src/MultiLinearWiggleDisplay/components/SetColorDialog.tsx +0 -287
  335. package/src/MultiLinearWiggleDisplay/components/Tooltip.tsx +0 -77
  336. package/src/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.tsx +0 -254
  337. package/src/MultiLinearWiggleDisplay/components/declare.d.ts +0 -1
  338. package/src/MultiLinearWiggleDisplay/components/util.test.ts +0 -69
  339. package/src/MultiLinearWiggleDisplay/components/util.ts +0 -33
  340. package/src/MultiLinearWiggleDisplay/index.ts +0 -21
  341. package/src/MultiLinearWiggleDisplay/models/configSchema.ts +0 -74
  342. package/src/MultiLinearWiggleDisplay/models/model.tsx +0 -469
  343. package/src/MultiLinearWiggleDisplay/models/renderSvg.tsx +0 -26
  344. package/src/MultiQuantitativeTrack/configSchema.ts +0 -23
  345. package/src/MultiQuantitativeTrack/index.ts +0 -20
  346. package/src/MultiRowLineRenderer/MultiRowLineRenderer.ts +0 -35
  347. package/src/MultiRowLineRenderer/configSchema.ts +0 -42
  348. package/src/MultiRowLineRenderer/index.ts +0 -16
  349. package/src/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.ts +0 -42
  350. package/src/MultiRowXYPlotRenderer/configSchema.ts +0 -56
  351. package/src/MultiRowXYPlotRenderer/index.ts +0 -16
  352. package/src/MultiWiggleAdapter/MultiWiggleAdapter.ts +0 -125
  353. package/src/MultiWiggleAdapter/configSchema.ts +0 -32
  354. package/src/MultiWiggleAdapter/index.ts +0 -24
  355. package/src/MultiWiggleAdapter/test_data/volvox.bw +0 -0
  356. package/src/MultiWiggleAddTrackWidget/AddTrackWorkflow.tsx +0 -130
  357. package/src/MultiWiggleAddTrackWidget/index.ts +0 -17
  358. package/src/MultiWiggleRendering.tsx +0 -125
  359. package/src/MultiXYPlotRenderer/MultiXYPlotRenderer.ts +0 -32
  360. package/src/MultiXYPlotRenderer/configSchema.ts +0 -54
  361. package/src/MultiXYPlotRenderer/index.ts +0 -17
  362. package/src/QuantitativeTrack/configSchema.ts +0 -23
  363. package/src/QuantitativeTrack/index.ts +0 -20
  364. package/src/Tooltip.tsx +0 -123
  365. package/src/WiggleBaseRenderer.tsx +0 -91
  366. package/src/WiggleRPC/MultiWiggleGetSources.ts +0 -68
  367. package/src/WiggleRPC/WiggleGetGlobalQuantitativeStats.ts +0 -44
  368. package/src/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.ts +0 -73
  369. package/src/WiggleRPC/rpcMethods.ts +0 -3
  370. package/src/WiggleRendering.test.js +0 -21
  371. package/src/WiggleRendering.tsx +0 -76
  372. package/src/XYPlotRenderer/XYPlotRenderer.test.ts +0 -52
  373. package/src/XYPlotRenderer/XYPlotRenderer.ts +0 -37
  374. package/src/XYPlotRenderer/__snapshots__/XYPlotRenderer.test.ts.snap +0 -21
  375. package/src/XYPlotRenderer/configSchema.ts +0 -55
  376. package/src/XYPlotRenderer/index.ts +0 -20
  377. package/src/__snapshots__/WiggleRendering.test.js.snap +0 -15
  378. package/src/__snapshots__/index.test.ts.snap +0 -3
  379. package/src/configSchema.ts +0 -70
  380. package/src/drawxy.ts +0 -388
  381. package/src/index.test.ts +0 -16
  382. package/src/index.ts +0 -130
  383. package/src/shared/SetMinMaxDialog.tsx +0 -88
  384. package/src/shared/YScaleBar.tsx +0 -27
  385. package/src/shared/configShared.ts +0 -90
  386. package/src/shared/modelShared.ts +0 -510
  387. package/src/util.test.ts +0 -43
  388. package/src/util.ts +0 -318
@@ -1,42 +0,0 @@
1
- import { types } from 'mobx-state-tree'
2
-
3
- import { ConfigurationSchema } from '@jbrowse/core/configuration'
4
- import baseWiggleRendererConfigSchema from '../configSchema'
5
-
6
- /**
7
- * #config MultiRowLineRenderer
8
- */
9
- function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
10
-
11
- const configSchema = ConfigurationSchema(
12
- 'MultiRowLineRenderer',
13
- {
14
- /**
15
- * #slot
16
- */
17
- displayCrossHatches: {
18
- type: 'boolean',
19
- description: 'choose to draw cross hatches (sideways lines)',
20
- defaultValue: false,
21
- },
22
- /**
23
- * #slot
24
- */
25
- summaryScoreMode: {
26
- type: 'stringEnum',
27
- model: types.enumeration('Score type', ['max', 'min', 'avg', 'whiskers']),
28
- description:
29
- 'choose whether to use max/min/average or whiskers which combines all three into the same rendering',
30
- defaultValue: 'avg',
31
- },
32
- },
33
- {
34
- /**
35
- * #baseConfiguration
36
- */
37
- baseConfiguration: baseWiggleRendererConfigSchema,
38
- explicitlyTyped: true,
39
- },
40
- )
41
-
42
- export default configSchema
@@ -1,16 +0,0 @@
1
- import PluginManager from '@jbrowse/core/PluginManager'
2
- import ReactComponent from '../MultiWiggleRendering'
3
- import MultiRowLineRenderer from './MultiRowLineRenderer'
4
- import configSchema from './configSchema'
5
-
6
- export default (pluginManager: PluginManager) => {
7
- pluginManager.addRendererType(
8
- () =>
9
- new MultiRowLineRenderer({
10
- name: 'MultiRowLineRenderer',
11
- ReactComponent,
12
- configSchema,
13
- pluginManager,
14
- }),
15
- )
16
- }
@@ -1,42 +0,0 @@
1
- import { groupBy, Feature } from '@jbrowse/core/util'
2
- import { drawXY } from '../drawxy'
3
-
4
- import WiggleBaseRenderer, {
5
- MultiRenderArgsDeserialized as MultiArgs,
6
- } from '../WiggleBaseRenderer'
7
-
8
- export default class MultiXYPlotRenderer extends WiggleBaseRenderer {
9
- // @ts-expect-error
10
- async draw(ctx: CanvasRenderingContext2D, props: MultiArgs) {
11
- const { bpPerPx, sources, regions, features } = props
12
- const [region] = regions
13
- const groups = groupBy([...features.values()], f => f.get('source'))
14
- const height = props.height / Object.keys(groups).length
15
- const width = (region.end - region.start) / bpPerPx
16
- const Color = await import('color').then(f => f.default)
17
- let feats = [] as Feature[]
18
- ctx.save()
19
- sources.forEach(source => {
20
- const features = groups[source.name]
21
- if (!features) {
22
- return
23
- }
24
- const { reducedFeatures } = drawXY(ctx, {
25
- ...props,
26
- features,
27
- height,
28
- colorCallback: () => source.color || 'blue',
29
- Color,
30
- })
31
- ctx.strokeStyle = 'rgba(200,200,200,0.8)'
32
- ctx.beginPath()
33
- ctx.moveTo(0, height)
34
- ctx.lineTo(width, height)
35
- ctx.stroke()
36
- ctx.translate(0, height)
37
- feats = [...feats, ...reducedFeatures]
38
- })
39
- ctx.restore()
40
- return { reducedFeatures: feats }
41
- }
42
- }
@@ -1,56 +0,0 @@
1
- import { types } from 'mobx-state-tree'
2
-
3
- import { ConfigurationSchema } from '@jbrowse/core/configuration'
4
- import baseWiggleRendererConfigSchema from '../configSchema'
5
-
6
- /**
7
- * #config MultiRowXYPlotRenderer
8
- */
9
- function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
10
-
11
- const configSchema = ConfigurationSchema(
12
- 'MultiRowXYPlotRenderer',
13
- {
14
- /**
15
- * #slot
16
- */
17
- filled: {
18
- type: 'boolean',
19
- defaultValue: true,
20
- },
21
- /**
22
- * #slot
23
- */
24
- displayCrossHatches: {
25
- type: 'boolean',
26
- description: 'choose to draw cross hatches (sideways lines)',
27
- defaultValue: false,
28
- },
29
- /**
30
- * #slot
31
- */
32
- summaryScoreMode: {
33
- type: 'stringEnum',
34
- model: types.enumeration('Score type', ['max', 'min', 'avg', 'whiskers']),
35
- description:
36
- 'choose whether to use max/min/average or whiskers which combines all three into the same rendering',
37
- defaultValue: 'whiskers',
38
- },
39
- /**
40
- * #slot
41
- */
42
- minSize: {
43
- type: 'number',
44
- defaultValue: 0,
45
- },
46
- },
47
- {
48
- /**
49
- * #baseConfiguration
50
- */
51
- baseConfiguration: baseWiggleRendererConfigSchema,
52
- explicitlyTyped: true,
53
- },
54
- )
55
-
56
- export default configSchema
@@ -1,16 +0,0 @@
1
- import PluginManager from '@jbrowse/core/PluginManager'
2
- import ReactComponent from '../MultiWiggleRendering'
3
- import MultiRowXYPlotRenderer from './MultiRowXYPlotRenderer'
4
- import configSchema from './configSchema'
5
-
6
- export default (pluginManager: PluginManager) => {
7
- pluginManager.addRendererType(
8
- () =>
9
- new MultiRowXYPlotRenderer({
10
- name: 'MultiRowXYPlotRenderer',
11
- ReactComponent,
12
- configSchema,
13
- pluginManager,
14
- }),
15
- )
16
- }
@@ -1,125 +0,0 @@
1
- import {
2
- BaseFeatureDataAdapter,
3
- BaseOptions,
4
- } from '@jbrowse/core/data_adapters/BaseAdapter'
5
- import { AugmentedRegion as Region } from '@jbrowse/core/util/types'
6
- import { ObservableCreate } from '@jbrowse/core/util/rxjs'
7
- import { SimpleFeature, Feature, min, max } from '@jbrowse/core/util'
8
- import { merge } from 'rxjs'
9
- import { map } from 'rxjs/operators'
10
-
11
- interface WiggleOptions extends BaseOptions {
12
- resolution?: number
13
- }
14
-
15
- function getFilename(uri: string) {
16
- const filename = uri.slice(uri.lastIndexOf('/') + 1)
17
- return filename.slice(0, filename.lastIndexOf('.'))
18
- }
19
-
20
- interface AdapterEntry {
21
- dataAdapter: BaseFeatureDataAdapter
22
- source: string
23
- [key: string]: unknown
24
- }
25
-
26
- export default class MultiWiggleAdapter extends BaseFeatureDataAdapter {
27
- public static capabilities = [
28
- 'hasResolution',
29
- 'hasLocalStats',
30
- 'hasGlobalStats',
31
- ]
32
-
33
- public async getAdapters(): Promise<AdapterEntry[]> {
34
- const getSubAdapter = this.getSubAdapter
35
- if (!getSubAdapter) {
36
- throw new Error('no getSubAdapter available')
37
- }
38
- let subConfs = this.getConf('subadapters')
39
- if (!subConfs?.length) {
40
- const entries = this.getConf('bigWigs') as string[]
41
- subConfs = entries.map(entry => ({
42
- type: 'BigWigAdapter',
43
- source: getFilename(entry),
44
- bigWigLocation: {
45
- uri: entry,
46
- },
47
- }))
48
- }
49
-
50
- return Promise.all(
51
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
- subConfs.map(async (conf: any) => {
53
- const dataAdapter = (await getSubAdapter(conf))
54
- .dataAdapter as BaseFeatureDataAdapter
55
- return {
56
- source: conf.name || dataAdapter.id,
57
- ...conf,
58
- dataAdapter,
59
- }
60
- }),
61
- )
62
- }
63
-
64
- // note: can't really have dis-agreeing refNames
65
- public async getRefNames(opts?: BaseOptions) {
66
- const adapters = await this.getAdapters()
67
- const allNames = await Promise.all(
68
- adapters.map(a => a.dataAdapter.getRefNames(opts)),
69
- )
70
- return [...new Set(allNames.flat())]
71
- }
72
-
73
- public async getGlobalStats(opts?: BaseOptions) {
74
- const adapters = await this.getAdapters()
75
- const stats = (
76
- await Promise.all(
77
- // @ts-expect-error
78
- adapters.map(adp => adp.dataAdapter.getGlobalStats?.(opts)),
79
- )
80
- ).filter(f => !!f)
81
- const scoreMin = min(stats.map(s => s.scoreMin))
82
- const scoreMax = max(stats.map(s => s.scoreMax))
83
- return { scoreMin, scoreMax }
84
- }
85
-
86
- public getFeatures(region: Region, opts: WiggleOptions = {}) {
87
- return ObservableCreate<Feature>(async observer => {
88
- const adapters = await this.getAdapters()
89
- merge(
90
- ...adapters.map(adp =>
91
- adp.dataAdapter.getFeatures(region, opts).pipe(
92
- map(p =>
93
- // add source field if it does not exist
94
- p.get('source')
95
- ? p
96
- : new SimpleFeature({
97
- ...p.toJSON(),
98
- uniqueId: `${adp.source}-${p.id()}`,
99
- source: adp.source,
100
- }),
101
- ),
102
- ),
103
- ),
104
- ).subscribe(observer)
105
- }, opts.signal)
106
- }
107
-
108
- // always render bigwig instead of calculating a feature density for it
109
- async getMultiRegionFeatureDensityStats(_regions: Region[]) {
110
- return { featureDensity: 0 }
111
- }
112
-
113
- // in another adapter type, this could be dynamic depending on region or
114
- // something, but it is static for this particular multi-wiggle adapter type
115
- async getSources() {
116
- const adapters = await this.getAdapters()
117
- return adapters.map(({ dataAdapter, source, name, ...rest }) => ({
118
- name: source,
119
- __name: name,
120
- ...rest,
121
- }))
122
- }
123
-
124
- public freeResources(): void {}
125
- }
@@ -1,32 +0,0 @@
1
- import { ConfigurationSchema } from '@jbrowse/core/configuration'
2
-
3
- /**
4
- * #config MultiWiggleAdapter
5
- */
6
- function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
7
-
8
- const MultiWiggleAdapter = ConfigurationSchema(
9
- 'MultiWiggleAdapter',
10
- {
11
- /**
12
- * #slot
13
- */
14
- subadapters: {
15
- type: 'frozen',
16
- defaultValue: [],
17
- description: 'array of subadapter JSON objects',
18
- },
19
- /**
20
- * #slot
21
- */
22
- bigWigs: {
23
- type: 'frozen',
24
- description:
25
- 'array of bigwig filenames, alternative to the subadapters slot',
26
- defaultValue: [],
27
- },
28
- },
29
- { explicitlyTyped: true },
30
- )
31
-
32
- export default MultiWiggleAdapter
@@ -1,24 +0,0 @@
1
- import configSchema from './configSchema'
2
- import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType'
3
- import PluginManager from '@jbrowse/core/PluginManager'
4
-
5
- export default (pluginManager: PluginManager) => {
6
- pluginManager.addAdapterType(
7
- () =>
8
- new AdapterType({
9
- name: 'MultiWiggleAdapter',
10
- displayName: 'Multi-wiggle adapter',
11
- configSchema,
12
- adapterCapabilities: [
13
- 'hasResolution',
14
- 'hasLocalStats',
15
- 'hasGlobalStats',
16
- ],
17
- adapterMetadata: {
18
- hiddenFromGUI: true,
19
- },
20
- getAdapterClass: () =>
21
- import('./MultiWiggleAdapter').then(r => r.default),
22
- }),
23
- )
24
- }
@@ -1,130 +0,0 @@
1
- import React, { useState } from 'react'
2
- import { Button, Paper, TextField } from '@mui/material'
3
- import { makeStyles } from 'tss-react/mui'
4
- import { getSession, isElectron } from '@jbrowse/core/util'
5
- import { storeBlobLocation } from '@jbrowse/core/util/tracks'
6
- import { AddTrackModel } from '@jbrowse/plugin-data-management'
7
-
8
- const useStyles = makeStyles()(theme => ({
9
- textbox: {
10
- width: '100%',
11
- },
12
- paper: {
13
- margin: theme.spacing(),
14
- padding: theme.spacing(),
15
- },
16
- submit: {
17
- marginTop: 25,
18
- marginBottom: 100,
19
- display: 'block',
20
- },
21
- }))
22
-
23
- export default function MultiWiggleWidget({ model }: { model: AddTrackModel }) {
24
- const { classes } = useStyles()
25
- const [val, setVal] = useState('')
26
- const [trackName, setTrackName] = useState(`MultiWiggle${+Date.now()}`)
27
- return (
28
- <Paper className={classes.paper}>
29
- <ul>
30
- <li>Enter list of URLs for bigwig files in the textbox</li>
31
- <li>
32
- Or, use the button below the text box to select files from your
33
- computer
34
- </li>
35
- </ul>
36
-
37
- <TextField
38
- multiline
39
- rows={10}
40
- value={val}
41
- onChange={event => setVal(event.target.value)}
42
- placeholder={'Paste list of URLs here, or use file selector below'}
43
- variant="outlined"
44
- className={classes.textbox}
45
- />
46
-
47
- <Button variant="outlined" component="label">
48
- Choose Files from your computer
49
- <input
50
- type="file"
51
- hidden
52
- multiple
53
- onChange={({ target }) => {
54
- const res = [...(target?.files || [])].map(file => ({
55
- type: 'BigWigAdapter',
56
- bigWigLocation: isElectron
57
- ? {
58
- localPath: (file as File & { path: string }).path,
59
- locationType: 'LocalPathLocation',
60
- }
61
- : storeBlobLocation({ blob: file }),
62
- source: file.name,
63
- }))
64
- setVal(JSON.stringify(res, null, 2))
65
- }}
66
- />
67
- </Button>
68
- <TextField
69
- value={trackName}
70
- onChange={event => setTrackName(event.target.value)}
71
- helperText="Track name"
72
- />
73
- <Button
74
- variant="contained"
75
- className={classes.submit}
76
- onClick={() => {
77
- const session = getSession(model)
78
-
79
- const trackId = [
80
- `${trackName.toLowerCase().replaceAll(' ', '_')}-${Date.now()}`,
81
- `${session.adminMode ? '' : '-sessionTrack'}`,
82
- ].join('')
83
-
84
- // allow list of bigwigs in JSON format or line-by-line
85
- let bigWigs
86
- try {
87
- bigWigs = JSON.parse(val)
88
- } catch (e) {
89
- bigWigs = val.split(/\n|\r\n|\r/)
90
- }
91
- const obj =
92
- typeof bigWigs[0] === 'string'
93
- ? { bigWigs }
94
- : { subadapters: bigWigs }
95
-
96
- session.addTrackConf({
97
- trackId,
98
- type: 'MultiQuantitativeTrack',
99
- name: trackName,
100
- assemblyNames: [model.assembly],
101
- adapter: {
102
- type: 'MultiWiggleAdapter',
103
- ...obj,
104
- },
105
- })
106
- model.view?.showTrack(trackId)
107
-
108
- model.clearData()
109
- session.hideWidget(model)
110
- }}
111
- >
112
- Submit
113
- </Button>
114
-
115
- <p>Additional notes: </p>
116
- <ul>
117
- <li>
118
- The list of bigwig files in the text box can be a list of URLs, or a
119
- list of elements like{' '}
120
- <code>{`[{"type":"BigWigAdapter","bigWigLocation":{"uri":"http://host/file.bw"}, "color":"green","source":"name for subtrack"}]`}</code>{' '}
121
- to apply e.g. the color attribute to the view
122
- </li>
123
- <li>
124
- Adding local files will update the textbox with JSON contents that are
125
- ready to submit with the "Submit" button
126
- </li>
127
- </ul>
128
- </Paper>
129
- )
130
- }
@@ -1,17 +0,0 @@
1
- import PluginManager from '@jbrowse/core/PluginManager'
2
- import { AddTrackWorkflowType } from '@jbrowse/core/pluggableElementTypes'
3
- import { types } from 'mobx-state-tree'
4
-
5
- // locals
6
- import MultiWiggleWidget from './AddTrackWorkflow'
7
-
8
- export default (pm: PluginManager) => {
9
- pm.addAddTrackWorkflowType(
10
- () =>
11
- new AddTrackWorkflowType({
12
- name: 'Multi-wiggle track',
13
- ReactComponent: MultiWiggleWidget,
14
- stateModel: types.model({}),
15
- }),
16
- )
17
- }
@@ -1,125 +0,0 @@
1
- import { observer } from 'mobx-react'
2
- import React, { useRef } from 'react'
3
-
4
- import { Region } from '@jbrowse/core/util/types'
5
- import { SimpleFeature, Feature } from '@jbrowse/core/util'
6
- import { PrerenderedCanvas } from '@jbrowse/core/ui'
7
- import { Source } from './util'
8
-
9
- function WiggleRendering(props: {
10
- regions: Region[]
11
- features: Map<string, Feature>
12
- bpPerPx: number
13
- width: number
14
- height: number
15
- onMouseLeave: Function
16
- onMouseMove: Function
17
- onFeatureClick: Function
18
- blockKey: string
19
- sources: Source[]
20
- displayModel: { isMultiRow: boolean }
21
- }) {
22
- const {
23
- regions,
24
- features,
25
- bpPerPx,
26
- width,
27
- height,
28
- sources,
29
- onMouseLeave = () => {},
30
- onMouseMove = () => {},
31
- onFeatureClick = () => {},
32
- displayModel,
33
- } = props
34
- const [region] = regions
35
- const ref = useRef<HTMLDivElement>(null)
36
-
37
- function getFeatureUnderMouse(eventClientX: number, eventClientY: number) {
38
- if (!ref.current) {
39
- return
40
- }
41
- const rect = ref.current.getBoundingClientRect()
42
- const offsetX = eventClientX - rect.left
43
- const offsetY = eventClientY - rect.top
44
- const source = sources[Math.floor((offsetY / height) * sources.length)]
45
- if (!source) {
46
- return
47
- }
48
- const px = region.reversed ? width - offsetX : offsetX
49
- const mouseoverBp = region.start + bpPerPx * px
50
- let featureUnderMouse
51
- if (displayModel.isMultiRow) {
52
- for (const feature of features.values()) {
53
- if (feature.get('source') !== source.name) {
54
- continue
55
- }
56
- if (
57
- mouseoverBp <= feature.get('end') + bpPerPx &&
58
- mouseoverBp >= feature.get('start')
59
- ) {
60
- featureUnderMouse = feature
61
- break
62
- }
63
- }
64
- } else {
65
- const featuresUnderMouse = []
66
- for (const feature of features.values()) {
67
- if (
68
- mouseoverBp <= feature.get('end') + bpPerPx &&
69
- mouseoverBp >= feature.get('start')
70
- ) {
71
- featuresUnderMouse.push(feature)
72
- }
73
- }
74
-
75
- if (featuresUnderMouse.length) {
76
- const pos = Math.floor(mouseoverBp)
77
- featureUnderMouse = new SimpleFeature({
78
- uniqueId: 'mouseoverfeat',
79
- sources: Object.fromEntries(
80
- featuresUnderMouse
81
- .map(f => f.toJSON())
82
- .map(f => {
83
- const { refName, start, end, source, ...rest } = f
84
- return [source, rest]
85
- }),
86
- ),
87
- ...region,
88
- start: pos,
89
- end: pos + 1,
90
- })
91
- }
92
- }
93
- return featureUnderMouse
94
- }
95
-
96
- return (
97
- <div
98
- ref={ref}
99
- onMouseMove={event => {
100
- const featureUnderMouse = getFeatureUnderMouse(
101
- event.clientX,
102
- event.clientY,
103
- )
104
- onMouseMove(event, featureUnderMouse)
105
- }}
106
- onClick={event => {
107
- const featureUnderMouse = getFeatureUnderMouse(
108
- event.clientX,
109
- event.clientY,
110
- )
111
- onFeatureClick(event, featureUnderMouse)
112
- }}
113
- onMouseLeave={event => onMouseLeave(event)}
114
- style={{
115
- overflow: 'visible',
116
- position: 'relative',
117
- height,
118
- }}
119
- >
120
- <PrerenderedCanvas {...props} />
121
- </div>
122
- )
123
- }
124
-
125
- export default observer(WiggleRendering)
@@ -1,32 +0,0 @@
1
- import { groupBy, Feature } from '@jbrowse/core/util'
2
- import { drawXY } from '../drawxy'
3
- import { YSCALEBAR_LABEL_OFFSET } from '../util'
4
-
5
- import WiggleBaseRenderer, {
6
- MultiRenderArgsDeserialized as MultiArgs,
7
- } from '../WiggleBaseRenderer'
8
-
9
- export default class MultiXYPlotRenderer extends WiggleBaseRenderer {
10
- // @ts-expect-error
11
- async draw(ctx: CanvasRenderingContext2D, props: MultiArgs) {
12
- const { sources, features } = props
13
- const groups = groupBy([...features.values()], f => f.get('source'))
14
- const Color = await import('color').then(f => f.default)
15
- let feats = [] as Feature[]
16
- for (const source of sources) {
17
- const features = groups[source.name]
18
- if (!features) {
19
- continue
20
- }
21
- const { reducedFeatures } = drawXY(ctx, {
22
- ...props,
23
- features,
24
- offset: YSCALEBAR_LABEL_OFFSET,
25
- colorCallback: () => source.color || 'blue',
26
- Color,
27
- })
28
- feats = [...feats, ...reducedFeatures]
29
- }
30
- return { reducedFeatures: feats }
31
- }
32
- }