@sjcrh/proteinpaint-client 2.216.0 → 2.217.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 (956) hide show
  1. package/dist/2dmaf-RRHATFHO.js +1362 -0
  2. package/dist/AggMatrixInput-4UHBCXYH.js +402 -0
  3. package/dist/AggregateMatrix-IJE5CM5Y.js +37 -0
  4. package/dist/AppHeader-UXGLRW6C.js +826 -0
  5. package/dist/BoxPlot-GQYC22KY.js +1233 -0
  6. package/dist/CorrelationVolcano-5CWRWZTI.js +613 -0
  7. package/dist/Cuminc-TYHKAPRK.js +1217 -0
  8. package/dist/DE-UUFQGSOI.js +85 -0
  9. package/dist/DEinput-DU7MF4YY.js +497 -0
  10. package/dist/DM-SSI5KUBC.js +86 -0
  11. package/dist/DifferentialAnalysis-G6FE2MXY.js +235 -0
  12. package/dist/Disco-B3KGNEAW.js +3384 -0
  13. package/dist/Disco.UI-UNPUBQCN.js +239 -0
  14. package/dist/DmrPlot-27NGDMT4.js +358 -0
  15. package/dist/GB-SXACUA4V.js +1388 -0
  16. package/dist/GSEA-EHMBA3TF.js +870 -0
  17. package/dist/GeneExpInput-NDXISF2U.js +38 -0
  18. package/dist/Geomap-3CNT227W.js +80 -0
  19. package/dist/HicApp-VQBUB6EZ.js +2240 -0
  20. package/dist/IDCViewer-DTOE7KDX.js +10808 -0
  21. package/dist/NumBinaryEditor-IVZ4MMQT.js +274 -0
  22. package/dist/NumBinaryEditor.unit.spec-3BSQ6FM4.js +308 -0
  23. package/dist/NumContEditor-CUZHU3IO.js +100 -0
  24. package/dist/NumContEditor.unit.spec-SCQFD2Y7.js +160 -0
  25. package/dist/NumCustomBinEditor-UEEYZ4ZO.js +29 -0
  26. package/dist/NumCustomBinEditor.unit.spec-GYS35OQV.js +393 -0
  27. package/dist/NumDiscreteEditor-IT7NIXTV.js +165 -0
  28. package/dist/NumDiscreteEditor.unit.spec-LB6VLAWO.js +229 -0
  29. package/dist/NumRegularBinEditor-FF6UXZWN.js +29 -0
  30. package/dist/NumRegularBinEditor.unit.spec-Z4S5LH2C.js +274 -0
  31. package/dist/NumSplineEditor-IW5WEN3P.js +205 -0
  32. package/dist/NumSplineEditor.unit.spec-PAEN3SAD.js +220 -0
  33. package/dist/NumericDensity-CPJIQLYT.js +29 -0
  34. package/dist/NumericDensity.unit.spec-4KHECHVU.js +414 -0
  35. package/dist/NumericHandler-SEFTQJDM.js +30 -0
  36. package/dist/NumericHandler.unit.spec-UGDR3476.js +210 -0
  37. package/dist/ProteomeInput-NYPUYVN5.js +610 -0
  38. package/dist/ProteomeInput-NYPUYVN5.js.map +7 -0
  39. package/dist/Regression-WDSISHYL.js +1412 -0
  40. package/dist/RunChart2-2NPADXUR.js +744 -0
  41. package/dist/SC-EWDBPHEL.js +1344 -0
  42. package/dist/Violin-POGGPCZY.js +1095 -0
  43. package/dist/Volcano-U2B4KEUL.js +2452 -0
  44. package/dist/Wsi-G7OCAJ3R.js +625 -0
  45. package/dist/adSandbox-SUCX6DAQ.js +29 -0
  46. package/dist/animatedBubbleChart-SDBWJELZ.js +542 -0
  47. package/dist/app-ATQM5PKI.js +28 -0
  48. package/dist/app-BCKEWJCY.js +38 -0
  49. package/dist/app.js +14 -14
  50. package/dist/bam-QK2ZLZDI.js +872 -0
  51. package/dist/barchart-RHDKI3NZ.js +38 -0
  52. package/dist/barchart2-CS3E6FOY.js +305 -0
  53. package/dist/block-RQ3HTJVP.js +6232 -0
  54. package/dist/block.init-T33F47DO.js +29 -0
  55. package/dist/block.mds.expressionrank-LQD6MN6Z.js +350 -0
  56. package/dist/block.mds.geneboxplot-N5XHHVR7.js +819 -0
  57. package/dist/block.mds.junction-JD4WQUSH.js +1534 -0
  58. package/dist/block.mds.svcnv-LCTYWXL2.js +6408 -0
  59. package/dist/block.svg-2F3RGTI3.js +155 -0
  60. package/dist/block.tk.aicheck-BOF6WZ5E.js +274 -0
  61. package/dist/block.tk.bam-5GBYEQBM.js +1897 -0
  62. package/dist/block.tk.bedgraphdot-LVQEP4RS.js +375 -0
  63. package/dist/block.tk.bigwig.ui-HHBO4JAC.js +202 -0
  64. package/dist/block.tk.hicstraw-JBO4UEOA.js +814 -0
  65. package/dist/block.tk.junction-S5S2N7FK.js +2353 -0
  66. package/dist/block.tk.junction.textmatrixui-DNQL7WB5.js +190 -0
  67. package/dist/block.tk.ld-JHQNR67E.js +90 -0
  68. package/dist/block.tk.menu-7JBJOY2O.js +1050 -0
  69. package/dist/block.tk.pgv-FQPREV6P.js +934 -0
  70. package/dist/brainImaging-HEWGZZNY.js +550 -0
  71. package/dist/brainRegions-QUGB7YUW.js +213 -0
  72. package/dist/bubbleHeatmap-OZRONGAX.js +374 -0
  73. package/dist/cellTypeBubbleHeatmap-N7NDE325.js +274 -0
  74. package/dist/chunk-2FWSNJEN.js +54 -0
  75. package/dist/chunk-2JIKMCJR.js +34 -0
  76. package/dist/chunk-3SPEW6R6.js +102 -0
  77. package/dist/chunk-5G6O5RYM.js +123 -0
  78. package/dist/chunk-65DO5IKM.js +299 -0
  79. package/dist/chunk-6D4HOTG7.js +1844 -0
  80. package/dist/chunk-6D4HOTG7.js.map +7 -0
  81. package/dist/chunk-6Q5SOSSU.js +2685 -0
  82. package/dist/chunk-7JHIUS54.js +626 -0
  83. package/dist/chunk-7X347XMF.js +397 -0
  84. package/dist/chunk-ABLG7GUS.js +55 -0
  85. package/dist/chunk-AFEFZ74T.js +276 -0
  86. package/dist/chunk-AIC43DTG.js +243 -0
  87. package/dist/chunk-AJXP4AV7.js +182 -0
  88. package/dist/chunk-AMW5LCUB.js +424 -0
  89. package/dist/chunk-AV2IH5K2.js +156 -0
  90. package/dist/chunk-B3WLXXGY.js +263 -0
  91. package/dist/chunk-BG6GAROI.js +302 -0
  92. package/dist/chunk-BIJOXCLN.js +2277 -0
  93. package/dist/chunk-BIJOXCLN.js.map +7 -0
  94. package/dist/chunk-BU6PAOGA.js +103 -0
  95. package/dist/chunk-C2TII2FF.js +96 -0
  96. package/dist/chunk-CTFHEDG2.js +550 -0
  97. package/dist/chunk-CXEECHP5.js +37 -0
  98. package/dist/chunk-CZK4EV3Y.js +1339 -0
  99. package/dist/chunk-D35GNF3Y.js +2325 -0
  100. package/dist/chunk-DFZWE3TR.js +170 -0
  101. package/dist/chunk-DX23HAW7.js +1219 -0
  102. package/dist/chunk-DX23HAW7.js.map +7 -0
  103. package/dist/chunk-E7XHA4YL.js +1988 -0
  104. package/dist/chunk-EDFBRXX2.js +54 -0
  105. package/dist/chunk-F23EQSGU.js +26 -0
  106. package/dist/chunk-F2EEQ7KG.js +379 -0
  107. package/dist/chunk-F5FFI7Z7.js +468 -0
  108. package/dist/chunk-FK5NL2DF.js +141 -0
  109. package/dist/chunk-FVZTRWAO.js +692 -0
  110. package/dist/chunk-GDHQVEIO.js +217 -0
  111. package/dist/chunk-GSVB4XNS.js +2799 -0
  112. package/dist/chunk-GVAV4VRI.js +418 -0
  113. package/dist/chunk-H2FELGYK.js +140 -0
  114. package/dist/chunk-HFKZGMVV.js +839 -0
  115. package/dist/chunk-HFKZGMVV.js.map +7 -0
  116. package/dist/chunk-HJARHSDC.js +274 -0
  117. package/dist/chunk-HWNQOADC.js +182 -0
  118. package/dist/chunk-HWNQOADC.js.map +7 -0
  119. package/dist/chunk-HXRG7XYB.js +54 -0
  120. package/dist/chunk-J5KCTRJC.js +80 -0
  121. package/dist/chunk-JMFVXWDX.js +59 -0
  122. package/dist/chunk-KGX2OIR4.js +203 -0
  123. package/dist/chunk-L2NPLA43.js +257 -0
  124. package/dist/chunk-L2WOLNZK.js +339 -0
  125. package/dist/chunk-LQKMDIRB.js +466 -0
  126. package/dist/chunk-LSQ5AQ6Q.js +562 -0
  127. package/dist/chunk-MBQIHLGI.js +1269 -0
  128. package/dist/chunk-MFR4WWDM.js +14 -0
  129. package/dist/chunk-MU4Z2MX2.js +340 -0
  130. package/dist/chunk-MU4Z2MX2.js.map +7 -0
  131. package/dist/chunk-NHMIMTJA.js +281 -0
  132. package/dist/chunk-NNDKYTUV.js +25353 -0
  133. package/dist/chunk-NNDKYTUV.js.map +7 -0
  134. package/dist/chunk-NPBN3PPZ.js +6358 -0
  135. package/dist/chunk-NULQJF73.js +56 -0
  136. package/dist/chunk-NYO7YANQ.js +294 -0
  137. package/dist/chunk-OBNHXAYG.js +194 -0
  138. package/dist/chunk-PETYR7LC.js +134 -0
  139. package/dist/chunk-PLFPXOGX.js +119 -0
  140. package/dist/chunk-PQVHRM4L.js +5213 -0
  141. package/dist/chunk-QLUTQPZE.js +240 -0
  142. package/dist/chunk-QNQ2ZYT7.js +38 -0
  143. package/dist/chunk-QYCPIVCX.js +255 -0
  144. package/dist/chunk-RZ2THVK4.js +516 -0
  145. package/dist/chunk-S4IZ4VM7.js +31 -0
  146. package/dist/chunk-SFUDTUXF.js +382 -0
  147. package/dist/chunk-SUT75MRI.js +102 -0
  148. package/dist/chunk-SYLYLOHK.js +56 -0
  149. package/dist/chunk-TEFWF3SK.js +176 -0
  150. package/dist/chunk-TPSVPMAN.js +70 -0
  151. package/dist/chunk-V4ZKHM6D.js +2960 -0
  152. package/dist/chunk-V7DNHPZD.js +4373 -0
  153. package/dist/chunk-VPMQDTYR.js +194 -0
  154. package/dist/chunk-VV6JIG4D.js +444 -0
  155. package/dist/chunk-WU3YXPRE.js +217 -0
  156. package/dist/chunk-X2HWRISK.js +480 -0
  157. package/dist/chunk-X77QVINS.js +49 -0
  158. package/dist/chunk-XXFLJWTQ.js +237 -0
  159. package/dist/chunk-ZPWBYHNE.js +5799 -0
  160. package/dist/chunk-ZPWBYHNE.js.map +7 -0
  161. package/dist/chunk-ZX75ZAUG.js +45 -0
  162. package/dist/chunk-ZX75ZAUG.js.map +7 -0
  163. package/dist/cohort-ATIZW34H.js +66 -0
  164. package/dist/cohortSunburst-WQK2UV25.js +686 -0
  165. package/dist/cohortSunburst-WQK2UV25.js.map +7 -0
  166. package/dist/condition-SGJIDZNB.js +323 -0
  167. package/dist/controls-JQCMGPXP.js +30 -0
  168. package/dist/controls.config-WQHVQAIJ.js +30 -0
  169. package/dist/correlation-S3MN3L5Q.js +91 -0
  170. package/dist/customdata.inputui-LGTGMJBZ.js +280 -0
  171. package/dist/dataDownload-FAWN2WKE.js +325 -0
  172. package/dist/databrowser.ui-KF3LWQXG.js +421 -0
  173. package/dist/dictionary-EVLEOT72.js +109 -0
  174. package/dist/dnaMethylation-J3SPEM4S.js +29 -0
  175. package/dist/dnaMethylation.integration.spec-CTA53YCT.js +194 -0
  176. package/dist/dofetch-3C3MI5NR.js +47 -0
  177. package/dist/e2pca-PTWPY5WP.js +340 -0
  178. package/dist/ep-MS4LQQDR.js +1245 -0
  179. package/dist/expclust.gdc.spec-S5FE4MMD.js +298 -0
  180. package/dist/facet-FSOIZJCA.js +515 -0
  181. package/dist/gb-YDEOK7NW.js +77 -0
  182. package/dist/geneExpClustering-37JKKFW3.js +240 -0
  183. package/dist/geneExpression-G6ODP3VY.js +29 -0
  184. package/dist/geneExpression-VQPRFNKE.js +309 -0
  185. package/dist/geneExpression.unit.spec-ZHXCUG6Q.js +124 -0
  186. package/dist/geneORA-E3PSS3CI.js +269 -0
  187. package/dist/geneRanking-MK3YYINC.js +544 -0
  188. package/dist/geneVariant-LEMAVFOY.js +32 -0
  189. package/dist/geneVariant-NNSB7JLS.js +285 -0
  190. package/dist/geneVariant.integration.spec-6CC5UAOP.js +499 -0
  191. package/dist/genefusion.ui-5NCQIQPN.js +299 -0
  192. package/dist/geneset-ZX4V3CFB.js +199 -0
  193. package/dist/genomeBrowser.spec-J7ISXY6H.js +272 -0
  194. package/dist/grin2-GN3DQNON.js +945 -0
  195. package/dist/grin2-LBGBBB4L.js +66 -0
  196. package/dist/hierCluster-5JURTKAZ.js +55 -0
  197. package/dist/hierCluster-BJ5VBPXR.js +51 -0
  198. package/dist/hierCluster.config-4EERP4KK.js +32 -0
  199. package/dist/hierCluster.integration.spec-VR4GULRV.js +479 -0
  200. package/dist/hierCluster.interactivity-SMTQOKUY.js +45 -0
  201. package/dist/hierCluster.renderers-PAME7BWU.js +18 -0
  202. package/dist/imagePlot-4LMIKBVE.js +152 -0
  203. package/dist/importPlot-3CG6ASNH.js +8 -0
  204. package/dist/isoformExpression-VCDNKTZ6.js +31 -0
  205. package/dist/isoformExpression.unit.spec-ZXYY37TA.js +233 -0
  206. package/dist/junction-5DXJO4PS.js +32 -0
  207. package/dist/junction.customTerm-UOPUSEOE.js +15 -0
  208. package/dist/junction.unit.spec-F35E3GJW.js +178 -0
  209. package/dist/launch.adhoc-V2HTCQGD.js +33 -0
  210. package/dist/leftlabel.sample-V7O2EC36.js +253 -0
  211. package/dist/lollipop-RNRZLG64.js +162 -0
  212. package/dist/maf-W6SF6BJS.js +451 -0
  213. package/dist/maftimeline-NABCAMHG.js +583 -0
  214. package/dist/matrix-JC6AJT2N.js +55 -0
  215. package/dist/matrix-UCHESWVK.js +50 -0
  216. package/dist/matrix.cells-B4L42TBM.js +25 -0
  217. package/dist/matrix.config-6US3AAH7.js +33 -0
  218. package/dist/matrix.data-FYFXYDA3.js +22 -0
  219. package/dist/matrix.groups-Y7DEG3GS.js +25 -0
  220. package/dist/matrix.integration.spec-KXX7SFX5.js +3156 -0
  221. package/dist/matrix.interactivity-NHWG4WCC.js +33 -0
  222. package/dist/matrix.layout-5DQNT7DD.js +35 -0
  223. package/dist/matrix.legend-OY7IF6AS.js +19 -0
  224. package/dist/matrix.renderers-GYOXGHPU.js +30 -0
  225. package/dist/matrix.serieses-657TLDAV.js +18 -0
  226. package/dist/matrix.sort-IMA2ES3T.js +25 -0
  227. package/dist/matrix.sort.unit.spec-S6BAFYPR.js +464 -0
  228. package/dist/matrix.sorterUi-77F36Q5H.js +15 -0
  229. package/dist/matrix.sorterUi.unit.spec-V5NVQGD5.js +334 -0
  230. package/dist/matrix.unit.spec-R4NMTZYQ.js +146 -0
  231. package/dist/mavb-MRCVMBPD.js +723 -0
  232. package/dist/mds.fimo-5DCH5BEM.js +509 -0
  233. package/dist/mds.samplescatterplot-VIBCS5M6.js +1545 -0
  234. package/dist/mds.survivalplot-AZ7LJDZZ.js +472 -0
  235. package/dist/multivalue-4QKGYYW2.js +79 -0
  236. package/dist/numericDictTermCluster-GLLG6IK2.js +62 -0
  237. package/dist/oncomatrix-R32ZPMX7.js +286 -0
  238. package/dist/oncomatrix.spec-BMK6LMBS.js +439 -0
  239. package/dist/plot.2dvaf-46FT53MF.js +368 -0
  240. package/dist/plot.app-7EE4YCV4.js +32 -0
  241. package/dist/plot.barplot-FK4J2G7K.js +93 -0
  242. package/dist/plot.boxplot-ATY4LK3X.js +142 -0
  243. package/dist/plot.brainImaging-S7B547V4.js +51 -0
  244. package/dist/plot.disco-K5MMC2GD.js +98 -0
  245. package/dist/plot.ssgq-B3OVMZFD.js +130 -0
  246. package/dist/plot.vaf2cov-RBHDQULW.js +249 -0
  247. package/dist/polar2-GECELCTG.js +228 -0
  248. package/dist/profileForms-2USYOA34.js +937 -0
  249. package/dist/profilePlot-YGD2CF6P.js +45 -0
  250. package/dist/proteinView-FCPWJLGU.js +1346 -0
  251. package/dist/proteinView-FCPWJLGU.js.map +7 -0
  252. package/dist/proteomeCohortCompare-TYYUF5A5.js +866 -0
  253. package/dist/proteomeCohortCompare-TYYUF5A5.js.map +7 -0
  254. package/dist/pseudbulk.unit.spec-UVVRP6NR.js +82 -0
  255. package/dist/pseudobulk-ZIN5VJGB.js +31 -0
  256. package/dist/qualitative-27BZGASV.js +34 -0
  257. package/dist/qualitative-N4F6NITI.js +241 -0
  258. package/dist/radar2-X465RPJX.js +323 -0
  259. package/dist/radarFacility2-AE7BA62N.js +331 -0
  260. package/dist/rememberedGvQ.unit.spec-4PDIU5RY.js +210 -0
  261. package/dist/render-TD2QWOHT.js +29 -0
  262. package/dist/report-3Y2OWDF7.js +213 -0
  263. package/dist/sampleView-BUMMYRHJ.js +39 -0
  264. package/dist/samplelst-BWK53BLI.js +102 -0
  265. package/dist/samplematrix-RQU43UYR.js +2188 -0
  266. package/dist/sc-LCBFWCZZ.js +77 -0
  267. package/dist/scatter-6S5I7OW3.js +921 -0
  268. package/dist/scatter-MJELX75N.js +84 -0
  269. package/dist/selectGenomeWithTklst-WAVXHXR5.js +125 -0
  270. package/dist/singleCellCellType-WMCAJ7JF.js +29 -0
  271. package/dist/singleCellCellType.unit.spec-4Z46ZT5Q.js +150 -0
  272. package/dist/singleCellGeneExpression-7Q5ZJT4R.js +29 -0
  273. package/dist/singleCellGeneExpression.unit.spec-6C7PDGRH.js +144 -0
  274. package/dist/singleCellNumericValue-QGYITZRC.js +29 -0
  275. package/dist/singleCellNumericValue.unit.spec-MQUKPEZJ.js +412 -0
  276. package/dist/singleCellPlot-JJMFJ2KQ.js +44 -0
  277. package/dist/singlecell-J23S3JR2.js +1562 -0
  278. package/dist/singlecell-Y4OGUWEC.js +77 -0
  279. package/dist/snp-IO6TKWGD.js +29 -0
  280. package/dist/snp.unit.spec-X7ILEEPO.js +167 -0
  281. package/dist/snplocus-Z2NGIKMO.js +200 -0
  282. package/dist/snplst-XCS2FCQV.js +36 -0
  283. package/dist/spliceevent.a53ss.diagram-F3S4BRVG.js +142 -0
  284. package/dist/spliceevent.exonskip.diagram-AXCDJKH4.js +274 -0
  285. package/dist/spliceevent.noeventdiagram-UK3X667E.js +451 -0
  286. package/dist/ssGSEA-ZRPNQKJ5.js +29 -0
  287. package/dist/ssGSEA.unit.spec-DG5ZHLC7.js +79 -0
  288. package/dist/stattable-XYSC3CYU.js +112 -0
  289. package/dist/studyCatalog-Y75LMI62.js +457 -0
  290. package/dist/studyCatalog-Y75LMI62.js.map +7 -0
  291. package/dist/summarizeCnvGeneexp-H2NP7VLU.js +154 -0
  292. package/dist/summarizeGeneexpSurvival-HTCD3VQQ.js +101 -0
  293. package/dist/summarizeMutationCnv-UEGXWK2P.js +155 -0
  294. package/dist/summarizeMutationDiagnosis-MJGWP7IT.js +31 -0
  295. package/dist/summarizeMutationSurvival-55JW5LA6.js +95 -0
  296. package/dist/summary-HJO23RGB.js +40 -0
  297. package/dist/summary.integration.spec-OWI2C2N5.js +405 -0
  298. package/dist/summaryInput-RL2JXRDE.js +238 -0
  299. package/dist/sunburst-JFY6V5E2.js +274 -0
  300. package/dist/survival-6FLR4YCJ.js +1246 -0
  301. package/dist/survival-PBBU6PA5.js +49 -0
  302. package/dist/survival.integration.spec-WAKTGYGP.js +609 -0
  303. package/dist/svgraph-WD3DUZV7.js +1377 -0
  304. package/dist/svmr-AP6ZFO7S.js +3832 -0
  305. package/dist/swimmer-VPKSBV6V.js +741 -0
  306. package/dist/swimmer-VPKSBV6V.js.map +7 -0
  307. package/dist/table-GX3VJLPZ.js +192 -0
  308. package/dist/termCollection-QE7U5QBD.js +29 -0
  309. package/dist/termCollection-YQ332WKB.js +247 -0
  310. package/dist/termCollection.unit.spec-ELLN7VRA.js +295 -0
  311. package/dist/termCollectionFractionSelection-V3RP5KAT.js +38 -0
  312. package/dist/termCollectionFractionSelection.unit.spec-JR7Q7TJI.js +184 -0
  313. package/dist/tk-GD2KJM5W.js +1116 -0
  314. package/dist/tk-J5VPFEX6.js +37 -0
  315. package/dist/tp.ui-5K3AAXDW.js +1449 -0
  316. package/dist/tvs.categorical-RPACB4VU.js +28 -0
  317. package/dist/tvs.condition-O6JBUM6D.js +160 -0
  318. package/dist/tvs.dt-5EVBSRX3.js +30 -0
  319. package/dist/tvs.dtcnv.categorical-Y5YHBZNC.js +31 -0
  320. package/dist/tvs.dtcnv.continuous-WP322QUP.js +63 -0
  321. package/dist/tvs.dtfusion-CCMUFDMQ.js +31 -0
  322. package/dist/tvs.dtitd-P3ED3MWA.js +31 -0
  323. package/dist/tvs.dtsnvindel-X2MXPLC6.js +31 -0
  324. package/dist/tvs.dtsv-4FOWFNVV.js +31 -0
  325. package/dist/tvs.multivalue-IRF467ZK.js +84 -0
  326. package/dist/tvs.numeric-C7FDCGCS.js +32 -0
  327. package/dist/tvs.samplelst-CBU6ATI5.js +95 -0
  328. package/dist/tvs.survival-3K5ASAXV.js +110 -0
  329. package/dist/tvs.termCollection-MXEWO6KJ.js +118 -0
  330. package/dist/vocabulary-GQBHDP3K.js +32 -0
  331. package/dist/wsi.direct-25JUHWEF.js +8339 -0
  332. package/package.json +3 -3
  333. package/dist/2dmaf-Y4CPQCKD.js +0 -1362
  334. package/dist/AggMatrixInput-XSZSKYJM.js +0 -402
  335. package/dist/AggregateMatrix-BETOEO7U.js +0 -37
  336. package/dist/AppHeader-6X6SNEBI.js +0 -826
  337. package/dist/BoxPlot-J6JKDOH6.js +0 -1233
  338. package/dist/CorrelationVolcano-DMDE4LAP.js +0 -613
  339. package/dist/Cuminc-6WHLJVOC.js +0 -1217
  340. package/dist/DE-EJM6W4Q4.js +0 -85
  341. package/dist/DEinput-AU3E7JM2.js +0 -497
  342. package/dist/DM-FN4WJNDX.js +0 -86
  343. package/dist/DifferentialAnalysis-FD57SA7H.js +0 -235
  344. package/dist/Disco-BMNSQ6YL.js +0 -3384
  345. package/dist/Disco.UI-4VXFHJQV.js +0 -239
  346. package/dist/DmrPlot-P5WKLC5J.js +0 -358
  347. package/dist/GB-BO75K7TF.js +0 -1388
  348. package/dist/GSEA-OEFXDJ23.js +0 -870
  349. package/dist/GeneExpInput-FP7RBRXH.js +0 -38
  350. package/dist/Geomap-ELX6O3IS.js +0 -80
  351. package/dist/HicApp-3JVEBSWO.js +0 -2240
  352. package/dist/IDCViewer-76N6I34Q.js +0 -10808
  353. package/dist/NumBinaryEditor-XLACD6VG.js +0 -274
  354. package/dist/NumBinaryEditor.unit.spec-3Z62H2JG.js +0 -308
  355. package/dist/NumContEditor-Z5ONNXFC.js +0 -100
  356. package/dist/NumContEditor.unit.spec-EJ3L7WH6.js +0 -160
  357. package/dist/NumCustomBinEditor-WKXAK5ZW.js +0 -29
  358. package/dist/NumCustomBinEditor.unit.spec-WXCLBBWT.js +0 -393
  359. package/dist/NumDiscreteEditor-5UBFABFT.js +0 -165
  360. package/dist/NumDiscreteEditor.unit.spec-5EMKOQZU.js +0 -229
  361. package/dist/NumRegularBinEditor-DMOKU5UM.js +0 -29
  362. package/dist/NumRegularBinEditor.unit.spec-QT2WSGNL.js +0 -274
  363. package/dist/NumSplineEditor-G3T26V5H.js +0 -205
  364. package/dist/NumSplineEditor.unit.spec-P4WNWJKE.js +0 -220
  365. package/dist/NumericDensity-AWQK5BKC.js +0 -29
  366. package/dist/NumericDensity.unit.spec-TO5EUJF3.js +0 -414
  367. package/dist/NumericHandler-MZ4WZDMW.js +0 -30
  368. package/dist/NumericHandler.unit.spec-JFLQQ2RI.js +0 -210
  369. package/dist/ProteomeInput-2XRW7WFL.js +0 -384
  370. package/dist/ProteomeInput-2XRW7WFL.js.map +0 -7
  371. package/dist/Regression-QO5EKLTZ.js +0 -1412
  372. package/dist/RunChart2-JLN324L6.js +0 -744
  373. package/dist/SC-W3M6IEDU.js +0 -1344
  374. package/dist/Violin-BCHEWRDU.js +0 -1095
  375. package/dist/Volcano-2PP67BZI.js +0 -2452
  376. package/dist/Wsi-GNGKPGJF.js +0 -625
  377. package/dist/adSandbox-XRWLD73B.js +0 -29
  378. package/dist/animatedBubbleChart-23CVOAXV.js +0 -542
  379. package/dist/app-KRJBODQD.js +0 -28
  380. package/dist/app-YLGQTR3U.js +0 -38
  381. package/dist/bam-3VPOMNJU.js +0 -872
  382. package/dist/barchart-I4S7TYFY.js +0 -38
  383. package/dist/barchart2-VXUP2L4M.js +0 -305
  384. package/dist/block-NVXPY2IK.js +0 -6232
  385. package/dist/block.init-CQ76SLCN.js +0 -29
  386. package/dist/block.mds.expressionrank-CTMM4IFI.js +0 -350
  387. package/dist/block.mds.geneboxplot-XYUU3PUZ.js +0 -819
  388. package/dist/block.mds.junction-LX4ETPO6.js +0 -1534
  389. package/dist/block.mds.svcnv-ABWHJJOA.js +0 -6408
  390. package/dist/block.svg-NY7ZDCUD.js +0 -155
  391. package/dist/block.tk.aicheck-3C52WICS.js +0 -274
  392. package/dist/block.tk.bam-QQHY3KEB.js +0 -1897
  393. package/dist/block.tk.bedgraphdot-EWZAMZ6E.js +0 -375
  394. package/dist/block.tk.bigwig.ui-OW3Q6THD.js +0 -202
  395. package/dist/block.tk.hicstraw-T7GJ7ZV6.js +0 -814
  396. package/dist/block.tk.junction-WKD34BUV.js +0 -2353
  397. package/dist/block.tk.junction.textmatrixui-G6KNHIUC.js +0 -190
  398. package/dist/block.tk.ld-PXXGZMUF.js +0 -90
  399. package/dist/block.tk.menu-W3RFEKFJ.js +0 -1050
  400. package/dist/block.tk.pgv-QVRJDGGG.js +0 -934
  401. package/dist/brainImaging-D42IV6LT.js +0 -550
  402. package/dist/brainRegions-DLXBHC4Y.js +0 -213
  403. package/dist/bubbleHeatmap-LATPOGLF.js +0 -374
  404. package/dist/cellTypeBubbleHeatmap-H7VHFQFD.js +0 -274
  405. package/dist/chunk-2XH5T5HA.js +0 -176
  406. package/dist/chunk-3Z7FX6GQ.js +0 -102
  407. package/dist/chunk-42II4FNQ.js +0 -14
  408. package/dist/chunk-4BQ3HUD2.js +0 -1988
  409. package/dist/chunk-4IWOYJ4D.js +0 -56
  410. package/dist/chunk-5D5Y3XVS.js +0 -56
  411. package/dist/chunk-5KHI46ZP.js +0 -26
  412. package/dist/chunk-5KNC4AJ7.js +0 -103
  413. package/dist/chunk-5MHE7AIV.js +0 -2260
  414. package/dist/chunk-5MHE7AIV.js.map +0 -7
  415. package/dist/chunk-6WYKPBZI.js +0 -339
  416. package/dist/chunk-AIH5PKJN.js +0 -626
  417. package/dist/chunk-AWZOZLFI.js +0 -217
  418. package/dist/chunk-AYZ6BEK4.js +0 -5213
  419. package/dist/chunk-B4NTLUWL.js +0 -2685
  420. package/dist/chunk-BQXK7K5J.js +0 -134
  421. package/dist/chunk-C5YMSIGN.js +0 -6358
  422. package/dist/chunk-CBAU2QMR.js +0 -31
  423. package/dist/chunk-CFHGRMLN.js +0 -468
  424. package/dist/chunk-CNQJ4LOC.js +0 -102
  425. package/dist/chunk-CVT7JE5B.js +0 -123
  426. package/dist/chunk-D4UCM6R7.js +0 -562
  427. package/dist/chunk-DBOJ3TMI.js +0 -424
  428. package/dist/chunk-DDDL46RE.js +0 -550
  429. package/dist/chunk-DURCB2KS.js +0 -141
  430. package/dist/chunk-E64SCL4O.js +0 -418
  431. package/dist/chunk-EAVA7XQL.js +0 -240
  432. package/dist/chunk-EG7HOBJY.js +0 -54
  433. package/dist/chunk-EZFO5UYD.js +0 -5795
  434. package/dist/chunk-EZFO5UYD.js.map +0 -7
  435. package/dist/chunk-F22GGUNI.js +0 -243
  436. package/dist/chunk-F4TEXJ74.js +0 -49
  437. package/dist/chunk-F5ERVYFW.js +0 -783
  438. package/dist/chunk-F5ERVYFW.js.map +0 -7
  439. package/dist/chunk-FIFNXVTS.js +0 -25345
  440. package/dist/chunk-FIFNXVTS.js.map +0 -7
  441. package/dist/chunk-G7YFQ4AK.js +0 -692
  442. package/dist/chunk-GGUCMNZ2.js +0 -339
  443. package/dist/chunk-GGUCMNZ2.js.map +0 -7
  444. package/dist/chunk-HAQGBJZ7.js +0 -156
  445. package/dist/chunk-HCEB7HBL.js +0 -2960
  446. package/dist/chunk-ISYZNLED.js +0 -444
  447. package/dist/chunk-IXQQHAHZ.js +0 -237
  448. package/dist/chunk-JSYPAJVF.js +0 -37
  449. package/dist/chunk-KBEIJEOX.js +0 -194
  450. package/dist/chunk-KE5IMRCJ.js +0 -516
  451. package/dist/chunk-KSWKOKY7.js +0 -38
  452. package/dist/chunk-L2TWQXK2.js +0 -203
  453. package/dist/chunk-L4ORRHDP.js +0 -2325
  454. package/dist/chunk-LH4BM6C7.js +0 -257
  455. package/dist/chunk-LLLRH3MB.js +0 -274
  456. package/dist/chunk-MWDPHZ2K.js +0 -1269
  457. package/dist/chunk-N2FCAFJH.js +0 -178
  458. package/dist/chunk-N2FCAFJH.js.map +0 -7
  459. package/dist/chunk-NT4BDYKQ.js +0 -466
  460. package/dist/chunk-OH33WT6Q.js +0 -119
  461. package/dist/chunk-PEBOVSIC.js +0 -1339
  462. package/dist/chunk-Q37PHHHH.js +0 -59
  463. package/dist/chunk-QCPXDSKH.js +0 -379
  464. package/dist/chunk-QDWEKA5J.js +0 -382
  465. package/dist/chunk-QVQI5DW7.js +0 -1817
  466. package/dist/chunk-QVQI5DW7.js.map +0 -7
  467. package/dist/chunk-R3UYQXJL.js +0 -1233
  468. package/dist/chunk-R3UYQXJL.js.map +0 -7
  469. package/dist/chunk-R47CRASM.js +0 -182
  470. package/dist/chunk-ROLQAMNM.js +0 -96
  471. package/dist/chunk-RXAKFDZM.js +0 -302
  472. package/dist/chunk-STDPI4K3.js +0 -281
  473. package/dist/chunk-SYDK5RV5.js +0 -54
  474. package/dist/chunk-SZ2VC2I2.js +0 -276
  475. package/dist/chunk-TAOTFHMT.js +0 -170
  476. package/dist/chunk-TMEDFIPS.js +0 -2799
  477. package/dist/chunk-TRZVM7OG.js +0 -194
  478. package/dist/chunk-VB47XOA4.js +0 -397
  479. package/dist/chunk-VCXAL36U.js +0 -54
  480. package/dist/chunk-VP3BJXOR.js +0 -55
  481. package/dist/chunk-VZGARY6D.js +0 -255
  482. package/dist/chunk-WO5S6USJ.js +0 -4373
  483. package/dist/chunk-WPR2CMWS.js +0 -34
  484. package/dist/chunk-WTKV6KPV.js +0 -70
  485. package/dist/chunk-XCJHO2PZ.js +0 -263
  486. package/dist/chunk-XVBFTP6A.js +0 -294
  487. package/dist/chunk-YKR3O6TN.js +0 -480
  488. package/dist/chunk-YZO7NVZW.js +0 -299
  489. package/dist/chunk-ZNOQYTF7.js +0 -140
  490. package/dist/chunk-ZOOMCQVD.js +0 -80
  491. package/dist/chunk-ZZTAUDJV.js +0 -217
  492. package/dist/cohort-E2RISYWQ.js +0 -66
  493. package/dist/condition-ZCROOBW2.js +0 -323
  494. package/dist/controls-TRUCBCUG.js +0 -30
  495. package/dist/controls.config-ZWEI3PWR.js +0 -30
  496. package/dist/correlation-ODRXACI5.js +0 -91
  497. package/dist/customdata.inputui-WADNWN4A.js +0 -280
  498. package/dist/dataDownload-TKACVGQG.js +0 -325
  499. package/dist/databrowser.ui-P74LKVPW.js +0 -421
  500. package/dist/dictionary-AR7TU32A.js +0 -109
  501. package/dist/dnaMethylation-FAA5NEAR.js +0 -29
  502. package/dist/dnaMethylation.integration.spec-XO5KTHGG.js +0 -194
  503. package/dist/dofetch-3ZCQBYTP.js +0 -47
  504. package/dist/e2pca-545GHJWM.js +0 -340
  505. package/dist/ep-DFBBKNXP.js +0 -1245
  506. package/dist/expclust.gdc.spec-IW2EKLIJ.js +0 -298
  507. package/dist/facet-JNIRJGUK.js +0 -515
  508. package/dist/gb-C3Z24J7G.js +0 -77
  509. package/dist/geneExpClustering-ZYYXVWEH.js +0 -240
  510. package/dist/geneExpression-AFI6PX7J.js +0 -29
  511. package/dist/geneExpression-QAHT5JK3.js +0 -309
  512. package/dist/geneExpression.unit.spec-QD6FBA7Y.js +0 -124
  513. package/dist/geneORA-UJUDJH33.js +0 -269
  514. package/dist/geneRanking-W4GJTT2D.js +0 -544
  515. package/dist/geneVariant-7TLTYMRN.js +0 -285
  516. package/dist/geneVariant-PIPW23ZL.js +0 -32
  517. package/dist/geneVariant.integration.spec-EWVEPYWR.js +0 -499
  518. package/dist/genefusion.ui-CQMINB6C.js +0 -299
  519. package/dist/geneset-DB2UIWDN.js +0 -199
  520. package/dist/genomeBrowser.spec-5PPCZGJY.js +0 -272
  521. package/dist/grin2-6FKWST7P.js +0 -66
  522. package/dist/grin2-CRHH7XQL.js +0 -945
  523. package/dist/hierCluster-LVVQUFIA.js +0 -55
  524. package/dist/hierCluster-N4BWRDRD.js +0 -51
  525. package/dist/hierCluster.config-RXYYXEKK.js +0 -32
  526. package/dist/hierCluster.integration.spec-32ELKHGP.js +0 -479
  527. package/dist/hierCluster.interactivity-O5PWSGD7.js +0 -45
  528. package/dist/hierCluster.renderers-E6FQE2DK.js +0 -18
  529. package/dist/imagePlot-CJJPFFND.js +0 -152
  530. package/dist/importPlot-IT2VCT3E.js +0 -8
  531. package/dist/isoformExpression-MB7VXNYL.js +0 -31
  532. package/dist/isoformExpression.unit.spec-WBGH5T22.js +0 -233
  533. package/dist/junction-RUMI5YFR.js +0 -32
  534. package/dist/junction.customTerm-LBVLFTOA.js +0 -15
  535. package/dist/junction.unit.spec-VU665JWH.js +0 -178
  536. package/dist/launch.adhoc-PG2VDOP5.js +0 -33
  537. package/dist/leftlabel.sample-O4EI4FEW.js +0 -253
  538. package/dist/lollipop-LWQ3ZPUC.js +0 -162
  539. package/dist/maf-Z7IN4HAW.js +0 -451
  540. package/dist/maftimeline-AQLIVUW3.js +0 -583
  541. package/dist/matrix-LTXFBGFW.js +0 -55
  542. package/dist/matrix-W2XR54DY.js +0 -50
  543. package/dist/matrix.cells-F44JHGOO.js +0 -25
  544. package/dist/matrix.config-Y5OUBSEC.js +0 -33
  545. package/dist/matrix.data-VLIW75OR.js +0 -22
  546. package/dist/matrix.groups-QEWUDMPF.js +0 -25
  547. package/dist/matrix.integration.spec-24DH4HNF.js +0 -3156
  548. package/dist/matrix.interactivity-R3BQYXAY.js +0 -33
  549. package/dist/matrix.layout-TENBEUJ6.js +0 -35
  550. package/dist/matrix.legend-E35GDZWD.js +0 -19
  551. package/dist/matrix.renderers-CMPAIUYT.js +0 -30
  552. package/dist/matrix.serieses-GXVQBJML.js +0 -18
  553. package/dist/matrix.sort-VQS6E6S5.js +0 -25
  554. package/dist/matrix.sort.unit.spec-P5C6EVDC.js +0 -464
  555. package/dist/matrix.sorterUi-4R2TVBUJ.js +0 -15
  556. package/dist/matrix.sorterUi.unit.spec-UMI2N2OG.js +0 -334
  557. package/dist/matrix.unit.spec-HSA7OWME.js +0 -146
  558. package/dist/mavb-ZARQZJJR.js +0 -723
  559. package/dist/mds.fimo-YRNNY5KA.js +0 -509
  560. package/dist/mds.samplescatterplot-ESIALOMA.js +0 -1545
  561. package/dist/mds.survivalplot-5E6ITKIU.js +0 -472
  562. package/dist/multivalue-CT2QWWB4.js +0 -79
  563. package/dist/numericDictTermCluster-CRVSJ6PI.js +0 -62
  564. package/dist/oncomatrix-MX5EHBNW.js +0 -286
  565. package/dist/oncomatrix.spec-DN2RAWGZ.js +0 -439
  566. package/dist/plot.2dvaf-B5QAKDTK.js +0 -368
  567. package/dist/plot.app-V5DZWC6N.js +0 -32
  568. package/dist/plot.barplot-VAJLAU7H.js +0 -93
  569. package/dist/plot.boxplot-PT3BUNVT.js +0 -142
  570. package/dist/plot.brainImaging-2WB7XJJM.js +0 -51
  571. package/dist/plot.disco-64IPBCII.js +0 -98
  572. package/dist/plot.ssgq-ET4OBMUM.js +0 -130
  573. package/dist/plot.vaf2cov-DGMVJ7UN.js +0 -249
  574. package/dist/polar2-CWWDVNZQ.js +0 -228
  575. package/dist/profileForms-FM7D4WO2.js +0 -937
  576. package/dist/profilePlot-LQ6K4EXX.js +0 -45
  577. package/dist/proteinView-WVI3OVDD.js +0 -1352
  578. package/dist/proteinView-WVI3OVDD.js.map +0 -7
  579. package/dist/proteomeCohortCompare-6FWTYPDF.js +0 -908
  580. package/dist/proteomeCohortCompare-6FWTYPDF.js.map +0 -7
  581. package/dist/pseudbulk.unit.spec-IAONX4QR.js +0 -82
  582. package/dist/pseudobulk-NIX4JOOZ.js +0 -31
  583. package/dist/qualitative-GLTKWA6H.js +0 -241
  584. package/dist/qualitative-M3XSQZA2.js +0 -34
  585. package/dist/radar2-JBULXNFQ.js +0 -323
  586. package/dist/radarFacility2-YYIBHZCY.js +0 -331
  587. package/dist/rememberedGvQ.unit.spec-YJV6DVPN.js +0 -210
  588. package/dist/render-ZCH7R3WL.js +0 -29
  589. package/dist/report-YPIAIMND.js +0 -213
  590. package/dist/sampleView-K4GSYMAE.js +0 -39
  591. package/dist/samplelst-F2SLVHFP.js +0 -102
  592. package/dist/samplematrix-Z6F4F7YN.js +0 -2188
  593. package/dist/sc-UM7SEGED.js +0 -77
  594. package/dist/scatter-63XRRLGP.js +0 -921
  595. package/dist/scatter-HFTYLGDP.js +0 -84
  596. package/dist/selectGenomeWithTklst-PJNALPM2.js +0 -125
  597. package/dist/singleCellCellType-HR3R6KBD.js +0 -29
  598. package/dist/singleCellCellType.unit.spec-VK57HQ2O.js +0 -150
  599. package/dist/singleCellGeneExpression-VWOA7MLN.js +0 -29
  600. package/dist/singleCellGeneExpression.unit.spec-YP64T3XD.js +0 -144
  601. package/dist/singleCellNumericValue-3VIUPYPB.js +0 -29
  602. package/dist/singleCellNumericValue.unit.spec-VR5ICRQA.js +0 -412
  603. package/dist/singleCellPlot-36QDY7VL.js +0 -44
  604. package/dist/singlecell-D2MZVFR4.js +0 -77
  605. package/dist/singlecell-EXEOLJ3J.js +0 -1562
  606. package/dist/snp-XHEHXZMB.js +0 -29
  607. package/dist/snp.unit.spec-YR6IDLL7.js +0 -167
  608. package/dist/snplocus-BM7LUK2U.js +0 -200
  609. package/dist/snplst-22VSEZ7R.js +0 -36
  610. package/dist/spliceevent.a53ss.diagram-KERTJ3QA.js +0 -142
  611. package/dist/spliceevent.exonskip.diagram-K74VIUA4.js +0 -274
  612. package/dist/spliceevent.noeventdiagram-W7WGSVVL.js +0 -451
  613. package/dist/ssGSEA-XDEA5TVX.js +0 -29
  614. package/dist/ssGSEA.unit.spec-RDCPXJ5S.js +0 -79
  615. package/dist/stattable-HZ3DOUEM.js +0 -112
  616. package/dist/studyCatalog-FWNHGZUT.js +0 -410
  617. package/dist/studyCatalog-FWNHGZUT.js.map +0 -7
  618. package/dist/summarizeCnvGeneexp-VB4SOJHT.js +0 -154
  619. package/dist/summarizeGeneexpSurvival-5ZWIJ6O4.js +0 -101
  620. package/dist/summarizeMutationCnv-MBPU64C5.js +0 -155
  621. package/dist/summarizeMutationDiagnosis-QRP4ITNL.js +0 -31
  622. package/dist/summarizeMutationSurvival-SSXAY5W4.js +0 -95
  623. package/dist/summary-SRESZS4Z.js +0 -40
  624. package/dist/summary.integration.spec-3V2CEPJM.js +0 -405
  625. package/dist/summaryInput-3VD4KBCU.js +0 -238
  626. package/dist/sunburst-E5IEQQUV.js +0 -274
  627. package/dist/survival-H4HYC6GC.js +0 -1246
  628. package/dist/survival-K5WWAELO.js +0 -49
  629. package/dist/survival.integration.spec-SPN2TSQW.js +0 -609
  630. package/dist/svgraph-USRAYSBN.js +0 -1377
  631. package/dist/svmr-MOKLLJKJ.js +0 -3832
  632. package/dist/table-WD3P3WL2.js +0 -192
  633. package/dist/termCollection-JU4OJRWD.js +0 -29
  634. package/dist/termCollection-VWS5CKVH.js +0 -247
  635. package/dist/termCollection.unit.spec-TPUJWKKW.js +0 -295
  636. package/dist/termCollectionFractionSelection-UWLHDPX2.js +0 -38
  637. package/dist/termCollectionFractionSelection.unit.spec-RBHJY34K.js +0 -184
  638. package/dist/tk-OAOVCATS.js +0 -1116
  639. package/dist/tk-SMOGJUD7.js +0 -37
  640. package/dist/tp.ui-EMWJCGRX.js +0 -1449
  641. package/dist/tvs.categorical-A7J4RIKL.js +0 -28
  642. package/dist/tvs.condition-HFLZES5E.js +0 -160
  643. package/dist/tvs.dt-GBYX2RWX.js +0 -30
  644. package/dist/tvs.dtcnv.categorical-X2K3MIPG.js +0 -31
  645. package/dist/tvs.dtcnv.continuous-5EMX4PBP.js +0 -63
  646. package/dist/tvs.dtfusion-7VVSPNRK.js +0 -31
  647. package/dist/tvs.dtitd-2YGFPXOY.js +0 -31
  648. package/dist/tvs.dtsnvindel-EISO52O6.js +0 -31
  649. package/dist/tvs.dtsv-RTAMAW3G.js +0 -31
  650. package/dist/tvs.multivalue-5N6PSG4L.js +0 -84
  651. package/dist/tvs.numeric-R5UT7ARM.js +0 -32
  652. package/dist/tvs.samplelst-SZDNNFK5.js +0 -95
  653. package/dist/tvs.survival-EUUDDXP7.js +0 -110
  654. package/dist/tvs.termCollection-DAHEYZK2.js +0 -118
  655. package/dist/vocabulary-P4XRHR34.js +0 -32
  656. package/dist/wsi.direct-J7VX5EMI.js +0 -8339
  657. /package/dist/{2dmaf-Y4CPQCKD.js.map → 2dmaf-RRHATFHO.js.map} +0 -0
  658. /package/dist/{AggMatrixInput-XSZSKYJM.js.map → AggMatrixInput-4UHBCXYH.js.map} +0 -0
  659. /package/dist/{AggregateMatrix-BETOEO7U.js.map → AggregateMatrix-IJE5CM5Y.js.map} +0 -0
  660. /package/dist/{AppHeader-6X6SNEBI.js.map → AppHeader-UXGLRW6C.js.map} +0 -0
  661. /package/dist/{BoxPlot-J6JKDOH6.js.map → BoxPlot-GQYC22KY.js.map} +0 -0
  662. /package/dist/{CorrelationVolcano-DMDE4LAP.js.map → CorrelationVolcano-5CWRWZTI.js.map} +0 -0
  663. /package/dist/{Cuminc-6WHLJVOC.js.map → Cuminc-TYHKAPRK.js.map} +0 -0
  664. /package/dist/{DE-EJM6W4Q4.js.map → DE-UUFQGSOI.js.map} +0 -0
  665. /package/dist/{DEinput-AU3E7JM2.js.map → DEinput-DU7MF4YY.js.map} +0 -0
  666. /package/dist/{DM-FN4WJNDX.js.map → DM-SSI5KUBC.js.map} +0 -0
  667. /package/dist/{DifferentialAnalysis-FD57SA7H.js.map → DifferentialAnalysis-G6FE2MXY.js.map} +0 -0
  668. /package/dist/{Disco-BMNSQ6YL.js.map → Disco-B3KGNEAW.js.map} +0 -0
  669. /package/dist/{Disco.UI-4VXFHJQV.js.map → Disco.UI-UNPUBQCN.js.map} +0 -0
  670. /package/dist/{DmrPlot-P5WKLC5J.js.map → DmrPlot-27NGDMT4.js.map} +0 -0
  671. /package/dist/{GB-BO75K7TF.js.map → GB-SXACUA4V.js.map} +0 -0
  672. /package/dist/{GSEA-OEFXDJ23.js.map → GSEA-EHMBA3TF.js.map} +0 -0
  673. /package/dist/{GeneExpInput-FP7RBRXH.js.map → GeneExpInput-NDXISF2U.js.map} +0 -0
  674. /package/dist/{Geomap-ELX6O3IS.js.map → Geomap-3CNT227W.js.map} +0 -0
  675. /package/dist/{HicApp-3JVEBSWO.js.map → HicApp-VQBUB6EZ.js.map} +0 -0
  676. /package/dist/{IDCViewer-76N6I34Q.js.map → IDCViewer-DTOE7KDX.js.map} +0 -0
  677. /package/dist/{NumBinaryEditor-XLACD6VG.js.map → NumBinaryEditor-IVZ4MMQT.js.map} +0 -0
  678. /package/dist/{NumBinaryEditor.unit.spec-3Z62H2JG.js.map → NumBinaryEditor.unit.spec-3BSQ6FM4.js.map} +0 -0
  679. /package/dist/{NumContEditor-Z5ONNXFC.js.map → NumContEditor-CUZHU3IO.js.map} +0 -0
  680. /package/dist/{NumContEditor.unit.spec-EJ3L7WH6.js.map → NumContEditor.unit.spec-SCQFD2Y7.js.map} +0 -0
  681. /package/dist/{NumCustomBinEditor-WKXAK5ZW.js.map → NumCustomBinEditor-UEEYZ4ZO.js.map} +0 -0
  682. /package/dist/{NumCustomBinEditor.unit.spec-WXCLBBWT.js.map → NumCustomBinEditor.unit.spec-GYS35OQV.js.map} +0 -0
  683. /package/dist/{NumDiscreteEditor-5UBFABFT.js.map → NumDiscreteEditor-IT7NIXTV.js.map} +0 -0
  684. /package/dist/{NumDiscreteEditor.unit.spec-5EMKOQZU.js.map → NumDiscreteEditor.unit.spec-LB6VLAWO.js.map} +0 -0
  685. /package/dist/{NumRegularBinEditor-DMOKU5UM.js.map → NumRegularBinEditor-FF6UXZWN.js.map} +0 -0
  686. /package/dist/{NumRegularBinEditor.unit.spec-QT2WSGNL.js.map → NumRegularBinEditor.unit.spec-Z4S5LH2C.js.map} +0 -0
  687. /package/dist/{NumSplineEditor-G3T26V5H.js.map → NumSplineEditor-IW5WEN3P.js.map} +0 -0
  688. /package/dist/{NumSplineEditor.unit.spec-P4WNWJKE.js.map → NumSplineEditor.unit.spec-PAEN3SAD.js.map} +0 -0
  689. /package/dist/{NumericDensity-AWQK5BKC.js.map → NumericDensity-CPJIQLYT.js.map} +0 -0
  690. /package/dist/{NumericDensity.unit.spec-TO5EUJF3.js.map → NumericDensity.unit.spec-4KHECHVU.js.map} +0 -0
  691. /package/dist/{NumericHandler-MZ4WZDMW.js.map → NumericHandler-SEFTQJDM.js.map} +0 -0
  692. /package/dist/{NumericHandler.unit.spec-JFLQQ2RI.js.map → NumericHandler.unit.spec-UGDR3476.js.map} +0 -0
  693. /package/dist/{Regression-QO5EKLTZ.js.map → Regression-WDSISHYL.js.map} +0 -0
  694. /package/dist/{RunChart2-JLN324L6.js.map → RunChart2-2NPADXUR.js.map} +0 -0
  695. /package/dist/{SC-W3M6IEDU.js.map → SC-EWDBPHEL.js.map} +0 -0
  696. /package/dist/{Violin-BCHEWRDU.js.map → Violin-POGGPCZY.js.map} +0 -0
  697. /package/dist/{Volcano-2PP67BZI.js.map → Volcano-U2B4KEUL.js.map} +0 -0
  698. /package/dist/{Wsi-GNGKPGJF.js.map → Wsi-G7OCAJ3R.js.map} +0 -0
  699. /package/dist/{adSandbox-XRWLD73B.js.map → adSandbox-SUCX6DAQ.js.map} +0 -0
  700. /package/dist/{animatedBubbleChart-23CVOAXV.js.map → animatedBubbleChart-SDBWJELZ.js.map} +0 -0
  701. /package/dist/{app-KRJBODQD.js.map → app-ATQM5PKI.js.map} +0 -0
  702. /package/dist/{app-YLGQTR3U.js.map → app-BCKEWJCY.js.map} +0 -0
  703. /package/dist/{bam-3VPOMNJU.js.map → bam-QK2ZLZDI.js.map} +0 -0
  704. /package/dist/{barchart-I4S7TYFY.js.map → barchart-RHDKI3NZ.js.map} +0 -0
  705. /package/dist/{barchart2-VXUP2L4M.js.map → barchart2-CS3E6FOY.js.map} +0 -0
  706. /package/dist/{block-NVXPY2IK.js.map → block-RQ3HTJVP.js.map} +0 -0
  707. /package/dist/{block.init-CQ76SLCN.js.map → block.init-T33F47DO.js.map} +0 -0
  708. /package/dist/{block.mds.expressionrank-CTMM4IFI.js.map → block.mds.expressionrank-LQD6MN6Z.js.map} +0 -0
  709. /package/dist/{block.mds.geneboxplot-XYUU3PUZ.js.map → block.mds.geneboxplot-N5XHHVR7.js.map} +0 -0
  710. /package/dist/{block.mds.junction-LX4ETPO6.js.map → block.mds.junction-JD4WQUSH.js.map} +0 -0
  711. /package/dist/{block.mds.svcnv-ABWHJJOA.js.map → block.mds.svcnv-LCTYWXL2.js.map} +0 -0
  712. /package/dist/{block.svg-NY7ZDCUD.js.map → block.svg-2F3RGTI3.js.map} +0 -0
  713. /package/dist/{block.tk.aicheck-3C52WICS.js.map → block.tk.aicheck-BOF6WZ5E.js.map} +0 -0
  714. /package/dist/{block.tk.bam-QQHY3KEB.js.map → block.tk.bam-5GBYEQBM.js.map} +0 -0
  715. /package/dist/{block.tk.bedgraphdot-EWZAMZ6E.js.map → block.tk.bedgraphdot-LVQEP4RS.js.map} +0 -0
  716. /package/dist/{block.tk.bigwig.ui-OW3Q6THD.js.map → block.tk.bigwig.ui-HHBO4JAC.js.map} +0 -0
  717. /package/dist/{block.tk.hicstraw-T7GJ7ZV6.js.map → block.tk.hicstraw-JBO4UEOA.js.map} +0 -0
  718. /package/dist/{block.tk.junction-WKD34BUV.js.map → block.tk.junction-S5S2N7FK.js.map} +0 -0
  719. /package/dist/{block.tk.junction.textmatrixui-G6KNHIUC.js.map → block.tk.junction.textmatrixui-DNQL7WB5.js.map} +0 -0
  720. /package/dist/{block.tk.ld-PXXGZMUF.js.map → block.tk.ld-JHQNR67E.js.map} +0 -0
  721. /package/dist/{block.tk.menu-W3RFEKFJ.js.map → block.tk.menu-7JBJOY2O.js.map} +0 -0
  722. /package/dist/{block.tk.pgv-QVRJDGGG.js.map → block.tk.pgv-FQPREV6P.js.map} +0 -0
  723. /package/dist/{brainImaging-D42IV6LT.js.map → brainImaging-HEWGZZNY.js.map} +0 -0
  724. /package/dist/{brainRegions-DLXBHC4Y.js.map → brainRegions-QUGB7YUW.js.map} +0 -0
  725. /package/dist/{bubbleHeatmap-LATPOGLF.js.map → bubbleHeatmap-OZRONGAX.js.map} +0 -0
  726. /package/dist/{cellTypeBubbleHeatmap-H7VHFQFD.js.map → cellTypeBubbleHeatmap-N7NDE325.js.map} +0 -0
  727. /package/dist/{chunk-EG7HOBJY.js.map → chunk-2FWSNJEN.js.map} +0 -0
  728. /package/dist/{chunk-WPR2CMWS.js.map → chunk-2JIKMCJR.js.map} +0 -0
  729. /package/dist/{chunk-CNQJ4LOC.js.map → chunk-3SPEW6R6.js.map} +0 -0
  730. /package/dist/{chunk-CVT7JE5B.js.map → chunk-5G6O5RYM.js.map} +0 -0
  731. /package/dist/{chunk-YZO7NVZW.js.map → chunk-65DO5IKM.js.map} +0 -0
  732. /package/dist/{chunk-B4NTLUWL.js.map → chunk-6Q5SOSSU.js.map} +0 -0
  733. /package/dist/{chunk-AIH5PKJN.js.map → chunk-7JHIUS54.js.map} +0 -0
  734. /package/dist/{chunk-VB47XOA4.js.map → chunk-7X347XMF.js.map} +0 -0
  735. /package/dist/{chunk-VP3BJXOR.js.map → chunk-ABLG7GUS.js.map} +0 -0
  736. /package/dist/{chunk-SZ2VC2I2.js.map → chunk-AFEFZ74T.js.map} +0 -0
  737. /package/dist/{chunk-F22GGUNI.js.map → chunk-AIC43DTG.js.map} +0 -0
  738. /package/dist/{chunk-R47CRASM.js.map → chunk-AJXP4AV7.js.map} +0 -0
  739. /package/dist/{chunk-DBOJ3TMI.js.map → chunk-AMW5LCUB.js.map} +0 -0
  740. /package/dist/{chunk-HAQGBJZ7.js.map → chunk-AV2IH5K2.js.map} +0 -0
  741. /package/dist/{chunk-XCJHO2PZ.js.map → chunk-B3WLXXGY.js.map} +0 -0
  742. /package/dist/{chunk-RXAKFDZM.js.map → chunk-BG6GAROI.js.map} +0 -0
  743. /package/dist/{chunk-5KNC4AJ7.js.map → chunk-BU6PAOGA.js.map} +0 -0
  744. /package/dist/{chunk-ROLQAMNM.js.map → chunk-C2TII2FF.js.map} +0 -0
  745. /package/dist/{chunk-DDDL46RE.js.map → chunk-CTFHEDG2.js.map} +0 -0
  746. /package/dist/{chunk-JSYPAJVF.js.map → chunk-CXEECHP5.js.map} +0 -0
  747. /package/dist/{chunk-PEBOVSIC.js.map → chunk-CZK4EV3Y.js.map} +0 -0
  748. /package/dist/{chunk-L4ORRHDP.js.map → chunk-D35GNF3Y.js.map} +0 -0
  749. /package/dist/{chunk-TAOTFHMT.js.map → chunk-DFZWE3TR.js.map} +0 -0
  750. /package/dist/{chunk-4BQ3HUD2.js.map → chunk-E7XHA4YL.js.map} +0 -0
  751. /package/dist/{chunk-SYDK5RV5.js.map → chunk-EDFBRXX2.js.map} +0 -0
  752. /package/dist/{chunk-5KHI46ZP.js.map → chunk-F23EQSGU.js.map} +0 -0
  753. /package/dist/{chunk-QCPXDSKH.js.map → chunk-F2EEQ7KG.js.map} +0 -0
  754. /package/dist/{chunk-CFHGRMLN.js.map → chunk-F5FFI7Z7.js.map} +0 -0
  755. /package/dist/{chunk-DURCB2KS.js.map → chunk-FK5NL2DF.js.map} +0 -0
  756. /package/dist/{chunk-G7YFQ4AK.js.map → chunk-FVZTRWAO.js.map} +0 -0
  757. /package/dist/{chunk-AWZOZLFI.js.map → chunk-GDHQVEIO.js.map} +0 -0
  758. /package/dist/{chunk-TMEDFIPS.js.map → chunk-GSVB4XNS.js.map} +0 -0
  759. /package/dist/{chunk-E64SCL4O.js.map → chunk-GVAV4VRI.js.map} +0 -0
  760. /package/dist/{chunk-ZNOQYTF7.js.map → chunk-H2FELGYK.js.map} +0 -0
  761. /package/dist/{chunk-LLLRH3MB.js.map → chunk-HJARHSDC.js.map} +0 -0
  762. /package/dist/{chunk-VCXAL36U.js.map → chunk-HXRG7XYB.js.map} +0 -0
  763. /package/dist/{chunk-ZOOMCQVD.js.map → chunk-J5KCTRJC.js.map} +0 -0
  764. /package/dist/{chunk-Q37PHHHH.js.map → chunk-JMFVXWDX.js.map} +0 -0
  765. /package/dist/{chunk-L2TWQXK2.js.map → chunk-KGX2OIR4.js.map} +0 -0
  766. /package/dist/{chunk-LH4BM6C7.js.map → chunk-L2NPLA43.js.map} +0 -0
  767. /package/dist/{chunk-6WYKPBZI.js.map → chunk-L2WOLNZK.js.map} +0 -0
  768. /package/dist/{chunk-NT4BDYKQ.js.map → chunk-LQKMDIRB.js.map} +0 -0
  769. /package/dist/{chunk-D4UCM6R7.js.map → chunk-LSQ5AQ6Q.js.map} +0 -0
  770. /package/dist/{chunk-MWDPHZ2K.js.map → chunk-MBQIHLGI.js.map} +0 -0
  771. /package/dist/{chunk-42II4FNQ.js.map → chunk-MFR4WWDM.js.map} +0 -0
  772. /package/dist/{chunk-STDPI4K3.js.map → chunk-NHMIMTJA.js.map} +0 -0
  773. /package/dist/{chunk-C5YMSIGN.js.map → chunk-NPBN3PPZ.js.map} +0 -0
  774. /package/dist/{chunk-5D5Y3XVS.js.map → chunk-NULQJF73.js.map} +0 -0
  775. /package/dist/{chunk-XVBFTP6A.js.map → chunk-NYO7YANQ.js.map} +0 -0
  776. /package/dist/{chunk-TRZVM7OG.js.map → chunk-OBNHXAYG.js.map} +0 -0
  777. /package/dist/{chunk-BQXK7K5J.js.map → chunk-PETYR7LC.js.map} +0 -0
  778. /package/dist/{chunk-OH33WT6Q.js.map → chunk-PLFPXOGX.js.map} +0 -0
  779. /package/dist/{chunk-AYZ6BEK4.js.map → chunk-PQVHRM4L.js.map} +0 -0
  780. /package/dist/{chunk-EAVA7XQL.js.map → chunk-QLUTQPZE.js.map} +0 -0
  781. /package/dist/{chunk-KSWKOKY7.js.map → chunk-QNQ2ZYT7.js.map} +0 -0
  782. /package/dist/{chunk-VZGARY6D.js.map → chunk-QYCPIVCX.js.map} +0 -0
  783. /package/dist/{chunk-KE5IMRCJ.js.map → chunk-RZ2THVK4.js.map} +0 -0
  784. /package/dist/{chunk-CBAU2QMR.js.map → chunk-S4IZ4VM7.js.map} +0 -0
  785. /package/dist/{chunk-QDWEKA5J.js.map → chunk-SFUDTUXF.js.map} +0 -0
  786. /package/dist/{chunk-3Z7FX6GQ.js.map → chunk-SUT75MRI.js.map} +0 -0
  787. /package/dist/{chunk-4IWOYJ4D.js.map → chunk-SYLYLOHK.js.map} +0 -0
  788. /package/dist/{chunk-2XH5T5HA.js.map → chunk-TEFWF3SK.js.map} +0 -0
  789. /package/dist/{chunk-WTKV6KPV.js.map → chunk-TPSVPMAN.js.map} +0 -0
  790. /package/dist/{chunk-HCEB7HBL.js.map → chunk-V4ZKHM6D.js.map} +0 -0
  791. /package/dist/{chunk-WO5S6USJ.js.map → chunk-V7DNHPZD.js.map} +0 -0
  792. /package/dist/{chunk-KBEIJEOX.js.map → chunk-VPMQDTYR.js.map} +0 -0
  793. /package/dist/{chunk-ISYZNLED.js.map → chunk-VV6JIG4D.js.map} +0 -0
  794. /package/dist/{chunk-ZZTAUDJV.js.map → chunk-WU3YXPRE.js.map} +0 -0
  795. /package/dist/{chunk-YKR3O6TN.js.map → chunk-X2HWRISK.js.map} +0 -0
  796. /package/dist/{chunk-F4TEXJ74.js.map → chunk-X77QVINS.js.map} +0 -0
  797. /package/dist/{chunk-IXQQHAHZ.js.map → chunk-XXFLJWTQ.js.map} +0 -0
  798. /package/dist/{cohort-E2RISYWQ.js.map → cohort-ATIZW34H.js.map} +0 -0
  799. /package/dist/{condition-ZCROOBW2.js.map → condition-SGJIDZNB.js.map} +0 -0
  800. /package/dist/{controls-TRUCBCUG.js.map → controls-JQCMGPXP.js.map} +0 -0
  801. /package/dist/{controls.config-ZWEI3PWR.js.map → controls.config-WQHVQAIJ.js.map} +0 -0
  802. /package/dist/{correlation-ODRXACI5.js.map → correlation-S3MN3L5Q.js.map} +0 -0
  803. /package/dist/{customdata.inputui-WADNWN4A.js.map → customdata.inputui-LGTGMJBZ.js.map} +0 -0
  804. /package/dist/{dataDownload-TKACVGQG.js.map → dataDownload-FAWN2WKE.js.map} +0 -0
  805. /package/dist/{databrowser.ui-P74LKVPW.js.map → databrowser.ui-KF3LWQXG.js.map} +0 -0
  806. /package/dist/{dictionary-AR7TU32A.js.map → dictionary-EVLEOT72.js.map} +0 -0
  807. /package/dist/{dnaMethylation-FAA5NEAR.js.map → dnaMethylation-J3SPEM4S.js.map} +0 -0
  808. /package/dist/{dnaMethylation.integration.spec-XO5KTHGG.js.map → dnaMethylation.integration.spec-CTA53YCT.js.map} +0 -0
  809. /package/dist/{dofetch-3ZCQBYTP.js.map → dofetch-3C3MI5NR.js.map} +0 -0
  810. /package/dist/{e2pca-545GHJWM.js.map → e2pca-PTWPY5WP.js.map} +0 -0
  811. /package/dist/{ep-DFBBKNXP.js.map → ep-MS4LQQDR.js.map} +0 -0
  812. /package/dist/{expclust.gdc.spec-IW2EKLIJ.js.map → expclust.gdc.spec-S5FE4MMD.js.map} +0 -0
  813. /package/dist/{facet-JNIRJGUK.js.map → facet-FSOIZJCA.js.map} +0 -0
  814. /package/dist/{gb-C3Z24J7G.js.map → gb-YDEOK7NW.js.map} +0 -0
  815. /package/dist/{geneExpClustering-ZYYXVWEH.js.map → geneExpClustering-37JKKFW3.js.map} +0 -0
  816. /package/dist/{geneExpression-AFI6PX7J.js.map → geneExpression-G6ODP3VY.js.map} +0 -0
  817. /package/dist/{geneExpression-QAHT5JK3.js.map → geneExpression-VQPRFNKE.js.map} +0 -0
  818. /package/dist/{geneExpression.unit.spec-QD6FBA7Y.js.map → geneExpression.unit.spec-ZHXCUG6Q.js.map} +0 -0
  819. /package/dist/{geneORA-UJUDJH33.js.map → geneORA-E3PSS3CI.js.map} +0 -0
  820. /package/dist/{geneRanking-W4GJTT2D.js.map → geneRanking-MK3YYINC.js.map} +0 -0
  821. /package/dist/{geneVariant-PIPW23ZL.js.map → geneVariant-LEMAVFOY.js.map} +0 -0
  822. /package/dist/{geneVariant-7TLTYMRN.js.map → geneVariant-NNSB7JLS.js.map} +0 -0
  823. /package/dist/{geneVariant.integration.spec-EWVEPYWR.js.map → geneVariant.integration.spec-6CC5UAOP.js.map} +0 -0
  824. /package/dist/{genefusion.ui-CQMINB6C.js.map → genefusion.ui-5NCQIQPN.js.map} +0 -0
  825. /package/dist/{geneset-DB2UIWDN.js.map → geneset-ZX4V3CFB.js.map} +0 -0
  826. /package/dist/{genomeBrowser.spec-5PPCZGJY.js.map → genomeBrowser.spec-J7ISXY6H.js.map} +0 -0
  827. /package/dist/{grin2-CRHH7XQL.js.map → grin2-GN3DQNON.js.map} +0 -0
  828. /package/dist/{grin2-6FKWST7P.js.map → grin2-LBGBBB4L.js.map} +0 -0
  829. /package/dist/{hierCluster-LVVQUFIA.js.map → hierCluster-5JURTKAZ.js.map} +0 -0
  830. /package/dist/{hierCluster-N4BWRDRD.js.map → hierCluster-BJ5VBPXR.js.map} +0 -0
  831. /package/dist/{hierCluster.config-RXYYXEKK.js.map → hierCluster.config-4EERP4KK.js.map} +0 -0
  832. /package/dist/{hierCluster.integration.spec-32ELKHGP.js.map → hierCluster.integration.spec-VR4GULRV.js.map} +0 -0
  833. /package/dist/{hierCluster.interactivity-O5PWSGD7.js.map → hierCluster.interactivity-SMTQOKUY.js.map} +0 -0
  834. /package/dist/{hierCluster.renderers-E6FQE2DK.js.map → hierCluster.renderers-PAME7BWU.js.map} +0 -0
  835. /package/dist/{imagePlot-CJJPFFND.js.map → imagePlot-4LMIKBVE.js.map} +0 -0
  836. /package/dist/{importPlot-IT2VCT3E.js.map → importPlot-3CG6ASNH.js.map} +0 -0
  837. /package/dist/{isoformExpression-MB7VXNYL.js.map → isoformExpression-VCDNKTZ6.js.map} +0 -0
  838. /package/dist/{isoformExpression.unit.spec-WBGH5T22.js.map → isoformExpression.unit.spec-ZXYY37TA.js.map} +0 -0
  839. /package/dist/{junction-RUMI5YFR.js.map → junction-5DXJO4PS.js.map} +0 -0
  840. /package/dist/{junction.customTerm-LBVLFTOA.js.map → junction.customTerm-UOPUSEOE.js.map} +0 -0
  841. /package/dist/{junction.unit.spec-VU665JWH.js.map → junction.unit.spec-F35E3GJW.js.map} +0 -0
  842. /package/dist/{launch.adhoc-PG2VDOP5.js.map → launch.adhoc-V2HTCQGD.js.map} +0 -0
  843. /package/dist/{leftlabel.sample-O4EI4FEW.js.map → leftlabel.sample-V7O2EC36.js.map} +0 -0
  844. /package/dist/{lollipop-LWQ3ZPUC.js.map → lollipop-RNRZLG64.js.map} +0 -0
  845. /package/dist/{maf-Z7IN4HAW.js.map → maf-W6SF6BJS.js.map} +0 -0
  846. /package/dist/{maftimeline-AQLIVUW3.js.map → maftimeline-NABCAMHG.js.map} +0 -0
  847. /package/dist/{matrix-LTXFBGFW.js.map → matrix-JC6AJT2N.js.map} +0 -0
  848. /package/dist/{matrix-W2XR54DY.js.map → matrix-UCHESWVK.js.map} +0 -0
  849. /package/dist/{matrix.cells-F44JHGOO.js.map → matrix.cells-B4L42TBM.js.map} +0 -0
  850. /package/dist/{matrix.config-Y5OUBSEC.js.map → matrix.config-6US3AAH7.js.map} +0 -0
  851. /package/dist/{matrix.data-VLIW75OR.js.map → matrix.data-FYFXYDA3.js.map} +0 -0
  852. /package/dist/{matrix.groups-QEWUDMPF.js.map → matrix.groups-Y7DEG3GS.js.map} +0 -0
  853. /package/dist/{matrix.integration.spec-24DH4HNF.js.map → matrix.integration.spec-KXX7SFX5.js.map} +0 -0
  854. /package/dist/{matrix.interactivity-R3BQYXAY.js.map → matrix.interactivity-NHWG4WCC.js.map} +0 -0
  855. /package/dist/{matrix.layout-TENBEUJ6.js.map → matrix.layout-5DQNT7DD.js.map} +0 -0
  856. /package/dist/{matrix.legend-E35GDZWD.js.map → matrix.legend-OY7IF6AS.js.map} +0 -0
  857. /package/dist/{matrix.renderers-CMPAIUYT.js.map → matrix.renderers-GYOXGHPU.js.map} +0 -0
  858. /package/dist/{matrix.serieses-GXVQBJML.js.map → matrix.serieses-657TLDAV.js.map} +0 -0
  859. /package/dist/{matrix.sort-VQS6E6S5.js.map → matrix.sort-IMA2ES3T.js.map} +0 -0
  860. /package/dist/{matrix.sort.unit.spec-P5C6EVDC.js.map → matrix.sort.unit.spec-S6BAFYPR.js.map} +0 -0
  861. /package/dist/{matrix.sorterUi-4R2TVBUJ.js.map → matrix.sorterUi-77F36Q5H.js.map} +0 -0
  862. /package/dist/{matrix.sorterUi.unit.spec-UMI2N2OG.js.map → matrix.sorterUi.unit.spec-V5NVQGD5.js.map} +0 -0
  863. /package/dist/{matrix.unit.spec-HSA7OWME.js.map → matrix.unit.spec-R4NMTZYQ.js.map} +0 -0
  864. /package/dist/{mavb-ZARQZJJR.js.map → mavb-MRCVMBPD.js.map} +0 -0
  865. /package/dist/{mds.fimo-YRNNY5KA.js.map → mds.fimo-5DCH5BEM.js.map} +0 -0
  866. /package/dist/{mds.samplescatterplot-ESIALOMA.js.map → mds.samplescatterplot-VIBCS5M6.js.map} +0 -0
  867. /package/dist/{mds.survivalplot-5E6ITKIU.js.map → mds.survivalplot-AZ7LJDZZ.js.map} +0 -0
  868. /package/dist/{multivalue-CT2QWWB4.js.map → multivalue-4QKGYYW2.js.map} +0 -0
  869. /package/dist/{numericDictTermCluster-CRVSJ6PI.js.map → numericDictTermCluster-GLLG6IK2.js.map} +0 -0
  870. /package/dist/{oncomatrix-MX5EHBNW.js.map → oncomatrix-R32ZPMX7.js.map} +0 -0
  871. /package/dist/{oncomatrix.spec-DN2RAWGZ.js.map → oncomatrix.spec-BMK6LMBS.js.map} +0 -0
  872. /package/dist/{plot.2dvaf-B5QAKDTK.js.map → plot.2dvaf-46FT53MF.js.map} +0 -0
  873. /package/dist/{plot.app-V5DZWC6N.js.map → plot.app-7EE4YCV4.js.map} +0 -0
  874. /package/dist/{plot.barplot-VAJLAU7H.js.map → plot.barplot-FK4J2G7K.js.map} +0 -0
  875. /package/dist/{plot.boxplot-PT3BUNVT.js.map → plot.boxplot-ATY4LK3X.js.map} +0 -0
  876. /package/dist/{plot.brainImaging-2WB7XJJM.js.map → plot.brainImaging-S7B547V4.js.map} +0 -0
  877. /package/dist/{plot.disco-64IPBCII.js.map → plot.disco-K5MMC2GD.js.map} +0 -0
  878. /package/dist/{plot.ssgq-ET4OBMUM.js.map → plot.ssgq-B3OVMZFD.js.map} +0 -0
  879. /package/dist/{plot.vaf2cov-DGMVJ7UN.js.map → plot.vaf2cov-RBHDQULW.js.map} +0 -0
  880. /package/dist/{polar2-CWWDVNZQ.js.map → polar2-GECELCTG.js.map} +0 -0
  881. /package/dist/{profileForms-FM7D4WO2.js.map → profileForms-2USYOA34.js.map} +0 -0
  882. /package/dist/{profilePlot-LQ6K4EXX.js.map → profilePlot-YGD2CF6P.js.map} +0 -0
  883. /package/dist/{pseudbulk.unit.spec-IAONX4QR.js.map → pseudbulk.unit.spec-UVVRP6NR.js.map} +0 -0
  884. /package/dist/{pseudobulk-NIX4JOOZ.js.map → pseudobulk-ZIN5VJGB.js.map} +0 -0
  885. /package/dist/{qualitative-M3XSQZA2.js.map → qualitative-27BZGASV.js.map} +0 -0
  886. /package/dist/{qualitative-GLTKWA6H.js.map → qualitative-N4F6NITI.js.map} +0 -0
  887. /package/dist/{radar2-JBULXNFQ.js.map → radar2-X465RPJX.js.map} +0 -0
  888. /package/dist/{radarFacility2-YYIBHZCY.js.map → radarFacility2-AE7BA62N.js.map} +0 -0
  889. /package/dist/{rememberedGvQ.unit.spec-YJV6DVPN.js.map → rememberedGvQ.unit.spec-4PDIU5RY.js.map} +0 -0
  890. /package/dist/{render-ZCH7R3WL.js.map → render-TD2QWOHT.js.map} +0 -0
  891. /package/dist/{report-YPIAIMND.js.map → report-3Y2OWDF7.js.map} +0 -0
  892. /package/dist/{sampleView-K4GSYMAE.js.map → sampleView-BUMMYRHJ.js.map} +0 -0
  893. /package/dist/{samplelst-F2SLVHFP.js.map → samplelst-BWK53BLI.js.map} +0 -0
  894. /package/dist/{samplematrix-Z6F4F7YN.js.map → samplematrix-RQU43UYR.js.map} +0 -0
  895. /package/dist/{sc-UM7SEGED.js.map → sc-LCBFWCZZ.js.map} +0 -0
  896. /package/dist/{scatter-63XRRLGP.js.map → scatter-6S5I7OW3.js.map} +0 -0
  897. /package/dist/{scatter-HFTYLGDP.js.map → scatter-MJELX75N.js.map} +0 -0
  898. /package/dist/{selectGenomeWithTklst-PJNALPM2.js.map → selectGenomeWithTklst-WAVXHXR5.js.map} +0 -0
  899. /package/dist/{singleCellCellType-HR3R6KBD.js.map → singleCellCellType-WMCAJ7JF.js.map} +0 -0
  900. /package/dist/{singleCellCellType.unit.spec-VK57HQ2O.js.map → singleCellCellType.unit.spec-4Z46ZT5Q.js.map} +0 -0
  901. /package/dist/{singleCellGeneExpression-VWOA7MLN.js.map → singleCellGeneExpression-7Q5ZJT4R.js.map} +0 -0
  902. /package/dist/{singleCellGeneExpression.unit.spec-YP64T3XD.js.map → singleCellGeneExpression.unit.spec-6C7PDGRH.js.map} +0 -0
  903. /package/dist/{singleCellNumericValue-3VIUPYPB.js.map → singleCellNumericValue-QGYITZRC.js.map} +0 -0
  904. /package/dist/{singleCellNumericValue.unit.spec-VR5ICRQA.js.map → singleCellNumericValue.unit.spec-MQUKPEZJ.js.map} +0 -0
  905. /package/dist/{singleCellPlot-36QDY7VL.js.map → singleCellPlot-JJMFJ2KQ.js.map} +0 -0
  906. /package/dist/{singlecell-EXEOLJ3J.js.map → singlecell-J23S3JR2.js.map} +0 -0
  907. /package/dist/{singlecell-D2MZVFR4.js.map → singlecell-Y4OGUWEC.js.map} +0 -0
  908. /package/dist/{snp-XHEHXZMB.js.map → snp-IO6TKWGD.js.map} +0 -0
  909. /package/dist/{snp.unit.spec-YR6IDLL7.js.map → snp.unit.spec-X7ILEEPO.js.map} +0 -0
  910. /package/dist/{snplocus-BM7LUK2U.js.map → snplocus-Z2NGIKMO.js.map} +0 -0
  911. /package/dist/{snplst-22VSEZ7R.js.map → snplst-XCS2FCQV.js.map} +0 -0
  912. /package/dist/{spliceevent.a53ss.diagram-KERTJ3QA.js.map → spliceevent.a53ss.diagram-F3S4BRVG.js.map} +0 -0
  913. /package/dist/{spliceevent.exonskip.diagram-K74VIUA4.js.map → spliceevent.exonskip.diagram-AXCDJKH4.js.map} +0 -0
  914. /package/dist/{spliceevent.noeventdiagram-W7WGSVVL.js.map → spliceevent.noeventdiagram-UK3X667E.js.map} +0 -0
  915. /package/dist/{ssGSEA-XDEA5TVX.js.map → ssGSEA-ZRPNQKJ5.js.map} +0 -0
  916. /package/dist/{ssGSEA.unit.spec-RDCPXJ5S.js.map → ssGSEA.unit.spec-DG5ZHLC7.js.map} +0 -0
  917. /package/dist/{stattable-HZ3DOUEM.js.map → stattable-XYSC3CYU.js.map} +0 -0
  918. /package/dist/{summarizeCnvGeneexp-VB4SOJHT.js.map → summarizeCnvGeneexp-H2NP7VLU.js.map} +0 -0
  919. /package/dist/{summarizeGeneexpSurvival-5ZWIJ6O4.js.map → summarizeGeneexpSurvival-HTCD3VQQ.js.map} +0 -0
  920. /package/dist/{summarizeMutationCnv-MBPU64C5.js.map → summarizeMutationCnv-UEGXWK2P.js.map} +0 -0
  921. /package/dist/{summarizeMutationDiagnosis-QRP4ITNL.js.map → summarizeMutationDiagnosis-MJGWP7IT.js.map} +0 -0
  922. /package/dist/{summarizeMutationSurvival-SSXAY5W4.js.map → summarizeMutationSurvival-55JW5LA6.js.map} +0 -0
  923. /package/dist/{summary-SRESZS4Z.js.map → summary-HJO23RGB.js.map} +0 -0
  924. /package/dist/{summary.integration.spec-3V2CEPJM.js.map → summary.integration.spec-OWI2C2N5.js.map} +0 -0
  925. /package/dist/{summaryInput-3VD4KBCU.js.map → summaryInput-RL2JXRDE.js.map} +0 -0
  926. /package/dist/{sunburst-E5IEQQUV.js.map → sunburst-JFY6V5E2.js.map} +0 -0
  927. /package/dist/{survival-H4HYC6GC.js.map → survival-6FLR4YCJ.js.map} +0 -0
  928. /package/dist/{survival-K5WWAELO.js.map → survival-PBBU6PA5.js.map} +0 -0
  929. /package/dist/{survival.integration.spec-SPN2TSQW.js.map → survival.integration.spec-WAKTGYGP.js.map} +0 -0
  930. /package/dist/{svgraph-USRAYSBN.js.map → svgraph-WD3DUZV7.js.map} +0 -0
  931. /package/dist/{svmr-MOKLLJKJ.js.map → svmr-AP6ZFO7S.js.map} +0 -0
  932. /package/dist/{table-WD3P3WL2.js.map → table-GX3VJLPZ.js.map} +0 -0
  933. /package/dist/{termCollection-JU4OJRWD.js.map → termCollection-QE7U5QBD.js.map} +0 -0
  934. /package/dist/{termCollection-VWS5CKVH.js.map → termCollection-YQ332WKB.js.map} +0 -0
  935. /package/dist/{termCollection.unit.spec-TPUJWKKW.js.map → termCollection.unit.spec-ELLN7VRA.js.map} +0 -0
  936. /package/dist/{termCollectionFractionSelection-UWLHDPX2.js.map → termCollectionFractionSelection-V3RP5KAT.js.map} +0 -0
  937. /package/dist/{termCollectionFractionSelection.unit.spec-RBHJY34K.js.map → termCollectionFractionSelection.unit.spec-JR7Q7TJI.js.map} +0 -0
  938. /package/dist/{tk-OAOVCATS.js.map → tk-GD2KJM5W.js.map} +0 -0
  939. /package/dist/{tk-SMOGJUD7.js.map → tk-J5VPFEX6.js.map} +0 -0
  940. /package/dist/{tp.ui-EMWJCGRX.js.map → tp.ui-5K3AAXDW.js.map} +0 -0
  941. /package/dist/{tvs.categorical-A7J4RIKL.js.map → tvs.categorical-RPACB4VU.js.map} +0 -0
  942. /package/dist/{tvs.condition-HFLZES5E.js.map → tvs.condition-O6JBUM6D.js.map} +0 -0
  943. /package/dist/{tvs.dt-GBYX2RWX.js.map → tvs.dt-5EVBSRX3.js.map} +0 -0
  944. /package/dist/{tvs.dtcnv.categorical-X2K3MIPG.js.map → tvs.dtcnv.categorical-Y5YHBZNC.js.map} +0 -0
  945. /package/dist/{tvs.dtcnv.continuous-5EMX4PBP.js.map → tvs.dtcnv.continuous-WP322QUP.js.map} +0 -0
  946. /package/dist/{tvs.dtfusion-7VVSPNRK.js.map → tvs.dtfusion-CCMUFDMQ.js.map} +0 -0
  947. /package/dist/{tvs.dtitd-2YGFPXOY.js.map → tvs.dtitd-P3ED3MWA.js.map} +0 -0
  948. /package/dist/{tvs.dtsnvindel-EISO52O6.js.map → tvs.dtsnvindel-X2MXPLC6.js.map} +0 -0
  949. /package/dist/{tvs.dtsv-RTAMAW3G.js.map → tvs.dtsv-4FOWFNVV.js.map} +0 -0
  950. /package/dist/{tvs.multivalue-5N6PSG4L.js.map → tvs.multivalue-IRF467ZK.js.map} +0 -0
  951. /package/dist/{tvs.numeric-R5UT7ARM.js.map → tvs.numeric-C7FDCGCS.js.map} +0 -0
  952. /package/dist/{tvs.samplelst-SZDNNFK5.js.map → tvs.samplelst-CBU6ATI5.js.map} +0 -0
  953. /package/dist/{tvs.survival-EUUDDXP7.js.map → tvs.survival-3K5ASAXV.js.map} +0 -0
  954. /package/dist/{tvs.termCollection-DAHEYZK2.js.map → tvs.termCollection-MXEWO6KJ.js.map} +0 -0
  955. /package/dist/{vocabulary-P4XRHR34.js.map → vocabulary-GQBHDP3K.js.map} +0 -0
  956. /package/dist/{wsi.direct-J7VX5EMI.js.map → wsi.direct-25JUHWEF.js.map} +0 -0
