@sjcrh/proteinpaint-client 2.196.0 → 2.198.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 (957) hide show
  1. package/dist/2dmaf-R3PFZNRN.js +1373 -0
  2. package/dist/AIProjectAdmin-DM3KG6SR.js +958 -0
  3. package/dist/AppHeader-6DZQ6YZX.js +835 -0
  4. package/dist/BoxPlot-76NINVX4.js +1217 -0
  5. package/dist/CorrelationVolcano-U5UMJNH5.js +619 -0
  6. package/dist/DE-AXNYWIQK.js +95 -0
  7. package/dist/DEinput-JH6YY6LS.js +301 -0
  8. package/dist/DifferentialAnalysis-25P4CGIY.js +242 -0
  9. package/dist/DifferentialAnalysis-25P4CGIY.js.map +7 -0
  10. package/dist/Disco-NVMLF3BK.js +3392 -0
  11. package/dist/Disco-NVMLF3BK.js.map +7 -0
  12. package/dist/Disco.UI-C7CZINUQ.js +249 -0
  13. package/dist/DmrPlot-WROR4ENM.js +642 -0
  14. package/dist/GB-JUABODPH.js +1394 -0
  15. package/dist/GB-JUABODPH.js.map +7 -0
  16. package/dist/GSEA-Y5R2THIJ.js +846 -0
  17. package/dist/GSEA-Y5R2THIJ.js.map +7 -0
  18. package/dist/GeneExpInput-JDU6EI7K.js +367 -0
  19. package/dist/Geomap-J763OK2F.js +89 -0
  20. package/dist/Geomap-J763OK2F.js.map +7 -0
  21. package/dist/HicApp-UNIJLH4B.js +2250 -0
  22. package/dist/IDCViewer-KVPCIUDW.js +10803 -0
  23. package/dist/IDCViewer-KVPCIUDW.js.map +7 -0
  24. package/dist/NumBinaryEditor-WMN2GGO4.js +271 -0
  25. package/dist/NumBinaryEditor.unit.spec-TAMXV6SE.js +286 -0
  26. package/dist/NumContEditor-XYIOJY4E.js +109 -0
  27. package/dist/NumContEditor.unit.spec-WDZ75BHO.js +169 -0
  28. package/dist/NumCustomBinEditor-5SY3C4TY.js +38 -0
  29. package/dist/NumCustomBinEditor.unit.spec-XHTAIXR3.js +284 -0
  30. package/dist/NumDiscreteEditor-NRDRX4FD.js +179 -0
  31. package/dist/NumDiscreteEditor.unit.spec-2CJW7OAT.js +202 -0
  32. package/dist/NumRegularBinEditor-DUDVTNDC.js +38 -0
  33. package/dist/NumRegularBinEditor.unit.spec-H3GNQHMN.js +227 -0
  34. package/dist/NumSplineEditor-7Q4AC7KH.js +198 -0
  35. package/dist/NumSplineEditor.unit.spec-YRZK5PH5.js +199 -0
  36. package/dist/NumericDensity-NTNWUESG.js +38 -0
  37. package/dist/NumericDensity.unit.spec-5I5U6T6P.js +221 -0
  38. package/dist/NumericHandler-MEW2KMPX.js +39 -0
  39. package/dist/NumericHandler.unit.spec-JFX4BPRG.js +219 -0
  40. package/dist/ProteomeInput-K2ZHR2U6.js +395 -0
  41. package/dist/ProteomeInput-K2ZHR2U6.js.map +7 -0
  42. package/dist/RunChart2-BEBDU7RC.js +758 -0
  43. package/dist/SC-XCBFJVUJ.js +1120 -0
  44. package/dist/SC-XCBFJVUJ.js.map +7 -0
  45. package/dist/Volcano-4Y4TP3UX.js +1385 -0
  46. package/dist/Volcano-4Y4TP3UX.js.map +7 -0
  47. package/dist/WSIViewer-ZLQU62PD.js +48562 -0
  48. package/dist/WsiSamplesPlot-JMBSITOM.js +165 -0
  49. package/dist/adSandbox-664IRCRL.js +38 -0
  50. package/dist/animatedBubbleChart-TX7NW34K.js +555 -0
  51. package/dist/app-63WJ3BMP.js +37 -0
  52. package/dist/app-77FIZHCG.js +49 -0
  53. package/dist/app.js +19 -19
  54. package/dist/bam-IETNVAYD.js +860 -0
  55. package/dist/barchart-YUVXJNH4.js +47 -0
  56. package/dist/barchart.data-P4EIQXGE.js +22 -0
  57. package/dist/barchart.events-JPVCLTIG.js +47 -0
  58. package/dist/barchart.integration.spec-ZH7DEQI2.js +2196 -0
  59. package/dist/barchart2-XO2FG76J.js +314 -0
  60. package/dist/bars.renderer-AUIWUJDH.js +12 -0
  61. package/dist/block-NBTCOT3H.js +6255 -0
  62. package/dist/block-NBTCOT3H.js.map +7 -0
  63. package/dist/block.init-X7Y2EEVR.js +38 -0
  64. package/dist/block.mds.expressionrank-BIAOZIZ3.js +359 -0
  65. package/dist/block.mds.geneboxplot-CNICDVLK.js +828 -0
  66. package/dist/block.mds.junction-PQXCTSUI.js +1545 -0
  67. package/dist/block.mds.svcnv-32KMVTCT.js +6801 -0
  68. package/dist/block.svg-LRTOYQK2.js +164 -0
  69. package/dist/block.tk.aicheck-HDV7ZIUD.js +283 -0
  70. package/dist/block.tk.ase-JIDWKMYI.js +365 -0
  71. package/dist/block.tk.bam-5X3OS5HB.js +1906 -0
  72. package/dist/block.tk.bedgraphdot-T7JX7YQL.js +384 -0
  73. package/dist/block.tk.bigwig.ui-OSAYEBAE.js +212 -0
  74. package/dist/block.tk.hicstraw-DEY3VQFK.js +823 -0
  75. package/dist/block.tk.junction-7UAFEZSJ.js +2364 -0
  76. package/dist/block.tk.junction.textmatrixui-27LHS33U.js +199 -0
  77. package/dist/block.tk.ld-DF2PI7OO.js +99 -0
  78. package/dist/block.tk.menu-L2D5KBIV.js +1029 -0
  79. package/dist/block.tk.pgv-QO56SKBV.js +944 -0
  80. package/dist/brainImaging-NIPQWFWO.js +423 -0
  81. package/dist/brainRegions-ZNZ2WHSU.js +221 -0
  82. package/dist/bubbleHeatmap-ERWNEKZB.js +383 -0
  83. package/dist/chunk-2GYWFQML.js +299 -0
  84. package/dist/chunk-2HYJ4GDH.js +50 -0
  85. package/dist/chunk-2MG6XE6R.js +272 -0
  86. package/dist/chunk-2X6W4E3W.js +1507 -0
  87. package/dist/chunk-2X6W4E3W.js.map +7 -0
  88. package/dist/chunk-33K5PA52.js +54 -0
  89. package/dist/chunk-37XDBPOP.js +26 -0
  90. package/dist/chunk-3EWB3246.js +58 -0
  91. package/dist/chunk-3RSKOPIY.js +100 -0
  92. package/dist/chunk-3XVVN66M.js +4085 -0
  93. package/dist/chunk-3XVVN66M.js.map +7 -0
  94. package/dist/chunk-4DPVT4NE.js +1102 -0
  95. package/dist/chunk-4IH7DORZ.js +98 -0
  96. package/dist/chunk-4QNBFIIR.js +399 -0
  97. package/dist/chunk-4STKL6SR.js +217 -0
  98. package/dist/chunk-4TZIVSL5.js +34 -0
  99. package/dist/chunk-5ABGFJSP.js +467 -0
  100. package/dist/chunk-5AZNP47R.js +302 -0
  101. package/dist/chunk-5RL2OHXX.js +5070 -0
  102. package/dist/chunk-5RL2OHXX.js.map +7 -0
  103. package/dist/chunk-5VOPABBA.js +20941 -0
  104. package/dist/chunk-5VOPABBA.js.map +7 -0
  105. package/dist/chunk-6BB43SIB.js +102 -0
  106. package/dist/chunk-7OHRR2IE.js +276 -0
  107. package/dist/chunk-ARBHWDMY.js +226 -0
  108. package/dist/chunk-ARBHWDMY.js.map +7 -0
  109. package/dist/chunk-ASATD4T7.js +14 -0
  110. package/dist/chunk-AZ47Q7BX.js +1223 -0
  111. package/dist/chunk-AZ47Q7BX.js.map +7 -0
  112. package/dist/chunk-B5B3LZB3.js +236 -0
  113. package/dist/chunk-BHGISFCA.js +2681 -0
  114. package/dist/chunk-BMBOZ64T.js +2786 -0
  115. package/dist/chunk-BOZJHPJP.js +216 -0
  116. package/dist/chunk-CDD7LYJM.js +194 -0
  117. package/dist/chunk-CTQ3IUCA.js +2327 -0
  118. package/dist/chunk-D7TID3HR.js +158 -0
  119. package/dist/chunk-DBKNWR4J.js +1561 -0
  120. package/dist/chunk-DBKNWR4J.js.map +7 -0
  121. package/dist/chunk-E55LLYRX.js +55 -0
  122. package/dist/chunk-ESGXULRH.js +386 -0
  123. package/dist/chunk-EZ4LZ6ZT.js +117 -0
  124. package/dist/chunk-F3SJTVP5.js +4284 -0
  125. package/dist/chunk-F5IXNJO7.js +222 -0
  126. package/dist/chunk-FJYECRHW.js +448 -0
  127. package/dist/chunk-FPNRUQOU.js +833 -0
  128. package/dist/chunk-G5S4R77D.js +1942 -0
  129. package/dist/chunk-G5S4R77D.js.map +7 -0
  130. package/dist/chunk-G764NXQN.js +170 -0
  131. package/dist/chunk-GAPI4MML.js +148 -0
  132. package/dist/chunk-HLUZOZXJ.js +272 -0
  133. package/dist/chunk-HOKIK2FR.js +375 -0
  134. package/dist/chunk-I6WR4CG7.js +323 -0
  135. package/dist/chunk-I6WR4CG7.js.map +7 -0
  136. package/dist/chunk-KLGL6XZD.js +129 -0
  137. package/dist/chunk-KTKZSYIH.js +24 -0
  138. package/dist/chunk-KTKZSYIH.js.map +7 -0
  139. package/dist/chunk-L7IRWUKT.js +480 -0
  140. package/dist/chunk-LFCYMSVA.js +314 -0
  141. package/dist/chunk-LFCYMSVA.js.map +7 -0
  142. package/dist/chunk-LX6G7HJJ.js +617 -0
  143. package/dist/chunk-M2G5R4WB.js +142 -0
  144. package/dist/chunk-M4TTGGT4.js +102 -0
  145. package/dist/chunk-M6EF3WVV.js +1825 -0
  146. package/dist/chunk-M6KHT3MM.js +146 -0
  147. package/dist/chunk-MCZFHWIR.js +230 -0
  148. package/dist/chunk-MFQACKYU.js +448 -0
  149. package/dist/chunk-MVGAGTM3.js +343 -0
  150. package/dist/chunk-NELOT3NJ.js +119 -0
  151. package/dist/chunk-NRKMXULC.js +54 -0
  152. package/dist/chunk-NSTL4MY2.js +2110 -0
  153. package/dist/chunk-NSTL4MY2.js.map +7 -0
  154. package/dist/chunk-NYRZNRG5.js +177 -0
  155. package/dist/chunk-ONPKE6DC.js +368 -0
  156. package/dist/chunk-OXVLWQ6M.js +556 -0
  157. package/dist/chunk-OXVLWQ6M.js.map +7 -0
  158. package/dist/chunk-PFRWS4CR.js +203 -0
  159. package/dist/chunk-PJKQUXEN.js +1275 -0
  160. package/dist/chunk-Q2L44HK3.js +6364 -0
  161. package/dist/chunk-QNHT74XC.js +1245 -0
  162. package/dist/chunk-QNHT74XC.js.map +7 -0
  163. package/dist/chunk-RKO6BL5N.js +446 -0
  164. package/dist/chunk-T25QNZHB.js +254 -0
  165. package/dist/chunk-U7TBYVIQ.js +31 -0
  166. package/dist/chunk-UGRQXBL4.js +381 -0
  167. package/dist/chunk-USFSHSCJ.js +477 -0
  168. package/dist/chunk-VJ6UFVGC.js +2833 -0
  169. package/dist/chunk-W3WPPOXH.js +292 -0
  170. package/dist/chunk-WFCSOTBO.js +263 -0
  171. package/dist/chunk-WHP4AKDM.js +185 -0
  172. package/dist/chunk-WHP4AKDM.js.map +7 -0
  173. package/dist/chunk-WZ2L57MB.js +102 -0
  174. package/dist/chunk-XPY6AWXO.js +787 -0
  175. package/dist/chunk-XPY6AWXO.js.map +7 -0
  176. package/dist/chunk-Y4UAKFWC.js +37 -0
  177. package/dist/chunk-YQBS2ZCK.js +514 -0
  178. package/dist/chunk-Z5U6HOE4.js +190 -0
  179. package/dist/chunk-Z5U6HOE4.js.map +7 -0
  180. package/dist/chunk-ZNEJUKJW.js +140 -0
  181. package/dist/chunk-ZNEJUKJW.js.map +7 -0
  182. package/dist/chunk-ZTHM2TKP.js +176 -0
  183. package/dist/condition-2PASYSUC.js +332 -0
  184. package/dist/controls-5IMJ6K5L.js +41 -0
  185. package/dist/controls.config-P5PG2DHW.js +39 -0
  186. package/dist/correlation-U3EDLNHR.js +102 -0
  187. package/dist/cuminc-2HUFEROK.js +1149 -0
  188. package/dist/cuminc.integration.spec-WFWAPTDA.js +678 -0
  189. package/dist/cuminc.integration.spec-WFWAPTDA.js.map +7 -0
  190. package/dist/customdata.inputui-ZHWNEPFH.js +289 -0
  191. package/dist/dataDownload-VBSJBKMP.js +330 -0
  192. package/dist/dataDownload.integration.spec-LUFSETOP.js +193 -0
  193. package/dist/databrowser.ui-6H2KMSTJ.js +433 -0
  194. package/dist/dictionary-V37LXFIP.js +118 -0
  195. package/dist/dnaMethylation-OIZMHMLK.js +38 -0
  196. package/dist/dnaMethylation.integration.spec-CWPTJ74H.js +203 -0
  197. package/dist/dofetch-IWPZQB5N.js +51 -0
  198. package/dist/e2pca-7SLIAGYW.js +350 -0
  199. package/dist/ep-7L6KF6K4.js +1256 -0
  200. package/dist/expclust.gdc.spec-JT452Q3G.js +307 -0
  201. package/dist/facet-CXOUU5AS.js +521 -0
  202. package/dist/forms2-VPNCLQOY.js +539 -0
  203. package/dist/gb-P4VRXRED.js +88 -0
  204. package/dist/geneExpClustering-FQTCKRJJ.js +249 -0
  205. package/dist/geneExpression-BHO5326K.js +313 -0
  206. package/dist/geneExpression-ZMERB64E.js +38 -0
  207. package/dist/geneExpression.unit.spec-CNVHZWNG.js +102 -0
  208. package/dist/geneORA-FXVUCXGX.js +278 -0
  209. package/dist/geneRanking-SFK4UBKQ.js +553 -0
  210. package/dist/geneVariant-IYEHB4H7.js +41 -0
  211. package/dist/geneVariant-LIRRLUFR.js +39 -0
  212. package/dist/geneVariant.integration.spec-Y2NPNTYX.js +198 -0
  213. package/dist/genefusion.ui-L3HIJM3N.js +309 -0
  214. package/dist/geneset-A6VUFX63.js +208 -0
  215. package/dist/genomeBrowser.spec-CB4HHHBN.js +281 -0
  216. package/dist/grin2-FKBIMH5N.js +75 -0
  217. package/dist/grin2-V36KLEBU.js +1143 -0
  218. package/dist/grin2-V36KLEBU.js.map +7 -0
  219. package/dist/hierCluster-QFPRMHVA.js +63 -0
  220. package/dist/hierCluster-YWC3XYPV.js +59 -0
  221. package/dist/hierCluster.config-F7YYZNM3.js +40 -0
  222. package/dist/hierCluster.integration.spec-AF4L3YT6.js +488 -0
  223. package/dist/hierCluster.interactivity-RPY74PK6.js +54 -0
  224. package/dist/hierCluster.renderers-LOKHZ3V2.js +21 -0
  225. package/dist/imagePlot-BBEXA754.js +163 -0
  226. package/dist/importPlot-7QGANZGK.js +8 -0
  227. package/dist/isoformExpression-4SLLCVFD.js +40 -0
  228. package/dist/isoformExpression.unit.spec-GEL4JJ64.js +208 -0
  229. package/dist/launch.adhoc-LWLBQJS5.js +42 -0
  230. package/dist/leftlabel.sample-RTEZOIH2.js +264 -0
  231. package/dist/legacyDataset-VLD7ZYWI.js +119 -0
  232. package/dist/lollipop-XKQK5QZU.js +171 -0
  233. package/dist/maf-AZQPPWDO.js +459 -0
  234. package/dist/maftimeline-7MSVYKQU.js +593 -0
  235. package/dist/matrix-BGLWC25D.js +58 -0
  236. package/dist/matrix-IQR5SRMK.js +63 -0
  237. package/dist/matrix.cells-5C57NWOY.js +28 -0
  238. package/dist/matrix.config-2DQXAN2E.js +41 -0
  239. package/dist/matrix.data-ADCGF5H6.js +25 -0
  240. package/dist/matrix.groups-V4ITQ5F7.js +27 -0
  241. package/dist/matrix.integration.spec-IBNOO2WP.js +3072 -0
  242. package/dist/matrix.integration.spec-IBNOO2WP.js.map +7 -0
  243. package/dist/matrix.interactivity-JNELJFOV.js +42 -0
  244. package/dist/matrix.layout-WBVIV6GR.js +44 -0
  245. package/dist/matrix.legend-YHOWPK77.js +22 -0
  246. package/dist/matrix.renderers-5BGVRR3M.js +38 -0
  247. package/dist/matrix.serieses-2GZJOASZ.js +21 -0
  248. package/dist/matrix.sort-WKIWPJKP.js +27 -0
  249. package/dist/matrix.sort.unit.spec-L2E4D4AS.js +472 -0
  250. package/dist/matrix.sorterUi-TEJWWJ64.js +18 -0
  251. package/dist/matrix.sorterUi.unit.spec-SHP7C4P7.js +342 -0
  252. package/dist/mavb-4MXNYUEO.js +732 -0
  253. package/dist/mds.fimo-WHIJIBOI.js +518 -0
  254. package/dist/mds.samplescatterplot-BRJ6NG2D.js +1550 -0
  255. package/dist/mds.survivalplot-OPCMB5PB.js +483 -0
  256. package/dist/numericDictTermCluster-7MIFOP2K.js +65 -0
  257. package/dist/oncomatrix-BGG6BEUI.js +295 -0
  258. package/dist/oncomatrix.spec-LYQ4L4F3.js +448 -0
  259. package/dist/plot.2dvaf-6WVCP2ZI.js +377 -0
  260. package/dist/plot.app-MLBP6WFP.js +41 -0
  261. package/dist/plot.barplot-JEPRZSCU.js +102 -0
  262. package/dist/plot.boxplot-GNFW42VM.js +152 -0
  263. package/dist/plot.brainImaging-5ACNSD45.js +51 -0
  264. package/dist/plot.disco-Q2V2KKIH.js +102 -0
  265. package/dist/plot.dzi-KVT6S7K7.js +33 -0
  266. package/dist/plot.ssgq-4N3KFJQ2.js +139 -0
  267. package/dist/plot.vaf2cov-ITRG5U43.js +259 -0
  268. package/dist/plot.wsi-26YZNU4V.js +36 -0
  269. package/dist/polar2-J7GVUK4X.js +231 -0
  270. package/dist/profileForms-VXV2JLXU.js +446 -0
  271. package/dist/profilePlot-ZZYZK4SY.js +54 -0
  272. package/dist/proteinView-7KN532D3.js +1568 -0
  273. package/dist/qualitative-MLRVLIAU.js +43 -0
  274. package/dist/radar2-WM2ZBOH3.js +326 -0
  275. package/dist/radarFacility2-3SBR2JJ3.js +334 -0
  276. package/dist/regression-WMRPQJW2.js +56 -0
  277. package/dist/regression.inputs-VWZKSYNY.js +48 -0
  278. package/dist/regression.inputs.term-OWE6GWHM.js +48 -0
  279. package/dist/regression.inputs.values.table-4INNZQI2.js +45 -0
  280. package/dist/regression.integration.spec-XKQ2JOOT.js +784 -0
  281. package/dist/regression.results-VZBYMBYC.js +40 -0
  282. package/dist/regression.spec-DU3UTDCJ.js +708 -0
  283. package/dist/render-N5FOF247.js +38 -0
  284. package/dist/report-DW3OHB67.js +222 -0
  285. package/dist/sampleScatter.spec-REFSK2V4.js +202 -0
  286. package/dist/sampleView-ICOT2R6O.js +48 -0
  287. package/dist/samplelst-TJEVASYG.js +111 -0
  288. package/dist/samplematrix-6DAWCXQ3.js +2198 -0
  289. package/dist/sc-53LNOB7N.js +86 -0
  290. package/dist/scatter-DKYSS4DL.js +851 -0
  291. package/dist/selectGenomeWithTklst-WTX66TV3.js +134 -0
  292. package/dist/singleCellCellType-D2CN2BHQ.js +38 -0
  293. package/dist/singleCellCellType.unit.spec-LADUCI4R.js +160 -0
  294. package/dist/singleCellGeneExpression-YR2ZT34W.js +38 -0
  295. package/dist/singleCellGeneExpression.unit.spec-BM63M432.js +153 -0
  296. package/dist/singleCellPlot-3ICIOILE.js +54 -0
  297. package/dist/singlecell-6ZUFA3BQ.js +86 -0
  298. package/dist/singlecell-KX7W4U57.js +1572 -0
  299. package/dist/snp-VIURB7L3.js +38 -0
  300. package/dist/snp.unit.spec-ACZNZUNS.js +176 -0
  301. package/dist/snplocus-3LW4ZUZR.js +208 -0
  302. package/dist/spliceevent.a53ss.diagram-AKTZGWNM.js +151 -0
  303. package/dist/spliceevent.exonskip.diagram-XZHXB77R.js +283 -0
  304. package/dist/spliceevent.exonskip.diagram-XZHXB77R.js.map +7 -0
  305. package/dist/spliceevent.noeventdiagram-YTXWWNTJ.js +460 -0
  306. package/dist/ssGSEA-THW4WFMI.js +38 -0
  307. package/dist/ssGSEA.unit.spec-HTRGQI2K.js +88 -0
  308. package/dist/summarizeCnvGeneexp-RFYC3H2Z.js +163 -0
  309. package/dist/summarizeGeneexpSurvival-DQBZUTQ6.js +114 -0
  310. package/dist/summarizeMutationCnv-7AYEMHAI.js +164 -0
  311. package/dist/summarizeMutationDiagnosis-AKFJDSAF.js +40 -0
  312. package/dist/summarizeMutationSurvival-QJHZRQBZ.js +99 -0
  313. package/dist/summary-A5P7AYK4.js +49 -0
  314. package/dist/summary.integration.spec-HQISXGNL.js +414 -0
  315. package/dist/summaryInput-HP675QOQ.js +235 -0
  316. package/dist/sunburst-65LSYRXX.js +284 -0
  317. package/dist/survival-QNEI6YVK.js +46 -0
  318. package/dist/survival-UI74VXSM.js +58 -0
  319. package/dist/survival.integration.spec-X5N3JQXS.js +915 -0
  320. package/dist/survival.integration.spec-X5N3JQXS.js.map +7 -0
  321. package/dist/svgraph-PSX2NER3.js +1387 -0
  322. package/dist/svmr-QDQ33EFX.js +3842 -0
  323. package/dist/table-LWAI27UO.js +200 -0
  324. package/dist/termCollection-3JHR74FG.js +179 -0
  325. package/dist/termCollection-CDF5LYUG.js +38 -0
  326. package/dist/termCollection.unit.spec-HOJKYWHF.js +208 -0
  327. package/dist/tk-GL4QCL4K.js +1019 -0
  328. package/dist/tk-GL4QCL4K.js.map +7 -0
  329. package/dist/tk-OEQFO73V.js +46 -0
  330. package/dist/tp.ui-SHNERDGC.js +1459 -0
  331. package/dist/tvs.dt-CZDC4TSR.js +39 -0
  332. package/dist/tvs.dtcnv.categorical-OPBDHZGB.js +40 -0
  333. package/dist/tvs.dtcnv.continuous-AR6P4EP3.js +72 -0
  334. package/dist/tvs.dtfusion-2YQ7N6FQ.js +40 -0
  335. package/dist/tvs.dtitd-ATCHW735.js +40 -0
  336. package/dist/tvs.dtitd-ATCHW735.js.map +7 -0
  337. package/dist/tvs.dtsnvindel-WHHWAATJ.js +40 -0
  338. package/dist/tvs.dtsv-3UMCW65O.js +40 -0
  339. package/dist/tvs.numeric-TOEPASWN.js +21 -0
  340. package/dist/tvs.samplelst-M7XKXRTZ.js +104 -0
  341. package/dist/tvs.termCollection-WT4WZMYR.js +159 -0
  342. package/dist/violin-2YGXTBDS.js +46 -0
  343. package/dist/violin.integration.spec-YWNHVAGS.js +1425 -0
  344. package/dist/violin.interactivity-J6BE2UQL.js +38 -0
  345. package/dist/violin.renderer-3GRUWP2U.js +40 -0
  346. package/dist/vocabulary-2INCVPYJ.js +41 -0
  347. package/package.json +3 -3
  348. package/dist/2dmaf-SKNV7IHT.js +0 -1373
  349. package/dist/AIProjectAdmin-AOTVRBNH.js +0 -958
  350. package/dist/AppHeader-M2ZSS3M3.js +0 -835
  351. package/dist/BoxPlot-P3EECSQA.js +0 -1217
  352. package/dist/CorrelationVolcano-YCQ5S6MT.js +0 -619
  353. package/dist/DE-RBMOQZCR.js +0 -95
  354. package/dist/DEinput-PTW6RS6U.js +0 -301
  355. package/dist/DifferentialAnalysis-M6IDWPYX.js +0 -245
  356. package/dist/DifferentialAnalysis-M6IDWPYX.js.map +0 -7
  357. package/dist/Disco-GUKDAHUY.js +0 -3297
  358. package/dist/Disco-GUKDAHUY.js.map +0 -7
  359. package/dist/Disco.UI-YBIMV7RH.js +0 -249
  360. package/dist/DmrPlot-JQPLLU6P.js +0 -642
  361. package/dist/GB-UOTFNVJE.js +0 -1353
  362. package/dist/GB-UOTFNVJE.js.map +0 -7
  363. package/dist/GeneExpInput-3OPDDCXR.js +0 -367
  364. package/dist/HicApp-VFOWRP6G.js +0 -2250
  365. package/dist/IDCViewer-Y7EOIIBG.js +0 -10455
  366. package/dist/IDCViewer-Y7EOIIBG.js.map +0 -7
  367. package/dist/NumBinaryEditor-RL44SO3T.js +0 -271
  368. package/dist/NumBinaryEditor.unit.spec-P73PGAX5.js +0 -286
  369. package/dist/NumContEditor-MIC7M73G.js +0 -109
  370. package/dist/NumContEditor.unit.spec-5XZH7OCG.js +0 -169
  371. package/dist/NumCustomBinEditor-W357XTIR.js +0 -38
  372. package/dist/NumCustomBinEditor.unit.spec-CJMK4CYW.js +0 -284
  373. package/dist/NumDiscreteEditor-PRSUMS3I.js +0 -179
  374. package/dist/NumDiscreteEditor.unit.spec-A6R56P3Z.js +0 -202
  375. package/dist/NumRegularBinEditor-7OHUEUCC.js +0 -38
  376. package/dist/NumRegularBinEditor.unit.spec-NOAX42UZ.js +0 -227
  377. package/dist/NumSplineEditor-XI7AT5LM.js +0 -198
  378. package/dist/NumSplineEditor.unit.spec-ZH4M2N2C.js +0 -199
  379. package/dist/NumericDensity-X6IHQAW3.js +0 -38
  380. package/dist/NumericDensity.unit.spec-EKVD4AUG.js +0 -221
  381. package/dist/NumericHandler-5ONBWFJ5.js +0 -39
  382. package/dist/NumericHandler.unit.spec-SHI6E4VA.js +0 -219
  383. package/dist/ProteomeInput-HN46MIBP.js +0 -396
  384. package/dist/ProteomeInput-HN46MIBP.js.map +0 -7
  385. package/dist/RunChart2-Y6IY6MW2.js +0 -758
  386. package/dist/SC-JYF564FK.js +0 -1130
  387. package/dist/SC-JYF564FK.js.map +0 -7
  388. package/dist/Volcano-WZGAUYGY.js +0 -1380
  389. package/dist/Volcano-WZGAUYGY.js.map +0 -7
  390. package/dist/WSIViewer-RLLL7MAL.js +0 -48562
  391. package/dist/WsiSamplesPlot-FU3TCOTY.js +0 -165
  392. package/dist/adSandbox-ZINST5DE.js +0 -38
  393. package/dist/animatedBubbleChart-PIQWCVBJ.js +0 -555
  394. package/dist/app-N42SVGI2.js +0 -37
  395. package/dist/app-RWN4XLCP.js +0 -49
  396. package/dist/bam-QTSTXJ4N.js +0 -860
  397. package/dist/barchart-27BYTRVI.js +0 -47
  398. package/dist/barchart.data-OUNVH4JU.js +0 -22
  399. package/dist/barchart.events-PY4CEDSO.js +0 -47
  400. package/dist/barchart.integration.spec-H4WGHQ7R.js +0 -2196
  401. package/dist/barchart2-TIOTRAC2.js +0 -314
  402. package/dist/bars.renderer-57KSYAAT.js +0 -12
  403. package/dist/block-YPM767A4.js +0 -6226
  404. package/dist/block-YPM767A4.js.map +0 -7
  405. package/dist/block.init-LRZ3QAGC.js +0 -38
  406. package/dist/block.mds.expressionrank-IV7JLC52.js +0 -359
  407. package/dist/block.mds.geneboxplot-IBCE5XZU.js +0 -828
  408. package/dist/block.mds.junction-ISSCJHNF.js +0 -1545
  409. package/dist/block.mds.svcnv-ZEBVBTL7.js +0 -6801
  410. package/dist/block.svg-FYWA5VYH.js +0 -164
  411. package/dist/block.tk.aicheck-AD6DTKXR.js +0 -283
  412. package/dist/block.tk.ase-LO2J4KRE.js +0 -365
  413. package/dist/block.tk.bam-XGX22FCN.js +0 -1906
  414. package/dist/block.tk.bedgraphdot-SUIRFNFL.js +0 -384
  415. package/dist/block.tk.bigwig.ui-2Q7FAK3V.js +0 -212
  416. package/dist/block.tk.hicstraw-4MVP2PCL.js +0 -823
  417. package/dist/block.tk.junction-F54FTEPB.js +0 -2364
  418. package/dist/block.tk.junction.textmatrixui-ETROZJVK.js +0 -199
  419. package/dist/block.tk.ld-NJEDKSTU.js +0 -99
  420. package/dist/block.tk.menu-LZOY4FKT.js +0 -1029
  421. package/dist/block.tk.pgv-I3XHJ7VU.js +0 -944
  422. package/dist/brainImaging-BGP6VRFV.js +0 -423
  423. package/dist/brainRegions-AAN7LM2Y.js +0 -221
  424. package/dist/bubbleHeatmap-HNEU4CYA.js +0 -383
  425. package/dist/chunk-25XCVML7.js +0 -236
  426. package/dist/chunk-2XV6U42J.js +0 -100
  427. package/dist/chunk-36NAWXQ7.js +0 -5067
  428. package/dist/chunk-36NAWXQ7.js.map +0 -7
  429. package/dist/chunk-3LYZMOLO.js +0 -58
  430. package/dist/chunk-427UL37G.js +0 -222
  431. package/dist/chunk-4C3XRI6J.js +0 -54
  432. package/dist/chunk-4O6H4ZHL.js +0 -514
  433. package/dist/chunk-53JJ7SXN.js +0 -276
  434. package/dist/chunk-5CR24RTX.js +0 -381
  435. package/dist/chunk-5HMX4NUJ.js +0 -217
  436. package/dist/chunk-5QTJUPFS.js +0 -26
  437. package/dist/chunk-5V2BMEAS.js +0 -55
  438. package/dist/chunk-6MBTPVIM.js +0 -1275
  439. package/dist/chunk-6MQWYMPB.js +0 -183
  440. package/dist/chunk-6MQWYMPB.js.map +0 -7
  441. package/dist/chunk-7D3WX34I.js +0 -1230
  442. package/dist/chunk-7D3WX34I.js.map +0 -7
  443. package/dist/chunk-7FSIZZOX.js +0 -176
  444. package/dist/chunk-7KRS7L4U.js +0 -1443
  445. package/dist/chunk-7KRS7L4U.js.map +0 -7
  446. package/dist/chunk-A3URBFXN.js +0 -119
  447. package/dist/chunk-A45KH7LP.js +0 -254
  448. package/dist/chunk-B4GS7OLB.js +0 -4284
  449. package/dist/chunk-BKPDYW5T.js +0 -177
  450. package/dist/chunk-BWQV2OBL.js +0 -102
  451. package/dist/chunk-BXGQXLHP.js +0 -2786
  452. package/dist/chunk-CDJAHMAN.js +0 -299
  453. package/dist/chunk-CXHLROWX.js +0 -37
  454. package/dist/chunk-EKKQMKQI.js +0 -102
  455. package/dist/chunk-EPWIJEMK.js +0 -158
  456. package/dist/chunk-F7Y67LK7.js +0 -230
  457. package/dist/chunk-FDBVAL6K.js +0 -14
  458. package/dist/chunk-FISP5YN2.js +0 -292
  459. package/dist/chunk-G3FSS7GR.js +0 -477
  460. package/dist/chunk-GE4NJDV4.js +0 -98
  461. package/dist/chunk-GYGU4UT5.js +0 -34
  462. package/dist/chunk-I5IPJG2R.js +0 -148
  463. package/dist/chunk-I73KUUYG.js +0 -287
  464. package/dist/chunk-I73KUUYG.js.map +0 -7
  465. package/dist/chunk-IFK24IXL.js +0 -194
  466. package/dist/chunk-ILE6ML2D.js +0 -50
  467. package/dist/chunk-IRKP6IZ4.js +0 -216
  468. package/dist/chunk-J6ZOUCWN.js +0 -170
  469. package/dist/chunk-JFRSVFWO.js +0 -736
  470. package/dist/chunk-JFRSVFWO.js.map +0 -7
  471. package/dist/chunk-JNBJG57F.js +0 -448
  472. package/dist/chunk-K5UVG3FQ.js +0 -117
  473. package/dist/chunk-KE5B34CS.js +0 -102
  474. package/dist/chunk-L6A2BEXB.js +0 -2681
  475. package/dist/chunk-LQJMCE7G.js +0 -467
  476. package/dist/chunk-LSWU6EAQ.js +0 -31
  477. package/dist/chunk-LWEGSYDD.js +0 -226
  478. package/dist/chunk-LWEGSYDD.js.map +0 -7
  479. package/dist/chunk-LYVLF6HO.js +0 -1825
  480. package/dist/chunk-MBUQ34CF.js +0 -189
  481. package/dist/chunk-MBUQ34CF.js.map +0 -7
  482. package/dist/chunk-MN3KDNHC.js +0 -617
  483. package/dist/chunk-MNIBZTQE.js +0 -146
  484. package/dist/chunk-MTHEEXT2.js +0 -1450
  485. package/dist/chunk-MTHEEXT2.js.map +0 -7
  486. package/dist/chunk-MTZSN3H4.js +0 -302
  487. package/dist/chunk-N7O7NPUO.js +0 -534
  488. package/dist/chunk-N7O7NPUO.js.map +0 -7
  489. package/dist/chunk-NNFAUP2I.js +0 -315
  490. package/dist/chunk-NNFAUP2I.js.map +0 -7
  491. package/dist/chunk-OF5FE6GT.js +0 -142
  492. package/dist/chunk-OVSKJROY.js +0 -815
  493. package/dist/chunk-OVSKJROY.js.map +0 -7
  494. package/dist/chunk-PJ3FCJBZ.js +0 -480
  495. package/dist/chunk-PU2Q4SZR.js +0 -2327
  496. package/dist/chunk-PZPS56Z6.js +0 -343
  497. package/dist/chunk-QKR3ZD3S.js +0 -833
  498. package/dist/chunk-QMXCK4Y5.js +0 -203
  499. package/dist/chunk-ROJ3LJLE.js +0 -448
  500. package/dist/chunk-SLHWUFAW.js +0 -1943
  501. package/dist/chunk-SLHWUFAW.js.map +0 -7
  502. package/dist/chunk-SOTB4FRE.js +0 -2098
  503. package/dist/chunk-SOTB4FRE.js.map +0 -7
  504. package/dist/chunk-TJYRBEBK.js +0 -2878
  505. package/dist/chunk-TJYRBEBK.js.map +0 -7
  506. package/dist/chunk-U3G4JGKJ.js +0 -54
  507. package/dist/chunk-UN3O2MNB.js +0 -375
  508. package/dist/chunk-VDZ5QOF6.js +0 -446
  509. package/dist/chunk-VO5XZ2EG.js +0 -129
  510. package/dist/chunk-VRH7NP6R.js +0 -263
  511. package/dist/chunk-VTMJGRT5.js +0 -272
  512. package/dist/chunk-W5X6C7LY.js +0 -399
  513. package/dist/chunk-WJGUNGFK.js +0 -272
  514. package/dist/chunk-WKT46ZJ6.js +0 -368
  515. package/dist/chunk-WQCQWUUP.js +0 -2833
  516. package/dist/chunk-WY2PGUVX.js +0 -20898
  517. package/dist/chunk-WY2PGUVX.js.map +0 -7
  518. package/dist/chunk-WZ2U5QXJ.js +0 -6364
  519. package/dist/chunk-WZUWK5Q6.js +0 -1102
  520. package/dist/chunk-XPMTUVSS.js +0 -1220
  521. package/dist/chunk-XPMTUVSS.js.map +0 -7
  522. package/dist/chunk-YYFQPGIE.js +0 -386
  523. package/dist/condition-GVIEMQG7.js +0 -332
  524. package/dist/controls-73K3XBDR.js +0 -41
  525. package/dist/controls.config-FQKY2LRE.js +0 -39
  526. package/dist/correlation-AOAXIUFJ.js +0 -102
  527. package/dist/cuminc-OD2PPCEK.js +0 -1149
  528. package/dist/cuminc.integration.spec-TMIFW7EO.js +0 -678
  529. package/dist/cuminc.integration.spec-TMIFW7EO.js.map +0 -7
  530. package/dist/customdata.inputui-SWLGLATL.js +0 -289
  531. package/dist/dataDownload-456HL2OE.js +0 -330
  532. package/dist/dataDownload.integration.spec-5YS4MWK5.js +0 -193
  533. package/dist/databrowser.ui-7APC5MNM.js +0 -433
  534. package/dist/dictionary-A3HA5MVK.js +0 -118
  535. package/dist/dnaMethylation-6ONBKARD.js +0 -38
  536. package/dist/dnaMethylation.integration.spec-T3WEGVX3.js +0 -203
  537. package/dist/dofetch-RVPQUMVX.js +0 -51
  538. package/dist/e2pca-75WZ46XG.js +0 -350
  539. package/dist/ep-QG5CWPTW.js +0 -1256
  540. package/dist/expclust.gdc.spec-KBBQJR4M.js +0 -307
  541. package/dist/facet-QGB2Q7YV.js +0 -521
  542. package/dist/forms2-CJGDCWYH.js +0 -539
  543. package/dist/gb-NEFAHKQI.js +0 -88
  544. package/dist/geneExpClustering-ZVR44UZC.js +0 -249
  545. package/dist/geneExpression-25EX4DFK.js +0 -313
  546. package/dist/geneExpression-FALOA4GC.js +0 -38
  547. package/dist/geneExpression.unit.spec-BQLELQUS.js +0 -102
  548. package/dist/geneORA-K2B7JYWD.js +0 -278
  549. package/dist/geneRanking-6AXL5ZJS.js +0 -553
  550. package/dist/geneVariant-RZFDP5J5.js +0 -41
  551. package/dist/geneVariant-UIBZ5UIQ.js +0 -39
  552. package/dist/geneVariant.integration.spec-4EZQMPQB.js +0 -198
  553. package/dist/genefusion.ui-YK4TNS2P.js +0 -309
  554. package/dist/geneset-47J4D5ID.js +0 -208
  555. package/dist/genomeBrowser.spec-LFFWRIWG.js +0 -281
  556. package/dist/grin2-DQB2WW3C.js +0 -75
  557. package/dist/grin2-TZFU4JM3.js +0 -1078
  558. package/dist/grin2-TZFU4JM3.js.map +0 -7
  559. package/dist/gsea-KKLAMLMG.js +0 -47
  560. package/dist/hierCluster-3MZEJG6B.js +0 -59
  561. package/dist/hierCluster-YGBC4XCZ.js +0 -63
  562. package/dist/hierCluster.config-A4N54K3A.js +0 -40
  563. package/dist/hierCluster.integration.spec-GLKXFZDM.js +0 -488
  564. package/dist/hierCluster.interactivity-4TPWGIVC.js +0 -54
  565. package/dist/hierCluster.renderers-WUWSXXHU.js +0 -21
  566. package/dist/imagePlot-JRPYOV3Q.js +0 -163
  567. package/dist/importPlot-A3PFUP6K.js +0 -8
  568. package/dist/isoformExpression-5L4O3WKL.js +0 -40
  569. package/dist/isoformExpression.unit.spec-SLB6XIX4.js +0 -208
  570. package/dist/launch.adhoc-QI7TPYSC.js +0 -42
  571. package/dist/leftlabel.sample-OSIRTJFW.js +0 -264
  572. package/dist/legacyDataset-TNIIJABK.js +0 -119
  573. package/dist/lollipop-LAELXNQY.js +0 -171
  574. package/dist/maf-HZAYVZFO.js +0 -459
  575. package/dist/maftimeline-BLBNUGAL.js +0 -593
  576. package/dist/matrix-LVJSHXDM.js +0 -58
  577. package/dist/matrix-S5QQV4JU.js +0 -63
  578. package/dist/matrix.cells-JUTRYPG4.js +0 -28
  579. package/dist/matrix.config-ZTWWYNIZ.js +0 -41
  580. package/dist/matrix.data-BREYB54F.js +0 -25
  581. package/dist/matrix.groups-WMHTLOXC.js +0 -27
  582. package/dist/matrix.integration.spec-S6FIEE2X.js +0 -3072
  583. package/dist/matrix.integration.spec-S6FIEE2X.js.map +0 -7
  584. package/dist/matrix.interactivity-TMBVAM5M.js +0 -42
  585. package/dist/matrix.layout-POK5NOUV.js +0 -44
  586. package/dist/matrix.legend-6XVQ67AC.js +0 -22
  587. package/dist/matrix.renderers-G5FQZZ73.js +0 -38
  588. package/dist/matrix.serieses-XNLQSQS6.js +0 -21
  589. package/dist/matrix.sort-XNES23OQ.js +0 -27
  590. package/dist/matrix.sort.unit.spec-65BDBQUV.js +0 -472
  591. package/dist/matrix.sorterUi-WC2YX7S7.js +0 -18
  592. package/dist/matrix.sorterUi.unit.spec-GZQBW7F7.js +0 -342
  593. package/dist/mavb-T2UCRWWM.js +0 -732
  594. package/dist/mds.fimo-65UUK7ER.js +0 -518
  595. package/dist/mds.samplescatterplot-4NHGQBJF.js +0 -1550
  596. package/dist/mds.survivalplot-WVAHDM3Z.js +0 -483
  597. package/dist/numericDictTermCluster-CXASCSQ6.js +0 -65
  598. package/dist/oncomatrix-5WMOICWR.js +0 -295
  599. package/dist/oncomatrix.spec-POVBNFJR.js +0 -448
  600. package/dist/plot.2dvaf-63K5RSIU.js +0 -377
  601. package/dist/plot.app-V5IY25QS.js +0 -41
  602. package/dist/plot.barplot-IQTYHNFE.js +0 -102
  603. package/dist/plot.boxplot-2RMTO7AS.js +0 -152
  604. package/dist/plot.brainImaging-DLUHAHHG.js +0 -51
  605. package/dist/plot.disco-WK6GDLNF.js +0 -102
  606. package/dist/plot.dzi-3V3FWE7U.js +0 -33
  607. package/dist/plot.ssgq-TENK2RP4.js +0 -139
  608. package/dist/plot.vaf2cov-P2QOOZGZ.js +0 -259
  609. package/dist/plot.wsi-BVRGJF4E.js +0 -36
  610. package/dist/polar2-NNOZOQQJ.js +0 -231
  611. package/dist/profileForms-RS4GEZZV.js +0 -446
  612. package/dist/profilePlot-3DLME3NH.js +0 -54
  613. package/dist/proteinView-NPKJAQAI.js +0 -1568
  614. package/dist/qualitative-S45RXXRJ.js +0 -43
  615. package/dist/radar2-EX7YBNMT.js +0 -326
  616. package/dist/radarFacility2-WU5O6O77.js +0 -334
  617. package/dist/regression-7MCOYJVD.js +0 -56
  618. package/dist/regression.inputs-QHSWJ23R.js +0 -48
  619. package/dist/regression.inputs.term-EJ4Z5Q5O.js +0 -48
  620. package/dist/regression.inputs.values.table-YKMAWNXN.js +0 -45
  621. package/dist/regression.integration.spec-XOX7OXXA.js +0 -784
  622. package/dist/regression.results-YKPOTPCC.js +0 -40
  623. package/dist/regression.spec-YIIY2AZA.js +0 -708
  624. package/dist/report-JEJFCWUU.js +0 -222
  625. package/dist/sampleScatter.spec-LBAZBDYA.js +0 -202
  626. package/dist/sampleView-WKZT5ZFE.js +0 -48
  627. package/dist/samplelst-HXM3H6M4.js +0 -111
  628. package/dist/samplematrix-LCGHK2EK.js +0 -2198
  629. package/dist/sc-3OE2G4BU.js +0 -86
  630. package/dist/scatter-AGVUDTTU.js +0 -851
  631. package/dist/selectGenomeWithTklst-WF2XZ6GH.js +0 -134
  632. package/dist/singleCellCellType-2SRGROMS.js +0 -38
  633. package/dist/singleCellCellType.unit.spec-DCGHNRJI.js +0 -160
  634. package/dist/singleCellGeneExpression-RASZA4NO.js +0 -38
  635. package/dist/singleCellGeneExpression.unit.spec-5MRGH2OO.js +0 -153
  636. package/dist/singleCellPlot-TIYA3GNM.js +0 -54
  637. package/dist/singlecell-CFA43TTU.js +0 -1572
  638. package/dist/singlecell-JS5SIZHY.js +0 -86
  639. package/dist/snp-VXZXPMKS.js +0 -38
  640. package/dist/snp.unit.spec-TR5TCO7X.js +0 -176
  641. package/dist/snplocus-VLPH5Y65.js +0 -208
  642. package/dist/spliceevent.a53ss.diagram-PATK67SH.js +0 -151
  643. package/dist/spliceevent.exonskip.diagram-7B3SEOAJ.js +0 -277
  644. package/dist/spliceevent.exonskip.diagram-7B3SEOAJ.js.map +0 -7
  645. package/dist/spliceevent.noeventdiagram-4NPNZUEN.js +0 -460
  646. package/dist/ssGSEA-XMW5BLAU.js +0 -38
  647. package/dist/ssGSEA.unit.spec-ASUWKVUT.js +0 -88
  648. package/dist/summarizeCnvGeneexp-KWRFGX32.js +0 -163
  649. package/dist/summarizeGeneexpSurvival-FIPIMEJR.js +0 -114
  650. package/dist/summarizeMutationCnv-IUYRVLZG.js +0 -164
  651. package/dist/summarizeMutationDiagnosis-ZFJPCABL.js +0 -40
  652. package/dist/summarizeMutationSurvival-HFHYB7DT.js +0 -99
  653. package/dist/summary-AZUNEZ5I.js +0 -49
  654. package/dist/summary.integration.spec-WLBAJL44.js +0 -414
  655. package/dist/summaryInput-NJWVXDXW.js +0 -235
  656. package/dist/sunburst-PXGF4WM6.js +0 -284
  657. package/dist/survival-RAU4XCKG.js +0 -58
  658. package/dist/survival-ZZ4QLZHK.js +0 -46
  659. package/dist/survival.integration.spec-GBQ5X362.js +0 -915
  660. package/dist/survival.integration.spec-GBQ5X362.js.map +0 -7
  661. package/dist/svgraph-7UCFRL6A.js +0 -1387
  662. package/dist/svmr-DB3RY2ID.js +0 -3842
  663. package/dist/table-HJRWWXGM.js +0 -200
  664. package/dist/termCollection-AW7M6DTP.js +0 -38
  665. package/dist/termCollection-WPON7RG3.js +0 -179
  666. package/dist/termCollection.unit.spec-254ESHOE.js +0 -208
  667. package/dist/tk-SUAFM5YA.js +0 -46
  668. package/dist/tp.ui-ELEQGSK2.js +0 -1459
  669. package/dist/tvs.dt-DCXY66YY.js +0 -39
  670. package/dist/tvs.dtcnv.categorical-SFQZMYX7.js +0 -40
  671. package/dist/tvs.dtcnv.continuous-AUZNJMC3.js +0 -72
  672. package/dist/tvs.dtfusion-5F7MYFHZ.js +0 -40
  673. package/dist/tvs.dtsnvindel-JJSPL4PH.js +0 -40
  674. package/dist/tvs.dtsv-DARTSV5H.js +0 -40
  675. package/dist/tvs.numeric-KYAU5OV3.js +0 -21
  676. package/dist/tvs.samplelst-HHBIO26C.js +0 -104
  677. package/dist/tvs.termCollection-KCMALH6B.js +0 -159
  678. package/dist/violin-C26FW5WK.js +0 -46
  679. package/dist/violin.integration.spec-QQ43XWHQ.js +0 -1425
  680. package/dist/violin.interactivity-H2BHC6M4.js +0 -38
  681. package/dist/violin.renderer-GSG2I7AV.js +0 -40
  682. package/dist/vocabulary-3G525O5V.js +0 -41
  683. /package/dist/{2dmaf-SKNV7IHT.js.map → 2dmaf-R3PFZNRN.js.map} +0 -0
  684. /package/dist/{AIProjectAdmin-AOTVRBNH.js.map → AIProjectAdmin-DM3KG6SR.js.map} +0 -0
  685. /package/dist/{AppHeader-M2ZSS3M3.js.map → AppHeader-6DZQ6YZX.js.map} +0 -0
  686. /package/dist/{BoxPlot-P3EECSQA.js.map → BoxPlot-76NINVX4.js.map} +0 -0
  687. /package/dist/{CorrelationVolcano-YCQ5S6MT.js.map → CorrelationVolcano-U5UMJNH5.js.map} +0 -0
  688. /package/dist/{DE-RBMOQZCR.js.map → DE-AXNYWIQK.js.map} +0 -0
  689. /package/dist/{DEinput-PTW6RS6U.js.map → DEinput-JH6YY6LS.js.map} +0 -0
  690. /package/dist/{Disco.UI-YBIMV7RH.js.map → Disco.UI-C7CZINUQ.js.map} +0 -0
  691. /package/dist/{DmrPlot-JQPLLU6P.js.map → DmrPlot-WROR4ENM.js.map} +0 -0
  692. /package/dist/{GeneExpInput-3OPDDCXR.js.map → GeneExpInput-JDU6EI7K.js.map} +0 -0
  693. /package/dist/{HicApp-VFOWRP6G.js.map → HicApp-UNIJLH4B.js.map} +0 -0
  694. /package/dist/{NumBinaryEditor-RL44SO3T.js.map → NumBinaryEditor-WMN2GGO4.js.map} +0 -0
  695. /package/dist/{NumBinaryEditor.unit.spec-P73PGAX5.js.map → NumBinaryEditor.unit.spec-TAMXV6SE.js.map} +0 -0
  696. /package/dist/{NumContEditor-MIC7M73G.js.map → NumContEditor-XYIOJY4E.js.map} +0 -0
  697. /package/dist/{NumContEditor.unit.spec-5XZH7OCG.js.map → NumContEditor.unit.spec-WDZ75BHO.js.map} +0 -0
  698. /package/dist/{NumCustomBinEditor-W357XTIR.js.map → NumCustomBinEditor-5SY3C4TY.js.map} +0 -0
  699. /package/dist/{NumCustomBinEditor.unit.spec-CJMK4CYW.js.map → NumCustomBinEditor.unit.spec-XHTAIXR3.js.map} +0 -0
  700. /package/dist/{NumDiscreteEditor-PRSUMS3I.js.map → NumDiscreteEditor-NRDRX4FD.js.map} +0 -0
  701. /package/dist/{NumDiscreteEditor.unit.spec-A6R56P3Z.js.map → NumDiscreteEditor.unit.spec-2CJW7OAT.js.map} +0 -0
  702. /package/dist/{NumRegularBinEditor-7OHUEUCC.js.map → NumRegularBinEditor-DUDVTNDC.js.map} +0 -0
  703. /package/dist/{NumRegularBinEditor.unit.spec-NOAX42UZ.js.map → NumRegularBinEditor.unit.spec-H3GNQHMN.js.map} +0 -0
  704. /package/dist/{NumSplineEditor-XI7AT5LM.js.map → NumSplineEditor-7Q4AC7KH.js.map} +0 -0
  705. /package/dist/{NumSplineEditor.unit.spec-ZH4M2N2C.js.map → NumSplineEditor.unit.spec-YRZK5PH5.js.map} +0 -0
  706. /package/dist/{NumericDensity-X6IHQAW3.js.map → NumericDensity-NTNWUESG.js.map} +0 -0
  707. /package/dist/{NumericDensity.unit.spec-EKVD4AUG.js.map → NumericDensity.unit.spec-5I5U6T6P.js.map} +0 -0
  708. /package/dist/{NumericHandler-5ONBWFJ5.js.map → NumericHandler-MEW2KMPX.js.map} +0 -0
  709. /package/dist/{NumericHandler.unit.spec-SHI6E4VA.js.map → NumericHandler.unit.spec-JFX4BPRG.js.map} +0 -0
  710. /package/dist/{RunChart2-Y6IY6MW2.js.map → RunChart2-BEBDU7RC.js.map} +0 -0
  711. /package/dist/{WSIViewer-RLLL7MAL.js.map → WSIViewer-ZLQU62PD.js.map} +0 -0
  712. /package/dist/{WsiSamplesPlot-FU3TCOTY.js.map → WsiSamplesPlot-JMBSITOM.js.map} +0 -0
  713. /package/dist/{adSandbox-ZINST5DE.js.map → adSandbox-664IRCRL.js.map} +0 -0
  714. /package/dist/{animatedBubbleChart-PIQWCVBJ.js.map → animatedBubbleChart-TX7NW34K.js.map} +0 -0
  715. /package/dist/{app-N42SVGI2.js.map → app-63WJ3BMP.js.map} +0 -0
  716. /package/dist/{app-RWN4XLCP.js.map → app-77FIZHCG.js.map} +0 -0
  717. /package/dist/{bam-QTSTXJ4N.js.map → bam-IETNVAYD.js.map} +0 -0
  718. /package/dist/{barchart-27BYTRVI.js.map → barchart-YUVXJNH4.js.map} +0 -0
  719. /package/dist/{barchart.data-OUNVH4JU.js.map → barchart.data-P4EIQXGE.js.map} +0 -0
  720. /package/dist/{barchart.events-PY4CEDSO.js.map → barchart.events-JPVCLTIG.js.map} +0 -0
  721. /package/dist/{barchart.integration.spec-H4WGHQ7R.js.map → barchart.integration.spec-ZH7DEQI2.js.map} +0 -0
  722. /package/dist/{barchart2-TIOTRAC2.js.map → barchart2-XO2FG76J.js.map} +0 -0
  723. /package/dist/{bars.renderer-57KSYAAT.js.map → bars.renderer-AUIWUJDH.js.map} +0 -0
  724. /package/dist/{block.init-LRZ3QAGC.js.map → block.init-X7Y2EEVR.js.map} +0 -0
  725. /package/dist/{block.mds.expressionrank-IV7JLC52.js.map → block.mds.expressionrank-BIAOZIZ3.js.map} +0 -0
  726. /package/dist/{block.mds.geneboxplot-IBCE5XZU.js.map → block.mds.geneboxplot-CNICDVLK.js.map} +0 -0
  727. /package/dist/{block.mds.junction-ISSCJHNF.js.map → block.mds.junction-PQXCTSUI.js.map} +0 -0
  728. /package/dist/{block.mds.svcnv-ZEBVBTL7.js.map → block.mds.svcnv-32KMVTCT.js.map} +0 -0
  729. /package/dist/{block.svg-FYWA5VYH.js.map → block.svg-LRTOYQK2.js.map} +0 -0
  730. /package/dist/{block.tk.aicheck-AD6DTKXR.js.map → block.tk.aicheck-HDV7ZIUD.js.map} +0 -0
  731. /package/dist/{block.tk.ase-LO2J4KRE.js.map → block.tk.ase-JIDWKMYI.js.map} +0 -0
  732. /package/dist/{block.tk.bam-XGX22FCN.js.map → block.tk.bam-5X3OS5HB.js.map} +0 -0
  733. /package/dist/{block.tk.bedgraphdot-SUIRFNFL.js.map → block.tk.bedgraphdot-T7JX7YQL.js.map} +0 -0
  734. /package/dist/{block.tk.bigwig.ui-2Q7FAK3V.js.map → block.tk.bigwig.ui-OSAYEBAE.js.map} +0 -0
  735. /package/dist/{block.tk.hicstraw-4MVP2PCL.js.map → block.tk.hicstraw-DEY3VQFK.js.map} +0 -0
  736. /package/dist/{block.tk.junction-F54FTEPB.js.map → block.tk.junction-7UAFEZSJ.js.map} +0 -0
  737. /package/dist/{block.tk.junction.textmatrixui-ETROZJVK.js.map → block.tk.junction.textmatrixui-27LHS33U.js.map} +0 -0
  738. /package/dist/{block.tk.ld-NJEDKSTU.js.map → block.tk.ld-DF2PI7OO.js.map} +0 -0
  739. /package/dist/{block.tk.menu-LZOY4FKT.js.map → block.tk.menu-L2D5KBIV.js.map} +0 -0
  740. /package/dist/{block.tk.pgv-I3XHJ7VU.js.map → block.tk.pgv-QO56SKBV.js.map} +0 -0
  741. /package/dist/{brainImaging-BGP6VRFV.js.map → brainImaging-NIPQWFWO.js.map} +0 -0
  742. /package/dist/{brainRegions-AAN7LM2Y.js.map → brainRegions-ZNZ2WHSU.js.map} +0 -0
  743. /package/dist/{bubbleHeatmap-HNEU4CYA.js.map → bubbleHeatmap-ERWNEKZB.js.map} +0 -0
  744. /package/dist/{chunk-CDJAHMAN.js.map → chunk-2GYWFQML.js.map} +0 -0
  745. /package/dist/{chunk-ILE6ML2D.js.map → chunk-2HYJ4GDH.js.map} +0 -0
  746. /package/dist/{chunk-VTMJGRT5.js.map → chunk-2MG6XE6R.js.map} +0 -0
  747. /package/dist/{chunk-4C3XRI6J.js.map → chunk-33K5PA52.js.map} +0 -0
  748. /package/dist/{chunk-5QTJUPFS.js.map → chunk-37XDBPOP.js.map} +0 -0
  749. /package/dist/{chunk-3LYZMOLO.js.map → chunk-3EWB3246.js.map} +0 -0
  750. /package/dist/{chunk-2XV6U42J.js.map → chunk-3RSKOPIY.js.map} +0 -0
  751. /package/dist/{chunk-WZUWK5Q6.js.map → chunk-4DPVT4NE.js.map} +0 -0
  752. /package/dist/{chunk-GE4NJDV4.js.map → chunk-4IH7DORZ.js.map} +0 -0
  753. /package/dist/{chunk-W5X6C7LY.js.map → chunk-4QNBFIIR.js.map} +0 -0
  754. /package/dist/{chunk-5HMX4NUJ.js.map → chunk-4STKL6SR.js.map} +0 -0
  755. /package/dist/{chunk-GYGU4UT5.js.map → chunk-4TZIVSL5.js.map} +0 -0
  756. /package/dist/{chunk-LQJMCE7G.js.map → chunk-5ABGFJSP.js.map} +0 -0
  757. /package/dist/{chunk-MTZSN3H4.js.map → chunk-5AZNP47R.js.map} +0 -0
  758. /package/dist/{chunk-KE5B34CS.js.map → chunk-6BB43SIB.js.map} +0 -0
  759. /package/dist/{chunk-53JJ7SXN.js.map → chunk-7OHRR2IE.js.map} +0 -0
  760. /package/dist/{chunk-FDBVAL6K.js.map → chunk-ASATD4T7.js.map} +0 -0
  761. /package/dist/{chunk-25XCVML7.js.map → chunk-B5B3LZB3.js.map} +0 -0
  762. /package/dist/{chunk-L6A2BEXB.js.map → chunk-BHGISFCA.js.map} +0 -0
  763. /package/dist/{chunk-BXGQXLHP.js.map → chunk-BMBOZ64T.js.map} +0 -0
  764. /package/dist/{chunk-IRKP6IZ4.js.map → chunk-BOZJHPJP.js.map} +0 -0
  765. /package/dist/{chunk-IFK24IXL.js.map → chunk-CDD7LYJM.js.map} +0 -0
  766. /package/dist/{chunk-PU2Q4SZR.js.map → chunk-CTQ3IUCA.js.map} +0 -0
  767. /package/dist/{chunk-EPWIJEMK.js.map → chunk-D7TID3HR.js.map} +0 -0
  768. /package/dist/{chunk-5V2BMEAS.js.map → chunk-E55LLYRX.js.map} +0 -0
  769. /package/dist/{chunk-YYFQPGIE.js.map → chunk-ESGXULRH.js.map} +0 -0
  770. /package/dist/{chunk-K5UVG3FQ.js.map → chunk-EZ4LZ6ZT.js.map} +0 -0
  771. /package/dist/{chunk-B4GS7OLB.js.map → chunk-F3SJTVP5.js.map} +0 -0
  772. /package/dist/{chunk-427UL37G.js.map → chunk-F5IXNJO7.js.map} +0 -0
  773. /package/dist/{chunk-ROJ3LJLE.js.map → chunk-FJYECRHW.js.map} +0 -0
  774. /package/dist/{chunk-QKR3ZD3S.js.map → chunk-FPNRUQOU.js.map} +0 -0
  775. /package/dist/{chunk-J6ZOUCWN.js.map → chunk-G764NXQN.js.map} +0 -0
  776. /package/dist/{chunk-I5IPJG2R.js.map → chunk-GAPI4MML.js.map} +0 -0
  777. /package/dist/{chunk-WJGUNGFK.js.map → chunk-HLUZOZXJ.js.map} +0 -0
  778. /package/dist/{chunk-UN3O2MNB.js.map → chunk-HOKIK2FR.js.map} +0 -0
  779. /package/dist/{chunk-VO5XZ2EG.js.map → chunk-KLGL6XZD.js.map} +0 -0
  780. /package/dist/{chunk-PJ3FCJBZ.js.map → chunk-L7IRWUKT.js.map} +0 -0
  781. /package/dist/{chunk-MN3KDNHC.js.map → chunk-LX6G7HJJ.js.map} +0 -0
  782. /package/dist/{chunk-OF5FE6GT.js.map → chunk-M2G5R4WB.js.map} +0 -0
  783. /package/dist/{chunk-EKKQMKQI.js.map → chunk-M4TTGGT4.js.map} +0 -0
  784. /package/dist/{chunk-LYVLF6HO.js.map → chunk-M6EF3WVV.js.map} +0 -0
  785. /package/dist/{chunk-MNIBZTQE.js.map → chunk-M6KHT3MM.js.map} +0 -0
  786. /package/dist/{chunk-F7Y67LK7.js.map → chunk-MCZFHWIR.js.map} +0 -0
  787. /package/dist/{chunk-JNBJG57F.js.map → chunk-MFQACKYU.js.map} +0 -0
  788. /package/dist/{chunk-PZPS56Z6.js.map → chunk-MVGAGTM3.js.map} +0 -0
  789. /package/dist/{chunk-A3URBFXN.js.map → chunk-NELOT3NJ.js.map} +0 -0
  790. /package/dist/{chunk-U3G4JGKJ.js.map → chunk-NRKMXULC.js.map} +0 -0
  791. /package/dist/{chunk-BKPDYW5T.js.map → chunk-NYRZNRG5.js.map} +0 -0
  792. /package/dist/{chunk-WKT46ZJ6.js.map → chunk-ONPKE6DC.js.map} +0 -0
  793. /package/dist/{chunk-QMXCK4Y5.js.map → chunk-PFRWS4CR.js.map} +0 -0
  794. /package/dist/{chunk-6MBTPVIM.js.map → chunk-PJKQUXEN.js.map} +0 -0
  795. /package/dist/{chunk-WZ2U5QXJ.js.map → chunk-Q2L44HK3.js.map} +0 -0
  796. /package/dist/{chunk-VDZ5QOF6.js.map → chunk-RKO6BL5N.js.map} +0 -0
  797. /package/dist/{chunk-A45KH7LP.js.map → chunk-T25QNZHB.js.map} +0 -0
  798. /package/dist/{chunk-LSWU6EAQ.js.map → chunk-U7TBYVIQ.js.map} +0 -0
  799. /package/dist/{chunk-5CR24RTX.js.map → chunk-UGRQXBL4.js.map} +0 -0
  800. /package/dist/{chunk-G3FSS7GR.js.map → chunk-USFSHSCJ.js.map} +0 -0
  801. /package/dist/{chunk-WQCQWUUP.js.map → chunk-VJ6UFVGC.js.map} +0 -0
  802. /package/dist/{chunk-FISP5YN2.js.map → chunk-W3WPPOXH.js.map} +0 -0
  803. /package/dist/{chunk-VRH7NP6R.js.map → chunk-WFCSOTBO.js.map} +0 -0
  804. /package/dist/{chunk-BWQV2OBL.js.map → chunk-WZ2L57MB.js.map} +0 -0
  805. /package/dist/{chunk-CXHLROWX.js.map → chunk-Y4UAKFWC.js.map} +0 -0
  806. /package/dist/{chunk-4O6H4ZHL.js.map → chunk-YQBS2ZCK.js.map} +0 -0
  807. /package/dist/{chunk-7FSIZZOX.js.map → chunk-ZTHM2TKP.js.map} +0 -0
  808. /package/dist/{condition-GVIEMQG7.js.map → condition-2PASYSUC.js.map} +0 -0
  809. /package/dist/{controls-73K3XBDR.js.map → controls-5IMJ6K5L.js.map} +0 -0
  810. /package/dist/{controls.config-FQKY2LRE.js.map → controls.config-P5PG2DHW.js.map} +0 -0
  811. /package/dist/{correlation-AOAXIUFJ.js.map → correlation-U3EDLNHR.js.map} +0 -0
  812. /package/dist/{cuminc-OD2PPCEK.js.map → cuminc-2HUFEROK.js.map} +0 -0
  813. /package/dist/{customdata.inputui-SWLGLATL.js.map → customdata.inputui-ZHWNEPFH.js.map} +0 -0
  814. /package/dist/{dataDownload-456HL2OE.js.map → dataDownload-VBSJBKMP.js.map} +0 -0
  815. /package/dist/{dataDownload.integration.spec-5YS4MWK5.js.map → dataDownload.integration.spec-LUFSETOP.js.map} +0 -0
  816. /package/dist/{databrowser.ui-7APC5MNM.js.map → databrowser.ui-6H2KMSTJ.js.map} +0 -0
  817. /package/dist/{dictionary-A3HA5MVK.js.map → dictionary-V37LXFIP.js.map} +0 -0
  818. /package/dist/{dnaMethylation-6ONBKARD.js.map → dnaMethylation-OIZMHMLK.js.map} +0 -0
  819. /package/dist/{dnaMethylation.integration.spec-T3WEGVX3.js.map → dnaMethylation.integration.spec-CWPTJ74H.js.map} +0 -0
  820. /package/dist/{dofetch-RVPQUMVX.js.map → dofetch-IWPZQB5N.js.map} +0 -0
  821. /package/dist/{e2pca-75WZ46XG.js.map → e2pca-7SLIAGYW.js.map} +0 -0
  822. /package/dist/{ep-QG5CWPTW.js.map → ep-7L6KF6K4.js.map} +0 -0
  823. /package/dist/{expclust.gdc.spec-KBBQJR4M.js.map → expclust.gdc.spec-JT452Q3G.js.map} +0 -0
  824. /package/dist/{facet-QGB2Q7YV.js.map → facet-CXOUU5AS.js.map} +0 -0
  825. /package/dist/{forms2-CJGDCWYH.js.map → forms2-VPNCLQOY.js.map} +0 -0
  826. /package/dist/{gb-NEFAHKQI.js.map → gb-P4VRXRED.js.map} +0 -0
  827. /package/dist/{geneExpClustering-ZVR44UZC.js.map → geneExpClustering-FQTCKRJJ.js.map} +0 -0
  828. /package/dist/{geneExpression-25EX4DFK.js.map → geneExpression-BHO5326K.js.map} +0 -0
  829. /package/dist/{geneExpression-FALOA4GC.js.map → geneExpression-ZMERB64E.js.map} +0 -0
  830. /package/dist/{geneExpression.unit.spec-BQLELQUS.js.map → geneExpression.unit.spec-CNVHZWNG.js.map} +0 -0
  831. /package/dist/{geneORA-K2B7JYWD.js.map → geneORA-FXVUCXGX.js.map} +0 -0
  832. /package/dist/{geneRanking-6AXL5ZJS.js.map → geneRanking-SFK4UBKQ.js.map} +0 -0
  833. /package/dist/{geneVariant-RZFDP5J5.js.map → geneVariant-IYEHB4H7.js.map} +0 -0
  834. /package/dist/{geneVariant-UIBZ5UIQ.js.map → geneVariant-LIRRLUFR.js.map} +0 -0
  835. /package/dist/{geneVariant.integration.spec-4EZQMPQB.js.map → geneVariant.integration.spec-Y2NPNTYX.js.map} +0 -0
  836. /package/dist/{genefusion.ui-YK4TNS2P.js.map → genefusion.ui-L3HIJM3N.js.map} +0 -0
  837. /package/dist/{geneset-47J4D5ID.js.map → geneset-A6VUFX63.js.map} +0 -0
  838. /package/dist/{genomeBrowser.spec-LFFWRIWG.js.map → genomeBrowser.spec-CB4HHHBN.js.map} +0 -0
  839. /package/dist/{grin2-DQB2WW3C.js.map → grin2-FKBIMH5N.js.map} +0 -0
  840. /package/dist/{gsea-KKLAMLMG.js.map → hierCluster-QFPRMHVA.js.map} +0 -0
  841. /package/dist/{hierCluster-3MZEJG6B.js.map → hierCluster-YWC3XYPV.js.map} +0 -0
  842. /package/dist/{hierCluster-YGBC4XCZ.js.map → hierCluster.config-F7YYZNM3.js.map} +0 -0
  843. /package/dist/{hierCluster.integration.spec-GLKXFZDM.js.map → hierCluster.integration.spec-AF4L3YT6.js.map} +0 -0
  844. /package/dist/{hierCluster.config-A4N54K3A.js.map → hierCluster.interactivity-RPY74PK6.js.map} +0 -0
  845. /package/dist/{hierCluster.interactivity-4TPWGIVC.js.map → hierCluster.renderers-LOKHZ3V2.js.map} +0 -0
  846. /package/dist/{imagePlot-JRPYOV3Q.js.map → imagePlot-BBEXA754.js.map} +0 -0
  847. /package/dist/{hierCluster.renderers-WUWSXXHU.js.map → importPlot-7QGANZGK.js.map} +0 -0
  848. /package/dist/{importPlot-A3PFUP6K.js.map → isoformExpression-4SLLCVFD.js.map} +0 -0
  849. /package/dist/{isoformExpression.unit.spec-SLB6XIX4.js.map → isoformExpression.unit.spec-GEL4JJ64.js.map} +0 -0
  850. /package/dist/{isoformExpression-5L4O3WKL.js.map → launch.adhoc-LWLBQJS5.js.map} +0 -0
  851. /package/dist/{leftlabel.sample-OSIRTJFW.js.map → leftlabel.sample-RTEZOIH2.js.map} +0 -0
  852. /package/dist/{legacyDataset-TNIIJABK.js.map → legacyDataset-VLD7ZYWI.js.map} +0 -0
  853. /package/dist/{lollipop-LAELXNQY.js.map → lollipop-XKQK5QZU.js.map} +0 -0
  854. /package/dist/{maf-HZAYVZFO.js.map → maf-AZQPPWDO.js.map} +0 -0
  855. /package/dist/{maftimeline-BLBNUGAL.js.map → maftimeline-7MSVYKQU.js.map} +0 -0
  856. /package/dist/{launch.adhoc-QI7TPYSC.js.map → matrix-BGLWC25D.js.map} +0 -0
  857. /package/dist/{matrix-LVJSHXDM.js.map → matrix-IQR5SRMK.js.map} +0 -0
  858. /package/dist/{matrix-S5QQV4JU.js.map → matrix.cells-5C57NWOY.js.map} +0 -0
  859. /package/dist/{matrix.cells-JUTRYPG4.js.map → matrix.config-2DQXAN2E.js.map} +0 -0
  860. /package/dist/{matrix.config-ZTWWYNIZ.js.map → matrix.data-ADCGF5H6.js.map} +0 -0
  861. /package/dist/{matrix.data-BREYB54F.js.map → matrix.groups-V4ITQ5F7.js.map} +0 -0
  862. /package/dist/{matrix.groups-WMHTLOXC.js.map → matrix.interactivity-JNELJFOV.js.map} +0 -0
  863. /package/dist/{matrix.interactivity-TMBVAM5M.js.map → matrix.layout-WBVIV6GR.js.map} +0 -0
  864. /package/dist/{matrix.layout-POK5NOUV.js.map → matrix.legend-YHOWPK77.js.map} +0 -0
  865. /package/dist/{matrix.legend-6XVQ67AC.js.map → matrix.renderers-5BGVRR3M.js.map} +0 -0
  866. /package/dist/{matrix.renderers-G5FQZZ73.js.map → matrix.serieses-2GZJOASZ.js.map} +0 -0
  867. /package/dist/{matrix.serieses-XNLQSQS6.js.map → matrix.sort-WKIWPJKP.js.map} +0 -0
  868. /package/dist/{matrix.sort.unit.spec-65BDBQUV.js.map → matrix.sort.unit.spec-L2E4D4AS.js.map} +0 -0
  869. /package/dist/{matrix.sort-XNES23OQ.js.map → matrix.sorterUi-TEJWWJ64.js.map} +0 -0
  870. /package/dist/{matrix.sorterUi.unit.spec-GZQBW7F7.js.map → matrix.sorterUi.unit.spec-SHP7C4P7.js.map} +0 -0
  871. /package/dist/{mavb-T2UCRWWM.js.map → mavb-4MXNYUEO.js.map} +0 -0
  872. /package/dist/{mds.fimo-65UUK7ER.js.map → mds.fimo-WHIJIBOI.js.map} +0 -0
  873. /package/dist/{mds.samplescatterplot-4NHGQBJF.js.map → mds.samplescatterplot-BRJ6NG2D.js.map} +0 -0
  874. /package/dist/{mds.survivalplot-WVAHDM3Z.js.map → mds.survivalplot-OPCMB5PB.js.map} +0 -0
  875. /package/dist/{numericDictTermCluster-CXASCSQ6.js.map → numericDictTermCluster-7MIFOP2K.js.map} +0 -0
  876. /package/dist/{oncomatrix-5WMOICWR.js.map → oncomatrix-BGG6BEUI.js.map} +0 -0
  877. /package/dist/{oncomatrix.spec-POVBNFJR.js.map → oncomatrix.spec-LYQ4L4F3.js.map} +0 -0
  878. /package/dist/{plot.2dvaf-63K5RSIU.js.map → plot.2dvaf-6WVCP2ZI.js.map} +0 -0
  879. /package/dist/{matrix.sorterUi-WC2YX7S7.js.map → plot.app-MLBP6WFP.js.map} +0 -0
  880. /package/dist/{plot.barplot-IQTYHNFE.js.map → plot.barplot-JEPRZSCU.js.map} +0 -0
  881. /package/dist/{plot.boxplot-2RMTO7AS.js.map → plot.boxplot-GNFW42VM.js.map} +0 -0
  882. /package/dist/{plot.brainImaging-DLUHAHHG.js.map → plot.brainImaging-5ACNSD45.js.map} +0 -0
  883. /package/dist/{plot.disco-WK6GDLNF.js.map → plot.disco-Q2V2KKIH.js.map} +0 -0
  884. /package/dist/{plot.dzi-3V3FWE7U.js.map → plot.dzi-KVT6S7K7.js.map} +0 -0
  885. /package/dist/{plot.ssgq-TENK2RP4.js.map → plot.ssgq-4N3KFJQ2.js.map} +0 -0
  886. /package/dist/{plot.vaf2cov-P2QOOZGZ.js.map → plot.vaf2cov-ITRG5U43.js.map} +0 -0
  887. /package/dist/{plot.wsi-BVRGJF4E.js.map → plot.wsi-26YZNU4V.js.map} +0 -0
  888. /package/dist/{polar2-NNOZOQQJ.js.map → polar2-J7GVUK4X.js.map} +0 -0
  889. /package/dist/{profileForms-RS4GEZZV.js.map → profileForms-VXV2JLXU.js.map} +0 -0
  890. /package/dist/{plot.app-V5IY25QS.js.map → profilePlot-ZZYZK4SY.js.map} +0 -0
  891. /package/dist/{proteinView-NPKJAQAI.js.map → proteinView-7KN532D3.js.map} +0 -0
  892. /package/dist/{profilePlot-3DLME3NH.js.map → qualitative-MLRVLIAU.js.map} +0 -0
  893. /package/dist/{radar2-EX7YBNMT.js.map → radar2-WM2ZBOH3.js.map} +0 -0
  894. /package/dist/{radarFacility2-WU5O6O77.js.map → radarFacility2-3SBR2JJ3.js.map} +0 -0
  895. /package/dist/{qualitative-S45RXXRJ.js.map → regression-WMRPQJW2.js.map} +0 -0
  896. /package/dist/{regression-7MCOYJVD.js.map → regression.inputs-VWZKSYNY.js.map} +0 -0
  897. /package/dist/{regression.inputs-QHSWJ23R.js.map → regression.inputs.term-OWE6GWHM.js.map} +0 -0
  898. /package/dist/{regression.inputs.term-EJ4Z5Q5O.js.map → regression.inputs.values.table-4INNZQI2.js.map} +0 -0
  899. /package/dist/{regression.integration.spec-XOX7OXXA.js.map → regression.integration.spec-XKQ2JOOT.js.map} +0 -0
  900. /package/dist/{regression.inputs.values.table-YKMAWNXN.js.map → regression.results-VZBYMBYC.js.map} +0 -0
  901. /package/dist/{regression.spec-YIIY2AZA.js.map → regression.spec-DU3UTDCJ.js.map} +0 -0
  902. /package/dist/{regression.results-YKPOTPCC.js.map → render-N5FOF247.js.map} +0 -0
  903. /package/dist/{report-JEJFCWUU.js.map → report-DW3OHB67.js.map} +0 -0
  904. /package/dist/{sampleScatter.spec-LBAZBDYA.js.map → sampleScatter.spec-REFSK2V4.js.map} +0 -0
  905. /package/dist/{sampleView-WKZT5ZFE.js.map → sampleView-ICOT2R6O.js.map} +0 -0
  906. /package/dist/{samplelst-HXM3H6M4.js.map → samplelst-TJEVASYG.js.map} +0 -0
  907. /package/dist/{samplematrix-LCGHK2EK.js.map → samplematrix-6DAWCXQ3.js.map} +0 -0
  908. /package/dist/{sc-3OE2G4BU.js.map → sc-53LNOB7N.js.map} +0 -0
  909. /package/dist/{scatter-AGVUDTTU.js.map → scatter-DKYSS4DL.js.map} +0 -0
  910. /package/dist/{selectGenomeWithTklst-WF2XZ6GH.js.map → selectGenomeWithTklst-WTX66TV3.js.map} +0 -0
  911. /package/dist/{singleCellCellType-2SRGROMS.js.map → singleCellCellType-D2CN2BHQ.js.map} +0 -0
  912. /package/dist/{singleCellCellType.unit.spec-DCGHNRJI.js.map → singleCellCellType.unit.spec-LADUCI4R.js.map} +0 -0
  913. /package/dist/{singleCellGeneExpression-RASZA4NO.js.map → singleCellGeneExpression-YR2ZT34W.js.map} +0 -0
  914. /package/dist/{singleCellGeneExpression.unit.spec-5MRGH2OO.js.map → singleCellGeneExpression.unit.spec-BM63M432.js.map} +0 -0
  915. /package/dist/{singleCellPlot-TIYA3GNM.js.map → singleCellPlot-3ICIOILE.js.map} +0 -0
  916. /package/dist/{singlecell-JS5SIZHY.js.map → singlecell-6ZUFA3BQ.js.map} +0 -0
  917. /package/dist/{singlecell-CFA43TTU.js.map → singlecell-KX7W4U57.js.map} +0 -0
  918. /package/dist/{snp-VXZXPMKS.js.map → snp-VIURB7L3.js.map} +0 -0
  919. /package/dist/{snp.unit.spec-TR5TCO7X.js.map → snp.unit.spec-ACZNZUNS.js.map} +0 -0
  920. /package/dist/{snplocus-VLPH5Y65.js.map → snplocus-3LW4ZUZR.js.map} +0 -0
  921. /package/dist/{spliceevent.a53ss.diagram-PATK67SH.js.map → spliceevent.a53ss.diagram-AKTZGWNM.js.map} +0 -0
  922. /package/dist/{spliceevent.noeventdiagram-4NPNZUEN.js.map → spliceevent.noeventdiagram-YTXWWNTJ.js.map} +0 -0
  923. /package/dist/{ssGSEA-XMW5BLAU.js.map → ssGSEA-THW4WFMI.js.map} +0 -0
  924. /package/dist/{ssGSEA.unit.spec-ASUWKVUT.js.map → ssGSEA.unit.spec-HTRGQI2K.js.map} +0 -0
  925. /package/dist/{summarizeCnvGeneexp-KWRFGX32.js.map → summarizeCnvGeneexp-RFYC3H2Z.js.map} +0 -0
  926. /package/dist/{summarizeGeneexpSurvival-FIPIMEJR.js.map → summarizeGeneexpSurvival-DQBZUTQ6.js.map} +0 -0
  927. /package/dist/{summarizeMutationCnv-IUYRVLZG.js.map → summarizeMutationCnv-7AYEMHAI.js.map} +0 -0
  928. /package/dist/{summarizeMutationDiagnosis-ZFJPCABL.js.map → summarizeMutationDiagnosis-AKFJDSAF.js.map} +0 -0
  929. /package/dist/{summarizeMutationSurvival-HFHYB7DT.js.map → summarizeMutationSurvival-QJHZRQBZ.js.map} +0 -0
  930. /package/dist/{summary-AZUNEZ5I.js.map → summary-A5P7AYK4.js.map} +0 -0
  931. /package/dist/{summary.integration.spec-WLBAJL44.js.map → summary.integration.spec-HQISXGNL.js.map} +0 -0
  932. /package/dist/{summaryInput-NJWVXDXW.js.map → summaryInput-HP675QOQ.js.map} +0 -0
  933. /package/dist/{sunburst-PXGF4WM6.js.map → sunburst-65LSYRXX.js.map} +0 -0
  934. /package/dist/{survival-ZZ4QLZHK.js.map → survival-QNEI6YVK.js.map} +0 -0
  935. /package/dist/{survival-RAU4XCKG.js.map → survival-UI74VXSM.js.map} +0 -0
  936. /package/dist/{svgraph-7UCFRL6A.js.map → svgraph-PSX2NER3.js.map} +0 -0
  937. /package/dist/{svmr-DB3RY2ID.js.map → svmr-QDQ33EFX.js.map} +0 -0
  938. /package/dist/{table-HJRWWXGM.js.map → table-LWAI27UO.js.map} +0 -0
  939. /package/dist/{termCollection-WPON7RG3.js.map → termCollection-3JHR74FG.js.map} +0 -0
  940. /package/dist/{termCollection-AW7M6DTP.js.map → termCollection-CDF5LYUG.js.map} +0 -0
  941. /package/dist/{termCollection.unit.spec-254ESHOE.js.map → termCollection.unit.spec-HOJKYWHF.js.map} +0 -0
  942. /package/dist/{tk-SUAFM5YA.js.map → tk-OEQFO73V.js.map} +0 -0
  943. /package/dist/{tp.ui-ELEQGSK2.js.map → tp.ui-SHNERDGC.js.map} +0 -0
  944. /package/dist/{tvs.dt-DCXY66YY.js.map → tvs.dt-CZDC4TSR.js.map} +0 -0
  945. /package/dist/{tvs.dtcnv.categorical-SFQZMYX7.js.map → tvs.dtcnv.categorical-OPBDHZGB.js.map} +0 -0
  946. /package/dist/{tvs.dtcnv.continuous-AUZNJMC3.js.map → tvs.dtcnv.continuous-AR6P4EP3.js.map} +0 -0
  947. /package/dist/{tvs.dtfusion-5F7MYFHZ.js.map → tvs.dtfusion-2YQ7N6FQ.js.map} +0 -0
  948. /package/dist/{tvs.dtsnvindel-JJSPL4PH.js.map → tvs.dtsnvindel-WHHWAATJ.js.map} +0 -0
  949. /package/dist/{tvs.dtsv-DARTSV5H.js.map → tvs.dtsv-3UMCW65O.js.map} +0 -0
  950. /package/dist/{tvs.numeric-KYAU5OV3.js.map → tvs.numeric-TOEPASWN.js.map} +0 -0
  951. /package/dist/{tvs.samplelst-HHBIO26C.js.map → tvs.samplelst-M7XKXRTZ.js.map} +0 -0
  952. /package/dist/{tvs.termCollection-KCMALH6B.js.map → tvs.termCollection-WT4WZMYR.js.map} +0 -0
  953. /package/dist/{violin-C26FW5WK.js.map → violin-2YGXTBDS.js.map} +0 -0
  954. /package/dist/{violin.integration.spec-QQ43XWHQ.js.map → violin.integration.spec-YWNHVAGS.js.map} +0 -0
  955. /package/dist/{violin.interactivity-H2BHC6M4.js.map → violin.interactivity-J6BE2UQL.js.map} +0 -0
  956. /package/dist/{violin.renderer-GSG2I7AV.js.map → violin.renderer-3GRUWP2U.js.map} +0 -0
  957. /package/dist/{vocabulary-3G525O5V.js.map → vocabulary-2INCVPYJ.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../plots/grin2/model/GRIN2Model.ts", "../plots/grin2/viewModel/GRIN2ViewModel.ts", "../plots/manhattan/manhattan.ts", "../plots/grin2/view/GRIN2ResultsView.ts", "../plots/grin2/settings/defaults.ts", "../plots/grin2/view/GRIN2ControlsView.ts", "../plots/grin2/grin2.ts"],
4
+ "sourcesContent": ["import type { GRIN2RequestData, GRIN2Response } from '../GRIN2Types'\n\n/** Server-interaction layer for the GRIN2 plot.\n * Wraps the vocabApi getter so the controller stays free of fetch concerns. */\nexport class GRIN2Model {\n\tprivate vocabApi: any\n\n\tconstructor(vocabApi: any) {\n\t\tthis.vocabApi = vocabApi\n\t}\n\n\tasync fetchGrin2Data(requestData: GRIN2RequestData, signal?: AbortSignal): Promise<GRIN2Response> {\n\t\treturn this.vocabApi.getGrin2Data(requestData, signal)\n\t}\n}\n", "import { dt2lesion } from '#shared/common.js'\nimport type { GRIN2Response, GRIN2ViewData, DtUsage } from '../GRIN2Types'\n\n/** Transforms a GRIN2 server response into display-ready ViewData.\n * All conditional shaping (significance circles, header text)\n * lives here so the View stays a thin renderer. */\nexport class GRIN2ViewModel {\n\tviewData: GRIN2ViewData\n\n\tconstructor(response: GRIN2Response, manhattanSettings: any, dtUsage: DtUsage) {\n\t\tthis.viewData = {\n\t\t\tmanhattan: response.pngImg ? { plotData: response, settings: manhattanSettings } : null,\n\t\t\ttopGenes: this.buildTopGenes(response, manhattanSettings, dtUsage),\n\t\t\tstatsSections: response.stats?.lst || []\n\t\t}\n\t}\n\n\tprivate buildTopGenes(response: GRIN2Response, manhattanSettings: any, dtUsage: DtUsage): GRIN2ViewData['topGenes'] {\n\t\tif (!response.topGeneTable || !response.stats?.lst) return null\n\n\t\t// \"showing N of M\": N = genes actually in the table, M = total genes GRIN tested. Look up the\n\t\t// total-genes cell by label rather than positional index (rows[0]) so reordering the Summary\n\t\t// rows can't silently turn this into a wrong/sample count.\n\t\tconst totalGenes = response.stats.lst[0].rows.find((r: any) => r[0] === 'Total Genes')?.[1] ?? '?'\n\t\tconst headerText = `Top Genes (showing ${response.topGeneTable.rows.length.toLocaleString()} of ${totalGenes})`\n\n\t\tconst qValueEntries = this.buildQValueEntries(response.topGeneTable.columns, dtUsage)\n\t\tconst lesionTypeCircleCache = this.buildCircleCache(manhattanSettings.lesionTypeColors)\n\t\tconst qValueThreshold = manhattanSettings.qValueThreshold\n\n\t\tconst rows = response.topGeneTable.rows.map((row: any) => {\n\t\t\tconst circles = qValueEntries\n\t\t\t\t.filter(({ colIndex }) => {\n\t\t\t\t\tconst qValue = row[colIndex]?.value\n\t\t\t\t\treturn typeof qValue === 'number' && qValue < qValueThreshold\n\t\t\t\t})\n\t\t\t\t.map(({ type }) => lesionTypeCircleCache.get(type)!)\n\t\t\treturn [{ value: '', html: circles.join('') }, ...row]\n\t\t})\n\n\t\treturn {\n\t\t\theaderText,\n\t\t\tcolumns: [{ label: '', width: '20px' }, ...response.topGeneTable.columns],\n\t\t\trows,\n\t\t\tdataItems: response.topGeneTable.rows\n\t\t}\n\t}\n\n\tprivate buildQValueEntries(columns: { label: string }[], dtUsage: DtUsage): { colIndex: number; type: string }[] {\n\t\tconst dtMapping: Record<string, { col: string; type: string }[]> = {}\n\t\tObject.entries(dt2lesion).forEach(([dt, cfg]: [string, any]) => {\n\t\t\tdtMapping[dt] = cfg.lesionTypes.map((lt: any) => ({\n\t\t\t\tcol: `Q-value (${lt.name})`,\n\t\t\t\ttype: lt.lesionType\n\t\t\t}))\n\t\t})\n\n\t\tconst entries: { colIndex: number; type: string }[] = []\n\t\tObject.entries(dtUsage).forEach(([key, info]: [string, any]) => {\n\t\t\t// dtUsage values may be either { checked: bool } objects or bare booleans depending on call site\n\t\t\tconst isChecked = typeof info === 'object' ? info?.checked : !!info\n\t\t\tif (isChecked && dtMapping[key]) {\n\t\t\t\tdtMapping[key].forEach(({ col, type }) => {\n\t\t\t\t\tconst colIndex = columns.findIndex(c => c.label === col)\n\t\t\t\t\tif (colIndex !== -1) entries.push({ colIndex, type })\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t\treturn entries\n\t}\n\n\tprivate buildCircleCache(lesionTypeColors: Record<string, string>): Map<string, string> {\n\t\treturn new Map(\n\t\t\tObject.entries(lesionTypeColors).map(([type, color]) => [\n\t\t\t\ttype,\n\t\t\t\t`<span style=\"display:inline-block;width:8px;height:8px;border-radius:50%;background-color:${color};margin-right:3px;\"></span>`\n\t\t\t])\n\t\t)\n\t}\n}\n", "import { scaleLinear } from 'd3-scale'\nimport * as d3axis from 'd3-axis'\nimport { select } from 'd3-selection'\nimport {\n\tMenu,\n\ticons,\n\taxisstyle,\n\ttable2col,\n\tshowResultsTable,\n\tcreateLollipopFromGene,\n\tDataPointInteractions\n} from '#dom'\nimport { to_svg } from '#src/client'\nimport type { ManhattanPoint } from './manhattanTypes'\n\n/**\n * Creates an interactive Manhattan plot on top of a PNG background plot image.\n *\n * @param {Object} div - div element to contain the plot\n * @param {Object} data - Plot data\n * @param {Object} settings - Display configuration options:\n * @param {number} [settings.plotWidth=500] - Plot area width\n * @param {number} [settings.plotHeight=200] - Plot area height\n * @param {boolean} [settings.showLegend=true] - Whether to display legend\n * @param {boolean} [settings.showDownload=true] - Whether to show download button\n * @param {boolean} [settings.showInteractiveDots=true] - Whether to show hoverable data points\n * @param {number} [settings.yAxisX=70] - Y-axis positioning\n * @param {number} [settings.yAxisSpace=40] - Space between Y-axis and plot\n * @param {number} [settings.yAxisY=40] - Top margin\n * @param {number} [settings.fontSize=12] - Base font size\n * @param {number} [settings.pngDotRadius=2] - Radius of dots in PNG plot\n * @param {number} [settings.legendItemWidth=80] - Horizontal space per legend item\n * @param {number} [settings.legendDotRadius=3] - Size of legend dots\n * @param {number} [settings.legendRightOffset=15] - Offset from right edge\n * @param {number} [settings.legendTextOffset=12] - Distance between dot and text\n * @param {number} [settings.legendVerticalOffset=4] - Vertical offset for legend items\n * @param {number} [settings.legendFontSize=12] - Font size for legend text\n * @param {number} [settings.interactiveDotRadius=2] - Radius of interactive dots\n * @param {number} [settings.xAxisLabelPad=20] - Amount of padding we give for x-axis title padding\n * @param {number} [settings.interactiveDotStrokeWidth=1] - Stroke width for interactive dots\n * @param {string} [settings.axisColor='#545454'] - Color for y-axis\n * @param {boolean} [settings.showYAxisLine=true] - Whether to show y-axis line\n * @param {number} [settings.interactiveDotsCap=5000] - Interactive dots cap\n * @param {number} [settings.maxTooltipGenes=5] - Maximum number of genes to show in tooltip\n * @param {Object} [app] - Optional app context for dispatching events\n *\n *\n * @description\n * Renders a genomic Manhattan plot by overlaying interactive elements on the base PNG plot image.\n * Features include chromosome labels, legend, hoverable data points with tooltips,\n * and proper axis scaling. The plot combines a static PNG plot image of all points with dynamic SVG elements\n * including axes, labels, legend, and top genes (represented as interactive dots) for detailed information on hover.\n */\n\nexport function plotManhattan(div: any, data: any, settings: any, app?: any) {\n\t// Get our settings\n\tsettings = {\n\t\t...settings\n\t}\n\n\t// Check size of interactive data\n\tlet interactivePoints = data.plotData.points\n\tif (data.plotData.points.length > settings.interactiveDotsCap) {\n\t\t// Sort points by y value (-log10(q-value)) descending and take top N up to interactiveDotsCap\n\t\tinteractivePoints = data.plotData.points.sort((a: any, b: any) => b.y - a.y).slice(0, settings.interactiveDotsCap)\n\t}\n\n\t// Set the positioning up for download button to work properly\n\tdiv.style('position', 'relative')\n\n\t// Hover tooltip menu \u2014 DataPointInteractions writes into this on hover.\n\tconst geneTip = new Menu({ padding: '' })\n\n\tconst svg = div\n\t\t.append('svg')\n\t\t.attr('data-testid', 'sjpp-manhattan')\n\t\t.attr('width', settings.plotWidth + 2 * settings.pngDotRadius + settings.yAxisX + settings.yAxisSpace)\n\t\t.attr('height', settings.plotHeight + 2 * settings.pngDotRadius + settings.yAxisY * 4) // Extra space for x-axis labels, legend, and title\n\n\t// Add y-axis\n\t// yPlot \u2192 full padded scale, aligns exactly with PNG coordinates\n\t// yAxisScale \u2192 trimmed scale for axis labels, ignores PNG padding\n\t// --- Y-Axis Setup ---\n\t// This section builds two linked scales:\n\t//\n\t// 1) yPlot \u2192 full PNG-aligned scale (includes padding added by Rust)\n\t// 2) yAxisScale \u2192 visual axis scale (no padding; shows only real data values)\n\t//\n\t// The reason for two scales is that the PNG image itself was rendered\n\t// with top/bottom padding for dot radius. We need one scale to stay\n\t// pixel-perfect with the PNG (for dots, overlays, etc.), and another\n\t// scale to make the visible y-axis line up only with the *real* data region.\n\n\t// 1) yPlot: true positioning scale used for all pixel-aligned elements\n\t// - Domain = padded range from Rust (includes buffer above/below real data)\n\t// - Range = full PNG pixel height (0 is top, png_height is bottom)\n\tconst yPlot = scaleLinear()\n\t\t.domain([data.plotData.y_min, data.plotData.y_max]) // padded domain from Rust\n\t\t.range([settings.plotHeight + 2 * settings.pngDotRadius, 0]) // full PNG height\n\n\t// 2) yAxisScale: used only for the visible axis labels/ticks\n\t// - Domain = true data values (no padding)\n\t// - Range = subset of pixel space between yPlot(0) and yPlot(realMax [data.plotData.y_max - data.plotData.png_dot_radius])\n\t// so the axis sits entirely within the real data area\n\tconst yAxisScale = scaleLinear()\n\t\t.domain([0, data.plotData.y_max - settings.pngDotRadius])\n\t\t.range([yPlot(0), yPlot(data.plotData.y_max - settings.pngDotRadius)])\n\n\t// Axis group\n\tconst axisG = svg\n\t\t.append('g')\n\t\t.attr('transform', `translate(${settings.yAxisX + settings.yAxisSpace - settings.yAxisPad},${settings.yAxisY})`)\n\n\taxisG.call(\n\t\td3axis.axisLeft(yAxisScale).tickSizeOuter(0) // removes top/bottom cap lines for clean look\n\t)\n\n\taxisstyle({\n\t\taxis: axisG,\n\t\tcolor: settings.axisColor,\n\t\tfontsize: settings.fontSize + 2,\n\t\tshowline: settings.showYAxisLine\n\t})\n\n\t// Add y-axis label\n\tsvg\n\t\t.append('text')\n\t\t.attr('x', -((settings.plotHeight + 2 * settings.pngDotRadius) / 2) - settings.yAxisY)\n\t\t.attr('y', settings.yAxisX / 2)\n\t\t.attr('transform', 'rotate(-90)')\n\t\t.attr('text-anchor', 'middle')\n\t\t.attr('font-size', `${settings.fontSize + 4}px`)\n\t\t.attr('fill', 'black')\n\t\t.text(data.plotData.has_capped_points ? '-log\u2081\u2080(q-value) [capped]' : '-log\u2081\u2080(q-value)')\n\n\t// Add png image\n\tsvg\n\t\t.append('image')\n\t\t.attr('transform', `translate(${settings.yAxisX + settings.yAxisSpace},${settings.yAxisY})`)\n\t\t.attr('width', settings.plotWidth + 2 * settings.pngDotRadius)\n\t\t.attr('height', settings.plotHeight + 2 * settings.pngDotRadius)\n\t\t.attr('href', `data:image/png;base64,${data.pngImg || data.png}`)\n\n\t// Create scales for positioning elements\n\tconst xScale = scaleLinear()\n\t\t.domain([-data.plotData.x_buffer, data.plotData.total_genome_length + data.plotData.x_buffer])\n\t\t.range([0, settings.plotWidth + 2 * settings.pngDotRadius])\n\n\t// Add interactive dots layer\n\tif (settings.showInteractiveDots && data.plotData.points && data.plotData.points.length > 0) {\n\t\t// Hover-ring layer \u2014 `pointer-events: none` so rings never intercept clicks.\n\t\tconst hoverLayer = svg\n\t\t\t.append('g')\n\t\t\t.attr('transform', `translate(${settings.yAxisX + settings.yAxisSpace},${settings.yAxisY})`)\n\t\t\t.style('pointer-events', 'none')\n\n\t\t// Cover as a sibling HTML div positioned over the plot area \u2014 avoids\n\t\t// the mouse-event quirks of nesting inside SVG.\n\t\tconst cover = select(svg.node().parentNode as HTMLElement)\n\t\t\t.append('div')\n\t\t\t.style('position', 'absolute')\n\t\t\t.style('left', `${settings.yAxisX + settings.yAxisSpace}px`)\n\t\t\t.style('top', `${settings.yAxisY}px`)\n\t\t\t.style('width', `${settings.plotWidth + 2 * settings.pngDotRadius}px`)\n\t\t\t.style('height', `${settings.plotHeight + 2 * settings.pngDotRadius}px`)\n\t\t\t.style('pointer-events', 'all')\n\n\t\t// Circle as an SVG path so it flows through the generic `drawHoverShapes`.\n\t\tconst circlePath = (r: number) => `M${r},0 A${r},${r} 0 1,1 ${-r},0 A${r},${r} 0 1,1 ${r},0 Z`\n\n\t\tconst interactions = new DataPointInteractions<ManhattanPoint>({\n\t\t\tcover,\n\t\t\thoverLayer,\n\t\t\thoverTip: geneTip,\n\t\t\tpoints: interactivePoints,\n\t\t\tgetX: d => d.pixel_x,\n\t\t\tgetY: d => d.pixel_y,\n\t\t\thitRadius: settings.pngDotRadius + 3,\n\t\t\ttoHoverSpec: d => ({\n\t\t\t\tpath: circlePath(settings.pngDotRadius),\n\t\t\t\ttransform: `translate(${d.pixel_x},${d.pixel_y})`,\n\t\t\t\tfill: 'none',\n\t\t\t\tstroke: 'black',\n\t\t\t\tstrokeWidth: settings.interactiveDotStrokeWidth\n\t\t\t}),\n\t\t\tmaxTooltipRows: settings.maxTooltipGenes,\n\t\t\titemNoun: 'gene',\n\t\t\trenderSingleHoverTooltip: (d, container) => {\n\t\t\t\tconst table = table2col({ holder: container.append('div'), margin: '10px' })\n\t\t\t\ttable.addRow('Gene', d.gene)\n\t\t\t\ttable.addRow('Position', `${d.chrom}:${d.start}-${d.end}`)\n\t\t\t\tconst [t1, t2] = table.addRow()\n\t\t\t\tt1.text('Type')\n\t\t\t\tt2.html(`<span style=\"color:${d.color}\">\u25CF</span> ${d.type.charAt(0).toUpperCase() + d.type.slice(1)}`)\n\t\t\t\ttable.addRow('Q-value', d.q_value.toPrecision(3))\n\t\t\t\ttable.addRow('Subject count', d.nsubj)\n\t\t\t},\n\t\t\tbuildMultiHitTableData: dots => ({\n\t\t\t\tcolumns: [\n\t\t\t\t\t{ label: 'Gene' },\n\t\t\t\t\t{ label: 'Position' },\n\t\t\t\t\t{ label: 'Type' },\n\t\t\t\t\t{ label: 'Q-value', sortable: true },\n\t\t\t\t\t{ label: 'Subject count', sortable: true }\n\t\t\t\t],\n\t\t\t\trows: dots.map(d => [\n\t\t\t\t\t{ value: d.gene },\n\t\t\t\t\t{ value: `${d.chrom}:${d.start}-${d.end}` },\n\t\t\t\t\t{\n\t\t\t\t\t\thtml: `<span style=\"color:${d.color}\">\u25CF</span> ${d.type.charAt(0).toUpperCase() + d.type.slice(1)}`\n\t\t\t\t\t},\n\t\t\t\t\t{ value: d.q_value.toPrecision(3) },\n\t\t\t\t\t{ value: d.nsubj }\n\t\t\t\t])\n\t\t\t}),\n\t\t\t// Manhattan single-click goes straight to a lollipop launch \u2014 no menu.\n\t\t\t// Release hover-suppression immediately so the cursor's next move re-engages.\n\t\t\tonSingleClick: (d, _event, ctx) => {\n\t\t\t\tctx.dismiss()\n\t\t\t\tif (app) createLollipopFromGene(d.gene, app)\n\t\t\t},\n\t\t\t// Manhattan multi-click shows showResultsTable directly with `app + clickMenu`\n\t\t\t// so the table renders inline Matrix/Lollipop buttons. Reuses the module's\n\t\t\t// clickMenu so its onHide cleanup (clear flag, clear hover) fires on dismiss.\n\t\t\t// Content is built BEFORE show2 so Menu can measure the populated rect for\n\t\t\t// its right-edge clamp \u2014 otherwise the wide table is placed at cursor+offsetX\n\t\t\t// and extends off the right edge of the viewport.\n\t\t\tonMultiClick: (dots, event, ctx) => {\n\t\t\t\tif (!app) {\n\t\t\t\t\tctx.dismiss()\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tctx.clickMenu.clear()\n\t\t\t\tconst holder = ctx.clickMenu.d.append('div').style('margin', '10px')\n\t\t\t\tshowResultsTable({ tableDiv: holder, hits: dots, app, clickMenu: ctx.clickMenu })\n\t\t\t\tctx.clickMenu.show2(event.clientX, event.clientY)\n\t\t\t}\n\t\t})\n\n\t\tinteractions.attach()\n\t}\n\n\t// Add chromosome labels\n\tif (data.plotData.chrom_data) {\n\t\tconst chromLabelY = settings.plotHeight + 2 * settings.pngDotRadius + settings.yAxisY + 10\n\n\t\tObject.entries(data.plotData.chrom_data).forEach(([chrom, chromData]: [string, any]) => {\n\t\t\tconst chromLabel = chrom.replace('chr', '')\n\n\t\t\t// Skip chrM\n\t\t\tif (chromLabel === 'M') return\n\n\t\t\t// Calculate center position for label\n\t\t\tconst centerPos = settings.yAxisX + settings.yAxisSpace + xScale(chromData.center)\n\n\t\t\t// Append chromosome label\n\t\t\tsvg\n\t\t\t\t.append('text')\n\t\t\t\t.attr('x', centerPos)\n\t\t\t\t.attr('y', chromLabelY)\n\t\t\t\t.attr('text-anchor', 'middle')\n\t\t\t\t.attr('font-size', `${settings.fontSize + 2}px`)\n\t\t\t\t.text(chromLabel)\n\t\t})\n\t}\n\n\t// Add x-axis label\n\tsvg\n\t\t.append('text')\n\t\t.attr('x', settings.yAxisX + settings.yAxisSpace + (settings.plotWidth + 2 * settings.pngDotRadius) / 2)\n\t\t.attr('y', settings.plotHeight + 2 * settings.pngDotRadius + settings.yAxisY + settings.xAxisLabelPad)\n\t\t.attr('text-anchor', 'middle')\n\t\t.attr('font-size', `${settings.fontSize + 4}px`)\n\t\t.attr('fill', 'black')\n\t\t.text('Chromosomes')\n\n\t// Add title\n\tsvg\n\t\t.append('text')\n\t\t.attr('x', settings.yAxisX + settings.yAxisSpace)\n\t\t.attr('y', settings.yAxisY / 2)\n\t\t.attr('font-weight', 'bold')\n\t\t.attr('font-size', `${settings.fontSize + 2}px`)\n\t\t.text('Manhattan Plot')\n\n\tif (settings.showDownload) {\n\t\tconst downloadDiv = div\n\t\t\t.append('div')\n\t\t\t.style('position', 'absolute')\n\t\t\t.style('top', '5px')\n\t\t\t.style('left', `${settings.yAxisX + settings.yAxisSpace + 108}px`)\n\n\t\ticons['download'](downloadDiv, {\n\t\t\twidth: 16,\n\t\t\theight: 16,\n\t\t\ttitle: 'Download Manhattan plot',\n\t\t\thandler: () => {\n\t\t\t\t// Clone the SVG to avoid modifying the displayed version\n\t\t\t\tconst svgNode = svg.node() as SVGSVGElement\n\t\t\t\tconst clone = svgNode.cloneNode(true) as SVGSVGElement\n\n\t\t\t\t// Get the bounding box of all content\n\t\t\t\tconst bbox = svgNode.getBBox()\n\n\t\t\t\t// Set the clone's dimensions to match the full content\n\t\t\t\tclone.setAttribute('width', bbox.width.toString())\n\t\t\t\tclone.setAttribute('height', bbox.height.toString())\n\t\t\t\tclone.setAttribute('viewBox', `${bbox.x} ${bbox.y} ${bbox.width} ${bbox.height}`)\n\n\t\t\t\tto_svg(clone, `manhattan_plot_${new Date().toISOString().replace(/[:.]/g, '-').slice(0, -5)}`, {\n\t\t\t\t\tapply_dom_styles: true\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n\n\t// Generate legend data\n\tconst mutationTypes = [...new Set(data.plotData.points.map((p: any) => p.type))]\n\tconst legendData = mutationTypes.map(type => {\n\t\tconst point = data.plotData.points.find((p: any) => p.type === type)\n\t\treturn {\n\t\t\ttype: String(type).charAt(0).toUpperCase() + String(type).slice(1),\n\t\t\tcolor: point?.color\n\t\t}\n\t})\n\n\t// Add legend\n\tif (settings.showLegend && legendData.length > 0) {\n\t\tconst legendY = settings.yAxisY / 2\n\t\tconst totalWidth = legendData.length * settings.legendItemWidth\n\t\tconst legendX =\n\t\t\tsettings.yAxisX +\n\t\t\tsettings.yAxisSpace +\n\t\t\t(settings.plotWidth + 2 * settings.pngDotRadius) -\n\t\t\ttotalWidth -\n\t\t\tsettings.legendRightOffset\n\n\t\tlegendData.forEach((item, i) => {\n\t\t\tconst x = legendX + i * settings.legendItemWidth\n\n\t\t\t// Legend dot\n\t\t\tsvg\n\t\t\t\t.append('circle')\n\t\t\t\t.attr('cx', x + 8)\n\t\t\t\t.attr('cy', legendY)\n\t\t\t\t.attr('r', settings.legendDotRadius)\n\t\t\t\t.attr('fill', item.color)\n\n\t\t\t// Legend text\n\t\t\tsvg\n\t\t\t\t.append('text')\n\t\t\t\t.attr('x', x + 8 + settings.legendTextOffset)\n\t\t\t\t.attr('y', legendY + settings.legendVerticalOffset)\n\t\t\t\t.attr('font-size', `${settings.legendFontSize + 2}px`)\n\t\t\t\t.text(item.type)\n\t\t})\n\t}\n}\n", "import { table2col, showResultsTable } from '#dom'\nimport { plotManhattan } from '#plots/manhattan/manhattan.ts'\nimport type { GRIN2ViewData } from '../GRIN2Types'\n\n// Styling constants used only by the results view\nconst sectionMargin = '20px 0'\nconst btnMargin = '10px'\nconst headerMargin = '0 10px 0 0'\nconst headerFontSize = 14\nconst statsTableFontWeight = 'bold'\nconst backgroundColor = '#f8f8f8'\n\n/** Renders Manhattan plot + top genes table + run stats from precomputed ViewData. */\nexport class GRIN2ResultsView {\n\tprivate holder: any\n\tprivate app: any\n\n\tconstructor(holder: any, app: any) {\n\t\tthis.holder = holder\n\t\tthis.app = app\n\t}\n\n\tclear() {\n\t\tthis.holder.selectAll('*').remove()\n\t}\n\n\trender(viewData: GRIN2ViewData) {\n\t\tif (viewData.manhattan) {\n\t\t\tplotManhattan(this.holder, viewData.manhattan.plotData, viewData.manhattan.settings, this.app)\n\t\t}\n\n\t\tif (viewData.topGenes) {\n\t\t\tconst { headerText, columns, rows, dataItems } = viewData.topGenes\n\t\t\tconst tableContainer = this.holder.append('div').style('margin', sectionMargin)\n\n\t\t\tconst headerDiv = tableContainer\n\t\t\t\t.append('div')\n\t\t\t\t.style('display', 'flex')\n\t\t\t\t.style('align-items', 'center')\n\t\t\t\t.style('margin', btnMargin)\n\n\t\t\theaderDiv.append('h3').style('margin', headerMargin).style('font-size', `${headerFontSize}px`).text(headerText)\n\n\t\t\tshowResultsTable({\n\t\t\t\ttableDiv: tableContainer.append('div'),\n\t\t\t\tapp: this.app,\n\t\t\t\tcolumns,\n\t\t\t\trows,\n\t\t\t\tdataItems,\n\t\t\t\tgetRowKey: (row: any) => row[0]?.value,\n\t\t\t\tmatrixButtonFormat: 'Matrix ({n} genes selected)',\n\t\t\t\tmaxHeight: '400px',\n\t\t\t\tmaxWidth: '100%',\n\t\t\t\tdataTestId: 'sjpp-grin2-top-genes-table',\n\t\t\t\tresize: 'both',\n\t\t\t\tselectAll: false,\n\t\t\t\tallowRestoreRowOrder: true,\n\t\t\t\trestoreButtonInFooter: true,\n\t\t\t\tdownload: {\n\t\t\t\t\tfileName: `grin2_top_genes_${new Date().toISOString().replace(/[:.]/g, '-').slice(0, -5)}.tsv`\n\t\t\t\t},\n\t\t\t\theader: {\n\t\t\t\t\tallowSort: true,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t'font-weight': statsTableFontWeight,\n\t\t\t\t\t\t'background-color': backgroundColor\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tif (viewData.statsSections.length > 0) {\n\t\t\tconst tablesContainer = this.holder.append('div').style('margin-top', '50px')\n\t\t\tfor (const section of viewData.statsSections) {\n\t\t\t\ttablesContainer\n\t\t\t\t\t.append('h4')\n\t\t\t\t\t.style('margin', headerMargin)\n\t\t\t\t\t.style('margin-top', '15px')\n\t\t\t\t\t.style('font-size', `${headerFontSize - 2}px`)\n\t\t\t\t\t.text(section.name)\n\n\t\t\t\tconst table = table2col({ holder: tablesContainer.append('div'), margin: '2px 8px' })\n\t\t\t\tfor (const [k, v] of section.rows) {\n\t\t\t\t\ttable.addRow(k, v)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n", "import { dt2lesion } from '#shared/common.js'\n\n/** CNV form fallbacks used when the dataset config does not supply ds-specific cutoffs. */\nexport const CNV_LOSS_THRESHOLD_FALLBACK = -0.4\nexport const CNV_GAIN_THRESHOLD_FALLBACK = 0.4\nexport const CNV_MAX_SEG_LENGTH_FALLBACK = 2_000_000\n\n/** Hypermutator cutoffs: a sample with more than this many raw records for a data type is excluded from\n * that data type (0 disables). SNV/indel counts mutation burden (source-agnostic), so 8000 is a safe\n * default. CNV counts *segments*, which varies hugely by data source: sparse for GDC's categorical cnv\n * (~30/case) but hundreds-to-thousands for dense native segmentation \u2014 where a fixed 500 silently drops\n * whole-sample CNV (esp. aneuploid, gain-heavy samples). So CNV defaults OFF (opt-in); set it per-run when\n * the source warrants it. */\nexport const SNVINDEL_HYPERMUTATOR_FALLBACK = 8000\nexport const CNV_HYPERMUTATOR_FALLBACK = 0\n\n/** How a dataset quantifies cnv values; declared at ds.queries.cnv.type. Mirrors CnvSegmentQuery in #types. */\nexport type CnvType = 'log2ratio' | 'segmean' | 'category' | 'copyNumber'\n\n/** Per-type defaults and slider bounds for the GRIN2 CNV threshold controls.\n * - log2ratio/segmean: diploid baseline 0 (loss<0, gain>0)\n * - copyNumber: absolute integer copy number, diploid baseline 2 (loss<=1, gain>=3, neutral=2)\n * - category: qualitative gain/loss call, no numeric thresholds (controls hidden) */\nexport type CnvTypeConfig = {\n\tlossDefault: number\n\tgainDefault: number\n\tlossMin: number\n\tlossMax: number\n\tgainMin: number\n\tgainMax: number\n\tstep: number\n\t/** when true, the gain/loss threshold rows are not shown (qualitative call) */\n\thideThresholds: boolean\n\t/** appended to the threshold row labels to convey units */\n\tunitLabel: string\n}\n\nexport const CNV_TYPE_CONFIG: Record<CnvType, CnvTypeConfig> = {\n\tlog2ratio: {\n\t\tlossDefault: CNV_LOSS_THRESHOLD_FALLBACK,\n\t\tgainDefault: CNV_GAIN_THRESHOLD_FALLBACK,\n\t\tlossMin: -5,\n\t\tlossMax: 0,\n\t\tgainMin: 0,\n\t\tgainMax: 5,\n\t\tstep: 0.05,\n\t\thideThresholds: false,\n\t\tunitLabel: 'log2 ratio'\n\t},\n\tsegmean: {\n\t\tlossDefault: CNV_LOSS_THRESHOLD_FALLBACK,\n\t\tgainDefault: CNV_GAIN_THRESHOLD_FALLBACK,\n\t\tlossMin: -5,\n\t\tlossMax: 0,\n\t\tgainMin: 0,\n\t\tgainMax: 5,\n\t\tstep: 0.05,\n\t\thideThresholds: false,\n\t\tunitLabel: 'segment mean'\n\t},\n\tcopyNumber: {\n\t\tlossDefault: 1,\n\t\tgainDefault: 3,\n\t\tlossMin: 0,\n\t\tlossMax: 2,\n\t\tgainMin: 2,\n\t\tgainMax: 20,\n\t\tstep: 1,\n\t\thideThresholds: false,\n\t\tunitLabel: 'copy number'\n\t},\n\tcategory: {\n\t\tlossDefault: 0,\n\t\tgainDefault: 0,\n\t\tlossMin: 0,\n\t\tlossMax: 0,\n\t\tgainMin: 0,\n\t\tgainMax: 0,\n\t\tstep: 1,\n\t\thideThresholds: true,\n\t\tunitLabel: ''\n\t}\n}\n\n/** Default gene-overlap-fraction for the artifact-region mask: a gene is excluded when at least\n * this fraction of its span lies inside a selected blacklist region. The set of blacklist sources\n * (and whether the mask runs at all) comes from the per-source checkboxes, which are populated from\n * the genome's declared blacklists. */\nexport const EXCLUDE_OVERLAP_FRAC_FALLBACK = 0.5\n\nexport function getDefaultGRIN2Settings(opts: any) {\n\tconst defaults = {\n\t\tmanhattan: {\n\t\t\t// Core plot dimensions\n\t\t\tplotWidth: 1000,\n\t\t\tplotHeight: 400,\n\t\t\tpngDotRadius: 2,\n\n\t\t\t// Layout spacing\n\t\t\tyAxisX: 70,\n\t\t\tyAxisY: 40,\n\t\t\tyAxisSpace: 20,\n\t\t\txAxisLabelPad: 30,\n\t\t\tyAxisPad: 5,\n\t\t\taxisColor: '#545454',\n\t\t\tshowYAxisLine: true,\n\n\t\t\t// Typography\n\t\t\tfontSize: 12,\n\n\t\t\t// Legend settings\n\t\t\tshowLegend: true,\n\t\t\tlegendItemWidth: 80,\n\t\t\tlegendDotRadius: 3,\n\t\t\tlegendRightOffset: 15,\n\t\t\tlegendTextOffset: 12,\n\t\t\tlegendVerticalOffset: 4,\n\t\t\tlegendFontSize: 12,\n\n\t\t\t// Interactive dots\n\t\t\tshowInteractiveDots: true,\n\t\t\tinteractiveDotRadius: 2,\n\t\t\tinteractiveDotStrokeWidth: 1,\n\n\t\t\t// Download options\n\t\t\tshowDownload: true,\n\n\t\t\t// Max genes to show in table, interactive dots cap, and tooltip genes\n\t\t\tmaxGenesToShow: 500,\n\t\t\tinteractiveDotsCap: 5000,\n\t\t\tmaxTooltipGenes: 5,\n\n\t\t\t// Q-value threshold for significance indicators in the table, tooltips, and for determining which dots become interactive\n\t\t\tqValueThreshold: 0.05,\n\n\t\t\t// Colors for lesion types, derived from the shared dt2lesion source of truth so every data\n\t\t\t// type (incl. itd and any future dt) is covered without a parallel hardcoded list. Used for\n\t\t\t// table significance indicators and passed to the Manhattan renderer as dot colors.\n\t\t\tlesionTypeColors: Object.fromEntries(\n\t\t\t\tObject.values(dt2lesion).flatMap((d: any) => d.lesionTypes.map((lt: any) => [lt.lesionType, lt.color]))\n\t\t\t),\n\n\t\t\t// Threshold for the rust code when determining if we need to raise the cap value from the default\n\t\t\tmaxCappedPoints: 5,\n\n\t\t\t// Bin size for cap calculations\n\t\t\tbinSize: 10,\n\n\t\t\t// Hard cap regardless of data distribution\n\t\t\thardCap: 200\n\t\t}\n\t}\n\n\treturn Object.assign(defaults, opts?.overrides)\n}\n", "import { table2col, make_one_checkbox, make_radios } from '#dom'\nimport {\n\tdtsnvindel,\n\tmclass,\n\tdtcnv,\n\tdtfusionrna,\n\tdtsv,\n\tdtitd,\n\tproteinChangingMutations,\n\tdt2lesion,\n\tmclasscnvgain,\n\tmclasscnvAmp,\n\tmclasscnvloss,\n\tmclasscnvHomozygousDel,\n\tmclasscnvloh\n} from '#shared/common.js'\n\n// display order for categorical cnv-class checkboxes: gains first (gain, amplification), then losses\n// (heterozygous deletion, homozygous deletion) so the two deletions sit next to each other. Any class not\n// listed here (dataset-specific) is appended after, in its declared order.\nconst CNV_CLASS_ORDER = [mclasscnvgain, mclasscnvAmp, mclasscnvloss, mclasscnvHomozygousDel, mclasscnvloh]\nimport { filterInit } from '#filter'\nimport type { GRIN2ControlsCallbacks, DtUsage } from '../GRIN2Types'\nimport {\n\tCNV_MAX_SEG_LENGTH_FALLBACK,\n\tCNV_TYPE_CONFIG,\n\tEXCLUDE_OVERLAP_FRAC_FALLBACK,\n\tSNVINDEL_HYPERMUTATOR_FALLBACK,\n\tCNV_HYPERMUTATOR_FALLBACK\n} from '../settings/defaults'\nimport type { CnvType } from '../settings/defaults'\n\n// Styling constants used only by the controls view\nconst optionsTextFontSize = 12\nconst tableFontSize = 11\nconst inputWidth = '80px'\nconst inputPadding = '2px 4px'\nconst inputBorderColor = '#ddd'\nconst inputBorderRadius = '2px'\nconst checkboxContainerMaxHeight = '150px'\nconst checkboxContainerBorder = '1px solid #ddd'\nconst controlGap = '8px'\nconst checkboxMarginBottom = '2px'\n// shared width for the \"Consequences\" / \"Classes\" label cells so their checkbox boxes line up vertically\n// (each lives in its own table2col, whose label column would otherwise size to its own label text)\nconst checkboxRowLabelWidth = '110px'\n\n/** Builds and owns the GRIN2 config form (citation header + data-type rows + run button).\n * Reads its own state from the live DOM and exposes it to the controller via getDtUsage/getConfigValues. */\nexport class GRIN2ControlsView {\n\tprivate headerHolder: any\n\tprivate controlsHolder: any\n\tprivate actionsHolder: any\n\tprivate config: any\n\tprivate vocabApi: any\n\tprivate callbacks: GRIN2ControlsCallbacks\n\n\tprivate snvindelCheckbox: any = null\n\tprivate cnvCheckbox: any = null\n\tprivate fusionCheckbox: any = null\n\tprivate svCheckbox: any = null\n\tprivate itdCheckbox: any = null\n\tprivate runButton: any = null\n\tprivate consequenceCheckboxes: Record<string, any> = {}\n\tprivate snvindelSelectAllBtn: any = null\n\tprivate snvindelClearAllBtn: any = null\n\tprivate snvindelDefaultBtn: any = null\n\t// one checkbox per supported categorical cnv-segment class (populated only for ds.queries.cnv.type='category')\n\tprivate cnvCategoryCheckboxes: Record<string, any> = {}\n\n\tprivate cnv_lossThreshold: any = null\n\tprivate cnv_gainThreshold: any = null\n\tprivate cnv_maxSegLength: any = null\n\tprivate cnv_hyperMutator: any = null\n\tprivate snvindel_hyperMutator: any = null\n\t/** how this ds quantifies cnv values; from the selected cnv type or ds.queries.cnv.type, default 'log2ratio' */\n\tprivate cnvType: CnvType = 'log2ratio'\n\t/** id of the user-selected cnv file type, when the ds exposes singleSampleMutation.cnvTypes (else null) */\n\tprivate cnvSelectedTypeId: string | null = null\n\n\t// one checkbox per genome-declared blacklist source, keyed by source name\n\tprivate excludeCheckboxes: Record<string, any> = {}\n\tprivate exclude_overlapFrac: any = null\n\n\tprivate snvindelMafFilter: any = null\n\n\tprivate genome: any\n\n\tconstructor(opts: {\n\t\theaderHolder: any\n\t\tcontrolsHolder: any\n\t\tconfig: any\n\t\tvocabApi: any\n\t\tgenome: any\n\t\tactionsHolder: any\n\t\tcallbacks: GRIN2ControlsCallbacks\n\t}) {\n\t\tthis.headerHolder = opts.headerHolder\n\t\tthis.controlsHolder = opts.controlsHolder\n\t\tthis.config = opts.config\n\t\tthis.vocabApi = opts.vocabApi\n\t\tthis.genome = opts.genome\n\t\tthis.actionsHolder = opts.actionsHolder\n\t\tthis.callbacks = opts.callbacks\n\t}\n\n\tbuild() {\n\t\tthis.headerHolder\n\t\t\t.style('margin', '15px')\n\t\t\t.html(\n\t\t\t\t'GRIN2 stands for Genomic Random Interval (GRIN) statistical model. For details, see <a href=https://pubmed.ncbi.nlm.nih.gov/23842812/ target=_blank>Pounds, S. et al. Bioinformatics 2013</a>.'\n\t\t\t)\n\n\t\tconst table = table2col({ holder: this.controlsHolder, disableScroll: true })\n\t\tconst queries = this.vocabApi.termdbConfig.queries\n\t\tif (queries.snvindel) this.addSnvindelRow(table)\n\t\tif (queries.cnv || queries.singleSampleMutation?.cnvTypes?.length) this.addCnvRow(table)\n\t\tif (queries.svfusion?.dtLst?.includes(dtfusionrna)) this.addFusionRow(table)\n\t\tif (queries.svfusion?.dtLst?.includes(dtsv)) this.addSvRow(table)\n\t\tif (queries.itd) this.addItdRow(table)\n\n\t\t// Artifact-region exclude mask (applies to all lesion types).\n\t\tthis.addExcludeRow(table)\n\n\t\tthis.runButton = this.actionsHolder\n\t\t\t.append('button')\n\t\t\t.attr('data-testid', 'sjpp-grin2-run-button')\n\t\t\t.text('Run GRIN2')\n\t\t\t.on('click', () => this.callbacks.onRun())\n\n\t\tthis.updateRunButtonFromCheckboxes()\n\t}\n\n\tgetDtUsage(): DtUsage {\n\t\tconst dtUsage = structuredClone(this.config.settings.dtUsage) as DtUsage\n\t\tif (dtUsage[dtsnvindel]) dtUsage[dtsnvindel].checked = this.snvindelCheckbox.property('checked')\n\t\tif (dtUsage[dtcnv]) dtUsage[dtcnv].checked = this.cnvCheckbox.property('checked')\n\t\tif (dtUsage[dtfusionrna]) dtUsage[dtfusionrna].checked = this.fusionCheckbox.property('checked')\n\t\tif (dtUsage[dtsv]) dtUsage[dtsv].checked = this.svCheckbox.property('checked')\n\t\tif (dtUsage[dtitd]) dtUsage[dtitd].checked = this.itdCheckbox.property('checked')\n\t\treturn dtUsage\n\t}\n\n\tgetConfigValues(dtUsage: DtUsage): any {\n\t\tconst requestConfig: any = {}\n\t\tif (dtUsage[dtsnvindel]?.checked) {\n\t\t\trequestConfig.snvindelOptions = {\n\t\t\t\tconsequences: this.getSelectedConsequences()\n\t\t\t}\n\t\t\tif (this.snvindel_hyperMutator) {\n\t\t\t\t// a cleared input yields NaN; fall back to the default so we never send NaN (which would silently\n\t\t\t\t// disable the cutoff server-side and leak \"NaN\" into summary strings)\n\t\t\t\tconst v = parseFloat(this.snvindel_hyperMutator.property('value'))\n\t\t\t\trequestConfig.snvindelOptions.hyperMutator = Number.isFinite(v) ? v : SNVINDEL_HYPERMUTATOR_FALLBACK\n\t\t\t}\n\t\t\tif (this.snvindelMafFilter) {\n\t\t\t\trequestConfig.snvindelOptions.mafFilter = this.snvindelMafFilter\n\t\t\t}\n\t\t}\n\t\tif (dtUsage[dtcnv]?.checked) {\n\t\t\trequestConfig.cnvOptions = {\n\t\t\t\tmaxSegLength: parseFloat(this.cnv_maxSegLength.property('value'))\n\t\t\t}\n\t\t\tif (this.cnv_hyperMutator) {\n\t\t\t\t// cleared input => NaN; fall back to the default (see snvindel hyperMutator above)\n\t\t\t\tconst v = parseFloat(this.cnv_hyperMutator.property('value'))\n\t\t\t\trequestConfig.cnvOptions.hyperMutator = Number.isFinite(v) ? v : CNV_HYPERMUTATOR_FALLBACK\n\t\t\t}\n\t\t\t// id of the selected cnv file type (datasets exposing singleSampleMutation.cnvTypes, e.g. GDC)\n\t\t\tif (this.cnvSelectedTypeId) requestConfig.cnvOptions.cnvType = this.cnvSelectedTypeId\n\t\t\t// 'category' is a qualitative call with no numeric thresholds; the rows aren't rendered\n\t\t\tif (this.cnv_lossThreshold && this.cnv_gainThreshold) {\n\t\t\t\trequestConfig.cnvOptions.lossThreshold = parseFloat(this.cnv_lossThreshold.property('value'))\n\t\t\t\trequestConfig.cnvOptions.gainThreshold = parseFloat(this.cnv_gainThreshold.property('value'))\n\t\t\t}\n\t\t\t// categorical cnv: the checked cnv-segment classes to include (e.g. GDC gain/loss/amp/homdel)\n\t\t\tif (Object.keys(this.cnvCategoryCheckboxes).length) {\n\t\t\t\trequestConfig.cnvOptions.cnvCategories = this.getSelectedCnvCategories()\n\t\t\t}\n\t\t}\n\t\tif (dtUsage[dtfusionrna]?.checked) requestConfig.fusionOptions = {}\n\t\tif (dtUsage[dtsv]?.checked) requestConfig.svOptions = {}\n\t\tif (dtUsage[dtitd]?.checked) requestConfig.itdOptions = {}\n\t\t// excludeOptions.blacklists = names of the checked genome-declared sources.\n\t\t// Only emitted when the genome declares blacklists (otherwise the mask is unavailable).\n\t\tif (Object.keys(this.excludeCheckboxes).length > 0) {\n\t\t\tconst blacklists = Object.entries(this.excludeCheckboxes)\n\t\t\t\t.filter(([, cb]) => cb.property('checked'))\n\t\t\t\t.map(([name]) => name)\n\t\t\tconst overlapFracRaw = this.exclude_overlapFrac\n\t\t\t\t? parseFloat(this.exclude_overlapFrac.property('value'))\n\t\t\t\t: EXCLUDE_OVERLAP_FRAC_FALLBACK\n\t\t\trequestConfig.excludeOptions = {\n\t\t\t\tblacklists,\n\t\t\t\toverlapFrac: Number.isFinite(overlapFracRaw) ? overlapFracRaw : EXCLUDE_OVERLAP_FRAC_FALLBACK\n\t\t\t}\n\t\t}\n\t\treturn requestConfig\n\t}\n\n\tsetBusy(busy: boolean) {\n\t\tthis.controlsHolder?.style('pointer-events', busy ? 'none' : 'auto').style('opacity', busy ? '0.5' : '1')\n\t\tthis.runButton?.property('disabled', busy).text(busy ? 'Running GRIN2...' : 'Run GRIN2')\n\t}\n\n\tprivate updateRunButtonFromCheckboxes() {\n\t\tconst dtUsage = this.snvindelCheckbox ? this.getDtUsage() : (this.config.settings.dtUsage as DtUsage)\n\t\t// A run needs at least one data type that would actually contribute data. A ticked data type usually\n\t\t// qualifies, except when it has an explicit include-list with nothing selected: snvindel with no\n\t\t// consequence checked, or categorical CNV with no class checked, both match nothing (an empty list =\n\t\t// \"include none\"), so they can't drive a run on their own.\n\t\tconst anyEffective = Object.entries(dtUsage).some(([dt, info]) => {\n\t\t\tif (!info.checked) return false\n\t\t\tif (Number(dt) === dtsnvindel && Object.keys(this.consequenceCheckboxes).length > 0) {\n\t\t\t\treturn this.getSelectedConsequences().length > 0\n\t\t\t}\n\t\t\tif (Number(dt) === dtcnv && Object.keys(this.cnvCategoryCheckboxes).length > 0) {\n\t\t\t\treturn this.getSelectedCnvCategories().length > 0\n\t\t\t}\n\t\t\treturn true\n\t\t})\n\t\tthis.runButton?.property('disabled', !anyEffective)\n\t}\n\n\tprivate getSelectedConsequences(): string[] {\n\t\tconst consequences: string[] = []\n\t\tObject.entries(this.consequenceCheckboxes).forEach(([classKey, checkbox]) => {\n\t\t\tif (checkbox.property('checked')) consequences.push(classKey)\n\t\t})\n\t\treturn consequences\n\t}\n\n\tprivate addSnvindelRow(table: any) {\n\t\tconst [left, right] = table.addRow()\n\t\tconst t2 = table2col({ holder: right })\n\n\t\t// Consequences section header + checkbox grid\n\t\t{\n\t\t\tconst [labelCell, containerCell] = t2.addRow()\n\t\t\tlabelCell.text('Consequences').style('padding-top', '8px').style('min-width', checkboxRowLabelWidth)\n\t\t\tthis.createConsequenceCheckboxes(containerCell)\n\t\t}\n\n\t\t// MAF filter UI (only if dataset config provides it)\n\t\tconst mafFilterConfig = this.vocabApi.termdbConfig.queries?.snvindel?.mafFilter\n\t\tif (mafFilterConfig) {\n\t\t\tthis.snvindelMafFilter = structuredClone(\n\t\t\t\tthis.config.settings?.snvindelOptions?.mafFilter || mafFilterConfig.filter\n\t\t\t)\n\t\t\tconst [td1, td2] = t2.addRow()\n\t\t\ttd1.text('MAF filter')\n\t\t\tfilterInit({\n\t\t\t\temptyLabel: '+',\n\t\t\t\tholder: td2,\n\t\t\t\theader_mode: 'hide_search',\n\t\t\t\tvocab: { terms: mafFilterConfig.terms },\n\t\t\t\tcallback: async (filter: any) => {\n\t\t\t\t\tthis.snvindelMafFilter = filter\n\t\t\t\t}\n\t\t\t}).main(this.snvindelMafFilter)\n\t\t}\n\n\t\t// Hypermutator cutoff: samples with more SNV/indel records than this are excluded from snvindel (0 disables)\n\t\tthis.snvindel_hyperMutator = this.addOptionRowToTable(\n\t\t\tt2,\n\t\t\t'Hypermutator Cutoff',\n\t\t\tthis.config.settings?.snvindelOptions?.hyperMutator ?? SNVINDEL_HYPERMUTATOR_FALLBACK,\n\t\t\t0,\n\t\t\tundefined,\n\t\t\t1\n\t\t).attr('title', 'Exclude a sample from SNV/indel when it has more than this many records. 0 disables.')\n\n\t\tconst isChecked = this.config.settings.dtUsage[dtsnvindel].checked\n\t\tt2.table.style('display', isChecked ? '' : 'none')\n\t\tthis.snvindelCheckbox = make_one_checkbox({\n\t\t\tholder: left,\n\t\t\tlabeltext: dt2lesion[dtsnvindel].uilabel,\n\t\t\tchecked: isChecked,\n\t\t\ttestid: 'sjpp-grin2-checkbox-snvindel',\n\t\t\tcallback: (checked: boolean) => {\n\t\t\t\tt2.table.style('display', checked ? '' : 'none')\n\t\t\t\tthis.updateRunButtonFromCheckboxes()\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate addCnvRow(table: any) {\n\t\tconst [left, right] = table.addRow()\n\t\t// container toggled by the cnv checkbox; holds the type radios (if any) + threshold inputs\n\t\tconst cnvBody = right.append('div')\n\n\t\t// Only use saved CNV settings if a previous run completed\n\t\tconst useSaved = this.config.settings.runAnalysis === true\n\t\tconst savedCnv = useSaved ? this.config.settings.cnvOptions : undefined\n\t\tconst cnvQuery = this.vocabApi.termdbConfig.queries.cnv\n\t\t// datasets that serve multiple cnv file types per sample (e.g. GDC masked vs allele-specific)\n\t\tconst cnvTypes = this.vocabApi.termdbConfig.queries.singleSampleMutation?.cnvTypes as\n\t\t\t| { id: string; label: string; valueType: CnvType; dataType: string }[]\n\t\t\t| undefined\n\n\t\t// radios (if any) sit above the threshold inputs, which are rebuilt when the selected type changes\n\t\tconst radioHolder = cnvTypes?.length ? cnvBody.append('div').style('margin-bottom', '6px') : null\n\t\tconst thresholdHolder = cnvBody.append('div')\n\n\t\tif (cnvTypes?.length) {\n\t\t\t// initial selection: a saved & still-valid type, else the first declared type\n\t\t\tconst savedId = savedCnv?.cnvType\n\t\t\tthis.cnvSelectedTypeId = (savedId && cnvTypes.find(t => t.id === savedId)?.id) || cnvTypes[0].id\n\n\t\t\t// one radio per declared cnv type; switching rebuilds the threshold rows for the new valueType\n\t\t\tmake_radios({\n\t\t\t\tholder: radioHolder,\n\t\t\t\toptions: cnvTypes.map(t => ({\n\t\t\t\t\tlabel: t.label,\n\t\t\t\t\tvalue: t.id,\n\t\t\t\t\tchecked: t.id === this.cnvSelectedTypeId,\n\t\t\t\t\ttestid: `sjpp-grin2-cnvtype-${t.id}`\n\t\t\t\t})),\n\t\t\t\tstyles: { display: 'block' },\n\t\t\t\tcallback: (value: string) => {\n\t\t\t\t\tthis.cnvSelectedTypeId = value\n\t\t\t\t\tconst def = cnvTypes.find(t => t.id === value)\n\t\t\t\t\t// only reuse saved thresholds when the user is back on the saved type; otherwise show defaults\n\t\t\t\t\tconst savedForType = value === savedCnv?.cnvType ? savedCnv : undefined\n\t\t\t\t\tthis.renderCnvThresholdRows(thresholdHolder, def?.valueType ?? 'log2ratio', savedForType, cnvQuery)\n\t\t\t\t}\n\t\t\t})\n\t\t} else {\n\t\t\tthis.cnvSelectedTypeId = null\n\t\t}\n\n\t\t// initial threshold rows. valueType from the selected type (cnvTypes ds) or ds-level cnv.type (file ds)\n\t\tconst initialValueType: CnvType =\n\t\t\t(cnvTypes?.length ? cnvTypes.find(t => t.id === this.cnvSelectedTypeId)?.valueType : cnvQuery?.type) ??\n\t\t\t'log2ratio'\n\t\t// savedCnv only applies to the initially-selected type (or to the single-type file ds case)\n\t\tconst initialSaved = !cnvTypes?.length || this.cnvSelectedTypeId === savedCnv?.cnvType ? savedCnv : undefined\n\t\tthis.renderCnvThresholdRows(thresholdHolder, initialValueType, initialSaved, cnvQuery)\n\n\t\tconst dtUsage = this.config.settings.dtUsage\n\t\tconst isChecked =\n\t\t\tuseSaved && dtUsage[dtcnv]?.checked !== undefined ? dtUsage[dtcnv].checked : !!(cnvQuery || cnvTypes?.length)\n\t\tcnvBody.style('display', isChecked ? '' : 'none')\n\n\t\tthis.cnvCheckbox = make_one_checkbox({\n\t\t\tholder: left,\n\t\t\tlabeltext: dt2lesion[dtcnv].uilabel,\n\t\t\tchecked: isChecked,\n\t\t\ttestid: 'sjpp-grin2-checkbox-cnv',\n\t\t\tcallback: (checked: boolean) => {\n\t\t\t\tcnvBody.style('display', checked ? '' : 'none')\n\t\t\t\tthis.updateRunButtonFromCheckboxes()\n\t\t\t}\n\t\t})\n\t}\n\n\t/** (Re)build the loss/gain/maxSeg inputs for a given cnv value type. Called on first render and whenever\n\t * the user switches cnv type \u2014 segmean/copyNumber/log2ratio have type-specific defaults and ranges, and\n\t * 'category' is qualitative and hides the thresholds entirely. */\n\tprivate renderCnvThresholdRows(holder: any, valueType: CnvType, savedCnv: any, cnvQuery: any) {\n\t\tholder.selectAll('*').remove()\n\t\tthis.cnvType = valueType\n\t\tconst cfg = CNV_TYPE_CONFIG[valueType]\n\t\t// reset per-render; only categorical cnv populates category checkboxes (below)\n\t\tthis.cnvCategoryCheckboxes = {}\n\n\t\tif (cfg.hideThresholds) {\n\t\t\t// qualitative call: no numeric thresholds; instead offer one checkbox per supported cnv-segment\n\t\t\t// class (mirrors the snvindel consequence checkboxes). Rendered in its own table (before the\n\t\t\t// Max Segment Length table below) so that label doesn't widen the \"Classes\" column, keeping the\n\t\t\t// checkbox box aligned with \"Consequences\" above. Clear stale threshold inputs.\n\t\t\tthis.cnv_lossThreshold = null\n\t\t\tthis.cnv_gainThreshold = null\n\t\t\tthis.createCnvCategoryCheckboxes(holder, savedCnv)\n\t\t}\n\n\t\tconst t2 = table2col({ holder })\n\n\t\tif (!cfg.hideThresholds) {\n\t\t\tthis.cnv_lossThreshold = this.addOptionRowToTable(\n\t\t\t\tt2,\n\t\t\t\tcfg.unitLabel ? `Loss Threshold (${cfg.unitLabel})` : 'Loss Threshold',\n\t\t\t\tsavedCnv?.lossThreshold ?? cnvQuery?.cnvLossCutoff ?? cfg.lossDefault,\n\t\t\t\tcfg.lossMin,\n\t\t\t\tcfg.lossMax,\n\t\t\t\tcfg.step\n\t\t\t)\n\t\t\tthis.cnv_gainThreshold = this.addOptionRowToTable(\n\t\t\t\tt2,\n\t\t\t\tcfg.unitLabel ? `Gain Threshold (${cfg.unitLabel})` : 'Gain Threshold',\n\t\t\t\tsavedCnv?.gainThreshold ?? cnvQuery?.cnvGainCutoff ?? cfg.gainDefault,\n\t\t\t\tcfg.gainMin,\n\t\t\t\tcfg.gainMax,\n\t\t\t\tcfg.step\n\t\t\t)\n\t\t}\n\t\tthis.cnv_maxSegLength = this.addOptionRowToTable(\n\t\t\tt2,\n\t\t\t'Max Segment Length',\n\t\t\tsavedCnv?.maxSegLength ?? cnvQuery?.cnvMaxLength ?? CNV_MAX_SEG_LENGTH_FALLBACK,\n\t\t\t0,\n\t\t\t1e9,\n\t\t\t1000\n\t\t)\n\t\t// Hypermutator cutoff: samples with more cnv segments than this are excluded from cnv (0 disables)\n\t\tthis.cnv_hyperMutator = this.addOptionRowToTable(\n\t\t\tt2,\n\t\t\t'Hypermutator Cutoff',\n\t\t\tsavedCnv?.hyperMutator ?? CNV_HYPERMUTATOR_FALLBACK,\n\t\t\t0,\n\t\t\tundefined,\n\t\t\t1\n\t\t).attr('title', 'Exclude a sample from CNV when it has more than this many segments. 0 disables.')\n\t}\n\n\tprivate addFusionRow(table: any) {\n\t\tconst [left, right] = table.addRow()\n\t\tconst t2 = table2col({ holder: right })\n\t\tconst isChecked = this.config.settings.dtUsage[dtfusionrna].checked\n\t\tt2.table.style('display', isChecked ? '' : 'none')\n\n\t\tthis.fusionCheckbox = make_one_checkbox({\n\t\t\tholder: left,\n\t\t\tlabeltext: dt2lesion[dtfusionrna].uilabel,\n\t\t\tchecked: isChecked,\n\t\t\ttestid: 'grin2-checkbox-fusion',\n\t\t\tcallback: (checked: boolean) => {\n\t\t\t\tt2.table.style('display', checked ? '' : 'none')\n\t\t\t\tthis.updateRunButtonFromCheckboxes()\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate addSvRow(table: any) {\n\t\tconst [left, right] = table.addRow()\n\t\tconst t2 = table2col({ holder: right })\n\t\tconst isChecked = this.config.settings.dtUsage[dtsv].checked\n\t\tt2.table.style('display', isChecked ? '' : 'none')\n\n\t\tthis.svCheckbox = make_one_checkbox({\n\t\t\tholder: left,\n\t\t\tlabeltext: dt2lesion[dtsv].uilabel,\n\t\t\tchecked: isChecked,\n\t\t\ttestid: 'sjpp-grin2-checkbox-sv',\n\t\t\tcallback: (checked: boolean) => {\n\t\t\t\tt2.table.style('display', checked ? '' : 'none')\n\t\t\t\tthis.updateRunButtonFromCheckboxes()\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate addItdRow(table: any) {\n\t\tconst [left, right] = table.addRow()\n\t\tconst t2 = table2col({ holder: right })\n\t\tconst isChecked = this.config.settings.dtUsage[dtitd].checked\n\t\tt2.table.style('display', isChecked ? '' : 'none')\n\n\t\tthis.itdCheckbox = make_one_checkbox({\n\t\t\tholder: left,\n\t\t\tlabeltext: dt2lesion[dtitd].uilabel,\n\t\t\tchecked: isChecked,\n\t\t\ttestid: 'sjpp-grin2-checkbox-itd',\n\t\t\tcallback: (checked: boolean) => {\n\t\t\t\tt2.table.style('display', checked ? '' : 'none')\n\t\t\t\tthis.updateRunButtonFromCheckboxes()\n\t\t\t}\n\t\t})\n\t}\n\n\t/** Artifact-region mask row. Renders one checkbox per blacklist source declared for the genome\n\t * (Genome.blacklists, exposed to the client as {name}[]), plus the gene-overlap-fraction input.\n\t * Skipped entirely when the genome declares no blacklists. Unchecking all sources disables the\n\t * mask (server resolves an empty source list to no masking). */\n\tprivate addExcludeRow(table: any) {\n\t\tconst blacklists: { name: string }[] = this.genome?.blacklists || []\n\t\tif (!blacklists.length) return\n\n\t\tconst [left, right] = table.addRow()\n\t\tleft.text('Exclude genes overlapping').style('padding-top', '4px')\n\n\t\t// default = all sources on; if a previous run saved a selection, restore exactly that set\n\t\tconst savedExclude = this.config.settings.runAnalysis === true ? this.config.settings.excludeOptions : undefined\n\t\tconst savedNames: string[] | undefined = savedExclude?.blacklists\n\t\tconst isChecked = (name: string) => (savedNames ? savedNames.includes(name) : true)\n\n\t\tthis.excludeCheckboxes = {}\n\t\tconst cbContainer = right.append('div').style('margin-bottom', '6px')\n\t\tblacklists.forEach(bl => {\n\t\t\tconst div = cbContainer.append('div').style('margin-bottom', checkboxMarginBottom)\n\t\t\tthis.excludeCheckboxes[bl.name] = make_one_checkbox({\n\t\t\t\tholder: div,\n\t\t\t\tlabeltext: bl.name,\n\t\t\t\tchecked: isChecked(bl.name),\n\t\t\t\tdivstyle: { 'font-size': `${tableFontSize}px` },\n\t\t\t\tcallback: () => {}\n\t\t\t})\n\t\t})\n\n\t\tconst t2 = table2col({ holder: right })\n\t\tthis.exclude_overlapFrac = this.addOptionRowToTable(\n\t\t\tt2,\n\t\t\t'Min gene overlap',\n\t\t\tsavedExclude?.overlapFrac ?? EXCLUDE_OVERLAP_FRAC_FALLBACK,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.05\n\t\t)\n\t}\n\n\tprivate addOptionRowToTable(\n\t\ttable: any,\n\t\tlabel: string,\n\t\tdefaultValue: number,\n\t\tmin?: number,\n\t\tmax?: number,\n\t\tstep?: number\n\t) {\n\t\tconst [labelCell, inputCell] = table.addRow()\n\t\tlabelCell.text(label)\n\n\t\tconst input = inputCell\n\t\t\t.append('input')\n\t\t\t.attr('type', 'number')\n\t\t\t.attr('value', defaultValue)\n\t\t\t.style('width', inputWidth)\n\t\t\t.style('padding', inputPadding)\n\t\t\t.style('border', `1px solid ${inputBorderColor}`)\n\t\t\t.style('border-radius', inputBorderRadius)\n\t\t\t.style('font-size', `${optionsTextFontSize}px`)\n\n\t\tif (min !== null && min !== undefined) input.attr('min', min)\n\t\tif (max !== null && max !== undefined) input.attr('max', max)\n\t\tif (step !== null && step !== undefined) input.attr('step', step)\n\t\treturn input\n\t}\n\n\tprivate createConsequenceCheckboxes(container: any) {\n\t\tconst snvIndelClasses = Object.entries(mclass).filter(\n\t\t\t([key, cls]: [string, any]) => cls.dt === dtsnvindel && key !== 'Blank' && key !== 'WT'\n\t\t)\n\n\t\tconst saved = this.config.settings.snvindelOptions?.consequences as string[] | undefined\n\t\tconst useSaved = this.config.settings.runAnalysis === true && !!saved && saved.length > 0\n\t\tconst canonicalDefault = new Set<string>([...proteinChangingMutations, 'StartLost', 'StopLost'])\n\t\tconst initialChecked = useSaved ? new Set<string>(saved!) : canonicalDefault\n\n\t\tconst controlDiv = container\n\t\t\t.append('div')\n\t\t\t.style('margin-bottom', '6px')\n\t\t\t.style('display', 'flex')\n\t\t\t.style('gap', controlGap)\n\n\t\tthis.snvindelSelectAllBtn = controlDiv.append('button').style('font-size', `${tableFontSize}px`).text('Select All')\n\t\tthis.snvindelClearAllBtn = controlDiv.append('button').style('font-size', `${tableFontSize}px`).text('Clear All')\n\t\tthis.snvindelDefaultBtn = controlDiv.append('button').style('font-size', `${tableFontSize}px`).text('Default')\n\n\t\tconst checkboxContainer = container\n\t\t\t.append('div')\n\t\t\t.style('max-height', checkboxContainerMaxHeight)\n\t\t\t.style('overflow-y', 'auto')\n\t\t\t.style('border', checkboxContainerBorder)\n\n\t\tthis.consequenceCheckboxes = {}\n\t\tsnvIndelClasses.forEach(([classKey, classInfo]: [string, any]) => {\n\t\t\tconst checkboxDiv = checkboxContainer.append('div').style('margin-bottom', checkboxMarginBottom)\n\t\t\tconst checkbox = make_one_checkbox({\n\t\t\t\tholder: checkboxDiv,\n\t\t\t\tlabeltext: classInfo.label,\n\t\t\t\tchecked: initialChecked.has(classKey),\n\t\t\t\tdivstyle: { 'font-size': `${tableFontSize}px` },\n\t\t\t\t// clearing every consequence includes nothing, which can disable the run button (see\n\t\t\t\t// updateRunButtonFromCheckboxes), so re-evaluate it on each toggle\n\t\t\t\tcallback: () => this.updateRunButtonFromCheckboxes()\n\t\t\t})\n\t\t\tcheckboxDiv.select('label').attr('title', classInfo.desc)\n\t\t\tthis.consequenceCheckboxes[classKey] = checkbox\n\t\t})\n\n\t\tthis.snvindelSelectAllBtn.on('click', () => {\n\t\t\tObject.values(this.consequenceCheckboxes).forEach(cb => cb.property('checked', true))\n\t\t\tthis.updateRunButtonFromCheckboxes()\n\t\t})\n\t\tthis.snvindelClearAllBtn.on('click', () => {\n\t\t\tObject.values(this.consequenceCheckboxes).forEach(cb => cb.property('checked', false))\n\t\t\tthis.updateRunButtonFromCheckboxes()\n\t\t})\n\t\tthis.snvindelDefaultBtn.on('click', () => {\n\t\t\tObject.entries(this.consequenceCheckboxes).forEach(([classKey, checkbox]) => {\n\t\t\t\tcheckbox.property('checked', canonicalDefault.has(classKey))\n\t\t\t})\n\t\t\tthis.updateRunButtonFromCheckboxes()\n\t\t})\n\t}\n\n\tprivate getSelectedCnvCategories(): string[] {\n\t\tconst categories: string[] = []\n\t\tObject.entries(this.cnvCategoryCheckboxes).forEach(([classKey, checkbox]) => {\n\t\t\tif (checkbox.property('checked')) categories.push(classKey)\n\t\t})\n\t\treturn categories\n\t}\n\n\t/** One checkbox per categorical cnv-segment class supported by this dataset, all checked by default \u2014\n\t * the cnv analog of the snvindel consequence checkboxes. The supported classes are the CNV entries the\n\t * dataset declares in termdbConfig.mclass (e.g. GDC: Gain / Heterozygous Deletion / Amplification /\n\t * Homozygous Deletion), identified via the global mclass dt; labels prefer the dataset override. Rendered\n\t * in its own table2col with a fixed label width so the checkbox box aligns with \"Consequences\" above. */\n\tprivate createCnvCategoryCheckboxes(holder: any, savedCnv: any) {\n\t\tconst dsMclass = this.vocabApi.termdbConfig?.mclass || {}\n\t\tconst cnvClasses = Object.keys(dsMclass)\n\t\t\t.filter(key => mclass[key]?.dt === dtcnv)\n\t\t\t.map(key => ({ key, label: dsMclass[key]?.label || mclass[key]?.label || key, desc: mclass[key]?.desc || '' }))\n\t\t\t// gains together, deletions together (see CNV_CLASS_ORDER); unlisted classes keep declared order at end\n\t\t\t.sort((a, b) => {\n\t\t\t\tconst ia = CNV_CLASS_ORDER.indexOf(a.key)\n\t\t\t\tconst ib = CNV_CLASS_ORDER.indexOf(b.key)\n\t\t\t\treturn (ia === -1 ? Infinity : ia) - (ib === -1 ? Infinity : ib)\n\t\t\t})\n\t\tthis.cnvCategoryCheckboxes = {}\n\t\tif (!cnvClasses.length) return\n\n\t\t// default = all classes on; restore an exact saved selection only after a completed run\n\t\tconst saved = savedCnv?.cnvCategories as string[] | undefined\n\t\tconst useSaved = this.config.settings.runAnalysis === true && Array.isArray(saved)\n\t\tconst initialChecked = useSaved ? new Set<string>(saved!) : new Set<string>(cnvClasses.map(c => c.key))\n\n\t\t// own table so the wide \"Max Segment Length\" label doesn't push these checkboxes right; fixed label\n\t\t// width matches the snvindel \"Consequences\" cell so the two checkbox boxes line up vertically\n\t\tconst t2 = table2col({ holder })\n\t\tconst [labelCell, containerCell] = t2.addRow()\n\t\tlabelCell.text('Classes').style('padding-top', '8px').style('min-width', checkboxRowLabelWidth)\n\n\t\tconst controlDiv = containerCell\n\t\t\t.append('div')\n\t\t\t.style('margin-bottom', '6px')\n\t\t\t.style('display', 'flex')\n\t\t\t.style('gap', controlGap)\n\t\tconst selectAllBtn = controlDiv.append('button').style('font-size', `${tableFontSize}px`).text('Select All')\n\t\tconst clearAllBtn = controlDiv.append('button').style('font-size', `${tableFontSize}px`).text('Clear All')\n\n\t\tconst checkboxContainer = containerCell\n\t\t\t.append('div')\n\t\t\t.style('max-height', checkboxContainerMaxHeight)\n\t\t\t.style('overflow-y', 'auto')\n\t\t\t.style('border', checkboxContainerBorder)\n\t\t\t.style('margin-bottom', '6px')\n\n\t\tcnvClasses.forEach(c => {\n\t\t\tconst checkboxDiv = checkboxContainer.append('div').style('margin-bottom', checkboxMarginBottom)\n\t\t\tconst checkbox = make_one_checkbox({\n\t\t\t\tholder: checkboxDiv,\n\t\t\t\tlabeltext: c.label,\n\t\t\t\tchecked: initialChecked.has(c.key),\n\t\t\t\tdivstyle: { 'font-size': `${tableFontSize}px` },\n\t\t\t\t// clearing every class excludes all cnv, which can disable the run button (see\n\t\t\t\t// updateRunButtonFromCheckboxes), so re-evaluate it on each toggle\n\t\t\t\tcallback: () => this.updateRunButtonFromCheckboxes()\n\t\t\t})\n\t\t\tif (c.desc) checkboxDiv.select('label').attr('title', c.desc)\n\t\t\tthis.cnvCategoryCheckboxes[c.key] = checkbox\n\t\t})\n\n\t\tselectAllBtn.on('click', () => {\n\t\t\tObject.values(this.cnvCategoryCheckboxes).forEach(cb => cb.property('checked', true))\n\t\t\tthis.updateRunButtonFromCheckboxes()\n\t\t})\n\t\tclearAllBtn.on('click', () => {\n\t\t\tObject.values(this.cnvCategoryCheckboxes).forEach(cb => cb.property('checked', false))\n\t\t\tthis.updateRunButtonFromCheckboxes()\n\t\t})\n\t}\n}\n", "import { getCompInit, copyMerge, type RxComponent, type ComponentApi } from '#rx'\nimport type { BasePlotConfig, MassAppApi, MassState } from '#mass/types/mass'\nimport type { GRIN2Dom, GRIN2Opts } from './GRIN2Types'\nimport { GRIN2Model } from './model/GRIN2Model'\nimport { GRIN2ViewModel } from './viewModel/GRIN2ViewModel'\nimport { GRIN2ResultsView } from './view/GRIN2ResultsView'\nimport { GRIN2ControlsView } from './view/GRIN2ControlsView'\nimport { getDefaultGRIN2Settings } from './settings/defaults'\nimport { getCombinedTermFilter, getNormalRoot } from '#filter'\nimport { sayerror } from '#dom'\nimport { dtsnvindel, dtcnv, dtfusionrna, dtsv, dtitd, dt2lesion } from '#shared/common.js'\nimport { PlotBase } from '#plots/PlotBase.ts'\nimport { controlsInit } from '#plots/controls.js'\n\nclass GRIN2 extends PlotBase implements RxComponent {\n\tstatic type = 'grin2'\n\treadonly type = 'grin2'\n\tdom: GRIN2Dom\n\tcomponents: { controls: ComponentApi }\n\tprivate model!: GRIN2Model\n\tprivate resultsView!: GRIN2ResultsView\n\tprivate controlsView: GRIN2ControlsView | null = null\n\tprivate controlsToggleButton: any = null\n\tprivate hasResults = false\n\tprivate inputPanelCollapsed = false\n\tprivate cohortFilterSignature: string | null = null\n\n\tconstructor(opts: any, api) {\n\t\tsuper(opts, api)\n\t\tthis.opts = opts\n\t\tthis.components = { controls: {} as ComponentApi }\n\t\topts.holder.classed('sjpp-grin2-main', true)\n\t\tconst massControls = opts.holder.append('div').style('display', 'inline-block')\n\t\tconst inputPanel = opts.holder\n\t\t\t.append('div')\n\t\t\t.attr('data-testid', 'sjpp-grin2-input-panel')\n\t\t\t.style('display', 'grid')\n\t\t\t.style('grid-template-rows', '1fr')\n\t\t\t.style('opacity', '1')\n\t\t\t.style('transition', 'grid-template-rows 250ms ease, opacity 200ms ease')\n\t\tconst inputPanelContent = inputPanel.append('div').style('min-height', '0').style('overflow', 'hidden')\n\t\tthis.dom = {\n\t\t\tmassControls,\n\t\t\tinputPanel,\n\t\t\theaderText: inputPanelContent.append('div').style('display', 'inline-block'),\n\t\t\tcontrols: inputPanelContent.append('div'),\n\t\t\tcontrolsToggle: opts.holder\n\t\t\t\t.append('div')\n\t\t\t\t.style('display', 'flex')\n\t\t\t\t.style('align-items', 'center')\n\t\t\t\t.style('gap', '8px')\n\t\t\t\t.style('margin', '10px 20px 10px 100px'),\n\t\t\tdiv: opts.holder.append('div').style('margin', '20px')\n\t\t}\n\t\tif (opts.header) this.dom.header = opts.header.text('GRIN2')\n\t}\n\n\tgetState(appState: MassState) {\n\t\tconst config = appState.plots.find((p: BasePlotConfig) => p.id === this.id)\n\t\tif (!config) {\n\t\t\tthrow `No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`\n\t\t}\n\t\tconst parentConfig = appState.plots.find((p: BasePlotConfig) => p.id === this.parentId)\n\t\tconst termfilter = getCombinedTermFilter(appState, config.filter || parentConfig?.filter)\n\t\treturn { config, termfilter }\n\t}\n\n\tasync init() {\n\t\tthis.model = new GRIN2Model(this.app.vocabApi)\n\t\tthis.resultsView = new GRIN2ResultsView(this.dom.div, this.app)\n\t\tthis.controlsToggleButton = this.dom.controlsToggle\n\t\t\t.append('button')\n\t\t\t.attr('type', 'button')\n\t\t\t.attr('data-testid', 'sjpp-grin2-input-toggle')\n\t\t\t.style('display', 'none')\n\t\t\t.on('click', () => {\n\t\t\t\tif (!this.hasResults) return\n\t\t\t\tthis.inputPanelCollapsed = !this.inputPanelCollapsed\n\t\t\t\tthis.updateInputPanel()\n\t\t\t})\n\t\tthis.updateInputPanel()\n\t\tthis.components.controls = await controlsInit({\n\t\t\tapp: this.app,\n\t\t\tid: this.id,\n\t\t\tholder: this.dom.massControls.style('display', 'inline-block'),\n\t\t\tinputs: []\n\t\t})\n\n\t\t// Remove the burger and download buttons for now\n\t\tconst burgerMenu = this.dom.massControls.select('div > svg.bi.bi-copy')\n\t\tif (burgerMenu) burgerMenu.remove()\n\t\tconst downloadBtn = this.dom.massControls.select('div > svg.bi.bi-download')\n\t\tif (downloadBtn) downloadBtn.remove()\n\n\t\tthis.components.controls.on('helpClick.grin2', () => {\n\t\t\twindow.open('https://github.com/stjude/proteinpaint/wiki/Grin2')\n\t\t})\n\t}\n\n\tasync main() {\n\t\tconst config = structuredClone(this.state.config)\n\t\tif (config.childType != this.type && config.chartType != this.type) return\n\n\t\tconst cohortFilterSignature = this.getCohortFilterSignature()\n\t\tif (this.cohortFilterSignature === null) {\n\t\t\tthis.cohortFilterSignature = cohortFilterSignature\n\t\t} else if (this.cohortFilterSignature !== cohortFilterSignature) {\n\t\t\tthis.cohortFilterSignature = cohortFilterSignature\n\t\t\tthis.clearResultsAndShowInputs()\n\t\t}\n\n\t\tif (!this.controlsView) {\n\t\t\tthis.controlsView = new GRIN2ControlsView({\n\t\t\t\theaderHolder: this.dom.headerText,\n\t\t\t\tcontrolsHolder: this.dom.controls,\n\t\t\t\tconfig: this.state.config,\n\t\t\t\tvocabApi: this.app.vocabApi,\n\t\t\t\tgenome: this.app.opts.genome,\n\t\t\t\tactionsHolder: this.dom.controlsToggle,\n\t\t\t\tcallbacks: { onRun: () => this.handleRun() }\n\t\t\t})\n\t\t\tthis.controlsView.build()\n\t\t\tif (this.state.config.settings.runAnalysis) this.handleRun()\n\t\t}\n\t}\n\n\tprivate async handleRun() {\n\t\tif (!this.controlsView) return\n\t\tconst runFilterSignature = this.cohortFilterSignature\n\t\t// The previous result is removed before a new request starts, so its input toggle must disappear too.\n\t\t// Keeping the panel open also makes errors recoverable without another click.\n\t\tthis.clearResultsAndShowInputs()\n\t\tthis.controlsView.setBusy(true)\n\t\ttry {\n\t\t\tconst dtUsage = this.controlsView.getDtUsage()\n\n\t\t\tconst configValues = this.controlsView.getConfigValues(dtUsage)\n\t\t\tconst manhattan = this.state.config.settings.manhattan\n\t\t\tconst requestData = {\n\t\t\t\tfilter: getNormalRoot(this.state.termfilter.filter),\n\t\t\t\tfilter0: this.state.termfilter.filter0,\n\t\t\t\twidth: manhattan?.plotWidth,\n\t\t\t\theight: manhattan?.plotHeight,\n\t\t\t\tpngDotRadius: manhattan?.pngDotRadius,\n\t\t\t\tdevicePixelRatio: window.devicePixelRatio,\n\t\t\t\tmaxGenesToShow: manhattan?.maxGenesToShow,\n\t\t\t\tlesionTypeColors: manhattan?.lesionTypeColors,\n\t\t\t\tqValueThreshold: manhattan?.qValueThreshold,\n\t\t\t\tmaxCappedPoints: manhattan?.maxCappedPoints,\n\t\t\t\thardCap: manhattan?.hardCap,\n\t\t\t\tbinSize: manhattan?.binSize,\n\t\t\t\t...configValues\n\t\t\t}\n\n\t\t\tconst response = await this.model.fetchGrin2Data(requestData, this.api!.getAbortSignal())\n\t\t\tif (response.status === 'error') throw `GRIN2 analysis failed: ${response.error}`\n\t\t\t// A filter update invalidates this response even if the request could not be aborted in time.\n\t\t\tif (runFilterSignature !== this.cohortFilterSignature) return\n\n\t\t\tconst vm = new GRIN2ViewModel(response, manhattan, dtUsage)\n\t\t\tthis.resultsView.render(vm.viewData)\n\t\t\tthis.hasResults = true\n\t\t\tthis.inputPanelCollapsed = true\n\t\t\tthis.updateInputPanel()\n\n\t\t\tthis.app.dispatch({\n\t\t\t\ttype: 'plot_edit',\n\t\t\t\tid: this.id,\n\t\t\t\tconfig: {\n\t\t\t\t\t...this.state.config,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\t...this.state.config.settings,\n\t\t\t\t\t\t...configValues,\n\t\t\t\t\t\tdtUsage,\n\t\t\t\t\t\trunAnalysis: true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t} catch (error) {\n\t\t\t// Component updates abort the previous request; this is expected during filter changes.\n\t\t\tif (this.app.isAbortError(error)) return\n\t\t\t// dom.div may be undefined if the sandbox was deleted mid-request \u2014 don't crash in that case\n\t\t\tif (this.dom.div) {\n\t\t\t\tsayerror(this.dom.div, `Error running GRIN2: ${error instanceof Error ? error.message : error}`)\n\t\t\t}\n\t\t} finally {\n\t\t\tthis.controlsView?.setBusy(false)\n\t\t}\n\t}\n\n\tprivate getCohortFilterSignature() {\n\t\treturn JSON.stringify({\n\t\t\tfilter: this.state.termfilter?.filter ?? null,\n\t\t\tfilter0: this.state.termfilter?.filter0 ?? null\n\t\t})\n\t}\n\n\tprivate clearResultsAndShowInputs() {\n\t\tthis.resultsView.clear()\n\t\tthis.hasResults = false\n\t\tthis.inputPanelCollapsed = false\n\t\tthis.updateInputPanel()\n\t}\n\n\tprivate updateInputPanel() {\n\t\tthis.dom.inputPanel\n\t\t\t.attr('aria-hidden', String(this.inputPanelCollapsed))\n\t\t\t.property('inert', this.inputPanelCollapsed)\n\t\t\t.style('grid-template-rows', this.inputPanelCollapsed ? '0fr' : '1fr')\n\t\t\t.style('opacity', this.inputPanelCollapsed ? '0' : '1')\n\t\t\t.style('pointer-events', this.inputPanelCollapsed ? 'none' : 'auto')\n\t\tthis.controlsToggleButton?.style('display', this.hasResults ? null : 'none')\n\t\tthis.dom.controlsToggle\n\t\t\t.select('[data-testid=\"sjpp-grin2-run-button\"]')\n\t\t\t.style('display', this.inputPanelCollapsed ? 'none' : null)\n\t\tthis.controlsToggleButton\n\t\t\t?.attr('aria-expanded', String(!this.inputPanelCollapsed))\n\t\t\t.text(this.inputPanelCollapsed ? 'Show input options' : 'Hide input options')\n\t}\n}\n\nexport const grin2Init = getCompInit(GRIN2)\nexport const componentInit = grin2Init\n\nexport async function getPlotConfig(opts: GRIN2Opts, app: MassAppApi) {\n\tconst queries = app.vocabApi.termdbConfig.queries\n\tconst defaultSettings = getDefaultGRIN2Settings(opts)\n\n\tconst dtUsage: any = {}\n\n\t// Dynamically add data type options based on availability\n\tif (queries?.snvindel) {\n\t\tdtUsage[dtsnvindel] = { checked: true, label: dt2lesion[dtsnvindel].uilabel }\n\t}\n\t// CNV is available either via a ds-level cnv query (file-based ds) or via per-sample cnv file types\n\t// declared on singleSampleMutation (e.g. GDC, which has no queries.cnv but serves cnv per case).\n\tif (queries?.cnv || queries?.singleSampleMutation?.cnvTypes?.length) {\n\t\tdtUsage[dtcnv] = { checked: true, label: dt2lesion[dtcnv].uilabel }\n\t}\n\tif (queries?.svfusion) {\n\t\tif (queries.svfusion.dtLst.includes(dtfusionrna)) {\n\t\t\tdtUsage[dtfusionrna] = { checked: false, label: dt2lesion[dtfusionrna].uilabel }\n\t\t}\n\t\tif (queries.svfusion.dtLst.includes(dtsv)) {\n\t\t\tdtUsage[dtsv] = { checked: false, label: dt2lesion[dtsv].uilabel }\n\t\t}\n\t}\n\tif (queries?.itd) {\n\t\tdtUsage[dtitd] = { checked: false, label: dt2lesion[dtitd].uilabel }\n\t}\n\n\t// snvindelOptions / cnvOptions / fusionOptions / svOptions are intentionally not seeded here.\n\t// ControlsView supplies the user-visible defaults via its own fallback chain\n\t// (savedCnv ?? dsConfig ?? CNV_*_FALLBACK), and handleRun writes the live form values\n\t// back into settings on each Run. So before the first Run these stay undefined; after,\n\t// they are always present from the form. Seeding them here would only add magic numbers\n\t// that no code reads.\n\tconst config = {\n\t\tchartType: 'grin2',\n\t\tsettings: {\n\t\t\tcontrols: {},\n\t\t\tdtUsage,\n\t\t\trunAnalysis: false,\n\t\t\tmanhattan: {\n\t\t\t\t...defaultSettings.manhattan,\n\t\t\t\t...opts?.manhattan\n\t\t\t}\n\t\t}\n\t}\n\n\treturn copyMerge(config, opts)\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,63 @@
1
+ import {
2
+ HierCluster,
3
+ componentInit,
4
+ hierClusterInit
5
+ } from "./chunk-WFCSOTBO.js";
6
+ import {
7
+ getPlotConfig
8
+ } from "./chunk-WZ2L57MB.js";
9
+ import "./chunk-G5S4R77D.js";
10
+ import "./chunk-G764NXQN.js";
11
+ import "./chunk-ESGXULRH.js";
12
+ import "./chunk-T25QNZHB.js";
13
+ import "./chunk-W3WPPOXH.js";
14
+ import "./chunk-OXVLWQ6M.js";
15
+ import "./chunk-2MG6XE6R.js";
16
+ import "./chunk-L7IRWUKT.js";
17
+ import "./chunk-HUBO743S.js";
18
+ import "./chunk-BHGISFCA.js";
19
+ import "./chunk-ONPKE6DC.js";
20
+ import "./chunk-DDKS3MV3.js";
21
+ import "./chunk-UGRQXBL4.js";
22
+ import "./chunk-CDD7LYJM.js";
23
+ import "./chunk-YQBS2ZCK.js";
24
+ import "./chunk-RKO6BL5N.js";
25
+ import "./chunk-V2OJLJSK.js";
26
+ import "./chunk-5VOPABBA.js";
27
+ import "./chunk-HJ6L54YS.js";
28
+ import "./chunk-LSEFWW72.js";
29
+ import "./chunk-Z5U6HOE4.js";
30
+ import "./chunk-HYOEWQ5P.js";
31
+ import "./chunk-HBW42TDT.js";
32
+ import "./chunk-FN5XPUPH.js";
33
+ import "./chunk-5ABGFJSP.js";
34
+ import "./chunk-IIT367QZ.js";
35
+ import "./chunk-RZGEKL77.js";
36
+ import "./chunk-XPY6AWXO.js";
37
+ import "./chunk-NELOT3NJ.js";
38
+ import "./chunk-M6EF3WVV.js";
39
+ import "./chunk-7IYJZZQI.js";
40
+ import "./chunk-M3J4MINX.js";
41
+ import "./chunk-PF4DSFDR.js";
42
+ import "./chunk-LFCYMSVA.js";
43
+ import "./chunk-I6WR4CG7.js";
44
+ import "./chunk-2X6W4E3W.js";
45
+ import "./chunk-NYRZNRG5.js";
46
+ import "./chunk-JNITUVXP.js";
47
+ import "./chunk-3XVVN66M.js";
48
+ import "./chunk-LOZEKOES.js";
49
+ import "./chunk-VQZ2Z5YU.js";
50
+ import "./chunk-NSTL4MY2.js";
51
+ import "./chunk-TLT4YIG3.js";
52
+ import "./chunk-KYBIQBXE.js";
53
+ import "./chunk-I6Y4O3RR.js";
54
+ import "./chunk-OMR2DT66.js";
55
+ import "./chunk-DQC5FFGV.js";
56
+ import "./chunk-HFNDKYVF.js";
57
+ export {
58
+ HierCluster,
59
+ componentInit,
60
+ getPlotConfig,
61
+ hierClusterInit
62
+ };
63
+ //# sourceMappingURL=hierCluster-QFPRMHVA.js.map
@@ -0,0 +1,59 @@
1
+ import {
2
+ HierCluster,
3
+ componentInit,
4
+ hierClusterInit
5
+ } from "./chunk-WFCSOTBO.js";
6
+ import "./chunk-G5S4R77D.js";
7
+ import "./chunk-G764NXQN.js";
8
+ import "./chunk-ESGXULRH.js";
9
+ import "./chunk-T25QNZHB.js";
10
+ import "./chunk-W3WPPOXH.js";
11
+ import "./chunk-OXVLWQ6M.js";
12
+ import "./chunk-2MG6XE6R.js";
13
+ import "./chunk-L7IRWUKT.js";
14
+ import "./chunk-HUBO743S.js";
15
+ import "./chunk-BHGISFCA.js";
16
+ import "./chunk-ONPKE6DC.js";
17
+ import "./chunk-DDKS3MV3.js";
18
+ import "./chunk-UGRQXBL4.js";
19
+ import "./chunk-CDD7LYJM.js";
20
+ import "./chunk-YQBS2ZCK.js";
21
+ import "./chunk-RKO6BL5N.js";
22
+ import "./chunk-V2OJLJSK.js";
23
+ import "./chunk-5VOPABBA.js";
24
+ import "./chunk-HJ6L54YS.js";
25
+ import "./chunk-LSEFWW72.js";
26
+ import "./chunk-Z5U6HOE4.js";
27
+ import "./chunk-HYOEWQ5P.js";
28
+ import "./chunk-HBW42TDT.js";
29
+ import "./chunk-FN5XPUPH.js";
30
+ import "./chunk-5ABGFJSP.js";
31
+ import "./chunk-IIT367QZ.js";
32
+ import "./chunk-RZGEKL77.js";
33
+ import "./chunk-XPY6AWXO.js";
34
+ import "./chunk-NELOT3NJ.js";
35
+ import "./chunk-M6EF3WVV.js";
36
+ import "./chunk-7IYJZZQI.js";
37
+ import "./chunk-M3J4MINX.js";
38
+ import "./chunk-PF4DSFDR.js";
39
+ import "./chunk-LFCYMSVA.js";
40
+ import "./chunk-I6WR4CG7.js";
41
+ import "./chunk-2X6W4E3W.js";
42
+ import "./chunk-NYRZNRG5.js";
43
+ import "./chunk-JNITUVXP.js";
44
+ import "./chunk-3XVVN66M.js";
45
+ import "./chunk-LOZEKOES.js";
46
+ import "./chunk-VQZ2Z5YU.js";
47
+ import "./chunk-NSTL4MY2.js";
48
+ import "./chunk-TLT4YIG3.js";
49
+ import "./chunk-KYBIQBXE.js";
50
+ import "./chunk-I6Y4O3RR.js";
51
+ import "./chunk-OMR2DT66.js";
52
+ import "./chunk-DQC5FFGV.js";
53
+ import "./chunk-HFNDKYVF.js";
54
+ export {
55
+ HierCluster,
56
+ componentInit,
57
+ hierClusterInit
58
+ };
59
+ //# sourceMappingURL=hierCluster-YWC3XYPV.js.map
@@ -0,0 +1,40 @@
1
+ import {
2
+ getPlotConfig
3
+ } from "./chunk-WZ2L57MB.js";
4
+ import "./chunk-W3WPPOXH.js";
5
+ import "./chunk-OXVLWQ6M.js";
6
+ import "./chunk-5VOPABBA.js";
7
+ import "./chunk-HJ6L54YS.js";
8
+ import "./chunk-LSEFWW72.js";
9
+ import "./chunk-Z5U6HOE4.js";
10
+ import "./chunk-HYOEWQ5P.js";
11
+ import "./chunk-HBW42TDT.js";
12
+ import "./chunk-FN5XPUPH.js";
13
+ import "./chunk-5ABGFJSP.js";
14
+ import "./chunk-IIT367QZ.js";
15
+ import "./chunk-RZGEKL77.js";
16
+ import "./chunk-XPY6AWXO.js";
17
+ import "./chunk-NELOT3NJ.js";
18
+ import "./chunk-M6EF3WVV.js";
19
+ import "./chunk-7IYJZZQI.js";
20
+ import "./chunk-M3J4MINX.js";
21
+ import "./chunk-PF4DSFDR.js";
22
+ import "./chunk-LFCYMSVA.js";
23
+ import "./chunk-I6WR4CG7.js";
24
+ import "./chunk-2X6W4E3W.js";
25
+ import "./chunk-NYRZNRG5.js";
26
+ import "./chunk-JNITUVXP.js";
27
+ import "./chunk-3XVVN66M.js";
28
+ import "./chunk-LOZEKOES.js";
29
+ import "./chunk-VQZ2Z5YU.js";
30
+ import "./chunk-NSTL4MY2.js";
31
+ import "./chunk-TLT4YIG3.js";
32
+ import "./chunk-KYBIQBXE.js";
33
+ import "./chunk-I6Y4O3RR.js";
34
+ import "./chunk-OMR2DT66.js";
35
+ import "./chunk-DQC5FFGV.js";
36
+ import "./chunk-HFNDKYVF.js";
37
+ export {
38
+ getPlotConfig
39
+ };
40
+ //# sourceMappingURL=hierCluster.config-F7YYZNM3.js.map