@sjcrh/proteinpaint-client 2.213.0 → 2.214.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 (913) hide show
  1. package/dist/2dmaf-AC7Y7AXT.js +1367 -0
  2. package/dist/AggMatrixInput-FJU2LFFO.js +406 -0
  3. package/dist/AggregateMatrix-RJ2VERUN.js +41 -0
  4. package/dist/AppHeader-NRHKFUAZ.js +830 -0
  5. package/dist/BoxPlot-MIY77WRA.js +1208 -0
  6. package/dist/CorrelationVolcano-TD4WNLVB.js +617 -0
  7. package/dist/Cuminc-JC2RB2JJ.js +1220 -0
  8. package/dist/DE-B7OOKFKF.js +89 -0
  9. package/dist/DEinput-NJYGTYXI.js +501 -0
  10. package/dist/DM-MSAEMNJD.js +90 -0
  11. package/dist/DifferentialAnalysis-K2OYA3GC.js +239 -0
  12. package/dist/Disco-3P2JTHPH.js +3389 -0
  13. package/dist/Disco.UI-TGJKDVPZ.js +243 -0
  14. package/dist/DmrPlot-COQ7G42N.js +362 -0
  15. package/dist/GB-TIAFRKC6.js +1392 -0
  16. package/dist/GSEA-SORUSH2I.js +875 -0
  17. package/dist/GeneExpInput-IJRT3ET6.js +42 -0
  18. package/dist/Geomap-4JSVYPKA.js +84 -0
  19. package/dist/HicApp-SFHELIGY.js +2245 -0
  20. package/dist/IDCViewer-2WDE35RN.js +10812 -0
  21. package/dist/NumBinaryEditor-3AJMTAM7.js +279 -0
  22. package/dist/NumBinaryEditor.unit.spec-YQAXVSJJ.js +312 -0
  23. package/dist/NumContEditor-GNRVX2GF.js +105 -0
  24. package/dist/NumContEditor.unit.spec-3MKW3BNU.js +164 -0
  25. package/dist/NumCustomBinEditor-XGEB7IZ5.js +33 -0
  26. package/dist/NumCustomBinEditor.unit.spec-3LBRRI7C.js +397 -0
  27. package/dist/NumDiscreteEditor-RASHJSS7.js +170 -0
  28. package/dist/NumDiscreteEditor.unit.spec-P5CI5OCT.js +233 -0
  29. package/dist/NumRegularBinEditor-ELSWMUJL.js +33 -0
  30. package/dist/NumRegularBinEditor.unit.spec-T7EUBNSW.js +278 -0
  31. package/dist/NumSplineEditor-RTNZTUQ5.js +210 -0
  32. package/dist/NumSplineEditor.unit.spec-POPB72U2.js +224 -0
  33. package/dist/NumericDensity-ASPLZQTW.js +33 -0
  34. package/dist/NumericDensity.unit.spec-WP7OAVND.js +418 -0
  35. package/dist/NumericHandler-X6MQSXNB.js +34 -0
  36. package/dist/NumericHandler.unit.spec-ET5ZEHDL.js +214 -0
  37. package/dist/ProteomeInput-CE2QSGHY.js +388 -0
  38. package/dist/Regression-TJJGAFZD.js +1416 -0
  39. package/dist/RunChart2-VSLNFIXS.js +749 -0
  40. package/dist/SC-AJWKVCOK.js +1348 -0
  41. package/dist/Violin-PEMCXVES.js +1064 -0
  42. package/dist/Volcano-OXSIAQ2Z.js +2456 -0
  43. package/dist/Wsi-AG2DF27X.js +629 -0
  44. package/dist/adSandbox-2PY3V5QD.js +33 -0
  45. package/dist/animatedBubbleChart-IN5UVZAD.js +547 -0
  46. package/dist/app-3BNMJWHT.js +32 -0
  47. package/dist/app-4J3OJFJN.js +42 -0
  48. package/dist/app.js +14 -14
  49. package/dist/bam-3GIL7RAN.js +876 -0
  50. package/dist/barchart-GEVUNJ3P.js +42 -0
  51. package/dist/barchart2-FN3EICRE.js +309 -0
  52. package/dist/block-KHDTWYNM.js +6250 -0
  53. package/dist/block.init-ZCL56N7C.js +33 -0
  54. package/dist/block.mds.expressionrank-FOELK7HF.js +354 -0
  55. package/dist/block.mds.geneboxplot-XG3HH5SQ.js +823 -0
  56. package/dist/block.mds.junction-IPTVBAVA.js +1539 -0
  57. package/dist/block.mds.svcnv-XPSRDCKO.js +6796 -0
  58. package/dist/block.svg-KCOUBG3K.js +159 -0
  59. package/dist/block.tk.aicheck-PXTLZ4NL.js +278 -0
  60. package/dist/block.tk.ase-FE4O3CXJ.js +360 -0
  61. package/dist/block.tk.bam-LKSL2QK7.js +1901 -0
  62. package/dist/block.tk.bedgraphdot-UDXTZQTP.js +379 -0
  63. package/dist/block.tk.bigwig.ui-JQX4DZY3.js +206 -0
  64. package/dist/block.tk.hicstraw-XGNFNV2D.js +818 -0
  65. package/dist/block.tk.junction-MJ42DFHW.js +2358 -0
  66. package/dist/block.tk.junction.textmatrixui-6UHTYDX2.js +194 -0
  67. package/dist/block.tk.ld-E35Z5Q2S.js +94 -0
  68. package/dist/block.tk.menu-RF4EPDZB.js +1054 -0
  69. package/dist/block.tk.pgv-H4LW2F7J.js +938 -0
  70. package/dist/brainImaging-R3F3PE6Z.js +555 -0
  71. package/dist/brainRegions-YQVQVKL4.js +217 -0
  72. package/dist/bubbleHeatmap-5O64CGYG.js +378 -0
  73. package/dist/cellTypeBubbleHeatmap-WWFWVCZ4.js +278 -0
  74. package/dist/chunk-2P47X7BT.js +80 -0
  75. package/dist/chunk-2PUOEKQW.js +182 -0
  76. package/dist/chunk-2QJ5YW7G.js +446 -0
  77. package/dist/chunk-2RZMDOJJ.js +550 -0
  78. package/dist/chunk-3FLNHVHA.js +54 -0
  79. package/dist/chunk-3KQKNLHI.js +339 -0
  80. package/dist/chunk-3ZGNYCH6.js +98 -0
  81. package/dist/chunk-45GG3VPI.js +274 -0
  82. package/dist/chunk-4HEBUKW2.js +56 -0
  83. package/dist/chunk-4QTTLHAM.js +1278 -0
  84. package/dist/chunk-5ANMO7OR.js +299 -0
  85. package/dist/chunk-5IC2RQNV.js +2784 -0
  86. package/dist/chunk-5JXRLP7K.js +294 -0
  87. package/dist/chunk-5OPIM5UQ.js +263 -0
  88. package/dist/chunk-7B3MFR7R.js +31 -0
  89. package/dist/chunk-7J7FKNHA.js +397 -0
  90. package/dist/chunk-7JP6JKKT.js +2258 -0
  91. package/dist/chunk-AAIRS4VB.js +1988 -0
  92. package/dist/chunk-BHDCIV2C.js +626 -0
  93. package/dist/chunk-C6FM3UFY.js +54 -0
  94. package/dist/chunk-COWQ5L4E.js +243 -0
  95. package/dist/chunk-CSNF6JCR.js +14 -0
  96. package/dist/chunk-D26T74BT.js +382 -0
  97. package/dist/chunk-DEQDVYSX.js +302 -0
  98. package/dist/chunk-DGZWMUOG.js +25002 -0
  99. package/dist/chunk-DGZWMUOG.js.map +7 -0
  100. package/dist/chunk-DP4XE22P.js +129 -0
  101. package/dist/chunk-DQNIHRZK.js +692 -0
  102. package/dist/chunk-EU5WPWP3.js +141 -0
  103. package/dist/chunk-FDYHFVFB.js +276 -0
  104. package/dist/chunk-FGXRTF6T.js +102 -0
  105. package/dist/chunk-FNIAQ672.js +54 -0
  106. package/dist/chunk-FPIJQWWG.js +134 -0
  107. package/dist/chunk-FTVJJYYR.js +379 -0
  108. package/dist/chunk-FZ6SNG7M.js +255 -0
  109. package/dist/chunk-G47IRKK5.js +518 -0
  110. package/dist/chunk-GAHZ2TSD.js +102 -0
  111. package/dist/chunk-GAPWAY3F.js +281 -0
  112. package/dist/chunk-GULFC3DW.js +1339 -0
  113. package/dist/chunk-HMFWT3XB.js +56 -0
  114. package/dist/chunk-HRLCNOZE.js +1812 -0
  115. package/dist/chunk-HZXFKWTP.js +38 -0
  116. package/dist/chunk-JJV7MQZR.js +176 -0
  117. package/dist/chunk-JZKVHXFQ.js +424 -0
  118. package/dist/chunk-K5737QEX.js +6360 -0
  119. package/dist/chunk-K626HR7F.js +272 -0
  120. package/dist/chunk-K7IB2U76.js +178 -0
  121. package/dist/chunk-KA4WZGUX.js +123 -0
  122. package/dist/chunk-KED5HIAW.js +158 -0
  123. package/dist/chunk-LUJHQWIK.js +5217 -0
  124. package/dist/chunk-LYKASWJ5.js +2902 -0
  125. package/dist/chunk-MJDIDCTT.js +119 -0
  126. package/dist/chunk-MMWHJ4BH.js +59 -0
  127. package/dist/chunk-NDJ4LBL3.js +170 -0
  128. package/dist/chunk-NIZVZ333.js +203 -0
  129. package/dist/chunk-OQJPDEKR.js +562 -0
  130. package/dist/chunk-OR6P5PR4.js +339 -0
  131. package/dist/chunk-OSCUO5KD.js +70 -0
  132. package/dist/chunk-QK4SEPZE.js +1233 -0
  133. package/dist/chunk-QZXFF4ID.js +103 -0
  134. package/dist/chunk-RIRH565U.js +217 -0
  135. package/dist/chunk-RIRIGN5F.js +468 -0
  136. package/dist/chunk-S6343VGL.js +217 -0
  137. package/dist/chunk-SREWSTR6.js +1616 -0
  138. package/dist/chunk-SREWSTR6.js.map +7 -0
  139. package/dist/chunk-V4I4NRWW.js +34 -0
  140. package/dist/chunk-VK4Q5SO4.js +2327 -0
  141. package/dist/chunk-VKFVPIA7.js +237 -0
  142. package/dist/chunk-VYFOWZY7.js +26 -0
  143. package/dist/chunk-VZ7MQ7NP.js +49 -0
  144. package/dist/chunk-W4JONZZ4.js +4375 -0
  145. package/dist/chunk-WM7BRZ3H.js +240 -0
  146. package/dist/chunk-XM464NQG.js +55 -0
  147. package/dist/chunk-Y4XYVSAV.js +2676 -0
  148. package/dist/chunk-Y6MMPNON.js +480 -0
  149. package/dist/chunk-Z6HJLJ2W.js +194 -0
  150. package/dist/chunk-ZJAXRB7K.js +37 -0
  151. package/dist/chunk-ZL2M2MPP.js +783 -0
  152. package/dist/cohort-ONANZDY5.js +70 -0
  153. package/dist/condition-NUBF4YSS.js +327 -0
  154. package/dist/controls-URVB3DH2.js +34 -0
  155. package/dist/controls.config-3R2MMWW5.js +34 -0
  156. package/dist/correlation-HA5MNQAE.js +95 -0
  157. package/dist/customdata.inputui-KN3ZI56U.js +284 -0
  158. package/dist/dataDownload-3PRPXLBV.js +329 -0
  159. package/dist/databrowser.ui-URTFAANK.js +425 -0
  160. package/dist/dictionary-OWTFXDAL.js +113 -0
  161. package/dist/dnaMethylation-YWKAU5FO.js +33 -0
  162. package/dist/dnaMethylation.integration.spec-T4PTIFLE.js +198 -0
  163. package/dist/dofetch-BPXQH2BQ.js +48 -0
  164. package/dist/e2pca-VCUSAIWF.js +344 -0
  165. package/dist/ep-SWVNGKAP.js +1249 -0
  166. package/dist/expclust.gdc.spec-WQBILTT5.js +302 -0
  167. package/dist/facet-4VGVDLCU.js +519 -0
  168. package/dist/gb-NQNMLAN2.js +81 -0
  169. package/dist/geneExpClustering-LBEA4MFK.js +244 -0
  170. package/dist/geneExpression-T7VRPFMN.js +33 -0
  171. package/dist/geneExpression-YGQAXIXM.js +310 -0
  172. package/dist/geneExpression.unit.spec-O3GTSFC4.js +128 -0
  173. package/dist/geneORA-A4V7B4TT.js +273 -0
  174. package/dist/geneRanking-G556D44I.js +548 -0
  175. package/dist/geneVariant-CRINPRE5.js +289 -0
  176. package/dist/geneVariant-HGNB2M5Q.js +36 -0
  177. package/dist/geneVariant.integration.spec-FKESYYXK.js +503 -0
  178. package/dist/genefusion.ui-OS5DZLHT.js +303 -0
  179. package/dist/geneset-6IYLHN2T.js +203 -0
  180. package/dist/genomeBrowser.spec-CRW6HZEX.js +276 -0
  181. package/dist/grin2-2ZM5J6IY.js +949 -0
  182. package/dist/grin2-PUMRW6PS.js +70 -0
  183. package/dist/hierCluster-LA5AMP66.js +55 -0
  184. package/dist/hierCluster-OYOHFDEK.js +59 -0
  185. package/dist/hierCluster.config-UKVHTPJ6.js +36 -0
  186. package/dist/hierCluster.integration.spec-6AYYST7M.js +483 -0
  187. package/dist/hierCluster.interactivity-5ZIL2SIF.js +49 -0
  188. package/dist/hierCluster.renderers-IUNCW6A2.js +19 -0
  189. package/dist/imagePlot-C6B6VHSQ.js +156 -0
  190. package/dist/importPlot-WDWIM2RH.js +8 -0
  191. package/dist/isoformExpression-XKWQBR2M.js +35 -0
  192. package/dist/isoformExpression.unit.spec-CQFMZONS.js +237 -0
  193. package/dist/junction-COJEPWLG.js +36 -0
  194. package/dist/junction.customTerm-Y4WVXFK2.js +16 -0
  195. package/dist/junction.unit.spec-L4F7HUOF.js +182 -0
  196. package/dist/launch.adhoc-HNKW2HH5.js +37 -0
  197. package/dist/leftlabel.sample-KWSX7IOS.js +258 -0
  198. package/dist/lollipop-SL7TP25K.js +166 -0
  199. package/dist/maf-32AWSYHI.js +455 -0
  200. package/dist/maftimeline-OHNRK3Y2.js +587 -0
  201. package/dist/matrix-CHYGXHGL.js +54 -0
  202. package/dist/matrix-YUEPHOTN.js +59 -0
  203. package/dist/matrix.cells-4IHL6PQC.js +26 -0
  204. package/dist/matrix.config-DA3SLAQQ.js +37 -0
  205. package/dist/matrix.data-BDSR5NNL.js +23 -0
  206. package/dist/matrix.groups-VGTU2ZYC.js +26 -0
  207. package/dist/matrix.integration.spec-GVPJT2SJ.js +3160 -0
  208. package/dist/matrix.interactivity-4LBV57KT.js +37 -0
  209. package/dist/matrix.layout-5B253XQW.js +39 -0
  210. package/dist/matrix.legend-MMTKJ4T3.js +20 -0
  211. package/dist/matrix.renderers-GPEV6MD5.js +34 -0
  212. package/dist/matrix.serieses-X2L6OZJG.js +19 -0
  213. package/dist/matrix.sort-BP4Y73VY.js +26 -0
  214. package/dist/matrix.sort.unit.spec-YMKKHB3J.js +468 -0
  215. package/dist/matrix.sorterUi-IWVHJMYP.js +16 -0
  216. package/dist/matrix.sorterUi.unit.spec-SEUSXDE7.js +338 -0
  217. package/dist/matrix.unit.spec-G4CLHZ3J.js +150 -0
  218. package/dist/mavb-UIJINXMP.js +727 -0
  219. package/dist/mds.fimo-R325XCLM.js +513 -0
  220. package/dist/mds.samplescatterplot-TEDCX5M5.js +1545 -0
  221. package/dist/mds.survivalplot-6MA34FMF.js +477 -0
  222. package/dist/multivalue-MRRF7WUG.js +83 -0
  223. package/dist/numericDictTermCluster-LRY554HK.js +63 -0
  224. package/dist/oncomatrix-5YESGMC5.js +290 -0
  225. package/dist/oncomatrix.spec-QPSKJVKL.js +443 -0
  226. package/dist/plot.2dvaf-2CYHDA4C.js +372 -0
  227. package/dist/plot.app-PHQ22GA2.js +36 -0
  228. package/dist/plot.barplot-IZJMM7HO.js +97 -0
  229. package/dist/plot.boxplot-OXDWGXVO.js +146 -0
  230. package/dist/plot.brainImaging-TZJINY47.js +51 -0
  231. package/dist/plot.disco-G2E5HCR5.js +99 -0
  232. package/dist/plot.ssgq-CBBSDYNO.js +134 -0
  233. package/dist/plot.vaf2cov-TG4ZWBOY.js +253 -0
  234. package/dist/polar2-KKLKRETZ.js +232 -0
  235. package/dist/profileForms-MA743GS4.js +941 -0
  236. package/dist/profilePlot-K75DW43W.js +49 -0
  237. package/dist/proteinView-FKWQBBX4.js +1357 -0
  238. package/dist/proteomeCohortCompare-VZVP4WOH.js +912 -0
  239. package/dist/pseudbulk.unit.spec-Y3KMRFRQ.js +86 -0
  240. package/dist/pseudobulk-P6FX64U3.js +35 -0
  241. package/dist/qualitative-CRSGQRFR.js +38 -0
  242. package/dist/radar2-7JXNJZ2E.js +327 -0
  243. package/dist/radarFacility2-DJ2V5JNW.js +335 -0
  244. package/dist/rememberedGvQ.unit.spec-PJTXLLVI.js +211 -0
  245. package/dist/render-VUBQKSGZ.js +33 -0
  246. package/dist/report-M34KCQN2.js +217 -0
  247. package/dist/sampleView-NSMHY3Q6.js +43 -0
  248. package/dist/samplelst-NPBKSYH5.js +106 -0
  249. package/dist/samplematrix-HEZ5NZ2X.js +2193 -0
  250. package/dist/sc-MKALGDFA.js +81 -0
  251. package/dist/scatter-2EEH73PX.js +925 -0
  252. package/dist/scatter-R74OPQV3.js +88 -0
  253. package/dist/selectGenomeWithTklst-PPJZPIC2.js +129 -0
  254. package/dist/singleCellCellType-V52WFBYC.js +33 -0
  255. package/dist/singleCellCellType.unit.spec-GYPZQ55V.js +154 -0
  256. package/dist/singleCellGeneExpression-NCGMA47O.js +33 -0
  257. package/dist/singleCellGeneExpression.unit.spec-YXOFQZB4.js +148 -0
  258. package/dist/singleCellNumericValue-IKI726PF.js +33 -0
  259. package/dist/singleCellNumericValue.unit.spec-L6QXS5LW.js +416 -0
  260. package/dist/singleCellPlot-64JKBI5G.js +48 -0
  261. package/dist/singlecell-5YENNNVD.js +81 -0
  262. package/dist/singlecell-XALP7US6.js +1566 -0
  263. package/dist/snp-N7KCIU7N.js +33 -0
  264. package/dist/snp.unit.spec-4S6OJT5C.js +171 -0
  265. package/dist/snplocus-RAN4UCKP.js +203 -0
  266. package/dist/spliceevent.a53ss.diagram-2EDVZHU5.js +146 -0
  267. package/dist/spliceevent.exonskip.diagram-GHNNFV5D.js +278 -0
  268. package/dist/spliceevent.noeventdiagram-KJGYK62N.js +455 -0
  269. package/dist/ssGSEA-HI3XLE5G.js +33 -0
  270. package/dist/ssGSEA.unit.spec-XKYEIVAO.js +83 -0
  271. package/dist/stattable-EYMMFP45.js +117 -0
  272. package/dist/studyCatalog-56TO46A5.js +414 -0
  273. package/dist/summarizeCnvGeneexp-F7MMS55Q.js +158 -0
  274. package/dist/summarizeGeneexpSurvival-ZUE5FNZG.js +105 -0
  275. package/dist/summarizeMutationCnv-GABFG5M7.js +159 -0
  276. package/dist/summarizeMutationDiagnosis-GSQN76UC.js +35 -0
  277. package/dist/summarizeMutationSurvival-DADX2MAN.js +99 -0
  278. package/dist/summary-TBHTSEMG.js +44 -0
  279. package/dist/summary.integration.spec-EWYBQXS3.js +409 -0
  280. package/dist/summaryInput-6C7ZY5Z5.js +242 -0
  281. package/dist/sunburst-WW4LZ5AT.js +278 -0
  282. package/dist/survival-L2IAJZXL.js +1249 -0
  283. package/dist/survival-LAIUKCZC.js +53 -0
  284. package/dist/survival.integration.spec-PTFUUTBJ.js +613 -0
  285. package/dist/svgraph-J5DEKHSP.js +1382 -0
  286. package/dist/svmr-YLS3OPQS.js +3837 -0
  287. package/dist/table-T73D4MMV.js +197 -0
  288. package/dist/termCollection-RR3OVXRS.js +252 -0
  289. package/dist/termCollection-VNEW4PUC.js +33 -0
  290. package/dist/termCollection.unit.spec-3L2CSNIT.js +299 -0
  291. package/dist/termCollectionFractionSelection-PKOCR4YR.js +42 -0
  292. package/dist/termCollectionFractionSelection.unit.spec-U5R2XDAA.js +188 -0
  293. package/dist/tk-CF4KEDKD.js +41 -0
  294. package/dist/tk-PZNFQ4NU.js +1121 -0
  295. package/dist/tp.ui-CC3HZGU4.js +1454 -0
  296. package/dist/tvs.dt-DBW7TIWI.js +34 -0
  297. package/dist/tvs.dtcnv.categorical-6NECYCSJ.js +35 -0
  298. package/dist/tvs.dtcnv.continuous-2S5Q7JXF.js +67 -0
  299. package/dist/tvs.dtfusion-UFAZO2TW.js +35 -0
  300. package/dist/tvs.dtitd-RMXA5UUR.js +35 -0
  301. package/dist/tvs.dtsnvindel-MKZMTANY.js +35 -0
  302. package/dist/tvs.dtsv-ZFWT2UIA.js +35 -0
  303. package/dist/tvs.samplelst-PKMMBZNN.js +98 -0
  304. package/dist/tvs.termCollection-H2BMI2R7.js +122 -0
  305. package/dist/vocabulary-QI76DY2B.js +36 -0
  306. package/dist/wsi.direct-CHL5SXDS.js +8343 -0
  307. package/package.json +2 -2
  308. package/dist/2dmaf-3FDGCUTK.js +0 -1367
  309. package/dist/AggMatrixInput-QA2FHMSY.js +0 -406
  310. package/dist/AggregateMatrix-XGVKDN2K.js +0 -41
  311. package/dist/AppHeader-NVLHCOVU.js +0 -830
  312. package/dist/BoxPlot-IVO7VBQZ.js +0 -1208
  313. package/dist/CorrelationVolcano-2XD5OH2S.js +0 -617
  314. package/dist/Cuminc-ECQ56PKO.js +0 -1220
  315. package/dist/DE-KWA2K24U.js +0 -89
  316. package/dist/DEinput-ZP6CYIRN.js +0 -501
  317. package/dist/DM-ME7CCC4E.js +0 -90
  318. package/dist/DifferentialAnalysis-6SIKR566.js +0 -239
  319. package/dist/Disco-LVRT7T3B.js +0 -3389
  320. package/dist/Disco.UI-GT64ZEK4.js +0 -243
  321. package/dist/DmrPlot-ZZYKJ4UH.js +0 -362
  322. package/dist/GB-WR6SENAZ.js +0 -1392
  323. package/dist/GSEA-U2GFOHWT.js +0 -875
  324. package/dist/GeneExpInput-CQSORTKI.js +0 -42
  325. package/dist/Geomap-CGJ7EIMD.js +0 -84
  326. package/dist/HicApp-DS3HC2G5.js +0 -2245
  327. package/dist/IDCViewer-6KWSZWZ7.js +0 -10812
  328. package/dist/NumBinaryEditor-BQVR2RDS.js +0 -279
  329. package/dist/NumBinaryEditor.unit.spec-FAOFWPDH.js +0 -312
  330. package/dist/NumContEditor-6T6XFLAM.js +0 -105
  331. package/dist/NumContEditor.unit.spec-GTBA5F4D.js +0 -164
  332. package/dist/NumCustomBinEditor-Q2GJOFOH.js +0 -33
  333. package/dist/NumCustomBinEditor.unit.spec-TSJE3OVN.js +0 -397
  334. package/dist/NumDiscreteEditor-QFKPIRDW.js +0 -170
  335. package/dist/NumDiscreteEditor.unit.spec-VKDRO52H.js +0 -233
  336. package/dist/NumRegularBinEditor-SLFPSTA3.js +0 -33
  337. package/dist/NumRegularBinEditor.unit.spec-WROEDSWQ.js +0 -278
  338. package/dist/NumSplineEditor-AEXNF6E4.js +0 -210
  339. package/dist/NumSplineEditor.unit.spec-UOESCG7A.js +0 -224
  340. package/dist/NumericDensity-KPJ6C7N3.js +0 -33
  341. package/dist/NumericDensity.unit.spec-HM5IAPQT.js +0 -418
  342. package/dist/NumericHandler-S3HPYHOJ.js +0 -34
  343. package/dist/NumericHandler.unit.spec-B4CY2GR6.js +0 -214
  344. package/dist/ProteomeInput-AC5TRXHE.js +0 -388
  345. package/dist/Regression-MHGQ2ECB.js +0 -1416
  346. package/dist/RunChart2-6VSXLBNE.js +0 -749
  347. package/dist/SC-KPIQR5JQ.js +0 -1348
  348. package/dist/Violin-6BRIIZAY.js +0 -1064
  349. package/dist/Volcano-TNNAVPVQ.js +0 -2456
  350. package/dist/Wsi-JRAK47YP.js +0 -629
  351. package/dist/adSandbox-HZROPAPC.js +0 -33
  352. package/dist/animatedBubbleChart-C57NY3PX.js +0 -547
  353. package/dist/app-HU4F4WBL.js +0 -32
  354. package/dist/app-OS2T3Q6X.js +0 -42
  355. package/dist/bam-XBYHZH7B.js +0 -876
  356. package/dist/barchart-7MOHGOPW.js +0 -42
  357. package/dist/barchart2-NOWNROMN.js +0 -309
  358. package/dist/block-PRB7FXIC.js +0 -6250
  359. package/dist/block.init-EQJ42A2H.js +0 -33
  360. package/dist/block.mds.expressionrank-W6GIHAAL.js +0 -354
  361. package/dist/block.mds.geneboxplot-GBP5N7AU.js +0 -823
  362. package/dist/block.mds.junction-TUIXESU2.js +0 -1539
  363. package/dist/block.mds.svcnv-YOUIXG4A.js +0 -6796
  364. package/dist/block.svg-XAQJBCOC.js +0 -159
  365. package/dist/block.tk.aicheck-MRR74ULN.js +0 -278
  366. package/dist/block.tk.ase-ZB5W537R.js +0 -360
  367. package/dist/block.tk.bam-66562WN7.js +0 -1901
  368. package/dist/block.tk.bedgraphdot-CGBLLLI7.js +0 -379
  369. package/dist/block.tk.bigwig.ui-FXE6KXRG.js +0 -206
  370. package/dist/block.tk.hicstraw-RZXW5CWM.js +0 -818
  371. package/dist/block.tk.junction-FSGFU7B3.js +0 -2358
  372. package/dist/block.tk.junction.textmatrixui-VR4ZIEUP.js +0 -194
  373. package/dist/block.tk.ld-QE54JIGV.js +0 -94
  374. package/dist/block.tk.menu-GFGPEMXQ.js +0 -1054
  375. package/dist/block.tk.pgv-IPX2D3GA.js +0 -938
  376. package/dist/brainImaging-J4HK4JON.js +0 -555
  377. package/dist/brainRegions-RH4EXEQ7.js +0 -217
  378. package/dist/bubbleHeatmap-R2CNWOAJ.js +0 -378
  379. package/dist/cellTypeBubbleHeatmap-KJSNP4A3.js +0 -278
  380. package/dist/chunk-2WKGE7BO.js +0 -54
  381. package/dist/chunk-2Z2TFFLP.js +0 -299
  382. package/dist/chunk-3447YXVI.js +0 -129
  383. package/dist/chunk-35DMRAGG.js +0 -302
  384. package/dist/chunk-3BBUXNES.js +0 -480
  385. package/dist/chunk-3KH5JUZV.js +0 -1278
  386. package/dist/chunk-3SBHDIJU.js +0 -468
  387. package/dist/chunk-3YNRU4SC.js +0 -98
  388. package/dist/chunk-4S7TWVOY.js +0 -397
  389. package/dist/chunk-4VZ4HR3U.js +0 -134
  390. package/dist/chunk-57Z4VYLM.js +0 -1616
  391. package/dist/chunk-57Z4VYLM.js.map +0 -7
  392. package/dist/chunk-5RFLLJRG.js +0 -2327
  393. package/dist/chunk-5X2MW4CV.js +0 -102
  394. package/dist/chunk-6TCULFEF.js +0 -2784
  395. package/dist/chunk-753GDKSC.js +0 -562
  396. package/dist/chunk-7AOA5WZY.js +0 -274
  397. package/dist/chunk-7HPICVA4.js +0 -178
  398. package/dist/chunk-7PBHM4JU.js +0 -14
  399. package/dist/chunk-B2FSMLYK.js +0 -4375
  400. package/dist/chunk-B5BLNQ2E.js +0 -70
  401. package/dist/chunk-BR76YIDV.js +0 -240
  402. package/dist/chunk-BS6IUMA6.js +0 -1339
  403. package/dist/chunk-BSWVDH75.js +0 -26
  404. package/dist/chunk-BUX5YSDF.js +0 -56
  405. package/dist/chunk-C2KMMY53.js +0 -339
  406. package/dist/chunk-CD2WD7ZG.js +0 -56
  407. package/dist/chunk-CUHJN6CC.js +0 -217
  408. package/dist/chunk-DCHHIXIP.js +0 -103
  409. package/dist/chunk-DD3DWHUY.js +0 -119
  410. package/dist/chunk-FDBT4PQ6.js +0 -182
  411. package/dist/chunk-FMFEQPMB.js +0 -783
  412. package/dist/chunk-FVADQZLY.js +0 -2676
  413. package/dist/chunk-G4A3ZDDS.js +0 -446
  414. package/dist/chunk-G6ZIO5T3.js +0 -37
  415. package/dist/chunk-GDJUSLDV.js +0 -1812
  416. package/dist/chunk-GPJLIBNO.js +0 -102
  417. package/dist/chunk-H6GPQPSM.js +0 -203
  418. package/dist/chunk-HFEFFFPL.js +0 -1233
  419. package/dist/chunk-HH5JKOE6.js +0 -339
  420. package/dist/chunk-HUGVRGQO.js +0 -176
  421. package/dist/chunk-HYOCZPKO.js +0 -281
  422. package/dist/chunk-I6P4LZP3.js +0 -194
  423. package/dist/chunk-IP2PLKC3.js +0 -158
  424. package/dist/chunk-JPJ2DKP5.js +0 -2902
  425. package/dist/chunk-JQ3JE2F6.js +0 -141
  426. package/dist/chunk-K2ITA56I.js +0 -80
  427. package/dist/chunk-K5P3JV6N.js +0 -49
  428. package/dist/chunk-KRQC5AOW.js +0 -626
  429. package/dist/chunk-LDDN2BHX.js +0 -6360
  430. package/dist/chunk-LOHACXSB.js +0 -255
  431. package/dist/chunk-MIG3QAYD.js +0 -1988
  432. package/dist/chunk-N5CSNFDP.js +0 -272
  433. package/dist/chunk-NZBCTASL.js +0 -54
  434. package/dist/chunk-O3EJBFK7.js +0 -5217
  435. package/dist/chunk-OB3S6QYD.js +0 -243
  436. package/dist/chunk-OLV3Q6TN.js +0 -55
  437. package/dist/chunk-OSYSJHAA.js +0 -170
  438. package/dist/chunk-PRPQ654B.js +0 -263
  439. package/dist/chunk-QI6X4V43.js +0 -25009
  440. package/dist/chunk-QI6X4V43.js.map +0 -7
  441. package/dist/chunk-QZXUHBUV.js +0 -550
  442. package/dist/chunk-RU2UHH7M.js +0 -424
  443. package/dist/chunk-S2PNRIOW.js +0 -123
  444. package/dist/chunk-SKF6HQ74.js +0 -31
  445. package/dist/chunk-TCHFJHHC.js +0 -237
  446. package/dist/chunk-TR2BNELL.js +0 -518
  447. package/dist/chunk-TZZTJWLD.js +0 -34
  448. package/dist/chunk-UH5BHS42.js +0 -692
  449. package/dist/chunk-VRY727VE.js +0 -276
  450. package/dist/chunk-W7A4QXZ7.js +0 -38
  451. package/dist/chunk-WKCVZIN7.js +0 -59
  452. package/dist/chunk-XIJC7RNK.js +0 -217
  453. package/dist/chunk-XVOHS4CK.js +0 -54
  454. package/dist/chunk-Y3ABEAKV.js +0 -379
  455. package/dist/chunk-YB2A2CWR.js +0 -294
  456. package/dist/chunk-YU7CVG4B.js +0 -2258
  457. package/dist/chunk-ZKZHYCO3.js +0 -382
  458. package/dist/cohort-J3JNIMCT.js +0 -70
  459. package/dist/condition-A6VAD4OS.js +0 -327
  460. package/dist/controls-2R2OQAX2.js +0 -34
  461. package/dist/controls.config-UPE6TAHK.js +0 -34
  462. package/dist/correlation-Q6HYOUOX.js +0 -95
  463. package/dist/customdata.inputui-KQJKSQNI.js +0 -284
  464. package/dist/dataDownload-PYQX2BWN.js +0 -329
  465. package/dist/databrowser.ui-LPFKGVW3.js +0 -425
  466. package/dist/dictionary-GYN7OXWQ.js +0 -113
  467. package/dist/dnaMethylation-TSRHGNNY.js +0 -33
  468. package/dist/dnaMethylation.integration.spec-3YYSFVKK.js +0 -198
  469. package/dist/dofetch-4YRJUWLJ.js +0 -48
  470. package/dist/e2pca-G4AVRHQC.js +0 -344
  471. package/dist/ep-MHT3CLGK.js +0 -1249
  472. package/dist/expclust.gdc.spec-2TWLDD2S.js +0 -302
  473. package/dist/facet-4O65ZSBQ.js +0 -519
  474. package/dist/gb-WLOGQSEU.js +0 -81
  475. package/dist/geneExpClustering-LOLLER5C.js +0 -244
  476. package/dist/geneExpression-NP2N4CRU.js +0 -310
  477. package/dist/geneExpression-RWE7PBBD.js +0 -33
  478. package/dist/geneExpression.unit.spec-MBE6YVKY.js +0 -128
  479. package/dist/geneORA-ZWZCCBL7.js +0 -273
  480. package/dist/geneRanking-UZXH5SLT.js +0 -548
  481. package/dist/geneVariant-MULXYJ7M.js +0 -36
  482. package/dist/geneVariant-ZPINPLRP.js +0 -289
  483. package/dist/geneVariant.integration.spec-6DNKP22T.js +0 -503
  484. package/dist/genefusion.ui-S4BPNRIO.js +0 -303
  485. package/dist/geneset-LZNALH2H.js +0 -203
  486. package/dist/genomeBrowser.spec-JOIKBWVC.js +0 -276
  487. package/dist/grin2-GFZ5REPY.js +0 -949
  488. package/dist/grin2-JPR6LCXT.js +0 -70
  489. package/dist/hierCluster-DCESQECE.js +0 -55
  490. package/dist/hierCluster-M6R4CH22.js +0 -59
  491. package/dist/hierCluster.config-DBQYJXML.js +0 -36
  492. package/dist/hierCluster.integration.spec-DPXTME5W.js +0 -483
  493. package/dist/hierCluster.interactivity-EKKKYVEP.js +0 -49
  494. package/dist/hierCluster.renderers-DUDSHKDT.js +0 -19
  495. package/dist/imagePlot-XXSCMNUV.js +0 -156
  496. package/dist/importPlot-LKMMP7ZV.js +0 -8
  497. package/dist/isoformExpression-A634VVY3.js +0 -35
  498. package/dist/isoformExpression.unit.spec-2J4VQH43.js +0 -237
  499. package/dist/junction-22DCADQW.js +0 -36
  500. package/dist/junction.customTerm-VNQKP5I4.js +0 -16
  501. package/dist/junction.unit.spec-NQDRD66O.js +0 -182
  502. package/dist/launch.adhoc-NAHAYONX.js +0 -37
  503. package/dist/leftlabel.sample-CRMQSNCJ.js +0 -258
  504. package/dist/lollipop-XLPUIZBA.js +0 -166
  505. package/dist/maf-LPXQMGJC.js +0 -455
  506. package/dist/maftimeline-X2YPHLLO.js +0 -587
  507. package/dist/matrix-U7PGR4MD.js +0 -54
  508. package/dist/matrix-UAU7QUP2.js +0 -59
  509. package/dist/matrix.cells-QKWO5EP4.js +0 -26
  510. package/dist/matrix.config-HZ3TORDS.js +0 -37
  511. package/dist/matrix.data-D77IGADO.js +0 -23
  512. package/dist/matrix.groups-XW2G5BJH.js +0 -26
  513. package/dist/matrix.integration.spec-7QLCJO26.js +0 -3160
  514. package/dist/matrix.interactivity-OIKLY2O6.js +0 -37
  515. package/dist/matrix.layout-ICBZ5PCU.js +0 -39
  516. package/dist/matrix.legend-C3MQRAZJ.js +0 -20
  517. package/dist/matrix.renderers-PN56PKD3.js +0 -34
  518. package/dist/matrix.serieses-SNMIQFKB.js +0 -19
  519. package/dist/matrix.sort-WHVUSUJZ.js +0 -26
  520. package/dist/matrix.sort.unit.spec-IQOMDVVS.js +0 -468
  521. package/dist/matrix.sorterUi-UKANNCZM.js +0 -16
  522. package/dist/matrix.sorterUi.unit.spec-JCN62VCG.js +0 -338
  523. package/dist/matrix.unit.spec-JASP2ZH6.js +0 -150
  524. package/dist/mavb-KHRJRSUD.js +0 -727
  525. package/dist/mds.fimo-LOR3DSLQ.js +0 -513
  526. package/dist/mds.samplescatterplot-W3TCPYHS.js +0 -1545
  527. package/dist/mds.survivalplot-EYAA5IO3.js +0 -477
  528. package/dist/multivalue-GGM5DFPD.js +0 -83
  529. package/dist/numericDictTermCluster-MJK6SIWE.js +0 -63
  530. package/dist/oncomatrix-MVLDAB6I.js +0 -290
  531. package/dist/oncomatrix.spec-43PZ4CLH.js +0 -443
  532. package/dist/plot.2dvaf-4H3YMAIV.js +0 -372
  533. package/dist/plot.app-OZGOECPK.js +0 -36
  534. package/dist/plot.barplot-OQKZAU3N.js +0 -97
  535. package/dist/plot.boxplot-4O4VNRMV.js +0 -146
  536. package/dist/plot.brainImaging-6I4HHUMD.js +0 -51
  537. package/dist/plot.disco-BOWNCFJV.js +0 -99
  538. package/dist/plot.ssgq-6STRLDEG.js +0 -134
  539. package/dist/plot.vaf2cov-75EZA7PJ.js +0 -253
  540. package/dist/polar2-QQ2ZYQ3I.js +0 -232
  541. package/dist/profileForms-WU7UNK7Y.js +0 -941
  542. package/dist/profilePlot-KW7UITCT.js +0 -49
  543. package/dist/proteinView-ET75MKLU.js +0 -1357
  544. package/dist/proteomeCohortCompare-SDX5D26O.js +0 -912
  545. package/dist/pseudbulk.unit.spec-T3B2T5FK.js +0 -86
  546. package/dist/pseudobulk-4O6GK2TZ.js +0 -35
  547. package/dist/qualitative-FUJ6JHPZ.js +0 -38
  548. package/dist/radar2-G75NIN2N.js +0 -327
  549. package/dist/radarFacility2-OOAUSL6F.js +0 -335
  550. package/dist/rememberedGvQ.unit.spec-B6RQM5LQ.js +0 -211
  551. package/dist/render-JMAJCJFT.js +0 -33
  552. package/dist/report-UKB7676O.js +0 -217
  553. package/dist/sampleView-JGWU2E5H.js +0 -43
  554. package/dist/samplelst-ZB23PILZ.js +0 -106
  555. package/dist/samplematrix-CQAB5PVO.js +0 -2193
  556. package/dist/sc-JOIUUG4I.js +0 -81
  557. package/dist/scatter-DCX72P3N.js +0 -88
  558. package/dist/scatter-JXBGEKLF.js +0 -925
  559. package/dist/selectGenomeWithTklst-EZTHPCBB.js +0 -129
  560. package/dist/singleCellCellType-BOQTDUZA.js +0 -33
  561. package/dist/singleCellCellType.unit.spec-3HUF7VWW.js +0 -154
  562. package/dist/singleCellGeneExpression-UBTHLFRN.js +0 -33
  563. package/dist/singleCellGeneExpression.unit.spec-YM6EQB3E.js +0 -148
  564. package/dist/singleCellNumericValue-53T6WOHJ.js +0 -33
  565. package/dist/singleCellNumericValue.unit.spec-SYSMD5IW.js +0 -416
  566. package/dist/singleCellPlot-3V47EUB4.js +0 -48
  567. package/dist/singlecell-AFGFONXY.js +0 -81
  568. package/dist/singlecell-VZI3LEUT.js +0 -1566
  569. package/dist/snp-IPIYL7OY.js +0 -33
  570. package/dist/snp.unit.spec-OC5JHCXR.js +0 -171
  571. package/dist/snplocus-DSGUSGUP.js +0 -203
  572. package/dist/spliceevent.a53ss.diagram-RNAJHS4P.js +0 -146
  573. package/dist/spliceevent.exonskip.diagram-YWRATK46.js +0 -278
  574. package/dist/spliceevent.noeventdiagram-6ZJRJ4QZ.js +0 -455
  575. package/dist/ssGSEA-IWCC6JDL.js +0 -33
  576. package/dist/ssGSEA.unit.spec-3TKDENWO.js +0 -83
  577. package/dist/stattable-EXOWMETP.js +0 -117
  578. package/dist/studyCatalog-OAGHQXKY.js +0 -414
  579. package/dist/summarizeCnvGeneexp-K6XO5YEP.js +0 -158
  580. package/dist/summarizeGeneexpSurvival-WTAGCCU4.js +0 -105
  581. package/dist/summarizeMutationCnv-QKIDS3LI.js +0 -159
  582. package/dist/summarizeMutationDiagnosis-ACFWADSQ.js +0 -35
  583. package/dist/summarizeMutationSurvival-XPFPN4N5.js +0 -99
  584. package/dist/summary-VCU2NTIZ.js +0 -44
  585. package/dist/summary.integration.spec-2DE653PH.js +0 -409
  586. package/dist/summaryInput-GO75OPLA.js +0 -242
  587. package/dist/sunburst-BSCFRYSV.js +0 -278
  588. package/dist/survival-BEP7JNML.js +0 -1249
  589. package/dist/survival-XUO2D6CX.js +0 -53
  590. package/dist/survival.integration.spec-EO5KAFDQ.js +0 -613
  591. package/dist/svgraph-YGXOB3QY.js +0 -1382
  592. package/dist/svmr-MATMMI4E.js +0 -3837
  593. package/dist/table-DFSX7XYJ.js +0 -197
  594. package/dist/termCollection-GKPC4K2O.js +0 -252
  595. package/dist/termCollection-ZUJFB7YB.js +0 -33
  596. package/dist/termCollection.unit.spec-YE7IKC6S.js +0 -299
  597. package/dist/termCollectionFractionSelection-DLWXUEEN.js +0 -42
  598. package/dist/termCollectionFractionSelection.unit.spec-N2LNHIWC.js +0 -188
  599. package/dist/tk-PHTWQHVV.js +0 -41
  600. package/dist/tk-RNUMIS5P.js +0 -1121
  601. package/dist/tp.ui-A52OBFJD.js +0 -1454
  602. package/dist/tvs.dt-SQSP3UXH.js +0 -34
  603. package/dist/tvs.dtcnv.categorical-3IWQMUEM.js +0 -35
  604. package/dist/tvs.dtcnv.continuous-ZD5WM32O.js +0 -67
  605. package/dist/tvs.dtfusion-G47Z7NP3.js +0 -35
  606. package/dist/tvs.dtitd-57PSTVRM.js +0 -35
  607. package/dist/tvs.dtsnvindel-CS3ZVFWN.js +0 -35
  608. package/dist/tvs.dtsv-LNWDVFCR.js +0 -35
  609. package/dist/tvs.samplelst-EMZOR4SY.js +0 -98
  610. package/dist/tvs.termCollection-RX5ASV3N.js +0 -122
  611. package/dist/vocabulary-JVAACQPU.js +0 -36
  612. package/dist/wsi.direct-J4SNIUUW.js +0 -8343
  613. /package/dist/{2dmaf-3FDGCUTK.js.map → 2dmaf-AC7Y7AXT.js.map} +0 -0
  614. /package/dist/{AggMatrixInput-QA2FHMSY.js.map → AggMatrixInput-FJU2LFFO.js.map} +0 -0
  615. /package/dist/{AggregateMatrix-XGVKDN2K.js.map → AggregateMatrix-RJ2VERUN.js.map} +0 -0
  616. /package/dist/{AppHeader-NVLHCOVU.js.map → AppHeader-NRHKFUAZ.js.map} +0 -0
  617. /package/dist/{BoxPlot-IVO7VBQZ.js.map → BoxPlot-MIY77WRA.js.map} +0 -0
  618. /package/dist/{CorrelationVolcano-2XD5OH2S.js.map → CorrelationVolcano-TD4WNLVB.js.map} +0 -0
  619. /package/dist/{Cuminc-ECQ56PKO.js.map → Cuminc-JC2RB2JJ.js.map} +0 -0
  620. /package/dist/{DE-KWA2K24U.js.map → DE-B7OOKFKF.js.map} +0 -0
  621. /package/dist/{DEinput-ZP6CYIRN.js.map → DEinput-NJYGTYXI.js.map} +0 -0
  622. /package/dist/{DM-ME7CCC4E.js.map → DM-MSAEMNJD.js.map} +0 -0
  623. /package/dist/{DifferentialAnalysis-6SIKR566.js.map → DifferentialAnalysis-K2OYA3GC.js.map} +0 -0
  624. /package/dist/{Disco-LVRT7T3B.js.map → Disco-3P2JTHPH.js.map} +0 -0
  625. /package/dist/{Disco.UI-GT64ZEK4.js.map → Disco.UI-TGJKDVPZ.js.map} +0 -0
  626. /package/dist/{DmrPlot-ZZYKJ4UH.js.map → DmrPlot-COQ7G42N.js.map} +0 -0
  627. /package/dist/{GB-WR6SENAZ.js.map → GB-TIAFRKC6.js.map} +0 -0
  628. /package/dist/{GSEA-U2GFOHWT.js.map → GSEA-SORUSH2I.js.map} +0 -0
  629. /package/dist/{GeneExpInput-CQSORTKI.js.map → GeneExpInput-IJRT3ET6.js.map} +0 -0
  630. /package/dist/{Geomap-CGJ7EIMD.js.map → Geomap-4JSVYPKA.js.map} +0 -0
  631. /package/dist/{HicApp-DS3HC2G5.js.map → HicApp-SFHELIGY.js.map} +0 -0
  632. /package/dist/{IDCViewer-6KWSZWZ7.js.map → IDCViewer-2WDE35RN.js.map} +0 -0
  633. /package/dist/{NumBinaryEditor-BQVR2RDS.js.map → NumBinaryEditor-3AJMTAM7.js.map} +0 -0
  634. /package/dist/{NumBinaryEditor.unit.spec-FAOFWPDH.js.map → NumBinaryEditor.unit.spec-YQAXVSJJ.js.map} +0 -0
  635. /package/dist/{NumContEditor-6T6XFLAM.js.map → NumContEditor-GNRVX2GF.js.map} +0 -0
  636. /package/dist/{NumContEditor.unit.spec-GTBA5F4D.js.map → NumContEditor.unit.spec-3MKW3BNU.js.map} +0 -0
  637. /package/dist/{NumCustomBinEditor-Q2GJOFOH.js.map → NumCustomBinEditor-XGEB7IZ5.js.map} +0 -0
  638. /package/dist/{NumCustomBinEditor.unit.spec-TSJE3OVN.js.map → NumCustomBinEditor.unit.spec-3LBRRI7C.js.map} +0 -0
  639. /package/dist/{NumDiscreteEditor-QFKPIRDW.js.map → NumDiscreteEditor-RASHJSS7.js.map} +0 -0
  640. /package/dist/{NumDiscreteEditor.unit.spec-VKDRO52H.js.map → NumDiscreteEditor.unit.spec-P5CI5OCT.js.map} +0 -0
  641. /package/dist/{NumRegularBinEditor-SLFPSTA3.js.map → NumRegularBinEditor-ELSWMUJL.js.map} +0 -0
  642. /package/dist/{NumRegularBinEditor.unit.spec-WROEDSWQ.js.map → NumRegularBinEditor.unit.spec-T7EUBNSW.js.map} +0 -0
  643. /package/dist/{NumSplineEditor-AEXNF6E4.js.map → NumSplineEditor-RTNZTUQ5.js.map} +0 -0
  644. /package/dist/{NumSplineEditor.unit.spec-UOESCG7A.js.map → NumSplineEditor.unit.spec-POPB72U2.js.map} +0 -0
  645. /package/dist/{NumericDensity-KPJ6C7N3.js.map → NumericDensity-ASPLZQTW.js.map} +0 -0
  646. /package/dist/{NumericDensity.unit.spec-HM5IAPQT.js.map → NumericDensity.unit.spec-WP7OAVND.js.map} +0 -0
  647. /package/dist/{NumericHandler-S3HPYHOJ.js.map → NumericHandler-X6MQSXNB.js.map} +0 -0
  648. /package/dist/{NumericHandler.unit.spec-B4CY2GR6.js.map → NumericHandler.unit.spec-ET5ZEHDL.js.map} +0 -0
  649. /package/dist/{ProteomeInput-AC5TRXHE.js.map → ProteomeInput-CE2QSGHY.js.map} +0 -0
  650. /package/dist/{Regression-MHGQ2ECB.js.map → Regression-TJJGAFZD.js.map} +0 -0
  651. /package/dist/{RunChart2-6VSXLBNE.js.map → RunChart2-VSLNFIXS.js.map} +0 -0
  652. /package/dist/{SC-KPIQR5JQ.js.map → SC-AJWKVCOK.js.map} +0 -0
  653. /package/dist/{Violin-6BRIIZAY.js.map → Violin-PEMCXVES.js.map} +0 -0
  654. /package/dist/{Volcano-TNNAVPVQ.js.map → Volcano-OXSIAQ2Z.js.map} +0 -0
  655. /package/dist/{Wsi-JRAK47YP.js.map → Wsi-AG2DF27X.js.map} +0 -0
  656. /package/dist/{adSandbox-HZROPAPC.js.map → adSandbox-2PY3V5QD.js.map} +0 -0
  657. /package/dist/{animatedBubbleChart-C57NY3PX.js.map → animatedBubbleChart-IN5UVZAD.js.map} +0 -0
  658. /package/dist/{app-HU4F4WBL.js.map → app-3BNMJWHT.js.map} +0 -0
  659. /package/dist/{app-OS2T3Q6X.js.map → app-4J3OJFJN.js.map} +0 -0
  660. /package/dist/{bam-XBYHZH7B.js.map → bam-3GIL7RAN.js.map} +0 -0
  661. /package/dist/{barchart-7MOHGOPW.js.map → barchart-GEVUNJ3P.js.map} +0 -0
  662. /package/dist/{barchart2-NOWNROMN.js.map → barchart2-FN3EICRE.js.map} +0 -0
  663. /package/dist/{block-PRB7FXIC.js.map → block-KHDTWYNM.js.map} +0 -0
  664. /package/dist/{block.init-EQJ42A2H.js.map → block.init-ZCL56N7C.js.map} +0 -0
  665. /package/dist/{block.mds.expressionrank-W6GIHAAL.js.map → block.mds.expressionrank-FOELK7HF.js.map} +0 -0
  666. /package/dist/{block.mds.geneboxplot-GBP5N7AU.js.map → block.mds.geneboxplot-XG3HH5SQ.js.map} +0 -0
  667. /package/dist/{block.mds.junction-TUIXESU2.js.map → block.mds.junction-IPTVBAVA.js.map} +0 -0
  668. /package/dist/{block.mds.svcnv-YOUIXG4A.js.map → block.mds.svcnv-XPSRDCKO.js.map} +0 -0
  669. /package/dist/{block.svg-XAQJBCOC.js.map → block.svg-KCOUBG3K.js.map} +0 -0
  670. /package/dist/{block.tk.aicheck-MRR74ULN.js.map → block.tk.aicheck-PXTLZ4NL.js.map} +0 -0
  671. /package/dist/{block.tk.ase-ZB5W537R.js.map → block.tk.ase-FE4O3CXJ.js.map} +0 -0
  672. /package/dist/{block.tk.bam-66562WN7.js.map → block.tk.bam-LKSL2QK7.js.map} +0 -0
  673. /package/dist/{block.tk.bedgraphdot-CGBLLLI7.js.map → block.tk.bedgraphdot-UDXTZQTP.js.map} +0 -0
  674. /package/dist/{block.tk.bigwig.ui-FXE6KXRG.js.map → block.tk.bigwig.ui-JQX4DZY3.js.map} +0 -0
  675. /package/dist/{block.tk.hicstraw-RZXW5CWM.js.map → block.tk.hicstraw-XGNFNV2D.js.map} +0 -0
  676. /package/dist/{block.tk.junction-FSGFU7B3.js.map → block.tk.junction-MJ42DFHW.js.map} +0 -0
  677. /package/dist/{block.tk.junction.textmatrixui-VR4ZIEUP.js.map → block.tk.junction.textmatrixui-6UHTYDX2.js.map} +0 -0
  678. /package/dist/{block.tk.ld-QE54JIGV.js.map → block.tk.ld-E35Z5Q2S.js.map} +0 -0
  679. /package/dist/{block.tk.menu-GFGPEMXQ.js.map → block.tk.menu-RF4EPDZB.js.map} +0 -0
  680. /package/dist/{block.tk.pgv-IPX2D3GA.js.map → block.tk.pgv-H4LW2F7J.js.map} +0 -0
  681. /package/dist/{brainImaging-J4HK4JON.js.map → brainImaging-R3F3PE6Z.js.map} +0 -0
  682. /package/dist/{brainRegions-RH4EXEQ7.js.map → brainRegions-YQVQVKL4.js.map} +0 -0
  683. /package/dist/{bubbleHeatmap-R2CNWOAJ.js.map → bubbleHeatmap-5O64CGYG.js.map} +0 -0
  684. /package/dist/{cellTypeBubbleHeatmap-KJSNP4A3.js.map → cellTypeBubbleHeatmap-WWFWVCZ4.js.map} +0 -0
  685. /package/dist/{chunk-K2ITA56I.js.map → chunk-2P47X7BT.js.map} +0 -0
  686. /package/dist/{chunk-FDBT4PQ6.js.map → chunk-2PUOEKQW.js.map} +0 -0
  687. /package/dist/{chunk-G4A3ZDDS.js.map → chunk-2QJ5YW7G.js.map} +0 -0
  688. /package/dist/{chunk-QZXUHBUV.js.map → chunk-2RZMDOJJ.js.map} +0 -0
  689. /package/dist/{chunk-NZBCTASL.js.map → chunk-3FLNHVHA.js.map} +0 -0
  690. /package/dist/{chunk-C2KMMY53.js.map → chunk-3KQKNLHI.js.map} +0 -0
  691. /package/dist/{chunk-3YNRU4SC.js.map → chunk-3ZGNYCH6.js.map} +0 -0
  692. /package/dist/{chunk-7AOA5WZY.js.map → chunk-45GG3VPI.js.map} +0 -0
  693. /package/dist/{chunk-CD2WD7ZG.js.map → chunk-4HEBUKW2.js.map} +0 -0
  694. /package/dist/{chunk-3KH5JUZV.js.map → chunk-4QTTLHAM.js.map} +0 -0
  695. /package/dist/{chunk-2Z2TFFLP.js.map → chunk-5ANMO7OR.js.map} +0 -0
  696. /package/dist/{chunk-6TCULFEF.js.map → chunk-5IC2RQNV.js.map} +0 -0
  697. /package/dist/{chunk-YB2A2CWR.js.map → chunk-5JXRLP7K.js.map} +0 -0
  698. /package/dist/{chunk-PRPQ654B.js.map → chunk-5OPIM5UQ.js.map} +0 -0
  699. /package/dist/{chunk-SKF6HQ74.js.map → chunk-7B3MFR7R.js.map} +0 -0
  700. /package/dist/{chunk-4S7TWVOY.js.map → chunk-7J7FKNHA.js.map} +0 -0
  701. /package/dist/{chunk-YU7CVG4B.js.map → chunk-7JP6JKKT.js.map} +0 -0
  702. /package/dist/{chunk-MIG3QAYD.js.map → chunk-AAIRS4VB.js.map} +0 -0
  703. /package/dist/{chunk-KRQC5AOW.js.map → chunk-BHDCIV2C.js.map} +0 -0
  704. /package/dist/{chunk-2WKGE7BO.js.map → chunk-C6FM3UFY.js.map} +0 -0
  705. /package/dist/{chunk-OB3S6QYD.js.map → chunk-COWQ5L4E.js.map} +0 -0
  706. /package/dist/{chunk-7PBHM4JU.js.map → chunk-CSNF6JCR.js.map} +0 -0
  707. /package/dist/{chunk-ZKZHYCO3.js.map → chunk-D26T74BT.js.map} +0 -0
  708. /package/dist/{chunk-35DMRAGG.js.map → chunk-DEQDVYSX.js.map} +0 -0
  709. /package/dist/{chunk-3447YXVI.js.map → chunk-DP4XE22P.js.map} +0 -0
  710. /package/dist/{chunk-UH5BHS42.js.map → chunk-DQNIHRZK.js.map} +0 -0
  711. /package/dist/{chunk-JQ3JE2F6.js.map → chunk-EU5WPWP3.js.map} +0 -0
  712. /package/dist/{chunk-VRY727VE.js.map → chunk-FDYHFVFB.js.map} +0 -0
  713. /package/dist/{chunk-5X2MW4CV.js.map → chunk-FGXRTF6T.js.map} +0 -0
  714. /package/dist/{chunk-XVOHS4CK.js.map → chunk-FNIAQ672.js.map} +0 -0
  715. /package/dist/{chunk-4VZ4HR3U.js.map → chunk-FPIJQWWG.js.map} +0 -0
  716. /package/dist/{chunk-Y3ABEAKV.js.map → chunk-FTVJJYYR.js.map} +0 -0
  717. /package/dist/{chunk-LOHACXSB.js.map → chunk-FZ6SNG7M.js.map} +0 -0
  718. /package/dist/{chunk-TR2BNELL.js.map → chunk-G47IRKK5.js.map} +0 -0
  719. /package/dist/{chunk-GPJLIBNO.js.map → chunk-GAHZ2TSD.js.map} +0 -0
  720. /package/dist/{chunk-HYOCZPKO.js.map → chunk-GAPWAY3F.js.map} +0 -0
  721. /package/dist/{chunk-BS6IUMA6.js.map → chunk-GULFC3DW.js.map} +0 -0
  722. /package/dist/{chunk-BUX5YSDF.js.map → chunk-HMFWT3XB.js.map} +0 -0
  723. /package/dist/{chunk-GDJUSLDV.js.map → chunk-HRLCNOZE.js.map} +0 -0
  724. /package/dist/{chunk-W7A4QXZ7.js.map → chunk-HZXFKWTP.js.map} +0 -0
  725. /package/dist/{chunk-HUGVRGQO.js.map → chunk-JJV7MQZR.js.map} +0 -0
  726. /package/dist/{chunk-RU2UHH7M.js.map → chunk-JZKVHXFQ.js.map} +0 -0
  727. /package/dist/{chunk-LDDN2BHX.js.map → chunk-K5737QEX.js.map} +0 -0
  728. /package/dist/{chunk-N5CSNFDP.js.map → chunk-K626HR7F.js.map} +0 -0
  729. /package/dist/{chunk-7HPICVA4.js.map → chunk-K7IB2U76.js.map} +0 -0
  730. /package/dist/{chunk-S2PNRIOW.js.map → chunk-KA4WZGUX.js.map} +0 -0
  731. /package/dist/{chunk-IP2PLKC3.js.map → chunk-KED5HIAW.js.map} +0 -0
  732. /package/dist/{chunk-O3EJBFK7.js.map → chunk-LUJHQWIK.js.map} +0 -0
  733. /package/dist/{chunk-JPJ2DKP5.js.map → chunk-LYKASWJ5.js.map} +0 -0
  734. /package/dist/{chunk-DD3DWHUY.js.map → chunk-MJDIDCTT.js.map} +0 -0
  735. /package/dist/{chunk-WKCVZIN7.js.map → chunk-MMWHJ4BH.js.map} +0 -0
  736. /package/dist/{chunk-OSYSJHAA.js.map → chunk-NDJ4LBL3.js.map} +0 -0
  737. /package/dist/{chunk-H6GPQPSM.js.map → chunk-NIZVZ333.js.map} +0 -0
  738. /package/dist/{chunk-753GDKSC.js.map → chunk-OQJPDEKR.js.map} +0 -0
  739. /package/dist/{chunk-HH5JKOE6.js.map → chunk-OR6P5PR4.js.map} +0 -0
  740. /package/dist/{chunk-B5BLNQ2E.js.map → chunk-OSCUO5KD.js.map} +0 -0
  741. /package/dist/{chunk-HFEFFFPL.js.map → chunk-QK4SEPZE.js.map} +0 -0
  742. /package/dist/{chunk-DCHHIXIP.js.map → chunk-QZXFF4ID.js.map} +0 -0
  743. /package/dist/{chunk-CUHJN6CC.js.map → chunk-RIRH565U.js.map} +0 -0
  744. /package/dist/{chunk-3SBHDIJU.js.map → chunk-RIRIGN5F.js.map} +0 -0
  745. /package/dist/{chunk-XIJC7RNK.js.map → chunk-S6343VGL.js.map} +0 -0
  746. /package/dist/{chunk-TZZTJWLD.js.map → chunk-V4I4NRWW.js.map} +0 -0
  747. /package/dist/{chunk-5RFLLJRG.js.map → chunk-VK4Q5SO4.js.map} +0 -0
  748. /package/dist/{chunk-TCHFJHHC.js.map → chunk-VKFVPIA7.js.map} +0 -0
  749. /package/dist/{chunk-BSWVDH75.js.map → chunk-VYFOWZY7.js.map} +0 -0
  750. /package/dist/{chunk-K5P3JV6N.js.map → chunk-VZ7MQ7NP.js.map} +0 -0
  751. /package/dist/{chunk-B2FSMLYK.js.map → chunk-W4JONZZ4.js.map} +0 -0
  752. /package/dist/{chunk-BR76YIDV.js.map → chunk-WM7BRZ3H.js.map} +0 -0
  753. /package/dist/{chunk-OLV3Q6TN.js.map → chunk-XM464NQG.js.map} +0 -0
  754. /package/dist/{chunk-FVADQZLY.js.map → chunk-Y4XYVSAV.js.map} +0 -0
  755. /package/dist/{chunk-3BBUXNES.js.map → chunk-Y6MMPNON.js.map} +0 -0
  756. /package/dist/{chunk-I6P4LZP3.js.map → chunk-Z6HJLJ2W.js.map} +0 -0
  757. /package/dist/{chunk-G6ZIO5T3.js.map → chunk-ZJAXRB7K.js.map} +0 -0
  758. /package/dist/{chunk-FMFEQPMB.js.map → chunk-ZL2M2MPP.js.map} +0 -0
  759. /package/dist/{cohort-J3JNIMCT.js.map → cohort-ONANZDY5.js.map} +0 -0
  760. /package/dist/{condition-A6VAD4OS.js.map → condition-NUBF4YSS.js.map} +0 -0
  761. /package/dist/{controls-2R2OQAX2.js.map → controls-URVB3DH2.js.map} +0 -0
  762. /package/dist/{controls.config-UPE6TAHK.js.map → controls.config-3R2MMWW5.js.map} +0 -0
  763. /package/dist/{correlation-Q6HYOUOX.js.map → correlation-HA5MNQAE.js.map} +0 -0
  764. /package/dist/{customdata.inputui-KQJKSQNI.js.map → customdata.inputui-KN3ZI56U.js.map} +0 -0
  765. /package/dist/{dataDownload-PYQX2BWN.js.map → dataDownload-3PRPXLBV.js.map} +0 -0
  766. /package/dist/{databrowser.ui-LPFKGVW3.js.map → databrowser.ui-URTFAANK.js.map} +0 -0
  767. /package/dist/{dictionary-GYN7OXWQ.js.map → dictionary-OWTFXDAL.js.map} +0 -0
  768. /package/dist/{dnaMethylation-TSRHGNNY.js.map → dnaMethylation-YWKAU5FO.js.map} +0 -0
  769. /package/dist/{dnaMethylation.integration.spec-3YYSFVKK.js.map → dnaMethylation.integration.spec-T4PTIFLE.js.map} +0 -0
  770. /package/dist/{dofetch-4YRJUWLJ.js.map → dofetch-BPXQH2BQ.js.map} +0 -0
  771. /package/dist/{e2pca-G4AVRHQC.js.map → e2pca-VCUSAIWF.js.map} +0 -0
  772. /package/dist/{ep-MHT3CLGK.js.map → ep-SWVNGKAP.js.map} +0 -0
  773. /package/dist/{expclust.gdc.spec-2TWLDD2S.js.map → expclust.gdc.spec-WQBILTT5.js.map} +0 -0
  774. /package/dist/{facet-4O65ZSBQ.js.map → facet-4VGVDLCU.js.map} +0 -0
  775. /package/dist/{gb-WLOGQSEU.js.map → gb-NQNMLAN2.js.map} +0 -0
  776. /package/dist/{geneExpClustering-LOLLER5C.js.map → geneExpClustering-LBEA4MFK.js.map} +0 -0
  777. /package/dist/{geneExpression-RWE7PBBD.js.map → geneExpression-T7VRPFMN.js.map} +0 -0
  778. /package/dist/{geneExpression-NP2N4CRU.js.map → geneExpression-YGQAXIXM.js.map} +0 -0
  779. /package/dist/{geneExpression.unit.spec-MBE6YVKY.js.map → geneExpression.unit.spec-O3GTSFC4.js.map} +0 -0
  780. /package/dist/{geneORA-ZWZCCBL7.js.map → geneORA-A4V7B4TT.js.map} +0 -0
  781. /package/dist/{geneRanking-UZXH5SLT.js.map → geneRanking-G556D44I.js.map} +0 -0
  782. /package/dist/{geneVariant-ZPINPLRP.js.map → geneVariant-CRINPRE5.js.map} +0 -0
  783. /package/dist/{geneVariant-MULXYJ7M.js.map → geneVariant-HGNB2M5Q.js.map} +0 -0
  784. /package/dist/{geneVariant.integration.spec-6DNKP22T.js.map → geneVariant.integration.spec-FKESYYXK.js.map} +0 -0
  785. /package/dist/{genefusion.ui-S4BPNRIO.js.map → genefusion.ui-OS5DZLHT.js.map} +0 -0
  786. /package/dist/{geneset-LZNALH2H.js.map → geneset-6IYLHN2T.js.map} +0 -0
  787. /package/dist/{genomeBrowser.spec-JOIKBWVC.js.map → genomeBrowser.spec-CRW6HZEX.js.map} +0 -0
  788. /package/dist/{grin2-GFZ5REPY.js.map → grin2-2ZM5J6IY.js.map} +0 -0
  789. /package/dist/{grin2-JPR6LCXT.js.map → grin2-PUMRW6PS.js.map} +0 -0
  790. /package/dist/{hierCluster-DCESQECE.js.map → hierCluster-LA5AMP66.js.map} +0 -0
  791. /package/dist/{hierCluster-M6R4CH22.js.map → hierCluster-OYOHFDEK.js.map} +0 -0
  792. /package/dist/{hierCluster.config-DBQYJXML.js.map → hierCluster.config-UKVHTPJ6.js.map} +0 -0
  793. /package/dist/{hierCluster.integration.spec-DPXTME5W.js.map → hierCluster.integration.spec-6AYYST7M.js.map} +0 -0
  794. /package/dist/{hierCluster.interactivity-EKKKYVEP.js.map → hierCluster.interactivity-5ZIL2SIF.js.map} +0 -0
  795. /package/dist/{hierCluster.renderers-DUDSHKDT.js.map → hierCluster.renderers-IUNCW6A2.js.map} +0 -0
  796. /package/dist/{imagePlot-XXSCMNUV.js.map → imagePlot-C6B6VHSQ.js.map} +0 -0
  797. /package/dist/{importPlot-LKMMP7ZV.js.map → importPlot-WDWIM2RH.js.map} +0 -0
  798. /package/dist/{isoformExpression-A634VVY3.js.map → isoformExpression-XKWQBR2M.js.map} +0 -0
  799. /package/dist/{isoformExpression.unit.spec-2J4VQH43.js.map → isoformExpression.unit.spec-CQFMZONS.js.map} +0 -0
  800. /package/dist/{junction-22DCADQW.js.map → junction-COJEPWLG.js.map} +0 -0
  801. /package/dist/{junction.customTerm-VNQKP5I4.js.map → junction.customTerm-Y4WVXFK2.js.map} +0 -0
  802. /package/dist/{junction.unit.spec-NQDRD66O.js.map → junction.unit.spec-L4F7HUOF.js.map} +0 -0
  803. /package/dist/{launch.adhoc-NAHAYONX.js.map → launch.adhoc-HNKW2HH5.js.map} +0 -0
  804. /package/dist/{leftlabel.sample-CRMQSNCJ.js.map → leftlabel.sample-KWSX7IOS.js.map} +0 -0
  805. /package/dist/{lollipop-XLPUIZBA.js.map → lollipop-SL7TP25K.js.map} +0 -0
  806. /package/dist/{maf-LPXQMGJC.js.map → maf-32AWSYHI.js.map} +0 -0
  807. /package/dist/{maftimeline-X2YPHLLO.js.map → maftimeline-OHNRK3Y2.js.map} +0 -0
  808. /package/dist/{matrix-U7PGR4MD.js.map → matrix-CHYGXHGL.js.map} +0 -0
  809. /package/dist/{matrix-UAU7QUP2.js.map → matrix-YUEPHOTN.js.map} +0 -0
  810. /package/dist/{matrix.cells-QKWO5EP4.js.map → matrix.cells-4IHL6PQC.js.map} +0 -0
  811. /package/dist/{matrix.config-HZ3TORDS.js.map → matrix.config-DA3SLAQQ.js.map} +0 -0
  812. /package/dist/{matrix.data-D77IGADO.js.map → matrix.data-BDSR5NNL.js.map} +0 -0
  813. /package/dist/{matrix.groups-XW2G5BJH.js.map → matrix.groups-VGTU2ZYC.js.map} +0 -0
  814. /package/dist/{matrix.integration.spec-7QLCJO26.js.map → matrix.integration.spec-GVPJT2SJ.js.map} +0 -0
  815. /package/dist/{matrix.interactivity-OIKLY2O6.js.map → matrix.interactivity-4LBV57KT.js.map} +0 -0
  816. /package/dist/{matrix.layout-ICBZ5PCU.js.map → matrix.layout-5B253XQW.js.map} +0 -0
  817. /package/dist/{matrix.legend-C3MQRAZJ.js.map → matrix.legend-MMTKJ4T3.js.map} +0 -0
  818. /package/dist/{matrix.renderers-PN56PKD3.js.map → matrix.renderers-GPEV6MD5.js.map} +0 -0
  819. /package/dist/{matrix.serieses-SNMIQFKB.js.map → matrix.serieses-X2L6OZJG.js.map} +0 -0
  820. /package/dist/{matrix.sort-WHVUSUJZ.js.map → matrix.sort-BP4Y73VY.js.map} +0 -0
  821. /package/dist/{matrix.sort.unit.spec-IQOMDVVS.js.map → matrix.sort.unit.spec-YMKKHB3J.js.map} +0 -0
  822. /package/dist/{matrix.sorterUi-UKANNCZM.js.map → matrix.sorterUi-IWVHJMYP.js.map} +0 -0
  823. /package/dist/{matrix.sorterUi.unit.spec-JCN62VCG.js.map → matrix.sorterUi.unit.spec-SEUSXDE7.js.map} +0 -0
  824. /package/dist/{matrix.unit.spec-JASP2ZH6.js.map → matrix.unit.spec-G4CLHZ3J.js.map} +0 -0
  825. /package/dist/{mavb-KHRJRSUD.js.map → mavb-UIJINXMP.js.map} +0 -0
  826. /package/dist/{mds.fimo-LOR3DSLQ.js.map → mds.fimo-R325XCLM.js.map} +0 -0
  827. /package/dist/{mds.samplescatterplot-W3TCPYHS.js.map → mds.samplescatterplot-TEDCX5M5.js.map} +0 -0
  828. /package/dist/{mds.survivalplot-EYAA5IO3.js.map → mds.survivalplot-6MA34FMF.js.map} +0 -0
  829. /package/dist/{multivalue-GGM5DFPD.js.map → multivalue-MRRF7WUG.js.map} +0 -0
  830. /package/dist/{numericDictTermCluster-MJK6SIWE.js.map → numericDictTermCluster-LRY554HK.js.map} +0 -0
  831. /package/dist/{oncomatrix-MVLDAB6I.js.map → oncomatrix-5YESGMC5.js.map} +0 -0
  832. /package/dist/{oncomatrix.spec-43PZ4CLH.js.map → oncomatrix.spec-QPSKJVKL.js.map} +0 -0
  833. /package/dist/{plot.2dvaf-4H3YMAIV.js.map → plot.2dvaf-2CYHDA4C.js.map} +0 -0
  834. /package/dist/{plot.app-OZGOECPK.js.map → plot.app-PHQ22GA2.js.map} +0 -0
  835. /package/dist/{plot.barplot-OQKZAU3N.js.map → plot.barplot-IZJMM7HO.js.map} +0 -0
  836. /package/dist/{plot.boxplot-4O4VNRMV.js.map → plot.boxplot-OXDWGXVO.js.map} +0 -0
  837. /package/dist/{plot.brainImaging-6I4HHUMD.js.map → plot.brainImaging-TZJINY47.js.map} +0 -0
  838. /package/dist/{plot.disco-BOWNCFJV.js.map → plot.disco-G2E5HCR5.js.map} +0 -0
  839. /package/dist/{plot.ssgq-6STRLDEG.js.map → plot.ssgq-CBBSDYNO.js.map} +0 -0
  840. /package/dist/{plot.vaf2cov-75EZA7PJ.js.map → plot.vaf2cov-TG4ZWBOY.js.map} +0 -0
  841. /package/dist/{polar2-QQ2ZYQ3I.js.map → polar2-KKLKRETZ.js.map} +0 -0
  842. /package/dist/{profileForms-WU7UNK7Y.js.map → profileForms-MA743GS4.js.map} +0 -0
  843. /package/dist/{profilePlot-KW7UITCT.js.map → profilePlot-K75DW43W.js.map} +0 -0
  844. /package/dist/{proteinView-ET75MKLU.js.map → proteinView-FKWQBBX4.js.map} +0 -0
  845. /package/dist/{proteomeCohortCompare-SDX5D26O.js.map → proteomeCohortCompare-VZVP4WOH.js.map} +0 -0
  846. /package/dist/{pseudbulk.unit.spec-T3B2T5FK.js.map → pseudbulk.unit.spec-Y3KMRFRQ.js.map} +0 -0
  847. /package/dist/{pseudobulk-4O6GK2TZ.js.map → pseudobulk-P6FX64U3.js.map} +0 -0
  848. /package/dist/{qualitative-FUJ6JHPZ.js.map → qualitative-CRSGQRFR.js.map} +0 -0
  849. /package/dist/{radar2-G75NIN2N.js.map → radar2-7JXNJZ2E.js.map} +0 -0
  850. /package/dist/{radarFacility2-OOAUSL6F.js.map → radarFacility2-DJ2V5JNW.js.map} +0 -0
  851. /package/dist/{rememberedGvQ.unit.spec-B6RQM5LQ.js.map → rememberedGvQ.unit.spec-PJTXLLVI.js.map} +0 -0
  852. /package/dist/{render-JMAJCJFT.js.map → render-VUBQKSGZ.js.map} +0 -0
  853. /package/dist/{report-UKB7676O.js.map → report-M34KCQN2.js.map} +0 -0
  854. /package/dist/{sampleView-JGWU2E5H.js.map → sampleView-NSMHY3Q6.js.map} +0 -0
  855. /package/dist/{samplelst-ZB23PILZ.js.map → samplelst-NPBKSYH5.js.map} +0 -0
  856. /package/dist/{samplematrix-CQAB5PVO.js.map → samplematrix-HEZ5NZ2X.js.map} +0 -0
  857. /package/dist/{sc-JOIUUG4I.js.map → sc-MKALGDFA.js.map} +0 -0
  858. /package/dist/{scatter-JXBGEKLF.js.map → scatter-2EEH73PX.js.map} +0 -0
  859. /package/dist/{scatter-DCX72P3N.js.map → scatter-R74OPQV3.js.map} +0 -0
  860. /package/dist/{selectGenomeWithTklst-EZTHPCBB.js.map → selectGenomeWithTklst-PPJZPIC2.js.map} +0 -0
  861. /package/dist/{singleCellCellType-BOQTDUZA.js.map → singleCellCellType-V52WFBYC.js.map} +0 -0
  862. /package/dist/{singleCellCellType.unit.spec-3HUF7VWW.js.map → singleCellCellType.unit.spec-GYPZQ55V.js.map} +0 -0
  863. /package/dist/{singleCellGeneExpression-UBTHLFRN.js.map → singleCellGeneExpression-NCGMA47O.js.map} +0 -0
  864. /package/dist/{singleCellGeneExpression.unit.spec-YM6EQB3E.js.map → singleCellGeneExpression.unit.spec-YXOFQZB4.js.map} +0 -0
  865. /package/dist/{singleCellNumericValue-53T6WOHJ.js.map → singleCellNumericValue-IKI726PF.js.map} +0 -0
  866. /package/dist/{singleCellNumericValue.unit.spec-SYSMD5IW.js.map → singleCellNumericValue.unit.spec-L6QXS5LW.js.map} +0 -0
  867. /package/dist/{singleCellPlot-3V47EUB4.js.map → singleCellPlot-64JKBI5G.js.map} +0 -0
  868. /package/dist/{singlecell-AFGFONXY.js.map → singlecell-5YENNNVD.js.map} +0 -0
  869. /package/dist/{singlecell-VZI3LEUT.js.map → singlecell-XALP7US6.js.map} +0 -0
  870. /package/dist/{snp-IPIYL7OY.js.map → snp-N7KCIU7N.js.map} +0 -0
  871. /package/dist/{snp.unit.spec-OC5JHCXR.js.map → snp.unit.spec-4S6OJT5C.js.map} +0 -0
  872. /package/dist/{snplocus-DSGUSGUP.js.map → snplocus-RAN4UCKP.js.map} +0 -0
  873. /package/dist/{spliceevent.a53ss.diagram-RNAJHS4P.js.map → spliceevent.a53ss.diagram-2EDVZHU5.js.map} +0 -0
  874. /package/dist/{spliceevent.exonskip.diagram-YWRATK46.js.map → spliceevent.exonskip.diagram-GHNNFV5D.js.map} +0 -0
  875. /package/dist/{spliceevent.noeventdiagram-6ZJRJ4QZ.js.map → spliceevent.noeventdiagram-KJGYK62N.js.map} +0 -0
  876. /package/dist/{ssGSEA-IWCC6JDL.js.map → ssGSEA-HI3XLE5G.js.map} +0 -0
  877. /package/dist/{ssGSEA.unit.spec-3TKDENWO.js.map → ssGSEA.unit.spec-XKYEIVAO.js.map} +0 -0
  878. /package/dist/{stattable-EXOWMETP.js.map → stattable-EYMMFP45.js.map} +0 -0
  879. /package/dist/{studyCatalog-OAGHQXKY.js.map → studyCatalog-56TO46A5.js.map} +0 -0
  880. /package/dist/{summarizeCnvGeneexp-K6XO5YEP.js.map → summarizeCnvGeneexp-F7MMS55Q.js.map} +0 -0
  881. /package/dist/{summarizeGeneexpSurvival-WTAGCCU4.js.map → summarizeGeneexpSurvival-ZUE5FNZG.js.map} +0 -0
  882. /package/dist/{summarizeMutationCnv-QKIDS3LI.js.map → summarizeMutationCnv-GABFG5M7.js.map} +0 -0
  883. /package/dist/{summarizeMutationDiagnosis-ACFWADSQ.js.map → summarizeMutationDiagnosis-GSQN76UC.js.map} +0 -0
  884. /package/dist/{summarizeMutationSurvival-XPFPN4N5.js.map → summarizeMutationSurvival-DADX2MAN.js.map} +0 -0
  885. /package/dist/{summary-VCU2NTIZ.js.map → summary-TBHTSEMG.js.map} +0 -0
  886. /package/dist/{summary.integration.spec-2DE653PH.js.map → summary.integration.spec-EWYBQXS3.js.map} +0 -0
  887. /package/dist/{summaryInput-GO75OPLA.js.map → summaryInput-6C7ZY5Z5.js.map} +0 -0
  888. /package/dist/{sunburst-BSCFRYSV.js.map → sunburst-WW4LZ5AT.js.map} +0 -0
  889. /package/dist/{survival-BEP7JNML.js.map → survival-L2IAJZXL.js.map} +0 -0
  890. /package/dist/{survival-XUO2D6CX.js.map → survival-LAIUKCZC.js.map} +0 -0
  891. /package/dist/{survival.integration.spec-EO5KAFDQ.js.map → survival.integration.spec-PTFUUTBJ.js.map} +0 -0
  892. /package/dist/{svgraph-YGXOB3QY.js.map → svgraph-J5DEKHSP.js.map} +0 -0
  893. /package/dist/{svmr-MATMMI4E.js.map → svmr-YLS3OPQS.js.map} +0 -0
  894. /package/dist/{table-DFSX7XYJ.js.map → table-T73D4MMV.js.map} +0 -0
  895. /package/dist/{termCollection-GKPC4K2O.js.map → termCollection-RR3OVXRS.js.map} +0 -0
  896. /package/dist/{termCollection-ZUJFB7YB.js.map → termCollection-VNEW4PUC.js.map} +0 -0
  897. /package/dist/{termCollection.unit.spec-YE7IKC6S.js.map → termCollection.unit.spec-3L2CSNIT.js.map} +0 -0
  898. /package/dist/{termCollectionFractionSelection-DLWXUEEN.js.map → termCollectionFractionSelection-PKOCR4YR.js.map} +0 -0
  899. /package/dist/{termCollectionFractionSelection.unit.spec-N2LNHIWC.js.map → termCollectionFractionSelection.unit.spec-U5R2XDAA.js.map} +0 -0
  900. /package/dist/{tk-PHTWQHVV.js.map → tk-CF4KEDKD.js.map} +0 -0
  901. /package/dist/{tk-RNUMIS5P.js.map → tk-PZNFQ4NU.js.map} +0 -0
  902. /package/dist/{tp.ui-A52OBFJD.js.map → tp.ui-CC3HZGU4.js.map} +0 -0
  903. /package/dist/{tvs.dt-SQSP3UXH.js.map → tvs.dt-DBW7TIWI.js.map} +0 -0
  904. /package/dist/{tvs.dtcnv.categorical-3IWQMUEM.js.map → tvs.dtcnv.categorical-6NECYCSJ.js.map} +0 -0
  905. /package/dist/{tvs.dtcnv.continuous-ZD5WM32O.js.map → tvs.dtcnv.continuous-2S5Q7JXF.js.map} +0 -0
  906. /package/dist/{tvs.dtfusion-G47Z7NP3.js.map → tvs.dtfusion-UFAZO2TW.js.map} +0 -0
  907. /package/dist/{tvs.dtitd-57PSTVRM.js.map → tvs.dtitd-RMXA5UUR.js.map} +0 -0
  908. /package/dist/{tvs.dtsnvindel-CS3ZVFWN.js.map → tvs.dtsnvindel-MKZMTANY.js.map} +0 -0
  909. /package/dist/{tvs.dtsv-LNWDVFCR.js.map → tvs.dtsv-ZFWT2UIA.js.map} +0 -0
  910. /package/dist/{tvs.samplelst-EMZOR4SY.js.map → tvs.samplelst-PKMMBZNN.js.map} +0 -0
  911. /package/dist/{tvs.termCollection-RX5ASV3N.js.map → tvs.termCollection-H2BMI2R7.js.map} +0 -0
  912. /package/dist/{vocabulary-JVAACQPU.js.map → vocabulary-QI76DY2B.js.map} +0 -0
  913. /package/dist/{wsi.direct-J4SNIUUW.js.map → wsi.direct-CHL5SXDS.js.map} +0 -0
