@jbrowse/plugin-wiggle 3.6.5 → 4.0.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 (407) hide show
  1. package/esm/BigWigAdapter/BigWigAdapter.d.ts +14 -1
  2. package/esm/BigWigAdapter/BigWigAdapter.js +118 -22
  3. package/esm/BigWigAdapter/configSchema.d.ts +2 -2
  4. package/esm/BigWigAdapter/configSchema.js +1 -1
  5. package/esm/BigWigAdapter/index.js +2 -2
  6. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js +1 -1
  7. package/esm/CreateMultiWiggleExtension/index.js +2 -2
  8. package/esm/DensityRenderer/DensityRenderer.d.ts +5 -6
  9. package/esm/DensityRenderer/DensityRenderer.js +6 -5
  10. package/esm/DensityRenderer/configSchema.d.ts +3 -3
  11. package/esm/DensityRenderer/configSchema.js +1 -1
  12. package/esm/DensityRenderer/index.js +11 -9
  13. package/esm/DensityRenderer/makeImageData.d.ts +3 -0
  14. package/esm/DensityRenderer/makeImageData.js +13 -0
  15. package/esm/DensityRenderer/renderDensity.d.ts +3 -0
  16. package/esm/DensityRenderer/renderDensity.js +18 -0
  17. package/esm/LinePlotRenderer/LinePlotRenderer.d.ts +5 -7
  18. package/esm/LinePlotRenderer/LinePlotRenderer.js +6 -15
  19. package/esm/LinePlotRenderer/configSchema.d.ts +4 -4
  20. package/esm/LinePlotRenderer/configSchema.js +1 -1
  21. package/esm/LinePlotRenderer/index.js +4 -4
  22. package/esm/LinePlotRenderer/makeImageData.d.ts +3 -0
  23. package/esm/LinePlotRenderer/makeImageData.js +13 -0
  24. package/esm/LinePlotRenderer/renderLinePlot.d.ts +3 -0
  25. package/esm/LinePlotRenderer/renderLinePlot.js +23 -0
  26. package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +2 -2
  27. package/esm/LinearWiggleDisplay/components/Tooltip.js +10 -6
  28. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
  29. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.js +2 -2
  30. package/esm/LinearWiggleDisplay/configSchema.d.ts +9 -9
  31. package/esm/LinearWiggleDisplay/configSchema.js +2 -2
  32. package/esm/LinearWiggleDisplay/index.d.ts +3 -3
  33. package/esm/LinearWiggleDisplay/index.js +6 -6
  34. package/esm/LinearWiggleDisplay/model.d.ts +1130 -92
  35. package/esm/LinearWiggleDisplay/model.js +58 -18
  36. package/esm/LinearWiggleDisplay/renderSvg.d.ts +1 -1
  37. package/esm/LinearWiggleDisplay/renderSvg.js +3 -2
  38. package/esm/MultiDensityRenderer/MultiDensityRenderer.d.ts +5 -7
  39. package/esm/MultiDensityRenderer/MultiDensityRenderer.js +6 -24
  40. package/esm/MultiDensityRenderer/configSchema.d.ts +3 -3
  41. package/esm/MultiDensityRenderer/configSchema.js +1 -1
  42. package/esm/MultiDensityRenderer/index.js +4 -4
  43. package/esm/MultiDensityRenderer/makeImageData.d.ts +3 -0
  44. package/esm/MultiDensityRenderer/makeImageData.js +7 -0
  45. package/esm/MultiDensityRenderer/renderMultiDensity.d.ts +3 -0
  46. package/esm/MultiDensityRenderer/renderMultiDensity.js +37 -0
  47. package/esm/MultiLineRenderer/MultiLineRenderer.d.ts +5 -7
  48. package/esm/MultiLineRenderer/MultiLineRenderer.js +6 -17
  49. package/esm/MultiLineRenderer/configSchema.d.ts +5 -5
  50. package/esm/MultiLineRenderer/configSchema.js +2 -2
  51. package/esm/MultiLineRenderer/index.js +4 -4
  52. package/esm/MultiLineRenderer/makeImageData.d.ts +3 -0
  53. package/esm/MultiLineRenderer/makeImageData.js +7 -0
  54. package/esm/MultiLineRenderer/renderMultiLine.d.ts +3 -0
  55. package/esm/MultiLineRenderer/renderMultiLine.js +34 -0
  56. package/esm/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +2 -2
  57. package/esm/MultiLinearWiggleDisplay/components/ColorLegend.js +11 -5
  58. package/esm/MultiLinearWiggleDisplay/components/FullHeightScaleBar.d.ts +1 -1
  59. package/esm/MultiLinearWiggleDisplay/components/FullHeightScaleBar.js +4 -4
  60. package/esm/MultiLinearWiggleDisplay/components/IndividualScaleBars.d.ts +1 -1
  61. package/esm/MultiLinearWiggleDisplay/components/IndividualScaleBars.js +5 -5
  62. package/esm/MultiLinearWiggleDisplay/components/LegendItem.d.ts +3 -3
  63. package/esm/MultiLinearWiggleDisplay/components/LegendItem.js +2 -4
  64. package/esm/MultiLinearWiggleDisplay/components/LegendItemText.d.ts +12 -0
  65. package/esm/MultiLinearWiggleDisplay/components/LegendItemText.js +11 -0
  66. package/esm/MultiLinearWiggleDisplay/components/RectBg.d.ts +1 -1
  67. package/esm/MultiLinearWiggleDisplay/components/RectBg.js +4 -3
  68. package/esm/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +2 -2
  69. package/esm/MultiLinearWiggleDisplay/components/ScoreLegend.js +3 -3
  70. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +1 -1
  71. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js +4 -34
  72. package/esm/MultiLinearWiggleDisplay/components/SourcesGrid.d.ts +1 -1
  73. package/esm/MultiLinearWiggleDisplay/components/SourcesGrid.js +3 -3
  74. package/esm/MultiLinearWiggleDisplay/components/Tooltip.d.ts +2 -4
  75. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js +15 -12
  76. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialog.d.ts +1 -1
  77. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialog.js +3 -3
  78. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogAuto.d.ts +1 -1
  79. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogAuto.js +13 -6
  80. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogManual.d.ts +1 -1
  81. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogManual.js +24 -21
  82. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/types.d.ts +2 -1
  83. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
  84. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +2 -2
  85. package/esm/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +2 -2
  86. package/esm/MultiLinearWiggleDisplay/components/YScaleBars.js +5 -16
  87. package/esm/MultiLinearWiggleDisplay/components/YScaleBarsWrapper.d.ts +7 -0
  88. package/esm/MultiLinearWiggleDisplay/components/YScaleBarsWrapper.js +15 -0
  89. package/esm/MultiLinearWiggleDisplay/components/types.d.ts +10 -0
  90. package/esm/MultiLinearWiggleDisplay/components/types.js +1 -0
  91. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialog.d.ts +31 -0
  92. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialog.js +45 -0
  93. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialogBulkEditPanel.d.ts +10 -0
  94. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialogBulkEditPanel.js +81 -0
  95. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialogHelpfulTips.d.ts +1 -0
  96. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialogHelpfulTips.js +4 -0
  97. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialogRowPalettizer.d.ts +10 -0
  98. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialogRowPalettizer.js +39 -0
  99. package/esm/MultiLinearWiggleDisplay/components/util.d.ts +5 -9
  100. package/esm/MultiLinearWiggleDisplay/configSchema.d.ts +9 -9
  101. package/esm/MultiLinearWiggleDisplay/configSchema.js +2 -2
  102. package/esm/MultiLinearWiggleDisplay/index.js +3 -3
  103. package/esm/MultiLinearWiggleDisplay/model.d.ts +3628 -93
  104. package/esm/MultiLinearWiggleDisplay/model.js +80 -50
  105. package/esm/MultiLinearWiggleDisplay/renderSvg.d.ts +1 -1
  106. package/esm/MultiLinearWiggleDisplay/renderSvg.js +3 -2
  107. package/esm/MultiLinearWiggleDisplay/types.d.ts +1 -0
  108. package/esm/MultiLinearWiggleDisplay/util.d.ts +0 -1
  109. package/esm/MultiLinearWiggleDisplay/util.js +1 -7
  110. package/esm/MultiQuantitativeTrack/configSchema.d.ts +16 -11
  111. package/esm/MultiQuantitativeTrack/index.js +13 -2
  112. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +5 -7
  113. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js +6 -29
  114. package/esm/MultiRowLineRenderer/configSchema.d.ts +5 -5
  115. package/esm/MultiRowLineRenderer/configSchema.js +2 -2
  116. package/esm/MultiRowLineRenderer/index.js +4 -4
  117. package/esm/MultiRowLineRenderer/makeImageData.d.ts +3 -0
  118. package/esm/MultiRowLineRenderer/makeImageData.js +7 -0
  119. package/esm/MultiRowLineRenderer/renderMultiRowLine.d.ts +3 -0
  120. package/esm/MultiRowLineRenderer/renderMultiRowLine.js +44 -0
  121. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +5 -7
  122. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +6 -29
  123. package/esm/MultiRowXYPlotRenderer/configSchema.d.ts +5 -5
  124. package/esm/MultiRowXYPlotRenderer/configSchema.js +2 -2
  125. package/esm/MultiRowXYPlotRenderer/index.js +4 -4
  126. package/esm/MultiRowXYPlotRenderer/makeImageData.d.ts +3 -0
  127. package/esm/MultiRowXYPlotRenderer/makeImageData.js +7 -0
  128. package/esm/MultiRowXYPlotRenderer/renderMultiRowXYPlot.d.ts +3 -0
  129. package/esm/MultiRowXYPlotRenderer/renderMultiRowXYPlot.js +42 -0
  130. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +7 -1
  131. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +81 -26
  132. package/esm/MultiWiggleAdapter/configSchema.d.ts +2 -2
  133. package/esm/MultiWiggleAdapter/index.js +2 -2
  134. package/esm/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.d.ts +1 -1
  135. package/esm/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.js +4 -5
  136. package/esm/MultiWiggleAddTrackWorkflow/index.js +2 -2
  137. package/esm/MultiWiggleRendering.d.ts +7 -7
  138. package/esm/MultiWiggleRendering.js +9 -7
  139. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +5 -7
  140. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js +6 -20
  141. package/esm/MultiXYPlotRenderer/configSchema.d.ts +5 -5
  142. package/esm/MultiXYPlotRenderer/configSchema.js +2 -2
  143. package/esm/MultiXYPlotRenderer/index.js +4 -4
  144. package/esm/MultiXYPlotRenderer/makeImageData.d.ts +3 -0
  145. package/esm/MultiXYPlotRenderer/makeImageData.js +7 -0
  146. package/esm/MultiXYPlotRenderer/renderMultiXYPlot.d.ts +3 -0
  147. package/esm/MultiXYPlotRenderer/renderMultiXYPlot.js +35 -0
  148. package/esm/QuantitativeTrack/configSchema.d.ts +16 -11
  149. package/esm/QuantitativeTrack/index.js +13 -2
  150. package/esm/SVGErrorBox.d.ts +5 -0
  151. package/esm/SVGErrorBox.js +4 -0
  152. package/esm/Tooltip.d.ts +1 -3
  153. package/esm/Tooltip.js +7 -7
  154. package/esm/WiggleRPC/MultiWiggleClusterScoreMatrix.d.ts +2 -10
  155. package/esm/WiggleRPC/MultiWiggleClusterScoreMatrix.js +3 -15
  156. package/esm/WiggleRPC/MultiWiggleGetScoreMatrix.d.ts +1 -1
  157. package/esm/WiggleRPC/MultiWiggleGetScoreMatrix.js +2 -5
  158. package/esm/WiggleRPC/MultiWiggleGetSources.js +1 -4
  159. package/esm/WiggleRPC/WiggleGetGlobalQuantitativeStats.js +1 -4
  160. package/esm/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.d.ts +10 -0
  161. package/esm/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js +26 -5
  162. package/esm/WiggleRPC/executeClusterScoreMatrix.d.ts +6 -0
  163. package/esm/WiggleRPC/executeClusterScoreMatrix.js +15 -0
  164. package/esm/WiggleRPC/getScoreMatrix.d.ts +1 -1
  165. package/esm/WiggleRPC/getScoreMatrix.js +9 -6
  166. package/esm/WiggleRPC/rpcMethods.d.ts +5 -5
  167. package/esm/WiggleRPC/rpcMethods.js +5 -5
  168. package/esm/WiggleRPC/types.d.ts +1 -1
  169. package/esm/WiggleRendering.d.ts +2 -3
  170. package/esm/WiggleRendering.js +16 -3
  171. package/esm/XYPlotRenderer/XYPlotRenderer.d.ts +5 -6
  172. package/esm/XYPlotRenderer/XYPlotRenderer.js +6 -20
  173. package/esm/XYPlotRenderer/configSchema.d.ts +5 -5
  174. package/esm/XYPlotRenderer/configSchema.js +2 -2
  175. package/esm/XYPlotRenderer/index.d.ts +3 -3
  176. package/esm/XYPlotRenderer/index.js +14 -12
  177. package/esm/XYPlotRenderer/makeImageData.d.ts +3 -0
  178. package/esm/XYPlotRenderer/makeImageData.js +13 -0
  179. package/esm/XYPlotRenderer/renderXYPlot.d.ts +3 -0
  180. package/esm/XYPlotRenderer/renderXYPlot.js +23 -0
  181. package/esm/configSchema.d.ts +3 -3
  182. package/esm/configSchema.js +1 -1
  183. package/esm/drawDensity.d.ts +4 -2
  184. package/esm/drawDensity.js +25 -15
  185. package/esm/drawLine.d.ts +5 -3
  186. package/esm/drawLine.js +118 -41
  187. package/esm/drawXY.d.ts +4 -2
  188. package/esm/drawXY.js +75 -36
  189. package/esm/getMultiWiggleSourcesAutorun.d.ts +4 -2
  190. package/esm/getMultiWiggleSourcesAutorun.js +7 -2
  191. package/esm/getQuantitativeStats.d.ts +4 -2
  192. package/esm/getQuantitativeStats.js +18 -7
  193. package/esm/getQuantitativeStatsAutorun.d.ts +3 -2
  194. package/esm/getQuantitativeStatsAutorun.js +3 -3
  195. package/esm/index.d.ts +15 -19
  196. package/esm/index.js +31 -37
  197. package/esm/multiRendererHelper.d.ts +7 -0
  198. package/esm/multiRendererHelper.js +12 -0
  199. package/esm/saveTrackFormats/bedGraph.d.ts +4 -0
  200. package/esm/saveTrackFormats/bedGraph.js +11 -0
  201. package/esm/shared/SharedWiggleConfigSchema.d.ts +5 -5
  202. package/esm/shared/SharedWiggleConfigSchema.js +1 -1
  203. package/esm/shared/SharedWiggleMixin.d.ts +1083 -120
  204. package/esm/shared/SharedWiggleMixin.js +48 -26
  205. package/esm/shared/YScaleBar.d.ts +1 -1
  206. package/esm/shared/YScaleBar.js +16 -4
  207. package/esm/shared/axisPropsFromTickScale.d.ts +7 -0
  208. package/esm/shared/axisPropsFromTickScale.js +12 -0
  209. package/esm/svgExportUtil.d.ts +9 -0
  210. package/esm/svgExportUtil.js +6 -0
  211. package/esm/types.d.ts +24 -0
  212. package/esm/types.js +1 -0
  213. package/esm/util.d.ts +35 -1
  214. package/esm/util.js +61 -2
  215. package/package.json +35 -38
  216. package/dist/BigWigAdapter/BigWigAdapter.d.ts +0 -25
  217. package/dist/BigWigAdapter/BigWigAdapter.js +0 -81
  218. package/dist/BigWigAdapter/configSchema.d.ts +0 -20
  219. package/dist/BigWigAdapter/configSchema.js +0 -37
  220. package/dist/BigWigAdapter/index.d.ts +0 -2
  221. package/dist/BigWigAdapter/index.js +0 -54
  222. package/dist/CreateMultiWiggleExtension/ConfirmDialog.d.ts +0 -8
  223. package/dist/CreateMultiWiggleExtension/ConfirmDialog.js +0 -26
  224. package/dist/CreateMultiWiggleExtension/index.d.ts +0 -2
  225. package/dist/CreateMultiWiggleExtension/index.js +0 -95
  226. package/dist/DensityRenderer/DensityRenderer.d.ts +0 -7
  227. package/dist/DensityRenderer/DensityRenderer.js +0 -46
  228. package/dist/DensityRenderer/configSchema.d.ts +0 -37
  229. package/dist/DensityRenderer/configSchema.js +0 -13
  230. package/dist/DensityRenderer/index.d.ts +0 -2
  231. package/dist/DensityRenderer/index.js +0 -17
  232. package/dist/GuessAdapter/index.d.ts +0 -2
  233. package/dist/GuessAdapter/index.js +0 -25
  234. package/dist/LinePlotRenderer/LinePlotRenderer.d.ts +0 -8
  235. package/dist/LinePlotRenderer/LinePlotRenderer.js +0 -56
  236. package/dist/LinePlotRenderer/configSchema.d.ts +0 -43
  237. package/dist/LinePlotRenderer/configSchema.js +0 -19
  238. package/dist/LinePlotRenderer/index.d.ts +0 -2
  239. package/dist/LinePlotRenderer/index.js +0 -17
  240. package/dist/LinearWiggleDisplay/components/SetColorDialog.d.ts +0 -12
  241. package/dist/LinearWiggleDisplay/components/SetColorDialog.js +0 -31
  242. package/dist/LinearWiggleDisplay/components/Tooltip.d.ts +0 -15
  243. package/dist/LinearWiggleDisplay/components/Tooltip.js +0 -32
  244. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +0 -5
  245. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js +0 -28
  246. package/dist/LinearWiggleDisplay/configSchema.d.ts +0 -78
  247. package/dist/LinearWiggleDisplay/configSchema.js +0 -29
  248. package/dist/LinearWiggleDisplay/index.d.ts +0 -5
  249. package/dist/LinearWiggleDisplay/index.js +0 -65
  250. package/dist/LinearWiggleDisplay/model.d.ts +0 -419
  251. package/dist/LinearWiggleDisplay/model.js +0 -262
  252. package/dist/LinearWiggleDisplay/renderSvg.d.ts +0 -3
  253. package/dist/LinearWiggleDisplay/renderSvg.js +0 -16
  254. package/dist/MultiDensityRenderer/MultiDensityRenderer.d.ts +0 -8
  255. package/dist/MultiDensityRenderer/MultiDensityRenderer.js +0 -65
  256. package/dist/MultiDensityRenderer/configSchema.d.ts +0 -37
  257. package/dist/MultiDensityRenderer/configSchema.js +0 -13
  258. package/dist/MultiDensityRenderer/index.d.ts +0 -2
  259. package/dist/MultiDensityRenderer/index.js +0 -17
  260. package/dist/MultiLineRenderer/MultiLineRenderer.d.ts +0 -8
  261. package/dist/MultiLineRenderer/MultiLineRenderer.js +0 -58
  262. package/dist/MultiLineRenderer/configSchema.d.ts +0 -49
  263. package/dist/MultiLineRenderer/configSchema.js +0 -26
  264. package/dist/MultiLineRenderer/index.d.ts +0 -2
  265. package/dist/MultiLineRenderer/index.js +0 -17
  266. package/dist/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +0 -7
  267. package/dist/MultiLinearWiggleDisplay/components/ColorLegend.js +0 -18
  268. package/dist/MultiLinearWiggleDisplay/components/FullHeightScaleBar.d.ts +0 -7
  269. package/dist/MultiLinearWiggleDisplay/components/FullHeightScaleBar.js +0 -17
  270. package/dist/MultiLinearWiggleDisplay/components/IndividualScaleBars.d.ts +0 -7
  271. package/dist/MultiLinearWiggleDisplay/components/IndividualScaleBars.js +0 -15
  272. package/dist/MultiLinearWiggleDisplay/components/LegendItem.d.ts +0 -11
  273. package/dist/MultiLinearWiggleDisplay/components/LegendItem.js +0 -19
  274. package/dist/MultiLinearWiggleDisplay/components/RectBg.d.ts +0 -8
  275. package/dist/MultiLinearWiggleDisplay/components/RectBg.js +0 -9
  276. package/dist/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +0 -5
  277. package/dist/MultiLinearWiggleDisplay/components/ScoreLegend.js +0 -19
  278. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +0 -9
  279. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js +0 -42
  280. package/dist/MultiLinearWiggleDisplay/components/SourcesGrid.d.ts +0 -7
  281. package/dist/MultiLinearWiggleDisplay/components/SourcesGrid.js +0 -130
  282. package/dist/MultiLinearWiggleDisplay/components/Tooltip.d.ts +0 -18
  283. package/dist/MultiLinearWiggleDisplay/components/Tooltip.js +0 -35
  284. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialog.d.ts +0 -6
  285. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialog.js +0 -29
  286. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogAuto.d.ts +0 -7
  287. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogAuto.js +0 -79
  288. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogManual.d.ts +0 -7
  289. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogManual.js +0 -145
  290. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/types.d.ts +0 -7
  291. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/types.js +0 -2
  292. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +0 -5
  293. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +0 -14
  294. package/dist/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +0 -7
  295. package/dist/MultiLinearWiggleDisplay/components/YScaleBars.js +0 -28
  296. package/dist/MultiLinearWiggleDisplay/components/util.d.ts +0 -13
  297. package/dist/MultiLinearWiggleDisplay/components/util.js +0 -45
  298. package/dist/MultiLinearWiggleDisplay/configSchema.d.ts +0 -84
  299. package/dist/MultiLinearWiggleDisplay/configSchema.js +0 -44
  300. package/dist/MultiLinearWiggleDisplay/index.d.ts +0 -2
  301. package/dist/MultiLinearWiggleDisplay/index.js +0 -57
  302. package/dist/MultiLinearWiggleDisplay/model.d.ts +0 -436
  303. package/dist/MultiLinearWiggleDisplay/model.js +0 -413
  304. package/dist/MultiLinearWiggleDisplay/renderSvg.d.ts +0 -3
  305. package/dist/MultiLinearWiggleDisplay/renderSvg.js +0 -15
  306. package/dist/MultiLinearWiggleDisplay/types.d.ts +0 -14
  307. package/dist/MultiLinearWiggleDisplay/types.js +0 -2
  308. package/dist/MultiLinearWiggleDisplay/util.d.ts +0 -1
  309. package/dist/MultiLinearWiggleDisplay/util.js +0 -10
  310. package/dist/MultiQuantitativeTrack/configSchema.d.ts +0 -80
  311. package/dist/MultiQuantitativeTrack/configSchema.js +0 -11
  312. package/dist/MultiQuantitativeTrack/index.d.ts +0 -2
  313. package/dist/MultiQuantitativeTrack/index.js +0 -20
  314. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +0 -8
  315. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +0 -70
  316. package/dist/MultiRowLineRenderer/configSchema.d.ts +0 -49
  317. package/dist/MultiRowLineRenderer/configSchema.js +0 -26
  318. package/dist/MultiRowLineRenderer/index.d.ts +0 -2
  319. package/dist/MultiRowLineRenderer/index.js +0 -17
  320. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +0 -8
  321. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +0 -70
  322. package/dist/MultiRowXYPlotRenderer/configSchema.d.ts +0 -57
  323. package/dist/MultiRowXYPlotRenderer/configSchema.js +0 -34
  324. package/dist/MultiRowXYPlotRenderer/index.d.ts +0 -2
  325. package/dist/MultiRowXYPlotRenderer/index.js +0 -17
  326. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +0 -30
  327. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +0 -85
  328. package/dist/MultiWiggleAdapter/configSchema.d.ts +0 -13
  329. package/dist/MultiWiggleAdapter/configSchema.js +0 -17
  330. package/dist/MultiWiggleAdapter/index.d.ts +0 -2
  331. package/dist/MultiWiggleAdapter/index.js +0 -57
  332. package/dist/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.d.ts +0 -5
  333. package/dist/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.js +0 -89
  334. package/dist/MultiWiggleAddTrackWorkflow/index.d.ts +0 -2
  335. package/dist/MultiWiggleAddTrackWorkflow/index.js +0 -46
  336. package/dist/MultiWiggleRendering.d.ts +0 -19
  337. package/dist/MultiWiggleRendering.js +0 -81
  338. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +0 -8
  339. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +0 -61
  340. package/dist/MultiXYPlotRenderer/configSchema.d.ts +0 -57
  341. package/dist/MultiXYPlotRenderer/configSchema.js +0 -34
  342. package/dist/MultiXYPlotRenderer/index.d.ts +0 -2
  343. package/dist/MultiXYPlotRenderer/index.js +0 -17
  344. package/dist/QuantitativeTrack/configSchema.d.ts +0 -80
  345. package/dist/QuantitativeTrack/configSchema.js +0 -11
  346. package/dist/QuantitativeTrack/index.d.ts +0 -2
  347. package/dist/QuantitativeTrack/index.js +0 -20
  348. package/dist/Tooltip.d.ts +0 -18
  349. package/dist/Tooltip.js +0 -34
  350. package/dist/WiggleBaseRenderer.d.ts +0 -57
  351. package/dist/WiggleBaseRenderer.js +0 -42
  352. package/dist/WiggleRPC/MultiWiggleClusterScoreMatrix.d.ts +0 -14
  353. package/dist/WiggleRPC/MultiWiggleClusterScoreMatrix.js +0 -31
  354. package/dist/WiggleRPC/MultiWiggleGetScoreMatrix.d.ts +0 -6
  355. package/dist/WiggleRPC/MultiWiggleGetScoreMatrix.js +0 -22
  356. package/dist/WiggleRPC/MultiWiggleGetSources.d.ts +0 -14
  357. package/dist/WiggleRPC/MultiWiggleGetSources.js +0 -22
  358. package/dist/WiggleRPC/WiggleGetGlobalQuantitativeStats.d.ts +0 -12
  359. package/dist/WiggleRPC/WiggleGetGlobalQuantitativeStats.js +0 -22
  360. package/dist/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.d.ts +0 -13
  361. package/dist/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js +0 -22
  362. package/dist/WiggleRPC/getScoreMatrix.d.ts +0 -6
  363. package/dist/WiggleRPC/getScoreMatrix.js +0 -35
  364. package/dist/WiggleRPC/rpcMethods.d.ts +0 -5
  365. package/dist/WiggleRPC/rpcMethods.js +0 -21
  366. package/dist/WiggleRPC/type.d.ts +0 -0
  367. package/dist/WiggleRPC/type.js +0 -1
  368. package/dist/WiggleRPC/types.d.ts +0 -13
  369. package/dist/WiggleRPC/types.js +0 -2
  370. package/dist/WiggleRendering.d.ts +0 -14
  371. package/dist/WiggleRendering.js +0 -35
  372. package/dist/XYPlotRenderer/XYPlotRenderer.d.ts +0 -7
  373. package/dist/XYPlotRenderer/XYPlotRenderer.js +0 -61
  374. package/dist/XYPlotRenderer/configSchema.d.ts +0 -57
  375. package/dist/XYPlotRenderer/configSchema.js +0 -34
  376. package/dist/XYPlotRenderer/index.d.ts +0 -5
  377. package/dist/XYPlotRenderer/index.js +0 -24
  378. package/dist/configSchema.d.ts +0 -37
  379. package/dist/configSchema.js +0 -47
  380. package/dist/drawDensity.d.ts +0 -18
  381. package/dist/drawDensity.js +0 -81
  382. package/dist/drawLine.d.ts +0 -20
  383. package/dist/drawLine.js +0 -77
  384. package/dist/drawXY.d.ts +0 -21
  385. package/dist/drawXY.js +0 -191
  386. package/dist/getMultiWiggleSourcesAutorun.d.ts +0 -17
  387. package/dist/getMultiWiggleSourcesAutorun.js +0 -38
  388. package/dist/getQuantitativeStats.d.ts +0 -13
  389. package/dist/getQuantitativeStats.js +0 -70
  390. package/dist/getQuantitativeStatsAutorun.d.ts +0 -13
  391. package/dist/getQuantitativeStatsAutorun.js +0 -35
  392. package/dist/index.d.ts +0 -91
  393. package/dist/index.js +0 -112
  394. package/dist/shared/SetMinMaxDialog.d.ts +0 -10
  395. package/dist/shared/SetMinMaxDialog.js +0 -26
  396. package/dist/shared/SharedWiggleConfigSchema.d.ts +0 -66
  397. package/dist/shared/SharedWiggleConfigSchema.js +0 -56
  398. package/dist/shared/SharedWiggleMixin.d.ts +0 -405
  399. package/dist/shared/SharedWiggleMixin.js +0 -343
  400. package/dist/shared/YScaleBar.d.ts +0 -9
  401. package/dist/shared/YScaleBar.js +0 -12
  402. package/dist/util.d.ts +0 -24
  403. package/dist/util.js +0 -105
  404. package/esm/WiggleBaseRenderer.d.ts +0 -57
  405. package/esm/WiggleBaseRenderer.js +0 -36
  406. package/esm/WiggleRPC/type.d.ts +0 -0
  407. package/esm/WiggleRPC/type.js +0 -1
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ const LegendItemText = function ({ source, idx, rowHeight, model, exportSVG, textFillProps, }) {
3
+ const { graphType, rowHeightTooSmallForScalebar, renderColorBoxes } = model;
4
+ const svgFontSize = Math.min(rowHeight, 12);
5
+ const canDisplayLabel = rowHeight >= 6;
6
+ const colorBoxWidth = renderColorBoxes ? 15 : 0;
7
+ const svgOffset = exportSVG ? 10 : 0;
8
+ const extraOffset = svgOffset || (graphType && !rowHeightTooSmallForScalebar ? 50 : 0);
9
+ return canDisplayLabel ? (_jsx("text", { y: idx * rowHeight + svgFontSize, x: extraOffset + colorBoxWidth + 2, fontSize: svgFontSize, ...textFillProps, children: source.name })) : null;
10
+ };
11
+ export default LegendItemText;
@@ -1,4 +1,4 @@
1
- declare const RectBg: (props: {
1
+ declare const RectBg: ({ x, y, width, height, color, }: {
2
2
  x: number;
3
3
  y: number;
4
4
  width: number;
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { getFillProps } from '@jbrowse/core/util';
3
- const RectBg = (props) => {
4
- const { color = 'rgb(255,255,255,0.8)' } = props;
5
- return _jsx("rect", { ...props, ...getFillProps(color) });
3
+ import { alpha, useTheme } from '@mui/material';
4
+ const RectBg = ({ x, y, width, height, color, }) => {
5
+ const theme = useTheme();
6
+ return (_jsx("rect", { pointerEvents: "auto", x: x, y: y, width: width, height: height, ...getFillProps(color || alpha(theme.palette.background.paper, 0.3)) }));
6
7
  };
7
8
  export default RectBg;
@@ -1,5 +1,5 @@
1
- import type { WiggleDisplayModel } from '../model';
2
- declare const ScoreLegend: ({ model }: {
1
+ import type { WiggleDisplayModel } from '../model.ts';
2
+ declare const ScoreLegend: ({ model, }: {
3
3
  model: WiggleDisplayModel;
4
4
  }) => import("react/jsx-runtime").JSX.Element;
5
5
  export default ScoreLegend;
@@ -1,11 +1,11 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { getContainingView, measureText } from '@jbrowse/core/util';
3
3
  import { observer } from 'mobx-react';
4
- import RectBg from './RectBg';
5
- const ScoreLegend = observer(({ model }) => {
4
+ import RectBg from "./RectBg.js";
5
+ const ScoreLegend = observer(function ScoreLegend({ model, }) {
6
6
  const { ticks, scaleType } = model;
7
7
  const { width } = getContainingView(model);
8
- const legend = `[${ticks === null || ticks === void 0 ? void 0 : ticks.values[0]}-${ticks === null || ticks === void 0 ? void 0 : ticks.values[1]}]${scaleType === 'log' ? ' (log scale)' : ''}`;
8
+ const legend = `[${ticks?.values[0]}-${ticks?.values[1]}]${scaleType === 'log' ? ' (log scale)' : ''}`;
9
9
  const len = measureText(legend, 14);
10
10
  const padding = 25;
11
11
  const xpos = width - len - padding;
@@ -1,4 +1,4 @@
1
- import type { Source } from '../../util';
1
+ import type { Source } from '../../util.ts';
2
2
  export default function SetColorDialog({ model, handleClose, }: {
3
3
  model: {
4
4
  sources?: Source[];
@@ -1,36 +1,6 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useState } from 'react';
3
- import DraggableDialog from '@jbrowse/core/ui/DraggableDialog';
4
- import { useLocalStorage } from '@jbrowse/core/util';
5
- import { Button, DialogActions, DialogContent } from '@mui/material';
6
- import { makeStyles } from 'tss-react/mui';
7
- import SourcesGrid from './SourcesGrid';
8
- const useStyles = makeStyles()({
9
- content: {
10
- minWidth: 800,
11
- },
12
- float: {
13
- float: 'right',
14
- },
15
- });
16
- function HelpfulTips() {
17
- return (_jsxs(_Fragment, { children: ["Helpful tips", _jsxs("ul", { children: [_jsx("li", { children: "You can select rows in the table with the checkboxes" }), _jsx("li", { children: "Multi-select is enabled with shift-click and control-click" }), _jsx("li", { children: "The \"Move selected items up/down\" can re-arrange subtracks" }), _jsx("li", { children: "Sorting the data grid itself can also re-arrange subtracks" }), _jsx("li", { children: "Changes are applied when you hit Submit" }), _jsx("li", { children: "You can click and drag the dialog box to move it on the screen" }), _jsx("li", { children: "Columns in the table can be hidden using a vertical '...' menu on the right side of each column" })] })] }));
18
- }
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import SourcesGrid from "./SourcesGrid.js";
3
+ import SharedSetColorDialog from "./ui/SetColorDialog.js";
19
4
  export default function SetColorDialog({ model, handleClose, }) {
20
- const { classes } = useStyles();
21
- const { sources } = model;
22
- const [currLayout, setCurrLayout] = useState(structuredClone(sources || []));
23
- const [showTips, setShowTips] = useLocalStorage('multiwiggle-showTips', false);
24
- return (_jsxs(DraggableDialog, { open: true, onClose: handleClose, maxWidth: "xl", title: "Multi-wiggle color/arrangement editor", children: [_jsxs(DialogContent, { className: classes.content, children: [_jsx(Button, { variant: "contained", className: classes.float, onClick: () => {
25
- setShowTips(!showTips);
26
- }, children: showTips ? 'Hide tips' : 'Show tips' }), _jsx("br", {}), showTips ? _jsx(HelpfulTips, {}) : null, _jsx(SourcesGrid, { rows: currLayout, onChange: setCurrLayout, showTips: showTips })] }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", type: "submit", color: "inherit", onClick: () => {
27
- model.clearLayout();
28
- setCurrLayout(model.sources || []);
29
- }, children: "Clear custom settings" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
30
- handleClose();
31
- setCurrLayout([...(model.sources || [])]);
32
- }, children: "Cancel" }), _jsx(Button, { variant: "contained", color: "primary", type: "submit", onClick: () => {
33
- model.setLayout(currLayout);
34
- handleClose();
35
- }, children: "Submit" })] })] }));
5
+ return (_jsx(SharedSetColorDialog, { model: model, handleClose: handleClose, title: "Multi-wiggle color/arrangement editor", enableBulkEdit: true, enableRowPalettizer: true, showTipsStorageKey: "multiwiggle-showTips", SourcesGridComponent: SourcesGrid }));
36
6
  }
@@ -1,4 +1,4 @@
1
- import type { Source } from '../../util';
1
+ import type { Source } from '../../util.ts';
2
2
  declare function SourcesGrid({ rows, onChange, showTips, }: {
3
3
  rows: Source[];
4
4
  onChange: (arg: Source[]) => void;
@@ -3,14 +3,14 @@ import { useState } from 'react';
3
3
  import { SanitizedHTML } from '@jbrowse/core/ui';
4
4
  import ColorPicker, { ColorPopover } from '@jbrowse/core/ui/ColorPicker';
5
5
  import { getStr, measureGridWidth } from '@jbrowse/core/util';
6
+ import { makeStyles } from '@jbrowse/core/util/tss-react';
6
7
  import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';
7
8
  import KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp';
8
9
  import KeyboardDoubleArrowDownIcon from '@mui/icons-material/KeyboardDoubleArrowDown';
9
10
  import KeyboardDoubleArrowUpIcon from '@mui/icons-material/KeyboardDoubleArrowUp';
10
11
  import { Button } from '@mui/material';
11
12
  import { DataGrid } from '@mui/x-data-grid';
12
- import { makeStyles } from 'tss-react/mui';
13
- import { moveDown, moveUp } from './util';
13
+ import { moveDown, moveUp } from "./util.js";
14
14
  const useStyles = makeStyles()({
15
15
  cell: {
16
16
  whiteSpace: 'nowrap',
@@ -22,7 +22,7 @@ function SourcesGrid({ rows, onChange, showTips, }) {
22
22
  const { classes } = useStyles();
23
23
  const [anchorEl, setAnchorEl] = useState(null);
24
24
  const [selected, setSelected] = useState([]);
25
- const { name: _name, color: _color, baseUri: _baseUri, ...rest } = rows[0];
25
+ const { name: _name, color: _color, source: _source, baseUri: _baseUri, ...rest } = rows.length > 0 ? rows[0] : {};
26
26
  const [widgetColor, setWidgetColor] = useState('blue');
27
27
  const [currSort, setCurrSort] = useState({
28
28
  idx: 0,
@@ -1,5 +1,5 @@
1
- import type { TooltipContentsComponent } from '../../Tooltip';
2
- import type { Source } from '../../util';
1
+ import type { TooltipContentsComponent } from '../../Tooltip.tsx';
2
+ import type { Source } from '../../util.ts';
3
3
  import type { Feature } from '@jbrowse/core/util';
4
4
  type Coord = [number, number];
5
5
  declare const WiggleTooltip: (props: {
@@ -11,8 +11,6 @@ declare const WiggleTooltip: (props: {
11
11
  height: number;
12
12
  offsetMouseCoord: Coord;
13
13
  clientMouseCoord: Coord;
14
- clientRect?: DOMRect;
15
14
  TooltipContents?: TooltipContentsComponent;
16
15
  }) => import("react/jsx-runtime").JSX.Element;
17
16
  export default WiggleTooltip;
18
- export { default as Tooltip } from '../../Tooltip';
@@ -1,28 +1,31 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef } from 'react';
3
+ import { toLocale } from '@jbrowse/core/util';
3
4
  import { observer } from 'mobx-react';
4
- import Tooltip from '../../Tooltip';
5
- import { toP } from '../../util';
6
- const en = (n) => n.toLocaleString('en-US');
5
+ import Tooltip from "../../Tooltip.js";
6
+ import { toP } from "../../util.js";
7
7
  const TooltipContents = forwardRef(function TooltipContents2({ model, feature }, ref) {
8
8
  const start = feature.get('start');
9
9
  const end = feature.get('end');
10
10
  const refName = feature.get('refName');
11
- const coord = start === end ? en(start) : `${en(start)}..${en(end)}`;
11
+ const coord = start === end ? toLocale(start) : `${toLocale(start)}..${toLocale(end)}`;
12
12
  const sources = feature.get('sources');
13
13
  const source = feature.get('source');
14
14
  const summary = feature.get('summary');
15
15
  const obj = Object.fromEntries(model.sources.map(ent => [ent.name, ent]));
16
- return (_jsxs("div", { ref: ref, children: [[refName, coord].filter(f => !!f).join(':'), _jsx("br", {}), sources ? (_jsxs("table", { children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: "color" }), _jsx("th", { children: "source" }), _jsx("th", { children: "score" })] }) }), _jsx("tbody", { children: Object.entries(sources).map(([source, data]) => (_jsxs("tr", { children: [_jsx("td", { children: _jsx("div", { style: {
17
- width: 16,
18
- height: 16,
19
- background: obj[source].color,
20
- } }) }), _jsx("td", { children: source }), _jsx("td", { children: toP(data.score) })] }, source))) })] })) : (_jsxs("span", { children: [source, ' ', summary
16
+ const obj2 = obj[source];
17
+ return (_jsxs("div", { ref: ref, children: [[refName, coord].filter(f => !!f).join(':'), _jsx("br", {}), sources ? (_jsxs("table", { children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: "color" }), _jsx("th", { children: "source" }), _jsx("th", { children: "score" })] }) }), _jsx("tbody", { children: Object.entries(sources).map(([source, data]) => {
18
+ const sourceInfo = obj[source];
19
+ return (_jsxs("tr", { children: [_jsx("td", { children: sourceInfo && (_jsx("div", { style: {
20
+ width: 16,
21
+ height: 16,
22
+ background: sourceInfo.color,
23
+ } })) }), _jsx("td", { children: sourceInfo?.name || source }), _jsx("td", { children: toP(data.score) })] }, source));
24
+ }) })] })) : (_jsxs("span", { children: [obj2?.name || source, ' ', summary && feature.get('minScore') != null
21
25
  ? `min:${toP(feature.get('minScore'))} avg:${toP(feature.get('score'))} max:${toP(feature.get('maxScore'))}`
22
26
  : toP(feature.get('score'))] }))] }));
23
27
  });
24
- const WiggleTooltip = observer((props) => {
25
- return _jsx(Tooltip, { useClientY: true, TooltipContents: TooltipContents, ...props });
28
+ const WiggleTooltip = observer(function WiggleTooltip(props) {
29
+ return _jsx(Tooltip, { TooltipContents: TooltipContents, ...props });
26
30
  });
27
31
  export default WiggleTooltip;
28
- export { default as Tooltip } from '../../Tooltip';
@@ -1,4 +1,4 @@
1
- import type { ReducedModel } from './types';
1
+ import type { ReducedModel } from './types.ts';
2
2
  declare const WiggleClusterDialog: ({ model, handleClose, }: {
3
3
  model: ReducedModel;
4
4
  handleClose: () => void;
@@ -3,8 +3,8 @@ import { useState } from 'react';
3
3
  import { Dialog } from '@jbrowse/core/ui';
4
4
  import { FormControlLabel, Radio, RadioGroup } from '@mui/material';
5
5
  import { observer } from 'mobx-react';
6
- import WiggleClusterDialogAuto from './WiggleClusterDialogAuto';
7
- import WiggleClusterDialogManual from './WiggleClusterDialogManual';
6
+ import WiggleClusterDialogAuto from "./WiggleClusterDialogAuto.js";
7
+ import WiggleClusterDialogManual from "./WiggleClusterDialogManual.js";
8
8
  function Header({ activeMode, setActiveMode, }) {
9
9
  return (_jsx("div", { children: _jsx(RadioGroup, { children: Object.entries({
10
10
  auto: (_jsx("div", { children: "Run in-app clustering (slower, particularly for large numbers of samples, uses JS implementation of hclust)" })),
@@ -13,7 +13,7 @@ function Header({ activeMode, setActiveMode, }) {
13
13
  setActiveMode(key);
14
14
  } }), label: val }, key))) }) }));
15
15
  }
16
- const WiggleClusterDialog = observer(function ({ model, handleClose, }) {
16
+ const WiggleClusterDialog = observer(function WiggleClusterDialog({ model, handleClose, }) {
17
17
  const [activeMode, setActiveMode] = useState('auto');
18
18
  return (_jsx(Dialog, { open: true, title: "Cluster by score", maxWidth: "xl", onClose: (_, reason) => {
19
19
  if (reason !== 'backdropClick') {
@@ -1,4 +1,4 @@
1
- import type { ReducedModel } from './types';
1
+ import type { ReducedModel } from './types.ts';
2
2
  declare const WiggleClusterDialogAuto: ({ model, children, handleClose, }: {
3
3
  model: ReducedModel;
4
4
  children: React.ReactNode;
@@ -4,14 +4,14 @@ import { ErrorMessage } from '@jbrowse/core/ui';
4
4
  import { getContainingView, getSession, isAbortException, useLocalStorage, } from '@jbrowse/core/util';
5
5
  import { createStopToken, stopStopToken } from '@jbrowse/core/util/stopToken';
6
6
  import { getRpcSessionId } from '@jbrowse/core/util/tracks';
7
+ import { isAlive } from '@jbrowse/mobx-state-tree';
7
8
  import { Button, DialogActions, DialogContent, TextField, Typography, } from '@mui/material';
8
9
  import { observer } from 'mobx-react';
9
- import { isAlive } from 'mobx-state-tree';
10
- const WiggleClusterDialogAuto = observer(function ({ model, children, handleClose, }) {
10
+ const WiggleClusterDialogAuto = observer(function WiggleClusterDialogAuto({ model, children, handleClose, }) {
11
11
  const [progress, setProgress] = useState('');
12
12
  const [error, setError] = useState();
13
13
  const [loading, setLoading] = useState(false);
14
- const [stopToken, setStopToken] = useState('');
14
+ const [stopToken, setStopToken] = useState();
15
15
  const [showAdvanced, setShowAdvanced] = useState(false);
16
16
  const [samplesPerPixel, setSamplesPerPixel] = useLocalStorage('cluster-samplesPerPixel', '1');
17
17
  return (_jsxs(_Fragment, { children: [_jsxs(DialogContent, { children: [children, _jsxs("div", { style: { marginTop: 50 }, children: [_jsx(Button, { variant: "contained", onClick: () => {
@@ -46,12 +46,19 @@ const WiggleClusterDialogAuto = observer(function ({ model, children, handleClos
46
46
  setProgress(arg);
47
47
  },
48
48
  }));
49
+ const currentLayout = model.layout?.length
50
+ ? model.layout
51
+ : sourcesWithoutLayout;
52
+ const sourcesByName = Object.fromEntries(currentLayout.map((s) => [s.name, s]));
49
53
  model.setLayout(ret.order.map(idx => {
50
- const ret = sourcesWithoutLayout[idx];
51
- if (!ret) {
54
+ const sourceItem = sourcesWithoutLayout[idx];
55
+ if (!sourceItem) {
52
56
  throw new Error(`out of bounds at ${idx}`);
53
57
  }
54
- return ret;
58
+ return {
59
+ ...sourceItem,
60
+ ...sourcesByName[sourceItem.name],
61
+ };
55
62
  }));
56
63
  }
57
64
  handleClose();
@@ -1,4 +1,4 @@
1
- import type { ReducedModel } from './types';
1
+ import type { ReducedModel } from './types.ts';
2
2
  declare const WiggleClusterDialogManuals: ({ model, handleClose, children, }: {
3
3
  model: ReducedModel;
4
4
  handleClose: () => void;
@@ -3,23 +3,16 @@ import { useEffect, useState } from 'react';
3
3
  import { ErrorMessage, LoadingEllipses } from '@jbrowse/core/ui';
4
4
  import { getContainingView, getSession, isAbortException, useLocalStorage, } from '@jbrowse/core/util';
5
5
  import { getRpcSessionId } from '@jbrowse/core/util/tracks';
6
+ import { makeStyles } from '@jbrowse/core/util/tss-react';
7
+ import { isAlive } from '@jbrowse/mobx-state-tree';
6
8
  import { Button, DialogActions, DialogContent, FormControlLabel, Radio, RadioGroup, TextField, Typography, } from '@mui/material';
7
- import copy from 'copy-to-clipboard';
8
- import { saveAs } from 'file-saver';
9
9
  import { observer } from 'mobx-react';
10
- import { isAlive } from 'mobx-state-tree';
11
- import { makeStyles } from 'tss-react/mui';
12
- const useStyles = makeStyles()(theme => ({
10
+ const useStyles = makeStyles()({
13
11
  textAreaFont: {
14
12
  fontFamily: 'Courier New',
15
13
  },
16
- mgap: {
17
- display: 'flex',
18
- flexDirection: 'column',
19
- gap: theme.spacing(4),
20
- },
21
- }));
22
- const WiggleClusterDialogManuals = observer(function ({ model, handleClose, children, }) {
14
+ });
15
+ const WiggleClusterDialogManuals = observer(function WiggleClusterDialogManuals({ model, handleClose, children, }) {
23
16
  const { classes } = useStyles();
24
17
  const [paste, setPaste] = useState('');
25
18
  const [ret, setRet] = useState();
@@ -61,7 +54,7 @@ const WiggleClusterDialogManuals = observer(function ({ model, handleClose, chil
61
54
  })();
62
55
  }, [model, samplesPerPixel]);
63
56
  const results = ret
64
- ? `inputMatrix<-matrix(c(${Object.values(ret)
57
+ ? String.raw `inputMatrix<-matrix(c(${Object.values(ret)
65
58
  .map(val => val.join(','))
66
59
  .join(',\n')}
67
60
  ),nrow=${Object.values(ret).length},byrow=TRUE)
@@ -69,7 +62,7 @@ rownames(inputMatrix)<-c(${Object.keys(ret)
69
62
  .map(key => `'${key}'`)
70
63
  .join(',')})
71
64
  resultClusters<-hclust(dist(inputMatrix), method='${clusterMethod}')
72
- cat(resultClusters$order,sep='\\n')`
65
+ cat(resultClusters$order,sep='\n')`
73
66
  : undefined;
74
67
  const resultsTsv = ret
75
68
  ? Object.entries(ret)
@@ -81,13 +74,16 @@ cat(resultClusters$order,sep='\\n')`
81
74
  gap: '8px',
82
75
  flexWrap: 'wrap',
83
76
  marginBottom: '16px',
84
- }, children: [_jsx(Button, { variant: "contained", onClick: () => {
77
+ }, children: [_jsx(Button, { variant: "contained", onClick: async () => {
78
+ const { saveAs } = await import('file-saver-es');
85
79
  saveAs(new Blob([results || ''], {
86
80
  type: 'text/plain;charset=utf-8',
87
81
  }), 'cluster.R');
88
- }, children: "Download Rscript" }), ' ', "or", ' ', _jsx(Button, { variant: "contained", onClick: () => {
82
+ }, children: "Download Rscript" }), ' ', "or", ' ', _jsx(Button, { variant: "contained", onClick: async () => {
83
+ const { default: copy } = await import('copy-to-clipboard');
89
84
  copy(results || '');
90
- }, children: "Copy Rscript to clipboard" }), ' ', "or", ' ', _jsx(Button, { variant: "contained", onClick: () => {
85
+ }, children: "Copy Rscript to clipboard" }), ' ', "or", ' ', _jsx(Button, { variant: "contained", onClick: async () => {
86
+ const { saveAs } = await import('file-saver-es');
91
87
  saveAs(new Blob([resultsTsv || ''], {
92
88
  type: 'text/plain;charset=utf-8',
93
89
  }), 'scores.tsv');
@@ -102,7 +98,7 @@ cat(resultClusters$order,sep='\\n')`
102
98
  setClusterMethod(key);
103
99
  } }), label: val }, key))) }), _jsxs("div", { style: { marginTop: 20 }, children: [_jsx(Typography, { children: "This procedure samples the data at each 'pixel' across the visible by default" }), _jsx(TextField, { label: "Samples per pixel (>1 for denser sampling, between 0-1 for sparser sampling)", variant: "outlined", size: "small", value: samplesPerPixel, onChange: event => {
104
100
  setSamplesPerPixel(event.target.value);
105
- } })] })] })) : null, results ? (_jsx("div", {})) : loading ? (_jsx(LoadingEllipses, { variant: "h6", title: "Generating score matrix" })) : error ? (_jsx(ErrorMessage, { error: error })) : null] }), _jsxs("div", { children: [_jsx(Typography, { variant: "subtitle2", gutterBottom: true, style: { marginTop: '16px' }, children: "Clustering Results:" }), _jsx(TextField, { multiline: true, fullWidth: true, variant: "outlined", placeholder: "Paste results from Rscript here (sequence of numbers, one per line, specifying the new ordering)", rows: 10, value: paste, onChange: event => {
101
+ } })] })] })) : null, results ? (_jsx("div", {})) : loading ? (_jsx(LoadingEllipses, { variant: "h6", message: "Generating score matrix" })) : error ? (_jsx(ErrorMessage, { error: error })) : null] }), _jsxs("div", { children: [_jsx(Typography, { variant: "subtitle2", gutterBottom: true, style: { marginTop: '16px' }, children: "Clustering Results:" }), _jsx(TextField, { multiline: true, fullWidth: true, variant: "outlined", placeholder: "Paste results from Rscript here (sequence of numbers, one per line, specifying the new ordering)", rows: 10, value: paste, onChange: event => {
106
102
  setPaste(event.target.value);
107
103
  }, slotProps: {
108
104
  input: {
@@ -114,17 +110,24 @@ cat(resultClusters$order,sep='\\n')`
114
110
  const { sourcesWithoutLayout } = model;
115
111
  if (sourcesWithoutLayout) {
116
112
  try {
113
+ const currentLayout = model.layout?.length
114
+ ? model.layout
115
+ : sourcesWithoutLayout;
116
+ const sourcesByName = Object.fromEntries(currentLayout.map((s) => [s.name, s]));
117
117
  model.setLayout(paste
118
118
  .split('\n')
119
119
  .map(t => t.trim())
120
120
  .filter(f => !!f)
121
121
  .map(r => +r)
122
122
  .map(idx => {
123
- const ret = sourcesWithoutLayout[idx - 1];
124
- if (!ret) {
123
+ const sourceItem = sourcesWithoutLayout[idx - 1];
124
+ if (!sourceItem) {
125
125
  throw new Error(`out of bounds at ${idx}`);
126
126
  }
127
- return ret;
127
+ return {
128
+ ...sourceItem,
129
+ ...sourcesByName[sourceItem.name],
130
+ };
128
131
  }));
129
132
  }
130
133
  catch (e) {
@@ -1,7 +1,8 @@
1
- import type { Source } from '../../types';
1
+ import type { Source } from '../../../util.ts';
2
2
  import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
3
  export interface ReducedModel {
4
4
  sourcesWithoutLayout?: Source[];
5
+ layout?: Source[];
5
6
  adapterConfig: AnyConfigurationModel;
6
7
  setLayout: (arg: Source[]) => void;
7
8
  }
@@ -1,4 +1,4 @@
1
- import type { WiggleDisplayModel } from '../model';
1
+ import type { WiggleDisplayModel } from '../model.ts';
2
2
  declare const MultiLinearWiggleDisplayComponent: (props: {
3
3
  model: WiggleDisplayModel;
4
4
  }) => import("react/jsx-runtime").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { BaseLinearDisplayComponent } from '@jbrowse/plugin-linear-genome-view';
3
3
  import { observer } from 'mobx-react';
4
- import YScaleBars from './YScaleBars';
5
- const MultiLinearWiggleDisplayComponent = observer(function (props) {
4
+ import YScaleBars from "./YScaleBars.js";
5
+ const MultiLinearWiggleDisplayComponent = observer(function MultiLinearWiggleDisplayComponent(props) {
6
6
  const { model } = props;
7
7
  return (_jsxs("div", { children: [_jsx(BaseLinearDisplayComponent, { ...props }), _jsx(YScaleBars, { model: model })] }));
8
8
  });
@@ -1,5 +1,5 @@
1
- import type { WiggleDisplayModel } from '../model';
2
- export declare const YScaleBars: (props: {
1
+ import type { WiggleDisplayModel } from '../model.ts';
2
+ declare const YScaleBars: (props: {
3
3
  model: WiggleDisplayModel;
4
4
  orientation?: string;
5
5
  exportSVG?: boolean;
@@ -1,22 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { getContainingView } from '@jbrowse/core/util';
3
2
  import { observer } from 'mobx-react';
4
- import FullHeightScaleBar from './FullHeightScaleBar';
5
- import IndividualScaleBars from './IndividualScaleBars';
6
- const Wrapper = observer(function ({ children, model, exportSVG, }) {
7
- const { height } = model;
8
- return exportSVG ? (children) : (_jsx("svg", { style: {
9
- position: 'absolute',
10
- top: 0,
11
- left: 0,
12
- pointerEvents: 'none',
13
- height,
14
- width: getContainingView(model).width,
15
- }, children: children }));
16
- });
17
- export const YScaleBars = observer(function (props) {
3
+ import FullHeightScaleBar from "./FullHeightScaleBar.js";
4
+ import IndividualScaleBars from "./IndividualScaleBars.js";
5
+ import YScaleBarsWrapper from "./YScaleBarsWrapper.js";
6
+ const YScaleBars = observer(function YScaleBars(props) {
18
7
  const { model, orientation, exportSVG } = props;
19
8
  const { showSidebar, stats, needsFullHeightScalebar, sources } = model;
20
- return stats && sources ? (_jsx(Wrapper, { ...props, children: showSidebar ? (needsFullHeightScalebar ? (_jsx(FullHeightScaleBar, { model: model, orientation: orientation, exportSVG: exportSVG })) : (_jsx(IndividualScaleBars, { model: model, orientation: orientation, exportSVG: exportSVG }))) : null })) : null;
9
+ return stats && sources ? (_jsx(YScaleBarsWrapper, { ...props, children: showSidebar ? (needsFullHeightScalebar ? (_jsx(FullHeightScaleBar, { model: model, orientation: orientation, exportSVG: exportSVG })) : (_jsx(IndividualScaleBars, { model: model, orientation: orientation, exportSVG: exportSVG }))) : null })) : null;
21
10
  });
22
11
  export default YScaleBars;
@@ -0,0 +1,7 @@
1
+ import type { WiggleDisplayModel } from '../model.ts';
2
+ declare const YScaleBarsWrapper: ({ children, model, exportSVG, }: {
3
+ model: WiggleDisplayModel;
4
+ children: React.ReactNode;
5
+ exportSVG?: boolean;
6
+ }) => string | number | bigint | boolean | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
7
+ export default YScaleBarsWrapper;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getContainingView } from '@jbrowse/core/util';
3
+ import { observer } from 'mobx-react';
4
+ const YScaleBarsWrapper = observer(function YScaleBarsWrapper({ children, model, exportSVG, }) {
5
+ const { height } = model;
6
+ return exportSVG ? (children) : (_jsx("svg", { style: {
7
+ position: 'absolute',
8
+ top: 0,
9
+ left: 0,
10
+ pointerEvents: 'none',
11
+ height,
12
+ width: getContainingView(model).width,
13
+ }, children: children }));
14
+ });
15
+ export default YScaleBarsWrapper;
@@ -0,0 +1,10 @@
1
+ import type { Source } from '../types.ts';
2
+ export interface MinimalModel {
3
+ graphType: boolean;
4
+ needsFullHeightScalebar: boolean;
5
+ rowHeightTooSmallForScalebar: boolean;
6
+ sources: Source[] | undefined;
7
+ renderColorBoxes: boolean;
8
+ labelWidth: number;
9
+ needsCustomLegend: boolean;
10
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,31 @@
1
+ interface SetColorDialogProps {
2
+ model: {
3
+ sources?: {
4
+ name: string;
5
+ [key: string]: unknown;
6
+ }[];
7
+ setLayout: (s: {
8
+ name: string;
9
+ [key: string]: unknown;
10
+ }[]) => void;
11
+ clearLayout: () => void;
12
+ };
13
+ handleClose: () => void;
14
+ title?: string;
15
+ enableBulkEdit?: boolean;
16
+ enableRowPalettizer?: boolean;
17
+ showTipsStorageKey?: string;
18
+ SourcesGridComponent: React.ComponentType<{
19
+ rows: {
20
+ name: string;
21
+ [key: string]: unknown;
22
+ }[];
23
+ onChange: (rows: {
24
+ name: string;
25
+ [key: string]: unknown;
26
+ }[]) => void;
27
+ showTips: boolean;
28
+ }>;
29
+ }
30
+ export default function SetColorDialog({ model, handleClose, title, enableBulkEdit, enableRowPalettizer, showTipsStorageKey, SourcesGridComponent, }: SetColorDialogProps): import("react/jsx-runtime").JSX.Element;
31
+ export {};
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import DraggableDialog from '@jbrowse/core/ui/DraggableDialog';
4
+ import { useLocalStorage } from '@jbrowse/core/util';
5
+ import { makeStyles } from '@jbrowse/core/util/tss-react';
6
+ import { Button, DialogActions, DialogContent } from '@mui/material';
7
+ import SetColorDialogBulkEditPanel from "./SetColorDialogBulkEditPanel.js";
8
+ import SetColorDialogHelpfulTips from "./SetColorDialogHelpfulTips.js";
9
+ import SetColorDialogRowPalettizer from "./SetColorDialogRowPalettizer.js";
10
+ const useStyles = makeStyles()({
11
+ content: {
12
+ minWidth: 800,
13
+ },
14
+ fr: {
15
+ float: 'right',
16
+ display: 'flex',
17
+ gap: 8,
18
+ },
19
+ });
20
+ export default function SetColorDialog({ model, handleClose, title = 'Color/arrangement editor', enableBulkEdit = false, enableRowPalettizer = false, showTipsStorageKey = 'setColorDialog-showTips', SourcesGridComponent, }) {
21
+ const { classes } = useStyles();
22
+ const { sources } = model;
23
+ const [showBulkEditor, setShowBulkEditor] = useState(false);
24
+ const [currLayout, setCurrLayout] = useState(structuredClone(sources || []));
25
+ const [showTips, setShowTips] = useLocalStorage(showTipsStorageKey, false);
26
+ return (_jsx(DraggableDialog, { open: true, onClose: handleClose, maxWidth: "xl", title: title, children: showBulkEditor && enableBulkEdit ? (_jsx(SetColorDialogBulkEditPanel, { currLayout: currLayout, onClose: arg => {
27
+ if (arg) {
28
+ setCurrLayout(arg);
29
+ }
30
+ setShowBulkEditor(false);
31
+ } })) : (_jsxs(_Fragment, { children: [_jsxs(DialogContent, { className: classes.content, children: [_jsxs("div", { className: classes.fr, children: [_jsx(Button, { variant: "contained", onClick: () => {
32
+ setShowTips(!showTips);
33
+ }, children: showTips ? 'Hide tips' : 'Show tips' }), enableBulkEdit ? (_jsx(Button, { color: "secondary", variant: "contained", onClick: () => {
34
+ setShowBulkEditor(!showBulkEditor);
35
+ }, children: "Show Bulk row editor" })) : null] }), showTips ? _jsx(SetColorDialogHelpfulTips, {}) : null, enableRowPalettizer ? (_jsxs(_Fragment, { children: [_jsx("br", {}), _jsx(SetColorDialogRowPalettizer, { currLayout: currLayout, setCurrLayout: setCurrLayout })] })) : null, _jsx(SourcesGridComponent, { rows: currLayout, onChange: setCurrLayout, showTips: showTips })] }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", type: "submit", color: "inherit", onClick: () => {
36
+ model.clearLayout();
37
+ setCurrLayout(model.sources || []);
38
+ }, children: "Clear custom settings" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
39
+ handleClose();
40
+ setCurrLayout([...(model.sources || [])]);
41
+ }, children: "Cancel" }), _jsx(Button, { variant: "contained", color: "primary", type: "submit", onClick: () => {
42
+ model.setLayout(currLayout);
43
+ handleClose();
44
+ }, children: "Submit" })] })] })) }));
45
+ }
@@ -0,0 +1,10 @@
1
+ export default function SetColorDialogBulkEditPanel({ onClose, currLayout, }: {
2
+ currLayout: {
3
+ name: string;
4
+ [key: string]: unknown;
5
+ }[];
6
+ onClose: (arg?: {
7
+ name: string;
8
+ [key: string]: unknown;
9
+ }[]) => void;
10
+ }): import("react/jsx-runtime").JSX.Element;