@jbrowse/plugin-wiggle 2.0.1 → 2.1.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 (414) hide show
  1. package/dist/BigWigAdapter/BigWigAdapter.d.ts +8 -7
  2. package/dist/BigWigAdapter/BigWigAdapter.js +59 -29
  3. package/dist/BigWigAdapter/BigWigAdapter.js.map +1 -1
  4. package/dist/BigWigAdapter/configSchema.js +5 -0
  5. package/dist/BigWigAdapter/configSchema.js.map +1 -1
  6. package/dist/BigWigAdapter/index.d.ts +3 -1
  7. package/dist/BigWigAdapter/index.js +39 -3
  8. package/dist/BigWigAdapter/index.js.map +1 -1
  9. package/dist/CreateMultiWiggleExtension/ConfirmDialog.d.ts +9 -0
  10. package/dist/CreateMultiWiggleExtension/ConfirmDialog.js +68 -0
  11. package/dist/CreateMultiWiggleExtension/ConfirmDialog.js.map +1 -0
  12. package/dist/CreateMultiWiggleExtension/index.d.ts +2 -0
  13. package/dist/CreateMultiWiggleExtension/index.js +111 -0
  14. package/dist/CreateMultiWiggleExtension/index.js.map +1 -0
  15. package/dist/DensityRenderer/DensityRenderer.d.ts +6 -0
  16. package/dist/DensityRenderer/DensityRenderer.js +74 -0
  17. package/dist/DensityRenderer/DensityRenderer.js.map +1 -0
  18. package/dist/DensityRenderer/configSchema.d.ts +2 -0
  19. package/dist/DensityRenderer/configSchema.js +10 -0
  20. package/dist/DensityRenderer/configSchema.js.map +1 -0
  21. package/dist/DensityRenderer/index.d.ts +3 -6
  22. package/dist/DensityRenderer/index.js +12 -149
  23. package/dist/DensityRenderer/index.js.map +1 -1
  24. package/dist/LinePlotRenderer/LinePlotRenderer.d.ts +4 -2
  25. package/dist/LinePlotRenderer/LinePlotRenderer.js +4 -103
  26. package/dist/LinePlotRenderer/LinePlotRenderer.js.map +1 -1
  27. package/dist/LinePlotRenderer/configSchema.d.ts +2 -0
  28. package/dist/LinePlotRenderer/configSchema.js +16 -0
  29. package/dist/LinePlotRenderer/configSchema.js.map +1 -0
  30. package/dist/LinePlotRenderer/index.d.ts +3 -3
  31. package/dist/LinePlotRenderer/index.js +13 -14
  32. package/dist/LinePlotRenderer/index.js.map +1 -1
  33. package/dist/LinearWiggleDisplay/components/SetColorDialog.d.ts +6 -2
  34. package/dist/LinearWiggleDisplay/components/SetColorDialog.js +8 -16
  35. package/dist/LinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
  36. package/dist/LinearWiggleDisplay/components/Tooltip.d.ts +6 -11
  37. package/dist/LinearWiggleDisplay/components/Tooltip.js +11 -122
  38. package/dist/LinearWiggleDisplay/components/Tooltip.js.map +1 -1
  39. package/dist/LinearWiggleDisplay/index.d.ts +7 -3
  40. package/dist/LinearWiggleDisplay/index.js +23 -8
  41. package/dist/LinearWiggleDisplay/index.js.map +1 -1
  42. package/dist/LinearWiggleDisplay/models/model.d.ts +24 -5
  43. package/dist/LinearWiggleDisplay/models/model.js +79 -126
  44. package/dist/LinearWiggleDisplay/models/model.js.map +1 -1
  45. package/dist/MultiDensityRenderer/MultiDensityRenderer.d.ts +7 -0
  46. package/dist/MultiDensityRenderer/MultiDensityRenderer.js +135 -0
  47. package/dist/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -0
  48. package/dist/MultiDensityRenderer/configSchema.d.ts +2 -0
  49. package/dist/MultiDensityRenderer/configSchema.js +10 -0
  50. package/dist/MultiDensityRenderer/configSchema.js.map +1 -0
  51. package/dist/MultiDensityRenderer/index.d.ts +3 -0
  52. package/dist/MultiDensityRenderer/index.js +19 -0
  53. package/dist/MultiDensityRenderer/index.js.map +1 -0
  54. package/dist/MultiLineRenderer/MultiLineRenderer.d.ts +7 -0
  55. package/dist/MultiLineRenderer/MultiLineRenderer.js +124 -0
  56. package/dist/MultiLineRenderer/MultiLineRenderer.js.map +1 -0
  57. package/dist/MultiLineRenderer/configSchema.d.ts +2 -0
  58. package/dist/MultiLineRenderer/configSchema.js +23 -0
  59. package/dist/MultiLineRenderer/configSchema.js.map +1 -0
  60. package/dist/MultiLineRenderer/index.d.ts +3 -0
  61. package/dist/MultiLineRenderer/index.js +19 -0
  62. package/dist/MultiLineRenderer/index.js.map +1 -0
  63. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +10 -0
  64. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js +239 -0
  65. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -0
  66. package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.d.ts +11 -0
  67. package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js +91 -0
  68. package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js.map +1 -0
  69. package/dist/MultiLinearWiggleDisplay/components/Tooltip.d.ts +25 -0
  70. package/dist/MultiLinearWiggleDisplay/components/Tooltip.js +78 -0
  71. package/dist/MultiLinearWiggleDisplay/components/Tooltip.js.map +1 -0
  72. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +13 -0
  73. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +144 -0
  74. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -0
  75. package/dist/MultiLinearWiggleDisplay/components/YScaleBar.d.ts +7 -0
  76. package/dist/MultiLinearWiggleDisplay/components/YScaleBar.js +26 -0
  77. package/dist/MultiLinearWiggleDisplay/components/YScaleBar.js.map +1 -0
  78. package/dist/MultiLinearWiggleDisplay/components/util.d.ts +10 -0
  79. package/dist/MultiLinearWiggleDisplay/components/util.js +38 -0
  80. package/dist/MultiLinearWiggleDisplay/components/util.js.map +1 -0
  81. package/dist/MultiLinearWiggleDisplay/index.d.ts +3 -0
  82. package/dist/MultiLinearWiggleDisplay/index.js +23 -0
  83. package/dist/MultiLinearWiggleDisplay/index.js.map +1 -0
  84. package/dist/MultiLinearWiggleDisplay/models/configSchema.d.ts +2 -0
  85. package/dist/MultiLinearWiggleDisplay/models/configSchema.js +77 -0
  86. package/dist/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -0
  87. package/dist/MultiLinearWiggleDisplay/models/model.d.ts +339 -0
  88. package/dist/MultiLinearWiggleDisplay/models/model.js +675 -0
  89. package/dist/MultiLinearWiggleDisplay/models/model.js.map +1 -0
  90. package/dist/MultiQuantitativeTrack/index.d.ts +3 -0
  91. package/dist/MultiQuantitativeTrack/index.js +19 -0
  92. package/dist/MultiQuantitativeTrack/index.js.map +1 -0
  93. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +7 -0
  94. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +131 -0
  95. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -0
  96. package/dist/MultiRowLineRenderer/configSchema.d.ts +2 -0
  97. package/dist/MultiRowLineRenderer/configSchema.js +23 -0
  98. package/dist/MultiRowLineRenderer/configSchema.js.map +1 -0
  99. package/dist/MultiRowLineRenderer/index.d.ts +3 -0
  100. package/dist/MultiRowLineRenderer/index.js +19 -0
  101. package/dist/MultiRowLineRenderer/index.js.map +1 -0
  102. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +7 -0
  103. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +164 -0
  104. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -0
  105. package/dist/MultiRowXYPlotRenderer/configSchema.d.ts +2 -0
  106. package/dist/MultiRowXYPlotRenderer/configSchema.js +31 -0
  107. package/dist/MultiRowXYPlotRenderer/configSchema.js.map +1 -0
  108. package/dist/MultiRowXYPlotRenderer/index.d.ts +3 -0
  109. package/dist/MultiRowXYPlotRenderer/index.js +19 -0
  110. package/dist/MultiRowXYPlotRenderer/index.js.map +1 -0
  111. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +28 -0
  112. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +244 -0
  113. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -0
  114. package/dist/MultiWiggleAdapter/configSchema.d.ts +2 -0
  115. package/dist/MultiWiggleAdapter/configSchema.js +14 -0
  116. package/dist/MultiWiggleAdapter/configSchema.js.map +1 -0
  117. package/dist/MultiWiggleAdapter/index.d.ts +3 -0
  118. package/dist/MultiWiggleAdapter/index.js +47 -0
  119. package/dist/MultiWiggleAdapter/index.js.map +1 -0
  120. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.d.ts +5 -0
  121. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +139 -0
  122. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -0
  123. package/dist/MultiWiggleAddTrackWidget/index.d.ts +3 -0
  124. package/dist/MultiWiggleAddTrackWidget/index.js +19 -0
  125. package/dist/MultiWiggleAddTrackWidget/index.js.map +1 -0
  126. package/dist/MultiWiggleRendering.d.ts +21 -0
  127. package/dist/MultiWiggleRendering.js +164 -0
  128. package/dist/MultiWiggleRendering.js.map +1 -0
  129. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +7 -0
  130. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +153 -0
  131. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -0
  132. package/dist/MultiXYPlotRenderer/configSchema.d.ts +2 -0
  133. package/dist/MultiXYPlotRenderer/configSchema.js +31 -0
  134. package/dist/MultiXYPlotRenderer/configSchema.js.map +1 -0
  135. package/dist/MultiXYPlotRenderer/index.d.ts +3 -0
  136. package/dist/MultiXYPlotRenderer/index.js +19 -0
  137. package/dist/MultiXYPlotRenderer/index.js.map +1 -0
  138. package/dist/QuantitativeTrack/index.d.ts +3 -0
  139. package/dist/QuantitativeTrack/index.js +19 -0
  140. package/dist/QuantitativeTrack/index.js.map +1 -0
  141. package/dist/Tooltip.d.ts +20 -0
  142. package/dist/Tooltip.js +124 -0
  143. package/dist/Tooltip.js.map +1 -0
  144. package/dist/WiggleBaseRenderer.d.ts +9 -10
  145. package/dist/WiggleBaseRenderer.js +23 -10
  146. package/dist/WiggleBaseRenderer.js.map +1 -1
  147. package/dist/WiggleRPC/rpcMethods.d.ts +17 -1
  148. package/dist/WiggleRPC/rpcMethods.js +91 -16
  149. package/dist/WiggleRPC/rpcMethods.js.map +1 -1
  150. package/dist/WiggleRendering.d.ts +1 -1
  151. package/dist/WiggleRendering.js +4 -8
  152. package/dist/WiggleRendering.js.map +1 -1
  153. package/dist/XYPlotRenderer/XYPlotRenderer.d.ts +4 -1
  154. package/dist/XYPlotRenderer/XYPlotRenderer.js +23 -126
  155. package/dist/XYPlotRenderer/XYPlotRenderer.js.map +1 -1
  156. package/dist/XYPlotRenderer/configSchema.d.ts +2 -0
  157. package/dist/XYPlotRenderer/configSchema.js +31 -0
  158. package/dist/XYPlotRenderer/configSchema.js.map +1 -0
  159. package/dist/XYPlotRenderer/index.d.ts +7 -3
  160. package/dist/XYPlotRenderer/index.js +17 -25
  161. package/dist/XYPlotRenderer/index.js.map +1 -1
  162. package/dist/configSchema.js +0 -5
  163. package/dist/configSchema.js.map +1 -1
  164. package/dist/drawxy.d.ts +50 -0
  165. package/dist/drawxy.js +411 -0
  166. package/dist/drawxy.js.map +1 -0
  167. package/dist/index.d.ts +79 -21
  168. package/dist/index.js +56 -89
  169. package/dist/index.js.map +1 -1
  170. package/dist/util.d.ts +34 -1
  171. package/dist/util.js +159 -1
  172. package/dist/util.js.map +1 -1
  173. package/esm/BigWigAdapter/BigWigAdapter.d.ts +8 -7
  174. package/esm/BigWigAdapter/BigWigAdapter.js +37 -18
  175. package/esm/BigWigAdapter/BigWigAdapter.js.map +1 -1
  176. package/esm/BigWigAdapter/configSchema.js +5 -0
  177. package/esm/BigWigAdapter/configSchema.js.map +1 -1
  178. package/esm/BigWigAdapter/index.d.ts +3 -1
  179. package/esm/BigWigAdapter/index.js +14 -1
  180. package/esm/BigWigAdapter/index.js.map +1 -1
  181. package/esm/CreateMultiWiggleExtension/ConfirmDialog.d.ts +9 -0
  182. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js +26 -0
  183. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js.map +1 -0
  184. package/esm/CreateMultiWiggleExtension/index.d.ts +2 -0
  185. package/esm/CreateMultiWiggleExtension/index.js +51 -0
  186. package/esm/CreateMultiWiggleExtension/index.js.map +1 -0
  187. package/esm/DensityRenderer/DensityRenderer.d.ts +6 -0
  188. package/esm/DensityRenderer/DensityRenderer.js +8 -0
  189. package/esm/DensityRenderer/DensityRenderer.js.map +1 -0
  190. package/esm/DensityRenderer/configSchema.d.ts +2 -0
  191. package/esm/DensityRenderer/configSchema.js +5 -0
  192. package/esm/DensityRenderer/configSchema.js.map +1 -0
  193. package/esm/DensityRenderer/index.d.ts +3 -6
  194. package/esm/DensityRenderer/index.js +11 -38
  195. package/esm/DensityRenderer/index.js.map +1 -1
  196. package/esm/LinePlotRenderer/LinePlotRenderer.d.ts +4 -2
  197. package/esm/LinePlotRenderer/LinePlotRenderer.js +7 -65
  198. package/esm/LinePlotRenderer/LinePlotRenderer.js.map +1 -1
  199. package/esm/LinePlotRenderer/configSchema.d.ts +2 -0
  200. package/esm/LinePlotRenderer/configSchema.js +11 -0
  201. package/esm/LinePlotRenderer/configSchema.js.map +1 -0
  202. package/esm/LinePlotRenderer/index.d.ts +3 -3
  203. package/esm/LinePlotRenderer/index.js +11 -11
  204. package/esm/LinePlotRenderer/index.js.map +1 -1
  205. package/esm/LinearWiggleDisplay/components/SetColorDialog.d.ts +6 -2
  206. package/esm/LinearWiggleDisplay/components/SetColorDialog.js +9 -16
  207. package/esm/LinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
  208. package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +6 -11
  209. package/esm/LinearWiggleDisplay/components/Tooltip.js +3 -76
  210. package/esm/LinearWiggleDisplay/components/Tooltip.js.map +1 -1
  211. package/esm/LinearWiggleDisplay/index.d.ts +7 -3
  212. package/esm/LinearWiggleDisplay/index.js +20 -3
  213. package/esm/LinearWiggleDisplay/index.js.map +1 -1
  214. package/esm/LinearWiggleDisplay/models/model.d.ts +24 -5
  215. package/esm/LinearWiggleDisplay/models/model.js +87 -133
  216. package/esm/LinearWiggleDisplay/models/model.js.map +1 -1
  217. package/esm/MultiDensityRenderer/MultiDensityRenderer.d.ts +7 -0
  218. package/esm/MultiDensityRenderer/MultiDensityRenderer.js +36 -0
  219. package/esm/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -0
  220. package/esm/MultiDensityRenderer/configSchema.d.ts +2 -0
  221. package/esm/MultiDensityRenderer/configSchema.js +5 -0
  222. package/esm/MultiDensityRenderer/configSchema.js.map +1 -0
  223. package/esm/MultiDensityRenderer/index.d.ts +3 -0
  224. package/esm/MultiDensityRenderer/index.js +12 -0
  225. package/esm/MultiDensityRenderer/index.js.map +1 -0
  226. package/esm/MultiLineRenderer/MultiLineRenderer.d.ts +7 -0
  227. package/esm/MultiLineRenderer/MultiLineRenderer.js +25 -0
  228. package/esm/MultiLineRenderer/MultiLineRenderer.js.map +1 -0
  229. package/esm/MultiLineRenderer/configSchema.d.ts +2 -0
  230. package/esm/MultiLineRenderer/configSchema.js +18 -0
  231. package/esm/MultiLineRenderer/configSchema.js.map +1 -0
  232. package/esm/MultiLineRenderer/index.d.ts +3 -0
  233. package/esm/MultiLineRenderer/index.js +12 -0
  234. package/esm/MultiLineRenderer/index.js.map +1 -0
  235. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +10 -0
  236. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js +162 -0
  237. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -0
  238. package/esm/MultiLinearWiggleDisplay/components/SetMinMaxDialog.d.ts +11 -0
  239. package/esm/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js +46 -0
  240. package/esm/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js.map +1 -0
  241. package/esm/MultiLinearWiggleDisplay/components/Tooltip.d.ts +25 -0
  242. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js +43 -0
  243. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js.map +1 -0
  244. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +13 -0
  245. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +99 -0
  246. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -0
  247. package/esm/MultiLinearWiggleDisplay/components/YScaleBar.d.ts +7 -0
  248. package/esm/MultiLinearWiggleDisplay/components/YScaleBar.js +9 -0
  249. package/esm/MultiLinearWiggleDisplay/components/YScaleBar.js.map +1 -0
  250. package/esm/MultiLinearWiggleDisplay/components/util.d.ts +10 -0
  251. package/esm/MultiLinearWiggleDisplay/components/util.js +31 -0
  252. package/esm/MultiLinearWiggleDisplay/components/util.js.map +1 -0
  253. package/esm/MultiLinearWiggleDisplay/index.d.ts +3 -0
  254. package/esm/MultiLinearWiggleDisplay/index.js +18 -0
  255. package/esm/MultiLinearWiggleDisplay/index.js.map +1 -0
  256. package/esm/MultiLinearWiggleDisplay/models/configSchema.d.ts +2 -0
  257. package/esm/MultiLinearWiggleDisplay/models/configSchema.js +74 -0
  258. package/esm/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -0
  259. package/esm/MultiLinearWiggleDisplay/models/model.d.ts +339 -0
  260. package/esm/MultiLinearWiggleDisplay/models/model.js +570 -0
  261. package/esm/MultiLinearWiggleDisplay/models/model.js.map +1 -0
  262. package/esm/MultiQuantitativeTrack/index.d.ts +3 -0
  263. package/esm/MultiQuantitativeTrack/index.js +14 -0
  264. package/esm/MultiQuantitativeTrack/index.js.map +1 -0
  265. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +7 -0
  266. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js +33 -0
  267. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -0
  268. package/esm/MultiRowLineRenderer/configSchema.d.ts +2 -0
  269. package/esm/MultiRowLineRenderer/configSchema.js +18 -0
  270. package/esm/MultiRowLineRenderer/configSchema.js.map +1 -0
  271. package/esm/MultiRowLineRenderer/index.d.ts +3 -0
  272. package/esm/MultiRowLineRenderer/index.js +12 -0
  273. package/esm/MultiRowLineRenderer/index.js.map +1 -0
  274. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +7 -0
  275. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +39 -0
  276. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -0
  277. package/esm/MultiRowXYPlotRenderer/configSchema.d.ts +2 -0
  278. package/esm/MultiRowXYPlotRenderer/configSchema.js +26 -0
  279. package/esm/MultiRowXYPlotRenderer/configSchema.js.map +1 -0
  280. package/esm/MultiRowXYPlotRenderer/index.d.ts +3 -0
  281. package/esm/MultiRowXYPlotRenderer/index.js +12 -0
  282. package/esm/MultiRowXYPlotRenderer/index.js.map +1 -0
  283. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +28 -0
  284. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +87 -0
  285. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -0
  286. package/esm/MultiWiggleAdapter/configSchema.d.ts +2 -0
  287. package/esm/MultiWiggleAdapter/configSchema.js +12 -0
  288. package/esm/MultiWiggleAdapter/configSchema.js.map +1 -0
  289. package/esm/MultiWiggleAdapter/index.d.ts +3 -0
  290. package/esm/MultiWiggleAdapter/index.js +15 -0
  291. package/esm/MultiWiggleAdapter/index.js.map +1 -0
  292. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.d.ts +5 -0
  293. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +87 -0
  294. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -0
  295. package/esm/MultiWiggleAddTrackWidget/index.d.ts +3 -0
  296. package/esm/MultiWiggleAddTrackWidget/index.js +12 -0
  297. package/esm/MultiWiggleAddTrackWidget/index.js.map +1 -0
  298. package/esm/MultiWiggleRendering.d.ts +21 -0
  299. package/esm/MultiWiggleRendering.js +75 -0
  300. package/esm/MultiWiggleRendering.js.map +1 -0
  301. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +7 -0
  302. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js +28 -0
  303. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -0
  304. package/esm/MultiXYPlotRenderer/configSchema.d.ts +2 -0
  305. package/esm/MultiXYPlotRenderer/configSchema.js +26 -0
  306. package/esm/MultiXYPlotRenderer/configSchema.js.map +1 -0
  307. package/esm/MultiXYPlotRenderer/index.d.ts +3 -0
  308. package/esm/MultiXYPlotRenderer/index.js +12 -0
  309. package/esm/MultiXYPlotRenderer/index.js.map +1 -0
  310. package/esm/QuantitativeTrack/index.d.ts +3 -0
  311. package/esm/QuantitativeTrack/index.js +14 -0
  312. package/esm/QuantitativeTrack/index.js.map +1 -0
  313. package/esm/Tooltip.d.ts +20 -0
  314. package/esm/Tooltip.js +71 -0
  315. package/esm/Tooltip.js.map +1 -0
  316. package/esm/WiggleBaseRenderer.d.ts +9 -10
  317. package/esm/WiggleBaseRenderer.js +7 -5
  318. package/esm/WiggleBaseRenderer.js.map +1 -1
  319. package/esm/WiggleRPC/rpcMethods.d.ts +17 -1
  320. package/esm/WiggleRPC/rpcMethods.js +49 -7
  321. package/esm/WiggleRPC/rpcMethods.js.map +1 -1
  322. package/esm/WiggleRendering.d.ts +1 -1
  323. package/esm/WiggleRendering.js +4 -8
  324. package/esm/WiggleRendering.js.map +1 -1
  325. package/esm/XYPlotRenderer/XYPlotRenderer.d.ts +4 -1
  326. package/esm/XYPlotRenderer/XYPlotRenderer.js +16 -99
  327. package/esm/XYPlotRenderer/XYPlotRenderer.js.map +1 -1
  328. package/esm/XYPlotRenderer/configSchema.d.ts +2 -0
  329. package/esm/XYPlotRenderer/configSchema.js +26 -0
  330. package/esm/XYPlotRenderer/configSchema.js.map +1 -0
  331. package/esm/XYPlotRenderer/index.d.ts +7 -3
  332. package/esm/XYPlotRenderer/index.js +12 -22
  333. package/esm/XYPlotRenderer/index.js.map +1 -1
  334. package/esm/configSchema.js +0 -5
  335. package/esm/configSchema.js.map +1 -1
  336. package/esm/drawxy.d.ts +50 -0
  337. package/esm/drawxy.js +286 -0
  338. package/esm/drawxy.js.map +1 -0
  339. package/esm/index.d.ts +79 -21
  340. package/esm/index.js +49 -74
  341. package/esm/index.js.map +1 -1
  342. package/esm/util.d.ts +34 -1
  343. package/esm/util.js +108 -0
  344. package/esm/util.js.map +1 -1
  345. package/package.json +11 -5
  346. package/src/BigWigAdapter/BigWigAdapter.ts +53 -35
  347. package/src/BigWigAdapter/__snapshots__/BigWigAdapter.test.ts.snap +10 -10
  348. package/src/BigWigAdapter/configSchema.ts +5 -0
  349. package/src/BigWigAdapter/index.ts +19 -1
  350. package/src/CreateMultiWiggleExtension/ConfirmDialog.tsx +66 -0
  351. package/src/CreateMultiWiggleExtension/index.ts +57 -0
  352. package/src/DensityRenderer/DensityRenderer.test.js +8 -2
  353. package/src/DensityRenderer/DensityRenderer.ts +14 -0
  354. package/src/DensityRenderer/__snapshots__/DensityRenderer.test.js.snap +8 -0
  355. package/src/DensityRenderer/configSchema.ts +11 -0
  356. package/src/DensityRenderer/index.ts +14 -53
  357. package/src/LinePlotRenderer/LinePlotRenderer.ts +19 -0
  358. package/src/LinePlotRenderer/{index.js → configSchema.ts} +3 -4
  359. package/src/LinePlotRenderer/index.ts +16 -0
  360. package/src/LinearWiggleDisplay/components/SetColorDialog.tsx +17 -19
  361. package/src/LinearWiggleDisplay/components/Tooltip.tsx +6 -122
  362. package/src/LinearWiggleDisplay/index.ts +24 -3
  363. package/src/LinearWiggleDisplay/models/model.tsx +98 -174
  364. package/src/MultiDensityRenderer/MultiDensityRenderer.ts +39 -0
  365. package/src/MultiDensityRenderer/configSchema.ts +10 -0
  366. package/src/MultiDensityRenderer/index.ts +16 -0
  367. package/src/MultiLineRenderer/MultiLineRenderer.ts +29 -0
  368. package/src/MultiLineRenderer/configSchema.ts +24 -0
  369. package/src/MultiLineRenderer/index.ts +17 -0
  370. package/src/MultiLinearWiggleDisplay/components/SetColorDialog.tsx +322 -0
  371. package/src/MultiLinearWiggleDisplay/components/SetMinMaxDialog.tsx +113 -0
  372. package/src/MultiLinearWiggleDisplay/components/Tooltip.tsx +76 -0
  373. package/src/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.tsx +261 -0
  374. package/src/MultiLinearWiggleDisplay/components/YScaleBar.tsx +25 -0
  375. package/src/MultiLinearWiggleDisplay/components/declare.d.ts +1 -0
  376. package/src/MultiLinearWiggleDisplay/components/util.test.ts +69 -0
  377. package/src/MultiLinearWiggleDisplay/components/util.ts +33 -0
  378. package/src/MultiLinearWiggleDisplay/index.ts +20 -0
  379. package/src/MultiLinearWiggleDisplay/models/configSchema.ts +94 -0
  380. package/src/MultiLinearWiggleDisplay/models/model.tsx +721 -0
  381. package/src/MultiQuantitativeTrack/index.ts +26 -0
  382. package/src/MultiRowLineRenderer/MultiRowLineRenderer.ts +36 -0
  383. package/src/MultiRowLineRenderer/configSchema.ts +25 -0
  384. package/src/MultiRowLineRenderer/index.ts +16 -0
  385. package/src/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.ts +43 -0
  386. package/src/MultiRowXYPlotRenderer/configSchema.ts +33 -0
  387. package/src/MultiRowXYPlotRenderer/index.ts +16 -0
  388. package/src/MultiWiggleAdapter/MultiWiggleAdapter.ts +120 -0
  389. package/src/MultiWiggleAdapter/configSchema.ts +16 -0
  390. package/src/MultiWiggleAdapter/index.ts +20 -0
  391. package/src/MultiWiggleAdapter/test_data/volvox.bw +0 -0
  392. package/src/MultiWiggleAddTrackWidget/AddTrackWorkflow.tsx +130 -0
  393. package/src/MultiWiggleAddTrackWidget/index.ts +17 -0
  394. package/src/MultiWiggleRendering.tsx +125 -0
  395. package/src/MultiXYPlotRenderer/MultiXYPlotRenderer.ts +32 -0
  396. package/src/MultiXYPlotRenderer/configSchema.ts +31 -0
  397. package/src/MultiXYPlotRenderer/index.ts +17 -0
  398. package/src/QuantitativeTrack/index.ts +26 -0
  399. package/src/Tooltip.tsx +123 -0
  400. package/src/WiggleBaseRenderer.tsx +15 -9
  401. package/src/WiggleRPC/rpcMethods.ts +68 -17
  402. package/src/WiggleRendering.tsx +12 -18
  403. package/src/XYPlotRenderer/XYPlotRenderer.test.js +3 -1
  404. package/src/XYPlotRenderer/XYPlotRenderer.ts +19 -171
  405. package/src/XYPlotRenderer/__snapshots__/XYPlotRenderer.test.js.snap +8 -0
  406. package/src/XYPlotRenderer/configSchema.ts +32 -0
  407. package/src/XYPlotRenderer/index.ts +16 -27
  408. package/src/__snapshots__/WiggleRendering.test.js.snap +0 -2
  409. package/src/configSchema.ts +0 -5
  410. package/src/declare.d.ts +0 -1
  411. package/src/drawxy.ts +387 -0
  412. package/src/index.ts +75 -129
  413. package/src/util.ts +174 -0
  414. package/src/LinePlotRenderer/LinePlotRenderer.js +0 -91
