@jbrowse/plugin-wiggle 2.0.0 → 2.1.2

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 (422) hide show
  1. package/dist/BigWigAdapter/BigWigAdapter.d.ts +8 -7
  2. package/dist/BigWigAdapter/BigWigAdapter.js +73 -169
  3. package/dist/BigWigAdapter/BigWigAdapter.js.map +1 -1
  4. package/dist/BigWigAdapter/configSchema.js +6 -1
  5. package/dist/BigWigAdapter/configSchema.js.map +1 -1
  6. package/dist/BigWigAdapter/index.d.ts +3 -1
  7. package/dist/BigWigAdapter/index.js +37 -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 +51 -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 +77 -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 +14 -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 +11 -150
  23. package/dist/DensityRenderer/index.js.map +1 -1
  24. package/dist/LinePlotRenderer/LinePlotRenderer.d.ts +4 -2
  25. package/dist/LinePlotRenderer/LinePlotRenderer.js +11 -177
  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 +11 -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 +21 -46
  35. package/dist/LinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
  36. package/dist/LinearWiggleDisplay/components/SetMinMaxDialog.js +16 -32
  37. package/dist/LinearWiggleDisplay/components/SetMinMaxDialog.js.map +1 -1
  38. package/dist/LinearWiggleDisplay/components/Tooltip.d.ts +6 -11
  39. package/dist/LinearWiggleDisplay/components/Tooltip.js +21 -143
  40. package/dist/LinearWiggleDisplay/components/Tooltip.js.map +1 -1
  41. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js +15 -26
  42. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -1
  43. package/dist/LinearWiggleDisplay/components/YScaleBar.js +6 -18
  44. package/dist/LinearWiggleDisplay/components/YScaleBar.js.map +1 -1
  45. package/dist/LinearWiggleDisplay/index.d.ts +7 -3
  46. package/dist/LinearWiggleDisplay/index.js +23 -8
  47. package/dist/LinearWiggleDisplay/index.js.map +1 -1
  48. package/dist/LinearWiggleDisplay/models/configSchema.js +6 -6
  49. package/dist/LinearWiggleDisplay/models/configSchema.js.map +1 -1
  50. package/dist/LinearWiggleDisplay/models/model.d.ts +24 -5
  51. package/dist/LinearWiggleDisplay/models/model.js +392 -512
  52. package/dist/LinearWiggleDisplay/models/model.js.map +1 -1
  53. package/dist/MultiDensityRenderer/MultiDensityRenderer.d.ts +7 -0
  54. package/dist/MultiDensityRenderer/MultiDensityRenderer.js +42 -0
  55. package/dist/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -0
  56. package/dist/MultiDensityRenderer/configSchema.d.ts +2 -0
  57. package/dist/MultiDensityRenderer/configSchema.js +10 -0
  58. package/dist/MultiDensityRenderer/configSchema.js.map +1 -0
  59. package/dist/MultiDensityRenderer/index.d.ts +3 -0
  60. package/dist/MultiDensityRenderer/index.js +17 -0
  61. package/dist/MultiDensityRenderer/index.js.map +1 -0
  62. package/dist/MultiLineRenderer/MultiLineRenderer.d.ts +7 -0
  63. package/dist/MultiLineRenderer/MultiLineRenderer.js +31 -0
  64. package/dist/MultiLineRenderer/MultiLineRenderer.js.map +1 -0
  65. package/dist/MultiLineRenderer/configSchema.d.ts +2 -0
  66. package/dist/MultiLineRenderer/configSchema.js +23 -0
  67. package/dist/MultiLineRenderer/configSchema.js.map +1 -0
  68. package/dist/MultiLineRenderer/index.d.ts +3 -0
  69. package/dist/MultiLineRenderer/index.js +17 -0
  70. package/dist/MultiLineRenderer/index.js.map +1 -0
  71. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +10 -0
  72. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js +191 -0
  73. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -0
  74. package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.d.ts +11 -0
  75. package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js +75 -0
  76. package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js.map +1 -0
  77. package/dist/MultiLinearWiggleDisplay/components/Tooltip.d.ts +25 -0
  78. package/dist/MultiLinearWiggleDisplay/components/Tooltip.js +49 -0
  79. package/dist/MultiLinearWiggleDisplay/components/Tooltip.js.map +1 -0
  80. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +13 -0
  81. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +105 -0
  82. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -0
  83. package/dist/MultiLinearWiggleDisplay/components/YScaleBar.d.ts +7 -0
  84. package/dist/MultiLinearWiggleDisplay/components/YScaleBar.js +14 -0
  85. package/dist/MultiLinearWiggleDisplay/components/YScaleBar.js.map +1 -0
  86. package/dist/MultiLinearWiggleDisplay/components/util.d.ts +10 -0
  87. package/dist/MultiLinearWiggleDisplay/components/util.js +36 -0
  88. package/dist/MultiLinearWiggleDisplay/components/util.js.map +1 -0
  89. package/dist/MultiLinearWiggleDisplay/index.d.ts +3 -0
  90. package/dist/MultiLinearWiggleDisplay/index.js +23 -0
  91. package/dist/MultiLinearWiggleDisplay/index.js.map +1 -0
  92. package/dist/MultiLinearWiggleDisplay/models/configSchema.d.ts +2 -0
  93. package/dist/MultiLinearWiggleDisplay/models/configSchema.js +77 -0
  94. package/dist/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -0
  95. package/dist/MultiLinearWiggleDisplay/models/model.d.ts +339 -0
  96. package/dist/MultiLinearWiggleDisplay/models/model.js +598 -0
  97. package/dist/MultiLinearWiggleDisplay/models/model.js.map +1 -0
  98. package/dist/MultiQuantitativeTrack/index.d.ts +3 -0
  99. package/dist/MultiQuantitativeTrack/index.js +19 -0
  100. package/dist/MultiQuantitativeTrack/index.js.map +1 -0
  101. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +7 -0
  102. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +39 -0
  103. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -0
  104. package/dist/MultiRowLineRenderer/configSchema.d.ts +2 -0
  105. package/dist/MultiRowLineRenderer/configSchema.js +23 -0
  106. package/dist/MultiRowLineRenderer/configSchema.js.map +1 -0
  107. package/dist/MultiRowLineRenderer/index.d.ts +3 -0
  108. package/dist/MultiRowLineRenderer/index.js +17 -0
  109. package/dist/MultiRowLineRenderer/index.js.map +1 -0
  110. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +7 -0
  111. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +68 -0
  112. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -0
  113. package/dist/MultiRowXYPlotRenderer/configSchema.d.ts +2 -0
  114. package/dist/MultiRowXYPlotRenderer/configSchema.js +31 -0
  115. package/dist/MultiRowXYPlotRenderer/configSchema.js.map +1 -0
  116. package/dist/MultiRowXYPlotRenderer/index.d.ts +3 -0
  117. package/dist/MultiRowXYPlotRenderer/index.js +17 -0
  118. package/dist/MultiRowXYPlotRenderer/index.js.map +1 -0
  119. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +29 -0
  120. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +92 -0
  121. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -0
  122. package/dist/MultiWiggleAdapter/configSchema.d.ts +2 -0
  123. package/dist/MultiWiggleAdapter/configSchema.js +14 -0
  124. package/dist/MultiWiggleAdapter/configSchema.js.map +1 -0
  125. package/dist/MultiWiggleAdapter/index.d.ts +3 -0
  126. package/dist/MultiWiggleAdapter/index.js +43 -0
  127. package/dist/MultiWiggleAdapter/index.js.map +1 -0
  128. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.d.ts +5 -0
  129. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +113 -0
  130. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -0
  131. package/dist/MultiWiggleAddTrackWidget/index.d.ts +3 -0
  132. package/dist/MultiWiggleAddTrackWidget/index.js +17 -0
  133. package/dist/MultiWiggleAddTrackWidget/index.js.map +1 -0
  134. package/dist/MultiWiggleRendering.d.ts +21 -0
  135. package/dist/MultiWiggleRendering.js +100 -0
  136. package/dist/MultiWiggleRendering.js.map +1 -0
  137. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +7 -0
  138. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +57 -0
  139. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -0
  140. package/dist/MultiXYPlotRenderer/configSchema.d.ts +2 -0
  141. package/dist/MultiXYPlotRenderer/configSchema.js +31 -0
  142. package/dist/MultiXYPlotRenderer/configSchema.js.map +1 -0
  143. package/dist/MultiXYPlotRenderer/index.d.ts +3 -0
  144. package/dist/MultiXYPlotRenderer/index.js +17 -0
  145. package/dist/MultiXYPlotRenderer/index.js.map +1 -0
  146. package/dist/QuantitativeTrack/index.d.ts +3 -0
  147. package/dist/QuantitativeTrack/index.js +19 -0
  148. package/dist/QuantitativeTrack/index.js.map +1 -0
  149. package/dist/Tooltip.d.ts +20 -0
  150. package/dist/Tooltip.js +96 -0
  151. package/dist/Tooltip.js.map +1 -0
  152. package/dist/WiggleBaseRenderer.d.ts +9 -10
  153. package/dist/WiggleBaseRenderer.js +34 -112
  154. package/dist/WiggleBaseRenderer.js.map +1 -1
  155. package/dist/WiggleRPC/rpcMethods.d.ts +17 -1
  156. package/dist/WiggleRPC/rpcMethods.js +108 -176
  157. package/dist/WiggleRPC/rpcMethods.js.map +1 -1
  158. package/dist/WiggleRendering.d.ts +1 -1
  159. package/dist/WiggleRendering.js +20 -73
  160. package/dist/WiggleRendering.js.map +1 -1
  161. package/dist/XYPlotRenderer/XYPlotRenderer.d.ts +4 -1
  162. package/dist/XYPlotRenderer/XYPlotRenderer.js +23 -223
  163. package/dist/XYPlotRenderer/XYPlotRenderer.js.map +1 -1
  164. package/dist/XYPlotRenderer/configSchema.d.ts +2 -0
  165. package/dist/XYPlotRenderer/configSchema.js +31 -0
  166. package/dist/XYPlotRenderer/configSchema.js.map +1 -0
  167. package/dist/XYPlotRenderer/index.d.ts +7 -3
  168. package/dist/XYPlotRenderer/index.js +15 -25
  169. package/dist/XYPlotRenderer/index.js.map +1 -1
  170. package/dist/configSchema.js +2 -7
  171. package/dist/configSchema.js.map +1 -1
  172. package/dist/drawxy.d.ts +50 -0
  173. package/dist/drawxy.js +292 -0
  174. package/dist/drawxy.js.map +1 -0
  175. package/dist/index.d.ts +79 -21
  176. package/dist/index.js +73 -124
  177. package/dist/index.js.map +1 -1
  178. package/dist/util.d.ts +34 -1
  179. package/dist/util.js +128 -33
  180. package/dist/util.js.map +1 -1
  181. package/esm/BigWigAdapter/BigWigAdapter.d.ts +8 -7
  182. package/esm/BigWigAdapter/BigWigAdapter.js +37 -18
  183. package/esm/BigWigAdapter/BigWigAdapter.js.map +1 -1
  184. package/esm/BigWigAdapter/configSchema.js +5 -0
  185. package/esm/BigWigAdapter/configSchema.js.map +1 -1
  186. package/esm/BigWigAdapter/index.d.ts +3 -1
  187. package/esm/BigWigAdapter/index.js +14 -1
  188. package/esm/BigWigAdapter/index.js.map +1 -1
  189. package/esm/CreateMultiWiggleExtension/ConfirmDialog.d.ts +9 -0
  190. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js +26 -0
  191. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js.map +1 -0
  192. package/esm/CreateMultiWiggleExtension/index.d.ts +2 -0
  193. package/esm/CreateMultiWiggleExtension/index.js +51 -0
  194. package/esm/CreateMultiWiggleExtension/index.js.map +1 -0
  195. package/esm/DensityRenderer/DensityRenderer.d.ts +6 -0
  196. package/esm/DensityRenderer/DensityRenderer.js +8 -0
  197. package/esm/DensityRenderer/DensityRenderer.js.map +1 -0
  198. package/esm/DensityRenderer/configSchema.d.ts +2 -0
  199. package/esm/DensityRenderer/configSchema.js +5 -0
  200. package/esm/DensityRenderer/configSchema.js.map +1 -0
  201. package/esm/DensityRenderer/index.d.ts +3 -6
  202. package/esm/DensityRenderer/index.js +11 -38
  203. package/esm/DensityRenderer/index.js.map +1 -1
  204. package/esm/LinePlotRenderer/LinePlotRenderer.d.ts +4 -2
  205. package/esm/LinePlotRenderer/LinePlotRenderer.js +7 -65
  206. package/esm/LinePlotRenderer/LinePlotRenderer.js.map +1 -1
  207. package/esm/LinePlotRenderer/configSchema.d.ts +2 -0
  208. package/esm/LinePlotRenderer/configSchema.js +11 -0
  209. package/esm/LinePlotRenderer/configSchema.js.map +1 -0
  210. package/esm/LinePlotRenderer/index.d.ts +3 -3
  211. package/esm/LinePlotRenderer/index.js +11 -11
  212. package/esm/LinePlotRenderer/index.js.map +1 -1
  213. package/esm/LinearWiggleDisplay/components/SetColorDialog.d.ts +6 -2
  214. package/esm/LinearWiggleDisplay/components/SetColorDialog.js +9 -16
  215. package/esm/LinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
  216. package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +6 -11
  217. package/esm/LinearWiggleDisplay/components/Tooltip.js +3 -76
  218. package/esm/LinearWiggleDisplay/components/Tooltip.js.map +1 -1
  219. package/esm/LinearWiggleDisplay/index.d.ts +7 -3
  220. package/esm/LinearWiggleDisplay/index.js +20 -3
  221. package/esm/LinearWiggleDisplay/index.js.map +1 -1
  222. package/esm/LinearWiggleDisplay/models/model.d.ts +24 -5
  223. package/esm/LinearWiggleDisplay/models/model.js +87 -133
  224. package/esm/LinearWiggleDisplay/models/model.js.map +1 -1
  225. package/esm/MultiDensityRenderer/MultiDensityRenderer.d.ts +7 -0
  226. package/esm/MultiDensityRenderer/MultiDensityRenderer.js +36 -0
  227. package/esm/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -0
  228. package/esm/MultiDensityRenderer/configSchema.d.ts +2 -0
  229. package/esm/MultiDensityRenderer/configSchema.js +5 -0
  230. package/esm/MultiDensityRenderer/configSchema.js.map +1 -0
  231. package/esm/MultiDensityRenderer/index.d.ts +3 -0
  232. package/esm/MultiDensityRenderer/index.js +12 -0
  233. package/esm/MultiDensityRenderer/index.js.map +1 -0
  234. package/esm/MultiLineRenderer/MultiLineRenderer.d.ts +7 -0
  235. package/esm/MultiLineRenderer/MultiLineRenderer.js +25 -0
  236. package/esm/MultiLineRenderer/MultiLineRenderer.js.map +1 -0
  237. package/esm/MultiLineRenderer/configSchema.d.ts +2 -0
  238. package/esm/MultiLineRenderer/configSchema.js +18 -0
  239. package/esm/MultiLineRenderer/configSchema.js.map +1 -0
  240. package/esm/MultiLineRenderer/index.d.ts +3 -0
  241. package/esm/MultiLineRenderer/index.js +12 -0
  242. package/esm/MultiLineRenderer/index.js.map +1 -0
  243. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +10 -0
  244. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js +162 -0
  245. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -0
  246. package/esm/MultiLinearWiggleDisplay/components/SetMinMaxDialog.d.ts +11 -0
  247. package/esm/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js +46 -0
  248. package/esm/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js.map +1 -0
  249. package/esm/MultiLinearWiggleDisplay/components/Tooltip.d.ts +25 -0
  250. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js +43 -0
  251. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js.map +1 -0
  252. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +13 -0
  253. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +99 -0
  254. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -0
  255. package/esm/MultiLinearWiggleDisplay/components/YScaleBar.d.ts +7 -0
  256. package/esm/MultiLinearWiggleDisplay/components/YScaleBar.js +9 -0
  257. package/esm/MultiLinearWiggleDisplay/components/YScaleBar.js.map +1 -0
  258. package/esm/MultiLinearWiggleDisplay/components/util.d.ts +10 -0
  259. package/esm/MultiLinearWiggleDisplay/components/util.js +31 -0
  260. package/esm/MultiLinearWiggleDisplay/components/util.js.map +1 -0
  261. package/esm/MultiLinearWiggleDisplay/index.d.ts +3 -0
  262. package/esm/MultiLinearWiggleDisplay/index.js +18 -0
  263. package/esm/MultiLinearWiggleDisplay/index.js.map +1 -0
  264. package/esm/MultiLinearWiggleDisplay/models/configSchema.d.ts +2 -0
  265. package/esm/MultiLinearWiggleDisplay/models/configSchema.js +74 -0
  266. package/esm/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -0
  267. package/esm/MultiLinearWiggleDisplay/models/model.d.ts +339 -0
  268. package/esm/MultiLinearWiggleDisplay/models/model.js +570 -0
  269. package/esm/MultiLinearWiggleDisplay/models/model.js.map +1 -0
  270. package/esm/MultiQuantitativeTrack/index.d.ts +3 -0
  271. package/esm/MultiQuantitativeTrack/index.js +14 -0
  272. package/esm/MultiQuantitativeTrack/index.js.map +1 -0
  273. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +7 -0
  274. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js +33 -0
  275. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -0
  276. package/esm/MultiRowLineRenderer/configSchema.d.ts +2 -0
  277. package/esm/MultiRowLineRenderer/configSchema.js +18 -0
  278. package/esm/MultiRowLineRenderer/configSchema.js.map +1 -0
  279. package/esm/MultiRowLineRenderer/index.d.ts +3 -0
  280. package/esm/MultiRowLineRenderer/index.js +12 -0
  281. package/esm/MultiRowLineRenderer/index.js.map +1 -0
  282. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +7 -0
  283. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +39 -0
  284. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -0
  285. package/esm/MultiRowXYPlotRenderer/configSchema.d.ts +2 -0
  286. package/esm/MultiRowXYPlotRenderer/configSchema.js +26 -0
  287. package/esm/MultiRowXYPlotRenderer/configSchema.js.map +1 -0
  288. package/esm/MultiRowXYPlotRenderer/index.d.ts +3 -0
  289. package/esm/MultiRowXYPlotRenderer/index.js +12 -0
  290. package/esm/MultiRowXYPlotRenderer/index.js.map +1 -0
  291. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +29 -0
  292. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +89 -0
  293. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -0
  294. package/esm/MultiWiggleAdapter/configSchema.d.ts +2 -0
  295. package/esm/MultiWiggleAdapter/configSchema.js +12 -0
  296. package/esm/MultiWiggleAdapter/configSchema.js.map +1 -0
  297. package/esm/MultiWiggleAdapter/index.d.ts +3 -0
  298. package/esm/MultiWiggleAdapter/index.js +15 -0
  299. package/esm/MultiWiggleAdapter/index.js.map +1 -0
  300. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.d.ts +5 -0
  301. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +87 -0
  302. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -0
  303. package/esm/MultiWiggleAddTrackWidget/index.d.ts +3 -0
  304. package/esm/MultiWiggleAddTrackWidget/index.js +12 -0
  305. package/esm/MultiWiggleAddTrackWidget/index.js.map +1 -0
  306. package/esm/MultiWiggleRendering.d.ts +21 -0
  307. package/esm/MultiWiggleRendering.js +75 -0
  308. package/esm/MultiWiggleRendering.js.map +1 -0
  309. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +7 -0
  310. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js +28 -0
  311. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -0
  312. package/esm/MultiXYPlotRenderer/configSchema.d.ts +2 -0
  313. package/esm/MultiXYPlotRenderer/configSchema.js +26 -0
  314. package/esm/MultiXYPlotRenderer/configSchema.js.map +1 -0
  315. package/esm/MultiXYPlotRenderer/index.d.ts +3 -0
  316. package/esm/MultiXYPlotRenderer/index.js +12 -0
  317. package/esm/MultiXYPlotRenderer/index.js.map +1 -0
  318. package/esm/QuantitativeTrack/index.d.ts +3 -0
  319. package/esm/QuantitativeTrack/index.js +14 -0
  320. package/esm/QuantitativeTrack/index.js.map +1 -0
  321. package/esm/Tooltip.d.ts +20 -0
  322. package/esm/Tooltip.js +71 -0
  323. package/esm/Tooltip.js.map +1 -0
  324. package/esm/WiggleBaseRenderer.d.ts +9 -10
  325. package/esm/WiggleBaseRenderer.js +9 -6
  326. package/esm/WiggleBaseRenderer.js.map +1 -1
  327. package/esm/WiggleRPC/rpcMethods.d.ts +17 -1
  328. package/esm/WiggleRPC/rpcMethods.js +49 -7
  329. package/esm/WiggleRPC/rpcMethods.js.map +1 -1
  330. package/esm/WiggleRendering.d.ts +1 -1
  331. package/esm/WiggleRendering.js +4 -8
  332. package/esm/WiggleRendering.js.map +1 -1
  333. package/esm/XYPlotRenderer/XYPlotRenderer.d.ts +4 -1
  334. package/esm/XYPlotRenderer/XYPlotRenderer.js +16 -99
  335. package/esm/XYPlotRenderer/XYPlotRenderer.js.map +1 -1
  336. package/esm/XYPlotRenderer/configSchema.d.ts +2 -0
  337. package/esm/XYPlotRenderer/configSchema.js +26 -0
  338. package/esm/XYPlotRenderer/configSchema.js.map +1 -0
  339. package/esm/XYPlotRenderer/index.d.ts +7 -3
  340. package/esm/XYPlotRenderer/index.js +12 -22
  341. package/esm/XYPlotRenderer/index.js.map +1 -1
  342. package/esm/configSchema.js +0 -5
  343. package/esm/configSchema.js.map +1 -1
  344. package/esm/drawxy.d.ts +50 -0
  345. package/esm/drawxy.js +286 -0
  346. package/esm/drawxy.js.map +1 -0
  347. package/esm/index.d.ts +79 -21
  348. package/esm/index.js +49 -74
  349. package/esm/index.js.map +1 -1
  350. package/esm/util.d.ts +34 -1
  351. package/esm/util.js +108 -0
  352. package/esm/util.js.map +1 -1
  353. package/package.json +13 -8
  354. package/src/BigWigAdapter/BigWigAdapter.ts +53 -35
  355. package/src/BigWigAdapter/__snapshots__/BigWigAdapter.test.ts.snap +10 -10
  356. package/src/BigWigAdapter/configSchema.ts +5 -0
  357. package/src/BigWigAdapter/index.ts +19 -1
  358. package/src/CreateMultiWiggleExtension/ConfirmDialog.tsx +66 -0
  359. package/src/CreateMultiWiggleExtension/index.ts +57 -0
  360. package/src/DensityRenderer/DensityRenderer.test.js +8 -2
  361. package/src/DensityRenderer/DensityRenderer.ts +14 -0
  362. package/src/DensityRenderer/__snapshots__/DensityRenderer.test.js.snap +8 -0
  363. package/src/DensityRenderer/configSchema.ts +11 -0
  364. package/src/DensityRenderer/index.ts +14 -53
  365. package/src/LinePlotRenderer/LinePlotRenderer.ts +19 -0
  366. package/src/LinePlotRenderer/{index.js → configSchema.ts} +3 -4
  367. package/src/LinePlotRenderer/index.ts +16 -0
  368. package/src/LinearWiggleDisplay/components/SetColorDialog.tsx +17 -19
  369. package/src/LinearWiggleDisplay/components/Tooltip.tsx +6 -122
  370. package/src/LinearWiggleDisplay/index.ts +24 -3
  371. package/src/LinearWiggleDisplay/models/model.tsx +98 -174
  372. package/src/MultiDensityRenderer/MultiDensityRenderer.ts +39 -0
  373. package/src/MultiDensityRenderer/configSchema.ts +10 -0
  374. package/src/MultiDensityRenderer/index.ts +16 -0
  375. package/src/MultiLineRenderer/MultiLineRenderer.ts +29 -0
  376. package/src/MultiLineRenderer/configSchema.ts +24 -0
  377. package/src/MultiLineRenderer/index.ts +17 -0
  378. package/src/MultiLinearWiggleDisplay/components/SetColorDialog.tsx +322 -0
  379. package/src/MultiLinearWiggleDisplay/components/SetMinMaxDialog.tsx +113 -0
  380. package/src/MultiLinearWiggleDisplay/components/Tooltip.tsx +76 -0
  381. package/src/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.tsx +261 -0
  382. package/src/MultiLinearWiggleDisplay/components/YScaleBar.tsx +25 -0
  383. package/src/MultiLinearWiggleDisplay/components/declare.d.ts +1 -0
  384. package/src/MultiLinearWiggleDisplay/components/util.test.ts +69 -0
  385. package/src/MultiLinearWiggleDisplay/components/util.ts +33 -0
  386. package/src/MultiLinearWiggleDisplay/index.ts +20 -0
  387. package/src/MultiLinearWiggleDisplay/models/configSchema.ts +94 -0
  388. package/src/MultiLinearWiggleDisplay/models/model.tsx +721 -0
  389. package/src/MultiQuantitativeTrack/index.ts +26 -0
  390. package/src/MultiRowLineRenderer/MultiRowLineRenderer.ts +36 -0
  391. package/src/MultiRowLineRenderer/configSchema.ts +25 -0
  392. package/src/MultiRowLineRenderer/index.ts +16 -0
  393. package/src/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.ts +43 -0
  394. package/src/MultiRowXYPlotRenderer/configSchema.ts +33 -0
  395. package/src/MultiRowXYPlotRenderer/index.ts +16 -0
  396. package/src/MultiWiggleAdapter/MultiWiggleAdapter.ts +124 -0
  397. package/src/MultiWiggleAdapter/configSchema.ts +16 -0
  398. package/src/MultiWiggleAdapter/index.ts +20 -0
  399. package/src/MultiWiggleAdapter/test_data/volvox.bw +0 -0
  400. package/src/MultiWiggleAddTrackWidget/AddTrackWorkflow.tsx +130 -0
  401. package/src/MultiWiggleAddTrackWidget/index.ts +17 -0
  402. package/src/MultiWiggleRendering.tsx +125 -0
  403. package/src/MultiXYPlotRenderer/MultiXYPlotRenderer.ts +32 -0
  404. package/src/MultiXYPlotRenderer/configSchema.ts +31 -0
  405. package/src/MultiXYPlotRenderer/index.ts +17 -0
  406. package/src/QuantitativeTrack/index.ts +26 -0
  407. package/src/Tooltip.tsx +123 -0
  408. package/src/WiggleBaseRenderer.tsx +17 -10
  409. package/src/WiggleRPC/rpcMethods.ts +68 -17
  410. package/src/WiggleRendering.tsx +12 -18
  411. package/src/XYPlotRenderer/XYPlotRenderer.test.js +3 -1
  412. package/src/XYPlotRenderer/XYPlotRenderer.ts +19 -171
  413. package/src/XYPlotRenderer/__snapshots__/XYPlotRenderer.test.js.snap +8 -0
  414. package/src/XYPlotRenderer/configSchema.ts +32 -0
  415. package/src/XYPlotRenderer/index.ts +16 -27
  416. package/src/__snapshots__/WiggleRendering.test.js.snap +0 -2
  417. package/src/configSchema.ts +0 -5
  418. package/src/declare.d.ts +0 -1
  419. package/src/drawxy.ts +387 -0
  420. package/src/index.ts +75 -129
  421. package/src/util.ts +174 -0
  422. package/src/LinePlotRenderer/LinePlotRenderer.js +0 -91