@@ -0,0 +1,1348 @@
1
+ import {
2
+ PlotBase,
3
+ digestMessage,
4
+ filterRxCompInit,
5
+ formatHeaderText,
6
+ getCombinedTermFilter,
7
+ getGEunit,
8
+ getNormalRoot,
9
+ make_radios,
10
+ newSandboxDiv,
11
+ sortTableCallBack
12
+ } from "./chunk-DGZWMUOG.js";
13
+ import "./chunk-HJ6L54YS.js";
14
+ import "./chunk-KV4W2ACA.js";
15
+ import {
16
+ importPlot
17
+ } from "./chunk-K7IB2U76.js";
18
+ import {
19
+ Menu
20
+ } from "./chunk-7XZA2XR2.js";
21
+ import "./chunk-MJDIDCTT.js";
22
+ import "./chunk-EEB5VE2A.js";
23
+ import {
24
+ icons
25
+ } from "./chunk-3CIL7KH7.js";
26
+ import "./chunk-T4XPCSLP.js";
27
+ import {
28
+ dofetch3
29
+ } from "./chunk-7JP6JKKT.js";
30
+ import "./chunk-OR6P5PR4.js";
31
+ import "./chunk-JZKVHXFQ.js";
32
+ import {
33
+ SINGLECELL_CELLTYPE,
34
+ SINGLECELL_GENE_EXPRESSION,
35
+ TermTypeGroups
36
+ } from "./chunk-SREWSTR6.js";
37
+ import {
38
+ copyMerge,
39
+ getCompInit,
40
+ multiInit
41
+ } from "./chunk-HBNB5TRH.js";
42
+ import "./chunk-PF4DSFDR.js";
43
+ import "./chunk-7X6NF7NI.js";
44
+ import "./chunk-W5J3LTYS.js";
45
+ import "./chunk-Z2ZITHT4.js";
46
+ import "./chunk-4OLM3KSB.js";
47
+ import "./chunk-6XKAOSQE.js";
48
+ import "./chunk-TLT4YIG3.js";
49
+ import "./chunk-5R63Q5KH.js";
50
+ import "./chunk-I6Y4O3RR.js";
51
+ import "./chunk-Q5RDQNIT.js";
52
+ import "./chunk-DQC5FFGV.js";
53
+ import "./chunk-HS5PO5ZQ.js";
54
+
55
+ // plots/sc/model/SCModel.ts
56
+ var SCModel = class {
57
+ constructor(sc) {
58
+ /** whether a sample has a spatial image (with the consolidated h5ad the
59
+ spatial subplot needs), keyed by sID. Successful probes are cached;
60
+ failures return false for the current render and may be retried. */
61
+ this.sampleHasSpatial = {};
62
+ this.sc = sc;
63
+ this.app = sc.app;
64
+ this.id = sc.id;
65
+ this.state = sc.app.getState();
66
+ }
67
+ /********** All Single Cell SAMPLES for rendering the sample table ******** */
68
+ async getAllSampleData(state) {
69
+ const body = {
70
+ genome: state.vocab.genome,
71
+ dslabel: state.vocab.dslabel,
72
+ filter: getNormalRoot(state.termfilter.filter),
73
+ filter0: state.termfilter.filter0
74
+ };
75
+ return await dofetch3("termdb/singlecellSamples", { body, signal: this.sc.api?.getAbortSignal() });
76
+ }
77
+ //Fetches optional name for ds defined columns
78
+ async getColumnLabels(dsScSamples) {
79
+ if (!dsScSamples || !dsScSamples.sampleColumns) return;
80
+ const colsCopy = structuredClone(dsScSamples.sampleColumns);
81
+ for (const col of colsCopy) {
82
+ let label = col.termid;
83
+ try {
84
+ label = (await this.app.vocabApi.getterm(col.termid)).name;
85
+ } catch (e) {
86
+ if (e.message) {
87
+ }
88
+ }
89
+ col.label = label;
90
+ }
91
+ return colsCopy;
92
+ }
93
+ /********** Single Cell DATA for rendering plots ********
94
+ * This is for the plot buttons. Returns an array plots with found files or
95
+ * available data. */
96
+ async getSampleData() {
97
+ const body = this.getDataRequestOpts();
98
+ if (!body) return;
99
+ return await dofetch3("termdb/singlecellData", { body, signal: this.sc.api?.getAbortSignal() });
100
+ }
101
+ /** May provide active plots to the request and return plot data when
102
+ * checkPlotAvailability is false. When checkPlotAvailability is true,
103
+ * only returns which plots are available but not the actual data. */
104
+ getDataRequestOpts(_plots = [], checkPlotAvailability = true) {
105
+ const state = this.app.getState();
106
+ const singleCellTermdbConfig = state.termdbConfig?.queries?.singleCell;
107
+ if (!singleCellTermdbConfig?.data) throw new Error("No singleCell.data defined in termdbConfig.queries");
108
+ const config = state.plots.find((p) => p.id === this.id);
109
+ if (!config.settings.sc.item) return;
110
+ const plots = _plots?.length ? _plots : singleCellTermdbConfig.data.plots.map((p) => p.name);
111
+ return {
112
+ genome: this.state.vocab.genome,
113
+ dslabel: this.state.vocab.dslabel,
114
+ // if true, only return available plot names, but not actual plot data
115
+ checkPlotAvailability,
116
+ plots,
117
+ sample: {
118
+ eID: config.settings.sc.item.eID,
119
+ sID: config.settings.sc.item.sID
120
+ }
121
+ };
122
+ }
123
+ async hasSpatialImage(sID) {
124
+ if (!(sID in this.sampleHasSpatial)) {
125
+ if (!this.state.termdbConfig?.queries?.w2) return false;
126
+ let r;
127
+ try {
128
+ r = await dofetch3("termdb/wsiBySample", {
129
+ // imageType: only the spatial root is enumerated for the probe
130
+ body: {
131
+ genome: this.state.vocab.genome,
132
+ dslabel: this.state.vocab.dslabel,
133
+ sample_id: sID,
134
+ imageType: "spatial"
135
+ },
136
+ signal: this.sc.api?.getAbortSignal()
137
+ });
138
+ } catch (e) {
139
+ if (this.app.vocabApi?.isAbortError?.(e)) throw e;
140
+ return false;
141
+ }
142
+ if (r?.error) return false;
143
+ this.sampleHasSpatial[sID] = !!(r?.images || []).some((i) => i.type == "spatial" && i.spatialData);
144
+ }
145
+ return this.sampleHasSpatial[sID];
146
+ }
147
+ /** Essentially for the GDC. Maybe applied to other ds in the future. */
148
+ async getCategories(_plots) {
149
+ const body = this.getDataRequestOpts(_plots, false);
150
+ if (!body) return;
151
+ let res;
152
+ try {
153
+ res = await dofetch3("termdb/singlecellData", { body, signal: this.sc.api?.getAbortSignal() });
154
+ } catch (e) {
155
+ if (e instanceof Error) console.error(`${e.message || e}`);
156
+ }
157
+ return this.formatCategories(res);
158
+ }
159
+ formatCategories(res) {
160
+ const plot = structuredClone(res.plots[0]);
161
+ plot.cells = [...plot.noExpCells, ...plot.expCells];
162
+ const clusters = new Set(plot.cells.map((c) => c.category));
163
+ const sortedClusters = Array.from(clusters).sort((a, b) => {
164
+ const num1 = parseInt(a.split(" ")[1]);
165
+ const num2 = parseInt(b.split(" ")[1]);
166
+ return num1 - num2;
167
+ });
168
+ return sortedClusters;
169
+ }
170
+ };
171
+
172
+ // plots/sc/viewModel/SCViewModel.ts
173
+ var SCViewModel = class {
174
+ constructor(app, sampleColumns) {
175
+ this.app = app;
176
+ this.state = this.app.getState();
177
+ this.sampleColumns = sampleColumns || [];
178
+ this.metaResultIds = /* @__PURE__ */ new Set();
179
+ }
180
+ processData(config, _items) {
181
+ const items = _items.sort((a, b) => b.isMetaResult === a.isMetaResult ? 0 : b.isMetaResult ? 1 : -1);
182
+ const [rows, columns, sampleColIdx] = this.getTabelData(config, items, this.sampleColumns);
183
+ const selectedRows = [];
184
+ const sID = config.settings.sc.item?.sID;
185
+ const i = sID ? items.findIndex((item) => item.sample === sID || item.experiments?.some((e) => e.sampleName === sID)) : -1;
186
+ if (i != -1) selectedRows.push(i);
187
+ this.tableData = {
188
+ rows,
189
+ columns,
190
+ selectedRows,
191
+ sampleColIdx
192
+ };
193
+ }
194
+ /** Shape the selected sample's plot data for the plot buttons view:
195
+ * the server's plots plus flags the view only reads (hasSpatial shows
196
+ * the Spatial button). */
197
+ formatPlotsData(sampleData, hasSpatial) {
198
+ return { ...sampleData, hasSpatial };
199
+ }
200
+ getTabelData(plotConfig, items, sampleColumns) {
201
+ const rows = [];
202
+ const hasExperiments = items.some((i) => i.experiments);
203
+ let sampleColIdx = -1;
204
+ let firstColLabel = plotConfig.settings.sc.columns.sample;
205
+ if (items[0]?.isMetaResult) firstColLabel = "";
206
+ const columns = [{ label: firstColLabel, sortable: true }];
207
+ if (hasExperiments) {
208
+ columns.push({ label: "Sample", sortable: true });
209
+ sampleColIdx = 1;
210
+ } else sampleColIdx = 0;
211
+ columns.push({ label: "Shown plots" });
212
+ for (const col of sampleColumns || []) {
213
+ columns.push({
214
+ label: col.label,
215
+ width: "14vw",
216
+ sortable: true
217
+ });
218
+ }
219
+ if (hasExperiments) columns.push({ label: "Experiment", sortable: true });
220
+ for (const item of items) {
221
+ if (item.isMetaResult) this.metaResultIds.add(item.sample);
222
+ if (hasExperiments)
223
+ for (const exp of item.experiments) {
224
+ const row = [{ value: item.sample, __experimentID: exp.experimentID }];
225
+ row.push({ value: exp.sampleName });
226
+ row.push({ value: "" });
227
+ for (const col of sampleColumns || []) {
228
+ row.push({ value: item[col.termid] });
229
+ }
230
+ const urlTemp = this.state.termdbConfig?.urlTemplates?.scrnaExperimentId;
231
+ if (urlTemp) row.push({ value: exp.experimentID, url: `${urlTemp.base}${exp.experimentID}` });
232
+ else row.push({ value: exp.experimentID });
233
+ rows.push(row);
234
+ }
235
+ else {
236
+ const row = item.isMetaResult ? [{ html: item.sample.replace(/_/g, " "), value: item.sample, elemId: "isMetaResult" }] : [{ value: item.sample }];
237
+ row.push({ value: "" });
238
+ for (const col of sampleColumns || []) {
239
+ const value = item[col.termid];
240
+ if (value == null && item.isMetaResult) row.push({ value: "All" });
241
+ else row.push({ value: item[col.termid] });
242
+ }
243
+ rows.push(row);
244
+ }
245
+ }
246
+ return [rows, columns, sampleColIdx];
247
+ }
248
+ };
249
+
250
+ // plots/sc/interactions/SCInteractions.ts
251
+ var SCInteractions = class {
252
+ constructor(sc) {
253
+ this.app = sc.app;
254
+ this.id = sc.id;
255
+ this.model = sc.model;
256
+ this.viewModel = sc.viewModel;
257
+ }
258
+ /** Add the plot to the state.plots array with .parentId. Adding
259
+ * .parentId prevents the plot from launching in a new sandbox outside SC.
260
+ * Pass the .parentId to both the plotConfig and the action.
261
+ * this.getState() in SC.ts will find all the subplots with the parentId==this.id
262
+ * SC.main() initializes the subplots as components in chartsDiv */
263
+ async createSubplot(config) {
264
+ const c = Object.assign({}, config, { parentId: this.id });
265
+ await this.app.dispatch({
266
+ type: "plot_create",
267
+ parentId: this.id,
268
+ config: c
269
+ });
270
+ }
271
+ /** Updates the selected item in the plot settings */
272
+ async updateItem(item) {
273
+ item.isMetaResult = this.viewModel.metaResultIds.has(item.sID);
274
+ await this.app.dispatch({
275
+ type: "plot_edit",
276
+ id: this.id,
277
+ config: { settings: { sc: { item } } }
278
+ });
279
+ }
280
+ async getDropDownOptions(plot) {
281
+ return this.model.getCategories(plot);
282
+ }
283
+ };
284
+
285
+ // plots/sc/view/SCSampleTable.ts
286
+ var SCSampleTable = class {
287
+ constructor(dom, tableData, opts = {}) {
288
+ this.showPlotsColumn = false;
289
+ this.rowMap = /* @__PURE__ */ new Map();
290
+ this.rows = [];
291
+ this.columns = [];
292
+ this.dom = dom;
293
+ this.holder = dom?.tableDiv || dom;
294
+ this.tableData = tableData;
295
+ this.sampleColIdx = tableData.sampleColIdx ?? 0;
296
+ this.rows = tableData.rows;
297
+ this.columns = tableData.columns;
298
+ this.onRowClick = opts.onRowClick;
299
+ this.renderStaticTable();
300
+ }
301
+ renderStaticTable() {
302
+ this.holder.selectAll("*").remove();
303
+ this.parentDiv = this.holder.append("div").style("background-color", "white").style("display", "inline-block").style("max-height", "30vh").style("max-width", "90vw").classed("sjpp_show_scrollbar", true);
304
+ this.table = this.parentDiv.append("table").style("width", "100%");
305
+ this.thead = this.table.append("thead");
306
+ this.thead.style("position", "sticky").style("top", "0").style("background-color", "white").style("z-index", "1");
307
+ this.tableHeaderRow = this.thead.append("tr");
308
+ this.tbody = this.table.append("tbody");
309
+ this.renderHeader();
310
+ this.renderRows();
311
+ }
312
+ renderHeader() {
313
+ this.tableHeaderRow.append("th").style("width", "1.5vw").style("padding", "0");
314
+ for (const [columnIndex, column] of this.columns.entries()) {
315
+ const th = this.tableHeaderRow.append("th").attr("class", "sjpp_table_item sjpp_table_header");
316
+ if (column.label === "Shown plots" && !this.showPlotsColumn) th.style("display", "none");
317
+ if (column.width) th.style("width", column.width);
318
+ if (column.tooltip) th.attr("title", column.tooltip);
319
+ const labelWrap = th.append("span").style("display", "inline-flex").style("align-items", "center");
320
+ labelWrap.append("span").text(column.label);
321
+ if (column.sortable) {
322
+ const sortDiv = labelWrap.append("div").style("display", "inline-block").style("padding-left", "6px");
323
+ let isAscending = false;
324
+ icons["updown"](sortDiv, {
325
+ handler: () => {
326
+ isAscending = !isAscending;
327
+ const nextRows = sortTableCallBack(columnIndex, this.rows, isAscending);
328
+ this.sortRows(nextRows);
329
+ }
330
+ });
331
+ }
332
+ }
333
+ }
334
+ renderRows() {
335
+ this.rowMap.clear();
336
+ for (const [rowIndex, row] of this.rows.entries()) {
337
+ const tr = this.tbody.append("tr").attr("class", "sjpp_row_wrapper").attr("tabindex", 0);
338
+ if (rowIndex % 2 === 1) tr.style("background-color", "rgb(245,245,245)");
339
+ const sampleCell = row[this.sampleColIdx];
340
+ const sampleId = String(sampleCell?.value ?? "");
341
+ if (!sampleId) continue;
342
+ const entry = {
343
+ sampleId,
344
+ row: tr,
345
+ cells: {}
346
+ };
347
+ const radioCell = tr.append("td").style("width", "1.5vw").style("padding", "0 6px").style("text-align", "center");
348
+ radioCell.append("input").attr("type", "radio").attr("name", "sjpp-sc-row-selection").attr("value", sampleId).attr("aria-label", `Select ${sampleId}`).property("checked", this.tableData.selectedRows.includes(rowIndex)).on("change", () => {
349
+ if (this.onRowClick) this.onRowClick(sampleId);
350
+ });
351
+ for (const [colIdx, cell] of row.entries()) {
352
+ const td = tr.append("td").attr("class", "sjpp_table_item").attr("data-testid", "sjpp-table-cell-item");
353
+ if (this.columns[colIdx]?.label === "Shown plots" && !this.showPlotsColumn) td.style("display", "none");
354
+ if (colIdx === this.sampleColIdx) {
355
+ entry.cells.sample = td;
356
+ }
357
+ if (this.columns[colIdx]?.label === "Shown plots") {
358
+ entry.cells.shownPlots = td;
359
+ }
360
+ if ("value" in cell) td.text(cell.value).attr("aria-label", cell.value);
361
+ else if (cell.html) td.html(cell.html);
362
+ else if (cell.url) td.append("a").text(cell.value || cell.url).attr("href", cell.url).attr("aria-label", `Click to ${cell.url}`);
363
+ }
364
+ tr.on("click", () => {
365
+ if (this.onRowClick) this.onRowClick(sampleId);
366
+ });
367
+ tr.on("keydown", (event) => {
368
+ if (event.key === "Enter") {
369
+ if (this.onRowClick) this.onRowClick(sampleId);
370
+ }
371
+ });
372
+ this.rowMap.set(sampleId, entry);
373
+ }
374
+ }
375
+ /** Patches the table in place when the incoming data describes the same
376
+ * set of samples/columns (e.g. a subplot state change re-triggers SC's
377
+ * main()/update() without the sample list itself changing). Only falls
378
+ * back to a full teardown+rebuild when the sample list or columns
379
+ * actually changed, so row identity (and scroll position) survives
380
+ * updates that only affect the "Shown plots" column. */
381
+ setTableData(tableData) {
382
+ const needsRebuild = !this.isSameShape(tableData);
383
+ this.tableData = tableData;
384
+ this.rows = tableData.rows;
385
+ this.columns = tableData.columns;
386
+ this.sampleColIdx = tableData.sampleColIdx ?? 0;
387
+ if (needsRebuild) {
388
+ this.renderStaticTable();
389
+ } else {
390
+ this.syncSelectedRows(tableData);
391
+ }
392
+ }
393
+ /** Compares by the set of sample IDs rather than row order, since sortRows()
394
+ * reorders this.rows/DOM in place on user interaction. Comparing positionally
395
+ * would treat that as a "shape change" on the next incoming tableData and
396
+ * force an unnecessary rebuild that undoes the sort and resets scroll. */
397
+ isSameShape(tableData) {
398
+ if (tableData.columns.length !== this.columns.length) return false;
399
+ for (const [i, column] of this.columns.entries()) {
400
+ if (tableData.columns[i]?.label !== column.label) return false;
401
+ }
402
+ if (tableData.rows.length !== this.rows.length) return false;
403
+ const incomingSampleColIdx = tableData.sampleColIdx ?? this.sampleColIdx;
404
+ return tableData.rows.every((row) => this.rowMap.has(String(row[incomingSampleColIdx]?.value ?? "")));
405
+ }
406
+ /** selectedRows is always 0 or 1 entries (radio selection), see SCViewModel. */
407
+ syncSelectedRows(tableData) {
408
+ const sampleColIdx = tableData.sampleColIdx ?? this.sampleColIdx;
409
+ const selectedRowIndex = tableData.selectedRows[0];
410
+ const selectedId = selectedRowIndex != null ? String(tableData.rows[selectedRowIndex]?.[sampleColIdx]?.value ?? "") : "";
411
+ for (const [sampleId, entry] of this.rowMap) {
412
+ const input = entry.row.select('input[type="radio"]').node();
413
+ if (input) input.checked = sampleId === selectedId;
414
+ }
415
+ }
416
+ setShownPlotsColumnVisibility(visible) {
417
+ if (visible !== this.showPlotsColumn) this.toggleShownPlotsColumn(visible);
418
+ }
419
+ toggleShownPlotsColumn(visible) {
420
+ this.showPlotsColumn = visible;
421
+ const shownPlotsHeaderIndex = this.columns.findIndex((c) => c.label === "Shown plots");
422
+ if (shownPlotsHeaderIndex === -1) return;
423
+ const domColumnIndex = shownPlotsHeaderIndex + 1;
424
+ const headerCells = this.tableHeaderRow.selectAll("th").nodes();
425
+ const visibleState = visible ? "table-cell" : "none";
426
+ if (headerCells[domColumnIndex]) headerCells[domColumnIndex].style.display = visibleState;
427
+ for (const entry of this.rowMap.values()) {
428
+ entry.cells.shownPlots?.style("display", visibleState);
429
+ }
430
+ }
431
+ /**
432
+ * Placeholder for future sorted-row updates.
433
+ *
434
+ * This intentionally keeps row identity stable and reorders existing DOM nodes
435
+ * instead of deleting/recreating the whole table when sorting.
436
+ */
437
+ sortRows(sortedRows) {
438
+ const parentNode = this.tbody.node();
439
+ for (const row of sortedRows) {
440
+ const sampleId = String(row[this.sampleColIdx]?.value ?? "");
441
+ const entry = this.rowMap.get(sampleId);
442
+ if (!entry) continue;
443
+ parentNode.appendChild(entry.row.node());
444
+ }
445
+ this.rows = sortedRows;
446
+ }
447
+ };
448
+
449
+ // plots/sc/view/SampleTableRenderer.ts
450
+ var SampleTableRenderer = class {
451
+ constructor(dom, interactions, tableData) {
452
+ this.activeSandboxes = /* @__PURE__ */ new Map();
453
+ /** Tracks rendered btns per sample to avoid unnecessary destroy/recreate pattern. */
454
+ this.rendered = /* @__PURE__ */ new Map();
455
+ this.table = null;
456
+ this.dom = dom;
457
+ this.interactions = interactions;
458
+ this.tableData = tableData;
459
+ this.renderSamplesTable(tableData);
460
+ }
461
+ /** Users select one item at a time to render the plot buttons
462
+ * to init() plots in the dashboard.*/
463
+ renderSamplesTable(tableData) {
464
+ this.tableData = tableData;
465
+ this.table = new SCSampleTable(this.dom, tableData, {
466
+ onRowClick: (sampleId) => {
467
+ const data = this.tableData;
468
+ const sampleColIdx = data.sampleColIdx ?? 0;
469
+ const rowIndex = data.rows.findIndex((row) => String(row[sampleColIdx]?.value ?? "") === sampleId);
470
+ if (rowIndex === -1) return;
471
+ const item = this.buildItemFromRow(data, rowIndex);
472
+ this.interactions.updateItem(item);
473
+ this.dom.plotsBtnsDiv.style("display", "block");
474
+ }
475
+ });
476
+ this.reapplyAllPlotButtons();
477
+ }
478
+ /** Builds an item object from a table row, mapping column labels to keys.
479
+ * Converts 'sample' -> 'sID' and 'experiment' -> 'eID'.
480
+ * Extracted out from noButtonCallback for testing. */
481
+ buildItemFromRow(tableData, index) {
482
+ const item = {};
483
+ tableData.rows[index].forEach((r, idx) => {
484
+ if (!r.value) return;
485
+ let key = tableData.columns[idx].label.toLowerCase();
486
+ key = key === "sample" || key === "" ? "sID" : key === "experiment" ? "eID" : key;
487
+ item[key] = r.value;
488
+ });
489
+ if (!item.sID) throw new Error("Selected item must have sID property");
490
+ return item;
491
+ }
492
+ updateTable(tableData) {
493
+ this.tableData = tableData;
494
+ if (!this.table) {
495
+ this.renderSamplesTable(tableData);
496
+ return;
497
+ }
498
+ this.table.setTableData(tableData);
499
+ this.reapplyAllPlotButtons();
500
+ }
501
+ updatePlotBtns(activeSandboxes) {
502
+ this.activeSandboxes = activeSandboxes;
503
+ let totalPlots = 0;
504
+ for (const sandboxes of activeSandboxes.values()) totalPlots += sandboxes.length;
505
+ this.table?.setShownPlotsColumnVisibility(totalPlots >= 2);
506
+ this.reapplyAllPlotButtons();
507
+ }
508
+ /** Called by afterRender to re-apply buttons for all samples with subplots.
509
+ * Also called in updateTable when the active sandboxes (i.e. subplots) change.*/
510
+ reapplyAllPlotButtons() {
511
+ for (const sampleId of this.rendered.keys()) {
512
+ if (!this.activeSandboxes.has(sampleId)) {
513
+ this.deleteBtns(sampleId);
514
+ }
515
+ }
516
+ for (const sampleId of this.activeSandboxes.keys()) {
517
+ this.applyButtonsForSample(sampleId);
518
+ }
519
+ }
520
+ deleteBtns(sampleId) {
521
+ const cached = this.rendered.get(sampleId);
522
+ if (cached) {
523
+ cached.cell.selectAll(".sjpp-sc-table-plot-btn").remove();
524
+ this.rendered.delete(sampleId);
525
+ }
526
+ }
527
+ /** Applies buttons for a single sample. Skips DOM work if cell and plots are unchanged. */
528
+ applyButtonsForSample(sampleId) {
529
+ const sampleSandboxes = this.activeSandboxes.get(sampleId);
530
+ if (!sampleSandboxes || sampleSandboxes.length === 0) return;
531
+ if (!this.table) return;
532
+ const cell = this.table.rowMap.get(sampleId)?.cells?.shownPlots;
533
+ if (!cell) return;
534
+ const plotIds = sampleSandboxes.map((s) => s.plotId).join(",");
535
+ const cached = this.rendered.get(sampleId);
536
+ if (cached && cached.cell === cell && cached.plotIds === plotIds) return;
537
+ cell.selectAll(".sjpp-sc-table-plot-btn").remove();
538
+ this.rendered.set(sampleId, { cell, plotIds });
539
+ for (const { div, plotName } of sampleSandboxes) {
540
+ this.appendPlotBtn(cell, div, plotName, sampleId);
541
+ }
542
+ }
543
+ appendPlotBtn(cell, sandboxDiv, plotName, sampleId) {
544
+ const text = plotName.length > 25 ? plotName.slice(0, 12) + "..." : plotName;
545
+ const label = `Scroll to ${plotName}`;
546
+ 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", () => {
547
+ sandboxDiv.node().scrollIntoView({ behavior: "smooth", block: "start" });
548
+ });
549
+ }
550
+ };
551
+
552
+ // plots/sc/view/PlotButtons.ts
553
+ var PlotButtons = class {
554
+ /** scctTerms and the scTermdbConfig are created on server init and will not change. */
555
+ constructor(interactions, holder, termdbConfig) {
556
+ holder.style("padding", "10px");
557
+ const promptDiv = holder.append("div").style("padding", "10px 0").text("Select data from");
558
+ this.plotBtnsDom = {
559
+ holder,
560
+ promptDiv,
561
+ selectPrompt: promptDiv.append("span"),
562
+ btnsDiv: holder.append("div"),
563
+ tip: new Menu({ padding: "" })
564
+ };
565
+ this.interactions = interactions;
566
+ this.scctTerms = termdbConfig?.termType2terms?.[TermTypeGroups.SINGLECELL_CELLTYPE];
567
+ this.scnvTerms = termdbConfig?.termType2terms?.[TermTypeGroups.SINGLECELL_NUMERIC_VALUE];
568
+ this.scTermdbConfig = termdbConfig.queries.singleCell;
569
+ }
570
+ update(settings, data) {
571
+ const item = settings.sc.item;
572
+ this.plotBtnsDom.holder.style("display", !item ? "none" : "block");
573
+ if (!item) return;
574
+ if (data != null && data.plots) this.data = data;
575
+ this.availablePlots = new Set(this.data?.plots?.map((p) => p.name));
576
+ this.settings = settings;
577
+ this.item = item;
578
+ const name = item.sID;
579
+ this.plotBtnsDom.selectPrompt.text(` ${name}:`);
580
+ this.renderChartBtns();
581
+ }
582
+ renderChartBtns() {
583
+ this.plotBtnsDom.btnsDiv.selectAll("*").remove();
584
+ const disabledPlots = this.scTermdbConfig?.scApp?.disabledPlots || [];
585
+ const btns = this.getChartBtnOpts().filter((b) => !disabledPlots.includes(b.chartType)).filter((b) => b.isVisible());
586
+ 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) => {
587
+ if (plot.open) {
588
+ this.plotBtnsDom.tip.clear().showunder(e.target);
589
+ plot.open(plot, this);
590
+ } else {
591
+ if (!plot.getPlotConfig)
592
+ throw new Error(`No getPlotConfig function defined for this plot button = ${plot.label}`);
593
+ const config = await plot.getPlotConfig();
594
+ await this.interactions.createSubplot(config);
595
+ }
596
+ });
597
+ }
598
+ getChartBtnOpts() {
599
+ const btns = [];
600
+ for (const plot of this.scTermdbConfig?.data?.plots || []) {
601
+ if (!this.availablePlots.has(plot.name)) continue;
602
+ btns.push({
603
+ label: plot.name,
604
+ chartType: "sampleScatter",
605
+ isVisible: () => true,
606
+ getPlotConfig: async () => {
607
+ return await this.getSingleCellConfig(plot.name);
608
+ }
609
+ });
610
+ }
611
+ btns.push(
612
+ {
613
+ label: "Summary",
614
+ chartType: "dictionary",
615
+ /** Note: if only spatial image available, this plot should not show. */
616
+ isVisible: () => this.availablePlots.has("dictionary"),
617
+ getPlotConfig: () => {
618
+ const sample = { ...this.item, plots: Array.from(this.availablePlots) };
619
+ const isMeta = sample?.isMetaResult || false;
620
+ return {
621
+ chartType: "dictionary",
622
+ sample,
623
+ spawnConfig: {
624
+ parentId: this.interactions.id,
625
+ headerText: this.makeHeaderText(sample, isMeta),
626
+ hidePlotFilter: !isMeta,
627
+ sample
628
+ },
629
+ tree: {
630
+ usecase: {
631
+ target: "dictionary",
632
+ specialCase: {
633
+ type: "singleCell",
634
+ config: { sample }
635
+ }
636
+ }
637
+ }
638
+ };
639
+ }
640
+ },
641
+ {
642
+ label: "Gene expression",
643
+ chartType: "GeneExpInput",
644
+ isVisible: () => this.scTermdbConfig?.geneExpression && this.availablePlots.has(this.scTermdbConfig.geneExpression?.label || "Gene expression"),
645
+ getPlotConfig: () => {
646
+ const sample = this.item;
647
+ const isMeta = sample?.isMetaResult || false;
648
+ const headerText = this.makeHeaderText(sample, isMeta);
649
+ return {
650
+ chartType: "GeneExpInput",
651
+ termType: SINGLECELL_GENE_EXPRESSION,
652
+ headerText,
653
+ termProperties: { sample },
654
+ parentId: this.interactions.id,
655
+ sample,
656
+ spawnConfig: {
657
+ parentId: this.interactions.id,
658
+ headerText,
659
+ hidePlotFilter: !isMeta,
660
+ /** Must pass this to summary config in the event a continuous
661
+ * overlay is applied, launching the scatter plot. Without it,
662
+ * the single cell model is not used. */
663
+ singleCellPlot: {
664
+ name: [...this.availablePlots][0],
665
+ sample
666
+ }
667
+ }
668
+ };
669
+ }
670
+ },
671
+ {
672
+ label: "Differential expression",
673
+ chartType: "DA",
674
+ isVisible: () => this.scTermdbConfig?.DEgenes,
675
+ open: this.termDropdownMenu,
676
+ getPlotConfig: (value) => {
677
+ const isMeta = this.item?.isMetaResult || false;
678
+ return {
679
+ chartType: "differentialAnalysis",
680
+ termType: SINGLECELL_CELLTYPE,
681
+ categoryName: `${value}`,
682
+ headerText: `${isMeta ? "" : "Sample: "}${this.item.sID}, ${this.scTermdbConfig.DEgenes.termId} ${value}`,
683
+ termId: this.scTermdbConfig.DEgenes.termId,
684
+ sample: this.item,
685
+ plotName: "Differential expression"
686
+ };
687
+ }
688
+ },
689
+ {
690
+ label: this.scTermdbConfig?.images?.label || "Image",
691
+ chartType: "imagePlot",
692
+ isVisible: () => this.scTermdbConfig?.images && this.availablePlots.has(this.scTermdbConfig.images.label || "Image"),
693
+ getPlotConfig: () => {
694
+ const isMeta = this.item?.isMetaResult || false;
695
+ return {
696
+ chartType: "imagePlot",
697
+ sample: this.item,
698
+ imgDir: this.scTermdbConfig?.images,
699
+ headerText: this.makeHeaderText(this.item, isMeta),
700
+ settings: { imagePlot: { width: "", height: 400 } }
701
+ };
702
+ }
703
+ },
704
+ {
705
+ // spatial tissue viewer for samples with a spatial image (the model's
706
+ // wsiBySample probe sets data.hasSpatial); spawns the w2 wsi plot in
707
+ // fixed-sample mode, which has its own burger menu for the overlays
708
+ label: "Spatial",
709
+ chartType: "wsi",
710
+ isVisible: () => !!this.data?.hasSpatial,
711
+ getPlotConfig: () => {
712
+ const sample = this.item;
713
+ return {
714
+ chartType: "wsi",
715
+ name: `Sample: ${sample.sID} Spatial`,
716
+ sample,
717
+ plotName: "Spatial"
718
+ };
719
+ }
720
+ }
721
+ );
722
+ return btns;
723
+ }
724
+ makeHeaderText(sample, isMeta, plot) {
725
+ const caseText = sample.case ? ` Case: ${sample.case}` : "";
726
+ const projectText = sample?.["project id"] ? ` Project: ${sample["project id"]}` : "";
727
+ return `${isMeta ? "" : "Sample: "}${sample.sID}${caseText}${projectText}${plot ? ` (${plot})` : ""}`;
728
+ }
729
+ //********** Btn Menus **********/
730
+ async termDropdownMenu(plot, self) {
731
+ const _plot = Array.from(self.availablePlots)[0];
732
+ const options = await self.interactions.getDropDownOptions([_plot]);
733
+ if (!options?.length) throw new Error("No options found for this plot. Cannot open dropdown menu.");
734
+ self.plotBtnsDom.tip.clear();
735
+ const wrapper = self.plotBtnsDom.tip.d.append("div").style("padding", "10px");
736
+ 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:`);
737
+ const select = wrapper.append("select").style("margin", "10px 0").style("width", "auto").style("padding", "5px").on("change", async function() {
738
+ self.plotBtnsDom.tip.hide();
739
+ const value = select.node().value;
740
+ if (value.indexOf("Select") == 0) return;
741
+ const config = plot.getPlotConfig(value);
742
+ await self.interactions.createSubplot(config);
743
+ });
744
+ const regex = new RegExp(self.scTermdbConfig.DEgenes.termId, "gi");
745
+ options.unshift(`Select a ${self.scTermdbConfig.DEgenes.termId}...`);
746
+ for (const cluster of options) {
747
+ select.append("option").attr("value", cluster.replace(regex, "").trim()).text(cluster);
748
+ }
749
+ }
750
+ //********** Plot Config Helpers **********/
751
+ async getSingleCellConfig(plotName) {
752
+ if (!this.item) throw new Error("No item selected");
753
+ const plot = this.scTermdbConfig.data.plots.find((p) => p.name == plotName);
754
+ if (!plot) throw new Error(`No plot by name ${plotName} in data.plots.`);
755
+ const sample = this.item;
756
+ const isMeta = sample?.isMetaResult || false;
757
+ const config = {
758
+ chartType: "sampleScatter",
759
+ name: this.makeHeaderText(sample, isMeta, plotName),
760
+ sample,
761
+ singleCellPlot: {
762
+ name: plotName,
763
+ sample
764
+ }
765
+ };
766
+ if (plot.colorColumns?.[0]) {
767
+ const key = plot.colorColumns[0]?.type == "numeric" ? "scnv" : "scct";
768
+ config.colorTW = await this.makeScTW(key, sample, plot);
769
+ }
770
+ return config;
771
+ }
772
+ // Quick fix. Eventually use the handler to get the proper term from the termdbConfig
773
+ async makeScTW(key, item, plot) {
774
+ if (!key) throw new Error("Key is required for makeScTW");
775
+ const colorColName = plot.colorColumns[0].name;
776
+ const savedTerm = this[`${key}Terms`]?.find((t) => t.name == colorColName && t.plot == plot.name);
777
+ if (!savedTerm) {
778
+ const ttg = key === "scct" ? TermTypeGroups.SINGLECELL_CELLTYPE : TermTypeGroups.SINGLECELL_NUMERIC_VALUE;
779
+ throw new Error(`No term found for colorColumn=${colorColName} in .termType2terms.${ttg} for plot ${plot.name}`);
780
+ }
781
+ const term = Object.assign(structuredClone(savedTerm), {
782
+ sample: item
783
+ });
784
+ const id = await digestMessage(`${plot.name}-${item.sID}-${item.eID}`);
785
+ return Object.assign({ $id: id }, { term });
786
+ }
787
+ };
788
+
789
+ // plots/sc/view/SectionRenderer.ts
790
+ var SectionRenderer = class {
791
+ constructor(sectionsDiv, groupBy) {
792
+ this.sections = {};
793
+ this.holder = sectionsDiv;
794
+ this.plotId2Key = /* @__PURE__ */ new Map();
795
+ this.groupBy = groupBy;
796
+ }
797
+ /** Send the sc with the updated state. May not be necessary long term. If not,
798
+ * remove and put in the constructor. */
799
+ async update(sc, subplots, groupBy) {
800
+ if (groupBy !== this.groupBy) {
801
+ this.groupBy = groupBy;
802
+ this.regroupSections(sc, subplots);
803
+ return;
804
+ }
805
+ const activeSubplots = new Set(subplots.map((s) => s.id));
806
+ for (const plotId of Array.from(this.plotId2Key.keys())) {
807
+ if (!activeSubplots.has(plotId)) this.removeSandbox(plotId);
808
+ }
809
+ for (const subplot of subplots) {
810
+ const key = this.getKey(subplot, sc);
811
+ if (!key) continue;
812
+ if (!this.sections[key]) this.initSection(key, sc);
813
+ if (!this.sections[key].sandboxes[subplot.id]) {
814
+ this.plotId2Key.set(subplot.id, key);
815
+ sc.subplotManager.setSectionKey(subplot.id, key);
816
+ await this.initSandbox(sc, subplot, key);
817
+ }
818
+ }
819
+ for (const key of Object.keys(this.sections)) {
820
+ if (Object.keys(this.sections[key].sandboxes).length === 0) {
821
+ this.removeSection(key, sc);
822
+ }
823
+ }
824
+ }
825
+ /** Reparent existing sandboxes into new section containers
826
+ * without destroying/recreating plot components. */
827
+ regroupSections(sc, subplots) {
828
+ const detached = /* @__PURE__ */ new Map();
829
+ for (const [plotId, key] of this.plotId2Key) {
830
+ const sandboxNode = this.sections[key]?.sandboxes[plotId];
831
+ if (sandboxNode) {
832
+ sandboxNode.remove();
833
+ detached.set(plotId, sandboxNode);
834
+ }
835
+ }
836
+ this.holder.selectAll("*").remove();
837
+ this.sections = {};
838
+ this.plotId2Key = /* @__PURE__ */ new Map();
839
+ for (const subplot of subplots) {
840
+ const key = this.getKey(subplot, sc);
841
+ if (!key) continue;
842
+ if (!this.sections[key]) this.initSection(key, sc);
843
+ this.plotId2Key.set(subplot.id, key);
844
+ sc.subplotManager.setSectionKey(subplot.id, key);
845
+ const existing = detached.get(subplot.id);
846
+ if (existing) {
847
+ this.sections[key].subplots.node().prepend(existing.node());
848
+ this.sections[key].sandboxes[subplot.id] = existing;
849
+ }
850
+ }
851
+ }
852
+ getKey(subplot, sc) {
853
+ if (this.groupBy === "none") return "none";
854
+ if (this.groupBy === "sample") return this.getSampleId(subplot);
855
+ return sc.subplotManager.getPlotName(subplot);
856
+ }
857
+ /** Extract sID from a subplot's config.
858
+ * Actual subplots store sample as {sID, eID} at top level or on term.term.sample. */
859
+ getSampleId(subplot) {
860
+ return subplot.sample?.sID || subplot.singleCellPlot?.sample?.sID || subplot.term?.term?.sample?.sID;
861
+ }
862
+ initSection(key, sc) {
863
+ const item = this.findSampleMetadata(key, sc);
864
+ const titleAttrText = this.groupBy == "sample" ? "this sample section" : this.groupBy == "plot" ? "this plot section" : "all plots";
865
+ const sectionWrapper = this.holder.insert("div", ":first-child").style("padding", "10px").attr("data-testid", `sjpp-sc-section-wrapper-${key}`);
866
+ sectionWrapper.append("span").attr("data-testid", `sjpp-sc-section-remove-btn-${key}`).style("margin", "0px 5px").style("cursor", "pointer").attr("title", `Remove ${titleAttrText}`).html(
867
+ `<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="#000" class="bi bi-x-lg" viewBox="0 0 12 12">
868
+ <path
869
+ stroke="#000"
870
+ transform="scale(0.75)"
871
+ 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"/>
872
+ </svg>`
873
+ ).on("click", () => {
874
+ this.removeSection(key, sc);
875
+ });
876
+ const titleText = this.makeSectionTitleText(key, item);
877
+ const titleWrapper = sectionWrapper.append("span").style("font-weight", 600).style("opacity", 0.7).text(titleText);
878
+ if (titleText.length) {
879
+ const arrow = titleWrapper.append("span").style("font-size", "0.8em").style("padding-left", "3px").attr("title", `Show/hide plots in ${titleAttrText}`).text("\u25BC");
880
+ titleWrapper.on("click", () => {
881
+ const isHidden = this.sections[key].subplots.style("display") === "none";
882
+ this.sections[key].subplots.style("display", isHidden ? "block" : "none");
883
+ arrow.text(isHidden ? "\u25BC" : "\u25B2");
884
+ });
885
+ }
886
+ this.sections[key] = {
887
+ sectionWrapper,
888
+ title: titleWrapper,
889
+ subplots: sectionWrapper.append("div").attr("data-testid", `sjpp-sc-subplots-${key}`),
890
+ sandboxes: {}
891
+ };
892
+ }
893
+ /** Look up sample metadata from the fetched items list.
894
+ * For experiment datasets, matches sID against experiments[].sampleName.
895
+ * For non-experiment datasets, matches sID against item.sample. */
896
+ findSampleMetadata(sampleId, sc) {
897
+ if (!sc.items) return void 0;
898
+ return sc.items.find((item) => item.sample === sampleId || item.experiments?.some((e) => e.sampleName === sampleId));
899
+ }
900
+ makeSectionTitleText(key, item) {
901
+ if (this.groupBy === "none") return "All plots";
902
+ if (this.groupBy === "plot") return key;
903
+ const caseText = item?.sample && item.sample !== key ? `Case: ${item.sample}` : "";
904
+ const isMeta = item?.isMetaResult || false;
905
+ const itemText = `${isMeta ? "" : "Sample: "}${key}`;
906
+ const projectProp = item?.case?.project?.project_id || item?.["project id"];
907
+ const projectText = projectProp ? `Project: ${projectProp}` : "";
908
+ return [itemText, caseText, projectText].filter(Boolean).join(" ");
909
+ }
910
+ async initSandbox(sc, subplot, key) {
911
+ const sandboxHolder = this.sections[key].subplots.insert("div", ":first-child").attr("data-testid", `sjpp-sc-sandbox-${subplot.id}`);
912
+ const sandboxDiv = await sc.subplotManager.initSubplotSandbox(sandboxHolder, subplot, {
913
+ sectionKey: key
914
+ });
915
+ this.sections[key].sandboxes[subplot.id] = sandboxDiv;
916
+ }
917
+ removeSection(key, sc) {
918
+ const subactions = [];
919
+ for (const plotId of Object.keys(this.sections[key].sandboxes || {})) {
920
+ this.removeSandbox(plotId, key);
921
+ subactions.push({
922
+ type: "plot_delete",
923
+ id: plotId,
924
+ parentId: sc.id
925
+ });
926
+ }
927
+ if (subactions.length > 0) {
928
+ sc.app.dispatch({
929
+ type: "app_refresh",
930
+ subactions
931
+ });
932
+ }
933
+ this.sections[key].sectionWrapper.remove();
934
+ delete this.sections[key];
935
+ }
936
+ removeSandbox(plotId, _key) {
937
+ const key = _key || this.plotId2Key.get(plotId);
938
+ if (!key) return;
939
+ const section = this.sections[key];
940
+ const sandbox = section?.sandboxes?.[plotId];
941
+ if (sandbox) sandbox.remove();
942
+ if (section?.sandboxes?.[plotId]) delete section.sandboxes[plotId];
943
+ this.plotId2Key.delete(plotId);
944
+ }
945
+ };
946
+
947
+ // plots/sc/settings/Settings.ts
948
+ var GroupByOptions = ["sample", "plot", "none"];
949
+
950
+ // plots/sc/view/SCViewRenderer.ts
951
+ var SCViewRenderer = class _SCViewRenderer {
952
+ static {
953
+ //On load, show table
954
+ //Eventually maybe an app dispatch and not a flag
955
+ this.inUse = true;
956
+ }
957
+ constructor(sc) {
958
+ this.sc = sc;
959
+ this.dom = sc.dom;
960
+ this.interactions = sc.interactions;
961
+ this.dom.controlsDiv.style("padding", "10px");
962
+ }
963
+ render(settings, state) {
964
+ this.renderSelectBtn();
965
+ this.renderGroupByOptions(settings);
966
+ this.plotBtns = new PlotButtons(this.interactions, this.dom.plotsBtnsDiv, state.termdbConfig);
967
+ this.sectionRenderer = new SectionRenderer(this.dom.sectionsDiv, settings.groupBy);
968
+ }
969
+ /** Renders the select btn at the top of the page that
970
+ * show/hides the item table and plot buttons */
971
+ renderSelectBtn() {
972
+ 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 and plots");
973
+ const arrowSpan = btn.append("span").style("font-size", "0.8em").style("padding-left", "3px").text("\u25BC");
974
+ btn.on("click", () => {
975
+ _SCViewRenderer.inUse = !_SCViewRenderer.inUse;
976
+ arrowSpan.text(_SCViewRenderer.inUse ? "\u25BC" : "\u25B2");
977
+ this.dom.tableDiv.style("display", _SCViewRenderer.inUse ? "block" : "none");
978
+ this.dom.plotsBtnsDiv.style("display", _SCViewRenderer.inUse ? "block" : "none");
979
+ });
980
+ }
981
+ renderGroupByOptions(settings) {
982
+ this.groupsWrapper = this.dom.controlsDiv.append("div").style("display", "none");
983
+ this.groupsWrapper.append("span").style("padding", "3px 0px 3px 20px").style("opacity", 0.7).text("Group by:");
984
+ const optionsDiv = this.groupsWrapper.append("span").style("display", "inline-block");
985
+ const options = GroupByOptions.map((option) => {
986
+ return {
987
+ label: `${option.charAt(0).toUpperCase() + option.slice(1)}`,
988
+ value: option,
989
+ checked: settings.groupBy === option
990
+ };
991
+ });
992
+ make_radios({
993
+ holder: optionsDiv,
994
+ styles: { display: "inline-block" },
995
+ options,
996
+ callback: async (value) => {
997
+ await this.sc.app.dispatch({
998
+ type: "plot_edit",
999
+ id: this.sc.id,
1000
+ config: { settings: { sc: { ...settings, groupBy: value } } }
1001
+ });
1002
+ }
1003
+ });
1004
+ }
1005
+ async update(settings, data, activeSubplots, tableData, subplotManager) {
1006
+ if (!this.sampleTableRenderer) {
1007
+ this.sampleTableRenderer = new SampleTableRenderer(this.dom, this.interactions, tableData);
1008
+ } else {
1009
+ this.sampleTableRenderer.updateTable(tableData);
1010
+ }
1011
+ this.plotBtns.update(settings, data);
1012
+ await this.sectionRenderer.update(
1013
+ this.sc,
1014
+ activeSubplots.map((s) => s.subplot),
1015
+ settings.sc.groupBy
1016
+ );
1017
+ const activeSandboxes = subplotManager.getSampleSandboxes();
1018
+ this.groupsWrapper.style("display", activeSandboxes.size > 1 ? "inline-block" : "none");
1019
+ this.sampleTableRenderer.updatePlotBtns(activeSandboxes);
1020
+ }
1021
+ };
1022
+
1023
+ // plots/sc/settings/defaults.ts
1024
+ function getDefaultSCAppSettings(overrides = {}, app) {
1025
+ const defaults = {
1026
+ sc: {
1027
+ columns: {
1028
+ sample: "Sample"
1029
+ },
1030
+ item: void 0,
1031
+ groupBy: "sample"
1032
+ },
1033
+ hierCluster: {
1034
+ unit: getGEunit(app.vocabApi),
1035
+ yDendrogramHeight: 0,
1036
+ clusterSamples: false
1037
+ }
1038
+ };
1039
+ return Object.assign(defaults, overrides);
1040
+ }
1041
+
1042
+ // plots/sc/subplots/DynamicSubplot.ts
1043
+ var DynamicSubplot = class _DynamicSubplot {
1044
+ constructor(opts) {
1045
+ this.dom = {};
1046
+ this.type = _DynamicSubplot.type;
1047
+ this.opts = opts;
1048
+ this.app = opts.app;
1049
+ this.parentId = opts?.parentId;
1050
+ }
1051
+ static {
1052
+ this.type = "dynamicSubplot";
1053
+ }
1054
+ async init() {
1055
+ this.opts.holder.app_div.attr("data-testid", "sjpp-sc-subplot-sandbox-" + this.opts.chartType);
1056
+ if (this.opts.chartType == "summary") return;
1057
+ this.dom = {
1058
+ holder: this.opts.holder,
1059
+ viz: this.opts.holder.body.append("div").style("position", "relative"),
1060
+ paneTitleDiv: this.opts.holder.header.append("div").style("position", "relative"),
1061
+ filterDiv: this.opts.holder.header.append("div").style("position", "relative"),
1062
+ errorDiv: this.opts.holder.body.append("div").style("position", "relative")
1063
+ };
1064
+ }
1065
+ getState(appState) {
1066
+ const config = appState.plots.find((p) => p.id === this.id);
1067
+ if (!config) {
1068
+ throw `No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`;
1069
+ }
1070
+ return {
1071
+ config
1072
+ };
1073
+ }
1074
+ async main() {
1075
+ if (!this.components) await this.setComponents();
1076
+ }
1077
+ async setComponents() {
1078
+ const _ = await importPlot(this.opts.chartType);
1079
+ const chartOpts = {
1080
+ app: this.app,
1081
+ id: this.id,
1082
+ parentId: this.parentId
1083
+ };
1084
+ if (this.opts.chartType == "summary") {
1085
+ chartOpts.holder = this.opts.holder;
1086
+ chartOpts.hidePlotFilter = this.opts.isMetaResult;
1087
+ } else {
1088
+ chartOpts.holder = this.dom.viz;
1089
+ chartOpts.header = this.dom.paneTitleDiv;
1090
+ }
1091
+ const promises = {
1092
+ chart: _.componentInit(chartOpts)
1093
+ };
1094
+ if (!this.state.config?.hidePlotFilter && this.opts.isMetaResult && this.opts.chartType != "summary") {
1095
+ promises.filter = filterRxCompInit({
1096
+ app: this.app,
1097
+ vocabApi: this.app.vocabApi,
1098
+ parentId: this.id,
1099
+ holder: this.dom.filterDiv,
1100
+ hideLabel: true,
1101
+ emptyLabel: "+Add new filter",
1102
+ callback: (filter) => {
1103
+ this.app.dispatch({
1104
+ id: this.id,
1105
+ type: "plot_edit",
1106
+ config: { filter }
1107
+ });
1108
+ }
1109
+ });
1110
+ }
1111
+ this.components = await multiInit(promises);
1112
+ }
1113
+ destroy() {
1114
+ const appDiv = this.dom?.holder?.app_div;
1115
+ if (appDiv) {
1116
+ appDiv.selectAll("*").remove();
1117
+ appDiv.remove();
1118
+ }
1119
+ for (const key in this.dom) {
1120
+ delete this.dom[key];
1121
+ }
1122
+ }
1123
+ };
1124
+ var dynamicSubplotInit = getCompInit(DynamicSubplot);
1125
+
1126
+ // plots/sc/subplots/SubplotManager.ts
1127
+ var SubplotManager = class {
1128
+ constructor(sc) {
1129
+ this.sc = sc;
1130
+ this.scCompPlots = this.sc.components.plots;
1131
+ this.records = /* @__PURE__ */ new Map();
1132
+ }
1133
+ map(subplots) {
1134
+ const subplotIds = new Set(subplots.map((s) => s.id));
1135
+ for (const compPlotId of Object.keys(this.scCompPlots)) {
1136
+ if (!subplotIds.has(compPlotId)) {
1137
+ this.removeSubplot(compPlotId);
1138
+ }
1139
+ }
1140
+ for (const recordId of Array.from(this.records.keys())) {
1141
+ if (!subplotIds.has(recordId)) this.records.delete(recordId);
1142
+ }
1143
+ for (const subplot of subplots) {
1144
+ this.updateSubplotRecord(subplot);
1145
+ }
1146
+ return this.getActiveSubplotsFlat();
1147
+ }
1148
+ updateSubplotRecord(subplot) {
1149
+ const existing = this.records.get(subplot.id);
1150
+ const sampleId = this.getSampleId(subplot);
1151
+ const isMeta = sampleId && this.sc.viewModel.metaResultIds.has(sampleId) || false;
1152
+ this.records.set(subplot.id, {
1153
+ plotId: subplot.id,
1154
+ sampleId,
1155
+ plotName: this.getPlotName(subplot),
1156
+ sectionKey: existing?.sectionKey,
1157
+ subplot,
1158
+ sandboxDiv: existing?.sandboxDiv,
1159
+ isMetaResult: isMeta
1160
+ });
1161
+ }
1162
+ removeSubplot(subplotId) {
1163
+ if (this.scCompPlots[subplotId]) this.scCompPlots[subplotId].destroy();
1164
+ delete this.scCompPlots[subplotId];
1165
+ this.records.delete(subplotId);
1166
+ }
1167
+ async initSubplotSandbox(sandboxHolder, subplot, initOpts = {}) {
1168
+ const sandbox = newSandboxDiv(sandboxHolder, {
1169
+ close: () => {
1170
+ this.removeSubplot(subplot.id);
1171
+ this.sc.app.dispatch({
1172
+ type: "plot_delete",
1173
+ id: subplot.id,
1174
+ parentId: this.sc.id
1175
+ });
1176
+ if (initOpts.onClose) initOpts.onClose();
1177
+ },
1178
+ plotId: subplot.id
1179
+ });
1180
+ const subplotOpts = Object.assign({}, subplot, {
1181
+ app: this.sc.app,
1182
+ parentId: this.sc.id,
1183
+ id: subplot.id,
1184
+ holder: sandbox,
1185
+ isMetaResult: this.records.get(subplot.id)?.isMetaResult || false
1186
+ });
1187
+ this.scCompPlots[subplot.id] = await dynamicSubplotInit(subplotOpts);
1188
+ this.setSandbox(subplot.id, sandbox.app_div);
1189
+ if (initOpts.sectionKey) this.setSectionKey(subplot.id, initOpts.sectionKey);
1190
+ return sandbox.app_div;
1191
+ }
1192
+ setSandbox(plotId, sandboxDiv) {
1193
+ const record = this.records.get(plotId);
1194
+ if (!record) return;
1195
+ record.sandboxDiv = sandboxDiv;
1196
+ this.records.set(plotId, record);
1197
+ }
1198
+ setSectionKey(plotId, sectionKey) {
1199
+ const record = this.records.get(plotId);
1200
+ if (!record) return;
1201
+ record.sectionKey = sectionKey;
1202
+ this.records.set(plotId, record);
1203
+ }
1204
+ getActiveSubplotsFlat() {
1205
+ return Array.from(this.records.values());
1206
+ }
1207
+ getSampleId(subplot) {
1208
+ return subplot.sample?.sID || subplot.singleCellPlot?.sample?.sID || subplot.term?.term?.sample?.sID;
1209
+ }
1210
+ getPlotName(subplot) {
1211
+ const nameOverrides = /* @__PURE__ */ new Map([
1212
+ ["GeneExpInput", "Gene expression"],
1213
+ ["imagePlot", subplot?.imgDir?.label || "Image"],
1214
+ ["dictionary", "Summary"],
1215
+ ["summary", "Summary"]
1216
+ ]);
1217
+ let plotName = subplot?.plotName || nameOverrides.get(subplot?.chartType) || subplot?.singleCellPlot?.name;
1218
+ if (!plotName) {
1219
+ if (subplot?.term?.term?.plot) plotName = subplot.term.term.plot;
1220
+ else plotName = subplot.chartType || "Plot";
1221
+ }
1222
+ return plotName;
1223
+ }
1224
+ getSampleSandboxes(activeSubplots = this.getActiveSubplotsFlat()) {
1225
+ const sandboxes = /* @__PURE__ */ new Map();
1226
+ for (const active of activeSubplots) {
1227
+ if (!active.sampleId || !active.sandboxDiv) continue;
1228
+ if (!sandboxes.has(active.sampleId)) sandboxes.set(active.sampleId, []);
1229
+ sandboxes.get(active.sampleId).push({ plotId: active.plotId, div: active.sandboxDiv, plotName: active.plotName });
1230
+ }
1231
+ return sandboxes;
1232
+ }
1233
+ };
1234
+
1235
+ // plots/sc/SC.ts
1236
+ var SCViewer = class _SCViewer extends PlotBase {
1237
+ static {
1238
+ this.type = "sc";
1239
+ }
1240
+ constructor(opts, api) {
1241
+ super(opts, api);
1242
+ this.type = _SCViewer.type;
1243
+ this.components = {
1244
+ plots: {}
1245
+ };
1246
+ const div = opts.holder.classed("sjpp-sc-main", true).append("div").style("padding", "5px").style("display", "inline-block").style("vertical-align", "top");
1247
+ this.dom = {
1248
+ div,
1249
+ 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"),
1250
+ controlsDiv: div.append("div").attr("id", "sjpp-sc-controls-btn"),
1251
+ tableDiv: div.append("div").attr("id", "sjpp-sc-item-table"),
1252
+ plotsBtnsDiv: div.append("div").attr("id", "sjpp-sc-plot-buttons").style("display", "none"),
1253
+ sectionsDiv: div.append("div").attr("id", "sjpp-sc-sections")
1254
+ };
1255
+ if (opts.header) formatHeaderText({
1256
+ header: opts.header,
1257
+ chartType: "SINGLE CELL"
1258
+ });
1259
+ }
1260
+ getState(appState) {
1261
+ const config = appState.plots.find((p) => p.id === this.id);
1262
+ if (!config) {
1263
+ throw new Error(
1264
+ `No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`
1265
+ );
1266
+ }
1267
+ const termfilter = getCombinedTermFilter(appState, config.filter);
1268
+ return {
1269
+ config,
1270
+ subplots: appState.plots.filter((p) => p.parentId === this.id),
1271
+ termfilter,
1272
+ termdbConfig: appState.termdbConfig,
1273
+ vocab: appState.vocab
1274
+ };
1275
+ }
1276
+ async init(appState) {
1277
+ const state = this.getState(appState);
1278
+ const dsScSamples = state.termdbConfig.queries?.singleCell?.samples;
1279
+ this.model = new SCModel(this);
1280
+ try {
1281
+ this.itemColumns = await this.model.getColumnLabels(dsScSamples);
1282
+ } catch (e) {
1283
+ if (e instanceof Error) console.error(`${e.message || e} [SC init()]`);
1284
+ else if (e.stack) console.log(e.stack);
1285
+ throw new Error(e.message || e);
1286
+ }
1287
+ this.viewModel = new SCViewModel(this.app, this.itemColumns);
1288
+ this.interactions = new SCInteractions(this);
1289
+ this.subplotManager = new SubplotManager(this);
1290
+ this.view = new SCViewRenderer(this);
1291
+ this.view.render(state.config.settings.sc, state);
1292
+ }
1293
+ async main() {
1294
+ if (!this.model) throw new Error(`Model not initialized`);
1295
+ if (!this.viewModel) throw new Error(`ViewModel not initialized`);
1296
+ if (!this.view) throw new Error(`View not initialized`);
1297
+ if (!this.interactions) throw new Error(`Interactions not initialized`);
1298
+ const state = structuredClone(this.state);
1299
+ const config = state.config;
1300
+ super.toggleLoadingDiv();
1301
+ let data;
1302
+ try {
1303
+ const allSampleData = await this.model.getAllSampleData(state);
1304
+ if (!allSampleData || allSampleData.error) {
1305
+ super.toggleLoadingDiv("none");
1306
+ super.printError(allSampleData?.error || "No samples found for this dataset");
1307
+ return;
1308
+ }
1309
+ this.items = allSampleData.samples;
1310
+ this.viewModel.processData(config, allSampleData.samples);
1311
+ if (config.settings?.sc?.item) {
1312
+ const sampleData = await this.model.getSampleData();
1313
+ if (!sampleData || sampleData.error) {
1314
+ super.toggleLoadingDiv("none");
1315
+ super.printError(sampleData?.error || "No data found for this sample");
1316
+ return;
1317
+ }
1318
+ const hasSpatial = await this.model.hasSpatialImage(config.settings.sc.item.sID);
1319
+ data = this.viewModel.formatPlotsData(sampleData, hasSpatial);
1320
+ }
1321
+ } catch (e) {
1322
+ if (e instanceof Error) console.error(`${e.message || e} [SC main()]`);
1323
+ else if (e.stack) console.log(e.stack);
1324
+ super.toggleLoadingDiv("none");
1325
+ super.printError(e.message || e);
1326
+ return;
1327
+ }
1328
+ const activeSubplots = this.subplotManager.map(state.subplots);
1329
+ await this.view.update(config.settings, data, activeSubplots, this.viewModel.tableData, this.subplotManager);
1330
+ super.toggleLoadingDiv("none");
1331
+ }
1332
+ };
1333
+ var SCInit = getCompInit(SCViewer);
1334
+ var componentInit = SCInit;
1335
+ function getPlotConfig(opts, app) {
1336
+ const config = {
1337
+ chartType: "sc",
1338
+ settings: getDefaultSCAppSettings(opts.overrides, app)
1339
+ };
1340
+ return copyMerge(config, opts);
1341
+ }
1342
+ export {
1343
+ SCInit,
1344
+ SCViewer,
1345
+ componentInit,
1346
+ getPlotConfig
1347
+ };
1348
+ //# sourceMappingURL=SC-AJWKVCOK.js.map