@sjcrh/proteinpaint-client 2.224.2 → 2.226.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 (976) hide show
  1. package/dist/2dmaf-CSBPMYHO.js +1362 -0
  2. package/dist/AggMatrixInput-2HST4LLJ.js +402 -0
  3. package/dist/AggregateMatrix-UPOAX44L.js +37 -0
  4. package/dist/AppHeader-H5QBVKUS.js +826 -0
  5. package/dist/BoxPlot-JTBQA6PL.js +1247 -0
  6. package/dist/CorrelationVolcano-AWBPVDMT.js +613 -0
  7. package/dist/Cuminc-3BXJVWIH.js +1217 -0
  8. package/dist/DE-237VV46D.js +85 -0
  9. package/dist/DEinput-W443UW5T.js +479 -0
  10. package/dist/DM-TIW623IR.js +86 -0
  11. package/dist/DifferentialAnalysis-PHUA2GPK.js +236 -0
  12. package/dist/Disco-WHV52SCI.js +3445 -0
  13. package/dist/Disco-WHV52SCI.js.map +7 -0
  14. package/dist/Disco.UI-UDUXNCZX.js +239 -0
  15. package/dist/DmrPlot-FZCD6FTX.js +366 -0
  16. package/dist/DmrPlot-FZCD6FTX.js.map +7 -0
  17. package/dist/GB-6UW5LOUV.js +1388 -0
  18. package/dist/GSEA-3CNHMK6M.js +870 -0
  19. package/dist/GeneExpInput-ZOVP7BFY.js +38 -0
  20. package/dist/Geomap-JREOIESM.js +80 -0
  21. package/dist/HicApp-RKAMIUXQ.js +2240 -0
  22. package/dist/IDCViewer-KXV4FU3V.js +10810 -0
  23. package/dist/NumBinaryEditor-FNVYUK2J.js +274 -0
  24. package/dist/NumBinaryEditor.unit.spec-PWR23U3J.js +308 -0
  25. package/dist/NumContEditor-YLBJW64K.js +100 -0
  26. package/dist/NumContEditor.unit.spec-6JWBCPFY.js +160 -0
  27. package/dist/NumCustomBinEditor-42AFCXRN.js +29 -0
  28. package/dist/NumCustomBinEditor.unit.spec-AFBTF2CL.js +393 -0
  29. package/dist/NumDiscreteEditor-FJIBZTBP.js +165 -0
  30. package/dist/NumDiscreteEditor.unit.spec-MC4INDCB.js +229 -0
  31. package/dist/NumRegularBinEditor-2WRE72TL.js +29 -0
  32. package/dist/NumRegularBinEditor.unit.spec-L3S6NRCM.js +274 -0
  33. package/dist/NumSplineEditor-TVMVAN7I.js +205 -0
  34. package/dist/NumSplineEditor.unit.spec-GEL36GZZ.js +220 -0
  35. package/dist/NumericDensity-BNFAVOFO.js +29 -0
  36. package/dist/NumericDensity.unit.spec-XBYUFBTQ.js +414 -0
  37. package/dist/NumericHandler-4VFFJNX6.js +30 -0
  38. package/dist/NumericHandler.unit.spec-76T2IVRS.js +225 -0
  39. package/dist/ProteomeInput-M5UIO73Q.js +610 -0
  40. package/dist/Regression-5LB5TLA6.js +1412 -0
  41. package/dist/RunChart2-HIFXOEKZ.js +744 -0
  42. package/dist/SC-SMMW5MJG.js +1290 -0
  43. package/dist/Violin-COAFYZOV.js +1105 -0
  44. package/dist/Violin-COAFYZOV.js.map +7 -0
  45. package/dist/Volcano-62II76B4.js +2748 -0
  46. package/dist/Volcano-62II76B4.js.map +7 -0
  47. package/dist/Wsi-OYW2L7FR.js +637 -0
  48. package/dist/aboutSunburst-3FYJGR6B.js +93 -0
  49. package/dist/adSandbox-4VHYWBQC.js +29 -0
  50. package/dist/animatedBubbleChart-QCCIC5IT.js +542 -0
  51. package/dist/app-IF7YPCGZ.js +28 -0
  52. package/dist/app-JZ43TSJP.js +38 -0
  53. package/dist/app.js +14 -14
  54. package/dist/bam-2VPZGSW3.js +872 -0
  55. package/dist/barchart-VYTWYYGG.js +38 -0
  56. package/dist/barchart2-XC7J4VEO.js +305 -0
  57. package/dist/block-YGQFUK5L.js +6203 -0
  58. package/dist/block.init-BVP3YZHQ.js +29 -0
  59. package/dist/block.mds.expressionrank-RKDDKY4J.js +350 -0
  60. package/dist/block.mds.geneboxplot-3FZ3EZZ6.js +819 -0
  61. package/dist/block.mds.junction-MCOG37RA.js +1534 -0
  62. package/dist/block.mds.svcnv-IEOR5IQZ.js +6325 -0
  63. package/dist/block.svg-3XHRHYCV.js +155 -0
  64. package/dist/block.tk.aicheck-TMDUGNZX.js +274 -0
  65. package/dist/block.tk.bam-73KW4QEJ.js +1906 -0
  66. package/dist/block.tk.bigwig.ui-E5W6R7DQ.js +202 -0
  67. package/dist/block.tk.hicstraw-BNNE6ZMW.js +814 -0
  68. package/dist/block.tk.junction-DMPRZRNY.js +2353 -0
  69. package/dist/block.tk.junction.textmatrixui-XS2E7MQL.js +190 -0
  70. package/dist/block.tk.ld-QD3XDLO4.js +90 -0
  71. package/dist/block.tk.menu-S6XI732E.js +1050 -0
  72. package/dist/block.tk.pgv-KH4TMR3A.js +934 -0
  73. package/dist/brainImaging-NK4JENN3.js +550 -0
  74. package/dist/brainRegions-YUEMTKYH.js +213 -0
  75. package/dist/bubbleHeatmap-LQCVS4WK.js +374 -0
  76. package/dist/cellTypeBubbleHeatmap-DFRSPWAY.js +274 -0
  77. package/dist/chunk-2N345NXD.js +5790 -0
  78. package/dist/chunk-2N345NXD.js.map +7 -0
  79. package/dist/chunk-37ZEGLVY.js +267 -0
  80. package/dist/chunk-37ZEGLVY.js.map +7 -0
  81. package/dist/chunk-3RPX4ZVV.js +2334 -0
  82. package/dist/chunk-4LK5YFHF.js +102 -0
  83. package/dist/chunk-4WFG5Y3A.js +2095 -0
  84. package/dist/chunk-4WFG5Y3A.js.map +7 -0
  85. package/dist/chunk-4WFXCUT4.js +141 -0
  86. package/dist/chunk-5LY2ASQX.js +305 -0
  87. package/dist/chunk-6PVVV3UW.js +37 -0
  88. package/dist/chunk-6V7ITU5F.js +2349 -0
  89. package/dist/chunk-7UK7CU4F.js +398 -0
  90. package/dist/chunk-AAQDXVQT.js +134 -0
  91. package/dist/chunk-ADJBQCFM.js +243 -0
  92. package/dist/chunk-ATIITEOR.js +692 -0
  93. package/dist/chunk-BWVJAFEQ.js +35 -0
  94. package/dist/chunk-CDCNBN6G.js +50 -0
  95. package/dist/chunk-CGSBIFFO.js +1339 -0
  96. package/dist/chunk-DOC3HBOV.js +119 -0
  97. package/dist/chunk-DPWSIN62.js +26787 -0
  98. package/dist/chunk-DPWSIN62.js.map +7 -0
  99. package/dist/chunk-EARMOT6Q.js +176 -0
  100. package/dist/chunk-ECCXTB5S.js +562 -0
  101. package/dist/chunk-ECTOEM7X.js +96 -0
  102. package/dist/chunk-ECTOEM7X.js.map +7 -0
  103. package/dist/chunk-EKIWZUEO.js +54 -0
  104. package/dist/chunk-FALP6GXG.js +96 -0
  105. package/dist/chunk-FIWVGOSE.js +54 -0
  106. package/dist/chunk-FRD6LQF7.js +103 -0
  107. package/dist/chunk-FRPYXYYQ.js +263 -0
  108. package/dist/chunk-FT5HOBHJ.js +31 -0
  109. package/dist/chunk-FV2GLMSI.js +397 -0
  110. package/dist/chunk-G6SP5IQT.js +626 -0
  111. package/dist/chunk-GZL6YFZJ.js +30 -0
  112. package/dist/chunk-H353EVLK.js +240 -0
  113. package/dist/chunk-HKR5R5YR.js +466 -0
  114. package/dist/chunk-HULTLO4D.js +217 -0
  115. package/dist/chunk-IIN4CG67.js +56 -0
  116. package/dist/chunk-ISWFHYEZ.js +123 -0
  117. package/dist/chunk-JBUTLI3V.js +1253 -0
  118. package/dist/chunk-JCNZJKLK.js +55 -0
  119. package/dist/chunk-JEVDRC64.js +56 -0
  120. package/dist/chunk-KBZAB2H2.js +340 -0
  121. package/dist/chunk-KDKJLITX.js +54 -0
  122. package/dist/chunk-KNFJN6CM.js +299 -0
  123. package/dist/chunk-KSYGLBZ4.js +4389 -0
  124. package/dist/chunk-KUOXZIH4.js +348 -0
  125. package/dist/chunk-KZ54E2FU.js +184 -0
  126. package/dist/chunk-L7FMBWWK.js +6375 -0
  127. package/dist/chunk-LMONIWPI.js +30 -0
  128. package/dist/chunk-LTY7WOAT.js +281 -0
  129. package/dist/chunk-LVFWXUUX.js +34 -0
  130. package/dist/chunk-LVFWXUUX.js.map +7 -0
  131. package/dist/chunk-LYDN734A.js +194 -0
  132. package/dist/chunk-LYMYO6TY.js +652 -0
  133. package/dist/chunk-MRZUZDRA.js +444 -0
  134. package/dist/chunk-NGBI4FST.js +195 -0
  135. package/dist/chunk-OKM4ACTA.js +170 -0
  136. package/dist/chunk-OUDHHMZU.js +159 -0
  137. package/dist/chunk-OVXHMJJJ.js +59 -0
  138. package/dist/chunk-OYXRYWGU.js +2932 -0
  139. package/dist/chunk-P2HMCEMM.js +5254 -0
  140. package/dist/chunk-P2HMCEMM.js.map +7 -0
  141. package/dist/chunk-P5FHYGJK.js +848 -0
  142. package/dist/chunk-P7QDNXSH.js +276 -0
  143. package/dist/chunk-PI2MCZXG.js +140 -0
  144. package/dist/chunk-Q7GK35TB.js +257 -0
  145. package/dist/chunk-QXRM5NMW.js +274 -0
  146. package/dist/chunk-RI3GAHQE.js +255 -0
  147. package/dist/chunk-RI3GAHQE.js.map +7 -0
  148. package/dist/chunk-SH7SL4I5.js +1219 -0
  149. package/dist/chunk-SJHWZZ4M.js +70 -0
  150. package/dist/chunk-T2W4JHWJ.js +472 -0
  151. package/dist/chunk-T2W4JHWJ.js.map +7 -0
  152. package/dist/chunk-TDBS3UFZ.js +379 -0
  153. package/dist/chunk-THHYPA5K.js +48 -0
  154. package/dist/chunk-THHYPA5K.js.map +7 -0
  155. package/dist/chunk-U2OB3S3M.js +14 -0
  156. package/dist/chunk-UA2ADBTO.js +42 -0
  157. package/dist/chunk-USGUVW5Q.js +182 -0
  158. package/dist/chunk-UWVDD4C2.js +480 -0
  159. package/dist/chunk-W2SBSEKT.js +550 -0
  160. package/dist/chunk-WUCIHN7D.js +382 -0
  161. package/dist/chunk-XAHZYGKW.js +468 -0
  162. package/dist/chunk-XKWLP433.js +328 -0
  163. package/dist/chunk-XKWLP433.js.map +7 -0
  164. package/dist/chunk-YWB2QHV2.js +2799 -0
  165. package/dist/chunk-Z6M77JDG.js +2008 -0
  166. package/dist/chunk-Z7RFFJXU.js +516 -0
  167. package/dist/chunk-ZG7EBTHK.js +203 -0
  168. package/dist/chunk-ZJLJHQWM.js +418 -0
  169. package/dist/chunk-ZKU6RST3.js +2685 -0
  170. package/dist/chunk-ZLWEUYPT.js +296 -0
  171. package/dist/cohort-X327AG3O.js +66 -0
  172. package/dist/cohortSunburst-GNWIVDNA.js +402 -0
  173. package/dist/condition-3M4L2HIM.js +323 -0
  174. package/dist/controls-OKNHZJOU.js +30 -0
  175. package/dist/controls.config-FUKM5LEP.js +30 -0
  176. package/dist/correlation-PC4MXCFM.js +91 -0
  177. package/dist/customdata.inputui-HCRTX56R.js +280 -0
  178. package/dist/dataDownload-HJO7UW7S.js +326 -0
  179. package/dist/databrowser.ui-EY3H6B4S.js +424 -0
  180. package/dist/dictionary-L6CTMFY7.js +109 -0
  181. package/dist/dnaMethylation-FEB5GGXK.js +29 -0
  182. package/dist/dnaMethylation.integration.spec-4DC6TJNZ.js +194 -0
  183. package/dist/dnaMethylation.unit.spec-REOHQOBC.js +95 -0
  184. package/dist/dnaMethylation.unit.spec-REOHQOBC.js.map +7 -0
  185. package/dist/dofetch-YFGOKCKV.js +49 -0
  186. package/dist/e2pca-QSAVTCPL.js +340 -0
  187. package/dist/ep-LAFLKVSW.js +1247 -0
  188. package/dist/expclust.gdc.spec-OM4J6WBL.js +298 -0
  189. package/dist/facet-WHTV2VIX.js +556 -0
  190. package/dist/gb-DLXWWBB6.js +77 -0
  191. package/dist/geneExpClustering-KB2MB2VM.js +240 -0
  192. package/dist/geneExpression-3D7PDZ2I.js +309 -0
  193. package/dist/geneExpression-3RSRGYGQ.js +29 -0
  194. package/dist/geneExpression.unit.spec-EINAWLPR.js +150 -0
  195. package/dist/geneExpression.unit.spec-EINAWLPR.js.map +7 -0
  196. package/dist/geneORA-J4KVSZT3.js +269 -0
  197. package/dist/geneRanking-HKLJ7CN6.js +544 -0
  198. package/dist/geneVariant-3BRGRFPT.js +32 -0
  199. package/dist/geneVariant-VI5DGDAB.js +289 -0
  200. package/dist/geneVariant.integration.spec-3IBX4NNE.js +672 -0
  201. package/dist/genefusion.ui-OESQL7TW.js +299 -0
  202. package/dist/geneset-3BMV3KP4.js +199 -0
  203. package/dist/genomeBrowser.spec-I3WKAITC.js +272 -0
  204. package/dist/grin2-4BBCH3H5.js +66 -0
  205. package/dist/grin2-5L2U32LY.js +945 -0
  206. package/dist/hierCluster-KM56NTN6.js +51 -0
  207. package/dist/hierCluster-XCJF5IQ6.js +55 -0
  208. package/dist/hierCluster.config-E2EYOXX6.js +32 -0
  209. package/dist/hierCluster.integration.spec-IIEJ2YEI.js +479 -0
  210. package/dist/hierCluster.interactivity-AJFEJTGX.js +45 -0
  211. package/dist/hierCluster.renderers-XKI344FM.js +18 -0
  212. package/dist/imagePlot-3B3BXI6I.js +152 -0
  213. package/dist/importPlot-JDVH7Q2Z.js +8 -0
  214. package/dist/isoformExpression-UFHY5LB2.js +31 -0
  215. package/dist/isoformExpression.unit.spec-U6GDCNQR.js +233 -0
  216. package/dist/junction-W2STW5WW.js +32 -0
  217. package/dist/junction.customTerm-LQYKCZX4.js +15 -0
  218. package/dist/junction.unit.spec-R4DIBFLB.js +178 -0
  219. package/dist/launch.adhoc-KN7HFHJH.js +33 -0
  220. package/dist/leftlabel.sample-CK2EK7J6.js +254 -0
  221. package/dist/leftlabel.sample-CK2EK7J6.js.map +7 -0
  222. package/dist/lollipop-EKIGAAK6.js +162 -0
  223. package/dist/maf-MK2MM7J4.js +451 -0
  224. package/dist/maftimeline-7RTMXWFA.js +583 -0
  225. package/dist/matrix-UM2EZODJ.js +50 -0
  226. package/dist/matrix-YBL4FZYJ.js +55 -0
  227. package/dist/matrix.cells-45ZFADK5.js +25 -0
  228. package/dist/matrix.config-QTBIRXKU.js +33 -0
  229. package/dist/matrix.data-WAMOLSKW.js +22 -0
  230. package/dist/matrix.groups-RXFXZABD.js +25 -0
  231. package/dist/matrix.integration.spec-JZDZRVOK.js +3156 -0
  232. package/dist/matrix.interactivity-P4VYGTB2.js +33 -0
  233. package/dist/matrix.layout-WWPRXXHX.js +35 -0
  234. package/dist/matrix.legend-4MCMVVKO.js +19 -0
  235. package/dist/matrix.renderers-JQTUODDS.js +30 -0
  236. package/dist/matrix.serieses-3IDRKSGO.js +18 -0
  237. package/dist/matrix.sort-EAWOB56R.js +25 -0
  238. package/dist/matrix.sort.unit.spec-FOWLULHA.js +464 -0
  239. package/dist/matrix.sorterUi-Z4JDY7VW.js +15 -0
  240. package/dist/matrix.sorterUi.unit.spec-U5CQDTMX.js +334 -0
  241. package/dist/matrix.unit.spec-VTLD4EOZ.js +146 -0
  242. package/dist/mavb-JIIXJHBK.js +726 -0
  243. package/dist/mds.samplescatterplot-PTWA2V6E.js +1545 -0
  244. package/dist/mds.survivalplot-XVZ66GP5.js +472 -0
  245. package/dist/multivalue-2H7QX7MG.js +79 -0
  246. package/dist/numericDictTermCluster-EHCDRT6J.js +62 -0
  247. package/dist/oncomatrix-RZLZUC32.js +286 -0
  248. package/dist/oncomatrix.spec-Z5UQGTW2.js +439 -0
  249. package/dist/plot.2dvaf-IRBZBJ6B.js +368 -0
  250. package/dist/plot.app-I23IAZ3Z.js +32 -0
  251. package/dist/plot.barplot-PYLRAZB7.js +93 -0
  252. package/dist/plot.boxplot-VBWU7DUG.js +142 -0
  253. package/dist/plot.brainImaging-HDJMEMTK.js +51 -0
  254. package/dist/plot.disco-5BVG3WMT.js +100 -0
  255. package/dist/plot.disco-5BVG3WMT.js.map +7 -0
  256. package/dist/plot.ssgq-S3BKXJMW.js +130 -0
  257. package/dist/plot.vaf2cov-VD7DU2XR.js +249 -0
  258. package/dist/polar2-PYLEVG7E.js +228 -0
  259. package/dist/profileForms-CI2YYD3Y.js +937 -0
  260. package/dist/profilePlot-UCC4ZVHQ.js +45 -0
  261. package/dist/proteinView-FBY6TK3S.js +1346 -0
  262. package/dist/proteomeCohortCompare-2VUSLC6I.js +866 -0
  263. package/dist/proteomeCohortCompare-2VUSLC6I.js.map +7 -0
  264. package/dist/pseudbulk.unit.spec-VPZWNTIA.js +82 -0
  265. package/dist/pseudobulk-RUXGZ7OY.js +31 -0
  266. package/dist/qualitative-3AVR4GRX.js +34 -0
  267. package/dist/qualitative-5QNBKDOZ.js +241 -0
  268. package/dist/radar2-AOYMS54Y.js +323 -0
  269. package/dist/radarFacility2-PP2MAXIP.js +331 -0
  270. package/dist/rememberedGvQ.unit.spec-Q3UZJPE2.js +210 -0
  271. package/dist/render-ASLVKYEX.js +29 -0
  272. package/dist/report-UVYKDMQC.js +213 -0
  273. package/dist/sampleView-6UHR7FSR.js +39 -0
  274. package/dist/samplelst-ABC2CCNN.js +114 -0
  275. package/dist/samplematrix-36UCHZLC.js +2188 -0
  276. package/dist/sc-XLSAM725.js +77 -0
  277. package/dist/scatter-ADOBAOW2.js +84 -0
  278. package/dist/scatter-ZNVLI627.js +919 -0
  279. package/dist/selectGenomeWithTklst-DPDBDYTR.js +125 -0
  280. package/dist/singleCellCellType-STVPYZD4.js +29 -0
  281. package/dist/singleCellCellType.unit.spec-ZLY37AXL.js +150 -0
  282. package/dist/singleCellGeneExpression-PCGLU35S.js +29 -0
  283. package/dist/singleCellGeneExpression.unit.spec-PSLKK362.js +144 -0
  284. package/dist/singleCellNumericValue-SR3SJEOB.js +29 -0
  285. package/dist/singleCellNumericValue.unit.spec-PXVXJ4HJ.js +412 -0
  286. package/dist/singleCellPlot-JXB7M6OH.js +44 -0
  287. package/dist/singlecell-EDSX56QO.js +1562 -0
  288. package/dist/singlecell-PH55NFRX.js +77 -0
  289. package/dist/snp-3VEYBTAQ.js +29 -0
  290. package/dist/snp.unit.spec-V7OB44US.js +167 -0
  291. package/dist/snplocus-HX67RBT5.js +200 -0
  292. package/dist/snplst-H5YXCY33.js +36 -0
  293. package/dist/spliceevent.a53ss.diagram-DBDEEHSK.js +142 -0
  294. package/dist/spliceevent.exonskip.diagram-EYEL6BY6.js +274 -0
  295. package/dist/spliceevent.noeventdiagram-64OEXK7U.js +451 -0
  296. package/dist/ssGSEA-3YWQH6KM.js +29 -0
  297. package/dist/ssGSEA.unit.spec-23V2IXP5.js +79 -0
  298. package/dist/stattable-GPSBCNYC.js +112 -0
  299. package/dist/studyCatalog-W5PATRNY.js +457 -0
  300. package/dist/summarizeCnvGeneexp-YGI23QH5.js +154 -0
  301. package/dist/summarizeGeneexpSurvival-KQ6OLWYR.js +101 -0
  302. package/dist/summarizeMutationCnv-XDHBNEPU.js +155 -0
  303. package/dist/summarizeMutationDiagnosis-VKIJRJ2Q.js +31 -0
  304. package/dist/summarizeMutationSurvival-57YKJGLE.js +95 -0
  305. package/dist/summary-4WQOVIUF.js +40 -0
  306. package/dist/summary.integration.spec-FRNWBU7F.js +405 -0
  307. package/dist/summaryInput-X7DS2YA7.js +238 -0
  308. package/dist/sunburst-3OEAQA3O.js +34 -0
  309. package/dist/sunburst-MSGTXYMM.js +274 -0
  310. package/dist/survival-5KC5CNZU.js +1248 -0
  311. package/dist/survival-QXDS6N46.js +49 -0
  312. package/dist/survival.integration.spec-PKENHLTZ.js +609 -0
  313. package/dist/svgraph-VJLB7BBN.js +1377 -0
  314. package/dist/svmr-6BDEZAS6.js +3834 -0
  315. package/dist/swimmer-R3DN7N36.js +993 -0
  316. package/dist/table-YF5VORU6.js +192 -0
  317. package/dist/termCollection-3KGLZFDW.js +29 -0
  318. package/dist/termCollection-KSHVOPS5.js +247 -0
  319. package/dist/termCollection.unit.spec-HTBDG5PL.js +295 -0
  320. package/dist/termCollectionFractionSelection-MK4NKWUX.js +38 -0
  321. package/dist/termCollectionFractionSelection.unit.spec-AMF32FDN.js +184 -0
  322. package/dist/tk-FDHBAKXQ.js +1198 -0
  323. package/dist/tk-FDHBAKXQ.js.map +7 -0
  324. package/dist/tk-Z54DOECH.js +38 -0
  325. package/dist/tp.ui-M4TZVT53.js +1453 -0
  326. package/dist/tvs.categorical-HY3BWCZR.js +28 -0
  327. package/dist/tvs.condition-Y36TRIX4.js +160 -0
  328. package/dist/tvs.dt-XKVJZP7Y.js +34 -0
  329. package/dist/tvs.dtcnv.categorical-OMRZR4Y7.js +31 -0
  330. package/dist/tvs.dtcnv.continuous-AGYOBI5K.js +72 -0
  331. package/dist/tvs.dtfusion-2JX5Y2IH.js +31 -0
  332. package/dist/tvs.dtitd-SDSLBBWC.js +31 -0
  333. package/dist/tvs.dtsnvindel-LI7K464K.js +31 -0
  334. package/dist/tvs.dtsv-VRCLX7QY.js +31 -0
  335. package/dist/tvs.multivalue-4OTY6J2S.js +84 -0
  336. package/dist/tvs.numeric-CDATYOR2.js +32 -0
  337. package/dist/tvs.samplelst-76JOJG2M.js +95 -0
  338. package/dist/tvs.survival-WTFJOKIZ.js +110 -0
  339. package/dist/tvs.termCollection-QQXAS7PE.js +118 -0
  340. package/dist/vocabulary-6ACAEFTL.js +32 -0
  341. package/dist/wsi.direct-OS32TQRM.js +11515 -0
  342. package/package.json +3 -3
  343. package/dist/2dmaf-OWA6REJ5.js +0 -1362
  344. package/dist/AggMatrixInput-5GC33U5A.js +0 -402
  345. package/dist/AggregateMatrix-CMJFO53B.js +0 -37
  346. package/dist/AppHeader-KJCXF35P.js +0 -826
  347. package/dist/BoxPlot-NZTO6CLZ.js +0 -1247
  348. package/dist/CorrelationVolcano-GHTPFM2V.js +0 -613
  349. package/dist/Cuminc-HHBYFFFM.js +0 -1217
  350. package/dist/DE-VVKIMVXD.js +0 -85
  351. package/dist/DEinput-F7HSM2SO.js +0 -479
  352. package/dist/DM-UBCIWZEY.js +0 -86
  353. package/dist/DifferentialAnalysis-UUXXMOQS.js +0 -236
  354. package/dist/Disco-NHXU7LG7.js +0 -3384
  355. package/dist/Disco-NHXU7LG7.js.map +0 -7
  356. package/dist/Disco.UI-GSSSK4YJ.js +0 -239
  357. package/dist/DmrPlot-QFSU62PY.js +0 -344
  358. package/dist/DmrPlot-QFSU62PY.js.map +0 -7
  359. package/dist/GB-CIQGJBJP.js +0 -1388
  360. package/dist/GSEA-3GVFEJTX.js +0 -870
  361. package/dist/GeneExpInput-CFU3Q7FM.js +0 -38
  362. package/dist/Geomap-NMVFA77Q.js +0 -80
  363. package/dist/HicApp-4FCGUUJD.js +0 -2240
  364. package/dist/IDCViewer-WFB6AXHD.js +0 -10810
  365. package/dist/NumBinaryEditor-4WUDJRSU.js +0 -274
  366. package/dist/NumBinaryEditor.unit.spec-MV53GTGQ.js +0 -308
  367. package/dist/NumContEditor-U4R6HPDM.js +0 -100
  368. package/dist/NumContEditor.unit.spec-J4ANPBSF.js +0 -160
  369. package/dist/NumCustomBinEditor-QRGDNFP4.js +0 -29
  370. package/dist/NumCustomBinEditor.unit.spec-PPF233FW.js +0 -393
  371. package/dist/NumDiscreteEditor-LNK4KHSL.js +0 -165
  372. package/dist/NumDiscreteEditor.unit.spec-QY6O62JU.js +0 -229
  373. package/dist/NumRegularBinEditor-XTINNM5L.js +0 -29
  374. package/dist/NumRegularBinEditor.unit.spec-FSLARHOC.js +0 -274
  375. package/dist/NumSplineEditor-YSQTKBFA.js +0 -205
  376. package/dist/NumSplineEditor.unit.spec-QNITPY7R.js +0 -220
  377. package/dist/NumericDensity-J5WS74JZ.js +0 -29
  378. package/dist/NumericDensity.unit.spec-4WQWLSSJ.js +0 -414
  379. package/dist/NumericHandler-ZEWC25U2.js +0 -30
  380. package/dist/NumericHandler.unit.spec-A3G5FWGV.js +0 -225
  381. package/dist/ProteomeInput-7DXGQIOO.js +0 -610
  382. package/dist/Regression-VQ5MC6KW.js +0 -1412
  383. package/dist/RunChart2-B33CQUXH.js +0 -744
  384. package/dist/SC-LEVWXS4P.js +0 -1290
  385. package/dist/Violin-L43OHY63.js +0 -1105
  386. package/dist/Violin-L43OHY63.js.map +0 -7
  387. package/dist/Volcano-NTXVM3UR.js +0 -2657
  388. package/dist/Volcano-NTXVM3UR.js.map +0 -7
  389. package/dist/Wsi-VPF6RX3B.js +0 -637
  390. package/dist/aboutSunburst-NGH3V74S.js +0 -93
  391. package/dist/adSandbox-VOAL4P5A.js +0 -29
  392. package/dist/animatedBubbleChart-HKOGYPSS.js +0 -542
  393. package/dist/app-AZLUP2BA.js +0 -28
  394. package/dist/app-JJPKGBEV.js +0 -38
  395. package/dist/bam-GIZSH2MF.js +0 -872
  396. package/dist/barchart-CVTXLIIQ.js +0 -38
  397. package/dist/barchart2-XYC6WITL.js +0 -305
  398. package/dist/block-DXRSU62C.js +0 -6203
  399. package/dist/block.init-U4Y6ROG4.js +0 -29
  400. package/dist/block.mds.expressionrank-BB26LVTM.js +0 -350
  401. package/dist/block.mds.geneboxplot-VVKEU3SL.js +0 -819
  402. package/dist/block.mds.junction-XUZX6EAQ.js +0 -1534
  403. package/dist/block.mds.svcnv-WDSACPWG.js +0 -6325
  404. package/dist/block.svg-T5BA7VLS.js +0 -155
  405. package/dist/block.tk.aicheck-3VN2RDPD.js +0 -274
  406. package/dist/block.tk.bam-5XZ3N4Y7.js +0 -1906
  407. package/dist/block.tk.bigwig.ui-JODVOS4R.js +0 -202
  408. package/dist/block.tk.hicstraw-AFNWJ2YP.js +0 -814
  409. package/dist/block.tk.junction-T2G6XEVS.js +0 -2353
  410. package/dist/block.tk.junction.textmatrixui-FL5MZH7K.js +0 -190
  411. package/dist/block.tk.ld-JKBXDOB5.js +0 -90
  412. package/dist/block.tk.menu-2X4BN7BN.js +0 -1050
  413. package/dist/block.tk.pgv-ASUVEGQF.js +0 -934
  414. package/dist/brainImaging-27442GMQ.js +0 -550
  415. package/dist/brainRegions-3367RQCU.js +0 -213
  416. package/dist/bubbleHeatmap-IOVS6SHX.js +0 -374
  417. package/dist/cellTypeBubbleHeatmap-7XJP6B5W.js +0 -274
  418. package/dist/chunk-2CTAWHGB.js +0 -56
  419. package/dist/chunk-2ESAB2PP.js +0 -848
  420. package/dist/chunk-2GP3LH7J.js +0 -194
  421. package/dist/chunk-2UGYE6EJ.js +0 -54
  422. package/dist/chunk-3TJBSAIO.js +0 -170
  423. package/dist/chunk-46KQE4DV.js +0 -418
  424. package/dist/chunk-4ICGMPPE.js +0 -56
  425. package/dist/chunk-4RQTQDHF.js +0 -5214
  426. package/dist/chunk-4RQTQDHF.js.map +0 -7
  427. package/dist/chunk-5FD6NRGE.js +0 -472
  428. package/dist/chunk-5FD6NRGE.js.map +0 -7
  429. package/dist/chunk-5JBOGNSG.js +0 -159
  430. package/dist/chunk-5OWPH4IH.js +0 -626
  431. package/dist/chunk-63TCOVAK.js +0 -30
  432. package/dist/chunk-7ONTCJWB.js +0 -1219
  433. package/dist/chunk-7Q4KAFCS.js +0 -281
  434. package/dist/chunk-7UXV4IX5.js +0 -102
  435. package/dist/chunk-7ZCYC2DQ.js +0 -70
  436. package/dist/chunk-AQSZLUDV.js +0 -184
  437. package/dist/chunk-BBA5MAFS.js +0 -240
  438. package/dist/chunk-BNJC6OX5.js +0 -2102
  439. package/dist/chunk-BNJC6OX5.js.map +0 -7
  440. package/dist/chunk-BOQYGAYA.js +0 -119
  441. package/dist/chunk-C4YACFGH.js +0 -692
  442. package/dist/chunk-CKO54XWB.js +0 -54
  443. package/dist/chunk-COWLQ74R.js +0 -82
  444. package/dist/chunk-COWLQ74R.js.map +0 -7
  445. package/dist/chunk-CU434U4N.js +0 -35
  446. package/dist/chunk-CZOJUH3C.js +0 -30
  447. package/dist/chunk-D22DJFFZ.js +0 -254
  448. package/dist/chunk-D22DJFFZ.js.map +0 -7
  449. package/dist/chunk-D2YPS46O.js +0 -266
  450. package/dist/chunk-D2YPS46O.js.map +0 -7
  451. package/dist/chunk-DVSTBGZT.js +0 -182
  452. package/dist/chunk-EIO6DMIQ.js +0 -31
  453. package/dist/chunk-EM56Y4X6.js +0 -2685
  454. package/dist/chunk-F6CYUMSM.js +0 -37
  455. package/dist/chunk-FUTHP5J4.js +0 -274
  456. package/dist/chunk-G5GFCBJT.js +0 -217
  457. package/dist/chunk-GOL6A746.js +0 -96
  458. package/dist/chunk-GVLXSPTN.js +0 -141
  459. package/dist/chunk-HNU4RYI5.js +0 -203
  460. package/dist/chunk-HTIZFNBC.js +0 -4389
  461. package/dist/chunk-HUF5BTO6.js +0 -562
  462. package/dist/chunk-HWP3U2VY.js +0 -382
  463. package/dist/chunk-JEXS72M5.js +0 -550
  464. package/dist/chunk-JNIYPQWY.js +0 -176
  465. package/dist/chunk-K5RCZIZN.js +0 -2799
  466. package/dist/chunk-KA3KYNOP.js +0 -195
  467. package/dist/chunk-KGFH5VTH.js +0 -444
  468. package/dist/chunk-KTRDLHCP.js +0 -397
  469. package/dist/chunk-L6TGKNRA.js +0 -516
  470. package/dist/chunk-LN4KNFOQ.js +0 -55
  471. package/dist/chunk-M4ML4ACA.js +0 -134
  472. package/dist/chunk-MIDVLNN3.js +0 -123
  473. package/dist/chunk-MUVXIOXM.js +0 -276
  474. package/dist/chunk-N2RAPA7D.js +0 -42
  475. package/dist/chunk-N6AHRJAM.js +0 -1339
  476. package/dist/chunk-NB4UU4DH.js +0 -54
  477. package/dist/chunk-NGG4737W.js +0 -296
  478. package/dist/chunk-O4BDFBVK.js +0 -1253
  479. package/dist/chunk-OGU7IDV7.js +0 -102
  480. package/dist/chunk-OGU7IDV7.js.map +0 -7
  481. package/dist/chunk-OT2DMA2D.js +0 -652
  482. package/dist/chunk-OVO6NYUR.js +0 -480
  483. package/dist/chunk-OXRZSZKA.js +0 -2008
  484. package/dist/chunk-QMR3QMJG.js +0 -50
  485. package/dist/chunk-QUVGLTCF.js +0 -103
  486. package/dist/chunk-R2H22S4J.js +0 -5786
  487. package/dist/chunk-R2H22S4J.js.map +0 -7
  488. package/dist/chunk-RCLCEA55.js +0 -305
  489. package/dist/chunk-RCVA2RWU.js +0 -466
  490. package/dist/chunk-RSCSTOUN.js +0 -6375
  491. package/dist/chunk-SCXWXLMR.js +0 -237
  492. package/dist/chunk-SCXWXLMR.js.map +0 -7
  493. package/dist/chunk-SQUMXZXI.js +0 -257
  494. package/dist/chunk-T2DORAV4.js +0 -398
  495. package/dist/chunk-TBXJ2CUA.js +0 -14
  496. package/dist/chunk-TQLHKDNS.js +0 -140
  497. package/dist/chunk-TTSKLWP7.js +0 -2932
  498. package/dist/chunk-VQD6GZMU.js +0 -59
  499. package/dist/chunk-VZBRG6HQ.js +0 -263
  500. package/dist/chunk-WQHL6SR3.js +0 -468
  501. package/dist/chunk-X7JGAQ5N.js +0 -340
  502. package/dist/chunk-Z6ZFRHXK.js +0 -2334
  503. package/dist/chunk-ZCY72DDM.js +0 -379
  504. package/dist/chunk-ZHY7ZHWC.js +0 -243
  505. package/dist/chunk-ZIMAIUZD.js +0 -26744
  506. package/dist/chunk-ZIMAIUZD.js.map +0 -7
  507. package/dist/chunk-ZLQ6PAI6.js +0 -299
  508. package/dist/chunk-ZUG4EY4T.js +0 -348
  509. package/dist/chunk-ZUXXBQ7D.js +0 -2349
  510. package/dist/cohort-2DQOQ5AO.js +0 -66
  511. package/dist/cohortSunburst-W6XC7VD6.js +0 -402
  512. package/dist/condition-3A7I5UQA.js +0 -323
  513. package/dist/controls-G5WYBX4P.js +0 -30
  514. package/dist/controls.config-TAFGM2S2.js +0 -30
  515. package/dist/correlation-K4EOOQJU.js +0 -91
  516. package/dist/customdata.inputui-E7RRN3KY.js +0 -280
  517. package/dist/dataDownload-OXZGAE5R.js +0 -326
  518. package/dist/databrowser.ui-IPUF6LUC.js +0 -424
  519. package/dist/dictionary-MUNAUI43.js +0 -109
  520. package/dist/dnaMethylation-SOV4HBAX.js +0 -29
  521. package/dist/dnaMethylation.integration.spec-T4KKTMRL.js +0 -194
  522. package/dist/dofetch-2CR2TVWC.js +0 -49
  523. package/dist/e2pca-EIOJCV4O.js +0 -340
  524. package/dist/ep-5QX3CW6D.js +0 -1247
  525. package/dist/expclust.gdc.spec-TNHPZLYQ.js +0 -298
  526. package/dist/facet-I3OC4DK2.js +0 -556
  527. package/dist/gb-WPIUHR3O.js +0 -77
  528. package/dist/geneExpClustering-EYGZENSP.js +0 -240
  529. package/dist/geneExpression-54L3DH32.js +0 -309
  530. package/dist/geneExpression-6S6H2EVY.js +0 -29
  531. package/dist/geneExpression.unit.spec-VVI2MXIH.js +0 -151
  532. package/dist/geneExpression.unit.spec-VVI2MXIH.js.map +0 -7
  533. package/dist/geneORA-7M64LXZC.js +0 -269
  534. package/dist/geneRanking-676CAA3B.js +0 -544
  535. package/dist/geneVariant-4UPJE6MJ.js +0 -289
  536. package/dist/geneVariant-PFVPL22U.js +0 -32
  537. package/dist/geneVariant.integration.spec-EAJ4OSFQ.js +0 -672
  538. package/dist/genefusion.ui-LP4EJUTO.js +0 -299
  539. package/dist/geneset-ANDOMTPO.js +0 -199
  540. package/dist/genomeBrowser.spec-NUXOOL5N.js +0 -272
  541. package/dist/grin2-K4LRVCES.js +0 -66
  542. package/dist/grin2-YFCWJZFR.js +0 -945
  543. package/dist/hierCluster-POD3DRO4.js +0 -55
  544. package/dist/hierCluster-QA7HXKRD.js +0 -51
  545. package/dist/hierCluster.config-HQ3SVKCE.js +0 -32
  546. package/dist/hierCluster.integration.spec-MOYDWJL3.js +0 -479
  547. package/dist/hierCluster.interactivity-OZTNHXZQ.js +0 -45
  548. package/dist/hierCluster.renderers-46E37NL4.js +0 -18
  549. package/dist/imagePlot-HNAYBWY3.js +0 -152
  550. package/dist/importPlot-XTW46VF4.js +0 -8
  551. package/dist/isoformExpression-2TMTILKG.js +0 -31
  552. package/dist/isoformExpression.unit.spec-SIJWP7TH.js +0 -233
  553. package/dist/junction-AICKHNXX.js +0 -32
  554. package/dist/junction.customTerm-5STKYZ4B.js +0 -15
  555. package/dist/junction.unit.spec-EXFN4MLW.js +0 -178
  556. package/dist/launch.adhoc-PB6PGR7Q.js +0 -33
  557. package/dist/leftlabel.sample-ISUD4A7F.js +0 -253
  558. package/dist/leftlabel.sample-ISUD4A7F.js.map +0 -7
  559. package/dist/lollipop-5UXUAFYY.js +0 -162
  560. package/dist/maf-L6YD25JK.js +0 -451
  561. package/dist/maftimeline-63YZDGJ3.js +0 -583
  562. package/dist/matrix-OPEBHZCW.js +0 -55
  563. package/dist/matrix-TLMWPG7C.js +0 -50
  564. package/dist/matrix.cells-IELMNYC6.js +0 -25
  565. package/dist/matrix.config-J7SVFXLM.js +0 -33
  566. package/dist/matrix.data-DJTJCPO4.js +0 -22
  567. package/dist/matrix.groups-2REICNZK.js +0 -25
  568. package/dist/matrix.integration.spec-ZXU2OEFU.js +0 -3156
  569. package/dist/matrix.interactivity-SX3OR6OI.js +0 -33
  570. package/dist/matrix.layout-ZJ6X5RON.js +0 -35
  571. package/dist/matrix.legend-ZOP72TIO.js +0 -19
  572. package/dist/matrix.renderers-YUSROXKN.js +0 -30
  573. package/dist/matrix.serieses-UMAZNCMR.js +0 -18
  574. package/dist/matrix.sort-2JNIZHNL.js +0 -25
  575. package/dist/matrix.sort.unit.spec-SNB643Y6.js +0 -464
  576. package/dist/matrix.sorterUi-JXEIY6UL.js +0 -15
  577. package/dist/matrix.sorterUi.unit.spec-LDAT4R3H.js +0 -334
  578. package/dist/matrix.unit.spec-QBQIMDLD.js +0 -146
  579. package/dist/mavb-EQUF3VGG.js +0 -726
  580. package/dist/mds.samplescatterplot-73E45ZT7.js +0 -1545
  581. package/dist/mds.survivalplot-DL53IRVD.js +0 -472
  582. package/dist/multivalue-PQN75ENP.js +0 -79
  583. package/dist/numericDictTermCluster-FGMIOTBO.js +0 -62
  584. package/dist/oncomatrix-CCHWOA3N.js +0 -286
  585. package/dist/oncomatrix.spec-GQT3UTCR.js +0 -439
  586. package/dist/plot.2dvaf-L6ZI5ROR.js +0 -368
  587. package/dist/plot.app-A73VXJCP.js +0 -32
  588. package/dist/plot.barplot-HSCHPOO7.js +0 -93
  589. package/dist/plot.boxplot-AXBVNTNH.js +0 -142
  590. package/dist/plot.brainImaging-PEMURKM3.js +0 -51
  591. package/dist/plot.disco-YKMYYVMV.js +0 -98
  592. package/dist/plot.disco-YKMYYVMV.js.map +0 -7
  593. package/dist/plot.ssgq-FGMQXKZU.js +0 -130
  594. package/dist/plot.vaf2cov-IBM7NQEB.js +0 -249
  595. package/dist/polar2-N7KWY36S.js +0 -228
  596. package/dist/profileForms-Q4NN7653.js +0 -937
  597. package/dist/profilePlot-SQ77M6LI.js +0 -45
  598. package/dist/proteinView-KSIZRDNP.js +0 -1346
  599. package/dist/proteomeCohortCompare-GYSBJSDY.js +0 -866
  600. package/dist/proteomeCohortCompare-GYSBJSDY.js.map +0 -7
  601. package/dist/pseudbulk.unit.spec-XELPZVXM.js +0 -82
  602. package/dist/pseudobulk-H3USXM5U.js +0 -31
  603. package/dist/qualitative-ABXENRAF.js +0 -34
  604. package/dist/qualitative-OSEJTJ4D.js +0 -241
  605. package/dist/radar2-VTDQGHWN.js +0 -323
  606. package/dist/radarFacility2-BWGEC5A2.js +0 -331
  607. package/dist/rememberedGvQ.unit.spec-TWUDSEDP.js +0 -210
  608. package/dist/render-C3XJQ2QY.js +0 -29
  609. package/dist/report-7ZZ44X4R.js +0 -213
  610. package/dist/sampleView-CUCNI65Q.js +0 -39
  611. package/dist/samplelst-S7AJQ36J.js +0 -114
  612. package/dist/samplematrix-U7WM6GNB.js +0 -2188
  613. package/dist/sc-FMJHN2SW.js +0 -77
  614. package/dist/scatter-4UMCJNEH.js +0 -919
  615. package/dist/scatter-KMAZ3ZNR.js +0 -84
  616. package/dist/selectGenomeWithTklst-5SRM45BI.js +0 -125
  617. package/dist/singleCellCellType-GIIICJK5.js +0 -29
  618. package/dist/singleCellCellType.unit.spec-MVA7BMGL.js +0 -150
  619. package/dist/singleCellGeneExpression-2QFQHJJH.js +0 -29
  620. package/dist/singleCellGeneExpression.unit.spec-SAIETYHV.js +0 -144
  621. package/dist/singleCellNumericValue-45H5EPIB.js +0 -29
  622. package/dist/singleCellNumericValue.unit.spec-FNKEJ2WC.js +0 -412
  623. package/dist/singleCellPlot-SP7OEGYQ.js +0 -44
  624. package/dist/singlecell-AVZQX4AH.js +0 -1562
  625. package/dist/singlecell-JQKUHGIH.js +0 -77
  626. package/dist/snp-4SA7VABN.js +0 -29
  627. package/dist/snp.unit.spec-YIYGR6GW.js +0 -167
  628. package/dist/snplocus-TDGQ57ZJ.js +0 -200
  629. package/dist/snplst-SWBGRYPA.js +0 -36
  630. package/dist/spliceevent.a53ss.diagram-YODOBS6U.js +0 -142
  631. package/dist/spliceevent.exonskip.diagram-PMZIQ5UG.js +0 -274
  632. package/dist/spliceevent.noeventdiagram-A4T2PNUX.js +0 -451
  633. package/dist/ssGSEA-U7D6HOIV.js +0 -29
  634. package/dist/ssGSEA.unit.spec-SMNAM5DJ.js +0 -79
  635. package/dist/stattable-DBYMPJU6.js +0 -112
  636. package/dist/studyCatalog-7RABX4W5.js +0 -457
  637. package/dist/summarizeCnvGeneexp-YVRW7LWY.js +0 -154
  638. package/dist/summarizeGeneexpSurvival-ZB7IWGPS.js +0 -101
  639. package/dist/summarizeMutationCnv-CUSYURDK.js +0 -155
  640. package/dist/summarizeMutationDiagnosis-NSPCT5WI.js +0 -31
  641. package/dist/summarizeMutationSurvival-2PZZCC4G.js +0 -95
  642. package/dist/summary-CYDZSICI.js +0 -40
  643. package/dist/summary.integration.spec-2TLKJS3X.js +0 -405
  644. package/dist/summaryInput-BRQ5JRGV.js +0 -238
  645. package/dist/sunburst-435LKL2S.js +0 -34
  646. package/dist/sunburst-D5WAGHX6.js +0 -274
  647. package/dist/survival-M63B6DY5.js +0 -1248
  648. package/dist/survival-MHESSYWF.js +0 -49
  649. package/dist/survival.integration.spec-WMS3FTNR.js +0 -609
  650. package/dist/svgraph-LYFGVTHI.js +0 -1377
  651. package/dist/svmr-UR67QZIP.js +0 -3834
  652. package/dist/swimmer-RP4SUEZS.js +0 -993
  653. package/dist/table-V4OOMF3B.js +0 -192
  654. package/dist/termCollection-VHGVBSWW.js +0 -29
  655. package/dist/termCollection-WSNM3YFK.js +0 -247
  656. package/dist/termCollection.unit.spec-NCZUZL6P.js +0 -295
  657. package/dist/termCollectionFractionSelection-XM3FJWBQ.js +0 -38
  658. package/dist/termCollectionFractionSelection.unit.spec-VO4SAV72.js +0 -184
  659. package/dist/tk-G5PKWSXJ.js +0 -1193
  660. package/dist/tk-G5PKWSXJ.js.map +0 -7
  661. package/dist/tk-KIELQHVI.js +0 -37
  662. package/dist/tp.ui-HAKSWLFB.js +0 -1453
  663. package/dist/tvs.categorical-G4DM4JY5.js +0 -28
  664. package/dist/tvs.condition-E5NUQONB.js +0 -160
  665. package/dist/tvs.dt-T4BK24VZ.js +0 -34
  666. package/dist/tvs.dtcnv.categorical-V57TZFRA.js +0 -31
  667. package/dist/tvs.dtcnv.continuous-D4YIB4PN.js +0 -72
  668. package/dist/tvs.dtfusion-6DUFLUNH.js +0 -31
  669. package/dist/tvs.dtitd-GOEPAQGR.js +0 -31
  670. package/dist/tvs.dtsnvindel-ASTXGC4O.js +0 -31
  671. package/dist/tvs.dtsv-7TGDEWXK.js +0 -31
  672. package/dist/tvs.multivalue-SEIGL2W6.js +0 -84
  673. package/dist/tvs.numeric-MLLX5L7Z.js +0 -32
  674. package/dist/tvs.samplelst-HAV7C2EA.js +0 -95
  675. package/dist/tvs.survival-3B522MT2.js +0 -110
  676. package/dist/tvs.termCollection-R5NG4VXP.js +0 -118
  677. package/dist/vocabulary-LBNHNSEN.js +0 -32
  678. package/dist/wsi.direct-ZEZO4NLR.js +0 -11515
  679. /package/dist/{2dmaf-OWA6REJ5.js.map → 2dmaf-CSBPMYHO.js.map} +0 -0
  680. /package/dist/{AggMatrixInput-5GC33U5A.js.map → AggMatrixInput-2HST4LLJ.js.map} +0 -0
  681. /package/dist/{AggregateMatrix-CMJFO53B.js.map → AggregateMatrix-UPOAX44L.js.map} +0 -0
  682. /package/dist/{AppHeader-KJCXF35P.js.map → AppHeader-H5QBVKUS.js.map} +0 -0
  683. /package/dist/{BoxPlot-NZTO6CLZ.js.map → BoxPlot-JTBQA6PL.js.map} +0 -0
  684. /package/dist/{CorrelationVolcano-GHTPFM2V.js.map → CorrelationVolcano-AWBPVDMT.js.map} +0 -0
  685. /package/dist/{Cuminc-HHBYFFFM.js.map → Cuminc-3BXJVWIH.js.map} +0 -0
  686. /package/dist/{DE-VVKIMVXD.js.map → DE-237VV46D.js.map} +0 -0
  687. /package/dist/{DEinput-F7HSM2SO.js.map → DEinput-W443UW5T.js.map} +0 -0
  688. /package/dist/{DM-UBCIWZEY.js.map → DM-TIW623IR.js.map} +0 -0
  689. /package/dist/{DifferentialAnalysis-UUXXMOQS.js.map → DifferentialAnalysis-PHUA2GPK.js.map} +0 -0
  690. /package/dist/{Disco.UI-GSSSK4YJ.js.map → Disco.UI-UDUXNCZX.js.map} +0 -0
  691. /package/dist/{GB-CIQGJBJP.js.map → GB-6UW5LOUV.js.map} +0 -0
  692. /package/dist/{GSEA-3GVFEJTX.js.map → GSEA-3CNHMK6M.js.map} +0 -0
  693. /package/dist/{GeneExpInput-CFU3Q7FM.js.map → GeneExpInput-ZOVP7BFY.js.map} +0 -0
  694. /package/dist/{Geomap-NMVFA77Q.js.map → Geomap-JREOIESM.js.map} +0 -0
  695. /package/dist/{HicApp-4FCGUUJD.js.map → HicApp-RKAMIUXQ.js.map} +0 -0
  696. /package/dist/{IDCViewer-WFB6AXHD.js.map → IDCViewer-KXV4FU3V.js.map} +0 -0
  697. /package/dist/{NumBinaryEditor-4WUDJRSU.js.map → NumBinaryEditor-FNVYUK2J.js.map} +0 -0
  698. /package/dist/{NumBinaryEditor.unit.spec-MV53GTGQ.js.map → NumBinaryEditor.unit.spec-PWR23U3J.js.map} +0 -0
  699. /package/dist/{NumContEditor-U4R6HPDM.js.map → NumContEditor-YLBJW64K.js.map} +0 -0
  700. /package/dist/{NumContEditor.unit.spec-J4ANPBSF.js.map → NumContEditor.unit.spec-6JWBCPFY.js.map} +0 -0
  701. /package/dist/{NumCustomBinEditor-QRGDNFP4.js.map → NumCustomBinEditor-42AFCXRN.js.map} +0 -0
  702. /package/dist/{NumCustomBinEditor.unit.spec-PPF233FW.js.map → NumCustomBinEditor.unit.spec-AFBTF2CL.js.map} +0 -0
  703. /package/dist/{NumDiscreteEditor-LNK4KHSL.js.map → NumDiscreteEditor-FJIBZTBP.js.map} +0 -0
  704. /package/dist/{NumDiscreteEditor.unit.spec-QY6O62JU.js.map → NumDiscreteEditor.unit.spec-MC4INDCB.js.map} +0 -0
  705. /package/dist/{NumRegularBinEditor-XTINNM5L.js.map → NumRegularBinEditor-2WRE72TL.js.map} +0 -0
  706. /package/dist/{NumRegularBinEditor.unit.spec-FSLARHOC.js.map → NumRegularBinEditor.unit.spec-L3S6NRCM.js.map} +0 -0
  707. /package/dist/{NumSplineEditor-YSQTKBFA.js.map → NumSplineEditor-TVMVAN7I.js.map} +0 -0
  708. /package/dist/{NumSplineEditor.unit.spec-QNITPY7R.js.map → NumSplineEditor.unit.spec-GEL36GZZ.js.map} +0 -0
  709. /package/dist/{NumericDensity-J5WS74JZ.js.map → NumericDensity-BNFAVOFO.js.map} +0 -0
  710. /package/dist/{NumericDensity.unit.spec-4WQWLSSJ.js.map → NumericDensity.unit.spec-XBYUFBTQ.js.map} +0 -0
  711. /package/dist/{NumericHandler-ZEWC25U2.js.map → NumericHandler-4VFFJNX6.js.map} +0 -0
  712. /package/dist/{NumericHandler.unit.spec-A3G5FWGV.js.map → NumericHandler.unit.spec-76T2IVRS.js.map} +0 -0
  713. /package/dist/{ProteomeInput-7DXGQIOO.js.map → ProteomeInput-M5UIO73Q.js.map} +0 -0
  714. /package/dist/{Regression-VQ5MC6KW.js.map → Regression-5LB5TLA6.js.map} +0 -0
  715. /package/dist/{RunChart2-B33CQUXH.js.map → RunChart2-HIFXOEKZ.js.map} +0 -0
  716. /package/dist/{SC-LEVWXS4P.js.map → SC-SMMW5MJG.js.map} +0 -0
  717. /package/dist/{Wsi-VPF6RX3B.js.map → Wsi-OYW2L7FR.js.map} +0 -0
  718. /package/dist/{aboutSunburst-NGH3V74S.js.map → aboutSunburst-3FYJGR6B.js.map} +0 -0
  719. /package/dist/{adSandbox-VOAL4P5A.js.map → adSandbox-4VHYWBQC.js.map} +0 -0
  720. /package/dist/{animatedBubbleChart-HKOGYPSS.js.map → animatedBubbleChart-QCCIC5IT.js.map} +0 -0
  721. /package/dist/{app-AZLUP2BA.js.map → app-IF7YPCGZ.js.map} +0 -0
  722. /package/dist/{app-JJPKGBEV.js.map → app-JZ43TSJP.js.map} +0 -0
  723. /package/dist/{bam-GIZSH2MF.js.map → bam-2VPZGSW3.js.map} +0 -0
  724. /package/dist/{barchart-CVTXLIIQ.js.map → barchart-VYTWYYGG.js.map} +0 -0
  725. /package/dist/{barchart2-XYC6WITL.js.map → barchart2-XC7J4VEO.js.map} +0 -0
  726. /package/dist/{block-DXRSU62C.js.map → block-YGQFUK5L.js.map} +0 -0
  727. /package/dist/{block.init-U4Y6ROG4.js.map → block.init-BVP3YZHQ.js.map} +0 -0
  728. /package/dist/{block.mds.expressionrank-BB26LVTM.js.map → block.mds.expressionrank-RKDDKY4J.js.map} +0 -0
  729. /package/dist/{block.mds.geneboxplot-VVKEU3SL.js.map → block.mds.geneboxplot-3FZ3EZZ6.js.map} +0 -0
  730. /package/dist/{block.mds.junction-XUZX6EAQ.js.map → block.mds.junction-MCOG37RA.js.map} +0 -0
  731. /package/dist/{block.mds.svcnv-WDSACPWG.js.map → block.mds.svcnv-IEOR5IQZ.js.map} +0 -0
  732. /package/dist/{block.svg-T5BA7VLS.js.map → block.svg-3XHRHYCV.js.map} +0 -0
  733. /package/dist/{block.tk.aicheck-3VN2RDPD.js.map → block.tk.aicheck-TMDUGNZX.js.map} +0 -0
  734. /package/dist/{block.tk.bam-5XZ3N4Y7.js.map → block.tk.bam-73KW4QEJ.js.map} +0 -0
  735. /package/dist/{block.tk.bigwig.ui-JODVOS4R.js.map → block.tk.bigwig.ui-E5W6R7DQ.js.map} +0 -0
  736. /package/dist/{block.tk.hicstraw-AFNWJ2YP.js.map → block.tk.hicstraw-BNNE6ZMW.js.map} +0 -0
  737. /package/dist/{block.tk.junction-T2G6XEVS.js.map → block.tk.junction-DMPRZRNY.js.map} +0 -0
  738. /package/dist/{block.tk.junction.textmatrixui-FL5MZH7K.js.map → block.tk.junction.textmatrixui-XS2E7MQL.js.map} +0 -0
  739. /package/dist/{block.tk.ld-JKBXDOB5.js.map → block.tk.ld-QD3XDLO4.js.map} +0 -0
  740. /package/dist/{block.tk.menu-2X4BN7BN.js.map → block.tk.menu-S6XI732E.js.map} +0 -0
  741. /package/dist/{block.tk.pgv-ASUVEGQF.js.map → block.tk.pgv-KH4TMR3A.js.map} +0 -0
  742. /package/dist/{brainImaging-27442GMQ.js.map → brainImaging-NK4JENN3.js.map} +0 -0
  743. /package/dist/{brainRegions-3367RQCU.js.map → brainRegions-YUEMTKYH.js.map} +0 -0
  744. /package/dist/{bubbleHeatmap-IOVS6SHX.js.map → bubbleHeatmap-LQCVS4WK.js.map} +0 -0
  745. /package/dist/{cellTypeBubbleHeatmap-7XJP6B5W.js.map → cellTypeBubbleHeatmap-DFRSPWAY.js.map} +0 -0
  746. /package/dist/{chunk-Z6ZFRHXK.js.map → chunk-3RPX4ZVV.js.map} +0 -0
  747. /package/dist/{chunk-7UXV4IX5.js.map → chunk-4LK5YFHF.js.map} +0 -0
  748. /package/dist/{chunk-GVLXSPTN.js.map → chunk-4WFXCUT4.js.map} +0 -0
  749. /package/dist/{chunk-RCLCEA55.js.map → chunk-5LY2ASQX.js.map} +0 -0
  750. /package/dist/{chunk-F6CYUMSM.js.map → chunk-6PVVV3UW.js.map} +0 -0
  751. /package/dist/{chunk-ZUXXBQ7D.js.map → chunk-6V7ITU5F.js.map} +0 -0
  752. /package/dist/{chunk-T2DORAV4.js.map → chunk-7UK7CU4F.js.map} +0 -0
  753. /package/dist/{chunk-M4ML4ACA.js.map → chunk-AAQDXVQT.js.map} +0 -0
  754. /package/dist/{chunk-ZHY7ZHWC.js.map → chunk-ADJBQCFM.js.map} +0 -0
  755. /package/dist/{chunk-C4YACFGH.js.map → chunk-ATIITEOR.js.map} +0 -0
  756. /package/dist/{chunk-CU434U4N.js.map → chunk-BWVJAFEQ.js.map} +0 -0
  757. /package/dist/{chunk-QMR3QMJG.js.map → chunk-CDCNBN6G.js.map} +0 -0
  758. /package/dist/{chunk-N6AHRJAM.js.map → chunk-CGSBIFFO.js.map} +0 -0
  759. /package/dist/{chunk-BOQYGAYA.js.map → chunk-DOC3HBOV.js.map} +0 -0
  760. /package/dist/{chunk-JNIYPQWY.js.map → chunk-EARMOT6Q.js.map} +0 -0
  761. /package/dist/{chunk-HUF5BTO6.js.map → chunk-ECCXTB5S.js.map} +0 -0
  762. /package/dist/{chunk-CKO54XWB.js.map → chunk-EKIWZUEO.js.map} +0 -0
  763. /package/dist/{chunk-GOL6A746.js.map → chunk-FALP6GXG.js.map} +0 -0
  764. /package/dist/{chunk-2UGYE6EJ.js.map → chunk-FIWVGOSE.js.map} +0 -0
  765. /package/dist/{chunk-QUVGLTCF.js.map → chunk-FRD6LQF7.js.map} +0 -0
  766. /package/dist/{chunk-VZBRG6HQ.js.map → chunk-FRPYXYYQ.js.map} +0 -0
  767. /package/dist/{chunk-EIO6DMIQ.js.map → chunk-FT5HOBHJ.js.map} +0 -0
  768. /package/dist/{chunk-KTRDLHCP.js.map → chunk-FV2GLMSI.js.map} +0 -0
  769. /package/dist/{chunk-5OWPH4IH.js.map → chunk-G6SP5IQT.js.map} +0 -0
  770. /package/dist/{chunk-CZOJUH3C.js.map → chunk-GZL6YFZJ.js.map} +0 -0
  771. /package/dist/{chunk-BBA5MAFS.js.map → chunk-H353EVLK.js.map} +0 -0
  772. /package/dist/{chunk-RCVA2RWU.js.map → chunk-HKR5R5YR.js.map} +0 -0
  773. /package/dist/{chunk-G5GFCBJT.js.map → chunk-HULTLO4D.js.map} +0 -0
  774. /package/dist/{chunk-4ICGMPPE.js.map → chunk-IIN4CG67.js.map} +0 -0
  775. /package/dist/{chunk-MIDVLNN3.js.map → chunk-ISWFHYEZ.js.map} +0 -0
  776. /package/dist/{chunk-O4BDFBVK.js.map → chunk-JBUTLI3V.js.map} +0 -0
  777. /package/dist/{chunk-LN4KNFOQ.js.map → chunk-JCNZJKLK.js.map} +0 -0
  778. /package/dist/{chunk-2CTAWHGB.js.map → chunk-JEVDRC64.js.map} +0 -0
  779. /package/dist/{chunk-X7JGAQ5N.js.map → chunk-KBZAB2H2.js.map} +0 -0
  780. /package/dist/{chunk-NB4UU4DH.js.map → chunk-KDKJLITX.js.map} +0 -0
  781. /package/dist/{chunk-ZLQ6PAI6.js.map → chunk-KNFJN6CM.js.map} +0 -0
  782. /package/dist/{chunk-HTIZFNBC.js.map → chunk-KSYGLBZ4.js.map} +0 -0
  783. /package/dist/{chunk-ZUG4EY4T.js.map → chunk-KUOXZIH4.js.map} +0 -0
  784. /package/dist/{chunk-AQSZLUDV.js.map → chunk-KZ54E2FU.js.map} +0 -0
  785. /package/dist/{chunk-RSCSTOUN.js.map → chunk-L7FMBWWK.js.map} +0 -0
  786. /package/dist/{chunk-63TCOVAK.js.map → chunk-LMONIWPI.js.map} +0 -0
  787. /package/dist/{chunk-7Q4KAFCS.js.map → chunk-LTY7WOAT.js.map} +0 -0
  788. /package/dist/{chunk-2GP3LH7J.js.map → chunk-LYDN734A.js.map} +0 -0
  789. /package/dist/{chunk-OT2DMA2D.js.map → chunk-LYMYO6TY.js.map} +0 -0
  790. /package/dist/{chunk-KGFH5VTH.js.map → chunk-MRZUZDRA.js.map} +0 -0
  791. /package/dist/{chunk-KA3KYNOP.js.map → chunk-NGBI4FST.js.map} +0 -0
  792. /package/dist/{chunk-3TJBSAIO.js.map → chunk-OKM4ACTA.js.map} +0 -0
  793. /package/dist/{chunk-5JBOGNSG.js.map → chunk-OUDHHMZU.js.map} +0 -0
  794. /package/dist/{chunk-VQD6GZMU.js.map → chunk-OVXHMJJJ.js.map} +0 -0
  795. /package/dist/{chunk-TTSKLWP7.js.map → chunk-OYXRYWGU.js.map} +0 -0
  796. /package/dist/{chunk-2ESAB2PP.js.map → chunk-P5FHYGJK.js.map} +0 -0
  797. /package/dist/{chunk-MUVXIOXM.js.map → chunk-P7QDNXSH.js.map} +0 -0
  798. /package/dist/{chunk-TQLHKDNS.js.map → chunk-PI2MCZXG.js.map} +0 -0
  799. /package/dist/{chunk-SQUMXZXI.js.map → chunk-Q7GK35TB.js.map} +0 -0
  800. /package/dist/{chunk-FUTHP5J4.js.map → chunk-QXRM5NMW.js.map} +0 -0
  801. /package/dist/{chunk-7ONTCJWB.js.map → chunk-SH7SL4I5.js.map} +0 -0
  802. /package/dist/{chunk-7ZCYC2DQ.js.map → chunk-SJHWZZ4M.js.map} +0 -0
  803. /package/dist/{chunk-ZCY72DDM.js.map → chunk-TDBS3UFZ.js.map} +0 -0
  804. /package/dist/{chunk-TBXJ2CUA.js.map → chunk-U2OB3S3M.js.map} +0 -0
  805. /package/dist/{chunk-N2RAPA7D.js.map → chunk-UA2ADBTO.js.map} +0 -0
  806. /package/dist/{chunk-DVSTBGZT.js.map → chunk-USGUVW5Q.js.map} +0 -0
  807. /package/dist/{chunk-OVO6NYUR.js.map → chunk-UWVDD4C2.js.map} +0 -0
  808. /package/dist/{chunk-JEXS72M5.js.map → chunk-W2SBSEKT.js.map} +0 -0
  809. /package/dist/{chunk-HWP3U2VY.js.map → chunk-WUCIHN7D.js.map} +0 -0
  810. /package/dist/{chunk-WQHL6SR3.js.map → chunk-XAHZYGKW.js.map} +0 -0
  811. /package/dist/{chunk-K5RCZIZN.js.map → chunk-YWB2QHV2.js.map} +0 -0
  812. /package/dist/{chunk-OXRZSZKA.js.map → chunk-Z6M77JDG.js.map} +0 -0
  813. /package/dist/{chunk-L6TGKNRA.js.map → chunk-Z7RFFJXU.js.map} +0 -0
  814. /package/dist/{chunk-HNU4RYI5.js.map → chunk-ZG7EBTHK.js.map} +0 -0
  815. /package/dist/{chunk-46KQE4DV.js.map → chunk-ZJLJHQWM.js.map} +0 -0
  816. /package/dist/{chunk-EM56Y4X6.js.map → chunk-ZKU6RST3.js.map} +0 -0
  817. /package/dist/{chunk-NGG4737W.js.map → chunk-ZLWEUYPT.js.map} +0 -0
  818. /package/dist/{cohort-2DQOQ5AO.js.map → cohort-X327AG3O.js.map} +0 -0
  819. /package/dist/{cohortSunburst-W6XC7VD6.js.map → cohortSunburst-GNWIVDNA.js.map} +0 -0
  820. /package/dist/{condition-3A7I5UQA.js.map → condition-3M4L2HIM.js.map} +0 -0
  821. /package/dist/{controls-G5WYBX4P.js.map → controls-OKNHZJOU.js.map} +0 -0
  822. /package/dist/{controls.config-TAFGM2S2.js.map → controls.config-FUKM5LEP.js.map} +0 -0
  823. /package/dist/{correlation-K4EOOQJU.js.map → correlation-PC4MXCFM.js.map} +0 -0
  824. /package/dist/{customdata.inputui-E7RRN3KY.js.map → customdata.inputui-HCRTX56R.js.map} +0 -0
  825. /package/dist/{dataDownload-OXZGAE5R.js.map → dataDownload-HJO7UW7S.js.map} +0 -0
  826. /package/dist/{databrowser.ui-IPUF6LUC.js.map → databrowser.ui-EY3H6B4S.js.map} +0 -0
  827. /package/dist/{dictionary-MUNAUI43.js.map → dictionary-L6CTMFY7.js.map} +0 -0
  828. /package/dist/{dnaMethylation-SOV4HBAX.js.map → dnaMethylation-FEB5GGXK.js.map} +0 -0
  829. /package/dist/{dnaMethylation.integration.spec-T4KKTMRL.js.map → dnaMethylation.integration.spec-4DC6TJNZ.js.map} +0 -0
  830. /package/dist/{dofetch-2CR2TVWC.js.map → dofetch-YFGOKCKV.js.map} +0 -0
  831. /package/dist/{e2pca-EIOJCV4O.js.map → e2pca-QSAVTCPL.js.map} +0 -0
  832. /package/dist/{ep-5QX3CW6D.js.map → ep-LAFLKVSW.js.map} +0 -0
  833. /package/dist/{expclust.gdc.spec-TNHPZLYQ.js.map → expclust.gdc.spec-OM4J6WBL.js.map} +0 -0
  834. /package/dist/{facet-I3OC4DK2.js.map → facet-WHTV2VIX.js.map} +0 -0
  835. /package/dist/{gb-WPIUHR3O.js.map → gb-DLXWWBB6.js.map} +0 -0
  836. /package/dist/{geneExpClustering-EYGZENSP.js.map → geneExpClustering-KB2MB2VM.js.map} +0 -0
  837. /package/dist/{geneExpression-54L3DH32.js.map → geneExpression-3D7PDZ2I.js.map} +0 -0
  838. /package/dist/{geneExpression-6S6H2EVY.js.map → geneExpression-3RSRGYGQ.js.map} +0 -0
  839. /package/dist/{geneORA-7M64LXZC.js.map → geneORA-J4KVSZT3.js.map} +0 -0
  840. /package/dist/{geneRanking-676CAA3B.js.map → geneRanking-HKLJ7CN6.js.map} +0 -0
  841. /package/dist/{geneVariant-PFVPL22U.js.map → geneVariant-3BRGRFPT.js.map} +0 -0
  842. /package/dist/{geneVariant-4UPJE6MJ.js.map → geneVariant-VI5DGDAB.js.map} +0 -0
  843. /package/dist/{geneVariant.integration.spec-EAJ4OSFQ.js.map → geneVariant.integration.spec-3IBX4NNE.js.map} +0 -0
  844. /package/dist/{genefusion.ui-LP4EJUTO.js.map → genefusion.ui-OESQL7TW.js.map} +0 -0
  845. /package/dist/{geneset-ANDOMTPO.js.map → geneset-3BMV3KP4.js.map} +0 -0
  846. /package/dist/{genomeBrowser.spec-NUXOOL5N.js.map → genomeBrowser.spec-I3WKAITC.js.map} +0 -0
  847. /package/dist/{grin2-K4LRVCES.js.map → grin2-4BBCH3H5.js.map} +0 -0
  848. /package/dist/{grin2-YFCWJZFR.js.map → grin2-5L2U32LY.js.map} +0 -0
  849. /package/dist/{hierCluster-POD3DRO4.js.map → hierCluster-KM56NTN6.js.map} +0 -0
  850. /package/dist/{hierCluster-QA7HXKRD.js.map → hierCluster-XCJF5IQ6.js.map} +0 -0
  851. /package/dist/{hierCluster.config-HQ3SVKCE.js.map → hierCluster.config-E2EYOXX6.js.map} +0 -0
  852. /package/dist/{hierCluster.integration.spec-MOYDWJL3.js.map → hierCluster.integration.spec-IIEJ2YEI.js.map} +0 -0
  853. /package/dist/{hierCluster.interactivity-OZTNHXZQ.js.map → hierCluster.interactivity-AJFEJTGX.js.map} +0 -0
  854. /package/dist/{hierCluster.renderers-46E37NL4.js.map → hierCluster.renderers-XKI344FM.js.map} +0 -0
  855. /package/dist/{imagePlot-HNAYBWY3.js.map → imagePlot-3B3BXI6I.js.map} +0 -0
  856. /package/dist/{importPlot-XTW46VF4.js.map → importPlot-JDVH7Q2Z.js.map} +0 -0
  857. /package/dist/{isoformExpression-2TMTILKG.js.map → isoformExpression-UFHY5LB2.js.map} +0 -0
  858. /package/dist/{isoformExpression.unit.spec-SIJWP7TH.js.map → isoformExpression.unit.spec-U6GDCNQR.js.map} +0 -0
  859. /package/dist/{junction-AICKHNXX.js.map → junction-W2STW5WW.js.map} +0 -0
  860. /package/dist/{junction.customTerm-5STKYZ4B.js.map → junction.customTerm-LQYKCZX4.js.map} +0 -0
  861. /package/dist/{junction.unit.spec-EXFN4MLW.js.map → junction.unit.spec-R4DIBFLB.js.map} +0 -0
  862. /package/dist/{launch.adhoc-PB6PGR7Q.js.map → launch.adhoc-KN7HFHJH.js.map} +0 -0
  863. /package/dist/{lollipop-5UXUAFYY.js.map → lollipop-EKIGAAK6.js.map} +0 -0
  864. /package/dist/{maf-L6YD25JK.js.map → maf-MK2MM7J4.js.map} +0 -0
  865. /package/dist/{maftimeline-63YZDGJ3.js.map → maftimeline-7RTMXWFA.js.map} +0 -0
  866. /package/dist/{matrix-OPEBHZCW.js.map → matrix-UM2EZODJ.js.map} +0 -0
  867. /package/dist/{matrix-TLMWPG7C.js.map → matrix-YBL4FZYJ.js.map} +0 -0
  868. /package/dist/{matrix.cells-IELMNYC6.js.map → matrix.cells-45ZFADK5.js.map} +0 -0
  869. /package/dist/{matrix.config-J7SVFXLM.js.map → matrix.config-QTBIRXKU.js.map} +0 -0
  870. /package/dist/{matrix.data-DJTJCPO4.js.map → matrix.data-WAMOLSKW.js.map} +0 -0
  871. /package/dist/{matrix.groups-2REICNZK.js.map → matrix.groups-RXFXZABD.js.map} +0 -0
  872. /package/dist/{matrix.integration.spec-ZXU2OEFU.js.map → matrix.integration.spec-JZDZRVOK.js.map} +0 -0
  873. /package/dist/{matrix.interactivity-SX3OR6OI.js.map → matrix.interactivity-P4VYGTB2.js.map} +0 -0
  874. /package/dist/{matrix.layout-ZJ6X5RON.js.map → matrix.layout-WWPRXXHX.js.map} +0 -0
  875. /package/dist/{matrix.legend-ZOP72TIO.js.map → matrix.legend-4MCMVVKO.js.map} +0 -0
  876. /package/dist/{matrix.renderers-YUSROXKN.js.map → matrix.renderers-JQTUODDS.js.map} +0 -0
  877. /package/dist/{matrix.serieses-UMAZNCMR.js.map → matrix.serieses-3IDRKSGO.js.map} +0 -0
  878. /package/dist/{matrix.sort-2JNIZHNL.js.map → matrix.sort-EAWOB56R.js.map} +0 -0
  879. /package/dist/{matrix.sort.unit.spec-SNB643Y6.js.map → matrix.sort.unit.spec-FOWLULHA.js.map} +0 -0
  880. /package/dist/{matrix.sorterUi-JXEIY6UL.js.map → matrix.sorterUi-Z4JDY7VW.js.map} +0 -0
  881. /package/dist/{matrix.sorterUi.unit.spec-LDAT4R3H.js.map → matrix.sorterUi.unit.spec-U5CQDTMX.js.map} +0 -0
  882. /package/dist/{matrix.unit.spec-QBQIMDLD.js.map → matrix.unit.spec-VTLD4EOZ.js.map} +0 -0
  883. /package/dist/{mavb-EQUF3VGG.js.map → mavb-JIIXJHBK.js.map} +0 -0
  884. /package/dist/{mds.samplescatterplot-73E45ZT7.js.map → mds.samplescatterplot-PTWA2V6E.js.map} +0 -0
  885. /package/dist/{mds.survivalplot-DL53IRVD.js.map → mds.survivalplot-XVZ66GP5.js.map} +0 -0
  886. /package/dist/{multivalue-PQN75ENP.js.map → multivalue-2H7QX7MG.js.map} +0 -0
  887. /package/dist/{numericDictTermCluster-FGMIOTBO.js.map → numericDictTermCluster-EHCDRT6J.js.map} +0 -0
  888. /package/dist/{oncomatrix-CCHWOA3N.js.map → oncomatrix-RZLZUC32.js.map} +0 -0
  889. /package/dist/{oncomatrix.spec-GQT3UTCR.js.map → oncomatrix.spec-Z5UQGTW2.js.map} +0 -0
  890. /package/dist/{plot.2dvaf-L6ZI5ROR.js.map → plot.2dvaf-IRBZBJ6B.js.map} +0 -0
  891. /package/dist/{plot.app-A73VXJCP.js.map → plot.app-I23IAZ3Z.js.map} +0 -0
  892. /package/dist/{plot.barplot-HSCHPOO7.js.map → plot.barplot-PYLRAZB7.js.map} +0 -0
  893. /package/dist/{plot.boxplot-AXBVNTNH.js.map → plot.boxplot-VBWU7DUG.js.map} +0 -0
  894. /package/dist/{plot.brainImaging-PEMURKM3.js.map → plot.brainImaging-HDJMEMTK.js.map} +0 -0
  895. /package/dist/{plot.ssgq-FGMQXKZU.js.map → plot.ssgq-S3BKXJMW.js.map} +0 -0
  896. /package/dist/{plot.vaf2cov-IBM7NQEB.js.map → plot.vaf2cov-VD7DU2XR.js.map} +0 -0
  897. /package/dist/{polar2-N7KWY36S.js.map → polar2-PYLEVG7E.js.map} +0 -0
  898. /package/dist/{profileForms-Q4NN7653.js.map → profileForms-CI2YYD3Y.js.map} +0 -0
  899. /package/dist/{profilePlot-SQ77M6LI.js.map → profilePlot-UCC4ZVHQ.js.map} +0 -0
  900. /package/dist/{proteinView-KSIZRDNP.js.map → proteinView-FBY6TK3S.js.map} +0 -0
  901. /package/dist/{pseudbulk.unit.spec-XELPZVXM.js.map → pseudbulk.unit.spec-VPZWNTIA.js.map} +0 -0
  902. /package/dist/{pseudobulk-H3USXM5U.js.map → pseudobulk-RUXGZ7OY.js.map} +0 -0
  903. /package/dist/{qualitative-ABXENRAF.js.map → qualitative-3AVR4GRX.js.map} +0 -0
  904. /package/dist/{qualitative-OSEJTJ4D.js.map → qualitative-5QNBKDOZ.js.map} +0 -0
  905. /package/dist/{radar2-VTDQGHWN.js.map → radar2-AOYMS54Y.js.map} +0 -0
  906. /package/dist/{radarFacility2-BWGEC5A2.js.map → radarFacility2-PP2MAXIP.js.map} +0 -0
  907. /package/dist/{rememberedGvQ.unit.spec-TWUDSEDP.js.map → rememberedGvQ.unit.spec-Q3UZJPE2.js.map} +0 -0
  908. /package/dist/{render-C3XJQ2QY.js.map → render-ASLVKYEX.js.map} +0 -0
  909. /package/dist/{report-7ZZ44X4R.js.map → report-UVYKDMQC.js.map} +0 -0
  910. /package/dist/{sampleView-CUCNI65Q.js.map → sampleView-6UHR7FSR.js.map} +0 -0
  911. /package/dist/{samplelst-S7AJQ36J.js.map → samplelst-ABC2CCNN.js.map} +0 -0
  912. /package/dist/{samplematrix-U7WM6GNB.js.map → samplematrix-36UCHZLC.js.map} +0 -0
  913. /package/dist/{sc-FMJHN2SW.js.map → sc-XLSAM725.js.map} +0 -0
  914. /package/dist/{scatter-KMAZ3ZNR.js.map → scatter-ADOBAOW2.js.map} +0 -0
  915. /package/dist/{scatter-4UMCJNEH.js.map → scatter-ZNVLI627.js.map} +0 -0
  916. /package/dist/{selectGenomeWithTklst-5SRM45BI.js.map → selectGenomeWithTklst-DPDBDYTR.js.map} +0 -0
  917. /package/dist/{singleCellCellType-GIIICJK5.js.map → singleCellCellType-STVPYZD4.js.map} +0 -0
  918. /package/dist/{singleCellCellType.unit.spec-MVA7BMGL.js.map → singleCellCellType.unit.spec-ZLY37AXL.js.map} +0 -0
  919. /package/dist/{singleCellGeneExpression-2QFQHJJH.js.map → singleCellGeneExpression-PCGLU35S.js.map} +0 -0
  920. /package/dist/{singleCellGeneExpression.unit.spec-SAIETYHV.js.map → singleCellGeneExpression.unit.spec-PSLKK362.js.map} +0 -0
  921. /package/dist/{singleCellNumericValue-45H5EPIB.js.map → singleCellNumericValue-SR3SJEOB.js.map} +0 -0
  922. /package/dist/{singleCellNumericValue.unit.spec-FNKEJ2WC.js.map → singleCellNumericValue.unit.spec-PXVXJ4HJ.js.map} +0 -0
  923. /package/dist/{singleCellPlot-SP7OEGYQ.js.map → singleCellPlot-JXB7M6OH.js.map} +0 -0
  924. /package/dist/{singlecell-AVZQX4AH.js.map → singlecell-EDSX56QO.js.map} +0 -0
  925. /package/dist/{singlecell-JQKUHGIH.js.map → singlecell-PH55NFRX.js.map} +0 -0
  926. /package/dist/{snp-4SA7VABN.js.map → snp-3VEYBTAQ.js.map} +0 -0
  927. /package/dist/{snp.unit.spec-YIYGR6GW.js.map → snp.unit.spec-V7OB44US.js.map} +0 -0
  928. /package/dist/{snplocus-TDGQ57ZJ.js.map → snplocus-HX67RBT5.js.map} +0 -0
  929. /package/dist/{snplst-SWBGRYPA.js.map → snplst-H5YXCY33.js.map} +0 -0
  930. /package/dist/{spliceevent.a53ss.diagram-YODOBS6U.js.map → spliceevent.a53ss.diagram-DBDEEHSK.js.map} +0 -0
  931. /package/dist/{spliceevent.exonskip.diagram-PMZIQ5UG.js.map → spliceevent.exonskip.diagram-EYEL6BY6.js.map} +0 -0
  932. /package/dist/{spliceevent.noeventdiagram-A4T2PNUX.js.map → spliceevent.noeventdiagram-64OEXK7U.js.map} +0 -0
  933. /package/dist/{ssGSEA-U7D6HOIV.js.map → ssGSEA-3YWQH6KM.js.map} +0 -0
  934. /package/dist/{ssGSEA.unit.spec-SMNAM5DJ.js.map → ssGSEA.unit.spec-23V2IXP5.js.map} +0 -0
  935. /package/dist/{stattable-DBYMPJU6.js.map → stattable-GPSBCNYC.js.map} +0 -0
  936. /package/dist/{studyCatalog-7RABX4W5.js.map → studyCatalog-W5PATRNY.js.map} +0 -0
  937. /package/dist/{summarizeCnvGeneexp-YVRW7LWY.js.map → summarizeCnvGeneexp-YGI23QH5.js.map} +0 -0
  938. /package/dist/{summarizeGeneexpSurvival-ZB7IWGPS.js.map → summarizeGeneexpSurvival-KQ6OLWYR.js.map} +0 -0
  939. /package/dist/{summarizeMutationCnv-CUSYURDK.js.map → summarizeMutationCnv-XDHBNEPU.js.map} +0 -0
  940. /package/dist/{summarizeMutationDiagnosis-NSPCT5WI.js.map → summarizeMutationDiagnosis-VKIJRJ2Q.js.map} +0 -0
  941. /package/dist/{summarizeMutationSurvival-2PZZCC4G.js.map → summarizeMutationSurvival-57YKJGLE.js.map} +0 -0
  942. /package/dist/{summary-CYDZSICI.js.map → summary-4WQOVIUF.js.map} +0 -0
  943. /package/dist/{summary.integration.spec-2TLKJS3X.js.map → summary.integration.spec-FRNWBU7F.js.map} +0 -0
  944. /package/dist/{summaryInput-BRQ5JRGV.js.map → summaryInput-X7DS2YA7.js.map} +0 -0
  945. /package/dist/{sunburst-435LKL2S.js.map → sunburst-3OEAQA3O.js.map} +0 -0
  946. /package/dist/{sunburst-D5WAGHX6.js.map → sunburst-MSGTXYMM.js.map} +0 -0
  947. /package/dist/{survival-M63B6DY5.js.map → survival-5KC5CNZU.js.map} +0 -0
  948. /package/dist/{survival-MHESSYWF.js.map → survival-QXDS6N46.js.map} +0 -0
  949. /package/dist/{survival.integration.spec-WMS3FTNR.js.map → survival.integration.spec-PKENHLTZ.js.map} +0 -0
  950. /package/dist/{svgraph-LYFGVTHI.js.map → svgraph-VJLB7BBN.js.map} +0 -0
  951. /package/dist/{svmr-UR67QZIP.js.map → svmr-6BDEZAS6.js.map} +0 -0
  952. /package/dist/{swimmer-RP4SUEZS.js.map → swimmer-R3DN7N36.js.map} +0 -0
  953. /package/dist/{table-V4OOMF3B.js.map → table-YF5VORU6.js.map} +0 -0
  954. /package/dist/{termCollection-VHGVBSWW.js.map → termCollection-3KGLZFDW.js.map} +0 -0
  955. /package/dist/{termCollection-WSNM3YFK.js.map → termCollection-KSHVOPS5.js.map} +0 -0
  956. /package/dist/{termCollection.unit.spec-NCZUZL6P.js.map → termCollection.unit.spec-HTBDG5PL.js.map} +0 -0
  957. /package/dist/{termCollectionFractionSelection-XM3FJWBQ.js.map → termCollectionFractionSelection-MK4NKWUX.js.map} +0 -0
  958. /package/dist/{termCollectionFractionSelection.unit.spec-VO4SAV72.js.map → termCollectionFractionSelection.unit.spec-AMF32FDN.js.map} +0 -0
  959. /package/dist/{tk-KIELQHVI.js.map → tk-Z54DOECH.js.map} +0 -0
  960. /package/dist/{tp.ui-HAKSWLFB.js.map → tp.ui-M4TZVT53.js.map} +0 -0
  961. /package/dist/{tvs.categorical-G4DM4JY5.js.map → tvs.categorical-HY3BWCZR.js.map} +0 -0
  962. /package/dist/{tvs.condition-E5NUQONB.js.map → tvs.condition-Y36TRIX4.js.map} +0 -0
  963. /package/dist/{tvs.dt-T4BK24VZ.js.map → tvs.dt-XKVJZP7Y.js.map} +0 -0
  964. /package/dist/{tvs.dtcnv.categorical-V57TZFRA.js.map → tvs.dtcnv.categorical-OMRZR4Y7.js.map} +0 -0
  965. /package/dist/{tvs.dtcnv.continuous-D4YIB4PN.js.map → tvs.dtcnv.continuous-AGYOBI5K.js.map} +0 -0
  966. /package/dist/{tvs.dtfusion-6DUFLUNH.js.map → tvs.dtfusion-2JX5Y2IH.js.map} +0 -0
  967. /package/dist/{tvs.dtitd-GOEPAQGR.js.map → tvs.dtitd-SDSLBBWC.js.map} +0 -0
  968. /package/dist/{tvs.dtsnvindel-ASTXGC4O.js.map → tvs.dtsnvindel-LI7K464K.js.map} +0 -0
  969. /package/dist/{tvs.dtsv-7TGDEWXK.js.map → tvs.dtsv-VRCLX7QY.js.map} +0 -0
  970. /package/dist/{tvs.multivalue-SEIGL2W6.js.map → tvs.multivalue-4OTY6J2S.js.map} +0 -0
  971. /package/dist/{tvs.numeric-MLLX5L7Z.js.map → tvs.numeric-CDATYOR2.js.map} +0 -0
  972. /package/dist/{tvs.samplelst-HAV7C2EA.js.map → tvs.samplelst-76JOJG2M.js.map} +0 -0
  973. /package/dist/{tvs.survival-3B522MT2.js.map → tvs.survival-WTFJOKIZ.js.map} +0 -0
  974. /package/dist/{tvs.termCollection-R5NG4VXP.js.map → tvs.termCollection-QQXAS7PE.js.map} +0 -0
  975. /package/dist/{vocabulary-LBNHNSEN.js.map → vocabulary-6ACAEFTL.js.map} +0 -0
  976. /package/dist/{wsi.direct-ZEZO4NLR.js.map → wsi.direct-OS32TQRM.js.map} +0 -0