@@ -1 +1 @@
1
- {"version":3,"file":"SetColorDialog.js","sourceRoot":"","sources":["../../../src/LinearWiggleDisplay/components/SetColorDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SetColorDialog.js","sourceRoot":"","sources":["../../../src/LinearWiggleDisplay/components/SetColorDialog.tsx"],"names":[],"mappings":"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"}
@@ -1,16 +1,10 @@
1
1
  import React from 'react';
2
- import { Feature } from '@jbrowse/core/util/simpleFeature';
2
+ import { Feature } from '@jbrowse/core/util';
3
+ import Tooltip, { TooltipContentsComponent } from '../../Tooltip';
4
+ declare const TooltipContents: React.ForwardRefExoticComponent<{
5
+ feature: Feature;
6
+ } & React.RefAttributes<HTMLDivElement>>;
3
7
  declare type Coord = [number, number];
4
- declare const Tooltip: ({ model, height, clientMouseCoord, offsetMouseCoord, clientRect, TooltipContents, }: {
5
- model: {
6
- featureUnderMouse: Feature;
7
- };
8
- height: number;
9
- clientMouseCoord: Coord;
10
- offsetMouseCoord: Coord;
11
- clientRect?: DOMRect | undefined;
12
- TooltipContents: React.FC<any>;
13
- }) => JSX.Element | null;
14
8
  declare const WiggleTooltip: (props: {
15
9
  model: {
16
10
  featureUnderMouse: Feature;
@@ -19,6 +13,7 @@ declare const WiggleTooltip: (props: {
19
13
  offsetMouseCoord: Coord;
20
14
  clientMouseCoord: Coord;
21
15
  clientRect?: DOMRect;
16
+ TooltipContents?: TooltipContentsComponent;
22
17
  }) => JSX.Element;
23
18
  export default WiggleTooltip;
24
19
  export { Tooltip };
@@ -1,45 +1,9 @@
1
- import React, { useMemo, useState } from 'react';
1
+ import React from 'react';
2
2
  import { observer } from 'mobx-react';
3
- import { alpha, Portal } from '@mui/material';
4
- import { makeStyles } from 'tss-react/mui';
5
3
  // locals
6
- import { YSCALEBAR_LABEL_OFFSET } from '../models/model';
7
- import { usePopper } from 'react-popper';
8
- // convert to number, apply shortened precision, and render
9
- function toP(s = 0) {
10
- return +(+s).toPrecision(6);
11
- }
12
- function round(value) {
13
- return Math.round(value * 1e5) / 1e5;
14
- }
4
+ import Tooltip from '../../Tooltip';
5
+ import { toP } from '../../util';
15
6
  const en = (n) => n.toLocaleString('en-US');
16
- const useStyles = makeStyles()(theme => ({
17
- // these styles come from
18
- // https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/Tooltip/Tooltip.js
19
- tooltip: {
20
- position: 'absolute',
21
- pointerEvents: 'none',
22
- backgroundColor: alpha(theme.palette.grey[700], 0.9),
23
- borderRadius: theme.shape.borderRadius,
24
- color: theme.palette.common.white,
25
- fontFamily: theme.typography.fontFamily,
26
- padding: '4px 8px',
27
- fontSize: theme.typography.pxToRem(12),
28
- lineHeight: `${round(14 / 10)}em`,
29
- maxWidth: 300,
30
- wordWrap: 'break-word',
31
- },
32
- hoverVertical: {
33
- background: '#333',
34
- border: 'none',
35
- width: 1,
36
- height: '100%',
37
- top: YSCALEBAR_LABEL_OFFSET,
38
- cursor: 'default',
39
- position: 'absolute',
40
- pointerEvents: 'none',
41
- },
42
- }));
43
7
  const TooltipContents = React.forwardRef(({ feature }, ref) => {
44
8
  const start = feature.get('start');
45
9
  const end = feature.get('end');
@@ -62,43 +26,6 @@ const TooltipContents = React.forwardRef(({ feature }, ref) => {
62
26
  React.createElement("br", null),
63
27
  `${toP(feature.get('score'))}`));
64
28
  });
65
- const Tooltip = observer(({ model, height, clientMouseCoord, offsetMouseCoord, clientRect, TooltipContents, }) => {
66
- const { featureUnderMouse } = model;
67
- const [width, setWidth] = useState(0);
68
- const [anchorEl, setAnchorEl] = useState(null);
69
- const { classes } = useStyles();
70
- // must be memoized a la https://github.com/popperjs/react-popper/issues/391
71
- const virtElement = useMemo(() => ({
72
- getBoundingClientRect: () => {
73
- const x = clientMouseCoord[0] + width / 2 + 20;
74
- const y = (clientRect === null || clientRect === void 0 ? void 0 : clientRect.top) || 0;
75
- return {
76
- top: y,
77
- left: x,
78
- bottom: y,
79
- right: x,
80
- width: 0,
81
- height: 0,
82
- x,
83
- y,
84
- toJSON() { },
85
- };
86
- },
87
- }), [clientRect === null || clientRect === void 0 ? void 0 : clientRect.top, clientMouseCoord, width]);
88
- const { styles, attributes } = usePopper(virtElement, anchorEl);
89
- return featureUnderMouse ? (React.createElement(React.Fragment, null,
90
- React.createElement(Portal, null,
91
- React.createElement("div", { ref: setAnchorEl, className: classes.tooltip,
92
- // zIndex needed to go over widget drawer
93
- style: { ...styles.popper, zIndex: 100000 }, ...attributes.popper },
94
- React.createElement(TooltipContents, { ref: (elt) => {
95
- setWidth((elt === null || elt === void 0 ? void 0 : elt.getBoundingClientRect().width) || 0);
96
- }, feature: featureUnderMouse }))),
97
- React.createElement("div", { className: classes.hoverVertical, style: {
98
- left: offsetMouseCoord[0],
99
- height: height - YSCALEBAR_LABEL_OFFSET * 2,
100
- } }))) : null;
101
- });
102
29
  const WiggleTooltip = observer((props) => {
103
30
  return React.createElement(Tooltip, { TooltipContents: TooltipContents, ...props });
104
31
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../src/LinearWiggleDisplay/components/Tooltip.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../src/LinearWiggleDisplay/components/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,SAAS;AACT,OAAO,OAAqC,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEhC,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;AAEnD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CACtC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE;IACnB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACnC,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;SACvE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAChB,IAAI,CAAC,GAAG,CAAC,CAAA;IAEZ,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAC5C,6BAAK,GAAG,EAAE,GAAG;QACV,GAAG;QACJ,+BAAM;;QACA,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClC,+BAAM;;QACA,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,+BAAM;;QACA,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAC9B,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,GAAG,EAAE,GAAG;QACV,GAAG;QACJ,+BAAM;QACL,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAC3B,CACP,CAAA;AACH,CAAC,CACF,CAAA;AAID,MAAM,aAAa,GAAG,QAAQ,CAC5B,CAAC,KAOA,EAAE,EAAE;IACH,OAAO,oBAAC,OAAO,IAAC,eAAe,EAAE,eAAe,KAAM,KAAK,GAAI,CAAA;AACjE,CAAC,CACF,CAAA;AACD,eAAe,aAAa,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,CAAA"}
@@ -1,3 +1,7 @@
1
- export { default as configSchemaFactory } from './models/configSchema';
2
- export { default as modelFactory, YSCALEBAR_LABEL_OFFSET } from './models/model';
3
- export { default as ReactComponent } from './components/WiggleDisplayComponent';
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ import modelFactory from './models/model';
3
+ import ReactComponent from './components/WiggleDisplayComponent';
4
+ import Tooltip from './components/Tooltip';
5
+ declare const _default: (pluginManager: PluginManager) => void;
6
+ export default _default;
7
+ export { ReactComponent, modelFactory, Tooltip };
@@ -1,4 +1,21 @@
1
- export { default as configSchemaFactory } from './models/configSchema';
2
- export { default as modelFactory, YSCALEBAR_LABEL_OFFSET } from './models/model';
3
- export { default as ReactComponent } from './components/WiggleDisplayComponent';
1
+ import DisplayType from '@jbrowse/core/pluggableElementTypes/DisplayType';
2
+ import configSchemaFactory from './models/configSchema';
3
+ import modelFactory from './models/model';
4
+ import ReactComponent from './components/WiggleDisplayComponent';
5
+ import Tooltip from './components/Tooltip';
6
+ export default (pluginManager) => {
7
+ pluginManager.addDisplayType(() => {
8
+ const configSchema = configSchemaFactory(pluginManager);
9
+ const stateModel = modelFactory(pluginManager, configSchema);
10
+ return new DisplayType({
11
+ name: 'LinearWiggleDisplay',
12
+ configSchema,
13
+ stateModel,
14
+ trackType: 'QuantitativeTrack',
15
+ viewType: 'LinearGenomeView',
16
+ ReactComponent,
17
+ });
18
+ });
19
+ };
20
+ export { ReactComponent, modelFactory, Tooltip };
4
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/LinearWiggleDisplay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAChF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qCAAqC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/LinearWiggleDisplay/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,iDAAiD,CAAA;AAEzE,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,cAAc,MAAM,qCAAqC,CAAA;AAChE,OAAO,OAAO,MAAM,sBAAsB,CAAA;AAE1C,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAA;QACvD,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;QAC5D,OAAO,IAAI,WAAW,CAAC;YACrB,IAAI,EAAE,qBAAqB;YAC3B,YAAY;YACZ,UAAU;YACV,SAAS,EAAE,mBAAmB;YAC9B,QAAQ,EAAE,kBAAkB;YAC5B,cAAc;SACf,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,CAAA"}
@@ -3,7 +3,6 @@ import { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
3
3
  import { Instance } from 'mobx-state-tree';
4
4
  import PluginManager from '@jbrowse/core/PluginManager';
5
5
  import { Feature } from '@jbrowse/core/util/simpleFeature';
6
- export declare const YSCALEBAR_LABEL_OFFSET = 5;
7
6
  declare const stateModelFactory: (pluginManager: PluginManager, configSchema: AnyConfigurationSchemaType) => import("mobx-state-tree").IModelType<{
8
7
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
9
8
  type: import("mobx-state-tree").ISimpleType<string>;
@@ -64,6 +63,7 @@ declare const stateModelFactory: (pluginManager: PluginManager, configSchema: An
64
63
  selectedRendering: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
65
64
  resolution: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
66
65
  fill: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
66
+ minSize: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
67
67
  color: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
68
68
  posColor: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
69
69
  negColor: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
@@ -209,7 +209,7 @@ declare const stateModelFactory: (pluginManager: PluginManager, configSchema: An
209
209
  };
210
210
  statsFetchInProgress: AbortController | undefined;
211
211
  } & {
212
- updateStats({ scoreMin, scoreMax, }: {
212
+ updateStats(stats: {
213
213
  scoreMin: number;
214
214
  scoreMax: number;
215
215
  }): void;
@@ -219,7 +219,7 @@ declare const stateModelFactory: (pluginManager: PluginManager, configSchema: An
219
219
  setLoading(aborter: AbortController): void;
220
220
  selectFeature(feature: Feature): void;
221
221
  setResolution(res: number): void;
222
- setFill(fill: boolean): void;
222
+ setFill(fill: number): void;
223
223
  toggleLogScale(): void;
224
224
  setScaleType(scale?: string): void;
225
225
  setSummaryScoreMode(val: string): void;
@@ -232,6 +232,7 @@ declare const stateModelFactory: (pluginManager: PluginManager, configSchema: An
232
232
  } & {
233
233
  readonly TooltipComponent: React.FC<{}>;
234
234
  readonly adapterTypeName: any;
235
+ readonly rendererTypeNameSimple: any;
235
236
  readonly rendererTypeName: string;
236
237
  readonly filters: undefined;
237
238
  readonly scaleType: any;
@@ -258,18 +259,36 @@ declare const stateModelFactory: (pluginManager: PluginManager, configSchema: An
258
259
  readonly autoscaleType: any;
259
260
  readonly displayCrossHatchesSetting: any;
260
261
  } & {
261
- readonly ticks: any;
262
+ readonly ticks: {
263
+ range: number[];
264
+ values: number[];
265
+ format: (d: import("d3-scale").NumberValue) => string;
266
+ position: import("d3-scale").ScaleLinear<number, number, never> | import("d3-scale").ScaleQuantize<number, never>;
267
+ };
268
+ readonly adapterCapabilities: string[];
262
269
  } & {
263
270
  renderProps(): any;
264
- readonly adapterCapabilities: string[];
265
271
  readonly hasResolution: boolean;
266
272
  readonly hasGlobalStats: boolean;
273
+ readonly fillSetting: 2 | 1 | 0;
267
274
  } & {
268
275
  trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
276
+ label: string;
277
+ subMenu: {
278
+ label: string;
279
+ type: string;
280
+ checked: boolean;
281
+ onClick: () => void;
282
+ }[];
283
+ type?: undefined;
284
+ checked?: undefined;
285
+ onClick?: undefined;
286
+ } | {
269
287
  type: string;
270
288
  label: string;
271
289
  checked: any;
272
290
  onClick: () => void;
291
+ subMenu?: undefined;
273
292
  })[];
274
293
  } & {
275
294
  reload(): Promise<void>;
@@ -1,18 +1,15 @@
1
1
  import React, { lazy } from 'react';
2
2
  import { ConfigurationReference, getConf, readConfObject, } from '@jbrowse/core/configuration';
3
- import { isAbortException, getSession, getContainingView, isSelectionContainer, } from '@jbrowse/core/util';
4
- import { getRpcSessionId } from '@jbrowse/core/util/tracks';
3
+ import { getSession, getContainingView, isSelectionContainer, } from '@jbrowse/core/util';
5
4
  import { BaseLinearDisplay, } from '@jbrowse/plugin-linear-genome-view';
6
- import { autorun, when } from 'mobx';
7
- import { addDisposer, isAlive, types, getEnv } from 'mobx-state-tree';
5
+ import { when } from 'mobx';
6
+ import { isAlive, types, getEnv } from 'mobx-state-tree';
8
7
  import { axisPropsFromTickScale } from 'react-d3-axis-mod';
9
- import { getNiceDomain, getScale } from '../../util';
8
+ import { getNiceDomain, getScale, getStats, statsAutorun, YSCALEBAR_LABEL_OFFSET, } from '../../util';
10
9
  import Tooltip from '../components/Tooltip';
11
10
  import { YScaleBar } from '../components/WiggleDisplayComponent';
12
11
  const SetMinMaxDlg = lazy(() => import('../components/SetMinMaxDialog'));
13
12
  const SetColorDlg = lazy(() => import('../components/SetColorDialog'));
14
- // fudge factor for making all labels on the YScalebar visible
15
- export const YSCALEBAR_LABEL_OFFSET = 5;
16
13
  // using a map because it preserves order
17
14
  const rendererTypes = new Map([
18
15
  ['xyplot', 'XYPlotRenderer'],
@@ -26,6 +23,7 @@ const stateModelFactory = (pluginManager, configSchema) => types
26
23
  selectedRendering: types.optional(types.string, ''),
27
24
  resolution: types.optional(types.number, 1),
28
25
  fill: types.maybe(types.boolean),
26
+ minSize: types.maybe(types.number),
29
27
  color: types.maybe(types.string),
30
28
  posColor: types.maybe(types.string),
31
29
  negColor: types.maybe(types.string),
@@ -46,12 +44,14 @@ const stateModelFactory = (pluginManager, configSchema) => types
46
44
  statsFetchInProgress: undefined,
47
45
  }))
48
46
  .actions(self => ({
49
- updateStats({ scoreMin, scoreMax, }) {
50
- if (self.stats.scoreMin !== scoreMin ||
51
- self.stats.scoreMax !== scoreMax) {
47
+ updateStats(stats) {
48
+ const { scoreMin, scoreMax } = stats;
49
+ const EPSILON = 0.000001;
50
+ if (Math.abs(self.stats.scoreMax - scoreMax) > EPSILON ||
51
+ Math.abs(self.stats.scoreMin - scoreMin) > EPSILON) {
52
52
  self.stats = { scoreMin, scoreMax };
53
+ self.statsReady = true;
53
54
  }
54
- self.statsReady = true;
55
55
  },
56
56
  setColor(color) {
57
57
  self.color = color;
@@ -82,7 +82,18 @@ const stateModelFactory = (pluginManager, configSchema) => types
82
82
  self.resolution = res;
83
83
  },
84
84
  setFill(fill) {
85
- self.fill = fill;
85
+ if (fill === 0) {
86
+ self.fill = true;
87
+ self.minSize = 0;
88
+ }
89
+ else if (fill === 1) {
90
+ self.fill = false;
91
+ self.minSize = 1;
92
+ }
93
+ else if (fill === 2) {
94
+ self.fill = false;
95
+ self.minSize = 2;
96
+ }
86
97
  },
87
98
  toggleLogScale() {
88
99
  if (self.scale !== 'log') {
@@ -124,11 +135,14 @@ const stateModelFactory = (pluginManager, configSchema) => types
124
135
  get adapterTypeName() {
125
136
  return self.adapterConfig.type;
126
137
  },
138
+ get rendererTypeNameSimple() {
139
+ return self.rendererTypeNameState || getConf(self, 'defaultRendering');
140
+ },
127
141
  get rendererTypeName() {
128
- const viewName = self.rendererTypeNameState || getConf(self, 'defaultRendering');
129
- const rendererType = rendererTypes.get(viewName);
142
+ const name = this.rendererTypeNameSimple;
143
+ const rendererType = rendererTypes.get(name);
130
144
  if (!rendererType) {
131
- throw new Error(`unknown alignments view name ${viewName}`);
145
+ throw new Error(`unknown renderer ${name}`);
132
146
  }
133
147
  return rendererType;
134
148
  },
@@ -140,27 +154,30 @@ const stateModelFactory = (pluginManager, configSchema) => types
140
154
  return self.scale || getConf(self, 'scaleType');
141
155
  },
142
156
  get maxScore() {
143
- const { max } = self.constraints;
144
- return max !== null && max !== void 0 ? max : getConf(self, 'maxScore');
157
+ var _a;
158
+ return (_a = self.constraints.max) !== null && _a !== void 0 ? _a : getConf(self, 'maxScore');
145
159
  },
146
160
  get minScore() {
147
- const { min } = self.constraints;
148
- return min !== null && min !== void 0 ? min : getConf(self, 'minScore');
161
+ var _a;
162
+ return (_a = self.constraints.min) !== null && _a !== void 0 ? _a : getConf(self, 'minScore');
149
163
  },
150
164
  }))
151
165
  .views(self => ({
152
166
  get rendererConfig() {
153
167
  const configBlob = getConf(self, ['renderers', self.rendererTypeName]) || {};
154
- const { color, posColor, negColor, summaryScoreMode, scaleType, displayCrossHatches, fill, } = self;
168
+ const { color, displayCrossHatches, fill, minSize, negColor, posColor, summaryScoreMode, scaleType, } = self;
155
169
  return self.rendererType.configSchema.create({
156
170
  ...configBlob,
157
171
  ...(scaleType ? { scaleType } : {}),
158
- ...(fill ? { filled: fill } : {}),
159
- ...(displayCrossHatches ? { displayCrossHatches } : {}),
160
- ...(summaryScoreMode ? { summaryScoreMode } : {}),
161
- ...(color ? { color } : {}),
162
- ...(negColor ? { negColor } : {}),
163
- ...(posColor ? { posColor } : {}),
172
+ ...(fill !== undefined ? { filled: fill } : {}),
173
+ ...(displayCrossHatches !== undefined
174
+ ? { displayCrossHatches }
175
+ : {}),
176
+ ...(summaryScoreMode !== undefined ? { summaryScoreMode } : {}),
177
+ ...(color !== undefined ? { color } : {}),
178
+ ...(negColor !== undefined ? { negColor } : {}),
179
+ ...(posColor !== undefined ? { posColor } : {}),
180
+ ...(minSize !== undefined ? { minSize } : {}),
164
181
  }, getEnv(self));
165
182
  },
166
183
  }))
@@ -222,18 +239,23 @@ const stateModelFactory = (pluginManager, configSchema) => types
222
239
  get ticks() {
223
240
  const { scaleType, domain, height } = self;
224
241
  const minimalTicks = getConf(self, 'minimalTicks');
242
+ const inverted = getConf(self, 'inverted');
225
243
  const range = [height - YSCALEBAR_LABEL_OFFSET, YSCALEBAR_LABEL_OFFSET];
226
244
  const scale = getScale({
227
245
  scaleType,
228
246
  domain,
229
247
  range,
230
- inverted: getConf(self, 'inverted'),
248
+ inverted,
231
249
  });
232
250
  const ticks = axisPropsFromTickScale(scale, 4);
233
251
  return height < 100 || minimalTicks
234
252
  ? { ...ticks, values: domain }
235
253
  : ticks;
236
254
  },
255
+ get adapterCapabilities() {
256
+ return pluginManager.getAdapterType(self.adapterTypeName)
257
+ .adapterCapabilities;
258
+ },
237
259
  }))
238
260
  .views(self => {
239
261
  const { renderProps: superRenderProps } = self;
@@ -255,15 +277,22 @@ const stateModelFactory = (pluginManager, configSchema) => types
255
277
  filters,
256
278
  };
257
279
  },
258
- get adapterCapabilities() {
259
- return pluginManager.getAdapterType(self.adapterTypeName)
260
- .adapterCapabilities;
261
- },
262
280
  get hasResolution() {
263
- return this.adapterCapabilities.includes('hasResolution');
281
+ return self.adapterCapabilities.includes('hasResolution');
264
282
  },
265
283
  get hasGlobalStats() {
266
- return this.adapterCapabilities.includes('hasGlobalStats');
284
+ return self.adapterCapabilities.includes('hasGlobalStats');
285
+ },
286
+ get fillSetting() {
287
+ if (self.filled) {
288
+ return 0;
289
+ }
290
+ else if (!self.filled && self.minSize === 1) {
291
+ return 1;
292
+ }
293
+ else {
294
+ return 2;
295
+ }
267
296
  },
268
297
  };
269
298
  })
@@ -293,6 +322,8 @@ const stateModelFactory = (pluginManager, configSchema) => types
293
322
  label: 'Summary score mode',
294
323
  subMenu: ['min', 'max', 'avg', 'whiskers'].map(elt => ({
295
324
  label: elt,
325
+ type: 'radio',
326
+ checked: self.summaryScoreModeSetting === elt,
296
327
  onClick: () => self.setSummaryScoreMode(elt),
297
328
  })),
298
329
  },
@@ -301,10 +332,13 @@ const stateModelFactory = (pluginManager, configSchema) => types
301
332
  ...(self.canHaveFill
302
333
  ? [
303
334
  {
304
- label: self.filled
305
- ? 'Turn off histogram fill'
306
- : 'Turn on histogram fill',
307
- onClick: () => self.setFill(!self.filled),
335
+ label: 'Fill mode',
336
+ subMenu: ['filled', 'no fill', 'no fill w/ emphasis'].map((elt, idx) => ({
337
+ label: elt,
338
+ type: 'radio',
339
+ checked: self.fillSetting === idx,
340
+ onClick: () => self.setFill(idx),
341
+ })),
308
342
  },
309
343
  ]
310
344
  : []),
@@ -312,18 +346,24 @@ const stateModelFactory = (pluginManager, configSchema) => types
312
346
  label: self.scaleType === 'log' ? 'Set linear scale' : 'Set log scale',
313
347
  onClick: () => self.toggleLogScale(),
314
348
  },
315
- {
316
- type: 'checkbox',
317
- label: 'Draw cross hatches',
318
- checked: self.displayCrossHatchesSetting,
319
- onClick: () => self.toggleCrossHatches(),
320
- },
349
+ ...(self.needsScalebar
350
+ ? [
351
+ {
352
+ type: 'checkbox',
353
+ label: 'Draw cross hatches',
354
+ checked: self.displayCrossHatchesSetting,
355
+ onClick: () => self.toggleCrossHatches(),
356
+ },
357
+ ]
358
+ : []),
321
359
  ...(hasRenderings
322
360
  ? [
323
361
  {
324
362
  label: 'Renderer type',
325
363
  subMenu: ['xyplot', 'density', 'line'].map(key => ({
326
364
  label: key,
365
+ type: 'radio',
366
+ checked: self.rendererTypeNameSimple === key,
327
367
  onClick: () => self.setRendererType(key),
328
368
  })),
329
369
  },
@@ -342,6 +382,8 @@ const stateModelFactory = (pluginManager, configSchema) => types
342
382
  ['localsd', 'Local ± 3σ'],
343
383
  ].map(([val, label]) => ({
344
384
  label,
385
+ type: 'radio',
386
+ checked: self.autoscaleType === val,
345
387
  onClick: () => self.setAutoscale(val),
346
388
  })),
347
389
  },
@@ -369,66 +411,6 @@ const stateModelFactory = (pluginManager, configSchema) => types
369
411
  })
370
412
  .actions(self => {
371
413
  const { reload: superReload, renderSvg: superRenderSvg } = self;
372
- async function getStats(opts) {
373
- const { rpcManager } = getSession(self);
374
- const nd = getConf(self, 'numStdDev') || 3;
375
- const { adapterConfig, autoscaleType } = self;
376
- const sessionId = getRpcSessionId(self);
377
- const params = {
378
- sessionId,
379
- adapterConfig,
380
- statusCallback: (message) => {
381
- if (isAlive(self)) {
382
- self.setMessage(message);
383
- }
384
- },
385
- ...opts,
386
- };
387
- if (autoscaleType === 'global' || autoscaleType === 'globalsd') {
388
- const results = (await rpcManager.call(sessionId, 'WiggleGetGlobalStats', params));
389
- const { scoreMin, scoreMean, scoreStdDev } = results;
390
- // globalsd uses heuristic to avoid unnecessary scoreMin<0
391
- // if the scoreMin is never less than 0
392
- // helps with most coverage bigwigs just being >0
393
- return autoscaleType === 'globalsd'
394
- ? {
395
- ...results,
396
- scoreMin: scoreMin >= 0 ? 0 : scoreMean - nd * scoreStdDev,
397
- scoreMax: scoreMean + nd * scoreStdDev,
398
- }
399
- : results;
400
- }
401
- if (autoscaleType === 'local' || autoscaleType === 'localsd') {
402
- const { dynamicBlocks, bpPerPx } = getContainingView(self);
403
- const results = (await rpcManager.call(sessionId, 'WiggleGetMultiRegionStats', {
404
- ...params,
405
- regions: dynamicBlocks.contentBlocks.map(region => {
406
- const { start, end } = region;
407
- return {
408
- ...JSON.parse(JSON.stringify(region)),
409
- start: Math.floor(start),
410
- end: Math.ceil(end),
411
- };
412
- }),
413
- bpPerPx,
414
- }));
415
- const { scoreMin, scoreMean, scoreStdDev } = results;
416
- // localsd uses heuristic to avoid unnecessary scoreMin<0 if the
417
- // scoreMin is never less than 0 helps with most coverage bigwigs
418
- // just being >0
419
- return autoscaleType === 'localsd'
420
- ? {
421
- ...results,
422
- scoreMin: scoreMin >= 0 ? 0 : scoreMean - nd * scoreStdDev,
423
- scoreMax: scoreMean + nd * scoreStdDev,
424
- }
425
- : results;
426
- }
427
- if (autoscaleType === 'zscale') {
428
- return rpcManager.call(sessionId, 'WiggleGetGlobalStats', params);
429
- }
430
- throw new Error(`invalid autoscaleType '${autoscaleType}'`);
431
- }
432
414
  return {
433
415
  // re-runs stats and refresh whole display on reload
434
416
  async reload() {
@@ -436,7 +418,7 @@ const stateModelFactory = (pluginManager, configSchema) => types
436
418
  const aborter = new AbortController();
437
419
  self.setLoading(aborter);
438
420
  try {
439
- const stats = await getStats({
421
+ const stats = await getStats(self, {
440
422
  signal: aborter.signal,
441
423
  ...self.renderProps(),
442
424
  });
@@ -450,35 +432,7 @@ const stateModelFactory = (pluginManager, configSchema) => types
450
432
  }
451
433
  },
452
434
  afterAttach() {
453
- addDisposer(self, autorun(async () => {
454
- try {
455
- const view = getContainingView(self);
456
- if (!view.initialized) {
457
- return;
458
- }
459
- if (!self.estimatedStatsReady) {
460
- return;
461
- }
462
- if (self.regionTooLarge) {
463
- return;
464
- }
465
- const aborter = new AbortController();
466
- self.setLoading(aborter);
467
- const wiggleStats = await getStats({
468
- signal: aborter.signal,
469
- ...self.renderProps(),
470
- });
471
- if (isAlive(self)) {
472
- self.updateStats(wiggleStats);
473
- }
474
- }
475
- catch (e) {
476
- if (!isAbortException(e) && isAlive(self)) {
477
- console.error(e);
478
- self.setError(e);
479
- }
480
- }
481
- }, { delay: 1000 }));
435
+ statsAutorun(self);
482
436
  },
483
437
  async renderSvg(opts) {
484
438
  await when(() => self.statsReady && !!self.regionCannotBeRenderedText);