@sjcrh/proteinpaint-client 2.198.0 → 2.200.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 (1066) hide show
  1. package/dist/2dmaf-RRV3ORZR.js +1373 -0
  2. package/dist/AIProjectAdmin-DKLEFCGX.js +958 -0
  3. package/dist/AppHeader-WQ2F7HZY.js +835 -0
  4. package/dist/BoxPlot-5JQCYENZ.js +1218 -0
  5. package/dist/BoxPlot-5JQCYENZ.js.map +7 -0
  6. package/dist/CorrelationVolcano-HR6IP2SZ.js +619 -0
  7. package/dist/DE-DAW6ZKM7.js +95 -0
  8. package/dist/DEinput-XCR4VMR3.js +409 -0
  9. package/dist/DEinput-XCR4VMR3.js.map +7 -0
  10. package/dist/DifferentialAnalysis-SETJAZEN.js +243 -0
  11. package/dist/DifferentialAnalysis-SETJAZEN.js.map +7 -0
  12. package/dist/Disco-QEBEVQS2.js +3392 -0
  13. package/dist/Disco.UI-OYVL7UBI.js +248 -0
  14. package/dist/Disco.UI-OYVL7UBI.js.map +7 -0
  15. package/dist/DmrPlot-CWBQDZL7.js +642 -0
  16. package/dist/GB-5PYCR4SV.js +1396 -0
  17. package/dist/GB-5PYCR4SV.js.map +7 -0
  18. package/dist/GSEA-6UKMI6GY.js +846 -0
  19. package/dist/GeneExpInput-2N62XM7Z.js +367 -0
  20. package/dist/GeneExpInput-2N62XM7Z.js.map +7 -0
  21. package/dist/Geomap-ANMR32HE.js +89 -0
  22. package/dist/HicApp-WHPUPHEM.js +2250 -0
  23. package/dist/IDCViewer-FWXRE4AX.js +10817 -0
  24. package/dist/IDCViewer-FWXRE4AX.js.map +7 -0
  25. package/dist/NumBinaryEditor-VG5KOGDA.js +271 -0
  26. package/dist/NumBinaryEditor.unit.spec-UCGFZS3P.js +286 -0
  27. package/dist/NumContEditor-J52RON3G.js +109 -0
  28. package/dist/NumContEditor.unit.spec-5GTWUJEL.js +169 -0
  29. package/dist/NumCustomBinEditor-GM2OJMOX.js +38 -0
  30. package/dist/NumCustomBinEditor.unit.spec-3PGJ25J4.js +284 -0
  31. package/dist/NumDiscreteEditor-2CAKT3Y4.js +179 -0
  32. package/dist/NumDiscreteEditor.unit.spec-XCWSJTRT.js +202 -0
  33. package/dist/NumRegularBinEditor-CZYITY5L.js +38 -0
  34. package/dist/NumRegularBinEditor.unit.spec-OUBZ5XB3.js +227 -0
  35. package/dist/NumSplineEditor-TWRL5AQQ.js +198 -0
  36. package/dist/NumSplineEditor.unit.spec-5P6NQZ3N.js +199 -0
  37. package/dist/NumericDensity-JSOFOEH2.js +38 -0
  38. package/dist/NumericDensity.unit.spec-REUKHMKK.js +221 -0
  39. package/dist/NumericHandler-UZOGKPKB.js +39 -0
  40. package/dist/NumericHandler.unit.spec-X2DAED4O.js +219 -0
  41. package/dist/ProteomeInput-GBVCLNS7.js +394 -0
  42. package/dist/ProteomeInput-GBVCLNS7.js.map +7 -0
  43. package/dist/RunChart2-N4JPWNVV.js +758 -0
  44. package/dist/RunChart2-N4JPWNVV.js.map +7 -0
  45. package/dist/SC-RCZT5BRP.js +1112 -0
  46. package/dist/SC-RCZT5BRP.js.map +7 -0
  47. package/dist/Volcano-2BQ6SYHO.js +1404 -0
  48. package/dist/Volcano-2BQ6SYHO.js.map +7 -0
  49. package/dist/WSIViewer-UDA4WIRT.js +48562 -0
  50. package/dist/WsiSamplesPlot-DYSFMD22.js +165 -0
  51. package/dist/adSandbox-5BUDCAER.js +38 -0
  52. package/dist/animatedBubbleChart-N6MBJ4X3.js +553 -0
  53. package/dist/animatedBubbleChart-N6MBJ4X3.js.map +7 -0
  54. package/dist/app-O64TGDFH.js +37 -0
  55. package/dist/app-Y2STUISK.js +49 -0
  56. package/dist/app.js +23 -23
  57. package/dist/bam-2EOABVGT.js +859 -0
  58. package/dist/bam-2EOABVGT.js.map +7 -0
  59. package/dist/barchart-UHCTYRMJ.js +47 -0
  60. package/dist/barchart.data-LSK2P2PR.js +21 -0
  61. package/dist/barchart.events-Y4H2GADS.js +47 -0
  62. package/dist/barchart.integration.spec-BFGZFECA.js +2243 -0
  63. package/dist/barchart.integration.spec-BFGZFECA.js.map +7 -0
  64. package/dist/barchart2-VIZKZRMP.js +314 -0
  65. package/dist/bars.renderer-54UCFLJS.js +12 -0
  66. package/dist/block-BGSSF6XP.js +6255 -0
  67. package/dist/block.init-H7RKUIHG.js +38 -0
  68. package/dist/block.mds.expressionrank-MA3HGT7S.js +359 -0
  69. package/dist/block.mds.geneboxplot-CWT5DM5T.js +828 -0
  70. package/dist/block.mds.junction-P4I7O73X.js +1545 -0
  71. package/dist/block.mds.svcnv-NSPEY43S.js +6801 -0
  72. package/dist/block.svg-DP4G3LNQ.js +164 -0
  73. package/dist/block.tk.aicheck-EBLTOWKZ.js +283 -0
  74. package/dist/block.tk.ase-X7WKQOFS.js +365 -0
  75. package/dist/block.tk.bam-OIP3TS3N.js +1906 -0
  76. package/dist/block.tk.bedgraphdot-2DDF55J3.js +384 -0
  77. package/dist/block.tk.bigwig.ui-S2SMAEXM.js +211 -0
  78. package/dist/block.tk.bigwig.ui-S2SMAEXM.js.map +7 -0
  79. package/dist/block.tk.hicstraw-4OIG4TBZ.js +823 -0
  80. package/dist/block.tk.junction-52OWEQUN.js +2364 -0
  81. package/dist/block.tk.junction.textmatrixui-64YOSZLW.js +199 -0
  82. package/dist/block.tk.ld-3AMNHBDY.js +99 -0
  83. package/dist/block.tk.menu-4724DJXL.js +1029 -0
  84. package/dist/block.tk.pgv-2SIOPWYI.js +944 -0
  85. package/dist/brainImaging-D43CQQN6.js +423 -0
  86. package/dist/brainImaging-D43CQQN6.js.map +7 -0
  87. package/dist/brainRegions-HJ2VGL3L.js +221 -0
  88. package/dist/bubbleHeatmap-IL44M4QZ.js +383 -0
  89. package/dist/bubbleHeatmap-IL44M4QZ.js.map +7 -0
  90. package/dist/cellTypeBubbleHeatmap-NQP7RCZO.js +283 -0
  91. package/dist/cellTypeBubbleHeatmap-NQP7RCZO.js.map +7 -0
  92. package/dist/chunk-26APRXD3.js +254 -0
  93. package/dist/chunk-2GLA2SWU.js +160 -0
  94. package/dist/chunk-2GLA2SWU.js.map +7 -0
  95. package/dist/chunk-2KXLYFAO.js +4085 -0
  96. package/dist/chunk-3BGFM7Q4.js +1275 -0
  97. package/dist/chunk-3SHZTAGF.js +193 -0
  98. package/dist/chunk-3SHZTAGF.js.map +7 -0
  99. package/dist/chunk-46X6AQ7Z.js +123 -0
  100. package/dist/chunk-46X6AQ7Z.js.map +7 -0
  101. package/dist/chunk-4FQYRDZS.js +276 -0
  102. package/dist/chunk-4FQYRDZS.js.map +7 -0
  103. package/dist/chunk-4HZN6PMU.js +129 -0
  104. package/dist/chunk-4KRGCOTL.js +479 -0
  105. package/dist/chunk-4KRGCOTL.js.map +7 -0
  106. package/dist/chunk-4WF3XDQP.js +220 -0
  107. package/dist/chunk-4WF3XDQP.js.map +7 -0
  108. package/dist/chunk-5DMVORBB.js +98 -0
  109. package/dist/chunk-5QMBB4SK.js +1245 -0
  110. package/dist/chunk-5R63Q5KH.js +1628 -0
  111. package/dist/chunk-5RVA43MN.js +274 -0
  112. package/dist/chunk-5RVA43MN.js.map +7 -0
  113. package/dist/chunk-5T3MOOEJ.js +379 -0
  114. package/dist/chunk-5T3MOOEJ.js.map +7 -0
  115. package/dist/chunk-5T3ZDRTS.js +70 -0
  116. package/dist/chunk-5T3ZDRTS.js.map +7 -0
  117. package/dist/chunk-5ZTVJSYI.js +834 -0
  118. package/dist/chunk-5ZTVJSYI.js.map +7 -0
  119. package/dist/chunk-6JYQGZ3Y.js +446 -0
  120. package/dist/chunk-6OUBUUC2.js +626 -0
  121. package/dist/chunk-6OUBUUC2.js.map +7 -0
  122. package/dist/chunk-6PNPHACF.js +1652 -0
  123. package/dist/chunk-6PNPHACF.js.map +7 -0
  124. package/dist/chunk-6QCYT6G2.js +467 -0
  125. package/dist/chunk-7JRDJNLR.js +263 -0
  126. package/dist/chunk-7JRDJNLR.js.map +7 -0
  127. package/dist/chunk-7PIHRWGG.js +102 -0
  128. package/dist/chunk-7PIHRWGG.js.map +7 -0
  129. package/dist/chunk-7PJNKPQB.js +275 -0
  130. package/dist/chunk-7PJNKPQB.js.map +7 -0
  131. package/dist/chunk-AGLAYNXP.js +170 -0
  132. package/dist/chunk-AGLAYNXP.js.map +7 -0
  133. package/dist/chunk-B4ESQLPB.js +140 -0
  134. package/dist/chunk-B7VDZ6VF.js +399 -0
  135. package/dist/chunk-B7VDZ6VF.js.map +7 -0
  136. package/dist/chunk-BGTBRAJ6.js +50 -0
  137. package/dist/chunk-BGTBRAJ6.js.map +7 -0
  138. package/dist/chunk-BNAO6N5X.js +2899 -0
  139. package/dist/chunk-BNAO6N5X.js.map +7 -0
  140. package/dist/chunk-BQHPJY2M.js +347 -0
  141. package/dist/chunk-BQHPJY2M.js.map +7 -0
  142. package/dist/chunk-BZTWTH4Y.js +87 -0
  143. package/dist/chunk-BZTWTH4Y.js.map +7 -0
  144. package/dist/chunk-CY4RQ5L6.js +1710 -0
  145. package/dist/chunk-CY4RQ5L6.js.map +7 -0
  146. package/dist/chunk-D565DNJD.js +236 -0
  147. package/dist/chunk-D565DNJD.js.map +7 -0
  148. package/dist/chunk-DH3LAQKT.js +384 -0
  149. package/dist/chunk-DH3LAQKT.js.map +7 -0
  150. package/dist/chunk-E3VF4RHJ.js +381 -0
  151. package/dist/chunk-EGPNRSPF.js +292 -0
  152. package/dist/chunk-FACITNG5.js +142 -0
  153. package/dist/chunk-GNS6CQMA.js +119 -0
  154. package/dist/chunk-GNS6CQMA.js.map +7 -0
  155. package/dist/chunk-H3N4KYKL.js +2327 -0
  156. package/dist/chunk-H3VWJH4U.js +14 -0
  157. package/dist/chunk-HEVKBSN6.js +222 -0
  158. package/dist/chunk-HQUYAZQY.js +514 -0
  159. package/dist/chunk-IUBBQPO2.js +146 -0
  160. package/dist/chunk-IUBBQPO2.js.map +7 -0
  161. package/dist/chunk-J4USU73L.js +26 -0
  162. package/dist/chunk-JH73IL4C.js +135 -0
  163. package/dist/chunk-JVPWIVDT.js +1812 -0
  164. package/dist/chunk-JVPWIVDT.js.map +7 -0
  165. package/dist/chunk-KU7YH7MV.js +217 -0
  166. package/dist/chunk-KZILNGAV.js +187 -0
  167. package/dist/chunk-KZILNGAV.js.map +7 -0
  168. package/dist/chunk-M66VDGSH.js +272 -0
  169. package/dist/chunk-MJN6RDXB.js +302 -0
  170. package/dist/chunk-MPNEZ6EL.js +31 -0
  171. package/dist/chunk-MPSLUEI4.js +314 -0
  172. package/dist/chunk-NIXFCC7X.js +368 -0
  173. package/dist/chunk-NODQZTWK.js +276 -0
  174. package/dist/chunk-NRYHIWBS.js +1942 -0
  175. package/dist/chunk-NRYHIWBS.js.map +7 -0
  176. package/dist/chunk-NUWJ4RN7.js +465 -0
  177. package/dist/chunk-NUWJ4RN7.js.map +7 -0
  178. package/dist/chunk-NVTJ5AUT.js +1102 -0
  179. package/dist/chunk-NZRMHM76.js +158 -0
  180. package/dist/chunk-NZRMHM76.js.map +7 -0
  181. package/dist/chunk-OOWXMY7U.js +55 -0
  182. package/dist/chunk-OTTMHVYH.js +787 -0
  183. package/dist/chunk-Q5RDQNIT.js +777 -0
  184. package/dist/chunk-QDX2XUNF.js +58 -0
  185. package/dist/chunk-QYXCHZ6U.js +4282 -0
  186. package/dist/chunk-QYXCHZ6U.js.map +7 -0
  187. package/dist/chunk-R6NM2HSH.js +556 -0
  188. package/dist/chunk-R6NM2HSH.js.map +7 -0
  189. package/dist/chunk-RJOY6A74.js +56 -0
  190. package/dist/chunk-RJOY6A74.js.map +7 -0
  191. package/dist/chunk-ROMW4AK2.js +102 -0
  192. package/dist/chunk-RR5U35N7.js +230 -0
  193. package/dist/chunk-RVKADD4L.js +148 -0
  194. package/dist/chunk-S5ZCK44Z.js +54 -0
  195. package/dist/chunk-SNRIVNQ3.js +176 -0
  196. package/dist/chunk-STI7BO3P.js +2681 -0
  197. package/dist/chunk-STI7BO3P.js.map +7 -0
  198. package/dist/chunk-TAM7UCAI.js +263 -0
  199. package/dist/chunk-TDKMBQSM.js +5070 -0
  200. package/dist/chunk-TDKMBQSM.js.map +7 -0
  201. package/dist/chunk-TKW5TW4Z.js +21449 -0
  202. package/dist/chunk-TKW5TW4Z.js.map +7 -0
  203. package/dist/chunk-TQTYW66I.js +2784 -0
  204. package/dist/chunk-TQTYW66I.js.map +7 -0
  205. package/dist/chunk-U3NTH4CS.js +54 -0
  206. package/dist/chunk-U3NTH4CS.js.map +7 -0
  207. package/dist/chunk-UEGQVQD6.js +34 -0
  208. package/dist/chunk-UEGQVQD6.js.map +7 -0
  209. package/dist/chunk-UJELJXJG.js +2110 -0
  210. package/dist/chunk-ULESDMUT.js +480 -0
  211. package/dist/chunk-UUKSL7QC.js +134 -0
  212. package/dist/chunk-UUKSL7QC.js.map +7 -0
  213. package/dist/chunk-VUPWQCDR.js +194 -0
  214. package/dist/chunk-VUPWQCDR.js.map +7 -0
  215. package/dist/chunk-W76X6W73.js +100 -0
  216. package/dist/chunk-W7OS7BNM.js +203 -0
  217. package/dist/chunk-WPHUM5S5.js +98 -0
  218. package/dist/chunk-WPHUM5S5.js.map +7 -0
  219. package/dist/chunk-WTTD6DUL.js +6364 -0
  220. package/dist/chunk-WXPFMVU6.js +299 -0
  221. package/dist/chunk-XNWUI5VL.js +37 -0
  222. package/dist/chunk-XNWUI5VL.js.map +7 -0
  223. package/dist/chunk-YBLTSYQV.js +216 -0
  224. package/dist/chunk-Z7VDFWIP.js +126 -0
  225. package/dist/chunk-Z7VDFWIP.js.map +7 -0
  226. package/dist/chunk-ZEKIUYN3.js +448 -0
  227. package/dist/chunk-ZEKIUYN3.js.map +7 -0
  228. package/dist/cohort-OWLNJZVH.js +75 -0
  229. package/dist/cohort-OWLNJZVH.js.map +7 -0
  230. package/dist/condition-L2IXP6WH.js +332 -0
  231. package/dist/controls-2S5QVWUC.js +39 -0
  232. package/dist/controls.config-3AJKR4ZZ.js +39 -0
  233. package/dist/correlation-DXTAWSLU.js +102 -0
  234. package/dist/cuminc-WQB6FHVS.js +1148 -0
  235. package/dist/cuminc-WQB6FHVS.js.map +7 -0
  236. package/dist/cuminc.integration.spec-WAYRLHUH.js +678 -0
  237. package/dist/customdata.inputui-7WH2NJGB.js +289 -0
  238. package/dist/dataDownload-HM4UYOBO.js +330 -0
  239. package/dist/dataDownload.integration.spec-F5CO4BWA.js +193 -0
  240. package/dist/databrowser.ui-E2YOG3L4.js +432 -0
  241. package/dist/databrowser.ui-E2YOG3L4.js.map +7 -0
  242. package/dist/dictionary-EEPTFDYD.js +118 -0
  243. package/dist/dnaMethylation-N3WNK6XA.js +38 -0
  244. package/dist/dnaMethylation.integration.spec-AIYRTFMR.js +203 -0
  245. package/dist/dnaMethylation.integration.spec-AIYRTFMR.js.map +7 -0
  246. package/dist/dofetch-YKYPEJTQ.js +51 -0
  247. package/dist/e2pca-JEZIGVB2.js +350 -0
  248. package/dist/ep-5FMH2MLV.js +1256 -0
  249. package/dist/expclust.gdc.spec-FR26VSUA.js +307 -0
  250. package/dist/facet-5YYY3MUN.js +521 -0
  251. package/dist/facet-5YYY3MUN.js.map +7 -0
  252. package/dist/gb-WGEVO7L2.js +88 -0
  253. package/dist/geneExpClustering-DHE6XJHV.js +249 -0
  254. package/dist/geneExpClustering-DHE6XJHV.js.map +7 -0
  255. package/dist/geneExpression-5NWQXMJ3.js +313 -0
  256. package/dist/geneExpression-VWUMM2LU.js +38 -0
  257. package/dist/geneExpression.unit.spec-HBU3WTZ4.js +102 -0
  258. package/dist/geneExpression.unit.spec-HBU3WTZ4.js.map +7 -0
  259. package/dist/geneORA-3VWFWDYI.js +278 -0
  260. package/dist/geneRanking-PKDVD5OD.js +553 -0
  261. package/dist/geneVariant-IFIJQXH4.js +39 -0
  262. package/dist/geneVariant-WZSOG4GI.js +41 -0
  263. package/dist/geneVariant.integration.spec-6KQMWVHR.js +198 -0
  264. package/dist/genefusion.ui-C4NTALL3.js +308 -0
  265. package/dist/genefusion.ui-C4NTALL3.js.map +7 -0
  266. package/dist/geneset-RJAULSKC.js +208 -0
  267. package/dist/genomeBrowser.spec-42OTTMGO.js +281 -0
  268. package/dist/grin2-26O6YDDY.js +75 -0
  269. package/dist/grin2-FT5BQJMB.js +1143 -0
  270. package/dist/hierCluster-GJPPMFNR.js +59 -0
  271. package/dist/hierCluster-HMJF3PBE.js +63 -0
  272. package/dist/hierCluster.config-TAS7XKTU.js +40 -0
  273. package/dist/hierCluster.integration.spec-RLHQKX65.js +488 -0
  274. package/dist/hierCluster.integration.spec-RLHQKX65.js.map +7 -0
  275. package/dist/hierCluster.interactivity-IKTAJ6CU.js +54 -0
  276. package/dist/hierCluster.renderers-I6WFZRNW.js +21 -0
  277. package/dist/imagePlot-N4OXNMVA.js +163 -0
  278. package/dist/importPlot-VMYXDP66.js +8 -0
  279. package/dist/isoformExpression-2KV64KMN.js +40 -0
  280. package/dist/isoformExpression.unit.spec-RG2VWEMG.js +242 -0
  281. package/dist/isoformExpression.unit.spec-RG2VWEMG.js.map +7 -0
  282. package/dist/junction-VO4IGMW2.js +41 -0
  283. package/dist/junction.customTerm-EFMHHVWA.js +18 -0
  284. package/dist/junction.unit.spec-NB24MR2B.js +187 -0
  285. package/dist/junction.unit.spec-NB24MR2B.js.map +7 -0
  286. package/dist/launch.adhoc-R3MO3VXK.js +42 -0
  287. package/dist/leftlabel.sample-SI6KMULD.js +263 -0
  288. package/dist/leftlabel.sample-SI6KMULD.js.map +7 -0
  289. package/dist/legacyDataset-4BXYHQTS.js +119 -0
  290. package/dist/lollipop-XIVE4ANX.js +171 -0
  291. package/dist/maf-WRHD4OJF.js +459 -0
  292. package/dist/maftimeline-IE6YKV7Y.js +593 -0
  293. package/dist/matrix-ALBCAZP5.js +58 -0
  294. package/dist/matrix-W72XRUZD.js +63 -0
  295. package/dist/matrix.cells-DEEUWC74.js +28 -0
  296. package/dist/matrix.config-JYXQOXDT.js +41 -0
  297. package/dist/matrix.data-ENXNM6RP.js +25 -0
  298. package/dist/matrix.groups-EXSNNESB.js +27 -0
  299. package/dist/matrix.integration.spec-BW6U6PIW.js +3072 -0
  300. package/dist/matrix.interactivity-G6AL566T.js +42 -0
  301. package/dist/matrix.layout-UBUPIJ3R.js +44 -0
  302. package/dist/matrix.legend-S3P4F2DG.js +22 -0
  303. package/dist/matrix.renderers-IXFGXHJQ.js +38 -0
  304. package/dist/matrix.serieses-THHXUAPM.js +21 -0
  305. package/dist/matrix.sort-WJV6LIZI.js +27 -0
  306. package/dist/matrix.sort.unit.spec-LGMIL2LR.js +472 -0
  307. package/dist/matrix.sorterUi-VXVCOKEZ.js +18 -0
  308. package/dist/matrix.sorterUi.unit.spec-CWSEJ62U.js +342 -0
  309. package/dist/mavb-SXGKASQ5.js +732 -0
  310. package/dist/mds.fimo-EDOT3TDN.js +518 -0
  311. package/dist/mds.samplescatterplot-IXHNABKB.js +1550 -0
  312. package/dist/mds.survivalplot-KTTMHHII.js +483 -0
  313. package/dist/numericDictTermCluster-H4JSPW22.js +65 -0
  314. package/dist/oncomatrix-O4EMNUOT.js +295 -0
  315. package/dist/oncomatrix.spec-BME6CQWF.js +448 -0
  316. package/dist/plot.2dvaf-FDM4KXGT.js +377 -0
  317. package/dist/plot.app-UNUXG7ND.js +41 -0
  318. package/dist/plot.barplot-R333TMG2.js +102 -0
  319. package/dist/plot.boxplot-KQTYGUN3.js +152 -0
  320. package/dist/plot.brainImaging-YBYMHCEG.js +51 -0
  321. package/dist/plot.disco-CMDKRSOM.js +102 -0
  322. package/dist/plot.dzi-YAZA6RQS.js +33 -0
  323. package/dist/plot.ssgq-YKCOEXZP.js +139 -0
  324. package/dist/plot.vaf2cov-3TLMTFZS.js +259 -0
  325. package/dist/plot.wsi-7ADVYTQS.js +36 -0
  326. package/dist/polar2-O5SHVLP4.js +237 -0
  327. package/dist/polar2-O5SHVLP4.js.map +7 -0
  328. package/dist/profileForms-RLB6SMPQ.js +940 -0
  329. package/dist/profileForms-RLB6SMPQ.js.map +7 -0
  330. package/dist/profilePlot-AP52VLLO.js +54 -0
  331. package/dist/proteinView-S7WDBMQU.js +1568 -0
  332. package/dist/proteinView-S7WDBMQU.js.map +7 -0
  333. package/dist/proteomeCohortCompare-ERVUM7RO.js +799 -0
  334. package/dist/proteomeCohortCompare-ERVUM7RO.js.map +7 -0
  335. package/dist/pseudbulk.unit.spec-VSH7IM3R.js +91 -0
  336. package/dist/pseudbulk.unit.spec-VSH7IM3R.js.map +7 -0
  337. package/dist/pseudobulk-7UKRLKQI.js +40 -0
  338. package/dist/qualitative-2D7MC4V5.js +43 -0
  339. package/dist/radar2-ELVGQFZE.js +332 -0
  340. package/dist/radar2-ELVGQFZE.js.map +7 -0
  341. package/dist/radarFacility2-SDAZHGNG.js +340 -0
  342. package/dist/radarFacility2-SDAZHGNG.js.map +7 -0
  343. package/dist/regression-CE54AQMY.js +56 -0
  344. package/dist/regression.inputs-SMC5CNPY.js +48 -0
  345. package/dist/regression.inputs.term-XS54IQC2.js +48 -0
  346. package/dist/regression.inputs.values.table-LNPM3MX5.js +45 -0
  347. package/dist/regression.integration.spec-6QSMYPWJ.js +784 -0
  348. package/dist/regression.results-25ZRRDEE.js +40 -0
  349. package/dist/regression.spec-EDWHFRPY.js +708 -0
  350. package/dist/render-SEB6GFXQ.js +38 -0
  351. package/dist/report-U6L3KBYG.js +222 -0
  352. package/dist/sampleView-QAAJ26KT.js +48 -0
  353. package/dist/samplelst-KYRXJSZN.js +111 -0
  354. package/dist/samplematrix-STLF2QA5.js +2198 -0
  355. package/dist/sc-HL6YSMDX.js +86 -0
  356. package/dist/scatter-BSGDMOC2.js +851 -0
  357. package/dist/selectGenomeWithTklst-4NHQDTE6.js +134 -0
  358. package/dist/singleCellCellType-3E2IU42J.js +38 -0
  359. package/dist/singleCellCellType.unit.spec-MC7ZRSMW.js +159 -0
  360. package/dist/singleCellCellType.unit.spec-MC7ZRSMW.js.map +7 -0
  361. package/dist/singleCellGeneExpression-53UUGYTK.js +38 -0
  362. package/dist/singleCellGeneExpression.unit.spec-QSLTXHFE.js +153 -0
  363. package/dist/singleCellGeneExpression.unit.spec-QSLTXHFE.js.map +7 -0
  364. package/dist/singleCellPlot-JDSARDRV.js +54 -0
  365. package/dist/singlecell-IJR7BJYT.js +1572 -0
  366. package/dist/singlecell-OK6GJFWL.js +86 -0
  367. package/dist/snp-H4KJEEOE.js +38 -0
  368. package/dist/snp.unit.spec-2Y4A3XYI.js +176 -0
  369. package/dist/snplocus-4GG6VTWX.js +208 -0
  370. package/dist/spliceevent.a53ss.diagram-JZNRC5UC.js +151 -0
  371. package/dist/spliceevent.exonskip.diagram-H54N7ZKY.js +283 -0
  372. package/dist/spliceevent.noeventdiagram-II753XAK.js +460 -0
  373. package/dist/ssGSEA-JPJ3C4JI.js +38 -0
  374. package/dist/ssGSEA.unit.spec-45F5OCDK.js +88 -0
  375. package/dist/studyCatalog-O3VGIKDM.js +358 -0
  376. package/dist/studyCatalog-O3VGIKDM.js.map +7 -0
  377. package/dist/summarizeCnvGeneexp-55DNXHXA.js +163 -0
  378. package/dist/summarizeGeneexpSurvival-VLO4DC5M.js +110 -0
  379. package/dist/summarizeGeneexpSurvival-VLO4DC5M.js.map +7 -0
  380. package/dist/summarizeMutationCnv-QX7BADYL.js +164 -0
  381. package/dist/summarizeMutationDiagnosis-MHFM7RX6.js +40 -0
  382. package/dist/summarizeMutationSurvival-G4KHSUBN.js +99 -0
  383. package/dist/summary-PJYRCQNY.js +49 -0
  384. package/dist/summary.integration.spec-KPKROD6L.js +414 -0
  385. package/dist/summaryInput-TOAL53EP.js +231 -0
  386. package/dist/summaryInput-TOAL53EP.js.map +7 -0
  387. package/dist/sunburst-IGIV2RBE.js +284 -0
  388. package/dist/survival-DINCIWW7.js +58 -0
  389. package/dist/survival-RKV5BPDK.js +1239 -0
  390. package/dist/survival-RKV5BPDK.js.map +7 -0
  391. package/dist/survival.integration.spec-7ZYBBZKT.js +958 -0
  392. package/dist/survival.integration.spec-7ZYBBZKT.js.map +7 -0
  393. package/dist/svgraph-EUEZWGVR.js +1387 -0
  394. package/dist/svmr-B24LODSC.js +3842 -0
  395. package/dist/table-XSJJ3UZV.js +200 -0
  396. package/dist/termCollection-IAB3425K.js +38 -0
  397. package/dist/termCollection-LGEGHZSJ.js +257 -0
  398. package/dist/termCollection-LGEGHZSJ.js.map +7 -0
  399. package/dist/termCollection.unit.spec-4TIRHC44.js +304 -0
  400. package/dist/termCollection.unit.spec-4TIRHC44.js.map +7 -0
  401. package/dist/termCollectionFractionSelection-35YKAOUY.js +47 -0
  402. package/dist/termCollectionFractionSelection.unit.spec-SUFEIKJZ.js +193 -0
  403. package/dist/termCollectionFractionSelection.unit.spec-SUFEIKJZ.js.map +7 -0
  404. package/dist/tk-25EJJDRK.js +46 -0
  405. package/dist/tk-4E3XJ7CO.js +1127 -0
  406. package/dist/tk-4E3XJ7CO.js.map +7 -0
  407. package/dist/tp.ui-VGA62NFM.js +1459 -0
  408. package/dist/tvs.cohort-F7OJI2MH.js +26 -0
  409. package/dist/tvs.cohort-F7OJI2MH.js.map +7 -0
  410. package/dist/tvs.density-G56327WY.js +19 -0
  411. package/dist/tvs.dt-DFW36WKO.js +39 -0
  412. package/dist/tvs.dtcnv.categorical-ZP33EO3A.js +40 -0
  413. package/dist/tvs.dtcnv.continuous-FJTMQF4J.js +72 -0
  414. package/dist/tvs.dtfusion-FTDQWNKM.js +40 -0
  415. package/dist/tvs.dtitd-W5VEECJ2.js +40 -0
  416. package/dist/tvs.dtsnvindel-UOXSLCDZ.js +40 -0
  417. package/dist/tvs.dtsv-HWCPRVBO.js +40 -0
  418. package/dist/tvs.numeric-7TGKWQYU.js +22 -0
  419. package/dist/tvs.samplelst-OWD22ITS.js +104 -0
  420. package/dist/tvs.termCollection-27BWABYK.js +129 -0
  421. package/dist/tvs.termCollection-27BWABYK.js.map +7 -0
  422. package/dist/violin-2IAVZGFF.js +46 -0
  423. package/dist/violin.integration.spec-JVODKUCL.js +1425 -0
  424. package/dist/violin.integration.spec-JVODKUCL.js.map +7 -0
  425. package/dist/violin.interactivity-STOCZMVN.js +38 -0
  426. package/dist/violin.renderer-MKDTJ3EX.js +40 -0
  427. package/dist/violin.renderer-MKDTJ3EX.js.map +7 -0
  428. package/dist/vocabulary-4IHU6DNN.js +41 -0
  429. package/dist/vocabulary-4IHU6DNN.js.map +7 -0
  430. package/package.json +3 -6
  431. package/dist/2dmaf-R3PFZNRN.js +0 -1373
  432. package/dist/AIProjectAdmin-DM3KG6SR.js +0 -958
  433. package/dist/AppHeader-6DZQ6YZX.js +0 -835
  434. package/dist/BoxPlot-76NINVX4.js +0 -1217
  435. package/dist/BoxPlot-76NINVX4.js.map +0 -7
  436. package/dist/CorrelationVolcano-U5UMJNH5.js +0 -619
  437. package/dist/DE-AXNYWIQK.js +0 -95
  438. package/dist/DEinput-JH6YY6LS.js +0 -301
  439. package/dist/DEinput-JH6YY6LS.js.map +0 -7
  440. package/dist/DifferentialAnalysis-25P4CGIY.js +0 -242
  441. package/dist/DifferentialAnalysis-25P4CGIY.js.map +0 -7
  442. package/dist/Disco-NVMLF3BK.js +0 -3392
  443. package/dist/Disco.UI-C7CZINUQ.js +0 -249
  444. package/dist/Disco.UI-C7CZINUQ.js.map +0 -7
  445. package/dist/DmrPlot-WROR4ENM.js +0 -642
  446. package/dist/GB-JUABODPH.js +0 -1394
  447. package/dist/GB-JUABODPH.js.map +0 -7
  448. package/dist/GSEA-Y5R2THIJ.js +0 -846
  449. package/dist/GeneExpInput-JDU6EI7K.js +0 -367
  450. package/dist/GeneExpInput-JDU6EI7K.js.map +0 -7
  451. package/dist/Geomap-J763OK2F.js +0 -89
  452. package/dist/HicApp-UNIJLH4B.js +0 -2250
  453. package/dist/IDCViewer-KVPCIUDW.js +0 -10803
  454. package/dist/IDCViewer-KVPCIUDW.js.map +0 -7
  455. package/dist/NumBinaryEditor-WMN2GGO4.js +0 -271
  456. package/dist/NumBinaryEditor.unit.spec-TAMXV6SE.js +0 -286
  457. package/dist/NumContEditor-XYIOJY4E.js +0 -109
  458. package/dist/NumContEditor.unit.spec-WDZ75BHO.js +0 -169
  459. package/dist/NumCustomBinEditor-5SY3C4TY.js +0 -38
  460. package/dist/NumCustomBinEditor.unit.spec-XHTAIXR3.js +0 -284
  461. package/dist/NumDiscreteEditor-NRDRX4FD.js +0 -179
  462. package/dist/NumDiscreteEditor.unit.spec-2CJW7OAT.js +0 -202
  463. package/dist/NumRegularBinEditor-DUDVTNDC.js +0 -38
  464. package/dist/NumRegularBinEditor.unit.spec-H3GNQHMN.js +0 -227
  465. package/dist/NumSplineEditor-7Q4AC7KH.js +0 -198
  466. package/dist/NumSplineEditor.unit.spec-YRZK5PH5.js +0 -199
  467. package/dist/NumericDensity-NTNWUESG.js +0 -38
  468. package/dist/NumericDensity.unit.spec-5I5U6T6P.js +0 -221
  469. package/dist/NumericHandler-MEW2KMPX.js +0 -39
  470. package/dist/NumericHandler.unit.spec-JFX4BPRG.js +0 -219
  471. package/dist/ProteomeInput-K2ZHR2U6.js +0 -395
  472. package/dist/ProteomeInput-K2ZHR2U6.js.map +0 -7
  473. package/dist/RunChart2-BEBDU7RC.js +0 -758
  474. package/dist/RunChart2-BEBDU7RC.js.map +0 -7
  475. package/dist/SC-XCBFJVUJ.js +0 -1120
  476. package/dist/SC-XCBFJVUJ.js.map +0 -7
  477. package/dist/Volcano-4Y4TP3UX.js +0 -1385
  478. package/dist/Volcano-4Y4TP3UX.js.map +0 -7
  479. package/dist/WSIViewer-ZLQU62PD.js +0 -48562
  480. package/dist/WsiSamplesPlot-JMBSITOM.js +0 -165
  481. package/dist/adSandbox-664IRCRL.js +0 -38
  482. package/dist/animatedBubbleChart-TX7NW34K.js +0 -555
  483. package/dist/animatedBubbleChart-TX7NW34K.js.map +0 -7
  484. package/dist/app-63WJ3BMP.js +0 -37
  485. package/dist/app-77FIZHCG.js +0 -49
  486. package/dist/bam-IETNVAYD.js +0 -860
  487. package/dist/bam-IETNVAYD.js.map +0 -7
  488. package/dist/barchart-YUVXJNH4.js +0 -47
  489. package/dist/barchart.data-P4EIQXGE.js +0 -22
  490. package/dist/barchart.events-JPVCLTIG.js +0 -47
  491. package/dist/barchart.integration.spec-ZH7DEQI2.js +0 -2196
  492. package/dist/barchart.integration.spec-ZH7DEQI2.js.map +0 -7
  493. package/dist/barchart2-XO2FG76J.js +0 -314
  494. package/dist/bars.renderer-AUIWUJDH.js +0 -12
  495. package/dist/block-NBTCOT3H.js +0 -6255
  496. package/dist/block.init-X7Y2EEVR.js +0 -38
  497. package/dist/block.mds.expressionrank-BIAOZIZ3.js +0 -359
  498. package/dist/block.mds.geneboxplot-CNICDVLK.js +0 -828
  499. package/dist/block.mds.junction-PQXCTSUI.js +0 -1545
  500. package/dist/block.mds.svcnv-32KMVTCT.js +0 -6801
  501. package/dist/block.svg-LRTOYQK2.js +0 -164
  502. package/dist/block.tk.aicheck-HDV7ZIUD.js +0 -283
  503. package/dist/block.tk.ase-JIDWKMYI.js +0 -365
  504. package/dist/block.tk.bam-5X3OS5HB.js +0 -1906
  505. package/dist/block.tk.bedgraphdot-T7JX7YQL.js +0 -384
  506. package/dist/block.tk.bigwig.ui-OSAYEBAE.js +0 -212
  507. package/dist/block.tk.bigwig.ui-OSAYEBAE.js.map +0 -7
  508. package/dist/block.tk.hicstraw-DEY3VQFK.js +0 -823
  509. package/dist/block.tk.junction-7UAFEZSJ.js +0 -2364
  510. package/dist/block.tk.junction.textmatrixui-27LHS33U.js +0 -199
  511. package/dist/block.tk.ld-DF2PI7OO.js +0 -99
  512. package/dist/block.tk.menu-L2D5KBIV.js +0 -1029
  513. package/dist/block.tk.pgv-QO56SKBV.js +0 -944
  514. package/dist/brainImaging-NIPQWFWO.js +0 -423
  515. package/dist/brainImaging-NIPQWFWO.js.map +0 -7
  516. package/dist/brainRegions-ZNZ2WHSU.js +0 -221
  517. package/dist/bubbleHeatmap-ERWNEKZB.js +0 -383
  518. package/dist/bubbleHeatmap-ERWNEKZB.js.map +0 -7
  519. package/dist/chunk-2GYWFQML.js +0 -299
  520. package/dist/chunk-2HYJ4GDH.js +0 -50
  521. package/dist/chunk-2HYJ4GDH.js.map +0 -7
  522. package/dist/chunk-2MG6XE6R.js +0 -272
  523. package/dist/chunk-2MG6XE6R.js.map +0 -7
  524. package/dist/chunk-2X6W4E3W.js +0 -1507
  525. package/dist/chunk-2X6W4E3W.js.map +0 -7
  526. package/dist/chunk-33K5PA52.js +0 -54
  527. package/dist/chunk-37XDBPOP.js +0 -26
  528. package/dist/chunk-3EWB3246.js +0 -58
  529. package/dist/chunk-3RSKOPIY.js +0 -100
  530. package/dist/chunk-3XVVN66M.js +0 -4085
  531. package/dist/chunk-4DPVT4NE.js +0 -1102
  532. package/dist/chunk-4IH7DORZ.js +0 -98
  533. package/dist/chunk-4QNBFIIR.js +0 -399
  534. package/dist/chunk-4QNBFIIR.js.map +0 -7
  535. package/dist/chunk-4STKL6SR.js +0 -217
  536. package/dist/chunk-4TZIVSL5.js +0 -34
  537. package/dist/chunk-4TZIVSL5.js.map +0 -7
  538. package/dist/chunk-5ABGFJSP.js +0 -467
  539. package/dist/chunk-5AZNP47R.js +0 -302
  540. package/dist/chunk-5RL2OHXX.js +0 -5070
  541. package/dist/chunk-5RL2OHXX.js.map +0 -7
  542. package/dist/chunk-5VOPABBA.js +0 -20941
  543. package/dist/chunk-5VOPABBA.js.map +0 -7
  544. package/dist/chunk-6BB43SIB.js +0 -102
  545. package/dist/chunk-6BB43SIB.js.map +0 -7
  546. package/dist/chunk-7IYJZZQI.js +0 -167
  547. package/dist/chunk-7IYJZZQI.js.map +0 -7
  548. package/dist/chunk-7OHRR2IE.js +0 -276
  549. package/dist/chunk-ARBHWDMY.js +0 -226
  550. package/dist/chunk-ARBHWDMY.js.map +0 -7
  551. package/dist/chunk-ASATD4T7.js +0 -14
  552. package/dist/chunk-AZ47Q7BX.js +0 -1223
  553. package/dist/chunk-AZ47Q7BX.js.map +0 -7
  554. package/dist/chunk-B5B3LZB3.js +0 -236
  555. package/dist/chunk-B5B3LZB3.js.map +0 -7
  556. package/dist/chunk-BHGISFCA.js +0 -2681
  557. package/dist/chunk-BHGISFCA.js.map +0 -7
  558. package/dist/chunk-BMBOZ64T.js +0 -2786
  559. package/dist/chunk-BMBOZ64T.js.map +0 -7
  560. package/dist/chunk-BOZJHPJP.js +0 -216
  561. package/dist/chunk-CDD7LYJM.js +0 -194
  562. package/dist/chunk-CDD7LYJM.js.map +0 -7
  563. package/dist/chunk-CTQ3IUCA.js +0 -2327
  564. package/dist/chunk-D7TID3HR.js +0 -158
  565. package/dist/chunk-D7TID3HR.js.map +0 -7
  566. package/dist/chunk-DBKNWR4J.js +0 -1561
  567. package/dist/chunk-DBKNWR4J.js.map +0 -7
  568. package/dist/chunk-E55LLYRX.js +0 -55
  569. package/dist/chunk-ESEQBXTM.js +0 -121
  570. package/dist/chunk-ESEQBXTM.js.map +0 -7
  571. package/dist/chunk-ESGXULRH.js +0 -386
  572. package/dist/chunk-ESGXULRH.js.map +0 -7
  573. package/dist/chunk-EZ4LZ6ZT.js +0 -117
  574. package/dist/chunk-EZ4LZ6ZT.js.map +0 -7
  575. package/dist/chunk-F3SJTVP5.js +0 -4284
  576. package/dist/chunk-F3SJTVP5.js.map +0 -7
  577. package/dist/chunk-F5IXNJO7.js +0 -222
  578. package/dist/chunk-FJYECRHW.js +0 -448
  579. package/dist/chunk-FJYECRHW.js.map +0 -7
  580. package/dist/chunk-FPNRUQOU.js +0 -833
  581. package/dist/chunk-FPNRUQOU.js.map +0 -7
  582. package/dist/chunk-G5S4R77D.js +0 -1942
  583. package/dist/chunk-G5S4R77D.js.map +0 -7
  584. package/dist/chunk-G764NXQN.js +0 -170
  585. package/dist/chunk-G764NXQN.js.map +0 -7
  586. package/dist/chunk-GAPI4MML.js +0 -148
  587. package/dist/chunk-HBW42TDT.js +0 -132
  588. package/dist/chunk-HBW42TDT.js.map +0 -7
  589. package/dist/chunk-HLUZOZXJ.js +0 -272
  590. package/dist/chunk-HOKIK2FR.js +0 -375
  591. package/dist/chunk-HOKIK2FR.js.map +0 -7
  592. package/dist/chunk-I6WR4CG7.js +0 -323
  593. package/dist/chunk-I6WR4CG7.js.map +0 -7
  594. package/dist/chunk-K5XPMCKP.js +0 -135
  595. package/dist/chunk-KI5KI3ZJ.js +0 -276
  596. package/dist/chunk-KI5KI3ZJ.js.map +0 -7
  597. package/dist/chunk-KLGL6XZD.js +0 -129
  598. package/dist/chunk-KYBIQBXE.js +0 -1628
  599. package/dist/chunk-L7IRWUKT.js +0 -480
  600. package/dist/chunk-LFCYMSVA.js +0 -314
  601. package/dist/chunk-LX6G7HJJ.js +0 -617
  602. package/dist/chunk-LX6G7HJJ.js.map +0 -7
  603. package/dist/chunk-M2G5R4WB.js +0 -142
  604. package/dist/chunk-M4TTGGT4.js +0 -102
  605. package/dist/chunk-M4TTGGT4.js.map +0 -7
  606. package/dist/chunk-M6EF3WVV.js +0 -1825
  607. package/dist/chunk-M6EF3WVV.js.map +0 -7
  608. package/dist/chunk-M6KHT3MM.js +0 -146
  609. package/dist/chunk-M6KHT3MM.js.map +0 -7
  610. package/dist/chunk-MCZFHWIR.js +0 -230
  611. package/dist/chunk-MFQACKYU.js +0 -448
  612. package/dist/chunk-MFQACKYU.js.map +0 -7
  613. package/dist/chunk-MVGAGTM3.js +0 -343
  614. package/dist/chunk-MVGAGTM3.js.map +0 -7
  615. package/dist/chunk-NELOT3NJ.js +0 -119
  616. package/dist/chunk-NELOT3NJ.js.map +0 -7
  617. package/dist/chunk-NRKMXULC.js +0 -54
  618. package/dist/chunk-NRKMXULC.js.map +0 -7
  619. package/dist/chunk-NSTL4MY2.js +0 -2110
  620. package/dist/chunk-NYRZNRG5.js +0 -177
  621. package/dist/chunk-NYRZNRG5.js.map +0 -7
  622. package/dist/chunk-OMR2DT66.js +0 -776
  623. package/dist/chunk-ONPKE6DC.js +0 -368
  624. package/dist/chunk-OXVLWQ6M.js +0 -556
  625. package/dist/chunk-OXVLWQ6M.js.map +0 -7
  626. package/dist/chunk-PFRWS4CR.js +0 -203
  627. package/dist/chunk-PJKQUXEN.js +0 -1275
  628. package/dist/chunk-Q2L44HK3.js +0 -6364
  629. package/dist/chunk-QNHT74XC.js +0 -1245
  630. package/dist/chunk-RKO6BL5N.js +0 -446
  631. package/dist/chunk-T25QNZHB.js +0 -254
  632. package/dist/chunk-U7TBYVIQ.js +0 -31
  633. package/dist/chunk-UGRQXBL4.js +0 -381
  634. package/dist/chunk-USFSHSCJ.js +0 -477
  635. package/dist/chunk-USFSHSCJ.js.map +0 -7
  636. package/dist/chunk-VJ6UFVGC.js +0 -2833
  637. package/dist/chunk-VJ6UFVGC.js.map +0 -7
  638. package/dist/chunk-W3WPPOXH.js +0 -292
  639. package/dist/chunk-WFCSOTBO.js +0 -263
  640. package/dist/chunk-WHP4AKDM.js +0 -185
  641. package/dist/chunk-WHP4AKDM.js.map +0 -7
  642. package/dist/chunk-WZ2L57MB.js +0 -102
  643. package/dist/chunk-XPY6AWXO.js +0 -787
  644. package/dist/chunk-Y4UAKFWC.js +0 -37
  645. package/dist/chunk-Y4UAKFWC.js.map +0 -7
  646. package/dist/chunk-YQBS2ZCK.js +0 -514
  647. package/dist/chunk-Z5U6HOE4.js +0 -190
  648. package/dist/chunk-Z5U6HOE4.js.map +0 -7
  649. package/dist/chunk-ZNEJUKJW.js +0 -140
  650. package/dist/chunk-ZTHM2TKP.js +0 -176
  651. package/dist/condition-2PASYSUC.js +0 -332
  652. package/dist/controls-5IMJ6K5L.js +0 -41
  653. package/dist/controls.config-P5PG2DHW.js +0 -39
  654. package/dist/correlation-U3EDLNHR.js +0 -102
  655. package/dist/cuminc-2HUFEROK.js +0 -1149
  656. package/dist/cuminc-2HUFEROK.js.map +0 -7
  657. package/dist/cuminc.integration.spec-WFWAPTDA.js +0 -678
  658. package/dist/customdata.inputui-ZHWNEPFH.js +0 -289
  659. package/dist/dataDownload-VBSJBKMP.js +0 -330
  660. package/dist/dataDownload.integration.spec-LUFSETOP.js +0 -193
  661. package/dist/databrowser.ui-6H2KMSTJ.js +0 -433
  662. package/dist/databrowser.ui-6H2KMSTJ.js.map +0 -7
  663. package/dist/dictionary-V37LXFIP.js +0 -118
  664. package/dist/dnaMethylation-OIZMHMLK.js +0 -38
  665. package/dist/dnaMethylation.integration.spec-CWPTJ74H.js +0 -203
  666. package/dist/dnaMethylation.integration.spec-CWPTJ74H.js.map +0 -7
  667. package/dist/dofetch-IWPZQB5N.js +0 -51
  668. package/dist/e2pca-7SLIAGYW.js +0 -350
  669. package/dist/ep-7L6KF6K4.js +0 -1256
  670. package/dist/expclust.gdc.spec-JT452Q3G.js +0 -307
  671. package/dist/facet-CXOUU5AS.js +0 -521
  672. package/dist/facet-CXOUU5AS.js.map +0 -7
  673. package/dist/forms2-VPNCLQOY.js +0 -539
  674. package/dist/forms2-VPNCLQOY.js.map +0 -7
  675. package/dist/gb-P4VRXRED.js +0 -88
  676. package/dist/geneExpClustering-FQTCKRJJ.js +0 -249
  677. package/dist/geneExpClustering-FQTCKRJJ.js.map +0 -7
  678. package/dist/geneExpression-BHO5326K.js +0 -313
  679. package/dist/geneExpression-ZMERB64E.js +0 -38
  680. package/dist/geneExpression.unit.spec-CNVHZWNG.js +0 -102
  681. package/dist/geneExpression.unit.spec-CNVHZWNG.js.map +0 -7
  682. package/dist/geneORA-FXVUCXGX.js +0 -278
  683. package/dist/geneRanking-SFK4UBKQ.js +0 -553
  684. package/dist/geneVariant-IYEHB4H7.js +0 -41
  685. package/dist/geneVariant-LIRRLUFR.js +0 -39
  686. package/dist/geneVariant.integration.spec-Y2NPNTYX.js +0 -198
  687. package/dist/genefusion.ui-L3HIJM3N.js +0 -309
  688. package/dist/genefusion.ui-L3HIJM3N.js.map +0 -7
  689. package/dist/geneset-A6VUFX63.js +0 -208
  690. package/dist/genomeBrowser.spec-CB4HHHBN.js +0 -281
  691. package/dist/grin2-FKBIMH5N.js +0 -75
  692. package/dist/grin2-V36KLEBU.js +0 -1143
  693. package/dist/hierCluster-QFPRMHVA.js +0 -63
  694. package/dist/hierCluster-YWC3XYPV.js +0 -59
  695. package/dist/hierCluster.config-F7YYZNM3.js +0 -40
  696. package/dist/hierCluster.integration.spec-AF4L3YT6.js +0 -488
  697. package/dist/hierCluster.integration.spec-AF4L3YT6.js.map +0 -7
  698. package/dist/hierCluster.interactivity-RPY74PK6.js +0 -54
  699. package/dist/hierCluster.renderers-LOKHZ3V2.js +0 -21
  700. package/dist/imagePlot-BBEXA754.js +0 -163
  701. package/dist/importPlot-7QGANZGK.js +0 -8
  702. package/dist/isoformExpression-4SLLCVFD.js +0 -40
  703. package/dist/isoformExpression.unit.spec-GEL4JJ64.js +0 -208
  704. package/dist/isoformExpression.unit.spec-GEL4JJ64.js.map +0 -7
  705. package/dist/launch.adhoc-LWLBQJS5.js +0 -42
  706. package/dist/leftlabel.sample-RTEZOIH2.js +0 -264
  707. package/dist/leftlabel.sample-RTEZOIH2.js.map +0 -7
  708. package/dist/legacyDataset-VLD7ZYWI.js +0 -119
  709. package/dist/lollipop-XKQK5QZU.js +0 -171
  710. package/dist/maf-AZQPPWDO.js +0 -459
  711. package/dist/maftimeline-7MSVYKQU.js +0 -593
  712. package/dist/matrix-BGLWC25D.js +0 -58
  713. package/dist/matrix-IQR5SRMK.js +0 -63
  714. package/dist/matrix.cells-5C57NWOY.js +0 -28
  715. package/dist/matrix.config-2DQXAN2E.js +0 -41
  716. package/dist/matrix.data-ADCGF5H6.js +0 -25
  717. package/dist/matrix.groups-V4ITQ5F7.js +0 -27
  718. package/dist/matrix.integration.spec-IBNOO2WP.js +0 -3072
  719. package/dist/matrix.interactivity-JNELJFOV.js +0 -42
  720. package/dist/matrix.layout-WBVIV6GR.js +0 -44
  721. package/dist/matrix.legend-YHOWPK77.js +0 -22
  722. package/dist/matrix.renderers-5BGVRR3M.js +0 -38
  723. package/dist/matrix.serieses-2GZJOASZ.js +0 -21
  724. package/dist/matrix.sort-WKIWPJKP.js +0 -27
  725. package/dist/matrix.sort.unit.spec-L2E4D4AS.js +0 -472
  726. package/dist/matrix.sorterUi-TEJWWJ64.js +0 -18
  727. package/dist/matrix.sorterUi.unit.spec-SHP7C4P7.js +0 -342
  728. package/dist/mavb-4MXNYUEO.js +0 -732
  729. package/dist/mds.fimo-WHIJIBOI.js +0 -518
  730. package/dist/mds.samplescatterplot-BRJ6NG2D.js +0 -1550
  731. package/dist/mds.survivalplot-OPCMB5PB.js +0 -483
  732. package/dist/numericDictTermCluster-7MIFOP2K.js +0 -65
  733. package/dist/oncomatrix-BGG6BEUI.js +0 -295
  734. package/dist/oncomatrix.spec-LYQ4L4F3.js +0 -448
  735. package/dist/plot.2dvaf-6WVCP2ZI.js +0 -377
  736. package/dist/plot.app-MLBP6WFP.js +0 -41
  737. package/dist/plot.barplot-JEPRZSCU.js +0 -102
  738. package/dist/plot.boxplot-GNFW42VM.js +0 -152
  739. package/dist/plot.brainImaging-5ACNSD45.js +0 -51
  740. package/dist/plot.disco-Q2V2KKIH.js +0 -102
  741. package/dist/plot.dzi-KVT6S7K7.js +0 -33
  742. package/dist/plot.ssgq-4N3KFJQ2.js +0 -139
  743. package/dist/plot.vaf2cov-ITRG5U43.js +0 -259
  744. package/dist/plot.wsi-26YZNU4V.js +0 -36
  745. package/dist/polar2-J7GVUK4X.js +0 -231
  746. package/dist/polar2-J7GVUK4X.js.map +0 -7
  747. package/dist/profileForms-VXV2JLXU.js +0 -446
  748. package/dist/profileForms-VXV2JLXU.js.map +0 -7
  749. package/dist/profilePlot-ZZYZK4SY.js +0 -54
  750. package/dist/proteinView-7KN532D3.js +0 -1568
  751. package/dist/proteinView-7KN532D3.js.map +0 -7
  752. package/dist/qualitative-MLRVLIAU.js +0 -43
  753. package/dist/radar2-WM2ZBOH3.js +0 -326
  754. package/dist/radar2-WM2ZBOH3.js.map +0 -7
  755. package/dist/radarFacility2-3SBR2JJ3.js +0 -334
  756. package/dist/radarFacility2-3SBR2JJ3.js.map +0 -7
  757. package/dist/regression-WMRPQJW2.js +0 -56
  758. package/dist/regression.inputs-VWZKSYNY.js +0 -48
  759. package/dist/regression.inputs.term-OWE6GWHM.js +0 -48
  760. package/dist/regression.inputs.values.table-4INNZQI2.js +0 -45
  761. package/dist/regression.integration.spec-XKQ2JOOT.js +0 -784
  762. package/dist/regression.results-VZBYMBYC.js +0 -40
  763. package/dist/regression.spec-DU3UTDCJ.js +0 -708
  764. package/dist/render-N5FOF247.js +0 -38
  765. package/dist/report-DW3OHB67.js +0 -222
  766. package/dist/sampleScatter.spec-REFSK2V4.js +0 -202
  767. package/dist/sampleScatter.spec-REFSK2V4.js.map +0 -7
  768. package/dist/sampleView-ICOT2R6O.js +0 -48
  769. package/dist/samplelst-TJEVASYG.js +0 -111
  770. package/dist/samplematrix-6DAWCXQ3.js +0 -2198
  771. package/dist/sc-53LNOB7N.js +0 -86
  772. package/dist/scatter-DKYSS4DL.js +0 -851
  773. package/dist/selectGenomeWithTklst-WTX66TV3.js +0 -134
  774. package/dist/singleCellCellType-D2CN2BHQ.js +0 -38
  775. package/dist/singleCellCellType.unit.spec-LADUCI4R.js +0 -160
  776. package/dist/singleCellCellType.unit.spec-LADUCI4R.js.map +0 -7
  777. package/dist/singleCellGeneExpression-YR2ZT34W.js +0 -38
  778. package/dist/singleCellGeneExpression.unit.spec-BM63M432.js +0 -153
  779. package/dist/singleCellGeneExpression.unit.spec-BM63M432.js.map +0 -7
  780. package/dist/singleCellPlot-3ICIOILE.js +0 -54
  781. package/dist/singlecell-6ZUFA3BQ.js +0 -86
  782. package/dist/singlecell-KX7W4U57.js +0 -1572
  783. package/dist/snp-VIURB7L3.js +0 -38
  784. package/dist/snp.unit.spec-ACZNZUNS.js +0 -176
  785. package/dist/snplocus-3LW4ZUZR.js +0 -208
  786. package/dist/spliceevent.a53ss.diagram-AKTZGWNM.js +0 -151
  787. package/dist/spliceevent.exonskip.diagram-XZHXB77R.js +0 -283
  788. package/dist/spliceevent.noeventdiagram-YTXWWNTJ.js +0 -460
  789. package/dist/ssGSEA-THW4WFMI.js +0 -38
  790. package/dist/ssGSEA.unit.spec-HTRGQI2K.js +0 -88
  791. package/dist/summarizeCnvGeneexp-RFYC3H2Z.js +0 -163
  792. package/dist/summarizeGeneexpSurvival-DQBZUTQ6.js +0 -114
  793. package/dist/summarizeGeneexpSurvival-DQBZUTQ6.js.map +0 -7
  794. package/dist/summarizeMutationCnv-7AYEMHAI.js +0 -164
  795. package/dist/summarizeMutationDiagnosis-AKFJDSAF.js +0 -40
  796. package/dist/summarizeMutationSurvival-QJHZRQBZ.js +0 -99
  797. package/dist/summary-A5P7AYK4.js +0 -49
  798. package/dist/summary.integration.spec-HQISXGNL.js +0 -414
  799. package/dist/summaryInput-HP675QOQ.js +0 -235
  800. package/dist/summaryInput-HP675QOQ.js.map +0 -7
  801. package/dist/sunburst-65LSYRXX.js +0 -284
  802. package/dist/survival-QNEI6YVK.js +0 -46
  803. package/dist/survival-UI74VXSM.js +0 -58
  804. package/dist/survival.integration.spec-X5N3JQXS.js +0 -915
  805. package/dist/survival.integration.spec-X5N3JQXS.js.map +0 -7
  806. package/dist/svgraph-PSX2NER3.js +0 -1387
  807. package/dist/svmr-QDQ33EFX.js +0 -3842
  808. package/dist/table-LWAI27UO.js +0 -200
  809. package/dist/termCollection-3JHR74FG.js +0 -179
  810. package/dist/termCollection-3JHR74FG.js.map +0 -7
  811. package/dist/termCollection-CDF5LYUG.js +0 -38
  812. package/dist/termCollection.unit.spec-HOJKYWHF.js +0 -208
  813. package/dist/termCollection.unit.spec-HOJKYWHF.js.map +0 -7
  814. package/dist/tk-GL4QCL4K.js +0 -1019
  815. package/dist/tk-GL4QCL4K.js.map +0 -7
  816. package/dist/tk-OEQFO73V.js +0 -46
  817. package/dist/toggleButtons-YK7TIFF2.js +0 -9
  818. package/dist/tp.ui-SHNERDGC.js +0 -1459
  819. package/dist/tvs.density-3XJ6DBGO.js +0 -18
  820. package/dist/tvs.dt-CZDC4TSR.js +0 -39
  821. package/dist/tvs.dtcnv.categorical-OPBDHZGB.js +0 -40
  822. package/dist/tvs.dtcnv.continuous-AR6P4EP3.js +0 -72
  823. package/dist/tvs.dtfusion-2YQ7N6FQ.js +0 -40
  824. package/dist/tvs.dtitd-ATCHW735.js +0 -40
  825. package/dist/tvs.dtsnvindel-WHHWAATJ.js +0 -40
  826. package/dist/tvs.dtsv-3UMCW65O.js +0 -40
  827. package/dist/tvs.numeric-TOEPASWN.js +0 -21
  828. package/dist/tvs.samplelst-M7XKXRTZ.js +0 -104
  829. package/dist/tvs.termCollection-WT4WZMYR.js +0 -159
  830. package/dist/tvs.termCollection-WT4WZMYR.js.map +0 -7
  831. package/dist/violin-2YGXTBDS.js +0 -46
  832. package/dist/violin.integration.spec-YWNHVAGS.js +0 -1425
  833. package/dist/violin.integration.spec-YWNHVAGS.js.map +0 -7
  834. package/dist/violin.interactivity-J6BE2UQL.js +0 -38
  835. package/dist/violin.renderer-3GRUWP2U.js +0 -40
  836. package/dist/vocabulary-2INCVPYJ.js +0 -41
  837. /package/dist/{2dmaf-R3PFZNRN.js.map → 2dmaf-RRV3ORZR.js.map} +0 -0
  838. /package/dist/{AIProjectAdmin-DM3KG6SR.js.map → AIProjectAdmin-DKLEFCGX.js.map} +0 -0
  839. /package/dist/{AppHeader-6DZQ6YZX.js.map → AppHeader-WQ2F7HZY.js.map} +0 -0
  840. /package/dist/{CorrelationVolcano-U5UMJNH5.js.map → CorrelationVolcano-HR6IP2SZ.js.map} +0 -0
  841. /package/dist/{DE-AXNYWIQK.js.map → DE-DAW6ZKM7.js.map} +0 -0
  842. /package/dist/{Disco-NVMLF3BK.js.map → Disco-QEBEVQS2.js.map} +0 -0
  843. /package/dist/{DmrPlot-WROR4ENM.js.map → DmrPlot-CWBQDZL7.js.map} +0 -0
  844. /package/dist/{GSEA-Y5R2THIJ.js.map → GSEA-6UKMI6GY.js.map} +0 -0
  845. /package/dist/{Geomap-J763OK2F.js.map → Geomap-ANMR32HE.js.map} +0 -0
  846. /package/dist/{HicApp-UNIJLH4B.js.map → HicApp-WHPUPHEM.js.map} +0 -0
  847. /package/dist/{NumBinaryEditor-WMN2GGO4.js.map → NumBinaryEditor-VG5KOGDA.js.map} +0 -0
  848. /package/dist/{NumBinaryEditor.unit.spec-TAMXV6SE.js.map → NumBinaryEditor.unit.spec-UCGFZS3P.js.map} +0 -0
  849. /package/dist/{NumContEditor-XYIOJY4E.js.map → NumContEditor-J52RON3G.js.map} +0 -0
  850. /package/dist/{NumContEditor.unit.spec-WDZ75BHO.js.map → NumContEditor.unit.spec-5GTWUJEL.js.map} +0 -0
  851. /package/dist/{NumCustomBinEditor-5SY3C4TY.js.map → NumCustomBinEditor-GM2OJMOX.js.map} +0 -0
  852. /package/dist/{NumCustomBinEditor.unit.spec-XHTAIXR3.js.map → NumCustomBinEditor.unit.spec-3PGJ25J4.js.map} +0 -0
  853. /package/dist/{NumDiscreteEditor-NRDRX4FD.js.map → NumDiscreteEditor-2CAKT3Y4.js.map} +0 -0
  854. /package/dist/{NumDiscreteEditor.unit.spec-2CJW7OAT.js.map → NumDiscreteEditor.unit.spec-XCWSJTRT.js.map} +0 -0
  855. /package/dist/{NumRegularBinEditor-DUDVTNDC.js.map → NumRegularBinEditor-CZYITY5L.js.map} +0 -0
  856. /package/dist/{NumRegularBinEditor.unit.spec-H3GNQHMN.js.map → NumRegularBinEditor.unit.spec-OUBZ5XB3.js.map} +0 -0
  857. /package/dist/{NumSplineEditor-7Q4AC7KH.js.map → NumSplineEditor-TWRL5AQQ.js.map} +0 -0
  858. /package/dist/{NumSplineEditor.unit.spec-YRZK5PH5.js.map → NumSplineEditor.unit.spec-5P6NQZ3N.js.map} +0 -0
  859. /package/dist/{NumericDensity-NTNWUESG.js.map → NumericDensity-JSOFOEH2.js.map} +0 -0
  860. /package/dist/{NumericDensity.unit.spec-5I5U6T6P.js.map → NumericDensity.unit.spec-REUKHMKK.js.map} +0 -0
  861. /package/dist/{NumericHandler-MEW2KMPX.js.map → NumericHandler-UZOGKPKB.js.map} +0 -0
  862. /package/dist/{NumericHandler.unit.spec-JFX4BPRG.js.map → NumericHandler.unit.spec-X2DAED4O.js.map} +0 -0
  863. /package/dist/{WSIViewer-ZLQU62PD.js.map → WSIViewer-UDA4WIRT.js.map} +0 -0
  864. /package/dist/{WsiSamplesPlot-JMBSITOM.js.map → WsiSamplesPlot-DYSFMD22.js.map} +0 -0
  865. /package/dist/{adSandbox-664IRCRL.js.map → adSandbox-5BUDCAER.js.map} +0 -0
  866. /package/dist/{app-63WJ3BMP.js.map → app-O64TGDFH.js.map} +0 -0
  867. /package/dist/{app-77FIZHCG.js.map → app-Y2STUISK.js.map} +0 -0
  868. /package/dist/{barchart-YUVXJNH4.js.map → barchart-UHCTYRMJ.js.map} +0 -0
  869. /package/dist/{barchart.data-P4EIQXGE.js.map → barchart.data-LSK2P2PR.js.map} +0 -0
  870. /package/dist/{barchart.events-JPVCLTIG.js.map → barchart.events-Y4H2GADS.js.map} +0 -0
  871. /package/dist/{barchart2-XO2FG76J.js.map → barchart2-VIZKZRMP.js.map} +0 -0
  872. /package/dist/{bars.renderer-AUIWUJDH.js.map → bars.renderer-54UCFLJS.js.map} +0 -0
  873. /package/dist/{block-NBTCOT3H.js.map → block-BGSSF6XP.js.map} +0 -0
  874. /package/dist/{block.init-X7Y2EEVR.js.map → block.init-H7RKUIHG.js.map} +0 -0
  875. /package/dist/{block.mds.expressionrank-BIAOZIZ3.js.map → block.mds.expressionrank-MA3HGT7S.js.map} +0 -0
  876. /package/dist/{block.mds.geneboxplot-CNICDVLK.js.map → block.mds.geneboxplot-CWT5DM5T.js.map} +0 -0
  877. /package/dist/{block.mds.junction-PQXCTSUI.js.map → block.mds.junction-P4I7O73X.js.map} +0 -0
  878. /package/dist/{block.mds.svcnv-32KMVTCT.js.map → block.mds.svcnv-NSPEY43S.js.map} +0 -0
  879. /package/dist/{block.svg-LRTOYQK2.js.map → block.svg-DP4G3LNQ.js.map} +0 -0
  880. /package/dist/{block.tk.aicheck-HDV7ZIUD.js.map → block.tk.aicheck-EBLTOWKZ.js.map} +0 -0
  881. /package/dist/{block.tk.ase-JIDWKMYI.js.map → block.tk.ase-X7WKQOFS.js.map} +0 -0
  882. /package/dist/{block.tk.bam-5X3OS5HB.js.map → block.tk.bam-OIP3TS3N.js.map} +0 -0
  883. /package/dist/{block.tk.bedgraphdot-T7JX7YQL.js.map → block.tk.bedgraphdot-2DDF55J3.js.map} +0 -0
  884. /package/dist/{block.tk.hicstraw-DEY3VQFK.js.map → block.tk.hicstraw-4OIG4TBZ.js.map} +0 -0
  885. /package/dist/{block.tk.junction-7UAFEZSJ.js.map → block.tk.junction-52OWEQUN.js.map} +0 -0
  886. /package/dist/{block.tk.junction.textmatrixui-27LHS33U.js.map → block.tk.junction.textmatrixui-64YOSZLW.js.map} +0 -0
  887. /package/dist/{block.tk.ld-DF2PI7OO.js.map → block.tk.ld-3AMNHBDY.js.map} +0 -0
  888. /package/dist/{block.tk.menu-L2D5KBIV.js.map → block.tk.menu-4724DJXL.js.map} +0 -0
  889. /package/dist/{block.tk.pgv-QO56SKBV.js.map → block.tk.pgv-2SIOPWYI.js.map} +0 -0
  890. /package/dist/{brainRegions-ZNZ2WHSU.js.map → brainRegions-HJ2VGL3L.js.map} +0 -0
  891. /package/dist/{chunk-T25QNZHB.js.map → chunk-26APRXD3.js.map} +0 -0
  892. /package/dist/{chunk-3XVVN66M.js.map → chunk-2KXLYFAO.js.map} +0 -0
  893. /package/dist/{chunk-PJKQUXEN.js.map → chunk-3BGFM7Q4.js.map} +0 -0
  894. /package/dist/{chunk-KLGL6XZD.js.map → chunk-4HZN6PMU.js.map} +0 -0
  895. /package/dist/{chunk-4IH7DORZ.js.map → chunk-5DMVORBB.js.map} +0 -0
  896. /package/dist/{chunk-QNHT74XC.js.map → chunk-5QMBB4SK.js.map} +0 -0
  897. /package/dist/{chunk-KYBIQBXE.js.map → chunk-5R63Q5KH.js.map} +0 -0
  898. /package/dist/{chunk-RKO6BL5N.js.map → chunk-6JYQGZ3Y.js.map} +0 -0
  899. /package/dist/{chunk-5ABGFJSP.js.map → chunk-6QCYT6G2.js.map} +0 -0
  900. /package/dist/{chunk-ZNEJUKJW.js.map → chunk-B4ESQLPB.js.map} +0 -0
  901. /package/dist/{chunk-UGRQXBL4.js.map → chunk-E3VF4RHJ.js.map} +0 -0
  902. /package/dist/{chunk-W3WPPOXH.js.map → chunk-EGPNRSPF.js.map} +0 -0
  903. /package/dist/{chunk-M2G5R4WB.js.map → chunk-FACITNG5.js.map} +0 -0
  904. /package/dist/{chunk-CTQ3IUCA.js.map → chunk-H3N4KYKL.js.map} +0 -0
  905. /package/dist/{chunk-ASATD4T7.js.map → chunk-H3VWJH4U.js.map} +0 -0
  906. /package/dist/{chunk-F5IXNJO7.js.map → chunk-HEVKBSN6.js.map} +0 -0
  907. /package/dist/{chunk-YQBS2ZCK.js.map → chunk-HQUYAZQY.js.map} +0 -0
  908. /package/dist/{chunk-37XDBPOP.js.map → chunk-J4USU73L.js.map} +0 -0
  909. /package/dist/{chunk-K5XPMCKP.js.map → chunk-JH73IL4C.js.map} +0 -0
  910. /package/dist/{chunk-4STKL6SR.js.map → chunk-KU7YH7MV.js.map} +0 -0
  911. /package/dist/{chunk-HLUZOZXJ.js.map → chunk-M66VDGSH.js.map} +0 -0
  912. /package/dist/{chunk-5AZNP47R.js.map → chunk-MJN6RDXB.js.map} +0 -0
  913. /package/dist/{chunk-U7TBYVIQ.js.map → chunk-MPNEZ6EL.js.map} +0 -0
  914. /package/dist/{chunk-LFCYMSVA.js.map → chunk-MPSLUEI4.js.map} +0 -0
  915. /package/dist/{chunk-ONPKE6DC.js.map → chunk-NIXFCC7X.js.map} +0 -0
  916. /package/dist/{chunk-7OHRR2IE.js.map → chunk-NODQZTWK.js.map} +0 -0
  917. /package/dist/{chunk-4DPVT4NE.js.map → chunk-NVTJ5AUT.js.map} +0 -0
  918. /package/dist/{chunk-E55LLYRX.js.map → chunk-OOWXMY7U.js.map} +0 -0
  919. /package/dist/{chunk-XPY6AWXO.js.map → chunk-OTTMHVYH.js.map} +0 -0
  920. /package/dist/{chunk-OMR2DT66.js.map → chunk-Q5RDQNIT.js.map} +0 -0
  921. /package/dist/{chunk-3EWB3246.js.map → chunk-QDX2XUNF.js.map} +0 -0
  922. /package/dist/{chunk-WZ2L57MB.js.map → chunk-ROMW4AK2.js.map} +0 -0
  923. /package/dist/{chunk-MCZFHWIR.js.map → chunk-RR5U35N7.js.map} +0 -0
  924. /package/dist/{chunk-GAPI4MML.js.map → chunk-RVKADD4L.js.map} +0 -0
  925. /package/dist/{chunk-33K5PA52.js.map → chunk-S5ZCK44Z.js.map} +0 -0
  926. /package/dist/{chunk-ZTHM2TKP.js.map → chunk-SNRIVNQ3.js.map} +0 -0
  927. /package/dist/{chunk-WFCSOTBO.js.map → chunk-TAM7UCAI.js.map} +0 -0
  928. /package/dist/{chunk-NSTL4MY2.js.map → chunk-UJELJXJG.js.map} +0 -0
  929. /package/dist/{chunk-L7IRWUKT.js.map → chunk-ULESDMUT.js.map} +0 -0
  930. /package/dist/{chunk-3RSKOPIY.js.map → chunk-W76X6W73.js.map} +0 -0
  931. /package/dist/{chunk-PFRWS4CR.js.map → chunk-W7OS7BNM.js.map} +0 -0
  932. /package/dist/{chunk-Q2L44HK3.js.map → chunk-WTTD6DUL.js.map} +0 -0
  933. /package/dist/{chunk-2GYWFQML.js.map → chunk-WXPFMVU6.js.map} +0 -0
  934. /package/dist/{chunk-BOZJHPJP.js.map → chunk-YBLTSYQV.js.map} +0 -0
  935. /package/dist/{condition-2PASYSUC.js.map → condition-L2IXP6WH.js.map} +0 -0
  936. /package/dist/{controls-5IMJ6K5L.js.map → controls-2S5QVWUC.js.map} +0 -0
  937. /package/dist/{controls.config-P5PG2DHW.js.map → controls.config-3AJKR4ZZ.js.map} +0 -0
  938. /package/dist/{correlation-U3EDLNHR.js.map → correlation-DXTAWSLU.js.map} +0 -0
  939. /package/dist/{cuminc.integration.spec-WFWAPTDA.js.map → cuminc.integration.spec-WAYRLHUH.js.map} +0 -0
  940. /package/dist/{customdata.inputui-ZHWNEPFH.js.map → customdata.inputui-7WH2NJGB.js.map} +0 -0
  941. /package/dist/{dataDownload-VBSJBKMP.js.map → dataDownload-HM4UYOBO.js.map} +0 -0
  942. /package/dist/{dataDownload.integration.spec-LUFSETOP.js.map → dataDownload.integration.spec-F5CO4BWA.js.map} +0 -0
  943. /package/dist/{dictionary-V37LXFIP.js.map → dictionary-EEPTFDYD.js.map} +0 -0
  944. /package/dist/{dnaMethylation-OIZMHMLK.js.map → dnaMethylation-N3WNK6XA.js.map} +0 -0
  945. /package/dist/{dofetch-IWPZQB5N.js.map → dofetch-YKYPEJTQ.js.map} +0 -0
  946. /package/dist/{e2pca-7SLIAGYW.js.map → e2pca-JEZIGVB2.js.map} +0 -0
  947. /package/dist/{ep-7L6KF6K4.js.map → ep-5FMH2MLV.js.map} +0 -0
  948. /package/dist/{expclust.gdc.spec-JT452Q3G.js.map → expclust.gdc.spec-FR26VSUA.js.map} +0 -0
  949. /package/dist/{gb-P4VRXRED.js.map → gb-WGEVO7L2.js.map} +0 -0
  950. /package/dist/{geneExpression-BHO5326K.js.map → geneExpression-5NWQXMJ3.js.map} +0 -0
  951. /package/dist/{geneExpression-ZMERB64E.js.map → geneExpression-VWUMM2LU.js.map} +0 -0
  952. /package/dist/{geneORA-FXVUCXGX.js.map → geneORA-3VWFWDYI.js.map} +0 -0
  953. /package/dist/{geneRanking-SFK4UBKQ.js.map → geneRanking-PKDVD5OD.js.map} +0 -0
  954. /package/dist/{geneVariant-IYEHB4H7.js.map → geneVariant-IFIJQXH4.js.map} +0 -0
  955. /package/dist/{geneVariant-LIRRLUFR.js.map → geneVariant-WZSOG4GI.js.map} +0 -0
  956. /package/dist/{geneVariant.integration.spec-Y2NPNTYX.js.map → geneVariant.integration.spec-6KQMWVHR.js.map} +0 -0
  957. /package/dist/{geneset-A6VUFX63.js.map → geneset-RJAULSKC.js.map} +0 -0
  958. /package/dist/{genomeBrowser.spec-CB4HHHBN.js.map → genomeBrowser.spec-42OTTMGO.js.map} +0 -0
  959. /package/dist/{grin2-FKBIMH5N.js.map → grin2-26O6YDDY.js.map} +0 -0
  960. /package/dist/{grin2-V36KLEBU.js.map → grin2-FT5BQJMB.js.map} +0 -0
  961. /package/dist/{hierCluster-QFPRMHVA.js.map → hierCluster-GJPPMFNR.js.map} +0 -0
  962. /package/dist/{hierCluster-YWC3XYPV.js.map → hierCluster-HMJF3PBE.js.map} +0 -0
  963. /package/dist/{hierCluster.config-F7YYZNM3.js.map → hierCluster.config-TAS7XKTU.js.map} +0 -0
  964. /package/dist/{hierCluster.interactivity-RPY74PK6.js.map → hierCluster.interactivity-IKTAJ6CU.js.map} +0 -0
  965. /package/dist/{hierCluster.renderers-LOKHZ3V2.js.map → hierCluster.renderers-I6WFZRNW.js.map} +0 -0
  966. /package/dist/{imagePlot-BBEXA754.js.map → imagePlot-N4OXNMVA.js.map} +0 -0
  967. /package/dist/{importPlot-7QGANZGK.js.map → importPlot-VMYXDP66.js.map} +0 -0
  968. /package/dist/{isoformExpression-4SLLCVFD.js.map → isoformExpression-2KV64KMN.js.map} +0 -0
  969. /package/dist/{launch.adhoc-LWLBQJS5.js.map → junction-VO4IGMW2.js.map} +0 -0
  970. /package/dist/{matrix-BGLWC25D.js.map → junction.customTerm-EFMHHVWA.js.map} +0 -0
  971. /package/dist/{matrix-IQR5SRMK.js.map → launch.adhoc-R3MO3VXK.js.map} +0 -0
  972. /package/dist/{legacyDataset-VLD7ZYWI.js.map → legacyDataset-4BXYHQTS.js.map} +0 -0
  973. /package/dist/{lollipop-XKQK5QZU.js.map → lollipop-XIVE4ANX.js.map} +0 -0
  974. /package/dist/{maf-AZQPPWDO.js.map → maf-WRHD4OJF.js.map} +0 -0
  975. /package/dist/{maftimeline-7MSVYKQU.js.map → maftimeline-IE6YKV7Y.js.map} +0 -0
  976. /package/dist/{matrix.cells-5C57NWOY.js.map → matrix-ALBCAZP5.js.map} +0 -0
  977. /package/dist/{matrix.config-2DQXAN2E.js.map → matrix-W72XRUZD.js.map} +0 -0
  978. /package/dist/{matrix.data-ADCGF5H6.js.map → matrix.cells-DEEUWC74.js.map} +0 -0
  979. /package/dist/{matrix.groups-V4ITQ5F7.js.map → matrix.config-JYXQOXDT.js.map} +0 -0
  980. /package/dist/{matrix.interactivity-JNELJFOV.js.map → matrix.data-ENXNM6RP.js.map} +0 -0
  981. /package/dist/{matrix.layout-WBVIV6GR.js.map → matrix.groups-EXSNNESB.js.map} +0 -0
  982. /package/dist/{matrix.integration.spec-IBNOO2WP.js.map → matrix.integration.spec-BW6U6PIW.js.map} +0 -0
  983. /package/dist/{matrix.legend-YHOWPK77.js.map → matrix.interactivity-G6AL566T.js.map} +0 -0
  984. /package/dist/{matrix.renderers-5BGVRR3M.js.map → matrix.layout-UBUPIJ3R.js.map} +0 -0
  985. /package/dist/{matrix.serieses-2GZJOASZ.js.map → matrix.legend-S3P4F2DG.js.map} +0 -0
  986. /package/dist/{matrix.sort-WKIWPJKP.js.map → matrix.renderers-IXFGXHJQ.js.map} +0 -0
  987. /package/dist/{matrix.sorterUi-TEJWWJ64.js.map → matrix.serieses-THHXUAPM.js.map} +0 -0
  988. /package/dist/{plot.app-MLBP6WFP.js.map → matrix.sort-WJV6LIZI.js.map} +0 -0
  989. /package/dist/{matrix.sort.unit.spec-L2E4D4AS.js.map → matrix.sort.unit.spec-LGMIL2LR.js.map} +0 -0
  990. /package/dist/{profilePlot-ZZYZK4SY.js.map → matrix.sorterUi-VXVCOKEZ.js.map} +0 -0
  991. /package/dist/{matrix.sorterUi.unit.spec-SHP7C4P7.js.map → matrix.sorterUi.unit.spec-CWSEJ62U.js.map} +0 -0
  992. /package/dist/{mavb-4MXNYUEO.js.map → mavb-SXGKASQ5.js.map} +0 -0
  993. /package/dist/{mds.fimo-WHIJIBOI.js.map → mds.fimo-EDOT3TDN.js.map} +0 -0
  994. /package/dist/{mds.samplescatterplot-BRJ6NG2D.js.map → mds.samplescatterplot-IXHNABKB.js.map} +0 -0
  995. /package/dist/{mds.survivalplot-OPCMB5PB.js.map → mds.survivalplot-KTTMHHII.js.map} +0 -0
  996. /package/dist/{numericDictTermCluster-7MIFOP2K.js.map → numericDictTermCluster-H4JSPW22.js.map} +0 -0
  997. /package/dist/{oncomatrix-BGG6BEUI.js.map → oncomatrix-O4EMNUOT.js.map} +0 -0
  998. /package/dist/{oncomatrix.spec-LYQ4L4F3.js.map → oncomatrix.spec-BME6CQWF.js.map} +0 -0
  999. /package/dist/{plot.2dvaf-6WVCP2ZI.js.map → plot.2dvaf-FDM4KXGT.js.map} +0 -0
  1000. /package/dist/{qualitative-MLRVLIAU.js.map → plot.app-UNUXG7ND.js.map} +0 -0
  1001. /package/dist/{plot.barplot-JEPRZSCU.js.map → plot.barplot-R333TMG2.js.map} +0 -0
  1002. /package/dist/{plot.boxplot-GNFW42VM.js.map → plot.boxplot-KQTYGUN3.js.map} +0 -0
  1003. /package/dist/{plot.brainImaging-5ACNSD45.js.map → plot.brainImaging-YBYMHCEG.js.map} +0 -0
  1004. /package/dist/{plot.disco-Q2V2KKIH.js.map → plot.disco-CMDKRSOM.js.map} +0 -0
  1005. /package/dist/{plot.dzi-KVT6S7K7.js.map → plot.dzi-YAZA6RQS.js.map} +0 -0
  1006. /package/dist/{plot.ssgq-4N3KFJQ2.js.map → plot.ssgq-YKCOEXZP.js.map} +0 -0
  1007. /package/dist/{plot.vaf2cov-ITRG5U43.js.map → plot.vaf2cov-3TLMTFZS.js.map} +0 -0
  1008. /package/dist/{plot.wsi-26YZNU4V.js.map → plot.wsi-7ADVYTQS.js.map} +0 -0
  1009. /package/dist/{regression-WMRPQJW2.js.map → profilePlot-AP52VLLO.js.map} +0 -0
  1010. /package/dist/{regression.inputs-VWZKSYNY.js.map → pseudobulk-7UKRLKQI.js.map} +0 -0
  1011. /package/dist/{regression.inputs.term-OWE6GWHM.js.map → qualitative-2D7MC4V5.js.map} +0 -0
  1012. /package/dist/{regression.inputs.values.table-4INNZQI2.js.map → regression-CE54AQMY.js.map} +0 -0
  1013. /package/dist/{regression.results-VZBYMBYC.js.map → regression.inputs-SMC5CNPY.js.map} +0 -0
  1014. /package/dist/{render-N5FOF247.js.map → regression.inputs.term-XS54IQC2.js.map} +0 -0
  1015. /package/dist/{sampleView-ICOT2R6O.js.map → regression.inputs.values.table-LNPM3MX5.js.map} +0 -0
  1016. /package/dist/{regression.integration.spec-XKQ2JOOT.js.map → regression.integration.spec-6QSMYPWJ.js.map} +0 -0
  1017. /package/dist/{singleCellCellType-D2CN2BHQ.js.map → regression.results-25ZRRDEE.js.map} +0 -0
  1018. /package/dist/{regression.spec-DU3UTDCJ.js.map → regression.spec-EDWHFRPY.js.map} +0 -0
  1019. /package/dist/{singleCellGeneExpression-YR2ZT34W.js.map → render-SEB6GFXQ.js.map} +0 -0
  1020. /package/dist/{report-DW3OHB67.js.map → report-U6L3KBYG.js.map} +0 -0
  1021. /package/dist/{singleCellPlot-3ICIOILE.js.map → sampleView-QAAJ26KT.js.map} +0 -0
  1022. /package/dist/{samplelst-TJEVASYG.js.map → samplelst-KYRXJSZN.js.map} +0 -0
  1023. /package/dist/{samplematrix-6DAWCXQ3.js.map → samplematrix-STLF2QA5.js.map} +0 -0
  1024. /package/dist/{sc-53LNOB7N.js.map → sc-HL6YSMDX.js.map} +0 -0
  1025. /package/dist/{scatter-DKYSS4DL.js.map → scatter-BSGDMOC2.js.map} +0 -0
  1026. /package/dist/{selectGenomeWithTklst-WTX66TV3.js.map → selectGenomeWithTklst-4NHQDTE6.js.map} +0 -0
  1027. /package/dist/{snp-VIURB7L3.js.map → singleCellCellType-3E2IU42J.js.map} +0 -0
  1028. /package/dist/{ssGSEA-THW4WFMI.js.map → singleCellGeneExpression-53UUGYTK.js.map} +0 -0
  1029. /package/dist/{summarizeMutationDiagnosis-AKFJDSAF.js.map → singleCellPlot-JDSARDRV.js.map} +0 -0
  1030. /package/dist/{singlecell-KX7W4U57.js.map → singlecell-IJR7BJYT.js.map} +0 -0
  1031. /package/dist/{singlecell-6ZUFA3BQ.js.map → singlecell-OK6GJFWL.js.map} +0 -0
  1032. /package/dist/{summary-A5P7AYK4.js.map → snp-H4KJEEOE.js.map} +0 -0
  1033. /package/dist/{snp.unit.spec-ACZNZUNS.js.map → snp.unit.spec-2Y4A3XYI.js.map} +0 -0
  1034. /package/dist/{snplocus-3LW4ZUZR.js.map → snplocus-4GG6VTWX.js.map} +0 -0
  1035. /package/dist/{spliceevent.a53ss.diagram-AKTZGWNM.js.map → spliceevent.a53ss.diagram-JZNRC5UC.js.map} +0 -0
  1036. /package/dist/{spliceevent.exonskip.diagram-XZHXB77R.js.map → spliceevent.exonskip.diagram-H54N7ZKY.js.map} +0 -0
  1037. /package/dist/{spliceevent.noeventdiagram-YTXWWNTJ.js.map → spliceevent.noeventdiagram-II753XAK.js.map} +0 -0
  1038. /package/dist/{survival-QNEI6YVK.js.map → ssGSEA-JPJ3C4JI.js.map} +0 -0
  1039. /package/dist/{ssGSEA.unit.spec-HTRGQI2K.js.map → ssGSEA.unit.spec-45F5OCDK.js.map} +0 -0
  1040. /package/dist/{summarizeCnvGeneexp-RFYC3H2Z.js.map → summarizeCnvGeneexp-55DNXHXA.js.map} +0 -0
  1041. /package/dist/{summarizeMutationCnv-7AYEMHAI.js.map → summarizeMutationCnv-QX7BADYL.js.map} +0 -0
  1042. /package/dist/{termCollection-CDF5LYUG.js.map → summarizeMutationDiagnosis-MHFM7RX6.js.map} +0 -0
  1043. /package/dist/{summarizeMutationSurvival-QJHZRQBZ.js.map → summarizeMutationSurvival-G4KHSUBN.js.map} +0 -0
  1044. /package/dist/{tk-OEQFO73V.js.map → summary-PJYRCQNY.js.map} +0 -0
  1045. /package/dist/{summary.integration.spec-HQISXGNL.js.map → summary.integration.spec-KPKROD6L.js.map} +0 -0
  1046. /package/dist/{sunburst-65LSYRXX.js.map → sunburst-IGIV2RBE.js.map} +0 -0
  1047. /package/dist/{survival-UI74VXSM.js.map → survival-DINCIWW7.js.map} +0 -0
  1048. /package/dist/{svgraph-PSX2NER3.js.map → svgraph-EUEZWGVR.js.map} +0 -0
  1049. /package/dist/{svmr-QDQ33EFX.js.map → svmr-B24LODSC.js.map} +0 -0
  1050. /package/dist/{table-LWAI27UO.js.map → table-XSJJ3UZV.js.map} +0 -0
  1051. /package/dist/{toggleButtons-YK7TIFF2.js.map → termCollection-IAB3425K.js.map} +0 -0
  1052. /package/dist/{tvs.density-3XJ6DBGO.js.map → termCollectionFractionSelection-35YKAOUY.js.map} +0 -0
  1053. /package/dist/{tvs.dt-CZDC4TSR.js.map → tk-25EJJDRK.js.map} +0 -0
  1054. /package/dist/{tp.ui-SHNERDGC.js.map → tp.ui-VGA62NFM.js.map} +0 -0
  1055. /package/dist/{tvs.numeric-TOEPASWN.js.map → tvs.density-G56327WY.js.map} +0 -0
  1056. /package/dist/{violin-2YGXTBDS.js.map → tvs.dt-DFW36WKO.js.map} +0 -0
  1057. /package/dist/{tvs.dtcnv.categorical-OPBDHZGB.js.map → tvs.dtcnv.categorical-ZP33EO3A.js.map} +0 -0
  1058. /package/dist/{tvs.dtcnv.continuous-AR6P4EP3.js.map → tvs.dtcnv.continuous-FJTMQF4J.js.map} +0 -0
  1059. /package/dist/{tvs.dtfusion-2YQ7N6FQ.js.map → tvs.dtfusion-FTDQWNKM.js.map} +0 -0
  1060. /package/dist/{tvs.dtitd-ATCHW735.js.map → tvs.dtitd-W5VEECJ2.js.map} +0 -0
  1061. /package/dist/{tvs.dtsnvindel-WHHWAATJ.js.map → tvs.dtsnvindel-UOXSLCDZ.js.map} +0 -0
  1062. /package/dist/{tvs.dtsv-3UMCW65O.js.map → tvs.dtsv-HWCPRVBO.js.map} +0 -0
  1063. /package/dist/{violin.interactivity-J6BE2UQL.js.map → tvs.numeric-7TGKWQYU.js.map} +0 -0
  1064. /package/dist/{tvs.samplelst-M7XKXRTZ.js.map → tvs.samplelst-OWD22ITS.js.map} +0 -0
  1065. /package/dist/{violin.renderer-3GRUWP2U.js.map → violin-2IAVZGFF.js.map} +0 -0
  1066. /package/dist/{vocabulary-2INCVPYJ.js.map → violin.interactivity-STOCZMVN.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../plots/sc/model/SCModel.ts", "../plots/sc/viewModel/SCViewModel.ts", "../plots/sc/interactions/SCInteractions.ts", "../plots/sc/view/SampleTableRenderer.ts", "../plots/sc/view/PlotButtons.ts", "../plots/sc/view/SectionRenderer.ts", "../plots/sc/settings/Settings.ts", "../plots/sc/view/SCViewRenderer.ts", "../plots/sc/settings/defaults.ts", "../plots/sc/subplots/DynamicSubplot.ts", "../plots/sc/subplots/SubplotManager.ts", "../plots/sc/SC.ts"],
4
+ "sourcesContent": ["import type { AppApi } from '#rx'\nimport type { SCFormattedState } from '../SCTypes'\nimport { dofetch3 } from '#common/dofetch'\nimport type { SCViewer } from '../SC'\nimport { getNormalRoot } from '#filter/filter.utils'\n\n/** Fetches data for sc app */\nexport class SCModel {\n\tsc: SCViewer\n\tapp: AppApi\n\tid?: string\n\tstate: SCFormattedState\n\n\tconstructor(sc: SCViewer) {\n\t\tthis.sc = sc\n\t\tthis.app = sc.app\n\t\tthis.id = sc.id\n\t\tthis.state = sc.app.getState()\n\t}\n\n\t/********** All Single Cell SAMPLES for rendering the sample table ******** */\n\tasync getAllSampleData(state) {\n\t\tconst body = {\n\t\t\tgenome: state.vocab.genome,\n\t\t\tdslabel: state.vocab.dslabel,\n\t\t\tfilter: getNormalRoot(state.termfilter.filter),\n\t\t\tfilter0: state.termfilter.filter0\n\t\t}\n\t\treturn await dofetch3('termdb/singlecellSamples', { body, signal: this.sc.api?.getAbortSignal() })\n\t}\n\n\t//Fetches optional name for ds defined columns\n\tasync getColumnLabels(dsScSamples: { [key: string]: any }) {\n\t\tif (!dsScSamples || !dsScSamples.sampleColumns) return\n\t\tconst colsCopy = structuredClone(dsScSamples.sampleColumns)\n\t\tfor (const col of colsCopy) {\n\t\t\tlet label = col.termid\n\t\t\ttry {\n\t\t\t\tlabel = (await this.app.vocabApi.getterm(col.termid)).name\n\t\t\t} catch (e: any) {\n\t\t\t\tif (e.message) {\n\t\t\t\t\t//Ignore. if statement to prevent tsc error.\n\t\t\t\t}\n\t\t\t\t/** Ignore errors and use the termid as the column header.\n\t\t\t\t * this is due to practical constrain that gdc needs to supply\n\t\t\t\t * analysis.workflow_type as 'Library', but this is not a term\n\t\t\t\t * in gdc dictionary */\n\t\t\t}\n\t\t\tcol.label = label\n\t\t}\n\t\treturn colsCopy\n\t}\n\n\t/********** Single Cell DATA for rendering plots ********\n\t * This is for the plot buttons. Returns an array plots with found files or\n\t * available data. */\n\tasync getSampleData() { \n\t\tconst body = this.getDataRequestOpts()\n\t\tif (!body) return\n\t\treturn await dofetch3('termdb/singlecellData', { body, signal: this.sc.api?.getAbortSignal() })\n\t}\n\n\t/** May provide active plots to the request and return plot data when\n\t * checkPlotAvailability is false. When checkPlotAvailability is true,\n\t * only returns which plots are available but not the actual data. */\n\tgetDataRequestOpts(_plots: any[] = [], checkPlotAvailability = true) {\n\t\tconst state = this.app.getState()\n\t\tconst singleCellTermdbConfig = state.termdbConfig?.queries?.singleCell\n\t\tif (!singleCellTermdbConfig?.data) throw new Error('No singleCell.data defined in termdbConfig.queries')\n\n\t\tconst config = state.plots.find((p: any) => p.id === this.id)\n\t\tif (!config.settings.sc.item) return\n\n\t\tconst plots = _plots?.length ? _plots : singleCellTermdbConfig.data.plots.map(p => p.name)\n\n\t\treturn {\n\t\t\tgenome: this.state.vocab.genome,\n\t\t\tdslabel: this.state.vocab.dslabel,\n\t\t\t// if true, only return available plot names, but not actual plot data\n\t\t\tcheckPlotAvailability,\n\t\t\tplots,\n\t\t\tsample: {\n\t\t\t\teID: config.settings.sc.item.eID,\n\t\t\t\tsID: config.settings.sc.item.sID\n\t\t\t}\n\t\t}\n\t}\n\n\t/** Essentially for the GDC. Maybe applied to other ds in the future. */\n\tasync getCategories(_plots: any[]): Promise<string[] | undefined> {\n\t\tconst body = this.getDataRequestOpts(_plots, false)\n\t\tif (!body) return\n\n\t\tlet res\n\t\ttry {\n\t\t\tres = await dofetch3('termdb/singlecellData', { body, signal: this.sc.api?.getAbortSignal() })\n\t\t} catch (e: any) {\n\t\t\tif (e instanceof Error) console.error(`${e.message || e}`)\n\t\t}\n\n\t\treturn this.formatCategories(res)\n\t}\n\n\tformatCategories(res: any): string[] {\n\t\tconst plot = structuredClone(res.plots[0])\n\n\t\tplot.cells = [...plot.noExpCells, ...plot.expCells]\n\t\tconst clusters: Set<string> = new Set(plot.cells.map(c => c.category))\n\n\t\t/** Clean up list into an descending array */\n\t\tconst sortedClusters: string[] = Array.from(clusters).sort((a: any, b: any) => {\n\t\t\tconst num1 = parseInt(a.split(' ')[1])\n\t\t\tconst num2 = parseInt(b.split(' ')[1])\n\t\t\treturn num1 - num2\n\t\t})\n\t\treturn sortedClusters\n\t}\n}\n", "import type { AppApi } from '#rx'\nimport type { TableColumn, TableRow } from '#dom'\nimport type { SCConfig, SCFormattedState, SampleColumn, SCTableData } from '../SCTypes'\nimport type { SingleCellSample } from '#types'\n\nexport class SCViewModel {\n\tapp: AppApi\n\tstate: SCFormattedState\n\ttableData!: SCTableData\n\tsampleColumns: SampleColumn[]\n\tmetaResultIds: Set<string>\n\n\tconstructor(app: AppApi, sampleColumns?: SampleColumn[]) {\n\t\tthis.app = app\n\t\tthis.state = this.app.getState()\n\t\tthis.sampleColumns = sampleColumns || []\n\t\tthis.metaResultIds = new Set()\n\t}\n\n\tprocessData(config: SCConfig, _items: SingleCellSample[]) {\n\t\t//Sort meta analysis results to show at the beginning of the table.\n\t\t//Prevents breaking the logic for selected rows after formating the table data.\n\t\tconst items = _items.sort((a, b) => (b.isMetaResult === a.isMetaResult ? 0 : b.isMetaResult ? 1 : -1))\n\n\t\tconst [rows, columns, sampleColIdx] = this.getTabelData(config, items, this.sampleColumns)\n\t\tconst selectedRows: number[] = []\n\t\tconst sID = config.settings.sc.item?.sID\n\t\tconst i = sID\n\t\t\t? items.findIndex(item => item.sample === sID || item.experiments?.some(e => e.sampleName === sID))\n\t\t\t: -1\n\t\tif (i != -1) selectedRows.push(i)\n\n\t\t/** Returning this data separately from the eventual\n\t\t * viewData because it's static. */\n\t\tthis.tableData = {\n\t\t\trows: rows as any,\n\t\t\tcolumns: columns as any,\n\t\t\tselectedRows,\n\t\t\tsampleColIdx\n\t\t}\n\t}\n\n\tgetTabelData(\n\t\tplotConfig: SCConfig,\n\t\titems: SingleCellSample[],\n\t\tsampleColumns?: SampleColumn[]\n\t): [TableRow[], TableColumn[], number] {\n\t\tconst rows: TableRow[] = []\n\t\tconst hasExperiments = items.some(i => i.experiments)\n\t\tlet sampleColIdx = -1\n\n\t\t/** First column may either be a list of samples or mix of samples, meta, and/or pseudobulk.\n\t\t * Only use 'Sample' or config setting if everything is a sample. */\n\t\tlet firstColLabel = plotConfig.settings.sc.columns.sample\n\t\tif (items[0]?.isMetaResult) firstColLabel = ''\n\t\tconst columns: TableColumn[] = [{ label: firstColLabel, sortable: true }]\n\t\tif (hasExperiments) {\n\t\t\tcolumns.push({ label: 'Sample', sortable: true }) //add after the case column\n\t\t\tsampleColIdx = 1\n\t\t} else sampleColIdx = 0\n\t\tcolumns.push({ label: 'Shown plots' }) //Empty column for plot buttons\n\n\t\t// add in optional sample columns\n\t\tfor (const col of sampleColumns || []) {\n\t\t\tcolumns.push({\n\t\t\t\tlabel: col.label,\n\t\t\t\twidth: '14vw',\n\t\t\t\tsortable: true\n\t\t\t})\n\t\t}\n\n\t\t// if samples are using experiments, add the hardcoded experiment column at the end\n\t\tif (hasExperiments) columns.push({ label: 'Experiment', sortable: true }) // corresponds to this.samples[].experiments[].experimentID\n\n\t\tfor (const item of items) {\n\t\t\tif (item.isMetaResult) this.metaResultIds.add(item.sample)\n\t\t\tif (hasExperiments)\n\t\t\t\t//GDC\n\t\t\t\tfor (const exp of item.experiments!) {\n\t\t\t\t\t// first cell is always sample name. sneak in experiment object to be accessed in click callback\n\t\t\t\t\t//TODO: Consider removing the experimentID as it is no longer needed.\n\t\t\t\t\tconst row: { [index: string]: any }[] = [{ value: item.sample, __experimentID: exp.experimentID }]\n\t\t\t\t\t// hardcode to expect exp.sampleName and add this as a column\n\t\t\t\t\trow.push({ value: exp.sampleName })\n\t\t\t\t\trow.push({ value: '' }) //Empty cell for shown plot buttons\n\t\t\t\t\t// optional sample and experiment columns\n\t\t\t\t\tfor (const col of sampleColumns || []) {\n\t\t\t\t\t\trow.push({ value: item[col.termid] })\n\t\t\t\t\t}\n\n\t\t\t\t\t// hardcode to always add in experiment id column. link out only if the ds declares a\n\t\t\t\t\t// url template for it (as singleCellPlot.js does)\n\t\t\t\t\tconst urlTemp = this.state.termdbConfig?.urlTemplates?.scrnaExperimentId\n\t\t\t\t\tif (urlTemp) row.push({ value: exp.experimentID, url: `${urlTemp.base}${exp.experimentID}` })\n\t\t\t\t\telse row.push({ value: exp.experimentID })\n\t\t\t\t\trows.push(row)\n\t\t\t\t}\n\t\t\telse {\n\t\t\t\t// sample does not use experiment\n\t\t\t\t// first cell is sample name\n\t\t\t\tconst row: { [index: string]: any }[] = item.isMetaResult\n\t\t\t\t\t? [{ html: item.sample.replace(/_/g, ' '), value: item.sample, elemId: 'isMetaResult' }]\n\t\t\t\t\t: [{ value: item.sample }]\n\t\t\t\t//Empty cell for shown plot buttons\n\t\t\t\trow.push({ value: '' })\n\t\t\t\t// optional sample columns\n\t\t\t\tfor (const col of sampleColumns || []) {\n\t\t\t\t\tconst value = item[col.termid]\n\t\t\t\t\tif (value == null && item.isMetaResult) row.push({ value: 'All' })\n\t\t\t\t\telse row.push({ value: item[col.termid] })\n\t\t\t\t}\n\t\t\t\trows.push(row)\n\t\t\t}\n\t\t}\n\t\treturn [rows, columns, sampleColIdx]\n\t}\n}\n", "import type { AppApi } from '#rx'\nimport type { SCModel } from '../model/SCModel.ts'\nimport type { SCViewer } from '../SC.ts'\nimport type { SCViewModel } from '../viewModel/SCViewModel.ts'\n\n/** Handles the interactivity from the view */\nexport class SCInteractions {\n\tapp: AppApi\n\tid: string\n\tmodel: SCModel\n\tviewModel: SCViewModel\n\n\tconstructor(sc: SCViewer) {\n\t\tthis.app = sc.app\n\t\tthis.id = sc.id\n\t\tthis.model = sc.model\n\t\tthis.viewModel = sc.viewModel\n\t}\n\n\t/** Add the plot to the state.plots array with .parentId. Adding\n\t * .parentId prevents the plot from launching in a new sandbox outside SC.\n\t * Pass the .parentId to both the plotConfig and the action.\n\t * this.getState() in SC.ts will find all the subplots with the parentId==this.id\n\t * SC.main() initializes the subplots as components in chartsDiv */\n\tasync createSubplot(config) {\n\t\tconst c = Object.assign({}, config, { parentId: this.id })\n\t\tawait this.app.dispatch({\n\t\t\ttype: 'plot_create',\n\t\t\tparentId: this.id,\n\t\t\tconfig: c\n\t\t})\n\t}\n\n\t/** Updates the selected item in the plot settings */\n\tasync updateItem(item) {\n\t\titem.isMetaResult = this.viewModel.metaResultIds.has(item.sID)\n\t\tawait this.app.dispatch({\n\t\t\ttype: 'plot_edit',\n\t\t\tid: this.id,\n\t\t\tconfig: { settings: { sc: { item } } }\n\t\t})\n\t}\n\n\tasync getDropDownOptions(plot): Promise<string[] | undefined> {\n\t\treturn this.model.getCategories(plot)\n\t}\n}\n", "import type { SCDom, SCSampleSandbox, SCTableData } from '../SCTypes'\nimport type { TableCell } from '#dom'\nimport { renderTable } from '#dom'\nimport type { SCInteractions } from '../interactions/SCInteractions'\n\n/** Renders the sample table for selection on SC app init()\n * On selecting a sample, the plot buttons will appear and\n * the user can select a plot to render in the dashboard. */\nexport class SampleTableRenderer {\n\tdom: SCDom\n\tinteractions: SCInteractions\n\ttableData: SCTableData\n\tactiveSandboxes: Map<string, SCSampleSandbox[]> = new Map()\n\t/** Tracks rendered btns per sample to avoid unnecessary destroy/recreate pattern. */\n\trendered: Map<string, { cell: any; plotIds: string }> = new Map()\n\n\tconstructor(dom: SCDom, interactions: SCInteractions, tableData: SCTableData) {\n\t\tthis.dom = dom\n\t\tthis.interactions = interactions\n\t\tthis.tableData = tableData\n\t\tthis.renderSamplesTable(tableData)\n\t}\n\n\t/** Users select one item at a time to render the plot buttons\n\t * to init() plots in the dashboard.*/\n\trenderSamplesTable(tableData: SCTableData) {\n\t\tthis.dom.tableDiv.selectAll('*').remove()\n\n\t\trenderTable({\n\t\t\trows: tableData.rows,\n\t\t\tcolumns: tableData.columns,\n\t\t\tdiv: this.dom.tableDiv,\n\t\t\tsingleMode: true,\n\t\t\t// maxWidth: tableData.columns.length > 3 ? '95vw' : 'auto',\n\t\t\tmaxHeight: '30vh',\n\t\t\theader: {\n\t\t\t\tallowSort: true,\n\t\t\t\tstyle: { 'text-transform': 'capitalize' }\n\t\t\t},\n\t\t\tstriped: true,\n\t\t\tselectedRows: tableData.selectedRows,\n\t\t\tafterRender: () => {\n\t\t\t\tthis.reapplyAllPlotButtons()\n\t\t\t},\n\t\t\tnoButtonCallback: index => {\n\t\t\t\tconst item = this.buildItemFromRow(tableData, index)\n\t\t\t\tthis.interactions.updateItem(item)\n\t\t\t\tthis.dom.plotsBtnsDiv.style('display', 'block')\n\t\t\t}\n\t\t})\n\t}\n\n\t/** Builds an item object from a table row, mapping column labels to keys.\n\t * Converts 'sample' -> 'sID' and 'experiment' -> 'eID'.\n\t * Extracted out from noButtonCallback for testing. */\n\tbuildItemFromRow(tableData: SCTableData, index: number) {\n\t\tconst item = {} as { sID: string; eID: string; [key: string]: any }\n\t\ttableData.rows[index].forEach((r: TableCell, idx: number) => {\n\t\t\tif (!r.value) return\n\t\t\tlet key = tableData.columns[idx].label.toLowerCase()\n\t\t\t/** Convert the column labels into the required sample structure keys.\n\t\t\t * Maintains the sample obj used throughout the app whilst allowing for\n\t\t\t * dynamic column labels based on the config. */\n\t\t\tkey = key === 'sample' || key === '' ? 'sID' : key === 'experiment' ? 'eID' : key\n\t\t\titem[key] = r.value\n\t\t})\n\t\tif (!item.sID) throw new Error('Selected item must have sID property')\n\t\treturn item\n\t}\n\n\tupdateTable(tableData: SCTableData) {\n\t\tthis.tableData = tableData\n\t\tthis.dom.tableDiv.selectAll('*').remove()\n\t\tthis.renderSamplesTable(tableData)\n\t}\n\n\tupdatePlotBtns(activeSandboxes: Map<string, SCSampleSandbox[]>) {\n\t\tthis.activeSandboxes = activeSandboxes\n\t\tthis.reapplyAllPlotButtons()\n\t}\n\n\t/** Called by afterRender to re-apply buttons for all samples with subplots.\n\t * Also called in updateTable when the active sandboxes (i.e. subplots) change.*/\n\treapplyAllPlotButtons() {\n\t\t/** Check btns still apply to active sandboxes. If not delete\n\t\t * from table and tracker. */\n\t\tfor (const sampleId of this.rendered.keys()) {\n\t\t\tif (!this.activeSandboxes.has(sampleId)) {\n\t\t\t\tthis.deleteBtns(sampleId)\n\t\t\t}\n\t\t}\n\t\tfor (const sampleId of this.activeSandboxes.keys()) {\n\t\t\tthis.applyButtonsForSample(sampleId)\n\t\t}\n\t}\n\n\tdeleteBtns(sampleId: string) {\n\t\tconst cached = this.rendered.get(sampleId)\n\t\tif (cached) {\n\t\t\tcached.cell.selectAll('.sjpp-sc-table-plot-btn').remove()\n\t\t\tthis.rendered.delete(sampleId)\n\t\t}\n\t}\n\n\t/** Applies buttons for a single sample. Skips DOM work if cell and plots are unchanged. */\n\tapplyButtonsForSample(sampleId: string) {\n\t\tconst sampleIdx = this.tableData.sampleColIdx\n\n\t\t/** Rows array mutates on sort. Find the row by matching sampleId.*/\n\t\tconst row = this.tableData.rows.find(r => r[sampleIdx].value === sampleId)\n\t\tif (!row) return\n\n\t\tconst cell = row[sampleIdx + 1].__td\n\t\tconst sampleSandboxes = this.activeSandboxes.get(sampleId)\n\t\tif (!sampleSandboxes || sampleSandboxes.length === 0) return\n\n\t\tconst plotIds = sampleSandboxes.map(s => s.plotId).join(',')\n\t\tconst cached = this.rendered.get(sampleId)\n\t\t/** Guard against rerendering btns */\n\t\tif (cached && cached.cell === cell && cached.plotIds === plotIds) return\n\n\t\tcell.selectAll('.sjpp-sc-table-plot-btn').remove()\n\t\tthis.rendered.set(sampleId, { cell, plotIds })\n\t\tfor (const { div, plotName } of sampleSandboxes) {\n\t\t\tthis.appendPlotBtn(cell, div, plotName, sampleId)\n\t\t}\n\t}\n\n\tappendPlotBtn(cell: any, sandboxDiv: any, plotName: string, sampleId: string) {\n\t\tconst text = plotName.length > 25 ? plotName.slice(0, 12) + '...' : plotName\n\t\tconst label = `Scroll to ${plotName}`\n\t\tcell\n\t\t\t.append('button')\n\t\t\t.attr('class', 'sjpp-sc-table-plot-btn')\n\t\t\t.attr('data-testid', `sjpp-sc-table-${sampleId}-${plotName}-btn`)\n\t\t\t.style('padding', '2px 5px')\n\t\t\t.style('margin-left', '4px')\n\t\t\t.style('font-size', '0.8em')\n\t\t\t.style('border-radius', '20px')\n\t\t\t.style('border', '0.5px solid black')\n\t\t\t.style('cursor', 'pointer')\n\t\t\t.text(text)\n\t\t\t.attr('aria-label', label)\n\t\t\t.attr('title', label)\n\t\t\t.attr('tabindex', 0)\n\t\t\t.on('click', () => {\n\t\t\t\tsandboxDiv.node().scrollIntoView({ behavior: 'smooth', block: 'start' })\n\t\t\t})\n\t}\n}\n", "import type { Div, Elem } from '../../../types/d3'\nimport type { SCInteractions } from '../interactions/SCInteractions'\nimport { Menu } from '#dom'\nimport { digestMessage } from '#termsetting'\nimport { TermTypeGroups } from '#shared/terms.js'\nimport { SINGLECELL_CELLTYPE, SINGLECELL_GENE_EXPRESSION } from '#types'\nimport type { SCSample } from '../SCTypes'\nimport type { Settings } from '../settings/Settings'\n\n/** Rendering for the plot buttons that appear below the item\n * table. Plot buttons are rendered based on the available plots\n * for the selected sample, and the config defined in\n * termdbConfig.queries.singleCell.data.plots. Each plot config\n * in termdbConfig should define a name that matches the plot\n * names returned from the server, and can optionally define\n * colorColumns which will be used to apply color to the plot\n * if those columns are present in the data.\n *\n * Notes:\n * - The hierarchical clustering limits to the first 100 genes.\n * */\nexport class PlotButtons {\n\tplotBtnsDom: {\n\t\tholder: Div\n\t\tpromptDiv: Div\n\t\tselectPrompt: Elem\n\t\tbtnsDiv: Div\n\t\ttip: Menu\n\t}\n\tdata?: any\n\titem?: SCSample\n\tinteractions: SCInteractions\n\tscTermdbConfig: any\n\tsettings!: Settings\n\tscctTerms?: any[]\n\tavailablePlots!: Set<string>\n\n\t/** scctTerms and the scTermdbConfig are created on server init and will not change. */\n\tconstructor(interactions: SCInteractions, holder: Div, termdbConfig) {\n\t\tholder.style('padding', '10px')\n\t\tconst promptDiv = holder.append('div').style('padding', '10px 0').text('Select data from')\n\t\tthis.plotBtnsDom = {\n\t\t\tholder,\n\t\t\tpromptDiv,\n\t\t\tselectPrompt: promptDiv.append('span'),\n\t\t\tbtnsDiv: holder.append('div'),\n\t\t\ttip: new Menu({ padding: '' })\n\t\t}\n\t\tthis.interactions = interactions\n\t\tthis.scctTerms = termdbConfig?.termType2terms?.[TermTypeGroups.SINGLECELL_CELLTYPE]\n\t\tthis.scTermdbConfig = termdbConfig.queries.singleCell\n\t}\n\n\tupdate(settings: Settings, data) {\n\t\t/** If the user has not selected a item yet but clicks\n\t\t * the select item/plots btn above the table, the prompt appears\n\t\t * unnecessarily */\n\t\tconst item = settings.sc.item\n\t\tthis.plotBtnsDom.holder.style('display', !item ? 'none' : 'block')\n\t\tif (!item) return\n\t\tif (data != null && data.plots) this.data = data\n\t\t//Show buttons for plots with found data files (see note above).\n\t\tthis.availablePlots = new Set(this.data?.plots?.map((p: any) => p.name))\n\t\tthis.settings = settings\n\t\tthis.item = item\n\t\tconst name = item.sID\n\t\tthis.plotBtnsDom.selectPrompt.text(` ${name}:`)\n\t\tthis.renderChartBtns()\n\t}\n\n\trenderChartBtns() {\n\t\tthis.plotBtnsDom.btnsDiv.selectAll('*').remove()\n\t\tconst btns = this.getChartBtnOpts()\n\n\t\tthis.plotBtnsDom.btnsDiv\n\t\t\t.selectAll('button')\n\t\t\t.data(btns.filter(b => (b.isVisible ? b.isVisible() : true)))\n\t\t\t.enter()\n\t\t\t.append('button')\n\t\t\t.attr('type', 'button')\n\t\t\t.attr('data-testid', b => `sjpp-sc-plot-btn-${b.label.toLowerCase().replace(/\\s/g, '-')}`)\n\t\t\t.style('padding', '10px 15px')\n\t\t\t.style('border-radius', '20px')\n\t\t\t.style('border-color', 'transparent')\n\t\t\t.style('background-color', '#CFE2F3')\n\t\t\t.style('margin', '0 10px')\n\t\t\t.style('cursor', 'pointer')\n\t\t\t.text(b => b.label)\n\t\t\t.on('click', async (e, plot) => {\n\t\t\t\tif (plot.open) {\n\t\t\t\t\tthis.plotBtnsDom.tip.clear().showunder(e.target)\n\t\t\t\t\tplot.open(plot, this)\n\t\t\t\t} else {\n\t\t\t\t\tif (!plot.getPlotConfig)\n\t\t\t\t\t\tthrow new Error(`No getPlotConfig function defined for this plot button = ${plot.label}`)\n\t\t\t\t\tconst config = await plot.getPlotConfig()\n\t\t\t\t\tawait this.interactions.createSubplot(config)\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tgetChartBtnOpts() {\n\t\tconst btns: {\n\t\t\tlabel: string\n\t\t\tisVisible: () => boolean\n\t\t\topen?: (plot: any, self: PlotButtons) => void\n\t\t\tgetPlotConfig?: (f?: any) => any\n\t\t}[] = []\n\n\t\tfor (const plot of this.scTermdbConfig?.data?.plots || []) {\n\t\t\tif (!this.availablePlots.has(plot.name)) continue\n\t\t\tbtns.push({\n\t\t\t\tlabel: plot.name,\n\t\t\t\tisVisible: () => true,\n\t\t\t\tgetPlotConfig: async () => {\n\t\t\t\t\treturn await this.getSingleCellConfig(plot.name)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tbtns.push(\n\t\t\t{\n\t\t\t\tlabel: 'Summary',\n\t\t\t\tisVisible: () => true,\n\t\t\t\tgetPlotConfig: () => {\n\t\t\t\t\tconst sample = { ...this.item!, plots: Array.from(this.availablePlots) }\n\t\t\t\t\tconst isMeta = sample?.isMetaResult || false\n\t\t\t\t\treturn {\n\t\t\t\t\t\tchartType: 'dictionary',\n\t\t\t\t\t\tsample,\n\t\t\t\t\t\tspawnConfig: {\n\t\t\t\t\t\t\tparentId: this.interactions.id,\n\t\t\t\t\t\t\theaderText: `${isMeta ? '' : 'Sample: '}${this.item!.sID}`,\n\t\t\t\t\t\t\thidePlotFilter: !isMeta,\n\t\t\t\t\t\t\tsample\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttree: {\n\t\t\t\t\t\t\tusecase: {\n\t\t\t\t\t\t\t\ttarget: 'dictionary',\n\t\t\t\t\t\t\t\tspecialCase: {\n\t\t\t\t\t\t\t\t\ttype: 'singleCell',\n\t\t\t\t\t\t\t\t\tconfig: { sample }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Gene expression',\n\t\t\t\tisVisible: () => this.scTermdbConfig?.geneExpression,\n\t\t\t\tgetPlotConfig: () => {\n\t\t\t\t\tconst sample = this.item!\n\t\t\t\t\tconst isMeta = sample?.isMetaResult || false\n\t\t\t\t\tconst headerText = `${isMeta ? '' : 'Sample: '}${this.item!.sID}`\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tchartType: 'GeneExpInput',\n\t\t\t\t\t\ttermType: SINGLECELL_GENE_EXPRESSION,\n\t\t\t\t\t\theaderText,\n\t\t\t\t\t\ttermProperties: { sample },\n\t\t\t\t\t\tparentId: this.interactions.id,\n\t\t\t\t\t\tsample,\n\t\t\t\t\t\tspawnConfig: {\n\t\t\t\t\t\t\tparentId: this.interactions.id,\n\t\t\t\t\t\t\theaderText,\n\t\t\t\t\t\t\thidePlotFilter: !isMeta,\n\t\t\t\t\t\t\t/** Must pass this to summary config in the event a continuous\n\t\t\t\t\t\t\t * overlay is applied, launching the scatter plot. Without it,\n\t\t\t\t\t\t\t * the single cell model is not used. */\n\t\t\t\t\t\t\tsingleCellPlot: {\n\t\t\t\t\t\t\t\tname: [...this.availablePlots][0],\n\t\t\t\t\t\t\t\tsample\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Differential expression',\n\t\t\t\tisVisible: () => this.scTermdbConfig?.DEgenes,\n\t\t\t\topen: this.termDropdownMenu,\n\t\t\t\tgetPlotConfig: value => {\n\t\t\t\t\tconst isMeta = this.item?.isMetaResult || false\n\t\t\t\t\treturn {\n\t\t\t\t\t\tchartType: 'differentialAnalysis',\n\t\t\t\t\t\ttermType: SINGLECELL_CELLTYPE,\n\t\t\t\t\t\tcategoryName: `${value}`,\n\t\t\t\t\t\theaderText: `${isMeta ? '' : 'Sample: '}${this.item!.sID}, ${this.scTermdbConfig.DEgenes.termId} ${value}`,\n\t\t\t\t\t\ttermId: this.scTermdbConfig.DEgenes.termId,\n\t\t\t\t\t\tsample: this.item!,\n\t\t\t\t\t\tplotName: 'Differential expression'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.scTermdbConfig?.images?.label || 'Image',\n\t\t\t\tisVisible: () =>\n\t\t\t\t\tthis.scTermdbConfig?.images && this.availablePlots.has(this.scTermdbConfig.images.label || 'Image'),\n\t\t\t\tgetPlotConfig: () => {\n\t\t\t\t\tconst isMeta = this.item?.isMetaResult || false\n\t\t\t\t\treturn {\n\t\t\t\t\t\tchartType: 'imagePlot',\n\t\t\t\t\t\tsample: this.item!,\n\t\t\t\t\t\timgDir: this.scTermdbConfig?.images,\n\t\t\t\t\t\theaderText: `${isMeta ? '' : 'Sample: '}${this.item!.sID}`,\n\t\t\t\t\t\tsettings: { imagePlot: { width: '', height: 400 } }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t\treturn btns\n\t}\n\n\t//********** Btn Menus **********/\n\tasync termDropdownMenu(plot: any, self: PlotButtons) {\n\t\t/** An array of plots is required for the server request.\n\t\t * The data for all scRNA plots is the same. Pick the first one */\n\t\tconst _plot = Array.from(self.availablePlots)[0]\n\t\tconst options: string[] | undefined = await self.interactions.getDropDownOptions([_plot])\n\t\tif (!options?.length) throw new Error('No options found for this plot. Cannot open dropdown menu.')\n\n\t\tself.plotBtnsDom.tip.clear()\n\t\tconst wrapper = self.plotBtnsDom.tip.d.append('div').style('padding', '10px')\n\t\twrapper\n\t\t\t.append('div')\n\t\t\t.style('display', 'block')\n\t\t\t.style('width', '300px')\n\t\t\t.text(`View differentially expressed genes of a ${self.scTermdbConfig.DEgenes.termId} versus rest of the cells:`)\n\n\t\tconst select = wrapper\n\t\t\t.append('select')\n\t\t\t.style('margin', '10px 0')\n\t\t\t.style('width', 'auto')\n\t\t\t.style('padding', '5px')\n\t\t\t.on('change', async function () {\n\t\t\t\tself.plotBtnsDom.tip.hide()\n\t\t\t\tconst value = select.node()!.value\n\t\t\t\tif (value.indexOf('Select') == 0) return //ignore prompt option\n\t\t\t\tconst config = plot.getPlotConfig(value)\n\t\t\t\tawait self.interactions.createSubplot(config)\n\t\t\t})\n\n\t\tconst regex = new RegExp(self.scTermdbConfig.DEgenes.termId, 'gi')\n\t\toptions.unshift(`Select a ${self.scTermdbConfig.DEgenes.termId}...`)\n\t\tfor (const cluster of options) {\n\t\t\tselect.append('option').attr('value', cluster.replace(regex, '').trim()).text(cluster)\n\t\t}\n\t}\n\n\t//********** Plot Config Helpers **********/\n\tasync getSingleCellConfig(plotName: string): Promise<object> {\n\t\tif (!this.item) throw new Error('No item selected')\n\t\tconst plot = this.scTermdbConfig.data.plots.find(p => p.name == plotName)\n\t\tif (!plot) throw new Error(`No plot by name ${plotName} in data.plots.`)\n\t\tconst sample = this.item\n\t\tconst isMeta = sample?.isMetaResult || false\n\t\tconst config: any = {\n\t\t\tchartType: 'sampleScatter',\n\t\t\tname: `${isMeta ? '' : 'Sample: '}${this.item.sID}`,\n\t\t\tsample,\n\t\t\tsingleCellPlot: {\n\t\t\t\tname: plotName,\n\t\t\t\tsample\n\t\t\t}\n\t\t}\n\t\tif (plot.colorColumns?.[0]) {\n\t\t\t// apply optional color term. hardcodes to 1st of the array\n\t\t\tconfig.colorTW = await this.makeScctTW(sample, plot)\n\t\t}\n\t\treturn config\n\t}\n\n\t// Quick fix. Eventually use the handler to get the proper term from the termdbConfig\n\tasync makeScctTW(item: { sID: string; eID: string }, plot: any) {\n\t\tconst colorColName = plot.colorColumns[0].name\n\t\tconst savedTerm = this.scctTerms?.find(t => t.name == colorColName && t.plot == plot.name)\n\t\tif (!savedTerm)\n\t\t\tthrow new Error(\n\t\t\t\t`No term found for colorColumn=${colorColName} in .termType2terms.[TermTypeGroups.SINGLECELL_CELLTYPE] for plot ${plot.name}`\n\t\t\t)\n\t\tconst term = Object.assign(structuredClone(savedTerm), {\n\t\t\tsample: item\n\t\t})\n\t\tconst id = await digestMessage(`${plot.name}-${item.sID}-${item.eID}`)\n\t\treturn Object.assign({ $id: id }, { term })\n\t}\n}\n", "import type { Sections } from './Sections'\nimport type { Div, Elem } from '../../../types/d3'\nimport type { SCViewer } from '../SC'\nimport type { SingleCellSample } from '#types'\nimport type { GroupByOptions } from '../settings/Settings'\n\n/** Manages the mapping and rendering of the sections based on the groupBy option.\n * sections{} maps the section key (i.e. sampleId, plotName, or none) to the section\n * wrapper, title, subplots div, and the sandboxes in that section.\n *\n * Initializing and destroying the plot components is within SC.ts\n * (i.e. sc.components.plots[plotId]). This ensures plots are responsive to state changes.\n */\nexport class SectionRenderer {\n\tsections: Sections\n\tholder: Div\n\t/** Maps the plotId to either the sampleId, plotName, or none (i.e. key in sections map)\n\t * as a reverse lookup. Used in tandem with sections{} to manage the sandboxes\n\t * within each section. */\n\tplotId2Key: Map<string, string>\n\tgroupBy: (typeof GroupByOptions)[number]\n\n\tconstructor(sectionsDiv: Div, groupBy: (typeof GroupByOptions)[number]) {\n\t\tthis.sections = {}\n\t\tthis.holder = sectionsDiv\n\t\t//Key may be either sampleId, plotName, or none\n\t\tthis.plotId2Key = new Map()\n\t\tthis.groupBy = groupBy\n\t}\n\n\t/** Send the sc with the updated state. May not be necessary long term. If not,\n\t * remove and put in the constructor. */\n\tasync update(sc: SCViewer, subplots: any, groupBy: (typeof GroupByOptions)[number]) {\n\t\tif (groupBy !== this.groupBy) {\n\t\t\tthis.groupBy = groupBy\n\t\t\tthis.regroupSections(sc, subplots)\n\t\t\treturn\n\t\t}\n\t\tconst activeSubplots = new Set(subplots.map(s => s.id))\n\n\t\t/** Reconcile stale sandbox wrappers using section state.\n\t\t * Subplot lifecycle is managed by SubplotManager. */\n\t\tfor (const plotId of Array.from(this.plotId2Key.keys())) {\n\t\t\tif (!activeSubplots.has(plotId)) this.removeSandbox(plotId)\n\t\t}\n\n\t\tfor (const subplot of subplots) {\n\t\t\tconst key = this.getKey(subplot, sc)\n\t\t\tif (!key) continue\n\t\t\tif (!this.sections[key]) this.initSection(key, sc)\n\t\t\tif (!this.sections[key].sandboxes[subplot.id]) {\n\t\t\t\tthis.plotId2Key.set(subplot.id, key)\n\t\t\t\tsc.subplotManager.setSectionKey(subplot.id, key)\n\t\t\t\tawait this.initSandbox(sc, subplot, key)\n\t\t\t}\n\t\t}\n\n\t\t/** Remove sections after iterating through subplots to avoid\n\t\t * deleting sections before they can be re-rendered with the correct plots */\n\t\tfor (const key of Object.keys(this.sections)) {\n\t\t\tif (Object.keys(this.sections[key].sandboxes).length === 0) {\n\t\t\t\tthis.removeSection(key, sc)\n\t\t\t}\n\t\t}\n\t}\n\n\t/** Reparent existing sandboxes into new section containers\n\t * without destroying/recreating plot components. */\n\tprivate regroupSections(sc: SCViewer, subplots: any[]) {\n\t\t// Detach existing sandbox from their parents before clearing\n\t\tconst detached: Map<string, any> = new Map()\n\t\tfor (const [plotId, key] of this.plotId2Key) {\n\t\t\tconst sandboxNode = this.sections[key]?.sandboxes[plotId]\n\t\t\tif (sandboxNode) {\n\t\t\t\t// Remove from current parent without destroying\n\t\t\t\tsandboxNode.remove()\n\t\t\t\tdetached.set(plotId, sandboxNode)\n\t\t\t}\n\t\t}\n\n\t\t// Clear the section wrappers since sandboxes are already detached\n\t\tthis.holder.selectAll('*').remove()\n\t\tthis.sections = {}\n\t\tthis.plotId2Key = new Map()\n\n\t\t// Regroup into new sections, reparenting existing sandbox\n\t\tfor (const subplot of subplots) {\n\t\t\tconst key = this.getKey(subplot, sc)\n\t\t\tif (!key) continue\n\t\t\tif (!this.sections[key]) this.initSection(key, sc)\n\n\t\t\tthis.plotId2Key.set(subplot.id, key)\n\t\t\tsc.subplotManager.setSectionKey(subplot.id, key)\n\t\t\tconst existing = detached.get(subplot.id)\n\t\t\tif (existing) {\n\t\t\t\t// Reparent the existing sandbox into the new section\n\t\t\t\tthis.sections[key].subplots.node()!.prepend(existing.node())\n\t\t\t\tthis.sections[key].sandboxes[subplot.id] = existing\n\t\t\t}\n\t\t}\n\t}\n\n\tgetKey(subplot: any, sc): string | undefined {\n\t\tif (this.groupBy === 'none') return 'none'\n\t\tif (this.groupBy === 'sample') return this.getSampleId(subplot)\n\t\treturn sc.subplotManager.getPlotName(subplot)\n\t}\n\n\t/** Extract sID from a subplot's config.\n\t * Actual subplots store sample as {sID, eID} at top level or on term.term.sample. */\n\tgetSampleId(subplot: any): string | undefined {\n\t\treturn subplot.sample?.sID || subplot.singleCellPlot?.sample?.sID || subplot.term?.term?.sample?.sID\n\t}\n\n\tinitSection(key: string, sc: SCViewer) {\n\t\tconst item = this.findSampleMetadata(key, sc)\n\n\t\tconst titleAttrText =\n\t\t\tthis.groupBy == 'sample' ? 'this sample section' : this.groupBy == 'plot' ? 'this plot section' : 'all plots'\n\t\tconst sectionWrapper = this.holder\n\t\t\t.insert('div', ':first-child')\n\t\t\t.style('padding', '10px')\n\t\t\t.attr('data-testid', `sjpp-sc-section-wrapper-${key}`)\n\n\t\t//delete section btn\n\t\tsectionWrapper\n\t\t\t.append('span')\n\t\t\t.attr('data-testid', `sjpp-sc-section-remove-btn-${key}`)\n\t\t\t.style('margin', '0px 5px')\n\t\t\t.style('cursor', 'pointer')\n\t\t\t.attr('title', `Remove ${titleAttrText}`)\n\t\t\t.html(\n\t\t\t\t`<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"#000\" class=\"bi bi-x-lg\" viewBox=\"0 0 12 12\">\n <path\n stroke=\"#000\"\n transform=\"scale(0.75)\"\n 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\"/>\n </svg>`\n\t\t\t)\n\t\t\t.on('click', () => {\n\t\t\t\tthis.removeSection(key, sc)\n\t\t\t})\n\n\t\tconst titleText = this.makeSectionTitleText(key, item)\n\t\tconst titleWrapper = sectionWrapper.append('span').style('font-weight', 600).style('opacity', 0.7).text(titleText)\n\t\tif (titleText.length) {\n\t\t\tconst arrow = titleWrapper\n\t\t\t\t.append('span')\n\t\t\t\t.style('font-size', '0.8em')\n\t\t\t\t.style('padding-left', '3px')\n\t\t\t\t.attr('title', `Show/hide plots in ${titleAttrText}`)\n\t\t\t\t.text('\u25BC')\n\n\t\t\ttitleWrapper.on('click', () => {\n\t\t\t\tconst isHidden = this.sections[key].subplots.style('display') === 'none'\n\t\t\t\tthis.sections[key].subplots.style('display', isHidden ? 'block' : 'none')\n\t\t\t\tarrow.text(isHidden ? '\u25BC' : '\u25B2')\n\t\t\t})\n\t\t}\n\n\t\tthis.sections[key] = {\n\t\t\tsectionWrapper,\n\t\t\ttitle: titleWrapper,\n\t\t\tsubplots: sectionWrapper.append('div').attr('data-testid', `sjpp-sc-subplots-${key}`),\n\t\t\tsandboxes: {}\n\t\t}\n\t}\n\n\t/** Look up sample metadata from the fetched items list.\n\t * For experiment datasets, matches sID against experiments[].sampleName.\n\t * For non-experiment datasets, matches sID against item.sample. */\n\tfindSampleMetadata(sampleId: string, sc: SCViewer): SingleCellSample | undefined {\n\t\tif (!sc.items) return undefined\n\t\treturn sc.items.find(item => item.sample === sampleId || item.experiments?.some(e => e.sampleName === sampleId))\n\t}\n\n\tmakeSectionTitleText(key: string, item?: SingleCellSample) {\n\t\tif (this.groupBy === 'none') return 'All plots'\n\t\tif (this.groupBy === 'plot') return key\n\t\tconst caseText = item?.sample && item.sample !== key ? `Case: ${item.sample}` : ''\n\t\tconst isMeta = item?.isMetaResult || false\n\t\tconst itemText = `${isMeta ? '' : 'Sample: '}${key}`\n\t\tconst projectText = item?.['project id'] ? `Project: ${item['project id']}` : ''\n\t\treturn [itemText, caseText, projectText].filter(Boolean).join(' ')\n\t}\n\n\tasync initSandbox(sc: any, subplot: any, key: string) {\n\t\tconst sandboxHolder = this.sections[key].subplots\n\t\t\t.insert('div', ':first-child')\n\t\t\t.attr('data-testid', `sjpp-sc-sandbox-${subplot.id}`) as any as Elem\n\n\t\tconst sandboxDiv = await sc.subplotManager.initSubplotSandbox(sandboxHolder, subplot, {\n\t\t\tsectionKey: key\n\t\t})\n\t\tthis.sections[key].sandboxes[subplot.id] = sandboxDiv\n\t}\n\n\tremoveSection(key: string, sc: SCViewer) {\n\t\tconst subactions: { type: string; id: string; parentId: string }[] = []\n\t\tfor (const plotId of Object.keys(this.sections[key].sandboxes || {})) {\n\t\t\tthis.removeSandbox(plotId, key)\n\t\t\t/** Need to remove plots from the state to prevent main from re-rendering\n\t\t\t * and memory leak from orphaned components after the section is deleted. */\n\t\t\tsubactions.push({\n\t\t\t\ttype: 'plot_delete',\n\t\t\t\tid: plotId,\n\t\t\t\tparentId: sc.id\n\t\t\t})\n\t\t}\n\t\tif (subactions.length > 0) {\n\t\t\tsc.app.dispatch({\n\t\t\t\ttype: 'app_refresh',\n\t\t\t\tsubactions\n\t\t\t})\n\t\t}\n\t\tthis.sections[key].sectionWrapper.remove()\n\t\tdelete this.sections[key]\n\t}\n\n\tremoveSandbox(plotId: string, _key?: string) {\n\t\tconst key = _key || this.plotId2Key.get(plotId)\n\t\tif (!key) return\n\t\tconst section = this.sections[key]\n\t\tconst sandbox = section?.sandboxes?.[plotId]\n\t\tif (sandbox) sandbox.remove()\n\t\tif (section?.sandboxes?.[plotId]) delete section.sandboxes[plotId]\n\t\t//Remove the reference to the plotId in plot2Sample map to avoid memory leak\n\t\tthis.plotId2Key.delete(plotId)\n\t}\n}\n", "import type { SCSample } from '../SCTypes'\n\nexport const GroupByOptions = ['none', 'sample', 'plot'] as const\n\nexport type Settings = {\n\tsc: SCSettings\n\thierCluster: {\n\t\tunit: string\n\t\tyDendrogramHeight: number\n\t\tclusterSamples: boolean\n\t}\n}\n\nexport type SCSettings = {\n\tcolumns: {\n\t\t/** Defined column name for 'sample' column*/\n\t\tsample: string\n\t}\n\t/** Active item chosen by the user */\n\titem: SCSample | undefined\n\tgroupBy: (typeof GroupByOptions)[number]\n}\n", "import type { SCActiveSubplot, SCDom, SCFormattedState, SCTableData } from '../SCTypes'\nimport type { SCInteractions } from '../interactions/SCInteractions'\nimport { SampleTableRenderer } from './SampleTableRenderer'\nimport { PlotButtons } from './PlotButtons'\nimport { SectionRenderer } from './SectionRenderer'\nimport type { SCViewer } from '../SC.ts'\nimport type { SubplotManager } from '../subplots/SubplotManager.ts'\nimport { GroupByOptions, type SCSettings, type Settings } from '../settings/Settings'\nimport { make_radios } from '#dom'\n\n/** Manages the initial rendering of the sample table and the dynamic\n * rendering of the plot buttons and sections based on the selected sample and plots.\n * .update() from sc.main() updates the plot buttons and sections. */\nexport class SCViewRenderer {\n\t//On load, show table\n\t//Eventually maybe an app dispatch and not a flag\n\tstatic inUse: boolean = true\n\n\tsc: SCViewer\n\tdom: SCDom\n\tinteractions: SCInteractions\n\tplotBtns!: PlotButtons\n\tsectionRenderer!: SectionRenderer\n\tsampleTableRenderer!: SampleTableRenderer\n\n\tconstructor(sc: SCViewer) {\n\t\tthis.sc = sc\n\t\tthis.dom = sc.dom\n\t\tthis.interactions = sc.interactions\n\t}\n\n\trender(settings: SCSettings, state: SCFormattedState) {\n\t\tthis.renderSelectBtn()\n\t\tthis.renderGroupByOptions(settings)\n\t\tthis.plotBtns = new PlotButtons(this.interactions, this.dom.plotsBtnsDiv, state.termdbConfig)\n\t\tthis.sectionRenderer = new SectionRenderer(this.dom.sectionsDiv, settings.groupBy)\n\t\t// this.dom.plotsBtnsDiv.style('display', 'none')\n\t}\n\n\t/** Renders the select btn at the top of the page that\n\t * show/hides the item table and plot buttons */\n\trenderSelectBtn() {\n\t\tthis.dom.controlsDiv.style('padding', '10px')\n\n\t\tconst btn = this.dom.controlsDiv\n\t\t\t.append('button')\n\t\t\t.attr('data-testid', 'sjpp-sc-item-table-select-btn')\n\t\t\t.attr('title', 'Show/hide sample table and plot buttons')\n\t\t\t.style('border-radius', '20px')\n\t\t\t.style('padding', '5px 10px')\n\t\t\t.style('background-color', 'transparent')\n\t\t\t//Will need to use ds specific keys/logic here\n\t\t\t.text('Select sample and plots')\n\n\t\tconst arrowSpan = btn.append('span').style('font-size', '0.8em').style('padding-left', '3px').text('\u25BC')\n\n\t\tbtn.on('click', () => {\n\t\t\tSCViewRenderer.inUse = !SCViewRenderer.inUse\n\t\t\tarrowSpan.text(SCViewRenderer.inUse ? '\u25BC' : '\u25B2')\n\t\t\tthis.dom.tableDiv.style('display', SCViewRenderer.inUse ? 'block' : 'none')\n\t\t\tthis.dom.plotsBtnsDiv.style('display', SCViewRenderer.inUse ? 'block' : 'none')\n\t\t})\n\t}\n\n\trenderGroupByOptions(settings: SCSettings) {\n\t\tthis.dom.controlsDiv\n\t\t\t.append('span')\n\t\t\t.style('padding', '3px 0px 3px 20px')\n\t\t\t.style('opacity', 0.7)\n\t\t\t.text('Group plots by:')\n\t\tconst optionsDiv = this.dom.controlsDiv.append('span').style('display', 'inline-block')\n\t\tconst options = GroupByOptions.map(option => {\n\t\t\treturn {\n\t\t\t\tlabel: `${option.charAt(0).toUpperCase() + option.slice(1)}`,\n\t\t\t\tvalue: option,\n\t\t\t\tchecked: settings.groupBy === option\n\t\t\t}\n\t\t})\n\t\tmake_radios({\n\t\t\tholder: optionsDiv,\n\t\t\tstyles: { display: 'inline-block' },\n\t\t\toptions,\n\t\t\tcallback: async value => {\n\t\t\t\tawait this.sc.app.dispatch({\n\t\t\t\t\ttype: 'plot_edit',\n\t\t\t\t\tid: this.sc.id,\n\t\t\t\t\tconfig: { settings: { sc: { ...settings, groupBy: value } } }\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n\n\tasync update(\n\t\tsettings: Settings,\n\t\tdata: any,\n\t\tactiveSubplots: SCActiveSubplot[],\n\t\ttableData: SCTableData,\n\t\tsubplotManager: SubplotManager\n\t) {\n\t\tthis.sampleTableRenderer = new SampleTableRenderer(this.dom, this.interactions, tableData)\n\t\tthis.plotBtns.update(settings, data)\n\t\t//Also handles when settings.sc.groupBy == 'none' to show all plots in one section\n\t\tawait this.sectionRenderer.update(\n\t\t\tthis.sc,\n\t\t\tactiveSubplots.map(s => s.subplot),\n\t\t\tsettings.sc.groupBy\n\t\t)\n\t\tconst activeSandboxes = subplotManager.getSampleSandboxes()\n\t\tthis.sampleTableRenderer.updatePlotBtns(activeSandboxes)\n\t}\n}\n", "import { getGEunit } from '#tw/geneExpression'\nimport type { Settings } from './Settings'\n\n/** Define all subplot settings here */\nexport function getDefaultSCAppSettings(overrides = {}, app): Settings {\n\tconst defaults: Settings = {\n\t\tsc: {\n\t\t\tcolumns: {\n\t\t\t\tsample: 'Sample'\n\t\t\t},\n\t\t\titem: undefined,\n\t\t\tgroupBy: 'sample'\n\t\t},\n\t\thierCluster: {\n\t\t\tunit: getGEunit(app.vocabApi),\n\t\t\tyDendrogramHeight: 0,\n\t\t\tclusterSamples: false\n\t\t}\n\t}\n\treturn Object.assign(defaults, overrides)\n}\n", "import { importPlot } from '#plots/importPlot.js'\nimport { getCompInit, multiInit, type RxComponent, type ComponentApi } from '#rx'\nimport { filterRxCompInit } from '#filter'\nimport type { MassAppApi } from '#mass/types/mass'\n\n/** Wrapper for subplot sanbdoxes created dynamically.\n * Builds out the expected dom structure and extra functionality (e.g. plot filter)\n *\n * Note: #mass/app.ts expects parent plots to manage plot init for all subplots,\n * which means plotInit() and summaryInit() are never called for subplots.\n * The functionality here is sligthly different from MassPlot && plotInit()\n * in #mass/plot.js to support dynamic creation and destory within the parent */\n\nclass DynamicSubplot implements RxComponent {\n\tstatic type = 'dynamicSubplot'\n\n\ttype: string\n\topts!: { [index: string]: any }\n\tapp: MassAppApi\n\tid!: string\n\tstate: any\n\tcomponents!: { [name: string]: ComponentApi }\n\tdom: { [index: string]: any } = {}\n\tparentId?: string\n\n\tconstructor(opts) {\n\t\tthis.type = DynamicSubplot.type\n\t\tthis.opts = opts\n\t\tthis.app = opts.app\n\t\tthis.parentId = opts?.parentId\n\t}\n\n\tasync init() {\n\t\tthis.opts.holder.app_div.attr('data-testid', 'sjpp-sc-subplot-sandbox-' + this.opts.chartType)\n\n\t\t/** Summary expects the entire sandbox. No need to create dom. */\n\t\tif (this.opts.chartType == 'summary') return\n\n\t\tthis.dom = {\n\t\t\tholder: this.opts.holder,\n\t\t\tviz: this.opts.holder.body.append('div').style('position', 'relative'),\n\t\t\tpaneTitleDiv: this.opts.holder.header.append('div').style('position', 'relative'),\n\t\t\tfilterDiv: this.opts.holder.header.append('div').style('position', 'relative'),\n\t\t\terrorDiv: this.opts.holder.body.append('div').style('position', 'relative')\n\t\t}\n\t}\n\n\tgetState(appState) {\n\t\tconst config = appState.plots.find(p => p.id === this.id)\n\t\tif (!config) {\n\t\t\tthrow `No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`\n\t\t}\n\t\treturn {\n\t\t\tconfig\n\t\t}\n\t}\n\n\tasync main() {\n\t\tif (!this.components) await this.setComponents()\n\t}\n\n\tasync setComponents() {\n\t\tconst _ = await importPlot(this.opts.chartType)\n\t\tconst chartOpts: { [index: string]: any } = {\n\t\t\tapp: this.app,\n\t\t\tid: this.id,\n\t\t\tparentId: this.parentId\n\t\t}\n\t\tif (this.opts.chartType == 'summary') {\n\t\t\tchartOpts.holder = this.opts.holder\n\t\t\tchartOpts.hidePlotFilter = this.opts.isMetaResult\n\t\t} else {\n\t\t\tchartOpts.holder = this.dom.viz\n\t\t\tchartOpts.header = this.dom.paneTitleDiv\n\t\t}\n\t\tconst promises: { [index: string]: any } = {\n\t\t\tchart: _.componentInit(chartOpts)\n\t\t}\n\n\t\t/** Summary inits its own plot filter */\n\t\tif (!this.state.config?.hidePlotFilter && this.opts.isMetaResult && this.opts.chartType != 'summary') {\n\t\t\tpromises.filter = filterRxCompInit({\n\t\t\t\tapp: this.app,\n\t\t\t\tvocabApi: this.app.vocabApi,\n\t\t\t\tparentId: this.id,\n\t\t\t\tholder: this.dom.filterDiv,\n\t\t\t\thideLabel: true,\n\t\t\t\temptyLabel: '+Add new filter',\n\t\t\t\tcallback: filter => {\n\t\t\t\t\tthis.app.dispatch({\n\t\t\t\t\t\tid: this.id,\n\t\t\t\t\t\ttype: 'plot_edit',\n\t\t\t\t\t\tconfig: { filter }\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tthis.components = await multiInit(promises)\n\t}\n\n\tdestroy() {\n\t\tconst appDiv = this.dom?.holder?.app_div\n\t\tif (appDiv) {\n\t\t\tappDiv.selectAll('*').remove()\n\t\t\tappDiv.remove()\n\t\t}\n\t\tfor (const key in this.dom) {\n\t\t\tdelete this.dom[key]\n\t\t}\n\t}\n}\n\nexport const dynamicSubplotInit = getCompInit(DynamicSubplot)\n", "import type { SCViewer } from '../SC'\nimport { newSandboxDiv } from '#dom'\nimport { dynamicSubplotInit } from './DynamicSubplot'\nimport type { SCActiveSubplot, SCSampleSandbox } from '../SCTypes'\n\n/** Instead of managing multiple maps of the subplots (e.g within the \n * SampleTableRenderer, SectionRenderer, etc.), use this manager to keep track\n * of all the subplots, their dom, sections, etc. \n) */\n\nexport class SubplotManager {\n\tsc: SCViewer\n\tscCompPlots: { [key: string]: any }\n\t/** Maps plotId to active subplot information */\n\trecords: Map<string, SCActiveSubplot>\n\n\tconstructor(sc: SCViewer) {\n\t\tthis.sc = sc\n\t\tthis.scCompPlots = this.sc.components.plots\n\t\tthis.records = new Map()\n\t}\n\n\tmap(subplots: any[]): SCActiveSubplot[] {\n\t\tconst subplotIds = new Set(subplots.map(s => s.id))\n\t\tfor (const compPlotId of Object.keys(this.scCompPlots)) {\n\t\t\tif (!subplotIds.has(compPlotId)) {\n\t\t\t\tthis.removeSubplot(compPlotId)\n\t\t\t}\n\t\t}\n\n\t\tfor (const recordId of Array.from(this.records.keys())) {\n\t\t\tif (!subplotIds.has(recordId)) this.records.delete(recordId)\n\t\t}\n\n\t\tfor (const subplot of subplots) {\n\t\t\tthis.updateSubplotRecord(subplot)\n\t\t}\n\n\t\treturn this.getActiveSubplotsFlat()\n\t}\n\n\tupdateSubplotRecord(subplot) {\n\t\tconst existing = this.records.get(subplot.id)\n\t\tconst sampleId = this.getSampleId(subplot)\n\t\tconst isMeta = (sampleId && this.sc.viewModel.metaResultIds.has(sampleId)) || false\n\t\tthis.records.set(subplot.id, {\n\t\t\tplotId: subplot.id,\n\t\t\tsampleId,\n\t\t\tplotName: this.getPlotName(subplot),\n\t\t\tsectionKey: existing?.sectionKey,\n\t\t\tsubplot,\n\t\t\tsandboxDiv: existing?.sandboxDiv,\n\t\t\tisMetaResult: isMeta\n\t\t})\n\t}\n\n\tremoveSubplot(subplotId) {\n\t\tif (this.scCompPlots[subplotId]) this.scCompPlots[subplotId].destroy()\n\t\tdelete this.scCompPlots[subplotId]\n\t\tthis.records.delete(subplotId)\n\t}\n\n\tasync initSubplotSandbox(sandboxHolder, subplot, initOpts: { sectionKey?: string; onClose?: () => void } = {}) {\n\t\tconst sandbox = newSandboxDiv(sandboxHolder, {\n\t\t\tclose: () => {\n\t\t\t\t/** destroy this dom and component before app.dispatch.\n\t\t\t\t * Avoids the component attempting to update after\n\t\t\t\t * the plot is deleted from the state. */\n\t\t\t\tthis.removeSubplot(subplot.id)\n\t\t\t\tthis.sc.app.dispatch({\n\t\t\t\t\ttype: 'plot_delete',\n\t\t\t\t\tid: subplot.id,\n\t\t\t\t\tparentId: this.sc.id\n\t\t\t\t})\n\t\t\t\tif (initOpts.onClose) initOpts.onClose()\n\t\t\t},\n\t\t\tplotId: subplot.id\n\t\t})\n\n\t\tconst subplotOpts = Object.assign({}, subplot, {\n\t\t\tapp: this.sc.app,\n\t\t\tparentId: this.sc.id,\n\t\t\tid: subplot.id,\n\t\t\tholder: sandbox,\n\t\t\tisMetaResult: this.records.get(subplot.id)?.isMetaResult || false\n\t\t})\n\n\t\tthis.scCompPlots[subplot.id] = await dynamicSubplotInit(subplotOpts)\n\t\tthis.setSandbox(subplot.id, sandbox.app_div)\n\t\tif (initOpts.sectionKey) this.setSectionKey(subplot.id, initOpts.sectionKey)\n\t\treturn sandbox.app_div\n\t}\n\n\tsetSandbox(plotId: string, sandboxDiv: any) {\n\t\tconst record = this.records.get(plotId)\n\t\tif (!record) return\n\t\trecord.sandboxDiv = sandboxDiv\n\t\tthis.records.set(plotId, record)\n\t}\n\n\tsetSectionKey(plotId: string, sectionKey?: string) {\n\t\tconst record = this.records.get(plotId)\n\t\tif (!record) return\n\t\trecord.sectionKey = sectionKey\n\t\tthis.records.set(plotId, record)\n\t}\n\n\tgetActiveSubplotsFlat(): SCActiveSubplot[] {\n\t\treturn Array.from(this.records.values())\n\t}\n\n\tgetSampleId(subplot: any): string | undefined {\n\t\treturn subplot.sample?.sID || subplot.singleCellPlot?.sample?.sID || subplot.term?.term?.sample?.sID\n\t}\n\n\tgetPlotName(subplot: any): string {\n\t\t/** Hardcoding logic for some transient and parent plots for now. May consider\n\t\t * adding to the config if this becomes more complex. Must weight against\n\t\t * adding unnecessary complexity to the config for edge cases though.*/\n\t\tconst nameOverrides = new Map([\n\t\t\t['GeneExpInput', 'Gene expression'],\n\t\t\t['imagePlot', subplot?.imgDir?.label || 'Image'],\n\t\t\t['dictionary', 'Summary'],\n\t\t\t['summary', 'Summary']\n\t\t])\n\t\tlet plotName = subplot?.plotName || nameOverrides.get(subplot?.chartType) || subplot?.singleCellPlot?.name\n\t\tif (!plotName) {\n\t\t\tif (subplot?.term?.term?.plot) plotName = subplot.term.term.plot\n\t\t\telse plotName = subplot.chartType || 'Plot'\n\t\t}\n\t\treturn plotName\n\t}\n\n\tgetSampleSandboxes(activeSubplots: SCActiveSubplot[] = this.getActiveSubplotsFlat()): Map<string, SCSampleSandbox[]> {\n\t\tconst sandboxes = new Map<string, SCSampleSandbox[]>()\n\t\tfor (const active of activeSubplots) {\n\t\t\tif (!active.sampleId || !active.sandboxDiv) continue\n\t\t\tif (!sandboxes.has(active.sampleId)) sandboxes.set(active.sampleId, [])\n\t\t\tsandboxes.get(active.sampleId)!.push({ plotId: active.plotId, div: active.sandboxDiv, plotName: active.plotName })\n\t\t}\n\t\treturn sandboxes\n\t}\n}\n", "import type { BasePlotConfig, MassAppApi, MassState } from '#mass/types/mass'\nimport type { SCConfigOpts, SCDom, SCFormattedState, SCViewerOpts, SampleColumn } from './SCTypes'\nimport type { SingleCellSample } from '#types'\nimport { PlotBase } from '../PlotBase.ts'\nimport { getCompInit, copyMerge, type RxComponent } from '#rx'\nimport { SCModel } from './model/SCModel'\nimport { SCViewModel } from './viewModel/SCViewModel'\nimport { SCInteractions } from './interactions/SCInteractions'\nimport { SCViewRenderer } from './view/SCViewRenderer'\nimport { getDefaultSCAppSettings } from './settings/defaults.ts'\nimport { getCombinedTermFilter } from '#filter'\nimport { SubplotManager } from './subplots/SubplotManager.ts'\n\n/** Viewer for single cell data. Renders a sample table and associated subplots for each sample.*/\nexport class SCViewer extends PlotBase implements RxComponent {\n\tstatic type = 'sc'\n\n\ttype: string\n\tcomponents: { plots: { [key: string]: any } }\n\tdom: SCDom\n\tinteractions!: SCInteractions\n\titems!: SingleCellSample[]\n\titemColumns!: SampleColumn[]\n\tmodel!: SCModel\n\tsubplotManager!: SubplotManager\n\tview!: SCViewRenderer\n\tviewModel!: SCViewModel\n\n\tconstructor(opts: SCViewerOpts, api: any) {\n\t\tsuper(opts, api)\n\t\tthis.type = SCViewer.type\n\t\tthis.components = {\n\t\t\tplots: {}\n\t\t}\n\t\tconst div = opts.holder\n\t\t\t.classed('sjpp-sc-main', true)\n\t\t\t.append('div')\n\t\t\t.style('padding', '5px')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('vertical-align', 'top')\n\n\t\tthis.dom = {\n\t\t\tdiv,\n\t\t\tloading: opts.holder\n\t\t\t\t.append('div')\n\t\t\t\t.attr('class', 'sjpp-sc-main-loading')\n\t\t\t\t.attr('data-testid', 'sjpp-sc-main-loading')\n\t\t\t\t.style('position', 'absolute')\n\t\t\t\t.style('top', '0')\n\t\t\t\t.style('left', '0')\n\t\t\t\t.style('width', '100%')\n\t\t\t\t.style('height', '100%')\n\t\t\t\t.style('background-color', 'rgba(255, 255, 255, 0.95)')\n\t\t\t\t.style('text-align', 'center'),\n\t\t\tcontrolsDiv: div.append('div').attr('id', 'sjpp-sc-controls-btn'),\n\t\t\ttableDiv: div.append('div').attr('id', 'sjpp-sc-item-table'),\n\t\t\tplotsBtnsDiv: div.append('div').attr('id', 'sjpp-sc-plot-buttons').style('display', 'none'),\n\t\t\tsectionsDiv: div.append('div').attr('id', 'sjpp-sc-sections')\n\t\t}\n\n\t\t//opts.header is the sandbox header\n\t\tif (opts.header) opts.header.html(`SINGLE CELL`).style('font-size', '0.9em')\n\t}\n\n\tgetState(appState: any): SCFormattedState {\n\t\tconst config = appState.plots.find((p: BasePlotConfig) => p.id === this.id)\n\t\tif (!config) {\n\t\t\tthrow new Error(\n\t\t\t\t`No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`\n\t\t\t)\n\t\t}\n\t\tconst termfilter = getCombinedTermFilter(appState, config.filter)\n\n\t\treturn {\n\t\t\tconfig,\n\t\t\tsubplots: appState.plots.filter(p => p.parentId === this.id),\n\t\t\ttermfilter,\n\t\t\ttermdbConfig: appState.termdbConfig,\n\t\t\tvocab: appState.vocab\n\t\t}\n\t}\n\n\tasync init(appState: MassState) {\n\t\tconst state = this.getState(appState) as SCFormattedState\n\t\t/** ds defines defaults in termdbConfig.queries.singleCell\n\t\t * see Dataset type when resuming development */\n\t\tconst dsScSamples = state.termdbConfig.queries?.singleCell?.samples\n\t\tthis.model = new SCModel(this)\n\t\ttry {\n\t\t\tthis.itemColumns = await this.model.getColumnLabels(dsScSamples)\n\t\t} catch (e: any) {\n\t\t\tif (e instanceof Error) console.error(`${e.message || e} [SC init()]`)\n\t\t\telse if (e.stack) console.log(e.stack)\n\t\t\tthrow new Error(e.message || e)\n\t\t}\n\t\tthis.viewModel = new SCViewModel(this.app, this.itemColumns)\n\t\tthis.interactions = new SCInteractions(this)\n\t\tthis.subplotManager = new SubplotManager(this)\n\t\tthis.view = new SCViewRenderer(this)\n\t\t/** Only renders the controls above the table */\n\t\tthis.view.render(state.config.settings.sc, state)\n\t}\n\n\tasync main() {\n\t\tif (!this.model) throw new Error(`Model not initialized`)\n\t\tif (!this.viewModel) throw new Error(`ViewModel not initialized`)\n\t\tif (!this.view) throw new Error(`View not initialized`)\n\t\tif (!this.interactions) throw new Error(`Interactions not initialized`)\n\n\t\tconst state = structuredClone(this.state) as SCFormattedState\n\t\tconst config = state.config\n\n\t\tsuper.toggleLoadingDiv()\n\n\t\tlet data: any\n\t\ttry {\n\t\t\tconst allSampleData = await this.model.getAllSampleData(state)\n\t\t\tif (!allSampleData || allSampleData.error) {\n\t\t\t\tsuper.toggleLoadingDiv('none')\n\t\t\t\tsuper.printError(allSampleData?.error || 'No samples found for this dataset')\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.items = allSampleData.samples\n\n\t\t\tthis.viewModel.processData(config, allSampleData.samples)\n\n\t\t\tif (config.settings?.sc?.item) {\n\t\t\t\tconst sampleData = await this.model.getSampleData()\n\t\t\t\tif (!sampleData || sampleData.error) {\n\t\t\t\t\tsuper.toggleLoadingDiv('none')\n\t\t\t\t\tsuper.printError(sampleData?.error || 'No data found for this sample')\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tdata = sampleData\n\t\t\t}\n\t\t} catch (e: any) {\n\t\t\tif (e instanceof Error) console.error(`${e.message || e} [SC main()]`)\n\t\t\telse if (e.stack) console.log(e.stack)\n\t\t\tsuper.toggleLoadingDiv('none')\n\t\t\tsuper.printError(e.message || e)\n\t\t\treturn\n\t\t}\n\t\tconst activeSubplots = this.subplotManager.map(state.subplots)\n\t\tawait this.view.update(config.settings, data, activeSubplots, this.viewModel.tableData, this.subplotManager)\n\t\tsuper.toggleLoadingDiv('none')\n\t}\n}\n\nexport const SCInit = getCompInit(SCViewer)\nexport const componentInit = SCInit\n\nexport function getPlotConfig(opts: SCConfigOpts, app: MassAppApi) {\n\tconst config = {\n\t\tchartType: 'sc',\n\t\tsettings: getDefaultSCAppSettings(opts.overrides, app)\n\t} as any\n\n\treturn copyMerge(config, opts)\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }