@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,26 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
+ import ConfigSchema from '../configSchema';
3
+ import { types } from 'mobx-state-tree';
4
+ const configSchema = ConfigurationSchema('XYPlotRenderer', {
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/XYPlotRenderer/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,MAAM,YAAY,GAAG,mBAAmB,CACtC,gBAAgB,EAChB;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"}
@@ -1,3 +1,7 @@
1
- export { default as ReactComponent } from '../WiggleRendering';
2
- export { default } from './XYPlotRenderer';
3
- export declare const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
1
+ import ReactComponent from '../WiggleRendering';
2
+ import PluginManager from '@jbrowse/core/PluginManager';
3
+ import XYPlotRenderer from './XYPlotRenderer';
4
+ import configSchema from './configSchema';
5
+ export { XYPlotRenderer, configSchema, ReactComponent };
6
+ declare const _default: (pluginManager: PluginManager) => void;
7
+ export default _default;
@@ -1,23 +1,13 @@
1
- import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
- import ConfigSchema from '../configSchema';
3
- import { types } from 'mobx-state-tree';
4
- export { default as ReactComponent } from '../WiggleRendering';
5
- export { default } from './XYPlotRenderer';
6
- export const configSchema = ConfigurationSchema('XYPlotRenderer', {
7
- filled: {
8
- type: 'boolean',
9
- defaultValue: true,
10
- },
11
- displayCrossHatches: {
12
- type: 'boolean',
13
- description: 'choose to draw cross hatches (sideways lines)',
14
- defaultValue: false,
15
- },
16
- summaryScoreMode: {
17
- type: 'stringEnum',
18
- model: types.enumeration('Score type', ['max', 'min', 'avg', 'whiskers']),
19
- description: 'choose whether to use max/min/average or whiskers which combines all three into the same rendering',
20
- defaultValue: 'whiskers',
21
- },
22
- }, { baseConfiguration: ConfigSchema, explicitlyTyped: true });
1
+ import ReactComponent from '../WiggleRendering';
2
+ import XYPlotRenderer from './XYPlotRenderer';
3
+ import configSchema from './configSchema';
4
+ export { XYPlotRenderer, configSchema, ReactComponent };
5
+ export default (pluginManager) => {
6
+ pluginManager.addRendererType(() => new XYPlotRenderer({
7
+ name: 'XYPlotRenderer',
8
+ ReactComponent,
9
+ configSchema,
10
+ pluginManager,
11
+ }));
12
+ };
23
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/XYPlotRenderer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE1C,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAC7C,gBAAgB,EAChB;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;CACF,EACD,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,CAC3D,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/XYPlotRenderer/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,oBAAoB,CAAA;AAE/C,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,CAAA;AAEvD,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,eAAe,CAC3B,GAAG,EAAE,CACH,IAAI,cAAc,CAAC;QACjB,IAAI,EAAE,gBAAgB;QACtB,cAAc;QACd,YAAY;QACZ,aAAa;KACd,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
@@ -16,11 +16,6 @@ export default ConfigurationSchema('WiggleRenderer', {
16
16
  description: 'the color to use when the score is negative',
17
17
  defaultValue: 'red',
18
18
  },
19
- highlightColor: {
20
- type: 'color',
21
- description: 'the color of highlights over the wiggle track',
22
- defaultValue: 'rgba(255,255,0,0.5)',
23
- },
24
19
  clipColor: {
25
20
  type: 'color',
26
21
  description: 'the color of the clipping marker',
@@ -1 +1 @@
1
- {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../src/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,eAAe,mBAAmB,CAChC,gBAAgB,EAChB;IACE,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,qDAAqD;QAClE,YAAY,EAAE,MAAM;KACrB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6CAA6C;QAC1D,YAAY,EAAE,MAAM;KACrB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6CAA6C;QAC1D,YAAY,EAAE,KAAK;KACpB;IACD,cAAc,EAAE;QACd,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,+CAA+C;QAC5D,YAAY,EAAE,qBAAqB;KACpC;IACD,SAAS,EAAE;QACT,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,kCAAkC;QAC/C,YAAY,EAAE,KAAK;KACpB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE;YACrC,SAAS;YACT,MAAM;YACN,SAAS;YACT,MAAM;SACP,CAAC;QACF,WAAW,EAAE,uBAAuB;QACpC,YAAY,EAAE,SAAS;KACxB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,gCAAgC;KAC9C;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA"}
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../src/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,eAAe,mBAAmB,CAChC,gBAAgB,EAChB;IACE,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,qDAAqD;QAClE,YAAY,EAAE,MAAM;KACrB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6CAA6C;QAC1D,YAAY,EAAE,MAAM;KACrB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6CAA6C;QAC1D,YAAY,EAAE,KAAK;KACpB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,kCAAkC;QAC/C,YAAY,EAAE,KAAK;KACpB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE;YACrC,SAAS;YACT,MAAM;YACN,SAAS;YACT,MAAM;SACP,CAAC;QACF,WAAW,EAAE,uBAAuB;QACpC,YAAY,EAAE,SAAS;KACxB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,gCAAgC;KAC9C;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA"}
@@ -0,0 +1,50 @@
1
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
+ import { Feature, Region } from '@jbrowse/core/util';
3
+ import { ScaleOpts } from './util';
4
+ export declare function drawXY(ctx: CanvasRenderingContext2D, props: {
5
+ features: Map<string, Feature> | Feature[];
6
+ bpPerPx: number;
7
+ regions: Region[];
8
+ scaleOpts: ScaleOpts;
9
+ height: number;
10
+ ticks: {
11
+ values: number[];
12
+ };
13
+ config: AnyConfigurationModel;
14
+ displayCrossHatches: boolean;
15
+ offset?: number;
16
+ colorCallback: (f: Feature, score: number) => string;
17
+ Color: typeof import('color');
18
+ }): {
19
+ reducedFeatures: Feature[];
20
+ };
21
+ export declare function drawLine(ctx: CanvasRenderingContext2D, props: {
22
+ features: Map<string, Feature> | Feature[];
23
+ regions: Region[];
24
+ bpPerPx: number;
25
+ scaleOpts: ScaleOpts;
26
+ height: number;
27
+ ticks: {
28
+ values: number[];
29
+ };
30
+ displayCrossHatches: boolean;
31
+ colorCallback: (f: Feature, score: number) => string;
32
+ config: AnyConfigurationModel;
33
+ offset?: number;
34
+ }): {
35
+ reducedFeatures: Feature[];
36
+ };
37
+ export declare function drawDensity(ctx: CanvasRenderingContext2D, props: {
38
+ features: Map<string, Feature> | Feature[];
39
+ regions: Region[];
40
+ bpPerPx: number;
41
+ scaleOpts: ScaleOpts;
42
+ height: number;
43
+ ticks: {
44
+ values: number[];
45
+ };
46
+ displayCrossHatches: boolean;
47
+ config: AnyConfigurationModel;
48
+ }): {
49
+ reducedFeatures: Feature[];
50
+ };
package/esm/drawxy.js ADDED
@@ -0,0 +1,286 @@
1
+ import { readConfObject, } from '@jbrowse/core/configuration';
2
+ import { clamp, featureSpanPx } from '@jbrowse/core/util';
3
+ import { getOrigin, getScale } from './util';
4
+ function fillRectCtx(x, y, width, height, ctx, color) {
5
+ if (width < 0) {
6
+ x += width;
7
+ width = -width;
8
+ }
9
+ if (height < 0) {
10
+ y += height;
11
+ height = -height;
12
+ }
13
+ if (color) {
14
+ ctx.fillStyle = color;
15
+ }
16
+ ctx.fillRect(x, y, width, height);
17
+ }
18
+ const fudgeFactor = 0.4;
19
+ const clipHeight = 2;
20
+ export function drawXY(ctx, props) {
21
+ const { features, bpPerPx, regions, scaleOpts, height: unadjustedHeight, config, ticks, displayCrossHatches, offset = 0, colorCallback, Color, } = props;
22
+ const [region] = regions;
23
+ const width = (region.end - region.start) / bpPerPx;
24
+ // the adjusted height takes into account YSCALEBAR_LABEL_OFFSET from the
25
+ // wiggle display, and makes the height of the actual drawn area add
26
+ // "padding" to the top and bottom of the display
27
+ const height = unadjustedHeight - offset * 2;
28
+ const filled = readConfObject(config, 'filled');
29
+ const clipColor = readConfObject(config, 'clipColor');
30
+ const summaryScoreMode = readConfObject(config, 'summaryScoreMode');
31
+ const pivotValue = readConfObject(config, 'bicolorPivotValue');
32
+ const minSize = readConfObject(config, 'minSize');
33
+ const scale = getScale({ ...scaleOpts, range: [0, height] });
34
+ const originY = getOrigin(scaleOpts.scaleType);
35
+ const [niceMin, niceMax] = scale.domain();
36
+ const toY = (n) => clamp(height - (scale(n) || 0), 0, height) + offset;
37
+ const toOrigin = (n) => toY(originY) - toY(n);
38
+ const getHeight = (n) => (filled ? toOrigin(n) : Math.max(minSize, 1));
39
+ let hasClipping = false;
40
+ let prevLeftPx = 0;
41
+ const reducedFeatures = [];
42
+ const crossingOrigin = niceMin < pivotValue && niceMax > pivotValue;
43
+ // we handle whiskers separately to render max row, min row, and avg in three
44
+ // passes. this reduces subpixel rendering issues. note: for stylistic
45
+ // reasons, clipping indicator is only drawn for score, not min/max score
46
+ if (summaryScoreMode === 'whiskers') {
47
+ let lastCol;
48
+ let lastMix;
49
+ for (const feature of features.values()) {
50
+ const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
51
+ if (feature.get('summary')) {
52
+ const w = rightPx - leftPx + fudgeFactor;
53
+ const max = feature.get('maxScore');
54
+ const c = colorCallback(feature, max);
55
+ const effectiveC = crossingOrigin
56
+ ? c
57
+ : c === lastCol
58
+ ? lastMix
59
+ : (lastMix = Color(c).lighten(0.4).toString());
60
+ fillRectCtx(leftPx, toY(max), w, getHeight(max), ctx, effectiveC);
61
+ lastCol = c;
62
+ }
63
+ }
64
+ lastMix = undefined;
65
+ lastCol = undefined;
66
+ for (const feature of features.values()) {
67
+ const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
68
+ const score = feature.get('score');
69
+ const max = feature.get('maxScore');
70
+ const min = feature.get('minScore');
71
+ const summary = feature.get('summary');
72
+ const c = colorCallback(feature, score);
73
+ const effectiveC = crossingOrigin && summary
74
+ ? c === lastCol
75
+ ? lastMix
76
+ : (lastMix = Color(colorCallback(feature, max))
77
+ .mix(Color(colorCallback(feature, min)))
78
+ .toString())
79
+ : c;
80
+ const w = Math.max(rightPx - leftPx + fudgeFactor, minSize);
81
+ // create reduced features, avoiding multiple features per px
82
+ if (Math.floor(leftPx) !== Math.floor(prevLeftPx)) {
83
+ reducedFeatures.push(feature);
84
+ prevLeftPx = leftPx;
85
+ }
86
+ hasClipping = hasClipping || score < niceMin || score > niceMax;
87
+ fillRectCtx(leftPx, toY(score), w, getHeight(score), ctx, effectiveC);
88
+ lastCol = c;
89
+ }
90
+ lastMix = undefined;
91
+ lastCol = undefined;
92
+ for (const feature of features.values()) {
93
+ const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
94
+ if (feature.get('summary')) {
95
+ const min = feature.get('minScore');
96
+ const c = colorCallback(feature, min);
97
+ const w = Math.max(rightPx - leftPx + fudgeFactor, minSize);
98
+ const effectiveC = crossingOrigin
99
+ ? c
100
+ : c === lastCol
101
+ ? lastMix
102
+ : (lastMix = Color(c).darken(0.4).toString());
103
+ fillRectCtx(leftPx, toY(min), w, getHeight(min), ctx, effectiveC);
104
+ lastCol = c;
105
+ }
106
+ }
107
+ }
108
+ else {
109
+ for (const feature of features.values()) {
110
+ const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
111
+ // create reduced features, avoiding multiple features per px
112
+ if (Math.floor(leftPx) !== Math.floor(prevLeftPx)) {
113
+ reducedFeatures.push(feature);
114
+ prevLeftPx = leftPx;
115
+ }
116
+ const score = feature.get('score');
117
+ const c = colorCallback(feature, score);
118
+ hasClipping = hasClipping || score < niceMin || score > niceMax;
119
+ const w = Math.max(rightPx - leftPx + fudgeFactor, minSize);
120
+ if (summaryScoreMode === 'max') {
121
+ const s = feature.get('summary') ? feature.get('maxScore') : score;
122
+ fillRectCtx(leftPx, toY(s), w, getHeight(s), ctx, c);
123
+ }
124
+ else if (summaryScoreMode === 'min') {
125
+ const s = feature.get('summary') ? feature.get('minScore') : score;
126
+ fillRectCtx(leftPx, toY(s), w, getHeight(s), ctx, c);
127
+ }
128
+ else {
129
+ fillRectCtx(leftPx, toY(score), w, getHeight(score), ctx, c);
130
+ }
131
+ }
132
+ }
133
+ // second pass: draw clipping
134
+ // avoid persisting the red fillstyle with save/restore
135
+ ctx.save();
136
+ if (hasClipping) {
137
+ ctx.fillStyle = clipColor;
138
+ for (const feature of features.values()) {
139
+ const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
140
+ const w = rightPx - leftPx + fudgeFactor;
141
+ const score = feature.get('score');
142
+ if (score > niceMax) {
143
+ fillRectCtx(leftPx, offset, w, clipHeight, ctx);
144
+ }
145
+ else if (score < niceMin && scaleOpts.scaleType !== 'log') {
146
+ fillRectCtx(leftPx, unadjustedHeight, w, clipHeight, ctx);
147
+ }
148
+ }
149
+ }
150
+ ctx.restore();
151
+ if (displayCrossHatches) {
152
+ ctx.lineWidth = 1;
153
+ ctx.strokeStyle = 'rgba(200,200,200,0.5)';
154
+ ticks.values.forEach(tick => {
155
+ ctx.beginPath();
156
+ ctx.moveTo(0, Math.round(toY(tick)));
157
+ ctx.lineTo(width, Math.round(toY(tick)));
158
+ ctx.stroke();
159
+ });
160
+ }
161
+ return { reducedFeatures };
162
+ }
163
+ export function drawLine(ctx, props) {
164
+ const { features, regions, bpPerPx, scaleOpts, height: unadjustedHeight, ticks: { values }, displayCrossHatches, colorCallback, config, offset = 0, } = props;
165
+ const [region] = regions;
166
+ const width = (region.end - region.start) / bpPerPx;
167
+ // the adjusted height takes into account YSCALEBAR_LABEL_OFFSET from the
168
+ // wiggle display, and makes the height of the actual drawn area add
169
+ // "padding" to the top and bottom of the display
170
+ const height = unadjustedHeight - offset * 2;
171
+ const clipColor = readConfObject(config, 'clipColor');
172
+ const scale = getScale({ ...scaleOpts, range: [0, height] });
173
+ const [niceMin, niceMax] = scale.domain();
174
+ const toY = (n) => clamp(height - (scale(n) || 0), 0, height) + offset;
175
+ let lastVal;
176
+ let prevLeftPx = 0;
177
+ const reducedFeatures = [];
178
+ for (const feature of features.values()) {
179
+ const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
180
+ // create reduced features, avoiding multiple features per px
181
+ if (Math.floor(leftPx) !== Math.floor(prevLeftPx)) {
182
+ reducedFeatures.push(feature);
183
+ prevLeftPx = leftPx;
184
+ }
185
+ const score = feature.get('score');
186
+ const lowClipping = score < niceMin;
187
+ const highClipping = score > niceMax;
188
+ const w = rightPx - leftPx + fudgeFactor;
189
+ const c = colorCallback(feature, score);
190
+ ctx.beginPath();
191
+ ctx.strokeStyle = c;
192
+ const startPos = typeof lastVal !== 'undefined' ? lastVal : score;
193
+ if (!region.reversed) {
194
+ ctx.moveTo(leftPx, toY(startPos));
195
+ ctx.lineTo(leftPx, toY(score));
196
+ ctx.lineTo(rightPx, toY(score));
197
+ }
198
+ else {
199
+ ctx.moveTo(rightPx, toY(startPos));
200
+ ctx.lineTo(rightPx, toY(score));
201
+ ctx.lineTo(leftPx, toY(score));
202
+ }
203
+ ctx.stroke();
204
+ lastVal = score;
205
+ if (highClipping) {
206
+ ctx.fillStyle = clipColor;
207
+ ctx.fillRect(leftPx, offset, w, clipHeight);
208
+ }
209
+ else if (lowClipping && scaleOpts.scaleType !== 'log') {
210
+ ctx.fillStyle = clipColor;
211
+ ctx.fillRect(leftPx, height - clipHeight, w, height);
212
+ }
213
+ }
214
+ if (displayCrossHatches) {
215
+ ctx.lineWidth = 1;
216
+ ctx.strokeStyle = 'rgba(200,200,200,0.5)';
217
+ values.forEach(tick => {
218
+ ctx.beginPath();
219
+ ctx.moveTo(0, Math.round(toY(tick)));
220
+ ctx.lineTo(width, Math.round(toY(tick)));
221
+ ctx.stroke();
222
+ });
223
+ }
224
+ return { reducedFeatures };
225
+ }
226
+ export function drawDensity(ctx, props) {
227
+ const { features, regions, bpPerPx, scaleOpts, height, config } = props;
228
+ const [region] = regions;
229
+ const pivot = readConfObject(config, 'bicolorPivot');
230
+ const pivotValue = readConfObject(config, 'bicolorPivotValue');
231
+ const negColor = readConfObject(config, 'negColor');
232
+ const posColor = readConfObject(config, 'posColor');
233
+ const color = readConfObject(config, 'color');
234
+ const clipColor = readConfObject(config, 'clipColor');
235
+ const crossing = pivot !== 'none' && scaleOpts.scaleType !== 'log';
236
+ const scale = getScale({
237
+ ...scaleOpts,
238
+ pivotValue: crossing ? pivotValue : undefined,
239
+ range: crossing ? [negColor, 'white', posColor] : ['white', posColor],
240
+ });
241
+ const scale2 = getScale({ ...scaleOpts, range: [0, height] });
242
+ let cb;
243
+ if (color === '#f0f') {
244
+ cb = (_feature, score) => scale(score);
245
+ }
246
+ else {
247
+ cb = (feature, score) => readConfObject(config, 'color', { feature, score });
248
+ }
249
+ const [niceMin, niceMax] = scale2.domain();
250
+ let prevLeftPx = 0;
251
+ let hasClipping = false;
252
+ const reducedFeatures = [];
253
+ for (const feature of features.values()) {
254
+ const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
255
+ // create reduced features, avoiding multiple features per px
256
+ if (Math.floor(leftPx) !== Math.floor(prevLeftPx)) {
257
+ reducedFeatures.push(feature);
258
+ prevLeftPx = leftPx;
259
+ }
260
+ const score = feature.get('score');
261
+ hasClipping = hasClipping || score > niceMax || score < niceMin;
262
+ const w = rightPx - leftPx + fudgeFactor;
263
+ ctx.fillStyle = cb(feature, score);
264
+ ctx.fillRect(leftPx, 0, w, height);
265
+ }
266
+ // second pass: draw clipping
267
+ // avoid persisting the red fillstyle with save/restore
268
+ ctx.save();
269
+ if (hasClipping) {
270
+ ctx.fillStyle = clipColor;
271
+ for (const feature of features.values()) {
272
+ const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
273
+ const w = rightPx - leftPx + fudgeFactor;
274
+ const score = feature.get('score');
275
+ if (score > niceMax) {
276
+ fillRectCtx(leftPx, 0, w, clipHeight, ctx);
277
+ }
278
+ else if (score < niceMin && scaleOpts.scaleType !== 'log') {
279
+ fillRectCtx(leftPx, 0, w, clipHeight, ctx);
280
+ }
281
+ }
282
+ }
283
+ ctx.restore();
284
+ return { reducedFeatures };
285
+ }
286
+ //# sourceMappingURL=drawxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawxy.js","sourceRoot":"","sources":["../src/drawxy.ts"],"names":[],"mappings":"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"}