@@ -1,1344 +0,0 @@
1
- import {
2
- PlotBase,
3
- digestMessage,
4
- filterRxCompInit,
5
- formatHeaderText,
6
- getCombinedTermFilter,
7
- getGEunit,
8
- getNormalRoot,
9
- make_radios,
10
- newSandboxDiv,
11
- sortTableCallBack
12
- } from "./chunk-FIFNXVTS.js";
13
- import "./chunk-HJ6L54YS.js";
14
- import {
15
- importPlot
16
- } from "./chunk-N2FCAFJH.js";
17
- import "./chunk-OH33WT6Q.js";
18
- import {
19
- Menu
20
- } from "./chunk-CNFTQSNE.js";
21
- import "./chunk-EEB5VE2A.js";
22
- import {
23
- icons
24
- } from "./chunk-3CIL7KH7.js";
25
- import "./chunk-T4XPCSLP.js";
26
- import {
27
- dofetch3
28
- } from "./chunk-5MHE7AIV.js";
29
- import "./chunk-6WYKPBZI.js";
30
- import "./chunk-W5J3LTYS.js";
31
- import "./chunk-DBOJ3TMI.js";
32
- import {
33
- SINGLECELL_CELLTYPE,
34
- SINGLECELL_GENE_EXPRESSION,
35
- TermTypeGroups
36
- } from "./chunk-EZFO5UYD.js";
37
- import {
38
- copyMerge,
39
- getCompInit,
40
- multiInit
41
- } from "./chunk-HBNB5TRH.js";
42
- import "./chunk-PF4DSFDR.js";
43
- import "./chunk-4OLM3KSB.js";
44
- import "./chunk-6XKAOSQE.js";
45
- import "./chunk-TLT4YIG3.js";
46
- import "./chunk-5R63Q5KH.js";
47
- import {
48
- select_default
49
- } from "./chunk-I6Y4O3RR.js";
50
- import "./chunk-Q5RDQNIT.js";
51
- import "./chunk-HS5PO5ZQ.js";
52
-
53
- // plots/sc/model/SCModel.ts
54
- var SCModel = class {
55
- constructor(sc) {
56
- /** whether a sample has a spatial image (with the consolidated h5ad the
57
- spatial subplot needs), keyed by sID. Successful probes are cached;
58
- failures return false for the current render and may be retried. */
59
- this.sampleHasSpatial = {};
60
- this.sc = sc;
61
- this.app = sc.app;
62
- this.id = sc.id;
63
- this.state = sc.app.getState();
64
- }
65
- /********** All Single Cell SAMPLES for rendering the sample table ******** */
66
- async getAllSampleData(state) {
67
- const body = {
68
- genome: state.vocab.genome,
69
- dslabel: state.vocab.dslabel,
70
- filter: getNormalRoot(state.termfilter.filter),
71
- filter0: state.termfilter.filter0
72
- };
73
- return await dofetch3("termdb/singlecellSamples", { body, signal: this.sc.api?.getAbortSignal() });
74
- }
75
- //Fetches optional name for ds defined columns
76
- async getColumnLabels(dsScSamples) {
77
- if (!dsScSamples || !dsScSamples.sampleColumns) return;
78
- const colsCopy = structuredClone(dsScSamples.sampleColumns);
79
- for (const col of colsCopy) {
80
- let label = col.termid;
81
- try {
82
- label = (await this.app.vocabApi.getterm(col.termid)).name;
83
- } catch (e) {
84
- if (e.message) {
85
- }
86
- }
87
- col.label = label;
88
- }
89
- return colsCopy;
90
- }
91
- /********** Single Cell DATA for rendering plots ********
92
- * This is for the plot buttons. Returns an array plots with found files or
93
- * available data. */
94
- async getSampleData() {
95
- const body = this.getDataRequestOpts();
96
- if (!body) return;
97
- return await dofetch3("termdb/singlecellData", { body, signal: this.sc.api?.getAbortSignal() });
98
- }
99
- /** May provide active plots to the request and return plot data when
100
- * checkPlotAvailability is false. When checkPlotAvailability is true,
101
- * only returns which plots are available but not the actual data. */
102
- getDataRequestOpts(_plots = [], checkPlotAvailability = true) {
103
- const state = this.app.getState();
104
- const singleCellTermdbConfig = state.termdbConfig?.queries?.singleCell;
105
- if (!singleCellTermdbConfig?.data) throw new Error("No singleCell.data defined in termdbConfig.queries");
106
- const config = state.plots.find((p) => p.id === this.id);
107
- if (!config.settings.sc.item) return;
108
- const plots = _plots?.length ? _plots : singleCellTermdbConfig.data.plots.map((p) => p.name);
109
- return {
110
- genome: this.state.vocab.genome,
111
- dslabel: this.state.vocab.dslabel,
112
- // if true, only return available plot names, but not actual plot data
113
- checkPlotAvailability,
114
- plots,
115
- sample: {
116
- eID: config.settings.sc.item.eID,
117
- sID: config.settings.sc.item.sID
118
- }
119
- };
120
- }
121
- async hasSpatialImage(sID) {
122
- if (!(sID in this.sampleHasSpatial)) {
123
- if (!this.state.termdbConfig?.queries?.w2) return false;
124
- let r;
125
- try {
126
- r = await dofetch3("termdb/wsiBySample", {
127
- // imageType: only the spatial root is enumerated for the probe
128
- body: {
129
- genome: this.state.vocab.genome,
130
- dslabel: this.state.vocab.dslabel,
131
- sample_id: sID,
132
- imageType: "spatial"
133
- },
134
- signal: this.sc.api?.getAbortSignal()
135
- });
136
- } catch (e) {
137
- if (this.app.vocabApi?.isAbortError?.(e)) throw e;
138
- return false;
139
- }
140
- if (r?.error) return false;
141
- this.sampleHasSpatial[sID] = !!(r?.images || []).some((i) => i.type == "spatial" && i.spatialData);
142
- }
143
- return this.sampleHasSpatial[sID];
144
- }
145
- /** Essentially for the GDC. Maybe applied to other ds in the future. */
146
- async getCategories(_plots) {
147
- const body = this.getDataRequestOpts(_plots, false);
148
- if (!body) return;
149
- let res;
150
- try {
151
- res = await dofetch3("termdb/singlecellData", { body, signal: this.sc.api?.getAbortSignal() });
152
- } catch (e) {
153
- if (e instanceof Error) console.error(`${e.message || e}`);
154
- }
155
- return this.formatCategories(res);
156
- }
157
- formatCategories(res) {
158
- const plot = structuredClone(res.plots[0]);
159
- plot.cells = [...plot.noExpCells, ...plot.expCells];
160
- const clusters = new Set(plot.cells.map((c) => c.category));
161
- const sortedClusters = Array.from(clusters).sort((a, b) => {
162
- const num1 = parseInt(a.split(" ")[1]);
163
- const num2 = parseInt(b.split(" ")[1]);
164
- return num1 - num2;
165
- });
166
- return sortedClusters;
167
- }
168
- };
169
-
170
- // plots/sc/viewModel/SCViewModel.ts
171
- var SCViewModel = class {
172
- constructor(app, sampleColumns) {
173
- this.app = app;
174
- this.state = this.app.getState();
175
- this.sampleColumns = sampleColumns || [];
176
- this.metaResultIds = /* @__PURE__ */ new Set();
177
- }
178
- processData(config, _items) {
179
- const items = _items.sort((a, b) => b.isMetaResult === a.isMetaResult ? 0 : b.isMetaResult ? 1 : -1);
180
- const [rows, columns, sampleColIdx] = this.getTabelData(config, items, this.sampleColumns);
181
- const selectedRows = [];
182
- const sID = config.settings.sc.item?.sID;
183
- const i = sID ? items.findIndex((item) => item.sample === sID || item.experiments?.some((e) => e.sampleName === sID)) : -1;
184
- if (i != -1) selectedRows.push(i);
185
- this.tableData = {
186
- rows,
187
- columns,
188
- selectedRows,
189
- sampleColIdx
190
- };
191
- }
192
- /** Shape the selected sample's plot data for the plot buttons view:
193
- * the server's plots plus flags the view only reads (hasSpatial shows
194
- * the Spatial button). */
195
- formatPlotsData(sampleData, hasSpatial) {
196
- return { ...sampleData, hasSpatial };
197
- }
198
- getTabelData(plotConfig, items, sampleColumns) {
199
- const rows = [];
200
- const hasExperiments = items.some((i) => i.experiments);
201
- let sampleColIdx = -1;
202
- let firstColLabel = plotConfig.settings.sc.columns.sample;
203
- if (items[0]?.isMetaResult) firstColLabel = "";
204
- const columns = [{ label: firstColLabel, sortable: true }];
205
- if (hasExperiments) {
206
- columns.push({ label: "Sample", sortable: true });
207
- sampleColIdx = 1;
208
- } else sampleColIdx = 0;
209
- columns.push({ label: "Shown plots" });
210
- for (const col of sampleColumns || []) {
211
- columns.push({
212
- label: col.label,
213
- width: "14vw",
214
- sortable: true
215
- });
216
- }
217
- if (hasExperiments) columns.push({ label: "Experiment", sortable: true });
218
- for (const item of items) {
219
- if (item.isMetaResult) this.metaResultIds.add(item.sample);
220
- if (hasExperiments)
221
- for (const exp of item.experiments) {
222
- const row = [{ value: item.sample, __experimentID: exp.experimentID }];
223
- row.push({ value: exp.sampleName });
224
- row.push({ value: "" });
225
- for (const col of sampleColumns || []) {
226
- row.push({ value: item[col.termid] });
227
- }
228
- const urlTemp = this.state.termdbConfig?.urlTemplates?.scrnaExperimentId;
229
- if (urlTemp) row.push({ value: exp.experimentID, url: `${urlTemp.base}${exp.experimentID}` });
230
- else row.push({ value: exp.experimentID });
231
- rows.push(row);
232
- }
233
- else {
234
- const row = item.isMetaResult ? [{ html: item.sample.replace(/_/g, " "), value: item.sample, elemId: "isMetaResult" }] : [{ value: item.sample }];
235
- row.push({ value: "" });
236
- for (const col of sampleColumns || []) {
237
- const value = item[col.termid];
238
- if (value == null && item.isMetaResult) row.push({ value: "All" });
239
- else row.push({ value: item[col.termid] });
240
- }
241
- rows.push(row);
242
- }
243
- }
244
- return [rows, columns, sampleColIdx];
245
- }
246
- };
247
-
248
- // plots/sc/interactions/SCInteractions.ts
249
- var SCInteractions = class {
250
- constructor(sc) {
251
- this.app = sc.app;
252
- this.id = sc.id;
253
- this.model = sc.model;
254
- this.viewModel = sc.viewModel;
255
- }
256
- /** Add the plot to the state.plots array with .parentId. Adding
257
- * .parentId prevents the plot from launching in a new sandbox outside SC.
258
- * Pass the .parentId to both the plotConfig and the action.
259
- * this.getState() in SC.ts will find all the subplots with the parentId==this.id
260
- * SC.main() initializes the subplots as components in chartsDiv */
261
- async createSubplot(config) {
262
- const c = Object.assign({}, config, { parentId: this.id });
263
- await this.app.dispatch({
264
- type: "plot_create",
265
- parentId: this.id,
266
- config: c
267
- });
268
- }
269
- /** Updates the selected item in the plot settings */
270
- async updateItem(item) {
271
- item.isMetaResult = this.viewModel.metaResultIds.has(item.sID);
272
- await this.app.dispatch({
273
- type: "plot_edit",
274
- id: this.id,
275
- config: { settings: { sc: { item } } }
276
- });
277
- }
278
- async getDropDownOptions(plot) {
279
- return this.model.getCategories(plot);
280
- }
281
- };
282
-
283
- // plots/sc/view/SCSampleTable.ts
284
- var SCSampleTable = class {
285
- constructor(dom, tableData, opts = {}) {
286
- this.sampleColIdx = 0;
287
- this.showPlotsColumn = false;
288
- this.rowMap = /* @__PURE__ */ new Map();
289
- this.rows = [];
290
- this.columns = [];
291
- this.dom = dom;
292
- this.holder = dom?.tableDiv || dom;
293
- this.onRowClick = opts.onRowClick;
294
- this.applyTableData(tableData);
295
- this.renderStaticTable();
296
- }
297
- applyTableData(tableData) {
298
- this.tableData = tableData;
299
- this.rows = tableData.rows;
300
- this.columns = tableData.columns;
301
- this.sampleColIdx = tableData.sampleColIdx ?? 0;
302
- }
303
- renderStaticTable() {
304
- this.holder.selectAll("*").remove();
305
- this.parentDiv = this.holder.append("div").style("background-color", "white").style("display", "inline-block").style("max-height", "30vh").style("max-width", "90vw").classed("sjpp_show_scrollbar", true);
306
- this.table = this.parentDiv.append("table").style("width", "100%");
307
- this.thead = this.table.append("thead");
308
- this.thead.style("position", "sticky").style("top", "0").style("background-color", "white").style("z-index", "1");
309
- this.tableHeaderRow = this.thead.append("tr");
310
- this.tbody = this.table.append("tbody");
311
- this.renderHeader();
312
- this.renderRows();
313
- }
314
- /** Renders into a freshly emptied header row (see renderStaticTable()), so this join
315
- * never has anything to match against existing DOM -- every column enters. Still uses
316
- * .data().join() over the manual loop so per-column attrs are declarative and the
317
- * heterogeneous per-cell setup (label + optional sort icon) is isolated in one place. */
318
- renderHeader() {
319
- this.tableHeaderRow.append("td").style("width", "1vw");
320
- this.tableHeaderRow.append("th").style("width", "1.5vw").style("padding", "0");
321
- this.tableHeaderRow.selectAll("th.sjpp_table_header").data(this.columns).join("th").attr("class", "sjpp_table_item sjpp_table_header").style("display", (column) => column.label === "Shown plots" && !this.showPlotsColumn ? "none" : null).style("width", (column) => column.width || null).attr("title", (column) => column.tooltip || null).each((column, columnIndex, nodes) => this.renderHeaderLabel(select_default(nodes[columnIndex]), column, columnIndex));
322
- }
323
- renderHeaderLabel(th, column, columnIndex) {
324
- const labelWrap = th.append("span").style("display", "inline-flex").style("align-items", "center");
325
- labelWrap.append("span").text(column.label);
326
- if (!column.sortable) return;
327
- const sortDiv = labelWrap.append("div").style("display", "inline-block").style("padding-left", "6px");
328
- let isAscending = false;
329
- icons["updown"](sortDiv, {
330
- handler: () => {
331
- isAscending = !isAscending;
332
- this.sortRows(sortTableCallBack(columnIndex, this.rows, isAscending));
333
- }
334
- });
335
- }
336
- /** Renders into a freshly emptied tbody (see renderStaticTable()), so this join
337
- * never has anything to match against existing DOM -- every row enters. */
338
- renderRows() {
339
- this.rowMap.clear();
340
- this.tbody.selectAll("tr.sjpp_row_wrapper").data(this.rows).join("tr").attr("class", "sjpp_row_wrapper").attr("tabindex", 0).each((row, rowIndex, nodes) => this.renderRow(select_default(nodes[rowIndex]), row, rowIndex));
341
- this.renumberRows();
342
- }
343
- renderRow(tr, row, rowIndex) {
344
- const sampleId = String(row[this.sampleColIdx]?.value ?? "");
345
- if (!sampleId) return;
346
- tr.append("td").attr("class", "sjpp_row_index").text(rowIndex + 1).style("text-align", "center").style("width", "1vw").style("font-size", "0.8rem");
347
- tr.append("td").style("width", "1.5vw").style("padding", "0 6px").style("text-align", "center").append("input").attr("type", "radio").attr("name", "sjpp-sc-row-selection").attr("value", sampleId).attr("aria-label", `Select ${sampleId}`).property("checked", this.tableData.selectedRows.includes(rowIndex)).on("change", () => this.onRowClick?.(sampleId));
348
- const entry = { sampleId, row: tr, cells: {} };
349
- tr.selectAll("td.sjpp_table_item").data(row).join("td").attr("id", (cell) => cell.elemId || null).attr("class", "sjpp_table_item").attr("data-testid", (cell) => cell.dataTestId || "sjpp-table-cell-item").each((cell, colIdx, nodes) => this.renderDataCell(select_default(nodes[colIdx]), cell, colIdx, entry));
350
- tr.on("click", () => this.onRowClick?.(sampleId));
351
- tr.on("keydown", (event) => {
352
- if (event.key === "Enter") this.onRowClick?.(sampleId);
353
- });
354
- this.rowMap.set(sampleId, entry);
355
- }
356
- /** url > html > value, matching the old renderTable() priority (client/dom/table.ts):
357
- * meta-result rows set both html (display label) and value (raw sample id, used
358
- * elsewhere for lookups), and html is meant to win for rendering. */
359
- renderDataCell(td, cell, colIdx, entry) {
360
- const isShownPlotsCol = this.columns[colIdx]?.label === "Shown plots";
361
- if (isShownPlotsCol && !this.showPlotsColumn) td.style("display", "none");
362
- if (colIdx === this.sampleColIdx) entry.cells.sample = td;
363
- if (isShownPlotsCol) entry.cells.shownPlots = td;
364
- if (cell.url)
365
- td.append("a").text(cell.value || cell.value === 0 ? cell.value : cell.url).attr("href", cell.url).attr("target", "_blank").attr("rel", "noopener noreferrer").attr("aria-label", `Click to ${cell.url}`).on("click", (event) => event.stopPropagation());
366
- else if (cell.html) td.html(cell.html);
367
- else if ("value" in cell) td.text(cell.value).attr("aria-label", cell.value);
368
- }
369
- /** Patches the table in place when the incoming data describes the same
370
- * set of samples/columns (e.g. a subplot state change re-triggers SC's
371
- * main()/update() without the sample list itself changing). Only falls
372
- * back to a full teardown+rebuild when the sample list or columns
373
- * actually changed, so row identity (and scroll position) survives
374
- * updates that only affect plot buttons. */
375
- setTableData(tableData) {
376
- const needsRebuild = !this.isSameShape(tableData);
377
- this.applyTableData(tableData);
378
- if (needsRebuild) this.renderStaticTable();
379
- else this.syncSelectedRows(tableData);
380
- }
381
- /** Compares by the set of sample IDs rather than row order, since sortRows()
382
- * reorders this.rows/DOM in place on user interaction. Comparing positionally
383
- * would treat that as a "shape change" on the next incoming tableData and
384
- * force an unnecessary rebuild that undoes the sort and resets scroll. */
385
- isSameShape(tableData) {
386
- if (tableData.columns.length !== this.columns.length) return false;
387
- for (const [i, column] of this.columns.entries()) {
388
- if (tableData.columns[i]?.label !== column.label) return false;
389
- }
390
- if (tableData.rows.length !== this.rows.length) return false;
391
- const incomingSampleColIdx = tableData.sampleColIdx ?? this.sampleColIdx;
392
- return tableData.rows.every((row) => this.rowMap.has(String(row[incomingSampleColIdx]?.value ?? "")));
393
- }
394
- /** selectedRows is always 0 or 1 entries (radio selection), see SCViewModel. */
395
- syncSelectedRows(tableData) {
396
- const sampleColIdx = tableData.sampleColIdx ?? this.sampleColIdx;
397
- const selectedRowIndex = tableData.selectedRows[0];
398
- const selectedId = selectedRowIndex != null ? String(tableData.rows[selectedRowIndex]?.[sampleColIdx]?.value ?? "") : "";
399
- for (const [sampleId, entry] of this.rowMap) {
400
- const input = entry.row.select('input[type="radio"]').node();
401
- if (input) input.checked = sampleId === selectedId;
402
- }
403
- }
404
- setShownPlotsColumnVisibility(visible) {
405
- if (visible !== this.showPlotsColumn) this.toggleShownPlotsColumn(visible);
406
- }
407
- toggleShownPlotsColumn(visible) {
408
- this.showPlotsColumn = visible;
409
- const shownPlotsHeaderIndex = this.columns.findIndex((c) => c.label === "Shown plots");
410
- if (shownPlotsHeaderIndex === -1) return;
411
- const domColumnIndex = shownPlotsHeaderIndex + 1;
412
- const headerCells = this.tableHeaderRow.selectAll("th").nodes();
413
- const visibleState = visible ? "table-cell" : "none";
414
- if (headerCells[domColumnIndex]) headerCells[domColumnIndex].style.display = visibleState;
415
- for (const entry of this.rowMap.values()) entry.cells.shownPlots?.style("display", visibleState);
416
- }
417
- /**
418
- * Reorders existing DOM nodes to match a sort, instead of deleting/recreating the
419
- * whole table -- this intentionally keeps row identity (and any injected plot
420
- * buttons) stable. The row-index text and striping were set once at creation from
421
- * that row's original position, so they're now stale for any row that moved;
422
- * renumberRows() recomputes both from the new DOM order, the same way the generic
423
- * renderTable() derives them from visible row position (client/dom/table.ts).
424
- */
425
- sortRows(sortedRows) {
426
- const parentNode = this.tbody.node();
427
- for (const row of sortedRows) {
428
- const sampleId = String(row[this.sampleColIdx]?.value ?? "");
429
- const entry = this.rowMap.get(sampleId);
430
- if (!entry) continue;
431
- parentNode.appendChild(entry.row.node());
432
- }
433
- this.rows = sortedRows;
434
- this.renumberRows();
435
- }
436
- renumberRows() {
437
- this.tbody.selectAll("tr.sjpp_row_wrapper").each((_row, rowIndex, nodes) => {
438
- const tr = select_default(nodes[rowIndex]);
439
- tr.select("td.sjpp_row_index").text(rowIndex + 1);
440
- tr.style("background-color", () => rowIndex % 2 === 1 ? "rgb(245,245,245)" : null);
441
- });
442
- }
443
- };
444
-
445
- // plots/sc/view/SampleTableRenderer.ts
446
- var SampleTableRenderer = class {
447
- constructor(dom, interactions, tableData) {
448
- this.activeSandboxes = /* @__PURE__ */ new Map();
449
- /** Tracks rendered btns per sample to avoid unnecessary destroy/recreate pattern. */
450
- this.rendered = /* @__PURE__ */ new Map();
451
- this.table = null;
452
- this.dom = dom;
453
- this.interactions = interactions;
454
- this.tableData = tableData;
455
- this.renderSamplesTable(tableData);
456
- }
457
- /** Users select one item at a time to render the plot buttons
458
- * to init() plots in the dashboard.*/
459
- renderSamplesTable(tableData) {
460
- this.tableData = tableData;
461
- this.table = new SCSampleTable(this.dom.tableDiv, tableData, {
462
- onRowClick: (sampleId) => {
463
- const data = this.tableData;
464
- const sampleColIdx = data.sampleColIdx ?? 0;
465
- const rowIndex = data.rows.findIndex((row) => String(row[sampleColIdx]?.value ?? "") === sampleId);
466
- if (rowIndex === -1) return;
467
- const item = this.buildItemFromRow(data, rowIndex);
468
- this.interactions.updateItem(item);
469
- this.dom.plotsBtnsDiv.style("display", "block");
470
- this.dom.selectBtn.toggle();
471
- }
472
- });
473
- this.reapplyAllPlotButtons();
474
- }
475
- /** Builds an item object from a table row, mapping column labels to keys.
476
- * Converts 'sample' -> 'sID' and 'experiment' -> 'eID'.
477
- * Extracted out from noButtonCallback for testing. */
478
- buildItemFromRow(tableData, index) {
479
- const item = {};
480
- tableData.rows[index].forEach((r, idx) => {
481
- if (!r.value) return;
482
- let key = tableData.columns[idx].label.toLowerCase();
483
- key = key === "sample" || key === "" ? "sID" : key === "experiment" ? "eID" : key;
484
- item[key] = r.value;
485
- });
486
- if (!item.sID) throw new Error("Selected item must have sID property");
487
- return item;
488
- }
489
- updateTable(tableData) {
490
- this.tableData = tableData;
491
- if (!this.table) {
492
- this.renderSamplesTable(tableData);
493
- return;
494
- }
495
- this.table.setTableData(tableData);
496
- this.reapplyAllPlotButtons();
497
- }
498
- updatePlotBtns(activeSandboxes) {
499
- this.activeSandboxes = activeSandboxes;
500
- let totalPlots = 0;
501
- for (const sandboxes of activeSandboxes.values()) totalPlots += sandboxes.length;
502
- this.table?.setShownPlotsColumnVisibility(totalPlots >= 2);
503
- this.reapplyAllPlotButtons();
504
- }
505
- /** Called by afterRender to re-apply buttons for all samples with subplots.
506
- * Also called in updateTable when the active sandboxes (i.e. subplots) change.*/
507
- reapplyAllPlotButtons() {
508
- for (const sampleId of this.rendered.keys()) {
509
- if (!this.activeSandboxes.has(sampleId)) {
510
- this.deleteBtns(sampleId);
511
- }
512
- }
513
- for (const sampleId of this.activeSandboxes.keys()) {
514
- this.applyButtonsForSample(sampleId);
515
- }
516
- }
517
- deleteBtns(sampleId) {
518
- const cached = this.rendered.get(sampleId);
519
- if (cached) {
520
- cached.cell.selectAll(".sjpp-sc-table-plot-btn").remove();
521
- this.rendered.delete(sampleId);
522
- }
523
- }
524
- /** Applies buttons for a single sample. Skips DOM work if cell and plots are unchanged. */
525
- applyButtonsForSample(sampleId) {
526
- const sampleSandboxes = this.activeSandboxes.get(sampleId);
527
- if (!sampleSandboxes || sampleSandboxes.length === 0) return;
528
- if (!this.table) return;
529
- const cell = this.table.rowMap.get(sampleId)?.cells?.shownPlots;
530
- if (!cell) return;
531
- const plotIds = sampleSandboxes.map((s) => s.plotId).join(",");
532
- const cached = this.rendered.get(sampleId);
533
- if (cached && cached.cell === cell && cached.plotIds === plotIds) return;
534
- cell.selectAll(".sjpp-sc-table-plot-btn").remove();
535
- this.rendered.set(sampleId, { cell, plotIds });
536
- for (const { div, plotName } of sampleSandboxes) {
537
- this.appendPlotBtn(cell, div, plotName, sampleId);
538
- }
539
- }
540
- appendPlotBtn(cell, sandboxDiv, plotName, sampleId) {
541
- const text = plotName.length > 25 ? plotName.slice(0, 12) + "..." : plotName;
542
- const label = `Scroll to ${plotName}`;
543
- cell.append("button").attr("class", "sjpp-sc-table-plot-btn").attr("data-testid", `sjpp-sc-table-${sampleId}-${plotName}-btn`).style("padding", "2px 5px").style("margin-left", "4px").style("font-size", "0.8em").style("border-radius", "20px").style("border", "0.5px solid black").style("cursor", "pointer").text(text).attr("aria-label", label).attr("title", label).attr("tabindex", 0).on("click", () => {
544
- sandboxDiv.node().scrollIntoView({ behavior: "smooth", block: "start" });
545
- });
546
- }
547
- };
548
-
549
- // plots/sc/view/PlotButtons.ts
550
- var PlotButtons = class {
551
- /** scctTerms and the scTermdbConfig are created on server init and will not change. */
552
- constructor(interactions, holder, termdbConfig) {
553
- holder.style("padding", "10px");
554
- const promptDiv = holder.append("div").style("padding", "10px 0").text("Select data from");
555
- this.plotBtnsDom = {
556
- holder,
557
- promptDiv,
558
- selectPrompt: promptDiv.append("span"),
559
- btnsDiv: holder.append("div"),
560
- tip: new Menu({ padding: "" })
561
- };
562
- this.interactions = interactions;
563
- this.scctTerms = termdbConfig?.termType2terms?.[TermTypeGroups.SINGLECELL_CELLTYPE];
564
- this.scnvTerms = termdbConfig?.termType2terms?.[TermTypeGroups.SINGLECELL_NUMERIC_VALUE];
565
- this.scTermdbConfig = termdbConfig.queries.singleCell;
566
- }
567
- update(settings, data) {
568
- const item = settings.sc.item;
569
- this.plotBtnsDom.holder.style("display", !item ? "none" : "block");
570
- if (!item) return;
571
- if (data != null && data.plots) this.data = data;
572
- this.availablePlots = new Set(this.data?.plots?.map((p) => p.name));
573
- this.settings = settings;
574
- this.item = item;
575
- const name = item.sID;
576
- this.plotBtnsDom.selectPrompt.text(` ${name}:`);
577
- this.renderChartBtns();
578
- }
579
- renderChartBtns() {
580
- this.plotBtnsDom.btnsDiv.selectAll("*").remove();
581
- const disabledPlots = this.scTermdbConfig?.scApp?.disabledPlots || [];
582
- const btns = this.getChartBtnOpts().filter((b) => !disabledPlots.includes(b.chartType)).filter((b) => b.isVisible());
583
- this.plotBtnsDom.btnsDiv.selectAll("button").data(btns).enter().append("button").attr("type", "button").attr("data-testid", (b) => `sjpp-sc-plot-btn-${b.label.toLowerCase().replace(/\s/g, "-")}`).style("padding", "10px 15px").style("border-radius", "20px").style("border-color", "transparent").style("background-color", "#CFE2F3").style("margin", "0 10px").style("cursor", "pointer").text((b) => b.label).on("click", async (e, plot) => {
584
- if (plot.open) {
585
- this.plotBtnsDom.tip.clear().showunder(e.target);
586
- plot.open(plot, this);
587
- } else {
588
- if (!plot.getPlotConfig)
589
- throw new Error(`No getPlotConfig function defined for this plot button = ${plot.label}`);
590
- const config = await plot.getPlotConfig();
591
- await this.interactions.createSubplot(config);
592
- }
593
- });
594
- }
595
- getChartBtnOpts() {
596
- const btns = [];
597
- for (const plot of this.scTermdbConfig?.data?.plots || []) {
598
- if (!this.availablePlots.has(plot.name)) continue;
599
- btns.push({
600
- label: plot.name,
601
- chartType: "sampleScatter",
602
- isVisible: () => true,
603
- getPlotConfig: async () => {
604
- return await this.getSingleCellConfig(plot.name);
605
- }
606
- });
607
- }
608
- btns.push(
609
- {
610
- label: "Summary",
611
- chartType: "dictionary",
612
- /** Note: if only spatial image available, this plot should not show. */
613
- isVisible: () => this.availablePlots.has("dictionary"),
614
- getPlotConfig: () => {
615
- const sample = { ...this.item, plots: Array.from(this.availablePlots) };
616
- const isMeta = sample?.isMetaResult || false;
617
- return {
618
- chartType: "dictionary",
619
- sample,
620
- spawnConfig: {
621
- parentId: this.interactions.id,
622
- headerText: this.makeHeaderText(sample, isMeta),
623
- hidePlotFilter: !isMeta,
624
- sample
625
- },
626
- tree: {
627
- usecase: {
628
- target: "dictionary",
629
- specialCase: {
630
- type: "singleCell",
631
- config: { sample }
632
- }
633
- }
634
- }
635
- };
636
- }
637
- },
638
- {
639
- label: "Gene expression",
640
- chartType: "GeneExpInput",
641
- isVisible: () => this.scTermdbConfig?.geneExpression && this.availablePlots.has(this.scTermdbConfig.geneExpression?.label || "Gene expression"),
642
- getPlotConfig: () => {
643
- const sample = this.item;
644
- const isMeta = sample?.isMetaResult || false;
645
- const headerText = this.makeHeaderText(sample, isMeta);
646
- return {
647
- chartType: "GeneExpInput",
648
- termType: SINGLECELL_GENE_EXPRESSION,
649
- headerText,
650
- termProperties: { sample },
651
- parentId: this.interactions.id,
652
- sample,
653
- spawnConfig: {
654
- parentId: this.interactions.id,
655
- headerText,
656
- hidePlotFilter: !isMeta,
657
- /** Must pass this to summary config in the event a continuous
658
- * overlay is applied, launching the scatter plot. Without it,
659
- * the single cell model is not used. */
660
- singleCellPlot: {
661
- name: [...this.availablePlots][0],
662
- sample
663
- }
664
- }
665
- };
666
- }
667
- },
668
- {
669
- label: "Differential expression",
670
- chartType: "DA",
671
- isVisible: () => this.scTermdbConfig?.DEgenes,
672
- open: this.termDropdownMenu,
673
- getPlotConfig: (value) => {
674
- const isMeta = this.item?.isMetaResult || false;
675
- return {
676
- chartType: "differentialAnalysis",
677
- termType: SINGLECELL_CELLTYPE,
678
- categoryName: `${value}`,
679
- headerText: `${isMeta ? "" : "Sample: "}${this.item.sID}, ${this.scTermdbConfig.DEgenes.termId} ${value}`,
680
- termId: this.scTermdbConfig.DEgenes.termId,
681
- sample: this.item,
682
- plotName: "Differential expression"
683
- };
684
- }
685
- },
686
- {
687
- label: this.scTermdbConfig?.images?.label || "Image",
688
- chartType: "imagePlot",
689
- isVisible: () => this.scTermdbConfig?.images && this.availablePlots.has(this.scTermdbConfig.images.label || "Image"),
690
- getPlotConfig: () => {
691
- const isMeta = this.item?.isMetaResult || false;
692
- return {
693
- chartType: "imagePlot",
694
- sample: this.item,
695
- imgDir: this.scTermdbConfig?.images,
696
- headerText: this.makeHeaderText(this.item, isMeta),
697
- settings: { imagePlot: { width: "", height: 400 } }
698
- };
699
- }
700
- },
701
- {
702
- // spatial tissue viewer for samples with a spatial image (the model's
703
- // wsiBySample probe sets data.hasSpatial); spawns the w2 wsi plot in
704
- // fixed-sample mode, which has its own burger menu for the overlays
705
- label: "Spatial",
706
- chartType: "wsi",
707
- isVisible: () => !!this.data?.hasSpatial,
708
- getPlotConfig: () => {
709
- const sample = this.item;
710
- return {
711
- chartType: "wsi",
712
- name: `Sample: ${sample.sID} Spatial`,
713
- sample,
714
- plotName: "Spatial"
715
- };
716
- }
717
- }
718
- );
719
- return btns;
720
- }
721
- makeHeaderText(sample, isMeta, plot) {
722
- const caseText = sample.case ? ` Case: ${sample.case}` : "";
723
- const projectText = sample?.["project id"] ? ` Project: ${sample["project id"]}` : "";
724
- return `${isMeta ? "" : "Sample: "}${sample.sID}${caseText}${projectText}${plot ? ` (${plot})` : ""}`;
725
- }
726
- //********** Btn Menus **********/
727
- async termDropdownMenu(plot, self) {
728
- const _plot = Array.from(self.availablePlots)[0];
729
- const options = await self.interactions.getDropDownOptions([_plot]);
730
- if (!options?.length) throw new Error("No options found for this plot. Cannot open dropdown menu.");
731
- self.plotBtnsDom.tip.clear();
732
- const wrapper = self.plotBtnsDom.tip.d.append("div").style("padding", "10px");
733
- wrapper.append("div").style("display", "block").style("width", "300px").text(`View differentially expressed genes of a ${self.scTermdbConfig.DEgenes.termId} versus rest of the cells:`);
734
- const select = wrapper.append("select").style("margin", "10px 0").style("width", "auto").style("padding", "5px").on("change", async function() {
735
- self.plotBtnsDom.tip.hide();
736
- const value = select.node().value;
737
- if (value.indexOf("Select") == 0) return;
738
- const config = plot.getPlotConfig(value);
739
- await self.interactions.createSubplot(config);
740
- });
741
- const regex = new RegExp(self.scTermdbConfig.DEgenes.termId, "gi");
742
- options.unshift(`Select a ${self.scTermdbConfig.DEgenes.termId}...`);
743
- for (const cluster of options) {
744
- select.append("option").attr("value", cluster.replace(regex, "").trim()).text(cluster);
745
- }
746
- }
747
- //********** Plot Config Helpers **********/
748
- async getSingleCellConfig(plotName) {
749
- if (!this.item) throw new Error("No item selected");
750
- const plot = this.scTermdbConfig.data.plots.find((p) => p.name == plotName);
751
- if (!plot) throw new Error(`No plot by name ${plotName} in data.plots.`);
752
- const sample = this.item;
753
- const isMeta = sample?.isMetaResult || false;
754
- const config = {
755
- chartType: "sampleScatter",
756
- name: this.makeHeaderText(sample, isMeta, plotName),
757
- sample,
758
- singleCellPlot: {
759
- name: plotName,
760
- sample
761
- }
762
- };
763
- if (plot.colorColumns?.[0]) {
764
- const key = plot.colorColumns[0]?.type == "numeric" ? "scnv" : "scct";
765
- config.colorTW = await this.makeScTW(key, sample, plot);
766
- }
767
- return config;
768
- }
769
- // Quick fix. Eventually use the handler to get the proper term from the termdbConfig
770
- async makeScTW(key, item, plot) {
771
- if (!key) throw new Error("Key is required for makeScTW");
772
- const colorColName = plot.colorColumns[0].name;
773
- const savedTerm = this[`${key}Terms`]?.find((t) => t.name == colorColName && t.plot == plot.name);
774
- if (!savedTerm) {
775
- const ttg = key === "scct" ? TermTypeGroups.SINGLECELL_CELLTYPE : TermTypeGroups.SINGLECELL_NUMERIC_VALUE;
776
- throw new Error(`No term found for colorColumn=${colorColName} in .termType2terms.${ttg} for plot ${plot.name}`);
777
- }
778
- const term = Object.assign(structuredClone(savedTerm), {
779
- sample: item
780
- });
781
- const id = await digestMessage(`${plot.name}-${item.sID}-${item.eID}`);
782
- return Object.assign({ $id: id }, { term });
783
- }
784
- };
785
-
786
- // plots/sc/view/SectionRenderer.ts
787
- var SectionRenderer = class {
788
- constructor(sectionsDiv, groupBy) {
789
- this.sections = {};
790
- this.holder = sectionsDiv;
791
- this.plotId2Key = /* @__PURE__ */ new Map();
792
- this.groupBy = groupBy;
793
- }
794
- /** Send the sc with the updated state. May not be necessary long term. If not,
795
- * remove and put in the constructor. */
796
- async update(sc, subplots, groupBy) {
797
- if (groupBy !== this.groupBy) {
798
- this.groupBy = groupBy;
799
- this.regroupSections(sc, subplots);
800
- return;
801
- }
802
- const activeSubplots = new Set(subplots.map((s) => s.id));
803
- for (const plotId of Array.from(this.plotId2Key.keys())) {
804
- if (!activeSubplots.has(plotId)) this.removeSandbox(plotId);
805
- }
806
- for (const subplot of subplots) {
807
- const key = this.getKey(subplot, sc);
808
- if (!key) continue;
809
- if (!this.sections[key]) this.initSection(key, sc);
810
- if (!this.sections[key].sandboxes[subplot.id]) {
811
- this.plotId2Key.set(subplot.id, key);
812
- sc.subplotManager.setSectionKey(subplot.id, key);
813
- await this.initSandbox(sc, subplot, key);
814
- }
815
- }
816
- for (const key of Object.keys(this.sections)) {
817
- if (Object.keys(this.sections[key].sandboxes).length === 0) {
818
- this.removeSection(key, sc);
819
- }
820
- }
821
- }
822
- /** Reparent existing sandboxes into new section containers
823
- * without destroying/recreating plot components. */
824
- regroupSections(sc, subplots) {
825
- const detached = /* @__PURE__ */ new Map();
826
- for (const [plotId, key] of this.plotId2Key) {
827
- const sandboxNode = this.sections[key]?.sandboxes[plotId];
828
- if (sandboxNode) {
829
- sandboxNode.remove();
830
- detached.set(plotId, sandboxNode);
831
- }
832
- }
833
- this.holder.selectAll("*").remove();
834
- this.sections = {};
835
- this.plotId2Key = /* @__PURE__ */ new Map();
836
- for (const subplot of subplots) {
837
- const key = this.getKey(subplot, sc);
838
- if (!key) continue;
839
- if (!this.sections[key]) this.initSection(key, sc);
840
- this.plotId2Key.set(subplot.id, key);
841
- sc.subplotManager.setSectionKey(subplot.id, key);
842
- const existing = detached.get(subplot.id);
843
- if (existing) {
844
- this.sections[key].subplots.node().prepend(existing.node());
845
- this.sections[key].sandboxes[subplot.id] = existing;
846
- }
847
- }
848
- }
849
- getKey(subplot, sc) {
850
- if (this.groupBy === "none") return "none";
851
- if (this.groupBy === "sample") return this.getSampleId(subplot);
852
- return sc.subplotManager.getPlotName(subplot);
853
- }
854
- /** Extract sID from a subplot's config.
855
- * Actual subplots store sample as {sID, eID} at top level or on term.term.sample. */
856
- getSampleId(subplot) {
857
- return subplot.sample?.sID || subplot.singleCellPlot?.sample?.sID || subplot.term?.term?.sample?.sID;
858
- }
859
- initSection(key, sc) {
860
- const item = this.findSampleMetadata(key, sc);
861
- const titleAttrText = this.groupBy == "sample" ? "this sample section" : this.groupBy == "plot" ? "this plot section" : "all plots";
862
- const sectionWrapper = this.holder.insert("div", ":first-child").style("padding", "10px").attr("data-testid", `sjpp-sc-section-wrapper-${key}`);
863
- sectionWrapper.append("span").attr("data-testid", `sjpp-sc-section-remove-btn-${key}`).style("margin", "0px 5px").style("cursor", "pointer").attr("title", `Remove ${titleAttrText}`).html(
864
- `<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="#000" class="bi bi-x-lg" viewBox="0 0 12 12">
865
- <path
866
- stroke="#000"
867
- transform="scale(0.75)"
868
- d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"/>
869
- </svg>`
870
- ).on("click", () => {
871
- this.removeSection(key, sc);
872
- });
873
- const titleText = this.makeSectionTitleText(key, item);
874
- const titleWrapper = sectionWrapper.append("span").style("font-weight", 600).style("opacity", 0.7).text(titleText);
875
- if (titleText.length) {
876
- const arrow = titleWrapper.append("span").style("font-size", "0.8em").style("padding-left", "3px").attr("title", `Show/hide plots in ${titleAttrText}`).text("\u25BC");
877
- titleWrapper.on("click", () => {
878
- const isHidden = this.sections[key].subplots.style("display") === "none";
879
- this.sections[key].subplots.style("display", isHidden ? "block" : "none");
880
- arrow.text(isHidden ? "\u25BC" : "\u25B2");
881
- });
882
- }
883
- this.sections[key] = {
884
- sectionWrapper,
885
- title: titleWrapper,
886
- subplots: sectionWrapper.append("div").attr("data-testid", `sjpp-sc-subplots-${key}`),
887
- sandboxes: {}
888
- };
889
- }
890
- /** Look up sample metadata from the fetched items list.
891
- * For experiment datasets, matches sID against experiments[].sampleName.
892
- * For non-experiment datasets, matches sID against item.sample. */
893
- findSampleMetadata(sampleId, sc) {
894
- if (!sc.items) return void 0;
895
- return sc.items.find((item) => item.sample === sampleId || item.experiments?.some((e) => e.sampleName === sampleId));
896
- }
897
- makeSectionTitleText(key, item) {
898
- if (this.groupBy === "none") return "All plots";
899
- if (this.groupBy === "plot") return key;
900
- const caseText = item?.sample && item.sample !== key ? `Case: ${item.sample}` : "";
901
- const isMeta = item?.isMetaResult || false;
902
- const itemText = `${isMeta ? "" : "Sample: "}${key}`;
903
- const projectProp = item?.case?.project?.project_id || item?.["project id"];
904
- const projectText = projectProp ? `Project: ${projectProp}` : "";
905
- return [itemText, caseText, projectText].filter(Boolean).join(" ");
906
- }
907
- async initSandbox(sc, subplot, key) {
908
- const sandboxHolder = this.sections[key].subplots.insert("div", ":first-child").attr("data-testid", `sjpp-sc-sandbox-${subplot.id}`);
909
- const sandboxDiv = await sc.subplotManager.initSubplotSandbox(sandboxHolder, subplot, {
910
- sectionKey: key
911
- });
912
- this.sections[key].sandboxes[subplot.id] = sandboxDiv;
913
- }
914
- removeSection(key, sc) {
915
- const subactions = [];
916
- for (const plotId of Object.keys(this.sections[key].sandboxes || {})) {
917
- this.removeSandbox(plotId, key);
918
- subactions.push({
919
- type: "plot_delete",
920
- id: plotId,
921
- parentId: sc.id
922
- });
923
- }
924
- if (subactions.length > 0) {
925
- sc.app.dispatch({
926
- type: "app_refresh",
927
- subactions
928
- });
929
- }
930
- this.sections[key].sectionWrapper.remove();
931
- delete this.sections[key];
932
- }
933
- removeSandbox(plotId, _key) {
934
- const key = _key || this.plotId2Key.get(plotId);
935
- if (!key) return;
936
- const section = this.sections[key];
937
- const sandbox = section?.sandboxes?.[plotId];
938
- if (sandbox) sandbox.remove();
939
- if (section?.sandboxes?.[plotId]) delete section.sandboxes[plotId];
940
- this.plotId2Key.delete(plotId);
941
- }
942
- };
943
-
944
- // plots/sc/settings/Settings.ts
945
- var GroupByOptions = ["sample", "plot", "none"];
946
-
947
- // plots/sc/view/SCViewRenderer.ts
948
- var SCViewRenderer = class {
949
- constructor(sc) {
950
- this.tableVisible = true;
951
- this.sc = sc;
952
- this.dom = sc.dom;
953
- this.interactions = sc.interactions;
954
- this.dom.controlsDiv.style("padding", "10px");
955
- }
956
- render(settings, state) {
957
- this.renderSelectBtn();
958
- this.renderGroupByOptions(settings);
959
- this.plotBtns = new PlotButtons(this.interactions, this.dom.plotsBtnsDiv, state.termdbConfig);
960
- this.sectionRenderer = new SectionRenderer(this.dom.sectionsDiv, settings.groupBy);
961
- }
962
- /** Renders the select btn at the top of the page that
963
- * show/hides the item table and plot buttons */
964
- renderSelectBtn() {
965
- const btn = this.dom.controlsDiv.append("button").attr("data-testid", "sjpp-sc-item-table-select-btn").attr("title", "Show/hide sample table and plot buttons").style("border-radius", "20px").style("padding", "5px 10px").style("background-color", "transparent").text("Select sample");
966
- const arrowSpan = btn.append("span").style("font-size", "0.8em").style("padding-left", "3px").text("\u25BC");
967
- btn.toggle = () => {
968
- this.tableVisible = !this.tableVisible;
969
- arrowSpan.text(this.tableVisible ? "\u25BC" : "\u25B2");
970
- this.dom.tableDiv.style("display", this.tableVisible ? "block" : "none");
971
- };
972
- btn.on("click", () => {
973
- btn.toggle();
974
- });
975
- this.dom.selectBtn = btn;
976
- }
977
- renderGroupByOptions(settings) {
978
- this.groupsWrapper = this.dom.controlsDiv.append("div").style("display", "none");
979
- this.groupsWrapper.append("span").style("padding", "3px 0px 3px 20px").style("opacity", 0.7).text("Group by:");
980
- const optionsDiv = this.groupsWrapper.append("span").style("display", "inline-block");
981
- const options = GroupByOptions.map((option) => {
982
- return {
983
- label: `${option.charAt(0).toUpperCase() + option.slice(1)}`,
984
- value: option,
985
- checked: settings.groupBy === option
986
- };
987
- });
988
- make_radios({
989
- holder: optionsDiv,
990
- styles: { display: "inline-block" },
991
- options,
992
- callback: async (value) => {
993
- await this.sc.app.dispatch({
994
- type: "plot_edit",
995
- id: this.sc.id,
996
- config: { settings: { sc: { ...settings, groupBy: value } } }
997
- });
998
- }
999
- });
1000
- }
1001
- async update(settings, data, activeSubplots, tableData, subplotManager) {
1002
- if (!this.sampleTableRenderer) {
1003
- this.sampleTableRenderer = new SampleTableRenderer(this.dom, this.interactions, tableData);
1004
- } else {
1005
- this.sampleTableRenderer.updateTable(tableData);
1006
- }
1007
- this.plotBtns.update(settings, data);
1008
- await this.sectionRenderer.update(
1009
- this.sc,
1010
- activeSubplots.map((s) => s.subplot),
1011
- settings.sc.groupBy
1012
- );
1013
- const activeSandboxes = subplotManager.getSampleSandboxes();
1014
- this.groupsWrapper.style("display", activeSandboxes.size > 1 ? "inline-block" : "none");
1015
- this.sampleTableRenderer.updatePlotBtns(activeSandboxes);
1016
- }
1017
- };
1018
-
1019
- // plots/sc/settings/defaults.ts
1020
- function getDefaultSCAppSettings(overrides = {}, app) {
1021
- const defaults = {
1022
- sc: {
1023
- columns: {
1024
- sample: "Sample"
1025
- },
1026
- item: void 0,
1027
- groupBy: "sample"
1028
- },
1029
- hierCluster: {
1030
- unit: getGEunit(app.vocabApi),
1031
- yDendrogramHeight: 0,
1032
- clusterSamples: false
1033
- }
1034
- };
1035
- return Object.assign(defaults, overrides);
1036
- }
1037
-
1038
- // plots/sc/subplots/DynamicSubplot.ts
1039
- var DynamicSubplot = class _DynamicSubplot {
1040
- constructor(opts) {
1041
- this.dom = {};
1042
- this.type = _DynamicSubplot.type;
1043
- this.opts = opts;
1044
- this.app = opts.app;
1045
- this.parentId = opts?.parentId;
1046
- }
1047
- static {
1048
- this.type = "dynamicSubplot";
1049
- }
1050
- async init() {
1051
- this.opts.holder.app_div.attr("data-testid", "sjpp-sc-subplot-sandbox-" + this.opts.chartType);
1052
- if (this.opts.chartType == "summary") return;
1053
- this.dom = {
1054
- holder: this.opts.holder,
1055
- viz: this.opts.holder.body.append("div").style("position", "relative"),
1056
- paneTitleDiv: this.opts.holder.header.append("div").style("position", "relative"),
1057
- filterDiv: this.opts.holder.header.append("div").style("position", "relative"),
1058
- errorDiv: this.opts.holder.body.append("div").style("position", "relative")
1059
- };
1060
- }
1061
- getState(appState) {
1062
- const config = appState.plots.find((p) => p.id === this.id);
1063
- if (!config) {
1064
- throw `No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`;
1065
- }
1066
- return {
1067
- config
1068
- };
1069
- }
1070
- async main() {
1071
- if (!this.components) await this.setComponents();
1072
- }
1073
- async setComponents() {
1074
- const _ = await importPlot(this.opts.chartType);
1075
- const chartOpts = {
1076
- app: this.app,
1077
- id: this.id,
1078
- parentId: this.parentId
1079
- };
1080
- if (this.opts.chartType == "summary") {
1081
- chartOpts.holder = this.opts.holder;
1082
- chartOpts.hidePlotFilter = this.opts.isMetaResult;
1083
- } else {
1084
- chartOpts.holder = this.dom.viz;
1085
- chartOpts.header = this.dom.paneTitleDiv;
1086
- }
1087
- const promises = {
1088
- chart: _.componentInit(chartOpts)
1089
- };
1090
- if (!this.state.config?.hidePlotFilter && this.opts.isMetaResult && this.opts.chartType != "summary") {
1091
- promises.filter = filterRxCompInit({
1092
- app: this.app,
1093
- vocabApi: this.app.vocabApi,
1094
- parentId: this.id,
1095
- holder: this.dom.filterDiv,
1096
- hideLabel: true,
1097
- emptyLabel: "+Add new filter",
1098
- callback: (filter) => {
1099
- this.app.dispatch({
1100
- id: this.id,
1101
- type: "plot_edit",
1102
- config: { filter }
1103
- });
1104
- }
1105
- });
1106
- }
1107
- this.components = await multiInit(promises);
1108
- }
1109
- destroy() {
1110
- const appDiv = this.dom?.holder?.app_div;
1111
- if (appDiv) {
1112
- appDiv.selectAll("*").remove();
1113
- appDiv.remove();
1114
- }
1115
- for (const key in this.dom) {
1116
- delete this.dom[key];
1117
- }
1118
- }
1119
- };
1120
- var dynamicSubplotInit = getCompInit(DynamicSubplot);
1121
-
1122
- // plots/sc/subplots/SubplotManager.ts
1123
- var SubplotManager = class {
1124
- constructor(sc) {
1125
- this.sc = sc;
1126
- this.scCompPlots = this.sc.components.plots;
1127
- this.records = /* @__PURE__ */ new Map();
1128
- }
1129
- map(subplots) {
1130
- const subplotIds = new Set(subplots.map((s) => s.id));
1131
- for (const compPlotId of Object.keys(this.scCompPlots)) {
1132
- if (!subplotIds.has(compPlotId)) {
1133
- this.removeSubplot(compPlotId);
1134
- }
1135
- }
1136
- for (const recordId of Array.from(this.records.keys())) {
1137
- if (!subplotIds.has(recordId)) this.records.delete(recordId);
1138
- }
1139
- for (const subplot of subplots) {
1140
- this.updateSubplotRecord(subplot);
1141
- }
1142
- return this.getActiveSubplotsFlat();
1143
- }
1144
- updateSubplotRecord(subplot) {
1145
- const existing = this.records.get(subplot.id);
1146
- const sampleId = this.getSampleId(subplot);
1147
- const isMeta = sampleId && this.sc.viewModel.metaResultIds.has(sampleId) || false;
1148
- this.records.set(subplot.id, {
1149
- plotId: subplot.id,
1150
- sampleId,
1151
- plotName: this.getPlotName(subplot),
1152
- sectionKey: existing?.sectionKey,
1153
- subplot,
1154
- sandboxDiv: existing?.sandboxDiv,
1155
- isMetaResult: isMeta
1156
- });
1157
- }
1158
- removeSubplot(subplotId) {
1159
- if (this.scCompPlots[subplotId]) this.scCompPlots[subplotId].destroy();
1160
- delete this.scCompPlots[subplotId];
1161
- this.records.delete(subplotId);
1162
- }
1163
- async initSubplotSandbox(sandboxHolder, subplot, initOpts = {}) {
1164
- const sandbox = newSandboxDiv(sandboxHolder, {
1165
- close: () => {
1166
- this.removeSubplot(subplot.id);
1167
- this.sc.app.dispatch({
1168
- type: "plot_delete",
1169
- id: subplot.id,
1170
- parentId: this.sc.id
1171
- });
1172
- if (initOpts.onClose) initOpts.onClose();
1173
- },
1174
- plotId: subplot.id
1175
- });
1176
- const subplotOpts = Object.assign({}, subplot, {
1177
- app: this.sc.app,
1178
- parentId: this.sc.id,
1179
- id: subplot.id,
1180
- holder: sandbox,
1181
- isMetaResult: this.records.get(subplot.id)?.isMetaResult || false
1182
- });
1183
- this.scCompPlots[subplot.id] = await dynamicSubplotInit(subplotOpts);
1184
- this.setSandbox(subplot.id, sandbox.app_div);
1185
- if (initOpts.sectionKey) this.setSectionKey(subplot.id, initOpts.sectionKey);
1186
- return sandbox.app_div;
1187
- }
1188
- setSandbox(plotId, sandboxDiv) {
1189
- const record = this.records.get(plotId);
1190
- if (!record) return;
1191
- record.sandboxDiv = sandboxDiv;
1192
- this.records.set(plotId, record);
1193
- }
1194
- setSectionKey(plotId, sectionKey) {
1195
- const record = this.records.get(plotId);
1196
- if (!record) return;
1197
- record.sectionKey = sectionKey;
1198
- this.records.set(plotId, record);
1199
- }
1200
- getActiveSubplotsFlat() {
1201
- return Array.from(this.records.values());
1202
- }
1203
- getSampleId(subplot) {
1204
- return subplot.sample?.sID || subplot.singleCellPlot?.sample?.sID || subplot.term?.term?.sample?.sID;
1205
- }
1206
- getPlotName(subplot) {
1207
- const nameOverrides = /* @__PURE__ */ new Map([
1208
- ["GeneExpInput", "Gene expression"],
1209
- ["imagePlot", subplot?.imgDir?.label || "Image"],
1210
- ["dictionary", "Summary"],
1211
- ["summary", "Summary"]
1212
- ]);
1213
- let plotName = subplot?.plotName || nameOverrides.get(subplot?.chartType) || subplot?.singleCellPlot?.name;
1214
- if (!plotName) {
1215
- if (subplot?.term?.term?.plot) plotName = subplot.term.term.plot;
1216
- else plotName = subplot.chartType || "Plot";
1217
- }
1218
- return plotName;
1219
- }
1220
- getSampleSandboxes(activeSubplots = this.getActiveSubplotsFlat()) {
1221
- const sandboxes = /* @__PURE__ */ new Map();
1222
- for (const active of activeSubplots) {
1223
- if (!active.sampleId || !active.sandboxDiv) continue;
1224
- if (!sandboxes.has(active.sampleId)) sandboxes.set(active.sampleId, []);
1225
- sandboxes.get(active.sampleId).push({ plotId: active.plotId, div: active.sandboxDiv, plotName: active.plotName });
1226
- }
1227
- return sandboxes;
1228
- }
1229
- };
1230
-
1231
- // plots/sc/SC.ts
1232
- var SCViewer = class _SCViewer extends PlotBase {
1233
- static {
1234
- this.type = "sc";
1235
- }
1236
- constructor(opts, api) {
1237
- super(opts, api);
1238
- this.type = _SCViewer.type;
1239
- this.components = {
1240
- plots: {}
1241
- };
1242
- const div = opts.holder.classed("sjpp-sc-main", true).append("div").style("padding", "5px").style("display", "inline-block").style("vertical-align", "top");
1243
- this.dom = {
1244
- div,
1245
- loading: opts.holder.append("div").attr("class", "sjpp-sc-main-loading").attr("data-testid", "sjpp-sc-main-loading").style("position", "absolute").style("top", "0").style("left", "0").style("width", "100%").style("height", "100%").style("background-color", "rgba(255, 255, 255, 0.95)").style("text-align", "center"),
1246
- controlsDiv: div.append("div").attr("id", "sjpp-sc-controls-btn"),
1247
- tableDiv: div.append("div").attr("id", "sjpp-sc-item-table"),
1248
- plotsBtnsDiv: div.append("div").attr("id", "sjpp-sc-plot-buttons").style("display", "none"),
1249
- sectionsDiv: div.append("div").attr("id", "sjpp-sc-sections")
1250
- };
1251
- if (opts.header) formatHeaderText({
1252
- header: opts.header,
1253
- chartType: "SINGLE CELL"
1254
- });
1255
- }
1256
- getState(appState) {
1257
- const config = appState.plots.find((p) => p.id === this.id);
1258
- if (!config) {
1259
- throw new Error(
1260
- `No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`
1261
- );
1262
- }
1263
- const termfilter = getCombinedTermFilter(appState, config.filter);
1264
- return {
1265
- config,
1266
- subplots: appState.plots.filter((p) => p.parentId === this.id),
1267
- termfilter,
1268
- termdbConfig: appState.termdbConfig,
1269
- vocab: appState.vocab
1270
- };
1271
- }
1272
- async init(appState) {
1273
- const state = this.getState(appState);
1274
- const dsScSamples = state.termdbConfig.queries?.singleCell?.samples;
1275
- this.model = new SCModel(this);
1276
- try {
1277
- this.itemColumns = await this.model.getColumnLabels(dsScSamples);
1278
- } catch (e) {
1279
- if (e instanceof Error) console.error(`${e.message || e} [SC init()]`);
1280
- else if (e.stack) console.log(e.stack);
1281
- throw new Error(e.message || e);
1282
- }
1283
- this.viewModel = new SCViewModel(this.app, this.itemColumns);
1284
- this.interactions = new SCInteractions(this);
1285
- this.subplotManager = new SubplotManager(this);
1286
- this.view = new SCViewRenderer(this);
1287
- this.view.render(state.config.settings.sc, state);
1288
- }
1289
- async main() {
1290
- if (!this.model) throw new Error(`Model not initialized`);
1291
- if (!this.viewModel) throw new Error(`ViewModel not initialized`);
1292
- if (!this.view) throw new Error(`View not initialized`);
1293
- if (!this.interactions) throw new Error(`Interactions not initialized`);
1294
- const state = structuredClone(this.state);
1295
- const config = state.config;
1296
- super.toggleLoadingDiv();
1297
- let data;
1298
- try {
1299
- const allSampleData = await this.model.getAllSampleData(state);
1300
- if (!allSampleData || allSampleData.error) {
1301
- super.toggleLoadingDiv("none");
1302
- super.printError(allSampleData?.error || "No samples found for this dataset");
1303
- return;
1304
- }
1305
- this.items = allSampleData.samples;
1306
- this.viewModel.processData(config, allSampleData.samples);
1307
- if (config.settings?.sc?.item) {
1308
- const sampleData = await this.model.getSampleData();
1309
- if (!sampleData || sampleData.error) {
1310
- super.toggleLoadingDiv("none");
1311
- super.printError(sampleData?.error || "No data found for this sample");
1312
- return;
1313
- }
1314
- const hasSpatial = await this.model.hasSpatialImage(config.settings.sc.item.sID);
1315
- data = this.viewModel.formatPlotsData(sampleData, hasSpatial);
1316
- }
1317
- } catch (e) {
1318
- if (e instanceof Error) console.error(`${e.message || e} [SC main()]`);
1319
- else if (e.stack) console.log(e.stack);
1320
- super.toggleLoadingDiv("none");
1321
- super.printError(e.message || e);
1322
- return;
1323
- }
1324
- const activeSubplots = this.subplotManager.map(state.subplots);
1325
- await this.view.update(config.settings, data, activeSubplots, this.viewModel.tableData, this.subplotManager);
1326
- super.toggleLoadingDiv("none");
1327
- }
1328
- };
1329
- var SCInit = getCompInit(SCViewer);
1330
- var componentInit = SCInit;
1331
- function getPlotConfig(opts, app) {
1332
- const config = {
1333
- chartType: "sc",
1334
- settings: getDefaultSCAppSettings(opts.overrides, app)
1335
- };
1336
- return copyMerge(config, opts);
1337
- }
1338
- export {
1339
- SCInit,
1340
- SCViewer,
1341
- componentInit,
1342
- getPlotConfig
1343
- };
1344
- //# sourceMappingURL=SC-W3M6IEDU.js.map