@@ -0,0 +1,1290 @@
1
+ import {
2
+ PlotBase,
3
+ TableBase,
4
+ digestMessage,
5
+ filterRxCompInit,
6
+ formatHeaderText,
7
+ getCombinedTermFilter,
8
+ getGEunit,
9
+ getNormalRoot,
10
+ make_radios,
11
+ newSandboxDiv
12
+ } from "./chunk-DPWSIN62.js";
13
+ import "./chunk-HJ6L54YS.js";
14
+ import {
15
+ importPlot
16
+ } from "./chunk-KZ54E2FU.js";
17
+ import {
18
+ Menu
19
+ } from "./chunk-CNFTQSNE.js";
20
+ import "./chunk-DOC3HBOV.js";
21
+ import "./chunk-TVJOSRCH.js";
22
+ import "./chunk-3CIL7KH7.js";
23
+ import "./chunk-T4XPCSLP.js";
24
+ import {
25
+ dofetch3
26
+ } from "./chunk-6V7ITU5F.js";
27
+ import "./chunk-W5J3LTYS.js";
28
+ import "./chunk-KUOXZIH4.js";
29
+ import "./chunk-T2W4JHWJ.js";
30
+ import {
31
+ SINGLECELL_CELLTYPE,
32
+ SINGLECELL_GENE_EXPRESSION,
33
+ TermTypeGroups
34
+ } from "./chunk-2N345NXD.js";
35
+ import {
36
+ copyMerge,
37
+ getCompInit,
38
+ multiInit
39
+ } from "./chunk-HBNB5TRH.js";
40
+ import "./chunk-PF4DSFDR.js";
41
+ import "./chunk-4OLM3KSB.js";
42
+ import "./chunk-PWYMHUXY.js";
43
+ import "./chunk-TLT4YIG3.js";
44
+ import "./chunk-5R63Q5KH.js";
45
+ import {
46
+ select_default
47
+ } from "./chunk-I6Y4O3RR.js";
48
+ import "./chunk-Q5RDQNIT.js";
49
+ import "./chunk-HS5PO5ZQ.js";
50
+
51
+ // plots/sc/model/SCModel.ts
52
+ var SCModel = class {
53
+ constructor(sc) {
54
+ /** whether a sample has a spatial image (with the consolidated h5ad the
55
+ spatial subplot needs), keyed by sID. Successful probes are cached;
56
+ failures return false for the current render and may be retried. */
57
+ this.sampleHasSpatial = {};
58
+ this.sc = sc;
59
+ this.app = sc.app;
60
+ this.id = sc.id;
61
+ this.state = sc.app.getState();
62
+ }
63
+ /********** All Single Cell SAMPLES for rendering the sample table ******** */
64
+ async getAllSampleData(state) {
65
+ const body = {
66
+ genome: state.vocab.genome,
67
+ dslabel: state.vocab.dslabel,
68
+ filter: getNormalRoot(state.termfilter.filter),
69
+ filter0: state.termfilter.filter0
70
+ };
71
+ return await dofetch3("termdb/singlecellSamples", { body, signal: this.sc.api?.getAbortSignal() });
72
+ }
73
+ //Fetches optional name for ds defined columns
74
+ async getColumnLabels(dsScSamples) {
75
+ if (!dsScSamples || !dsScSamples.sampleColumns) return;
76
+ const colsCopy = structuredClone(dsScSamples.sampleColumns);
77
+ for (const col of colsCopy) {
78
+ let label = col.termid;
79
+ try {
80
+ label = (await this.app.vocabApi.getterm(col.termid)).name;
81
+ } catch (e) {
82
+ if (e.message) {
83
+ }
84
+ }
85
+ col.label = label;
86
+ }
87
+ return colsCopy;
88
+ }
89
+ /********** Single Cell DATA for rendering plots ********
90
+ * This is for the plot buttons. Returns an array plots with found files or
91
+ * available data. */
92
+ async getSampleData() {
93
+ const body = this.getDataRequestOpts();
94
+ if (!body) return;
95
+ return await dofetch3("termdb/singlecellData", { body, signal: this.sc.api?.getAbortSignal() });
96
+ }
97
+ /** May provide active plots to the request and return plot data when
98
+ * checkPlotAvailability is false. When checkPlotAvailability is true,
99
+ * only returns which plots are available but not the actual data. */
100
+ getDataRequestOpts(_plots = [], checkPlotAvailability = true) {
101
+ const state = this.app.getState();
102
+ const singleCellTermdbConfig = state.termdbConfig?.queries?.singleCell;
103
+ if (!singleCellTermdbConfig?.data) throw new Error("No singleCell.data defined in termdbConfig.queries");
104
+ const config = state.plots.find((p) => p.id === this.id);
105
+ if (!config.settings.sc.item) return;
106
+ const plots = _plots?.length ? _plots : singleCellTermdbConfig.data.plots.map((p) => p.name);
107
+ return {
108
+ genome: this.state.vocab.genome,
109
+ dslabel: this.state.vocab.dslabel,
110
+ // if true, only return available plot names, but not actual plot data
111
+ checkPlotAvailability,
112
+ plots,
113
+ sample: {
114
+ eID: config.settings.sc.item.eID,
115
+ sID: config.settings.sc.item.sID
116
+ }
117
+ };
118
+ }
119
+ async hasSpatialImage(sID) {
120
+ if (!(sID in this.sampleHasSpatial)) {
121
+ if (!this.state.termdbConfig?.queries?.w2) return false;
122
+ let r;
123
+ try {
124
+ r = await dofetch3("termdb/wsiBySample", {
125
+ // imageType: only the spatial root is enumerated for the probe
126
+ body: {
127
+ genome: this.state.vocab.genome,
128
+ dslabel: this.state.vocab.dslabel,
129
+ sample_id: sID,
130
+ imageType: "spatial"
131
+ },
132
+ signal: this.sc.api?.getAbortSignal()
133
+ });
134
+ } catch (e) {
135
+ if (this.app.vocabApi?.isAbortError?.(e)) throw e;
136
+ return false;
137
+ }
138
+ if (r?.error) return false;
139
+ this.sampleHasSpatial[sID] = !!(r?.images || []).some((i) => i.type == "spatial" && i.spatialData);
140
+ }
141
+ return this.sampleHasSpatial[sID];
142
+ }
143
+ /** Essentially for the GDC. Maybe applied to other ds in the future. */
144
+ async getCategories(_plots) {
145
+ const body = this.getDataRequestOpts(_plots, false);
146
+ if (!body) return;
147
+ let res;
148
+ try {
149
+ res = await dofetch3("termdb/singlecellData", { body, signal: this.sc.api?.getAbortSignal() });
150
+ } catch (e) {
151
+ if (e instanceof Error) console.error(`${e.message || e}`);
152
+ }
153
+ return this.formatCategories(res);
154
+ }
155
+ formatCategories(res) {
156
+ const plot = structuredClone(res.plots[0]);
157
+ plot.cells = [...plot.noExpCells, ...plot.expCells];
158
+ const clusters = new Set(plot.cells.map((c) => c.category));
159
+ const sortedClusters = Array.from(clusters).sort((a, b) => {
160
+ const num1 = parseInt(a.split(" ")[1]);
161
+ const num2 = parseInt(b.split(" ")[1]);
162
+ return num1 - num2;
163
+ });
164
+ return sortedClusters;
165
+ }
166
+ };
167
+
168
+ // plots/sc/viewModel/SCViewModel.ts
169
+ var SCViewModel = class {
170
+ constructor(app, sampleColumns) {
171
+ this.app = app;
172
+ this.state = this.app.getState();
173
+ this.sampleColumns = sampleColumns || [];
174
+ this.metaResultIds = /* @__PURE__ */ new Set();
175
+ }
176
+ processData(config, _items) {
177
+ const items = _items.sort((a, b) => b.isMetaResult === a.isMetaResult ? 0 : b.isMetaResult ? 1 : -1);
178
+ const [rows, columns, sampleColIdx] = this.getTabelData(config, items, this.sampleColumns);
179
+ const selectedRows = [];
180
+ const sID = config.settings.sc.item?.sID;
181
+ const i = sID ? items.findIndex((item) => item.sample === sID || item.experiments?.some((e) => e.sampleName === sID)) : -1;
182
+ if (i != -1) selectedRows.push(i);
183
+ this.tableData = {
184
+ rows,
185
+ columns,
186
+ selectedRows,
187
+ sampleColIdx
188
+ };
189
+ }
190
+ /** Shape the selected sample's plot data for the plot buttons view:
191
+ * the server's plots plus flags the view only reads (hasSpatial shows
192
+ * the Spatial button). */
193
+ formatPlotsData(sampleData, hasSpatial) {
194
+ return { ...sampleData, hasSpatial };
195
+ }
196
+ getTabelData(plotConfig, items, sampleColumns) {
197
+ const rows = [];
198
+ const hasExperiments = items.some((i) => i.experiments);
199
+ let sampleColIdx = -1;
200
+ let firstColLabel = plotConfig.settings.sc.columns.sample;
201
+ if (items[0]?.isMetaResult) firstColLabel = "";
202
+ const columns = [{ label: firstColLabel, sortable: true }];
203
+ if (hasExperiments) {
204
+ columns.push({ label: "Sample", sortable: true });
205
+ sampleColIdx = 1;
206
+ } else sampleColIdx = 0;
207
+ columns.push({ label: "Shown plots" });
208
+ for (const col of sampleColumns || []) {
209
+ columns.push({
210
+ label: col.label,
211
+ width: "14vw",
212
+ sortable: true
213
+ });
214
+ }
215
+ if (hasExperiments) columns.push({ label: "Experiment" });
216
+ for (const item of items) {
217
+ if (item.isMetaResult) this.metaResultIds.add(item.sample);
218
+ if (hasExperiments)
219
+ for (const exp of item.experiments) {
220
+ const row = [{ value: item.sample, __experimentID: exp.experimentID }];
221
+ row.push({ value: exp.sampleName });
222
+ row.push({ value: "" });
223
+ for (const col of sampleColumns || []) {
224
+ row.push({ value: item[col.termid] });
225
+ }
226
+ const urlTemp = this.state.termdbConfig?.urlTemplates?.scrnaExperimentId;
227
+ if (urlTemp) row.push({ value: exp.experimentID, url: `${urlTemp.base}${exp.experimentID}` });
228
+ else row.push({ value: exp.experimentID });
229
+ rows.push(row);
230
+ }
231
+ else {
232
+ const row = item.isMetaResult ? [{ html: item.sample.replace(/_/g, " "), value: item.sample, elemId: "isMetaResult" }] : [{ value: item.sample }];
233
+ row.push({ value: "" });
234
+ for (const col of sampleColumns || []) {
235
+ const value = item[col.termid];
236
+ if (value == null && item.isMetaResult) row.push({ value: "All" });
237
+ else row.push({ value: item[col.termid] });
238
+ }
239
+ rows.push(row);
240
+ }
241
+ }
242
+ return [rows, columns, sampleColIdx];
243
+ }
244
+ };
245
+
246
+ // plots/sc/interactions/SCInteractions.ts
247
+ var SCInteractions = class {
248
+ constructor(sc) {
249
+ this.app = sc.app;
250
+ this.id = sc.id;
251
+ this.model = sc.model;
252
+ this.viewModel = sc.viewModel;
253
+ }
254
+ /** Add the plot to the state.plots array with .parentId. Adding
255
+ * .parentId prevents the plot from launching in a new sandbox outside SC.
256
+ * Pass the .parentId to both the plotConfig and the action.
257
+ * this.getState() in SC.ts will find all the subplots with the parentId==this.id
258
+ * SC.main() initializes the subplots as components in chartsDiv */
259
+ async createSubplot(config) {
260
+ const c = Object.assign({}, config, { parentId: this.id });
261
+ await this.app.dispatch({
262
+ type: "plot_create",
263
+ parentId: this.id,
264
+ config: c
265
+ });
266
+ }
267
+ /** Updates the selected item in the plot settings */
268
+ async updateItem(item) {
269
+ item.isMetaResult = this.viewModel.metaResultIds.has(item.sID);
270
+ await this.app.dispatch({
271
+ type: "plot_edit",
272
+ id: this.id,
273
+ config: { settings: { sc: { item } } }
274
+ });
275
+ }
276
+ async getDropDownOptions(plot) {
277
+ return this.model.getCategories(plot);
278
+ }
279
+ };
280
+
281
+ // plots/sc/view/SCSampleTable.ts
282
+ var SHOWN_PLOTS = "Shown plots";
283
+ var SCSampleTable = class extends TableBase {
284
+ /** holder is the div to render the table into (SCDom.tableDiv). */
285
+ constructor(holder, tableData, opts = {}) {
286
+ super({
287
+ div: holder,
288
+ // every column SC lets you sort also gets a filter box
289
+ columns: tableData.columns.map((column) => ({ ...column, filterable: column.sortable })),
290
+ rows: tableData.rows,
291
+ styles: { maxHeight: "30vh", maxWidth: "90vw", showLines: true },
292
+ // autoScroll off: scrolling the page to the table on every rebuild is the jump this class avoids
293
+ selection: { singleMode: true, selectedRows: tableData.selectedRows, autoScroll: false }
294
+ });
295
+ /** sample id -> { sampleId, row: the <tr>, cells: { sample, shownPlots } }, the cells SC writes into */
296
+ this.rowMap = /* @__PURE__ */ new Map();
297
+ this.showPlotsColumn = false;
298
+ this.tableData = tableData;
299
+ this.sampleColIdx = tableData.sampleColIdx ?? 0;
300
+ this.onRowClick = opts.onRowClick;
301
+ this.onBodyRendered = opts.onBodyRendered;
302
+ this.selection.onSelect = (idx) => this.onRowClick?.(this.sampleIdOf(this.originalRows[idx]));
303
+ this.render();
304
+ }
305
+ /** The element holding the table, for callers that need to know whether it was rebuilt. */
306
+ get parentDiv() {
307
+ return this.wrapper;
308
+ }
309
+ sampleIdOf(row, colIdx = this.sampleColIdx) {
310
+ return String(row?.[colIdx]?.value ?? "");
311
+ }
312
+ /** SC re-selects on every click, even on the selected row, because selecting also closes the table.
313
+ * The base does nothing for a row that is already selected: a click on its checked radio emits no
314
+ * change, and the row's own handler ignores clicks that land on the input. So report it here, from the
315
+ * row handler (toggleRow) and from a click on the radio itself (renderSelector). */
316
+ reselect(row) {
317
+ if (!this.selected.has(row)) return false;
318
+ this.onRowClick?.(this.sampleIdOf(row));
319
+ return true;
320
+ }
321
+ toggleRow(input) {
322
+ if (!this.reselect(this.originalRows[Number(input.attr("value"))])) super.toggleRow(input);
323
+ }
324
+ /** A click on an unselected radio is not a reselect: it is reported once, by the base's change handler. */
325
+ renderSelector(tr, row, rowIdx) {
326
+ const input = super.renderSelector(tr, row, rowIdx);
327
+ input.on("click.reselect", () => this.reselect(row));
328
+ return input;
329
+ }
330
+ /** Rebuilds the sample -> row/cell lookup after every body redraw, then lets SC re-add its buttons,
331
+ * since the redraw replaced the cells they lived in. */
332
+ renderBody() {
333
+ super.renderBody();
334
+ this.rowMap.clear();
335
+ const shownPlotsIdx = this.columns.findIndex((c) => c.label === SHOWN_PLOTS);
336
+ this.tbody.selectAll("tr").each((row, i, nodes) => {
337
+ const sampleId = this.sampleIdOf(row);
338
+ if (!sampleId) return;
339
+ this.rowMap.set(sampleId, {
340
+ sampleId,
341
+ row: select_default(nodes[i]),
342
+ cells: { sample: row[this.sampleColIdx].__td, shownPlots: row[shownPlotsIdx]?.__td }
343
+ });
344
+ });
345
+ this.onBodyRendered?.();
346
+ }
347
+ /** True when tableData has the same columns and the same set of samples, in any order. */
348
+ isSameShape(tableData) {
349
+ if (tableData.columns.length !== this.columns.length) return false;
350
+ if (this.columns.some((column, i) => tableData.columns[i]?.label !== column.label)) return false;
351
+ if (tableData.rows.length !== this.originalRows.length) return false;
352
+ const existingSampleIds = new Set(this.originalRows.map((row) => this.sampleIdOf(row)));
353
+ const colIdx = tableData.sampleColIdx ?? this.sampleColIdx;
354
+ return tableData.rows.every((row) => existingSampleIds.has(this.sampleIdOf(row, colIdx)));
355
+ }
356
+ /** Patches the table for tableData that isSameShape(): only the selected radio can differ. */
357
+ setTableData(tableData) {
358
+ this.tableData = tableData;
359
+ const colIdx = tableData.sampleColIdx ?? this.sampleColIdx;
360
+ const selectedId = this.sampleIdOf(tableData.rows[tableData.selectedRows[0]], colIdx);
361
+ const selectedIdx = this.originalRows.findIndex((row) => this.sampleIdOf(row) === selectedId);
362
+ this.setSelectedIndexes(selectedId && selectedIdx != -1 ? [selectedIdx] : []);
363
+ }
364
+ /** The "Shown plots" column only appears once two or more plots are open. Hidden with display, not
365
+ * by redrawing, so nothing moves; renderHeaderCell() and renderCell() reapply it after a redraw. */
366
+ setShownPlotsColumnVisibility(visible) {
367
+ if (visible === this.showPlotsColumn) return;
368
+ this.showPlotsColumn = visible;
369
+ const colIdx = this.columns.findIndex((c) => c.label === SHOWN_PLOTS);
370
+ if (colIdx == -1) return;
371
+ const display = visible ? null : "none";
372
+ const th = this.thead.selectAll("th.sjpp_table_header").nodes()[colIdx];
373
+ th.style.setProperty("display", display);
374
+ for (const row of this.rows) row[colIdx].__td?.style("display", display);
375
+ }
376
+ renderHeaderCell(tr, column, colIdx) {
377
+ const th = super.renderHeaderCell(tr, column, colIdx);
378
+ if (column.label === SHOWN_PLOTS && !this.showPlotsColumn) th.style("display", "none");
379
+ return th;
380
+ }
381
+ renderCell(tr, cell, colIdx) {
382
+ const td = super.renderCell(tr, cell, colIdx);
383
+ if (this.columns[colIdx].label === SHOWN_PLOTS && !this.showPlotsColumn) td.style("display", "none");
384
+ return td;
385
+ }
386
+ };
387
+
388
+ // plots/sc/view/SampleTableRenderer.ts
389
+ var SampleTableRenderer = class {
390
+ constructor(dom, interactions, tableData) {
391
+ this.activeSandboxes = /* @__PURE__ */ new Map();
392
+ /** Tracks rendered btns per sample to avoid unnecessary destroy/recreate pattern. */
393
+ this.rendered = /* @__PURE__ */ new Map();
394
+ this.table = null;
395
+ this.dom = dom;
396
+ this.interactions = interactions;
397
+ this.tableData = tableData;
398
+ this.renderSamplesTable(tableData);
399
+ }
400
+ /** Users select one item at a time to render the plot buttons
401
+ * to init() plots in the dashboard.*/
402
+ renderSamplesTable(tableData) {
403
+ this.tableData = tableData;
404
+ this.table?.remove();
405
+ this.table = new SCSampleTable(this.dom.tableDiv, tableData, {
406
+ // a sort redraws the rows, which replaces the cells the plot buttons live in
407
+ onBodyRendered: () => this.reapplyAllPlotButtons(),
408
+ onRowClick: (sampleId) => {
409
+ const data = this.tableData;
410
+ const sampleColIdx = data.sampleColIdx ?? 0;
411
+ const rowIndex = data.rows.findIndex((row) => String(row[sampleColIdx]?.value ?? "") === sampleId);
412
+ if (rowIndex === -1) return;
413
+ const item = this.buildItemFromRow(data, rowIndex);
414
+ this.interactions.updateItem(item);
415
+ this.dom.plotsBtnsDiv.style("display", "block");
416
+ this.dom.selectBtn.toggle();
417
+ }
418
+ });
419
+ this.reapplyAllPlotButtons();
420
+ }
421
+ /** Builds an item object from a table row, mapping column labels to keys.
422
+ * Converts 'sample' -> 'sID' and 'experiment' -> 'eID'.
423
+ * Extracted out from the onRowClick handler for testing. */
424
+ buildItemFromRow(tableData, index) {
425
+ const item = {};
426
+ tableData.rows[index].forEach((r, idx) => {
427
+ if (!r.value) return;
428
+ let key = tableData.columns[idx].label.toLowerCase();
429
+ key = key === "sample" || key === "" ? "sID" : key === "experiment" ? "eID" : key;
430
+ item[key] = r.value;
431
+ });
432
+ if (!item.sID) throw new Error("Selected item must have sID property");
433
+ return item;
434
+ }
435
+ updateTable(tableData) {
436
+ this.tableData = tableData;
437
+ if (!this.table || !this.table.isSameShape(tableData)) {
438
+ this.renderSamplesTable(tableData);
439
+ return;
440
+ }
441
+ this.table.setTableData(tableData);
442
+ this.reapplyAllPlotButtons();
443
+ }
444
+ updatePlotBtns(activeSandboxes) {
445
+ this.activeSandboxes = activeSandboxes;
446
+ let totalPlots = 0;
447
+ for (const sandboxes of activeSandboxes.values()) totalPlots += sandboxes.length;
448
+ this.table?.setShownPlotsColumnVisibility(totalPlots >= 2);
449
+ this.reapplyAllPlotButtons();
450
+ }
451
+ /** Called by afterRender to re-apply buttons for all samples with subplots.
452
+ * Also called in updateTable when the active sandboxes (i.e. subplots) change.*/
453
+ reapplyAllPlotButtons() {
454
+ for (const sampleId of this.rendered.keys()) {
455
+ if (!this.activeSandboxes.has(sampleId)) {
456
+ this.deleteBtns(sampleId);
457
+ }
458
+ }
459
+ for (const sampleId of this.activeSandboxes.keys()) {
460
+ this.applyButtonsForSample(sampleId);
461
+ }
462
+ }
463
+ deleteBtns(sampleId) {
464
+ const cached = this.rendered.get(sampleId);
465
+ if (cached) {
466
+ cached.cell.selectAll(".sjpp-sc-table-plot-btn").remove();
467
+ this.rendered.delete(sampleId);
468
+ }
469
+ }
470
+ /** Applies buttons for a single sample. Skips DOM work if cell and plots are unchanged. */
471
+ applyButtonsForSample(sampleId) {
472
+ const sampleSandboxes = this.activeSandboxes.get(sampleId);
473
+ if (!sampleSandboxes || sampleSandboxes.length === 0) return;
474
+ if (!this.table) return;
475
+ const cell = this.table.rowMap.get(sampleId)?.cells?.shownPlots;
476
+ if (!cell) return;
477
+ const plotIds = sampleSandboxes.map((s) => s.plotId).join(",");
478
+ const cached = this.rendered.get(sampleId);
479
+ if (cached && cached.cell === cell && cached.plotIds === plotIds) return;
480
+ cell.selectAll(".sjpp-sc-table-plot-btn").remove();
481
+ this.rendered.set(sampleId, { cell, plotIds });
482
+ for (const { div, plotName } of sampleSandboxes) {
483
+ this.appendPlotBtn(cell, div, plotName, sampleId);
484
+ }
485
+ }
486
+ appendPlotBtn(cell, sandboxDiv, plotName, sampleId) {
487
+ const text = plotName.length > 25 ? plotName.slice(0, 12) + "..." : plotName;
488
+ const label = `Scroll to ${plotName}`;
489
+ 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", () => {
490
+ sandboxDiv.node().scrollIntoView({ behavior: "smooth", block: "start" });
491
+ });
492
+ }
493
+ };
494
+
495
+ // plots/sc/view/PlotButtons.ts
496
+ var PlotButtons = class {
497
+ /** scctTerms and the scTermdbConfig are created on server init and will not change. */
498
+ constructor(interactions, holder, termdbConfig) {
499
+ holder.style("padding", "10px");
500
+ const promptDiv = holder.append("div").style("padding", "10px 0").text("Select data from");
501
+ this.plotBtnsDom = {
502
+ holder,
503
+ promptDiv,
504
+ selectPrompt: promptDiv.append("span"),
505
+ btnsDiv: holder.append("div"),
506
+ tip: new Menu({ padding: "" })
507
+ };
508
+ this.interactions = interactions;
509
+ this.scctTerms = termdbConfig?.termType2terms?.[TermTypeGroups.SINGLECELL_CELLTYPE];
510
+ this.scnvTerms = termdbConfig?.termType2terms?.[TermTypeGroups.SINGLECELL_NUMERIC_VALUE];
511
+ this.scTermdbConfig = termdbConfig.queries.singleCell;
512
+ }
513
+ update(settings, data) {
514
+ const item = settings.sc.item;
515
+ this.plotBtnsDom.holder.style("display", !item ? "none" : "block");
516
+ if (!item) return;
517
+ if (data != null && data.plots) this.data = data;
518
+ this.availablePlots = new Set(this.data?.plots?.map((p) => p.name));
519
+ this.settings = settings;
520
+ this.item = item;
521
+ const name = item.sID;
522
+ this.plotBtnsDom.selectPrompt.text(` ${name}:`);
523
+ this.renderChartBtns();
524
+ }
525
+ renderChartBtns() {
526
+ this.plotBtnsDom.btnsDiv.selectAll("*").remove();
527
+ const disabledPlots = this.scTermdbConfig?.scApp?.disabledPlots || [];
528
+ const btns = this.getChartBtnOpts().filter((b) => !disabledPlots.includes(b.chartType)).filter((b) => b.isVisible());
529
+ 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) => {
530
+ if (plot.open) {
531
+ this.plotBtnsDom.tip.clear().showunder(e.target);
532
+ plot.open(plot, this);
533
+ } else {
534
+ if (!plot.getPlotConfig)
535
+ throw new Error(`No getPlotConfig function defined for this plot button = ${plot.label}`);
536
+ const config = await plot.getPlotConfig();
537
+ await this.interactions.createSubplot(config);
538
+ }
539
+ });
540
+ }
541
+ getChartBtnOpts() {
542
+ const btns = [];
543
+ for (const plot of this.scTermdbConfig?.data?.plots || []) {
544
+ if (!this.availablePlots.has(plot.name)) continue;
545
+ btns.push({
546
+ label: plot.name,
547
+ chartType: "sampleScatter",
548
+ isVisible: () => true,
549
+ getPlotConfig: async () => {
550
+ return await this.getSingleCellConfig(plot.name);
551
+ }
552
+ });
553
+ }
554
+ btns.push(
555
+ {
556
+ label: "Summary",
557
+ chartType: "dictionary",
558
+ /** Note: if only spatial image available, this plot should not show. */
559
+ isVisible: () => this.availablePlots.has("dictionary"),
560
+ getPlotConfig: () => {
561
+ const sample = { ...this.item, plots: Array.from(this.availablePlots) };
562
+ const isMeta = sample?.isMetaResult || false;
563
+ return {
564
+ chartType: "dictionary",
565
+ sample,
566
+ spawnConfig: {
567
+ parentId: this.interactions.id,
568
+ headerText: this.makeHeaderText(sample, isMeta),
569
+ hidePlotFilter: !isMeta,
570
+ sample
571
+ },
572
+ tree: {
573
+ usecase: {
574
+ target: "dictionary",
575
+ specialCase: {
576
+ type: "singleCell",
577
+ config: { sample }
578
+ }
579
+ }
580
+ }
581
+ };
582
+ }
583
+ },
584
+ {
585
+ label: "Gene expression",
586
+ chartType: "GeneExpInput",
587
+ isVisible: () => this.scTermdbConfig?.geneExpression && this.availablePlots.has(this.scTermdbConfig.geneExpression?.label || "Gene expression"),
588
+ getPlotConfig: () => {
589
+ const sample = this.item;
590
+ const isMeta = sample?.isMetaResult || false;
591
+ const headerText = this.makeHeaderText(sample, isMeta);
592
+ return {
593
+ chartType: "GeneExpInput",
594
+ termType: SINGLECELL_GENE_EXPRESSION,
595
+ headerText,
596
+ termProperties: { sample },
597
+ parentId: this.interactions.id,
598
+ sample,
599
+ spawnConfig: {
600
+ parentId: this.interactions.id,
601
+ headerText,
602
+ hidePlotFilter: !isMeta,
603
+ /** Must pass this to summary config in the event a continuous
604
+ * overlay is applied, launching the scatter plot. Without it,
605
+ * the single cell model is not used. */
606
+ singleCellPlot: {
607
+ name: [...this.availablePlots][0],
608
+ sample
609
+ }
610
+ }
611
+ };
612
+ }
613
+ },
614
+ {
615
+ label: "Differential expression",
616
+ chartType: "DA",
617
+ isVisible: () => this.scTermdbConfig?.DEgenes,
618
+ open: this.termDropdownMenu,
619
+ getPlotConfig: (value) => {
620
+ const isMeta = this.item?.isMetaResult || false;
621
+ return {
622
+ chartType: "differentialAnalysis",
623
+ termType: SINGLECELL_CELLTYPE,
624
+ categoryName: `${value}`,
625
+ headerText: `${isMeta ? "" : "Sample: "}${this.item.sID}, ${this.scTermdbConfig.DEgenes.termId} ${value}`,
626
+ termId: this.scTermdbConfig.DEgenes.termId,
627
+ sample: this.item,
628
+ plotName: "Differential expression"
629
+ };
630
+ }
631
+ },
632
+ {
633
+ label: this.scTermdbConfig?.images?.label || "Image",
634
+ chartType: "imagePlot",
635
+ isVisible: () => this.scTermdbConfig?.images && this.availablePlots.has(this.scTermdbConfig.images.label || "Image"),
636
+ getPlotConfig: () => {
637
+ const isMeta = this.item?.isMetaResult || false;
638
+ return {
639
+ chartType: "imagePlot",
640
+ sample: this.item,
641
+ imgDir: this.scTermdbConfig?.images,
642
+ headerText: this.makeHeaderText(this.item, isMeta),
643
+ settings: { imagePlot: { width: "", height: 400 } }
644
+ };
645
+ }
646
+ },
647
+ {
648
+ // spatial tissue viewer for samples with a spatial image (the model's
649
+ // wsiBySample probe sets data.hasSpatial); spawns the w2 wsi plot in
650
+ // fixed-sample mode, which has its own burger menu for the overlays
651
+ label: "Spatial",
652
+ chartType: "wsi",
653
+ isVisible: () => !!this.data?.hasSpatial,
654
+ getPlotConfig: () => {
655
+ const sample = this.item;
656
+ return {
657
+ chartType: "wsi",
658
+ name: `Sample: ${sample.sID} Spatial`,
659
+ sample,
660
+ plotName: "Spatial"
661
+ };
662
+ }
663
+ }
664
+ );
665
+ return btns;
666
+ }
667
+ makeHeaderText(sample, isMeta, plot) {
668
+ const caseText = sample.case ? ` Case: ${sample.case}` : "";
669
+ const projectText = sample?.["project id"] ? ` Project: ${sample["project id"]}` : "";
670
+ return `${isMeta ? "" : "Sample: "}${sample.sID}${caseText}${projectText}${plot ? ` (${plot})` : ""}`;
671
+ }
672
+ //********** Btn Menus **********/
673
+ async termDropdownMenu(plot, self) {
674
+ const _plot = Array.from(self.availablePlots)[0];
675
+ const options = await self.interactions.getDropDownOptions([_plot]);
676
+ if (!options?.length) throw new Error("No options found for this plot. Cannot open dropdown menu.");
677
+ self.plotBtnsDom.tip.clear();
678
+ const wrapper = self.plotBtnsDom.tip.d.append("div").style("padding", "10px");
679
+ 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:`);
680
+ const select = wrapper.append("select").style("margin", "10px 0").style("width", "auto").style("padding", "5px").on("change", async function() {
681
+ self.plotBtnsDom.tip.hide();
682
+ const value = select.node().value;
683
+ if (value.indexOf("Select") == 0) return;
684
+ const config = plot.getPlotConfig(value);
685
+ await self.interactions.createSubplot(config);
686
+ });
687
+ const regex = new RegExp(self.scTermdbConfig.DEgenes.termId, "gi");
688
+ options.unshift(`Select a ${self.scTermdbConfig.DEgenes.termId}...`);
689
+ for (const cluster of options) {
690
+ select.append("option").attr("value", cluster.replace(regex, "").trim()).text(cluster);
691
+ }
692
+ }
693
+ //********** Plot Config Helpers **********/
694
+ async getSingleCellConfig(plotName) {
695
+ if (!this.item) throw new Error("No item selected");
696
+ const plot = this.scTermdbConfig.data.plots.find((p) => p.name == plotName);
697
+ if (!plot) throw new Error(`No plot by name ${plotName} in data.plots.`);
698
+ const sample = this.item;
699
+ const isMeta = sample?.isMetaResult || false;
700
+ const config = {
701
+ chartType: "sampleScatter",
702
+ name: this.makeHeaderText(sample, isMeta, plotName),
703
+ sample,
704
+ singleCellPlot: {
705
+ name: plotName,
706
+ sample
707
+ }
708
+ };
709
+ if (plot.colorColumns?.[0]) {
710
+ const key = plot.colorColumns[0]?.type == "numeric" ? "scnv" : "scct";
711
+ config.colorTW = await this.makeScTW(key, sample, plot);
712
+ }
713
+ return config;
714
+ }
715
+ // Quick fix. Eventually use the handler to get the proper term from the termdbConfig
716
+ async makeScTW(key, item, plot) {
717
+ if (!key) throw new Error("Key is required for makeScTW");
718
+ const colorColName = plot.colorColumns[0].name;
719
+ const savedTerm = this[`${key}Terms`]?.find((t) => t.name == colorColName && t.plot == plot.name);
720
+ if (!savedTerm) {
721
+ const ttg = key === "scct" ? TermTypeGroups.SINGLECELL_CELLTYPE : TermTypeGroups.SINGLECELL_NUMERIC_VALUE;
722
+ throw new Error(`No term found for colorColumn=${colorColName} in .termType2terms.${ttg} for plot ${plot.name}`);
723
+ }
724
+ const term = Object.assign(structuredClone(savedTerm), {
725
+ sample: item
726
+ });
727
+ const id = await digestMessage(`${plot.name}-${item.sID}-${item.eID}`);
728
+ return Object.assign({ $id: id }, { term });
729
+ }
730
+ };
731
+
732
+ // plots/sc/view/SectionRenderer.ts
733
+ var SectionRenderer = class {
734
+ constructor(sectionsDiv, groupBy) {
735
+ this.sections = {};
736
+ this.holder = sectionsDiv;
737
+ this.plotId2Key = /* @__PURE__ */ new Map();
738
+ this.groupBy = groupBy;
739
+ }
740
+ /** Send the sc with the updated state. May not be necessary long term. If not,
741
+ * remove and put in the constructor. */
742
+ async update(sc, subplots, groupBy) {
743
+ if (groupBy !== this.groupBy) {
744
+ this.groupBy = groupBy;
745
+ this.regroupSections(sc, subplots);
746
+ return;
747
+ }
748
+ const activeSubplots = new Set(subplots.map((s) => s.id));
749
+ for (const plotId of Array.from(this.plotId2Key.keys())) {
750
+ if (!activeSubplots.has(plotId)) this.removeSandbox(plotId);
751
+ }
752
+ for (const subplot of subplots) {
753
+ const key = this.getKey(subplot, sc);
754
+ if (!key) continue;
755
+ if (!this.sections[key]) this.initSection(key, sc);
756
+ if (!this.sections[key].sandboxes[subplot.id]) {
757
+ this.plotId2Key.set(subplot.id, key);
758
+ sc.subplotManager.setSectionKey(subplot.id, key);
759
+ await this.initSandbox(sc, subplot, key);
760
+ }
761
+ }
762
+ for (const key of Object.keys(this.sections)) {
763
+ if (Object.keys(this.sections[key].sandboxes).length === 0) {
764
+ this.removeSection(key, sc);
765
+ }
766
+ }
767
+ }
768
+ /** Reparent existing sandboxes into new section containers
769
+ * without destroying/recreating plot components. */
770
+ regroupSections(sc, subplots) {
771
+ const detached = /* @__PURE__ */ new Map();
772
+ for (const [plotId, key] of this.plotId2Key) {
773
+ const sandboxNode = this.sections[key]?.sandboxes[plotId];
774
+ if (sandboxNode) {
775
+ sandboxNode.remove();
776
+ detached.set(plotId, sandboxNode);
777
+ }
778
+ }
779
+ this.holder.selectAll("*").remove();
780
+ this.sections = {};
781
+ this.plotId2Key = /* @__PURE__ */ new Map();
782
+ for (const subplot of subplots) {
783
+ const key = this.getKey(subplot, sc);
784
+ if (!key) continue;
785
+ if (!this.sections[key]) this.initSection(key, sc);
786
+ this.plotId2Key.set(subplot.id, key);
787
+ sc.subplotManager.setSectionKey(subplot.id, key);
788
+ const existing = detached.get(subplot.id);
789
+ if (existing) {
790
+ this.sections[key].subplots.node().prepend(existing.node());
791
+ this.sections[key].sandboxes[subplot.id] = existing;
792
+ }
793
+ }
794
+ }
795
+ getKey(subplot, sc) {
796
+ if (this.groupBy === "none") return "none";
797
+ if (this.groupBy === "sample") return this.getSampleId(subplot);
798
+ return sc.subplotManager.getPlotName(subplot);
799
+ }
800
+ /** Extract sID from a subplot's config.
801
+ * Actual subplots store sample as {sID, eID} at top level or on term.term.sample. */
802
+ getSampleId(subplot) {
803
+ return subplot.sample?.sID || subplot.singleCellPlot?.sample?.sID || subplot.term?.term?.sample?.sID;
804
+ }
805
+ initSection(key, sc) {
806
+ const item = this.findSampleMetadata(key, sc);
807
+ const titleAttrText = this.groupBy == "sample" ? "this sample section" : this.groupBy == "plot" ? "this plot section" : "all plots";
808
+ const sectionWrapper = this.holder.insert("div", ":first-child").style("padding", "10px").attr("data-testid", `sjpp-sc-section-wrapper-${key}`);
809
+ sectionWrapper.append("span").attr("data-testid", `sjpp-sc-section-remove-btn-${key}`).style("margin", "0px 5px").style("cursor", "pointer").attr("title", `Remove ${titleAttrText}`).html(
810
+ `<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="#000" class="bi bi-x-lg" viewBox="0 0 12 12">
811
+ <path
812
+ stroke="#000"
813
+ transform="scale(0.75)"
814
+ 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"/>
815
+ </svg>`
816
+ ).on("click", () => {
817
+ this.removeSection(key, sc);
818
+ });
819
+ const titleText = this.makeSectionTitleText(key, item);
820
+ const titleWrapper = sectionWrapper.append("span").style("font-weight", 600).style("opacity", 0.7).text(titleText);
821
+ if (titleText.length) {
822
+ const arrow = titleWrapper.append("span").style("font-size", "0.8em").style("padding-left", "3px").attr("title", `Show/hide plots in ${titleAttrText}`).text("\u25BC");
823
+ titleWrapper.on("click", () => {
824
+ const isHidden = this.sections[key].subplots.style("display") === "none";
825
+ this.sections[key].subplots.style("display", isHidden ? "block" : "none");
826
+ arrow.text(isHidden ? "\u25BC" : "\u25B2");
827
+ });
828
+ }
829
+ this.sections[key] = {
830
+ sectionWrapper,
831
+ title: titleWrapper,
832
+ subplots: sectionWrapper.append("div").attr("data-testid", `sjpp-sc-subplots-${key}`),
833
+ sandboxes: {}
834
+ };
835
+ }
836
+ /** Look up sample metadata from the fetched items list.
837
+ * For experiment datasets, matches sID against experiments[].sampleName.
838
+ * For non-experiment datasets, matches sID against item.sample. */
839
+ findSampleMetadata(sampleId, sc) {
840
+ if (!sc.items) return void 0;
841
+ return sc.items.find((item) => item.sample === sampleId || item.experiments?.some((e) => e.sampleName === sampleId));
842
+ }
843
+ makeSectionTitleText(key, item) {
844
+ if (this.groupBy === "none") return "All plots";
845
+ if (this.groupBy === "plot") return key;
846
+ const caseText = item?.sample && item.sample !== key ? `Case: ${item.sample}` : "";
847
+ const isMeta = item?.isMetaResult || false;
848
+ const itemText = `${isMeta ? "" : "Sample: "}${key}`;
849
+ const projectProp = item?.case?.project?.project_id || item?.["project id"];
850
+ const projectText = projectProp ? `Project: ${projectProp}` : "";
851
+ return [itemText, caseText, projectText].filter(Boolean).join(" ");
852
+ }
853
+ async initSandbox(sc, subplot, key) {
854
+ const sandboxHolder = this.sections[key].subplots.insert("div", ":first-child").attr("data-testid", `sjpp-sc-sandbox-${subplot.id}`);
855
+ const sandboxDiv = await sc.subplotManager.initSubplotSandbox(sandboxHolder, subplot, {
856
+ sectionKey: key
857
+ });
858
+ this.sections[key].sandboxes[subplot.id] = sandboxDiv;
859
+ }
860
+ removeSection(key, sc) {
861
+ const subactions = [];
862
+ for (const plotId of Object.keys(this.sections[key].sandboxes || {})) {
863
+ this.removeSandbox(plotId, key);
864
+ subactions.push({
865
+ type: "plot_delete",
866
+ id: plotId,
867
+ parentId: sc.id
868
+ });
869
+ }
870
+ if (subactions.length > 0) {
871
+ sc.app.dispatch({
872
+ type: "app_refresh",
873
+ subactions
874
+ });
875
+ }
876
+ this.sections[key].sectionWrapper.remove();
877
+ delete this.sections[key];
878
+ }
879
+ removeSandbox(plotId, _key) {
880
+ const key = _key || this.plotId2Key.get(plotId);
881
+ if (!key) return;
882
+ const section = this.sections[key];
883
+ const sandbox = section?.sandboxes?.[plotId];
884
+ if (sandbox) sandbox.remove();
885
+ if (section?.sandboxes?.[plotId]) delete section.sandboxes[plotId];
886
+ this.plotId2Key.delete(plotId);
887
+ }
888
+ };
889
+
890
+ // plots/sc/settings/Settings.ts
891
+ var GroupByOptions = ["sample", "plot", "none"];
892
+
893
+ // plots/sc/view/SCViewRenderer.ts
894
+ var SCViewRenderer = class {
895
+ constructor(sc) {
896
+ this.tableVisible = true;
897
+ this.sc = sc;
898
+ this.dom = sc.dom;
899
+ this.interactions = sc.interactions;
900
+ this.dom.controlsDiv.style("padding", "10px");
901
+ }
902
+ render(settings, state) {
903
+ this.renderSelectBtn();
904
+ this.renderGroupByOptions(settings);
905
+ this.plotBtns = new PlotButtons(this.interactions, this.dom.plotsBtnsDiv, state.termdbConfig);
906
+ this.sectionRenderer = new SectionRenderer(this.dom.sectionsDiv, settings.groupBy);
907
+ }
908
+ /** Renders the select btn at the top of the page that
909
+ * show/hides the item table and plot buttons */
910
+ renderSelectBtn() {
911
+ 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");
912
+ const arrowSpan = btn.append("span").style("font-size", "0.8em").style("padding-left", "3px").text("\u25BC");
913
+ btn.toggle = () => {
914
+ this.tableVisible = !this.tableVisible;
915
+ arrowSpan.text(this.tableVisible ? "\u25BC" : "\u25B2");
916
+ this.dom.tableDiv.style("display", this.tableVisible ? "block" : "none");
917
+ };
918
+ btn.on("click", () => {
919
+ btn.toggle();
920
+ });
921
+ this.dom.selectBtn = btn;
922
+ }
923
+ renderGroupByOptions(settings) {
924
+ this.groupsWrapper = this.dom.controlsDiv.append("div").style("display", "none");
925
+ this.groupsWrapper.append("span").style("padding", "3px 0px 3px 20px").style("opacity", 0.7).text("Group by:");
926
+ const optionsDiv = this.groupsWrapper.append("span").style("display", "inline-block");
927
+ const options = GroupByOptions.map((option) => {
928
+ return {
929
+ label: `${option.charAt(0).toUpperCase() + option.slice(1)}`,
930
+ value: option,
931
+ checked: settings.groupBy === option
932
+ };
933
+ });
934
+ make_radios({
935
+ holder: optionsDiv,
936
+ styles: { display: "inline-block" },
937
+ options,
938
+ callback: async (value) => {
939
+ await this.sc.app.dispatch({
940
+ type: "plot_edit",
941
+ id: this.sc.id,
942
+ config: { settings: { sc: { ...settings, groupBy: value } } }
943
+ });
944
+ }
945
+ });
946
+ }
947
+ async update(settings, data, activeSubplots, tableData, subplotManager) {
948
+ if (!this.sampleTableRenderer) {
949
+ this.sampleTableRenderer = new SampleTableRenderer(this.dom, this.interactions, tableData);
950
+ } else {
951
+ this.sampleTableRenderer.updateTable(tableData);
952
+ }
953
+ this.plotBtns.update(settings, data);
954
+ await this.sectionRenderer.update(
955
+ this.sc,
956
+ activeSubplots.map((s) => s.subplot),
957
+ settings.sc.groupBy
958
+ );
959
+ const activeSandboxes = subplotManager.getSampleSandboxes();
960
+ this.groupsWrapper.style("display", activeSandboxes.size > 1 ? "inline-block" : "none");
961
+ this.sampleTableRenderer.updatePlotBtns(activeSandboxes);
962
+ }
963
+ };
964
+
965
+ // plots/sc/settings/defaults.ts
966
+ function getDefaultSCAppSettings(overrides = {}, app) {
967
+ const defaults = {
968
+ sc: {
969
+ columns: {
970
+ sample: "Sample"
971
+ },
972
+ item: void 0,
973
+ groupBy: "sample"
974
+ },
975
+ hierCluster: {
976
+ unit: getGEunit(app.vocabApi),
977
+ yDendrogramHeight: 0,
978
+ clusterSamples: false
979
+ }
980
+ };
981
+ return Object.assign(defaults, overrides);
982
+ }
983
+
984
+ // plots/sc/subplots/DynamicSubplot.ts
985
+ var DynamicSubplot = class _DynamicSubplot {
986
+ constructor(opts) {
987
+ this.dom = {};
988
+ this.type = _DynamicSubplot.type;
989
+ this.opts = opts;
990
+ this.app = opts.app;
991
+ this.parentId = opts?.parentId;
992
+ }
993
+ static {
994
+ this.type = "dynamicSubplot";
995
+ }
996
+ async init() {
997
+ this.opts.holder.app_div.attr("data-testid", "sjpp-sc-subplot-sandbox-" + this.opts.chartType);
998
+ if (this.opts.chartType == "summary") return;
999
+ this.dom = {
1000
+ holder: this.opts.holder,
1001
+ viz: this.opts.holder.body.append("div").style("position", "relative"),
1002
+ paneTitleDiv: this.opts.holder.header.append("div").style("position", "relative"),
1003
+ filterDiv: this.opts.holder.header.append("div").style("position", "relative"),
1004
+ errorDiv: this.opts.holder.body.append("div").style("position", "relative")
1005
+ };
1006
+ }
1007
+ getState(appState) {
1008
+ const config = appState.plots.find((p) => p.id === this.id);
1009
+ if (!config) {
1010
+ throw `No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`;
1011
+ }
1012
+ return {
1013
+ config
1014
+ };
1015
+ }
1016
+ async main() {
1017
+ if (!this.components) await this.setComponents();
1018
+ }
1019
+ async setComponents() {
1020
+ const _ = await importPlot(this.opts.chartType);
1021
+ const chartOpts = {
1022
+ app: this.app,
1023
+ id: this.id,
1024
+ parentId: this.parentId
1025
+ };
1026
+ if (this.opts.chartType == "summary") {
1027
+ chartOpts.holder = this.opts.holder;
1028
+ chartOpts.hidePlotFilter = this.opts.isMetaResult;
1029
+ } else {
1030
+ chartOpts.holder = this.dom.viz;
1031
+ chartOpts.header = this.dom.paneTitleDiv;
1032
+ }
1033
+ const promises = {
1034
+ chart: _.componentInit(chartOpts)
1035
+ };
1036
+ if (!this.state.config?.hidePlotFilter && this.opts.isMetaResult && this.opts.chartType != "summary") {
1037
+ promises.filter = filterRxCompInit({
1038
+ app: this.app,
1039
+ vocabApi: this.app.vocabApi,
1040
+ parentId: this.id,
1041
+ holder: this.dom.filterDiv,
1042
+ hideLabel: true,
1043
+ emptyLabel: "+Add new filter",
1044
+ callback: (filter) => {
1045
+ this.app.dispatch({
1046
+ id: this.id,
1047
+ type: "plot_edit",
1048
+ config: { filter }
1049
+ });
1050
+ }
1051
+ });
1052
+ }
1053
+ this.components = await multiInit(promises);
1054
+ }
1055
+ destroy() {
1056
+ const appDiv = this.dom?.holder?.app_div;
1057
+ if (appDiv) {
1058
+ appDiv.selectAll("*").remove();
1059
+ appDiv.remove();
1060
+ }
1061
+ for (const key in this.dom) {
1062
+ delete this.dom[key];
1063
+ }
1064
+ }
1065
+ };
1066
+ var dynamicSubplotInit = getCompInit(DynamicSubplot);
1067
+
1068
+ // plots/sc/subplots/SubplotManager.ts
1069
+ var SubplotManager = class {
1070
+ constructor(sc) {
1071
+ this.sc = sc;
1072
+ this.scCompPlots = this.sc.components.plots;
1073
+ this.records = /* @__PURE__ */ new Map();
1074
+ }
1075
+ map(subplots) {
1076
+ const subplotIds = new Set(subplots.map((s) => s.id));
1077
+ for (const compPlotId of Object.keys(this.scCompPlots)) {
1078
+ if (!subplotIds.has(compPlotId)) {
1079
+ this.removeSubplot(compPlotId);
1080
+ }
1081
+ }
1082
+ for (const recordId of Array.from(this.records.keys())) {
1083
+ if (!subplotIds.has(recordId)) this.records.delete(recordId);
1084
+ }
1085
+ for (const subplot of subplots) {
1086
+ this.updateSubplotRecord(subplot);
1087
+ }
1088
+ return this.getActiveSubplotsFlat();
1089
+ }
1090
+ updateSubplotRecord(subplot) {
1091
+ const existing = this.records.get(subplot.id);
1092
+ const sampleId = this.getSampleId(subplot);
1093
+ const isMeta = sampleId && this.sc.viewModel.metaResultIds.has(sampleId) || false;
1094
+ this.records.set(subplot.id, {
1095
+ plotId: subplot.id,
1096
+ sampleId,
1097
+ plotName: this.getPlotName(subplot),
1098
+ sectionKey: existing?.sectionKey,
1099
+ subplot,
1100
+ sandboxDiv: existing?.sandboxDiv,
1101
+ isMetaResult: isMeta
1102
+ });
1103
+ }
1104
+ removeSubplot(subplotId) {
1105
+ if (this.scCompPlots[subplotId]) this.scCompPlots[subplotId].destroy();
1106
+ delete this.scCompPlots[subplotId];
1107
+ this.records.delete(subplotId);
1108
+ }
1109
+ async initSubplotSandbox(sandboxHolder, subplot, initOpts = {}) {
1110
+ const sandbox = newSandboxDiv(sandboxHolder, {
1111
+ close: () => {
1112
+ this.removeSubplot(subplot.id);
1113
+ this.sc.app.dispatch({
1114
+ type: "plot_delete",
1115
+ id: subplot.id,
1116
+ parentId: this.sc.id
1117
+ });
1118
+ if (initOpts.onClose) initOpts.onClose();
1119
+ },
1120
+ plotId: subplot.id
1121
+ });
1122
+ const subplotOpts = Object.assign({}, subplot, {
1123
+ app: this.sc.app,
1124
+ parentId: this.sc.id,
1125
+ id: subplot.id,
1126
+ holder: sandbox,
1127
+ isMetaResult: this.records.get(subplot.id)?.isMetaResult || false
1128
+ });
1129
+ this.scCompPlots[subplot.id] = await dynamicSubplotInit(subplotOpts);
1130
+ this.setSandbox(subplot.id, sandbox.app_div);
1131
+ if (initOpts.sectionKey) this.setSectionKey(subplot.id, initOpts.sectionKey);
1132
+ return sandbox.app_div;
1133
+ }
1134
+ setSandbox(plotId, sandboxDiv) {
1135
+ const record = this.records.get(plotId);
1136
+ if (!record) return;
1137
+ record.sandboxDiv = sandboxDiv;
1138
+ this.records.set(plotId, record);
1139
+ }
1140
+ setSectionKey(plotId, sectionKey) {
1141
+ const record = this.records.get(plotId);
1142
+ if (!record) return;
1143
+ record.sectionKey = sectionKey;
1144
+ this.records.set(plotId, record);
1145
+ }
1146
+ getActiveSubplotsFlat() {
1147
+ return Array.from(this.records.values());
1148
+ }
1149
+ getSampleId(subplot) {
1150
+ return subplot.sample?.sID || subplot.singleCellPlot?.sample?.sID || subplot.term?.term?.sample?.sID;
1151
+ }
1152
+ getPlotName(subplot) {
1153
+ const nameOverrides = /* @__PURE__ */ new Map([
1154
+ ["GeneExpInput", "Gene expression"],
1155
+ ["imagePlot", subplot?.imgDir?.label || "Image"],
1156
+ ["dictionary", "Summary"],
1157
+ ["summary", "Summary"]
1158
+ ]);
1159
+ let plotName = subplot?.plotName || nameOverrides.get(subplot?.chartType) || subplot?.singleCellPlot?.name;
1160
+ if (!plotName) {
1161
+ if (subplot?.term?.term?.plot) plotName = subplot.term.term.plot;
1162
+ else plotName = subplot.chartType || "Plot";
1163
+ }
1164
+ return plotName;
1165
+ }
1166
+ getSampleSandboxes(activeSubplots = this.getActiveSubplotsFlat()) {
1167
+ const sandboxes = /* @__PURE__ */ new Map();
1168
+ for (const active of activeSubplots) {
1169
+ if (!active.sampleId || !active.sandboxDiv) continue;
1170
+ if (!sandboxes.has(active.sampleId)) sandboxes.set(active.sampleId, []);
1171
+ sandboxes.get(active.sampleId).push({ plotId: active.plotId, div: active.sandboxDiv, plotName: active.plotName });
1172
+ }
1173
+ return sandboxes;
1174
+ }
1175
+ };
1176
+
1177
+ // plots/sc/SC.ts
1178
+ var SCViewer = class _SCViewer extends PlotBase {
1179
+ static {
1180
+ this.type = "sc";
1181
+ }
1182
+ constructor(opts, api) {
1183
+ super(opts, api);
1184
+ this.type = _SCViewer.type;
1185
+ this.components = {
1186
+ plots: {}
1187
+ };
1188
+ const div = opts.holder.classed("sjpp-sc-main", true).append("div").style("padding", "5px").style("display", "inline-block").style("vertical-align", "top");
1189
+ this.dom = {
1190
+ div,
1191
+ 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"),
1192
+ controlsDiv: div.append("div").attr("id", "sjpp-sc-controls-btn"),
1193
+ tableDiv: div.append("div").attr("id", "sjpp-sc-item-table"),
1194
+ plotsBtnsDiv: div.append("div").attr("id", "sjpp-sc-plot-buttons").style("display", "none"),
1195
+ sectionsDiv: div.append("div").attr("id", "sjpp-sc-sections")
1196
+ };
1197
+ if (opts.header) formatHeaderText({
1198
+ header: opts.header,
1199
+ chartType: "SINGLE CELL"
1200
+ });
1201
+ }
1202
+ getState(appState) {
1203
+ const config = appState.plots.find((p) => p.id === this.id);
1204
+ if (!config) {
1205
+ throw new Error(
1206
+ `No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`
1207
+ );
1208
+ }
1209
+ const termfilter = getCombinedTermFilter(appState, config.filter);
1210
+ return {
1211
+ config,
1212
+ subplots: appState.plots.filter((p) => p.parentId === this.id),
1213
+ termfilter,
1214
+ termdbConfig: appState.termdbConfig,
1215
+ vocab: appState.vocab
1216
+ };
1217
+ }
1218
+ async init(appState) {
1219
+ const state = this.getState(appState);
1220
+ const dsScSamples = state.termdbConfig.queries?.singleCell?.samples;
1221
+ this.model = new SCModel(this);
1222
+ try {
1223
+ this.itemColumns = await this.model.getColumnLabels(dsScSamples);
1224
+ } catch (e) {
1225
+ if (e instanceof Error) console.error(`${e.message || e} [SC init()]`);
1226
+ else if (e.stack) console.log(e.stack);
1227
+ throw new Error(e.message || e);
1228
+ }
1229
+ this.viewModel = new SCViewModel(this.app, this.itemColumns);
1230
+ this.interactions = new SCInteractions(this);
1231
+ this.subplotManager = new SubplotManager(this);
1232
+ this.view = new SCViewRenderer(this);
1233
+ this.view.render(state.config.settings.sc, state);
1234
+ }
1235
+ async main() {
1236
+ if (!this.model) throw new Error(`Model not initialized`);
1237
+ if (!this.viewModel) throw new Error(`ViewModel not initialized`);
1238
+ if (!this.view) throw new Error(`View not initialized`);
1239
+ if (!this.interactions) throw new Error(`Interactions not initialized`);
1240
+ const state = structuredClone(this.state);
1241
+ const config = state.config;
1242
+ super.toggleLoadingDiv();
1243
+ let data;
1244
+ try {
1245
+ const allSampleData = await this.model.getAllSampleData(state);
1246
+ if (!allSampleData || allSampleData.error) {
1247
+ super.toggleLoadingDiv("none");
1248
+ super.printError(allSampleData?.error || "No samples found for this dataset");
1249
+ return;
1250
+ }
1251
+ this.items = allSampleData.samples;
1252
+ this.viewModel.processData(config, allSampleData.samples);
1253
+ if (config.settings?.sc?.item) {
1254
+ const sampleData = await this.model.getSampleData();
1255
+ if (!sampleData || sampleData.error) {
1256
+ super.toggleLoadingDiv("none");
1257
+ super.printError(sampleData?.error || "No data found for this sample");
1258
+ return;
1259
+ }
1260
+ const hasSpatial = await this.model.hasSpatialImage(config.settings.sc.item.sID);
1261
+ data = this.viewModel.formatPlotsData(sampleData, hasSpatial);
1262
+ }
1263
+ } catch (e) {
1264
+ if (e instanceof Error) console.error(`${e.message || e} [SC main()]`);
1265
+ else if (e.stack) console.log(e.stack);
1266
+ super.toggleLoadingDiv("none");
1267
+ super.printError(e.message || e);
1268
+ return;
1269
+ }
1270
+ const activeSubplots = this.subplotManager.map(state.subplots);
1271
+ await this.view.update(config.settings, data, activeSubplots, this.viewModel.tableData, this.subplotManager);
1272
+ super.toggleLoadingDiv("none");
1273
+ }
1274
+ };
1275
+ var SCInit = getCompInit(SCViewer);
1276
+ var componentInit = SCInit;
1277
+ function getPlotConfig(opts, app) {
1278
+ const config = {
1279
+ chartType: "sc",
1280
+ settings: getDefaultSCAppSettings(opts.overrides, app)
1281
+ };
1282
+ return copyMerge(config, opts);
1283
+ }
1284
+ export {
1285
+ SCInit,
1286
+ SCViewer,
1287
+ componentInit,
1288
+ getPlotConfig
1289
+ };
1290
+ //# sourceMappingURL=SC-SMMW5MJG.js.map