@@ -0,0 +1,2 @@
1
+ declare const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
2
+ export default configSchema;
@@ -0,0 +1,18 @@
1
+ import { types } from 'mobx-state-tree';
2
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
3
+ import ConfigSchema from '../configSchema';
4
+ const configSchema = ConfigurationSchema('MultiRowLineRenderer', {
5
+ displayCrossHatches: {
6
+ type: 'boolean',
7
+ description: 'choose to draw cross hatches (sideways lines)',
8
+ defaultValue: false,
9
+ },
10
+ summaryScoreMode: {
11
+ type: 'stringEnum',
12
+ model: types.enumeration('Score type', ['max', 'min', 'avg', 'whiskers']),
13
+ description: 'choose whether to use max/min/average or whiskers which combines all three into the same rendering',
14
+ defaultValue: 'avg',
15
+ },
16
+ }, { baseConfiguration: ConfigSchema, explicitlyTyped: true });
17
+ export default configSchema;
18
+ //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/MultiRowLineRenderer/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAE1C,MAAM,YAAY,GAAG,mBAAmB,CACtC,sBAAsB,EACtB;IACE,mBAAmB,EAAE;QACnB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+CAA+C;QAC5D,YAAY,EAAE,KAAK;KACpB;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACzE,WAAW,EACT,oGAAoG;QACtG,YAAY,EAAE,KAAK;KACpB;CACF,EACD,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,CAC3D,CAAA;AAED,eAAe,YAAY,CAAA"}
@@ -0,0 +1,3 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ declare const _default: (pluginManager: PluginManager) => void;
3
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import ReactComponent from '../MultiWiggleRendering';
2
+ import MultiRowLineRenderer from './MultiRowLineRenderer';
3
+ import configSchema from './configSchema';
4
+ export default (pluginManager) => {
5
+ pluginManager.addRendererType(() => new MultiRowLineRenderer({
6
+ name: 'MultiRowLineRenderer',
7
+ ReactComponent,
8
+ configSchema,
9
+ pluginManager,
10
+ }));
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MultiRowLineRenderer/index.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,yBAAyB,CAAA;AACpD,OAAO,oBAAoB,MAAM,wBAAwB,CAAA;AACzD,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,eAAe,CAC3B,GAAG,EAAE,CACH,IAAI,oBAAoB,CAAC;QACvB,IAAI,EAAE,sBAAsB;QAC5B,cAAc;QACd,YAAY;QACZ,aAAa;KACd,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { Feature } from '@jbrowse/core/util';
2
+ import WiggleBaseRenderer, { MultiRenderArgsDeserialized as MultiArgs } from '../WiggleBaseRenderer';
3
+ export default class MultiXYPlotRenderer extends WiggleBaseRenderer {
4
+ draw(ctx: CanvasRenderingContext2D, props: MultiArgs): Promise<{
5
+ reducedFeatures: Feature[];
6
+ }>;
7
+ }
@@ -0,0 +1,39 @@
1
+ import { groupBy } from '../util';
2
+ import { drawXY } from '../drawxy';
3
+ import WiggleBaseRenderer from '../WiggleBaseRenderer';
4
+ export default class MultiXYPlotRenderer extends WiggleBaseRenderer {
5
+ // @ts-ignore
6
+ async draw(ctx, props) {
7
+ const { bpPerPx, sources, regions, features } = props;
8
+ const [region] = regions;
9
+ const groups = groupBy([...features.values()], f => f.get('source'));
10
+ const height = props.height / Object.keys(groups).length;
11
+ const width = (region.end - region.start) / bpPerPx;
12
+ const Color = await import('color').then(f => f.default);
13
+ let feats = [];
14
+ ctx.save();
15
+ sources.forEach(source => {
16
+ const features = groups[source.name];
17
+ if (!features) {
18
+ return;
19
+ }
20
+ const { reducedFeatures } = drawXY(ctx, {
21
+ ...props,
22
+ features,
23
+ height,
24
+ colorCallback: () => source.color || 'blue',
25
+ Color,
26
+ });
27
+ ctx.strokeStyle = 'rgba(200,200,200,0.8)';
28
+ ctx.beginPath();
29
+ ctx.moveTo(0, height);
30
+ ctx.lineTo(width, height);
31
+ ctx.stroke();
32
+ ctx.translate(0, height);
33
+ feats = feats.concat(reducedFeatures);
34
+ });
35
+ ctx.restore();
36
+ return { reducedFeatures: feats };
37
+ }
38
+ }
39
+ //# sourceMappingURL=MultiRowXYPlotRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiRowXYPlotRenderer.js","sourceRoot":"","sources":["../../src/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,kBAEN,MAAM,uBAAuB,CAAA;AAE9B,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,kBAAkB;IACjE,aAAa;IACb,KAAK,CAAC,IAAI,CAAC,GAA6B,EAAE,KAAgB;QACxD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;QACrD,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAA;QACxB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;QACpE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;QACxD,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAA;QACnD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACxD,IAAI,KAAK,GAAG,EAAe,CAAA;QAC3B,GAAG,CAAC,IAAI,EAAE,CAAA;QACV,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACpC,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAM;aACP;YACD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE;gBACtC,GAAG,KAAK;gBACR,QAAQ;gBACR,MAAM;gBACN,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM;gBAC3C,KAAK;aACN,CAAC,CAAA;YACF,GAAG,CAAC,WAAW,GAAG,uBAAuB,CAAA;YACzC,GAAG,CAAC,SAAS,EAAE,CAAA;YACf,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YACrB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YACzB,GAAG,CAAC,MAAM,EAAE,CAAA;YACZ,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YACxB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,OAAO,EAAE,CAAA;QACb,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAA;IACnC,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ declare const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
2
+ export default configSchema;
@@ -0,0 +1,26 @@
1
+ import { types } from 'mobx-state-tree';
2
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
3
+ import ConfigSchema from '../configSchema';
4
+ const configSchema = ConfigurationSchema('MultiRowXYPlotRenderer', {
5
+ filled: {
6
+ type: 'boolean',
7
+ defaultValue: true,
8
+ },
9
+ displayCrossHatches: {
10
+ type: 'boolean',
11
+ description: 'choose to draw cross hatches (sideways lines)',
12
+ defaultValue: false,
13
+ },
14
+ summaryScoreMode: {
15
+ type: 'stringEnum',
16
+ model: types.enumeration('Score type', ['max', 'min', 'avg', 'whiskers']),
17
+ description: 'choose whether to use max/min/average or whiskers which combines all three into the same rendering',
18
+ defaultValue: 'whiskers',
19
+ },
20
+ minSize: {
21
+ type: 'number',
22
+ defaultValue: 0,
23
+ },
24
+ }, { baseConfiguration: ConfigSchema, explicitlyTyped: true });
25
+ export default configSchema;
26
+ //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/MultiRowXYPlotRenderer/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAE1C,MAAM,YAAY,GAAG,mBAAmB,CACtC,wBAAwB,EACxB;IACE,MAAM,EAAE;QACN,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,IAAI;KACnB;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+CAA+C;QAC5D,YAAY,EAAE,KAAK;KACpB;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACzE,WAAW,EACT,oGAAoG;QACtG,YAAY,EAAE,UAAU;KACzB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,CAAC;KAChB;CACF,EACD,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,CAC3D,CAAA;AAED,eAAe,YAAY,CAAA"}
@@ -0,0 +1,3 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ declare const _default: (pluginManager: PluginManager) => void;
3
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import ReactComponent from '../MultiWiggleRendering';
2
+ import MultiRowXYPlotRenderer from './MultiRowXYPlotRenderer';
3
+ import configSchema from './configSchema';
4
+ export default (pluginManager) => {
5
+ pluginManager.addRendererType(() => new MultiRowXYPlotRenderer({
6
+ name: 'MultiRowXYPlotRenderer',
7
+ ReactComponent,
8
+ configSchema,
9
+ pluginManager,
10
+ }));
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MultiRowXYPlotRenderer/index.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,yBAAyB,CAAA;AACpD,OAAO,sBAAsB,MAAM,0BAA0B,CAAA;AAC7D,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,eAAe,CAC3B,GAAG,EAAE,CACH,IAAI,sBAAsB,CAAC;QACzB,IAAI,EAAE,wBAAwB;QAC9B,cAAc;QACd,YAAY;QACZ,aAAa;KACd,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
2
+ import { AugmentedRegion as Region } from '@jbrowse/core/util/types';
3
+ import { Feature } from '@jbrowse/core/util';
4
+ interface WiggleOptions extends BaseOptions {
5
+ resolution?: number;
6
+ }
7
+ interface AdapterEntry {
8
+ dataAdapter: BaseFeatureDataAdapter;
9
+ [key: string]: unknown;
10
+ }
11
+ export default class MultiWiggleAdapter extends BaseFeatureDataAdapter {
12
+ static capabilities: string[];
13
+ getAdapters(): Promise<AdapterEntry[]>;
14
+ getRefNames(opts?: BaseOptions): Promise<string[]>;
15
+ getGlobalStats(opts?: BaseOptions): Promise<{
16
+ scoreMin: number;
17
+ scoreMax: number;
18
+ }>;
19
+ getFeatures(region: Region, opts?: WiggleOptions): import("rxjs").Observable<Feature>;
20
+ estimateRegionsStats(_regions: Region[]): Promise<{
21
+ featureDensity: number;
22
+ }>;
23
+ getSources(): Promise<{
24
+ name: unknown;
25
+ }[]>;
26
+ freeResources(): void;
27
+ }
28
+ export {};
@@ -0,0 +1,87 @@
1
+ import { BaseFeatureDataAdapter, } from '@jbrowse/core/data_adapters/BaseAdapter';
2
+ import { ObservableCreate } from '@jbrowse/core/util/rxjs';
3
+ import { SimpleFeature } from '@jbrowse/core/util';
4
+ import { merge } from 'rxjs';
5
+ import { map } from 'rxjs/operators';
6
+ function getFilename(uri) {
7
+ const filename = uri.slice(uri.lastIndexOf('/') + 1);
8
+ return filename.slice(0, filename.lastIndexOf('.'));
9
+ }
10
+ export default class MultiWiggleAdapter extends BaseFeatureDataAdapter {
11
+ async getAdapters() {
12
+ const getSubAdapter = this.getSubAdapter;
13
+ if (!getSubAdapter) {
14
+ throw new Error('no getSubAdapter available');
15
+ }
16
+ let subConfs = this.getConf('subadapters');
17
+ if (!(subConfs === null || subConfs === void 0 ? void 0 : subConfs.length)) {
18
+ const entries = this.getConf('bigWigs');
19
+ subConfs = entries.map(entry => ({
20
+ type: 'BigWigAdapter',
21
+ source: getFilename(entry),
22
+ bigWigLocation: {
23
+ uri: entry,
24
+ },
25
+ }));
26
+ }
27
+ return Promise.all(
28
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
+ subConfs.map(async (conf) => {
30
+ const dataAdapter = (await getSubAdapter(conf))
31
+ .dataAdapter;
32
+ return {
33
+ source: dataAdapter.id,
34
+ ...conf,
35
+ dataAdapter,
36
+ };
37
+ }));
38
+ }
39
+ // note: can't really have dis-agreeing refNames
40
+ async getRefNames(opts) {
41
+ const adapters = await this.getAdapters();
42
+ return adapters[0].dataAdapter.getRefNames(opts);
43
+ }
44
+ async getGlobalStats(opts) {
45
+ const adapters = await this.getAdapters();
46
+ const stats = (await Promise.all(
47
+ // @ts-ignore
48
+ adapters.map(adp => { var _a, _b; return (_b = (_a = adp.dataAdapter).getGlobalStats) === null || _b === void 0 ? void 0 : _b.call(_a, opts); }))).filter(f => !!f);
49
+ const scoreMin = Math.min(...stats.map(s => s.scoreMin));
50
+ const scoreMax = Math.max(...stats.map(s => s.scoreMax));
51
+ return { scoreMin, scoreMax };
52
+ }
53
+ getFeatures(region, opts = {}) {
54
+ return ObservableCreate(async (observer) => {
55
+ const adapters = await this.getAdapters();
56
+ merge(...adapters.map(adp => adp.dataAdapter.getFeatures(region, opts).pipe(map(p =>
57
+ // add source field if it does not exist
58
+ p.get('source')
59
+ ? p
60
+ : new SimpleFeature({
61
+ ...p.toJSON(),
62
+ uniqueId: adp.source + '-' + p.id(),
63
+ source: adp.source,
64
+ }))))).subscribe(observer);
65
+ }, opts.signal);
66
+ }
67
+ // always render bigwig instead of calculating a feature density for it
68
+ async estimateRegionsStats(_regions) {
69
+ return { featureDensity: 0 };
70
+ }
71
+ // in another adapter type, this could be dynamic depending on region or
72
+ // something, but it is static for this particular multi-wiggle adapter type
73
+ async getSources() {
74
+ const adapters = await this.getAdapters();
75
+ return adapters.map(({ dataAdapter, source, ...rest }) => ({
76
+ name: source,
77
+ ...rest,
78
+ }));
79
+ }
80
+ freeResources() { }
81
+ }
82
+ MultiWiggleAdapter.capabilities = [
83
+ 'hasResolution',
84
+ 'hasLocalStats',
85
+ 'hasGlobalStats',
86
+ ];
87
+ //# sourceMappingURL=MultiWiggleAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiWiggleAdapter.js","sourceRoot":"","sources":["../../src/MultiWiggleAdapter/MultiWiggleAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAW,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAMpC,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;AACrD,CAAC;AAOD,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,sBAAsB;IAO7D,KAAK,CAAC,WAAW;QACtB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACxC,IAAI,CAAC,aAAa,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC9C;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC1C,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA,EAAE;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAa,CAAA;YACnD,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC;gBAC1B,cAAc,EAAE;oBACd,GAAG,EAAE,KAAK;iBACX;aACF,CAAC,CAAC,CAAA;SACJ;QAED,OAAO,OAAO,CAAC,GAAG;QAChB,8DAA8D;QAC9D,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAS,EAAE,EAAE;YAC/B,MAAM,WAAW,GAAG,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;iBAC5C,WAAqC,CAAA;YACxC,OAAO;gBACL,MAAM,EAAE,WAAW,CAAC,EAAE;gBACtB,GAAG,IAAI;gBACP,WAAW;aACZ,CAAA;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;IAED,gDAAgD;IACzC,KAAK,CAAC,WAAW,CAAC,IAAkB;QACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACzC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,IAAkB;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACzC,MAAM,KAAK,GAAG,CACZ,MAAM,OAAO,CAAC,GAAG;QACf,aAAa;QACb,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,eAAC,OAAA,MAAA,MAAA,GAAG,CAAC,WAAW,EAAC,cAAc,mDAAG,IAAI,CAAC,CAAA,EAAA,CAAC,CAC5D,CACF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;QACxD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;IAC/B,CAAC;IAEM,WAAW,CAAC,MAAc,EAAE,OAAsB,EAAE;QACzD,OAAO,gBAAgB,CAAU,KAAK,EAAC,QAAQ,EAAC,EAAE;YAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;YACzC,KAAK,CACH,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACpB,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,CAAC,EAAE;YACN,wCAAwC;YACxC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACb,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,IAAI,aAAa,CAAC;oBAChB,GAAG,CAAC,CAAC,MAAM,EAAE;oBACb,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE;oBACnC,MAAM,EAAE,GAAG,CAAC,MAAM;iBACnB,CAAC,CACP,CACF,CACF,CACF,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACvB,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,oBAAoB,CAAC,QAAkB;QAC3C,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,CAAA;IAC9B,CAAC;IAED,wEAAwE;IACxE,4EAA4E;IAC5E,KAAK,CAAC,UAAU;QACd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACzC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACzD,IAAI,EAAE,MAAM;YACZ,GAAG,IAAI;SACR,CAAC,CAAC,CAAA;IACL,CAAC;IAEM,aAAa,KAAU,CAAC;;AA7FjB,+BAAY,GAAG;IAC3B,eAAe;IACf,eAAe;IACf,gBAAgB;CACjB,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
2
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
+ export default ConfigurationSchema('MultiWiggleAdapter', {
3
+ subadapters: {
4
+ type: 'frozen',
5
+ defaultValue: [],
6
+ },
7
+ bigWigs: {
8
+ type: 'frozen',
9
+ defaultValue: [],
10
+ },
11
+ }, { explicitlyTyped: true });
12
+ //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/MultiWiggleAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,eAAe,mBAAmB,CAChC,oBAAoB,EACpB;IACE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,EAAE;KACjB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,EAAE;KACjB;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA"}
@@ -0,0 +1,3 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ declare const _default: (pluginManager: PluginManager) => void;
3
+ export default _default;
@@ -0,0 +1,15 @@
1
+ import configSchema from './configSchema';
2
+ import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType';
3
+ export default (pluginManager) => {
4
+ pluginManager.addAdapterType(() => new AdapterType({
5
+ name: 'MultiWiggleAdapter',
6
+ configSchema,
7
+ adapterCapabilities: [
8
+ 'hasResolution',
9
+ 'hasLocalStats',
10
+ 'hasGlobalStats',
11
+ ],
12
+ getAdapterClass: () => import('./MultiWiggleAdapter').then(r => r.default),
13
+ }));
14
+ };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MultiWiggleAdapter/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,WAAW,MAAM,iDAAiD,CAAA;AAGzE,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAC1B,GAAG,EAAE,CACH,IAAI,WAAW,CAAC;QACd,IAAI,EAAE,oBAAoB;QAC1B,YAAY;QACZ,mBAAmB,EAAE;YACnB,eAAe;YACf,eAAe;YACf,gBAAgB;SACjB;QACD,eAAe,EAAE,GAAG,EAAE,CACpB,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACtD,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { AddTrackModel } from '@jbrowse/plugin-data-management';
3
+ export default function MultiWiggleWidget({ model }: {
4
+ model: AddTrackModel;
5
+ }): JSX.Element;
@@ -0,0 +1,87 @@
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
+ const useStyles = makeStyles()(theme => ({
7
+ textbox: {
8
+ width: '100%',
9
+ },
10
+ paper: {
11
+ margin: theme.spacing(),
12
+ padding: theme.spacing(),
13
+ },
14
+ submit: {
15
+ marginTop: 25,
16
+ marginBottom: 100,
17
+ display: 'block',
18
+ },
19
+ }));
20
+ export default function MultiWiggleWidget({ model }) {
21
+ const { classes } = useStyles();
22
+ const [val, setVal] = useState('');
23
+ const [trackName, setTrackName] = useState('MultiWiggle ' + Date.now());
24
+ return (React.createElement(Paper, { className: classes.paper },
25
+ React.createElement("ul", null,
26
+ React.createElement("li", null, "Enter list of URLs for bigwig files in the textbox"),
27
+ React.createElement("li", null, "Or, use the button below the text box to select files from your computer")),
28
+ React.createElement(TextField, { multiline: true, rows: 10, value: val, onChange: event => setVal(event.target.value), placeholder: 'Paste list of URLs here, or use file selector below', variant: "outlined", className: classes.textbox }),
29
+ React.createElement(Button, { variant: "outlined", component: "label" },
30
+ "Choose Files from your computer",
31
+ React.createElement("input", { type: "file", hidden: true, multiple: true, onChange: ({ target }) => {
32
+ const res = Array.from((target === null || target === void 0 ? void 0 : target.files) || []).map(file => ({
33
+ type: 'BigWigAdapter',
34
+ bigWigLocation: isElectron
35
+ ? {
36
+ localPath: file.path,
37
+ locationType: 'LocalPathLocation',
38
+ }
39
+ : storeBlobLocation({ blob: file }),
40
+ source: file.name,
41
+ }));
42
+ setVal(JSON.stringify(res, null, 2));
43
+ } })),
44
+ React.createElement(TextField, { value: trackName, onChange: event => setTrackName(event.target.value), helperText: "Track name" }),
45
+ React.createElement(Button, { variant: "contained", className: classes.submit, onClick: () => {
46
+ var _a;
47
+ const session = getSession(model);
48
+ const trackId = [
49
+ `${trackName.toLowerCase().replace(/ /g, '_')}-${Date.now()}`,
50
+ `${session.adminMode ? '' : '-sessionTrack'}`,
51
+ ].join('');
52
+ // allow list of bigwigs in JSON format or line-by-line
53
+ let bigWigs;
54
+ try {
55
+ bigWigs = JSON.parse(val);
56
+ }
57
+ catch (e) {
58
+ bigWigs = val.split('\n');
59
+ }
60
+ const obj = typeof bigWigs[0] === 'string'
61
+ ? { bigWigs }
62
+ : { subadapters: bigWigs };
63
+ session.addTrackConf({
64
+ trackId,
65
+ type: 'MultiQuantitativeTrack',
66
+ name: trackName,
67
+ assemblyNames: [model.assembly],
68
+ adapter: {
69
+ type: 'MultiWiggleAdapter',
70
+ ...obj,
71
+ },
72
+ });
73
+ (_a = model.view) === null || _a === void 0 ? void 0 : _a.showTrack(trackId);
74
+ model.clearData();
75
+ session.hideWidget(model);
76
+ } }, "Submit"),
77
+ React.createElement("p", null, "Additional notes: "),
78
+ React.createElement("ul", null,
79
+ React.createElement("li", null,
80
+ "The list of bigwig files in the text box can be a list of URLs, or a list of elements like",
81
+ ' ',
82
+ React.createElement("code", null, `[{"type":"BigWigAdapter","bigWigLocation":{"uri":"http://host/file.bw"}, "color":"green","source":"name for subtrack"}]`),
83
+ ' ',
84
+ "to apply e.g. the color attribute to the view"),
85
+ React.createElement("li", null, "Adding local files will update the textbox with JSON contents that are ready to submit with the \"Submit\" button"))));
86
+ }
87
+ //# sourceMappingURL=AddTrackWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddTrackWorkflow.js","sourceRoot":"","sources":["../../src/MultiWiggleAddTrackWidget/AddTrackWorkflow.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ declare const _default: (pm: PluginManager) => void;
3
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import { AddTrackWorkflowType } from '@jbrowse/core/pluggableElementTypes';
2
+ import { types } from 'mobx-state-tree';
3
+ // locals
4
+ import MultiWiggleWidget from './AddTrackWorkflow';
5
+ export default (pm) => {
6
+ pm.addAddTrackWorkflowType(() => new AddTrackWorkflowType({
7
+ name: 'Multi-wiggle track',
8
+ ReactComponent: MultiWiggleWidget,
9
+ stateModel: types.model({}),
10
+ }));
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MultiWiggleAddTrackWidget/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,SAAS;AACT,OAAO,iBAAiB,MAAM,oBAAoB,CAAA;AAElD,eAAe,CAAC,EAAiB,EAAE,EAAE;IACnC,EAAE,CAAC,uBAAuB,CACxB,GAAG,EAAE,CACH,IAAI,oBAAoB,CAAC;QACvB,IAAI,EAAE,oBAAoB;QAC1B,cAAc,EAAE,iBAAiB;QACjC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;KAC5B,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ /// <reference types="react" />
2
+ import { Region } from '@jbrowse/core/util/types';
3
+ import { Feature } from '@jbrowse/core/util';
4
+ import { Source } from './util';
5
+ declare function WiggleRendering(props: {
6
+ regions: Region[];
7
+ features: Map<string, Feature>;
8
+ bpPerPx: number;
9
+ width: number;
10
+ height: number;
11
+ onMouseLeave: Function;
12
+ onMouseMove: Function;
13
+ onFeatureClick: Function;
14
+ blockKey: string;
15
+ sources: Source[];
16
+ displayModel: {
17
+ isMultiRow: boolean;
18
+ };
19
+ }): JSX.Element;
20
+ declare const _default: typeof WiggleRendering;
21
+ export default _default;
@@ -0,0 +1,75 @@
1
+ import { observer } from 'mobx-react';
2
+ import React, { useRef } from 'react';
3
+ import { SimpleFeature } from '@jbrowse/core/util';
4
+ import { PrerenderedCanvas } from '@jbrowse/core/ui';
5
+ function WiggleRendering(props) {
6
+ const { regions, features, bpPerPx, width, height, sources, onMouseLeave = () => { }, onMouseMove = () => { }, onFeatureClick = () => { }, displayModel, } = props;
7
+ const [region] = regions;
8
+ const ref = useRef(null);
9
+ function getFeatureUnderMouse(eventClientX, eventClientY) {
10
+ if (!ref.current) {
11
+ return;
12
+ }
13
+ const rect = ref.current.getBoundingClientRect();
14
+ const offsetX = eventClientX - rect.left;
15
+ const offsetY = eventClientY - rect.top;
16
+ const source = sources[Math.floor((offsetY / height) * sources.length)];
17
+ if (!source) {
18
+ return;
19
+ }
20
+ const px = region.reversed ? width - offsetX : offsetX;
21
+ const mouseoverBp = region.start + bpPerPx * px;
22
+ let featureUnderMouse;
23
+ if (displayModel.isMultiRow) {
24
+ for (const feature of features.values()) {
25
+ if (feature.get('source') !== source.name) {
26
+ continue;
27
+ }
28
+ if (mouseoverBp <= feature.get('end') + bpPerPx &&
29
+ mouseoverBp >= feature.get('start')) {
30
+ featureUnderMouse = feature;
31
+ break;
32
+ }
33
+ }
34
+ }
35
+ else {
36
+ const featuresUnderMouse = [];
37
+ for (const feature of features.values()) {
38
+ if (mouseoverBp <= feature.get('end') + bpPerPx &&
39
+ mouseoverBp >= feature.get('start')) {
40
+ featuresUnderMouse.push(feature);
41
+ }
42
+ }
43
+ if (featuresUnderMouse.length) {
44
+ const pos = Math.floor(mouseoverBp);
45
+ featureUnderMouse = new SimpleFeature({
46
+ uniqueId: 'mouseoverfeat',
47
+ sources: Object.fromEntries(featuresUnderMouse
48
+ .map(f => f.toJSON())
49
+ .map(f => {
50
+ const { refName, start, end, source, ...rest } = f;
51
+ return [source, rest];
52
+ })),
53
+ ...region,
54
+ start: pos,
55
+ end: pos + 1,
56
+ });
57
+ }
58
+ }
59
+ return featureUnderMouse;
60
+ }
61
+ return (React.createElement("div", { ref: ref, onMouseMove: event => {
62
+ const featureUnderMouse = getFeatureUnderMouse(event.clientX, event.clientY);
63
+ onMouseMove(event, featureUnderMouse);
64
+ }, onClick: event => {
65
+ const featureUnderMouse = getFeatureUnderMouse(event.clientX, event.clientY);
66
+ onFeatureClick(event, featureUnderMouse);
67
+ }, onMouseLeave: event => onMouseLeave(event), style: {
68
+ overflow: 'visible',
69
+ position: 'relative',
70
+ height,
71
+ } },
72
+ React.createElement(PrerenderedCanvas, { ...props })));
73
+ }
74
+ export default observer(WiggleRendering);
75
+ //# sourceMappingURL=MultiWiggleRendering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiWiggleRendering.js","sourceRoot":"","sources":["../src/MultiWiggleRendering.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAGrC,OAAO,EAAE,aAAa,EAAW,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAGpD,SAAS,eAAe,CAAC,KAYxB;IACC,MAAM,EACJ,OAAO,EACP,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,YAAY,GAAG,GAAG,EAAE,GAAE,CAAC,EACvB,WAAW,GAAG,GAAG,EAAE,GAAE,CAAC,EACtB,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,EACzB,YAAY,GACb,GAAG,KAAK,CAAA;IACT,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAA;IACxB,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAExC,SAAS,oBAAoB,CAAC,YAAoB,EAAE,YAAoB;QACtE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,OAAM;SACP;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAA;QAChD,MAAM,OAAO,GAAG,YAAY,GAAG,IAAI,CAAC,IAAI,CAAA;QACxC,MAAM,OAAO,GAAG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAA;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QACvE,IAAI,CAAC,MAAM,EAAE;YACX,OAAM;SACP;QACD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;QACtD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,EAAE,CAAA;QAC/C,IAAI,iBAAiB,CAAA;QACrB,IAAI,YAAY,CAAC,UAAU,EAAE;YAC3B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE;gBACvC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE;oBACzC,SAAQ;iBACT;gBACD,IACE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO;oBAC3C,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EACnC;oBACA,iBAAiB,GAAG,OAAO,CAAA;oBAC3B,MAAK;iBACN;aACF;SACF;aAAM;YACL,MAAM,kBAAkB,GAAG,EAAE,CAAA;YAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE;gBACvC,IACE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO;oBAC3C,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EACnC;oBACA,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;iBACjC;aACF;YAED,IAAI,kBAAkB,CAAC,MAAM,EAAE;gBAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;gBACnC,iBAAiB,GAAG,IAAI,aAAa,CAAC;oBACpC,QAAQ,EAAE,eAAe;oBACzB,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,kBAAkB;yBACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;yBACpB,GAAG,CAAC,CAAC,CAAC,EAAE;wBACP,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAA;wBAClD,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;oBACvB,CAAC,CAAC,CACL;oBACD,GAAG,MAAM;oBACT,KAAK,EAAE,GAAG;oBACV,GAAG,EAAE,GAAG,GAAG,CAAC;iBACb,CAAC,CAAA;aACH;SACF;QACD,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,KAAK,CAAC,EAAE;YACnB,MAAM,iBAAiB,GAAG,oBAAoB,CAC5C,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,CACd,CAAA;YACD,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAA;QACvC,CAAC,EACD,OAAO,EAAE,KAAK,CAAC,EAAE;YACf,MAAM,iBAAiB,GAAG,oBAAoB,CAC5C,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,CACd,CAAA;YACD,cAAc,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAA;QAC1C,CAAC,EACD,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAC1C,KAAK,EAAE;YACL,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,UAAU;YACpB,MAAM;SACP;QAED,oBAAC,iBAAiB,OAAK,KAAK,GAAI,CAC5B,CACP,CAAA;AACH,CAAC;AAED,eAAe,QAAQ,CAAC,eAAe,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { Feature } from '@jbrowse/core/util';
2
+ import WiggleBaseRenderer, { MultiRenderArgsDeserialized as MultiArgs } from '../WiggleBaseRenderer';
3
+ export default class MultiXYPlotRenderer extends WiggleBaseRenderer {
4
+ draw(ctx: CanvasRenderingContext2D, props: MultiArgs): Promise<{
5
+ reducedFeatures: Feature[];
6
+ }>;
7
+ }
@@ -0,0 +1,28 @@
1
+ import { drawXY } from '../drawxy';
2
+ import { groupBy, YSCALEBAR_LABEL_OFFSET } from '../util';
3
+ import WiggleBaseRenderer from '../WiggleBaseRenderer';
4
+ export default class MultiXYPlotRenderer extends WiggleBaseRenderer {
5
+ // @ts-ignore
6
+ async draw(ctx, props) {
7
+ const { sources, features } = props;
8
+ const groups = groupBy([...features.values()], f => f.get('source'));
9
+ const Color = await import('color').then(f => f.default);
10
+ let feats = [];
11
+ sources.forEach(source => {
12
+ const features = groups[source.name];
13
+ if (!features) {
14
+ return;
15
+ }
16
+ const { reducedFeatures } = drawXY(ctx, {
17
+ ...props,
18
+ features,
19
+ offset: YSCALEBAR_LABEL_OFFSET,
20
+ colorCallback: () => source.color || 'blue',
21
+ Color,
22
+ });
23
+ feats = feats.concat(reducedFeatures);
24
+ });
25
+ return { reducedFeatures: feats };
26
+ }
27
+ }
28
+ //# sourceMappingURL=MultiXYPlotRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiXYPlotRenderer.js","sourceRoot":"","sources":["../../src/MultiXYPlotRenderer/MultiXYPlotRenderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAEzD,OAAO,kBAEN,MAAM,uBAAuB,CAAA;AAE9B,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,kBAAkB;IACjE,aAAa;IACb,KAAK,CAAC,IAAI,CAAC,GAA6B,EAAE,KAAgB;QACxD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;QACpE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACxD,IAAI,KAAK,GAAG,EAAe,CAAA;QAC3B,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACpC,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAM;aACP;YACD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE;gBACtC,GAAG,KAAK;gBACR,QAAQ;gBACR,MAAM,EAAE,sBAAsB;gBAC9B,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM;gBAC3C,KAAK;aACN,CAAC,CAAA;YACF,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;QACF,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAA;IACnC,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ declare const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
2
+ export default configSchema;