@sjcrh/proteinpaint-client 2.219.1 → 2.221.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 (983) hide show
  1. package/dist/2dmaf-7YU3SNKL.js +1362 -0
  2. package/dist/AggMatrixInput-73CDR5FS.js +402 -0
  3. package/dist/AggregateMatrix-NNULVFBM.js +37 -0
  4. package/dist/AppHeader-EZDDLLXU.js +826 -0
  5. package/dist/BoxPlot-463E7CRY.js +1229 -0
  6. package/dist/CorrelationVolcano-LHIIMBPP.js +613 -0
  7. package/dist/Cuminc-UL2TCIKV.js +1217 -0
  8. package/dist/DE-VRFSKFDW.js +85 -0
  9. package/dist/DEinput-FZTQRWVC.js +479 -0
  10. package/dist/DM-PO7CQZNT.js +86 -0
  11. package/dist/DifferentialAnalysis-WK6HE3YH.js +236 -0
  12. package/dist/Disco-YBNQJQFG.js +3384 -0
  13. package/dist/Disco.UI-HC5XYBFV.js +239 -0
  14. package/dist/DmrPlot-7VJ5C66D.js +361 -0
  15. package/dist/GB-VPFQRDRO.js +1388 -0
  16. package/dist/GSEA-ZEJB3QZQ.js +870 -0
  17. package/dist/GeneExpInput-SBDDIY6G.js +38 -0
  18. package/dist/Geomap-23AHGP2V.js +80 -0
  19. package/dist/HicApp-7AQQE4CM.js +2240 -0
  20. package/dist/IDCViewer-NO5Q6VOB.js +10808 -0
  21. package/dist/NumBinaryEditor-DSRP4OOU.js +274 -0
  22. package/dist/NumBinaryEditor.unit.spec-TT666YL4.js +308 -0
  23. package/dist/NumContEditor-6CURFOCH.js +100 -0
  24. package/dist/NumContEditor.unit.spec-MNVCFCMP.js +160 -0
  25. package/dist/NumCustomBinEditor-SQRR5EFL.js +29 -0
  26. package/dist/NumCustomBinEditor.unit.spec-F7BZWGGT.js +393 -0
  27. package/dist/NumDiscreteEditor-U7Z2QNYP.js +165 -0
  28. package/dist/NumDiscreteEditor.unit.spec-EIEBUZCX.js +229 -0
  29. package/dist/NumRegularBinEditor-CVZSWN6Y.js +29 -0
  30. package/dist/NumRegularBinEditor.unit.spec-ZMAJOIHL.js +274 -0
  31. package/dist/NumSplineEditor-U43D5NBJ.js +205 -0
  32. package/dist/NumSplineEditor.unit.spec-C52AADTS.js +220 -0
  33. package/dist/NumericDensity-PUKDZOVI.js +29 -0
  34. package/dist/NumericDensity.unit.spec-2347S76D.js +414 -0
  35. package/dist/NumericHandler-3RT32PTR.js +30 -0
  36. package/dist/NumericHandler.unit.spec-4PADL4KZ.js +225 -0
  37. package/dist/ProteomeInput-NFV4FW4U.js +610 -0
  38. package/dist/Regression-N7M7N6G4.js +1412 -0
  39. package/dist/RunChart2-UPQ7C6QE.js +744 -0
  40. package/dist/SC-KBW2NHUV.js +1290 -0
  41. package/dist/Violin-GWCOP3ZF.js +1092 -0
  42. package/dist/Volcano-X3HT32GQ.js +2661 -0
  43. package/dist/Volcano-X3HT32GQ.js.map +7 -0
  44. package/dist/Wsi-NXAEOYIS.js +636 -0
  45. package/dist/aboutSunburst-5EKXZV2A.js +86 -0
  46. package/dist/aboutSunburst-5EKXZV2A.js.map +7 -0
  47. package/dist/adSandbox-RPEWEEW7.js +29 -0
  48. package/dist/animatedBubbleChart-ILDMZRBX.js +542 -0
  49. package/dist/app-LOUC4J47.js +28 -0
  50. package/dist/app-MRKXZ6AZ.js +38 -0
  51. package/dist/app.js +15 -15
  52. package/dist/bam-SQWPHCZZ.js +872 -0
  53. package/dist/bam-SQWPHCZZ.js.map +7 -0
  54. package/dist/barchart-CJR37234.js +38 -0
  55. package/dist/barchart2-QQYLTHWR.js +305 -0
  56. package/dist/block-GLF6QNKY.js +6203 -0
  57. package/dist/block-GLF6QNKY.js.map +7 -0
  58. package/dist/block.init-YJQTJIDO.js +29 -0
  59. package/dist/block.mds.expressionrank-GBMEI5KQ.js +350 -0
  60. package/dist/block.mds.geneboxplot-XWE3E5IW.js +819 -0
  61. package/dist/block.mds.junction-QLEHFVPE.js +1534 -0
  62. package/dist/block.mds.svcnv-53DTOPBC.js +6413 -0
  63. package/dist/block.svg-57T37ABS.js +155 -0
  64. package/dist/block.tk.aicheck-6DXJTS3H.js +274 -0
  65. package/dist/block.tk.bam-CJFFQDNX.js +1906 -0
  66. package/dist/block.tk.bam-CJFFQDNX.js.map +7 -0
  67. package/dist/block.tk.bigwig.ui-OYIVXE2L.js +202 -0
  68. package/dist/block.tk.hicstraw-UKTGEBWT.js +814 -0
  69. package/dist/block.tk.junction-ZU5KPFQ3.js +2353 -0
  70. package/dist/block.tk.junction.textmatrixui-P4WXTAZR.js +190 -0
  71. package/dist/block.tk.ld-3PQ4O2AE.js +90 -0
  72. package/dist/block.tk.menu-LLITB6UA.js +1050 -0
  73. package/dist/block.tk.pgv-Y3FBXUO3.js +934 -0
  74. package/dist/brainImaging-4B3WXLNP.js +550 -0
  75. package/dist/brainRegions-7VLONUWN.js +213 -0
  76. package/dist/bubbleHeatmap-DI6GJRR6.js +374 -0
  77. package/dist/cellTypeBubbleHeatmap-HJY53DB2.js +274 -0
  78. package/dist/chunk-226MNBZ2.js +240 -0
  79. package/dist/chunk-2CDFU4MQ.js +536 -0
  80. package/dist/chunk-2CDFU4MQ.js.map +7 -0
  81. package/dist/chunk-2CNFGVHU.js +257 -0
  82. package/dist/chunk-2MC3RNKA.js +2685 -0
  83. package/dist/chunk-2OMX5AYB.js +195 -0
  84. package/dist/chunk-2SL4QWUS.js +50 -0
  85. package/dist/chunk-3KGBC5MK.js +692 -0
  86. package/dist/chunk-3PCRAPUV.js +56 -0
  87. package/dist/chunk-4DBOMSKP.js +102 -0
  88. package/dist/chunk-4TJO2DGU.js +2297 -0
  89. package/dist/chunk-4TJO2DGU.js.map +7 -0
  90. package/dist/chunk-57BS6KNI.js +466 -0
  91. package/dist/chunk-5AXS5G4A.js +2334 -0
  92. package/dist/chunk-5DI4UNH5.js +562 -0
  93. package/dist/chunk-5HJG6ECV.js +237 -0
  94. package/dist/chunk-5ZYANHGX.js +550 -0
  95. package/dist/chunk-6T4MN7LV.js +397 -0
  96. package/dist/chunk-75MRUW2K.js +103 -0
  97. package/dist/chunk-7J3W3KCN.js +255 -0
  98. package/dist/chunk-7SFK32JP.js +398 -0
  99. package/dist/chunk-7SFK32JP.js.map +7 -0
  100. package/dist/chunk-AIZYAKIE.js +182 -0
  101. package/dist/chunk-AJNFI6GA.js +2008 -0
  102. package/dist/chunk-BJAWDZBL.js +2799 -0
  103. package/dist/chunk-C6PVZVIH.js +379 -0
  104. package/dist/chunk-C77X5ZUV.js +176 -0
  105. package/dist/chunk-C7KUMZQM.js +59 -0
  106. package/dist/chunk-C7ROKWV2.js +140 -0
  107. package/dist/chunk-CAH6LJ5Z.js +31 -0
  108. package/dist/chunk-CUCP2GMT.js +102 -0
  109. package/dist/chunk-DTGAMBRJ.js +134 -0
  110. package/dist/chunk-DXT7GDHY.js +55 -0
  111. package/dist/chunk-ENPMWVWG.js +5214 -0
  112. package/dist/chunk-EYKJQJ7R.js +382 -0
  113. package/dist/chunk-FE5TCBIT.js +30 -0
  114. package/dist/chunk-FJ2JV2VK.js +217 -0
  115. package/dist/chunk-FPMJJBLV.js +4389 -0
  116. package/dist/chunk-FPMJJBLV.js.map +7 -0
  117. package/dist/chunk-FZYVPRVQ.js +38 -0
  118. package/dist/chunk-GBKQHVKJ.js +274 -0
  119. package/dist/chunk-GUW7VTUL.js +281 -0
  120. package/dist/chunk-H7F6DMJA.js +70 -0
  121. package/dist/chunk-HH3NUAR2.js +96 -0
  122. package/dist/chunk-HRTPGNOG.js +159 -0
  123. package/dist/chunk-IFPRYTS7.js +848 -0
  124. package/dist/chunk-IJSFSUI4.js +302 -0
  125. package/dist/chunk-IRQKX6DL.js +263 -0
  126. package/dist/chunk-JHLF2ZC2.js +472 -0
  127. package/dist/chunk-JNZL7HKB.js +1219 -0
  128. package/dist/chunk-K2ARLT2A.js +26 -0
  129. package/dist/chunk-K3G56J5R.js +299 -0
  130. package/dist/chunk-KKUCG2QE.js +516 -0
  131. package/dist/chunk-KPXCXBNU.js +626 -0
  132. package/dist/chunk-LF5WBI27.js +418 -0
  133. package/dist/chunk-LF5WBI27.js.map +7 -0
  134. package/dist/chunk-MANAUI7R.js +54 -0
  135. package/dist/chunk-MEUSRAOE.js +170 -0
  136. package/dist/chunk-MHWYRNGA.js +348 -0
  137. package/dist/chunk-MSTYU3QO.js +14 -0
  138. package/dist/chunk-MWARRQT4.js +141 -0
  139. package/dist/chunk-MXKYPTZ7.js +203 -0
  140. package/dist/chunk-NX5IB4IY.js +37 -0
  141. package/dist/chunk-OZUF7O2S.js +133 -0
  142. package/dist/chunk-PRTLCJYF.js +2941 -0
  143. package/dist/chunk-PRTLCJYF.js.map +7 -0
  144. package/dist/chunk-PWYMHUXY.js +116 -0
  145. package/dist/chunk-PWYMHUXY.js.map +7 -0
  146. package/dist/chunk-QNCE6EOK.js +82 -0
  147. package/dist/chunk-RIHO7ZD5.js +119 -0
  148. package/dist/chunk-RV335DF2.js +266 -0
  149. package/dist/chunk-SFPZUBPM.js +2102 -0
  150. package/dist/chunk-SFPZUBPM.js.map +7 -0
  151. package/dist/chunk-THAUD62Q.js +1253 -0
  152. package/dist/chunk-VBTBUXXX.js +6375 -0
  153. package/dist/chunk-VHWJK2MP.js +56 -0
  154. package/dist/chunk-VLIOMJDR.js +276 -0
  155. package/dist/chunk-VMK4RHV5.js +54 -0
  156. package/dist/chunk-WD7FZ5EE.js +26536 -0
  157. package/dist/chunk-WD7FZ5EE.js.map +7 -0
  158. package/dist/chunk-WJLRU5OF.js +5786 -0
  159. package/dist/chunk-WJLRU5OF.js.map +7 -0
  160. package/dist/chunk-WKT7RF3C.js +468 -0
  161. package/dist/chunk-WXSMUSU7.js +184 -0
  162. package/dist/chunk-WXSX5OQJ.js +296 -0
  163. package/dist/chunk-WY3IORKG.js +194 -0
  164. package/dist/chunk-WYSOOKFJ.js +480 -0
  165. package/dist/chunk-XBBFFOLS.js +123 -0
  166. package/dist/chunk-XSRQGX5H.js +340 -0
  167. package/dist/chunk-YLL6CTBL.js +54 -0
  168. package/dist/chunk-YPBY37KD.js +1339 -0
  169. package/dist/chunk-YUNJBIK4.js +243 -0
  170. package/dist/chunk-Z5ECCUNG.js +444 -0
  171. package/dist/chunk-ZAC34BZQ.js +35 -0
  172. package/dist/chunk-ZAC34BZQ.js.map +7 -0
  173. package/dist/cohort-5WL6UJOS.js +66 -0
  174. package/dist/cohortSunburst-R3Z5KJQL.js +402 -0
  175. package/dist/condition-2IILUMVB.js +323 -0
  176. package/dist/controls-G3JITZF5.js +30 -0
  177. package/dist/controls.config-BO7KPPET.js +30 -0
  178. package/dist/correlation-CZILLVEM.js +91 -0
  179. package/dist/customdata.inputui-BXFQAMTR.js +280 -0
  180. package/dist/dataDownload-QTWR4IW7.js +326 -0
  181. package/dist/dataDownload-QTWR4IW7.js.map +7 -0
  182. package/dist/databrowser.ui-V2NJQF3U.js +421 -0
  183. package/dist/dictionary-OVAQX6R3.js +109 -0
  184. package/dist/dnaMethylation-DHPFRXB2.js +29 -0
  185. package/dist/dnaMethylation.integration.spec-PJLIRGN5.js +194 -0
  186. package/dist/dofetch-KBTN6OW4.js +49 -0
  187. package/dist/e2pca-O7SNMJGB.js +340 -0
  188. package/dist/ep-NIVLKG4S.js +1247 -0
  189. package/dist/expclust.gdc.spec-LVCD6C43.js +298 -0
  190. package/dist/facet-LB4SCXE4.js +556 -0
  191. package/dist/gb-3IJ4NCPO.js +77 -0
  192. package/dist/geneExpClustering-SIAC7CMA.js +240 -0
  193. package/dist/geneExpression-KPUOZ4PT.js +309 -0
  194. package/dist/geneExpression-P2TTZXN2.js +29 -0
  195. package/dist/geneExpression.unit.spec-Q5D6XHUF.js +151 -0
  196. package/dist/geneORA-PKUIJKTL.js +269 -0
  197. package/dist/geneRanking-ZGT5MHBV.js +544 -0
  198. package/dist/geneVariant-24YNANTT.js +289 -0
  199. package/dist/geneVariant-CDGENHWQ.js +32 -0
  200. package/dist/geneVariant.integration.spec-7QW4C2WO.js +672 -0
  201. package/dist/genefusion.ui-NVXGSBXD.js +299 -0
  202. package/dist/geneset-7STL6UDD.js +199 -0
  203. package/dist/genomeBrowser.spec-OE2CIP7I.js +272 -0
  204. package/dist/grin2-2HXUIY5O.js +66 -0
  205. package/dist/grin2-32IIJR5E.js +945 -0
  206. package/dist/hierCluster-MDZEI2KB.js +51 -0
  207. package/dist/hierCluster-T3PZUGBI.js +55 -0
  208. package/dist/hierCluster.config-7UN6AYGB.js +32 -0
  209. package/dist/hierCluster.integration.spec-DWOYVK6T.js +479 -0
  210. package/dist/hierCluster.interactivity-5OM6XNFG.js +45 -0
  211. package/dist/hierCluster.renderers-YGX6MZZW.js +18 -0
  212. package/dist/imagePlot-KBRXDV5G.js +152 -0
  213. package/dist/importPlot-DJMIC22L.js +8 -0
  214. package/dist/isoformExpression-SWDWADRC.js +31 -0
  215. package/dist/isoformExpression.unit.spec-2U5KCYBP.js +233 -0
  216. package/dist/junction-NMXVVGRG.js +32 -0
  217. package/dist/junction.customTerm-3R2GNE3A.js +15 -0
  218. package/dist/junction.unit.spec-JTGBPPN7.js +178 -0
  219. package/dist/launch.adhoc-YB5SKMNY.js +33 -0
  220. package/dist/leftlabel.sample-QKXIODCS.js +253 -0
  221. package/dist/lollipop-TSZ62PBH.js +162 -0
  222. package/dist/maf-4L5YN4CG.js +451 -0
  223. package/dist/maftimeline-VOYB3NY3.js +583 -0
  224. package/dist/matrix-IWJECVTF.js +55 -0
  225. package/dist/matrix-MMJAJZA7.js +50 -0
  226. package/dist/matrix.cells-5RTZUJVN.js +25 -0
  227. package/dist/matrix.config-DZGOZWJS.js +33 -0
  228. package/dist/matrix.data-Y5TPRGMW.js +22 -0
  229. package/dist/matrix.groups-6DXCAY4P.js +25 -0
  230. package/dist/matrix.integration.spec-2N237E7T.js +3156 -0
  231. package/dist/matrix.interactivity-FL33UUKR.js +33 -0
  232. package/dist/matrix.layout-7SYHV3KJ.js +35 -0
  233. package/dist/matrix.legend-S3E76TVO.js +19 -0
  234. package/dist/matrix.renderers-3SIBT2RP.js +30 -0
  235. package/dist/matrix.serieses-3UGLZW25.js +18 -0
  236. package/dist/matrix.sort-A7CNLDUJ.js +25 -0
  237. package/dist/matrix.sort.unit.spec-L3H44T6I.js +464 -0
  238. package/dist/matrix.sorterUi-6PZR3YOD.js +15 -0
  239. package/dist/matrix.sorterUi.unit.spec-2NRU5UFH.js +334 -0
  240. package/dist/matrix.unit.spec-HRZIJB6T.js +146 -0
  241. package/dist/mavb-ZVRQSDPS.js +726 -0
  242. package/dist/mds.fimo-ZKETTET7.js +509 -0
  243. package/dist/mds.samplescatterplot-ZV3UNRLP.js +1545 -0
  244. package/dist/mds.survivalplot-OVXZRTU4.js +472 -0
  245. package/dist/multivalue-6BE5IA4F.js +79 -0
  246. package/dist/numericDictTermCluster-6XDVVWLE.js +62 -0
  247. package/dist/oncomatrix-XK62NEOO.js +286 -0
  248. package/dist/oncomatrix.spec-YVTCHOPS.js +439 -0
  249. package/dist/plot.2dvaf-NUOBWMNX.js +368 -0
  250. package/dist/plot.app-G6IQWXTV.js +32 -0
  251. package/dist/plot.barplot-6QJ6HEJR.js +93 -0
  252. package/dist/plot.boxplot-XKQJSW2O.js +142 -0
  253. package/dist/plot.brainImaging-UTHFJFXU.js +51 -0
  254. package/dist/plot.disco-3MSCX7TM.js +98 -0
  255. package/dist/plot.ssgq-4KBVHF42.js +130 -0
  256. package/dist/plot.vaf2cov-OGUQSSDS.js +249 -0
  257. package/dist/polar2-V7M56GTZ.js +228 -0
  258. package/dist/profileForms-TS3BJLHH.js +937 -0
  259. package/dist/profilePlot-DP5272HR.js +45 -0
  260. package/dist/proteinView-K4K4SP3L.js +1346 -0
  261. package/dist/proteomeCohortCompare-SFWVGLFK.js +866 -0
  262. package/dist/pseudbulk.unit.spec-NFOA7J2C.js +82 -0
  263. package/dist/pseudobulk-XKZQEZ4I.js +31 -0
  264. package/dist/qualitative-7OSFNVI5.js +241 -0
  265. package/dist/qualitative-OIIN6E4Y.js +34 -0
  266. package/dist/radar2-AHZJKX7S.js +323 -0
  267. package/dist/radarFacility2-OUW6D5E7.js +331 -0
  268. package/dist/rememberedGvQ.unit.spec-SHTMMZGG.js +210 -0
  269. package/dist/render-7UZSGX3Q.js +29 -0
  270. package/dist/report-J7HKTXZ2.js +213 -0
  271. package/dist/sampleView-6547OUIM.js +39 -0
  272. package/dist/samplelst-UHF23UEB.js +114 -0
  273. package/dist/samplematrix-OOKS3TMR.js +2188 -0
  274. package/dist/sc-WF2BLGNG.js +77 -0
  275. package/dist/scatter-ABCVFGRV.js +84 -0
  276. package/dist/scatter-WF7XM3IA.js +919 -0
  277. package/dist/selectGenomeWithTklst-67HU5KRB.js +125 -0
  278. package/dist/singleCellCellType-3FZPJ25V.js +29 -0
  279. package/dist/singleCellCellType.unit.spec-TOMREHWK.js +150 -0
  280. package/dist/singleCellGeneExpression-NQTJ5KJQ.js +29 -0
  281. package/dist/singleCellGeneExpression.unit.spec-ZWUQTU2N.js +144 -0
  282. package/dist/singleCellNumericValue-VI7H722L.js +29 -0
  283. package/dist/singleCellNumericValue.unit.spec-QGLHES7H.js +412 -0
  284. package/dist/singleCellPlot-RU5T6SJK.js +44 -0
  285. package/dist/singlecell-C3CJVNXP.js +1562 -0
  286. package/dist/singlecell-NRQZ7KC6.js +77 -0
  287. package/dist/snp-X6XY65VS.js +29 -0
  288. package/dist/snp.unit.spec-6EENK7GQ.js +167 -0
  289. package/dist/snplocus-R4JA6TFT.js +200 -0
  290. package/dist/snplst-SOWVHSXH.js +36 -0
  291. package/dist/spliceevent.a53ss.diagram-IRLCCVQZ.js +142 -0
  292. package/dist/spliceevent.exonskip.diagram-4KG7LE5D.js +274 -0
  293. package/dist/spliceevent.noeventdiagram-OWXAJJX7.js +451 -0
  294. package/dist/ssGSEA-EMOKPLMP.js +29 -0
  295. package/dist/ssGSEA.unit.spec-KXQ7R5WH.js +79 -0
  296. package/dist/stattable-H2G7MOZG.js +112 -0
  297. package/dist/studyCatalog-3ITQXWFL.js +457 -0
  298. package/dist/summarizeCnvGeneexp-ZIPU6YDY.js +154 -0
  299. package/dist/summarizeGeneexpSurvival-3RYU226R.js +101 -0
  300. package/dist/summarizeMutationCnv-RGDBUB22.js +155 -0
  301. package/dist/summarizeMutationDiagnosis-Z4MZE6Y4.js +31 -0
  302. package/dist/summarizeMutationSurvival-Z5CNRH7E.js +95 -0
  303. package/dist/summary-6QQCNX3B.js +40 -0
  304. package/dist/summary.integration.spec-3ULXTZUP.js +405 -0
  305. package/dist/summaryInput-4QKR34QB.js +238 -0
  306. package/dist/sunburst-KB3BWC72.js +34 -0
  307. package/dist/sunburst-XTFBHZNH.js +274 -0
  308. package/dist/survival-7O6ZK63E.js +49 -0
  309. package/dist/survival-NNCY4K6C.js +1248 -0
  310. package/dist/survival.integration.spec-ZYZHZAXA.js +609 -0
  311. package/dist/svgraph-ZLSFFEAC.js +1377 -0
  312. package/dist/svmr-REBBDEYM.js +3834 -0
  313. package/dist/swimmer-NUBRIWLI.js +993 -0
  314. package/dist/swimmer-NUBRIWLI.js.map +7 -0
  315. package/dist/table-CWIQQESJ.js +192 -0
  316. package/dist/termCollection-7TYJSQ45.js +29 -0
  317. package/dist/termCollection-7Z55QNL7.js +247 -0
  318. package/dist/termCollection.unit.spec-LQ5MIBDH.js +295 -0
  319. package/dist/termCollectionFractionSelection-24DZYVDU.js +38 -0
  320. package/dist/termCollectionFractionSelection.unit.spec-DCV2CFS5.js +184 -0
  321. package/dist/tk-2WZFPRCP.js +37 -0
  322. package/dist/tk-QTLEYIP7.js +1193 -0
  323. package/dist/tk-QTLEYIP7.js.map +7 -0
  324. package/dist/tp.ui-HXQX2UH4.js +1453 -0
  325. package/dist/tvs.categorical-4D3JI2ER.js +28 -0
  326. package/dist/tvs.condition-62FXFHZ5.js +160 -0
  327. package/dist/tvs.density-IGO4I4T2.js +19 -0
  328. package/dist/tvs.dt-FZSVMJOO.js +34 -0
  329. package/dist/tvs.dtcnv.categorical-PPFQIC42.js +31 -0
  330. package/dist/tvs.dtcnv.continuous-TV2IGHY4.js +72 -0
  331. package/dist/tvs.dtfusion-ON4BA4XJ.js +31 -0
  332. package/dist/tvs.dtitd-VFNROOWQ.js +31 -0
  333. package/dist/tvs.dtsnvindel-ZXOP37T5.js +31 -0
  334. package/dist/tvs.dtsv-EUHPTW7J.js +31 -0
  335. package/dist/tvs.multivalue-NHVXZNDI.js +84 -0
  336. package/dist/tvs.numeric-FPWDPO3J.js +32 -0
  337. package/dist/tvs.samplelst-ZZHRNUP4.js +95 -0
  338. package/dist/tvs.survival-F3KSG3U6.js +110 -0
  339. package/dist/tvs.termCollection-B37DZLDY.js +118 -0
  340. package/dist/vocabulary-XNE5FFDK.js +32 -0
  341. package/dist/vocabulary-XNE5FFDK.js.map +7 -0
  342. package/dist/wsi.direct-3YH3QGQD.js +11514 -0
  343. package/package.json +4 -4
  344. package/dist/2dmaf-O2SQ5RGD.js +0 -1362
  345. package/dist/AggMatrixInput-LUCTWXHU.js +0 -402
  346. package/dist/AggregateMatrix-JVMF27YL.js +0 -37
  347. package/dist/AppHeader-DJU6HRKO.js +0 -826
  348. package/dist/BoxPlot-22RXMPRL.js +0 -1229
  349. package/dist/CorrelationVolcano-PBZWPFSN.js +0 -613
  350. package/dist/Cuminc-EL74X5GY.js +0 -1217
  351. package/dist/DE-W5SAMMRW.js +0 -85
  352. package/dist/DEinput-ZKEFJZQU.js +0 -479
  353. package/dist/DM-ABKDXMDG.js +0 -86
  354. package/dist/DifferentialAnalysis-3JTZ5WCQ.js +0 -236
  355. package/dist/Disco-ME53U25C.js +0 -3384
  356. package/dist/Disco.UI-F7XKJMKR.js +0 -239
  357. package/dist/DmrPlot-OWBXUTON.js +0 -361
  358. package/dist/GB-7X6DBWKS.js +0 -1388
  359. package/dist/GSEA-GAZIEGD7.js +0 -870
  360. package/dist/GeneExpInput-BAOC6ICV.js +0 -38
  361. package/dist/Geomap-OZERLL7V.js +0 -80
  362. package/dist/HicApp-WDH5LVTD.js +0 -2240
  363. package/dist/IDCViewer-XBZFU3BU.js +0 -10808
  364. package/dist/NumBinaryEditor-5R4EUQOZ.js +0 -274
  365. package/dist/NumBinaryEditor.unit.spec-ULBXMOYY.js +0 -308
  366. package/dist/NumContEditor-EN6V4FLQ.js +0 -100
  367. package/dist/NumContEditor.unit.spec-VDWKNIFN.js +0 -160
  368. package/dist/NumCustomBinEditor-UB34ALNZ.js +0 -29
  369. package/dist/NumCustomBinEditor.unit.spec-WZXJ7GEC.js +0 -393
  370. package/dist/NumDiscreteEditor-H6J67YEL.js +0 -165
  371. package/dist/NumDiscreteEditor.unit.spec-KJ7YU22W.js +0 -229
  372. package/dist/NumRegularBinEditor-R5JVUG7J.js +0 -29
  373. package/dist/NumRegularBinEditor.unit.spec-RZ73FMNO.js +0 -274
  374. package/dist/NumSplineEditor-AOR6OAJA.js +0 -205
  375. package/dist/NumSplineEditor.unit.spec-Z6ZEI3UO.js +0 -220
  376. package/dist/NumericDensity-SRTFTDQA.js +0 -29
  377. package/dist/NumericDensity.unit.spec-MRREBAYU.js +0 -414
  378. package/dist/NumericHandler-7RALUACA.js +0 -30
  379. package/dist/NumericHandler.unit.spec-MDO23WRB.js +0 -225
  380. package/dist/ProteomeInput-MOBXHRD5.js +0 -610
  381. package/dist/Regression-XWT4NNTG.js +0 -1412
  382. package/dist/RunChart2-Q7W5MWJS.js +0 -744
  383. package/dist/SC-MM3JTEVL.js +0 -1290
  384. package/dist/Violin-XNTBDUPG.js +0 -1092
  385. package/dist/Volcano-GRKXU3WL.js +0 -2619
  386. package/dist/Volcano-GRKXU3WL.js.map +0 -7
  387. package/dist/Wsi-22KJSFVH.js +0 -636
  388. package/dist/adSandbox-TLYWQOOA.js +0 -29
  389. package/dist/animatedBubbleChart-67SY5JGP.js +0 -542
  390. package/dist/app-FG3KPE4R.js +0 -28
  391. package/dist/app-VK5LYO6B.js +0 -38
  392. package/dist/bam-TNLNISLV.js +0 -872
  393. package/dist/bam-TNLNISLV.js.map +0 -7
  394. package/dist/barchart-IGWRVB6W.js +0 -38
  395. package/dist/barchart2-TT6OBJJP.js +0 -305
  396. package/dist/block-5PV2TYWJ.js +0 -6232
  397. package/dist/block-5PV2TYWJ.js.map +0 -7
  398. package/dist/block.init-2Y6CNK7H.js +0 -29
  399. package/dist/block.mds.expressionrank-VZ4JVPTG.js +0 -350
  400. package/dist/block.mds.geneboxplot-NYMS32JP.js +0 -819
  401. package/dist/block.mds.junction-3R6C3B5W.js +0 -1534
  402. package/dist/block.mds.svcnv-SO5CYYIQ.js +0 -6413
  403. package/dist/block.svg-R4ASXXNW.js +0 -155
  404. package/dist/block.tk.aicheck-LYRTDZRA.js +0 -274
  405. package/dist/block.tk.bam-GR7CHGGQ.js +0 -1897
  406. package/dist/block.tk.bam-GR7CHGGQ.js.map +0 -7
  407. package/dist/block.tk.bedgraphdot-GERXK2O6.js +0 -375
  408. package/dist/block.tk.bedgraphdot-GERXK2O6.js.map +0 -7
  409. package/dist/block.tk.bigwig.ui-3KMMZX2M.js +0 -202
  410. package/dist/block.tk.hicstraw-7HH4PGFY.js +0 -814
  411. package/dist/block.tk.junction-BPEKLYS2.js +0 -2353
  412. package/dist/block.tk.junction.textmatrixui-2QU5DL2X.js +0 -190
  413. package/dist/block.tk.ld-TJREYPNY.js +0 -90
  414. package/dist/block.tk.menu-HDBZK4YP.js +0 -1050
  415. package/dist/block.tk.pgv-G5GCYBK2.js +0 -934
  416. package/dist/brainImaging-ODWHF7WZ.js +0 -550
  417. package/dist/brainRegions-DC7DEA7N.js +0 -213
  418. package/dist/bubbleHeatmap-T5ACULRL.js +0 -374
  419. package/dist/cellTypeBubbleHeatmap-RQINXXTK.js +0 -274
  420. package/dist/chunk-24ZS2XWC.js +0 -176
  421. package/dist/chunk-2EPEWVKQ.js +0 -4378
  422. package/dist/chunk-2EPEWVKQ.js.map +0 -7
  423. package/dist/chunk-2PHFY3VP.js +0 -195
  424. package/dist/chunk-2QFMKWNS.js +0 -281
  425. package/dist/chunk-2UB6JZ3I.js +0 -466
  426. package/dist/chunk-3GQ54XTJ.js +0 -70
  427. package/dist/chunk-3IE6FDVA.js +0 -1253
  428. package/dist/chunk-4ENIOXIT.js +0 -133
  429. package/dist/chunk-4OOQ52ET.js +0 -182
  430. package/dist/chunk-5NI77Z3O.js +0 -119
  431. package/dist/chunk-5TPWMYBG.js +0 -274
  432. package/dist/chunk-64JHE3GV.js +0 -50
  433. package/dist/chunk-6MUJGVOH.js +0 -140
  434. package/dist/chunk-6XKAOSQE.js +0 -116
  435. package/dist/chunk-6XKAOSQE.js.map +0 -7
  436. package/dist/chunk-6YGSVJJD.js +0 -54
  437. package/dist/chunk-7PQVNQFR.js +0 -255
  438. package/dist/chunk-7XW4JWMJ.js +0 -170
  439. package/dist/chunk-7ZEJKFGW.js +0 -55
  440. package/dist/chunk-A6ZUYQHO.js +0 -159
  441. package/dist/chunk-ALIMVUHR.js +0 -1219
  442. package/dist/chunk-ANBGNYNP.js +0 -1339
  443. package/dist/chunk-ATZNXW5F.js +0 -237
  444. package/dist/chunk-AUPTEHV7.js +0 -257
  445. package/dist/chunk-B2KYLEYM.js +0 -30
  446. package/dist/chunk-BJCET6RU.js +0 -263
  447. package/dist/chunk-BKW35Z4U.js +0 -26619
  448. package/dist/chunk-BKW35Z4U.js.map +0 -7
  449. package/dist/chunk-CJHNPYFQ.js +0 -2292
  450. package/dist/chunk-CJHNPYFQ.js.map +0 -7
  451. package/dist/chunk-CTVPW77S.js +0 -194
  452. package/dist/chunk-D6U65W7Q.js +0 -626
  453. package/dist/chunk-DJMDETVU.js +0 -2685
  454. package/dist/chunk-DKPAOVJH.js +0 -243
  455. package/dist/chunk-DRESQF33.js +0 -38
  456. package/dist/chunk-DXM5MQCZ.js +0 -382
  457. package/dist/chunk-ETXOEP4N.js +0 -184
  458. package/dist/chunk-FOUMNTII.js +0 -134
  459. package/dist/chunk-FTGLS763.js +0 -56
  460. package/dist/chunk-GN2A5NL5.js +0 -472
  461. package/dist/chunk-GWNCQ5YI.js +0 -468
  462. package/dist/chunk-GX6G2SSW.js +0 -26
  463. package/dist/chunk-H3YF55ZI.js +0 -848
  464. package/dist/chunk-IANE75G3.js +0 -444
  465. package/dist/chunk-IKZQST6E.js +0 -5213
  466. package/dist/chunk-IPRYYK26.js +0 -96
  467. package/dist/chunk-JL3PYV5F.js +0 -6375
  468. package/dist/chunk-K6VYSDB5.js +0 -276
  469. package/dist/chunk-KSS26PXB.js +0 -54
  470. package/dist/chunk-LO2QBHP6.js +0 -418
  471. package/dist/chunk-LO2QBHP6.js.map +0 -7
  472. package/dist/chunk-LSRFRZNP.js +0 -59
  473. package/dist/chunk-LYX4S6WA.js +0 -266
  474. package/dist/chunk-ME3HB3V6.js +0 -5787
  475. package/dist/chunk-ME3HB3V6.js.map +0 -7
  476. package/dist/chunk-MP7BA3GK.js +0 -14
  477. package/dist/chunk-MVSUESEV.js +0 -141
  478. package/dist/chunk-NQMS7WV3.js +0 -2799
  479. package/dist/chunk-NR6WFCPF.js +0 -348
  480. package/dist/chunk-NS2MZN3C.js +0 -562
  481. package/dist/chunk-NUA66GW7.js +0 -37
  482. package/dist/chunk-NYEFSOKD.js +0 -550
  483. package/dist/chunk-OVHQFZAE.js +0 -34
  484. package/dist/chunk-OVHQFZAE.js.map +0 -7
  485. package/dist/chunk-QM724EG2.js +0 -103
  486. package/dist/chunk-RIL33JCW.js +0 -102
  487. package/dist/chunk-RJAJG5KN.js +0 -2954
  488. package/dist/chunk-RJAJG5KN.js.map +0 -7
  489. package/dist/chunk-SLHXR4BZ.js +0 -82
  490. package/dist/chunk-SO76DLSZ.js +0 -299
  491. package/dist/chunk-T7CKGRGP.js +0 -398
  492. package/dist/chunk-T7CKGRGP.js.map +0 -7
  493. package/dist/chunk-TUO5I6LP.js +0 -123
  494. package/dist/chunk-TWTPWEYL.js +0 -240
  495. package/dist/chunk-U2GHNZ4N.js +0 -54
  496. package/dist/chunk-UAB5PGOP.js +0 -56
  497. package/dist/chunk-UCB3W3OT.js +0 -217
  498. package/dist/chunk-UJIB7QM3.js +0 -2334
  499. package/dist/chunk-UYQGTW7I.js +0 -1857
  500. package/dist/chunk-UYQGTW7I.js.map +0 -7
  501. package/dist/chunk-VBDJG6GZ.js +0 -2008
  502. package/dist/chunk-VOXUMZMG.js +0 -379
  503. package/dist/chunk-WCNMP54T.js +0 -516
  504. package/dist/chunk-WETOH7YW.js +0 -692
  505. package/dist/chunk-WKGKKM6F.js +0 -480
  506. package/dist/chunk-WV44DGEJ.js +0 -397
  507. package/dist/chunk-XVEEMQAT.js +0 -31
  508. package/dist/chunk-YBOHXANC.js +0 -302
  509. package/dist/chunk-YNQFOPS6.js +0 -203
  510. package/dist/chunk-YVQ4USPP.js +0 -340
  511. package/dist/chunk-ZWLT5QS3.js +0 -102
  512. package/dist/chunk-ZYAZHJPZ.js +0 -296
  513. package/dist/cohort-QSLKB4ZO.js +0 -66
  514. package/dist/cohortSunburst-AQFSNJ5K.js +0 -402
  515. package/dist/condition-MLS6TJHV.js +0 -323
  516. package/dist/controls-ZT3GZ667.js +0 -30
  517. package/dist/controls.config-F7NIPLKB.js +0 -30
  518. package/dist/correlation-ZEIQJGSQ.js +0 -91
  519. package/dist/customdata.inputui-6PJSAJK2.js +0 -280
  520. package/dist/dataDownload-CHMPXHBY.js +0 -325
  521. package/dist/dataDownload-CHMPXHBY.js.map +0 -7
  522. package/dist/databrowser.ui-EMZ5L2Y7.js +0 -421
  523. package/dist/dictionary-U2BWGY6B.js +0 -109
  524. package/dist/dnaMethylation-R34E2XNC.js +0 -29
  525. package/dist/dnaMethylation.integration.spec-4Z2AJHWY.js +0 -194
  526. package/dist/dofetch-JY4A7BYI.js +0 -47
  527. package/dist/e2pca-WSSCXX6A.js +0 -340
  528. package/dist/ep-ATUWEHDJ.js +0 -1247
  529. package/dist/expclust.gdc.spec-QRIRRPO7.js +0 -298
  530. package/dist/facet-5VDCSP3S.js +0 -556
  531. package/dist/gb-Y4UG6LFA.js +0 -77
  532. package/dist/geneExpClustering-OO67JNJ2.js +0 -240
  533. package/dist/geneExpression-5KGV3MAA.js +0 -29
  534. package/dist/geneExpression-KPRFXKU7.js +0 -309
  535. package/dist/geneExpression.unit.spec-YV45EZ5O.js +0 -151
  536. package/dist/geneORA-R74JPUTC.js +0 -269
  537. package/dist/geneRanking-IJTXNMHV.js +0 -544
  538. package/dist/geneVariant-HBAHT6LU.js +0 -32
  539. package/dist/geneVariant-JT3EGAIH.js +0 -289
  540. package/dist/geneVariant.integration.spec-TFQYPUAS.js +0 -672
  541. package/dist/genefusion.ui-MMTQMTHC.js +0 -299
  542. package/dist/geneset-VMBICNCZ.js +0 -199
  543. package/dist/genomeBrowser.spec-2XLLIYGA.js +0 -272
  544. package/dist/grin2-2RYPEUWV.js +0 -66
  545. package/dist/grin2-Y6KAFVV2.js +0 -945
  546. package/dist/hierCluster-EKGFBQT4.js +0 -51
  547. package/dist/hierCluster-Z4PVNMGS.js +0 -55
  548. package/dist/hierCluster.config-Q6WUNK2K.js +0 -32
  549. package/dist/hierCluster.integration.spec-2LHSHNFC.js +0 -479
  550. package/dist/hierCluster.interactivity-OGQ3KUY6.js +0 -45
  551. package/dist/hierCluster.renderers-3GJZXG75.js +0 -18
  552. package/dist/imagePlot-ZJEZPBX7.js +0 -152
  553. package/dist/importPlot-GFEFYEHZ.js +0 -8
  554. package/dist/isoformExpression-A2X3DSR6.js +0 -31
  555. package/dist/isoformExpression.unit.spec-VKMEGCL4.js +0 -233
  556. package/dist/junction-HWIHLQU2.js +0 -32
  557. package/dist/junction.customTerm-C3VWXEYH.js +0 -15
  558. package/dist/junction.unit.spec-ZYJGDOXJ.js +0 -178
  559. package/dist/launch.adhoc-HW5AZM4T.js +0 -33
  560. package/dist/leftlabel.sample-MTW2HRRQ.js +0 -253
  561. package/dist/lollipop-VWW5H6CR.js +0 -162
  562. package/dist/maf-KEJYO3H4.js +0 -451
  563. package/dist/maftimeline-MJZDSGSR.js +0 -583
  564. package/dist/matrix-3UJW6LOA.js +0 -50
  565. package/dist/matrix-W4AX5OBM.js +0 -55
  566. package/dist/matrix.cells-5DAIZ3E5.js +0 -25
  567. package/dist/matrix.config-PK26VPQT.js +0 -33
  568. package/dist/matrix.data-UK5DGKBK.js +0 -22
  569. package/dist/matrix.groups-NM4Q5YDN.js +0 -25
  570. package/dist/matrix.integration.spec-FGWNBCRR.js +0 -3156
  571. package/dist/matrix.interactivity-4C37PII5.js +0 -33
  572. package/dist/matrix.layout-ODV7WXUP.js +0 -35
  573. package/dist/matrix.legend-5MY7OXWN.js +0 -19
  574. package/dist/matrix.renderers-QA7W7ZUL.js +0 -30
  575. package/dist/matrix.serieses-4FSFJPCK.js +0 -18
  576. package/dist/matrix.sort-3QLFMBJ5.js +0 -25
  577. package/dist/matrix.sort.unit.spec-HVOC6IYT.js +0 -464
  578. package/dist/matrix.sorterUi-EY3SA6CG.js +0 -15
  579. package/dist/matrix.sorterUi.unit.spec-OAXWPZZI.js +0 -334
  580. package/dist/matrix.unit.spec-RAL7AU22.js +0 -146
  581. package/dist/mavb-KIM63AC4.js +0 -726
  582. package/dist/mds.fimo-DMAVM56P.js +0 -509
  583. package/dist/mds.samplescatterplot-KILTR2C7.js +0 -1545
  584. package/dist/mds.survivalplot-PV76ANBP.js +0 -472
  585. package/dist/multivalue-2V5LMQY7.js +0 -79
  586. package/dist/numericDictTermCluster-TGL4X6UC.js +0 -62
  587. package/dist/oncomatrix-2O7SLXHX.js +0 -286
  588. package/dist/oncomatrix.spec-HZJKOF5G.js +0 -439
  589. package/dist/plot.2dvaf-424NNMMA.js +0 -368
  590. package/dist/plot.app-YBZDNST2.js +0 -32
  591. package/dist/plot.barplot-YZQBYJUY.js +0 -93
  592. package/dist/plot.boxplot-5OW6IBQL.js +0 -142
  593. package/dist/plot.brainImaging-H3ABPPD3.js +0 -51
  594. package/dist/plot.disco-X7KCDWGX.js +0 -98
  595. package/dist/plot.ssgq-GYRVHTC7.js +0 -130
  596. package/dist/plot.vaf2cov-B2TELPHL.js +0 -249
  597. package/dist/polar2-5KNZRLXY.js +0 -228
  598. package/dist/profileForms-FY34KXCL.js +0 -937
  599. package/dist/profilePlot-3FX2TPYC.js +0 -45
  600. package/dist/proteinView-WSEO3LD3.js +0 -1346
  601. package/dist/proteomeCohortCompare-KA2DF3EE.js +0 -866
  602. package/dist/pseudbulk.unit.spec-AT3TFCOW.js +0 -82
  603. package/dist/pseudobulk-4ZRHUC7W.js +0 -31
  604. package/dist/qualitative-3OBGJRP6.js +0 -241
  605. package/dist/qualitative-FHJD44OA.js +0 -34
  606. package/dist/radar2-X757WR6V.js +0 -323
  607. package/dist/radarFacility2-GUBAK4Y3.js +0 -331
  608. package/dist/rememberedGvQ.unit.spec-ADO4Y2OE.js +0 -210
  609. package/dist/render-MZEPNEMU.js +0 -29
  610. package/dist/report-TUAFDGAE.js +0 -213
  611. package/dist/sampleView-X6YKCBE7.js +0 -39
  612. package/dist/samplelst-UPNRALBH.js +0 -114
  613. package/dist/samplematrix-W3HZK3IS.js +0 -2188
  614. package/dist/sc-UL7233UR.js +0 -77
  615. package/dist/scatter-FTJ77NUM.js +0 -919
  616. package/dist/scatter-VQQRIW6N.js +0 -84
  617. package/dist/selectGenomeWithTklst-HPYPSPFI.js +0 -125
  618. package/dist/singleCellCellType-XTKGOH6H.js +0 -29
  619. package/dist/singleCellCellType.unit.spec-A62GT72A.js +0 -150
  620. package/dist/singleCellGeneExpression-X7H5GTU3.js +0 -29
  621. package/dist/singleCellGeneExpression.unit.spec-2KQBHG7O.js +0 -144
  622. package/dist/singleCellNumericValue-6YS42PZ2.js +0 -29
  623. package/dist/singleCellNumericValue.unit.spec-DNVXQFKI.js +0 -412
  624. package/dist/singleCellPlot-MGOQ7EQV.js +0 -44
  625. package/dist/singlecell-CIOB5XON.js +0 -77
  626. package/dist/singlecell-QW3SLQD6.js +0 -1562
  627. package/dist/snp-6B4MIPKL.js +0 -29
  628. package/dist/snp.unit.spec-HNILS56E.js +0 -167
  629. package/dist/snplocus-DDFLYZ2Y.js +0 -200
  630. package/dist/snplst-JYKOV73J.js +0 -36
  631. package/dist/spliceevent.a53ss.diagram-IBD5ITXR.js +0 -142
  632. package/dist/spliceevent.exonskip.diagram-ZJGEVUYW.js +0 -274
  633. package/dist/spliceevent.noeventdiagram-RNLNTFOW.js +0 -451
  634. package/dist/ssGSEA-42VQLAXL.js +0 -29
  635. package/dist/ssGSEA.unit.spec-FBJANIKG.js +0 -79
  636. package/dist/stattable-FROSNTJY.js +0 -112
  637. package/dist/studyCatalog-XIYNJ24U.js +0 -457
  638. package/dist/summarizeCnvGeneexp-N3OFI24L.js +0 -154
  639. package/dist/summarizeGeneexpSurvival-J4DO2AL4.js +0 -101
  640. package/dist/summarizeMutationCnv-Y43BBSI4.js +0 -155
  641. package/dist/summarizeMutationDiagnosis-JAEAUFCA.js +0 -31
  642. package/dist/summarizeMutationSurvival-4QZDDXDV.js +0 -95
  643. package/dist/summary-DTJZ7NNA.js +0 -40
  644. package/dist/summary.integration.spec-HRRE3J45.js +0 -405
  645. package/dist/summaryInput-WCADUZBK.js +0 -238
  646. package/dist/sunburst-BGXSCB63.js +0 -274
  647. package/dist/sunburst-DSFFFP33.js +0 -504
  648. package/dist/sunburst-DSFFFP33.js.map +0 -7
  649. package/dist/survival-LFXQIWRT.js +0 -49
  650. package/dist/survival-ONWZ5RFM.js +0 -1248
  651. package/dist/survival.integration.spec-ZP7XWHQH.js +0 -609
  652. package/dist/svgraph-2SL2SJVU.js +0 -1377
  653. package/dist/svmr-ONIPMLC2.js +0 -3834
  654. package/dist/swimmer-2EJZH5PP.js +0 -785
  655. package/dist/swimmer-2EJZH5PP.js.map +0 -7
  656. package/dist/table-LLCFO4KK.js +0 -192
  657. package/dist/termCollection-DAHJGR5P.js +0 -247
  658. package/dist/termCollection-QIN53TIL.js +0 -29
  659. package/dist/termCollection.unit.spec-FQOX2IVP.js +0 -295
  660. package/dist/termCollectionFractionSelection-UKEVVZXL.js +0 -38
  661. package/dist/termCollectionFractionSelection.unit.spec-URGEYBU2.js +0 -184
  662. package/dist/tk-4PYQ6WJQ.js +0 -1116
  663. package/dist/tk-4PYQ6WJQ.js.map +0 -7
  664. package/dist/tk-GM7CJ2LU.js +0 -37
  665. package/dist/tp.ui-TRUHW6GP.js +0 -1453
  666. package/dist/tvs.categorical-IY6YSFVN.js +0 -28
  667. package/dist/tvs.condition-YTD7GOPW.js +0 -160
  668. package/dist/tvs.density-CB24PXDE.js +0 -19
  669. package/dist/tvs.dt-AQQIZD5Z.js +0 -34
  670. package/dist/tvs.dtcnv.categorical-WOAOGJSW.js +0 -31
  671. package/dist/tvs.dtcnv.continuous-TJBEPJGO.js +0 -72
  672. package/dist/tvs.dtfusion-SFMZQKKU.js +0 -31
  673. package/dist/tvs.dtitd-Q5RQTCLD.js +0 -31
  674. package/dist/tvs.dtsnvindel-UEK4O6WI.js +0 -31
  675. package/dist/tvs.dtsv-ECS4KEYG.js +0 -31
  676. package/dist/tvs.multivalue-CJIZ3I54.js +0 -84
  677. package/dist/tvs.numeric-UFAOJR2B.js +0 -32
  678. package/dist/tvs.samplelst-BVFY2P7Q.js +0 -95
  679. package/dist/tvs.survival-L56B3I55.js +0 -110
  680. package/dist/tvs.termCollection-BFIBVBSA.js +0 -118
  681. package/dist/vocabulary-MTKDDDGB.js +0 -32
  682. package/dist/wsi.direct-OSHY7VL4.js +0 -11514
  683. /package/dist/{2dmaf-O2SQ5RGD.js.map → 2dmaf-7YU3SNKL.js.map} +0 -0
  684. /package/dist/{AggMatrixInput-LUCTWXHU.js.map → AggMatrixInput-73CDR5FS.js.map} +0 -0
  685. /package/dist/{AggregateMatrix-JVMF27YL.js.map → AggregateMatrix-NNULVFBM.js.map} +0 -0
  686. /package/dist/{AppHeader-DJU6HRKO.js.map → AppHeader-EZDDLLXU.js.map} +0 -0
  687. /package/dist/{BoxPlot-22RXMPRL.js.map → BoxPlot-463E7CRY.js.map} +0 -0
  688. /package/dist/{CorrelationVolcano-PBZWPFSN.js.map → CorrelationVolcano-LHIIMBPP.js.map} +0 -0
  689. /package/dist/{Cuminc-EL74X5GY.js.map → Cuminc-UL2TCIKV.js.map} +0 -0
  690. /package/dist/{DE-W5SAMMRW.js.map → DE-VRFSKFDW.js.map} +0 -0
  691. /package/dist/{DEinput-ZKEFJZQU.js.map → DEinput-FZTQRWVC.js.map} +0 -0
  692. /package/dist/{DM-ABKDXMDG.js.map → DM-PO7CQZNT.js.map} +0 -0
  693. /package/dist/{DifferentialAnalysis-3JTZ5WCQ.js.map → DifferentialAnalysis-WK6HE3YH.js.map} +0 -0
  694. /package/dist/{Disco-ME53U25C.js.map → Disco-YBNQJQFG.js.map} +0 -0
  695. /package/dist/{Disco.UI-F7XKJMKR.js.map → Disco.UI-HC5XYBFV.js.map} +0 -0
  696. /package/dist/{DmrPlot-OWBXUTON.js.map → DmrPlot-7VJ5C66D.js.map} +0 -0
  697. /package/dist/{GB-7X6DBWKS.js.map → GB-VPFQRDRO.js.map} +0 -0
  698. /package/dist/{GSEA-GAZIEGD7.js.map → GSEA-ZEJB3QZQ.js.map} +0 -0
  699. /package/dist/{GeneExpInput-BAOC6ICV.js.map → GeneExpInput-SBDDIY6G.js.map} +0 -0
  700. /package/dist/{Geomap-OZERLL7V.js.map → Geomap-23AHGP2V.js.map} +0 -0
  701. /package/dist/{HicApp-WDH5LVTD.js.map → HicApp-7AQQE4CM.js.map} +0 -0
  702. /package/dist/{IDCViewer-XBZFU3BU.js.map → IDCViewer-NO5Q6VOB.js.map} +0 -0
  703. /package/dist/{NumBinaryEditor-5R4EUQOZ.js.map → NumBinaryEditor-DSRP4OOU.js.map} +0 -0
  704. /package/dist/{NumBinaryEditor.unit.spec-ULBXMOYY.js.map → NumBinaryEditor.unit.spec-TT666YL4.js.map} +0 -0
  705. /package/dist/{NumContEditor-EN6V4FLQ.js.map → NumContEditor-6CURFOCH.js.map} +0 -0
  706. /package/dist/{NumContEditor.unit.spec-VDWKNIFN.js.map → NumContEditor.unit.spec-MNVCFCMP.js.map} +0 -0
  707. /package/dist/{NumCustomBinEditor-UB34ALNZ.js.map → NumCustomBinEditor-SQRR5EFL.js.map} +0 -0
  708. /package/dist/{NumCustomBinEditor.unit.spec-WZXJ7GEC.js.map → NumCustomBinEditor.unit.spec-F7BZWGGT.js.map} +0 -0
  709. /package/dist/{NumDiscreteEditor-H6J67YEL.js.map → NumDiscreteEditor-U7Z2QNYP.js.map} +0 -0
  710. /package/dist/{NumDiscreteEditor.unit.spec-KJ7YU22W.js.map → NumDiscreteEditor.unit.spec-EIEBUZCX.js.map} +0 -0
  711. /package/dist/{NumRegularBinEditor-R5JVUG7J.js.map → NumRegularBinEditor-CVZSWN6Y.js.map} +0 -0
  712. /package/dist/{NumRegularBinEditor.unit.spec-RZ73FMNO.js.map → NumRegularBinEditor.unit.spec-ZMAJOIHL.js.map} +0 -0
  713. /package/dist/{NumSplineEditor-AOR6OAJA.js.map → NumSplineEditor-U43D5NBJ.js.map} +0 -0
  714. /package/dist/{NumSplineEditor.unit.spec-Z6ZEI3UO.js.map → NumSplineEditor.unit.spec-C52AADTS.js.map} +0 -0
  715. /package/dist/{NumericDensity-SRTFTDQA.js.map → NumericDensity-PUKDZOVI.js.map} +0 -0
  716. /package/dist/{NumericDensity.unit.spec-MRREBAYU.js.map → NumericDensity.unit.spec-2347S76D.js.map} +0 -0
  717. /package/dist/{NumericHandler-7RALUACA.js.map → NumericHandler-3RT32PTR.js.map} +0 -0
  718. /package/dist/{NumericHandler.unit.spec-MDO23WRB.js.map → NumericHandler.unit.spec-4PADL4KZ.js.map} +0 -0
  719. /package/dist/{ProteomeInput-MOBXHRD5.js.map → ProteomeInput-NFV4FW4U.js.map} +0 -0
  720. /package/dist/{Regression-XWT4NNTG.js.map → Regression-N7M7N6G4.js.map} +0 -0
  721. /package/dist/{RunChart2-Q7W5MWJS.js.map → RunChart2-UPQ7C6QE.js.map} +0 -0
  722. /package/dist/{SC-MM3JTEVL.js.map → SC-KBW2NHUV.js.map} +0 -0
  723. /package/dist/{Violin-XNTBDUPG.js.map → Violin-GWCOP3ZF.js.map} +0 -0
  724. /package/dist/{Wsi-22KJSFVH.js.map → Wsi-NXAEOYIS.js.map} +0 -0
  725. /package/dist/{adSandbox-TLYWQOOA.js.map → adSandbox-RPEWEEW7.js.map} +0 -0
  726. /package/dist/{animatedBubbleChart-67SY5JGP.js.map → animatedBubbleChart-ILDMZRBX.js.map} +0 -0
  727. /package/dist/{app-FG3KPE4R.js.map → app-LOUC4J47.js.map} +0 -0
  728. /package/dist/{app-VK5LYO6B.js.map → app-MRKXZ6AZ.js.map} +0 -0
  729. /package/dist/{barchart-IGWRVB6W.js.map → barchart-CJR37234.js.map} +0 -0
  730. /package/dist/{barchart2-TT6OBJJP.js.map → barchart2-QQYLTHWR.js.map} +0 -0
  731. /package/dist/{block.init-2Y6CNK7H.js.map → block.init-YJQTJIDO.js.map} +0 -0
  732. /package/dist/{block.mds.expressionrank-VZ4JVPTG.js.map → block.mds.expressionrank-GBMEI5KQ.js.map} +0 -0
  733. /package/dist/{block.mds.geneboxplot-NYMS32JP.js.map → block.mds.geneboxplot-XWE3E5IW.js.map} +0 -0
  734. /package/dist/{block.mds.junction-3R6C3B5W.js.map → block.mds.junction-QLEHFVPE.js.map} +0 -0
  735. /package/dist/{block.mds.svcnv-SO5CYYIQ.js.map → block.mds.svcnv-53DTOPBC.js.map} +0 -0
  736. /package/dist/{block.svg-R4ASXXNW.js.map → block.svg-57T37ABS.js.map} +0 -0
  737. /package/dist/{block.tk.aicheck-LYRTDZRA.js.map → block.tk.aicheck-6DXJTS3H.js.map} +0 -0
  738. /package/dist/{block.tk.bigwig.ui-3KMMZX2M.js.map → block.tk.bigwig.ui-OYIVXE2L.js.map} +0 -0
  739. /package/dist/{block.tk.hicstraw-7HH4PGFY.js.map → block.tk.hicstraw-UKTGEBWT.js.map} +0 -0
  740. /package/dist/{block.tk.junction-BPEKLYS2.js.map → block.tk.junction-ZU5KPFQ3.js.map} +0 -0
  741. /package/dist/{block.tk.junction.textmatrixui-2QU5DL2X.js.map → block.tk.junction.textmatrixui-P4WXTAZR.js.map} +0 -0
  742. /package/dist/{block.tk.ld-TJREYPNY.js.map → block.tk.ld-3PQ4O2AE.js.map} +0 -0
  743. /package/dist/{block.tk.menu-HDBZK4YP.js.map → block.tk.menu-LLITB6UA.js.map} +0 -0
  744. /package/dist/{block.tk.pgv-G5GCYBK2.js.map → block.tk.pgv-Y3FBXUO3.js.map} +0 -0
  745. /package/dist/{brainImaging-ODWHF7WZ.js.map → brainImaging-4B3WXLNP.js.map} +0 -0
  746. /package/dist/{brainRegions-DC7DEA7N.js.map → brainRegions-7VLONUWN.js.map} +0 -0
  747. /package/dist/{bubbleHeatmap-T5ACULRL.js.map → bubbleHeatmap-DI6GJRR6.js.map} +0 -0
  748. /package/dist/{cellTypeBubbleHeatmap-RQINXXTK.js.map → cellTypeBubbleHeatmap-HJY53DB2.js.map} +0 -0
  749. /package/dist/{chunk-TWTPWEYL.js.map → chunk-226MNBZ2.js.map} +0 -0
  750. /package/dist/{chunk-AUPTEHV7.js.map → chunk-2CNFGVHU.js.map} +0 -0
  751. /package/dist/{chunk-DJMDETVU.js.map → chunk-2MC3RNKA.js.map} +0 -0
  752. /package/dist/{chunk-2PHFY3VP.js.map → chunk-2OMX5AYB.js.map} +0 -0
  753. /package/dist/{chunk-64JHE3GV.js.map → chunk-2SL4QWUS.js.map} +0 -0
  754. /package/dist/{chunk-WETOH7YW.js.map → chunk-3KGBC5MK.js.map} +0 -0
  755. /package/dist/{chunk-UAB5PGOP.js.map → chunk-3PCRAPUV.js.map} +0 -0
  756. /package/dist/{chunk-ZWLT5QS3.js.map → chunk-4DBOMSKP.js.map} +0 -0
  757. /package/dist/{chunk-2UB6JZ3I.js.map → chunk-57BS6KNI.js.map} +0 -0
  758. /package/dist/{chunk-UJIB7QM3.js.map → chunk-5AXS5G4A.js.map} +0 -0
  759. /package/dist/{chunk-NS2MZN3C.js.map → chunk-5DI4UNH5.js.map} +0 -0
  760. /package/dist/{chunk-ATZNXW5F.js.map → chunk-5HJG6ECV.js.map} +0 -0
  761. /package/dist/{chunk-NYEFSOKD.js.map → chunk-5ZYANHGX.js.map} +0 -0
  762. /package/dist/{chunk-WV44DGEJ.js.map → chunk-6T4MN7LV.js.map} +0 -0
  763. /package/dist/{chunk-QM724EG2.js.map → chunk-75MRUW2K.js.map} +0 -0
  764. /package/dist/{chunk-7PQVNQFR.js.map → chunk-7J3W3KCN.js.map} +0 -0
  765. /package/dist/{chunk-4OOQ52ET.js.map → chunk-AIZYAKIE.js.map} +0 -0
  766. /package/dist/{chunk-VBDJG6GZ.js.map → chunk-AJNFI6GA.js.map} +0 -0
  767. /package/dist/{chunk-NQMS7WV3.js.map → chunk-BJAWDZBL.js.map} +0 -0
  768. /package/dist/{chunk-VOXUMZMG.js.map → chunk-C6PVZVIH.js.map} +0 -0
  769. /package/dist/{chunk-24ZS2XWC.js.map → chunk-C77X5ZUV.js.map} +0 -0
  770. /package/dist/{chunk-LSRFRZNP.js.map → chunk-C7KUMZQM.js.map} +0 -0
  771. /package/dist/{chunk-6MUJGVOH.js.map → chunk-C7ROKWV2.js.map} +0 -0
  772. /package/dist/{chunk-XVEEMQAT.js.map → chunk-CAH6LJ5Z.js.map} +0 -0
  773. /package/dist/{chunk-RIL33JCW.js.map → chunk-CUCP2GMT.js.map} +0 -0
  774. /package/dist/{chunk-FOUMNTII.js.map → chunk-DTGAMBRJ.js.map} +0 -0
  775. /package/dist/{chunk-7ZEJKFGW.js.map → chunk-DXT7GDHY.js.map} +0 -0
  776. /package/dist/{chunk-IKZQST6E.js.map → chunk-ENPMWVWG.js.map} +0 -0
  777. /package/dist/{chunk-DXM5MQCZ.js.map → chunk-EYKJQJ7R.js.map} +0 -0
  778. /package/dist/{chunk-B2KYLEYM.js.map → chunk-FE5TCBIT.js.map} +0 -0
  779. /package/dist/{chunk-UCB3W3OT.js.map → chunk-FJ2JV2VK.js.map} +0 -0
  780. /package/dist/{chunk-DRESQF33.js.map → chunk-FZYVPRVQ.js.map} +0 -0
  781. /package/dist/{chunk-5TPWMYBG.js.map → chunk-GBKQHVKJ.js.map} +0 -0
  782. /package/dist/{chunk-2QFMKWNS.js.map → chunk-GUW7VTUL.js.map} +0 -0
  783. /package/dist/{chunk-3GQ54XTJ.js.map → chunk-H7F6DMJA.js.map} +0 -0
  784. /package/dist/{chunk-IPRYYK26.js.map → chunk-HH3NUAR2.js.map} +0 -0
  785. /package/dist/{chunk-A6ZUYQHO.js.map → chunk-HRTPGNOG.js.map} +0 -0
  786. /package/dist/{chunk-H3YF55ZI.js.map → chunk-IFPRYTS7.js.map} +0 -0
  787. /package/dist/{chunk-YBOHXANC.js.map → chunk-IJSFSUI4.js.map} +0 -0
  788. /package/dist/{chunk-BJCET6RU.js.map → chunk-IRQKX6DL.js.map} +0 -0
  789. /package/dist/{chunk-GN2A5NL5.js.map → chunk-JHLF2ZC2.js.map} +0 -0
  790. /package/dist/{chunk-ALIMVUHR.js.map → chunk-JNZL7HKB.js.map} +0 -0
  791. /package/dist/{chunk-GX6G2SSW.js.map → chunk-K2ARLT2A.js.map} +0 -0
  792. /package/dist/{chunk-SO76DLSZ.js.map → chunk-K3G56J5R.js.map} +0 -0
  793. /package/dist/{chunk-WCNMP54T.js.map → chunk-KKUCG2QE.js.map} +0 -0
  794. /package/dist/{chunk-D6U65W7Q.js.map → chunk-KPXCXBNU.js.map} +0 -0
  795. /package/dist/{chunk-6YGSVJJD.js.map → chunk-MANAUI7R.js.map} +0 -0
  796. /package/dist/{chunk-7XW4JWMJ.js.map → chunk-MEUSRAOE.js.map} +0 -0
  797. /package/dist/{chunk-NR6WFCPF.js.map → chunk-MHWYRNGA.js.map} +0 -0
  798. /package/dist/{chunk-MP7BA3GK.js.map → chunk-MSTYU3QO.js.map} +0 -0
  799. /package/dist/{chunk-MVSUESEV.js.map → chunk-MWARRQT4.js.map} +0 -0
  800. /package/dist/{chunk-YNQFOPS6.js.map → chunk-MXKYPTZ7.js.map} +0 -0
  801. /package/dist/{chunk-NUA66GW7.js.map → chunk-NX5IB4IY.js.map} +0 -0
  802. /package/dist/{chunk-4ENIOXIT.js.map → chunk-OZUF7O2S.js.map} +0 -0
  803. /package/dist/{chunk-SLHXR4BZ.js.map → chunk-QNCE6EOK.js.map} +0 -0
  804. /package/dist/{chunk-5NI77Z3O.js.map → chunk-RIHO7ZD5.js.map} +0 -0
  805. /package/dist/{chunk-LYX4S6WA.js.map → chunk-RV335DF2.js.map} +0 -0
  806. /package/dist/{chunk-3IE6FDVA.js.map → chunk-THAUD62Q.js.map} +0 -0
  807. /package/dist/{chunk-JL3PYV5F.js.map → chunk-VBTBUXXX.js.map} +0 -0
  808. /package/dist/{chunk-FTGLS763.js.map → chunk-VHWJK2MP.js.map} +0 -0
  809. /package/dist/{chunk-K6VYSDB5.js.map → chunk-VLIOMJDR.js.map} +0 -0
  810. /package/dist/{chunk-U2GHNZ4N.js.map → chunk-VMK4RHV5.js.map} +0 -0
  811. /package/dist/{chunk-GWNCQ5YI.js.map → chunk-WKT7RF3C.js.map} +0 -0
  812. /package/dist/{chunk-ETXOEP4N.js.map → chunk-WXSMUSU7.js.map} +0 -0
  813. /package/dist/{chunk-ZYAZHJPZ.js.map → chunk-WXSX5OQJ.js.map} +0 -0
  814. /package/dist/{chunk-CTVPW77S.js.map → chunk-WY3IORKG.js.map} +0 -0
  815. /package/dist/{chunk-WKGKKM6F.js.map → chunk-WYSOOKFJ.js.map} +0 -0
  816. /package/dist/{chunk-TUO5I6LP.js.map → chunk-XBBFFOLS.js.map} +0 -0
  817. /package/dist/{chunk-YVQ4USPP.js.map → chunk-XSRQGX5H.js.map} +0 -0
  818. /package/dist/{chunk-KSS26PXB.js.map → chunk-YLL6CTBL.js.map} +0 -0
  819. /package/dist/{chunk-ANBGNYNP.js.map → chunk-YPBY37KD.js.map} +0 -0
  820. /package/dist/{chunk-DKPAOVJH.js.map → chunk-YUNJBIK4.js.map} +0 -0
  821. /package/dist/{chunk-IANE75G3.js.map → chunk-Z5ECCUNG.js.map} +0 -0
  822. /package/dist/{cohort-QSLKB4ZO.js.map → cohort-5WL6UJOS.js.map} +0 -0
  823. /package/dist/{cohortSunburst-AQFSNJ5K.js.map → cohortSunburst-R3Z5KJQL.js.map} +0 -0
  824. /package/dist/{condition-MLS6TJHV.js.map → condition-2IILUMVB.js.map} +0 -0
  825. /package/dist/{controls-ZT3GZ667.js.map → controls-G3JITZF5.js.map} +0 -0
  826. /package/dist/{controls.config-F7NIPLKB.js.map → controls.config-BO7KPPET.js.map} +0 -0
  827. /package/dist/{correlation-ZEIQJGSQ.js.map → correlation-CZILLVEM.js.map} +0 -0
  828. /package/dist/{customdata.inputui-6PJSAJK2.js.map → customdata.inputui-BXFQAMTR.js.map} +0 -0
  829. /package/dist/{databrowser.ui-EMZ5L2Y7.js.map → databrowser.ui-V2NJQF3U.js.map} +0 -0
  830. /package/dist/{dictionary-U2BWGY6B.js.map → dictionary-OVAQX6R3.js.map} +0 -0
  831. /package/dist/{dnaMethylation-R34E2XNC.js.map → dnaMethylation-DHPFRXB2.js.map} +0 -0
  832. /package/dist/{dnaMethylation.integration.spec-4Z2AJHWY.js.map → dnaMethylation.integration.spec-PJLIRGN5.js.map} +0 -0
  833. /package/dist/{dofetch-JY4A7BYI.js.map → dofetch-KBTN6OW4.js.map} +0 -0
  834. /package/dist/{e2pca-WSSCXX6A.js.map → e2pca-O7SNMJGB.js.map} +0 -0
  835. /package/dist/{ep-ATUWEHDJ.js.map → ep-NIVLKG4S.js.map} +0 -0
  836. /package/dist/{expclust.gdc.spec-QRIRRPO7.js.map → expclust.gdc.spec-LVCD6C43.js.map} +0 -0
  837. /package/dist/{facet-5VDCSP3S.js.map → facet-LB4SCXE4.js.map} +0 -0
  838. /package/dist/{gb-Y4UG6LFA.js.map → gb-3IJ4NCPO.js.map} +0 -0
  839. /package/dist/{geneExpClustering-OO67JNJ2.js.map → geneExpClustering-SIAC7CMA.js.map} +0 -0
  840. /package/dist/{geneExpression-KPRFXKU7.js.map → geneExpression-KPUOZ4PT.js.map} +0 -0
  841. /package/dist/{geneExpression-5KGV3MAA.js.map → geneExpression-P2TTZXN2.js.map} +0 -0
  842. /package/dist/{geneExpression.unit.spec-YV45EZ5O.js.map → geneExpression.unit.spec-Q5D6XHUF.js.map} +0 -0
  843. /package/dist/{geneORA-R74JPUTC.js.map → geneORA-PKUIJKTL.js.map} +0 -0
  844. /package/dist/{geneRanking-IJTXNMHV.js.map → geneRanking-ZGT5MHBV.js.map} +0 -0
  845. /package/dist/{geneVariant-JT3EGAIH.js.map → geneVariant-24YNANTT.js.map} +0 -0
  846. /package/dist/{geneVariant-HBAHT6LU.js.map → geneVariant-CDGENHWQ.js.map} +0 -0
  847. /package/dist/{geneVariant.integration.spec-TFQYPUAS.js.map → geneVariant.integration.spec-7QW4C2WO.js.map} +0 -0
  848. /package/dist/{genefusion.ui-MMTQMTHC.js.map → genefusion.ui-NVXGSBXD.js.map} +0 -0
  849. /package/dist/{geneset-VMBICNCZ.js.map → geneset-7STL6UDD.js.map} +0 -0
  850. /package/dist/{genomeBrowser.spec-2XLLIYGA.js.map → genomeBrowser.spec-OE2CIP7I.js.map} +0 -0
  851. /package/dist/{grin2-2RYPEUWV.js.map → grin2-2HXUIY5O.js.map} +0 -0
  852. /package/dist/{grin2-Y6KAFVV2.js.map → grin2-32IIJR5E.js.map} +0 -0
  853. /package/dist/{hierCluster-EKGFBQT4.js.map → hierCluster-MDZEI2KB.js.map} +0 -0
  854. /package/dist/{hierCluster-Z4PVNMGS.js.map → hierCluster-T3PZUGBI.js.map} +0 -0
  855. /package/dist/{hierCluster.config-Q6WUNK2K.js.map → hierCluster.config-7UN6AYGB.js.map} +0 -0
  856. /package/dist/{hierCluster.integration.spec-2LHSHNFC.js.map → hierCluster.integration.spec-DWOYVK6T.js.map} +0 -0
  857. /package/dist/{hierCluster.interactivity-OGQ3KUY6.js.map → hierCluster.interactivity-5OM6XNFG.js.map} +0 -0
  858. /package/dist/{hierCluster.renderers-3GJZXG75.js.map → hierCluster.renderers-YGX6MZZW.js.map} +0 -0
  859. /package/dist/{imagePlot-ZJEZPBX7.js.map → imagePlot-KBRXDV5G.js.map} +0 -0
  860. /package/dist/{importPlot-GFEFYEHZ.js.map → importPlot-DJMIC22L.js.map} +0 -0
  861. /package/dist/{isoformExpression-A2X3DSR6.js.map → isoformExpression-SWDWADRC.js.map} +0 -0
  862. /package/dist/{isoformExpression.unit.spec-VKMEGCL4.js.map → isoformExpression.unit.spec-2U5KCYBP.js.map} +0 -0
  863. /package/dist/{junction-HWIHLQU2.js.map → junction-NMXVVGRG.js.map} +0 -0
  864. /package/dist/{junction.customTerm-C3VWXEYH.js.map → junction.customTerm-3R2GNE3A.js.map} +0 -0
  865. /package/dist/{junction.unit.spec-ZYJGDOXJ.js.map → junction.unit.spec-JTGBPPN7.js.map} +0 -0
  866. /package/dist/{launch.adhoc-HW5AZM4T.js.map → launch.adhoc-YB5SKMNY.js.map} +0 -0
  867. /package/dist/{leftlabel.sample-MTW2HRRQ.js.map → leftlabel.sample-QKXIODCS.js.map} +0 -0
  868. /package/dist/{lollipop-VWW5H6CR.js.map → lollipop-TSZ62PBH.js.map} +0 -0
  869. /package/dist/{maf-KEJYO3H4.js.map → maf-4L5YN4CG.js.map} +0 -0
  870. /package/dist/{maftimeline-MJZDSGSR.js.map → maftimeline-VOYB3NY3.js.map} +0 -0
  871. /package/dist/{matrix-3UJW6LOA.js.map → matrix-IWJECVTF.js.map} +0 -0
  872. /package/dist/{matrix-W4AX5OBM.js.map → matrix-MMJAJZA7.js.map} +0 -0
  873. /package/dist/{matrix.cells-5DAIZ3E5.js.map → matrix.cells-5RTZUJVN.js.map} +0 -0
  874. /package/dist/{matrix.config-PK26VPQT.js.map → matrix.config-DZGOZWJS.js.map} +0 -0
  875. /package/dist/{matrix.data-UK5DGKBK.js.map → matrix.data-Y5TPRGMW.js.map} +0 -0
  876. /package/dist/{matrix.groups-NM4Q5YDN.js.map → matrix.groups-6DXCAY4P.js.map} +0 -0
  877. /package/dist/{matrix.integration.spec-FGWNBCRR.js.map → matrix.integration.spec-2N237E7T.js.map} +0 -0
  878. /package/dist/{matrix.interactivity-4C37PII5.js.map → matrix.interactivity-FL33UUKR.js.map} +0 -0
  879. /package/dist/{matrix.layout-ODV7WXUP.js.map → matrix.layout-7SYHV3KJ.js.map} +0 -0
  880. /package/dist/{matrix.legend-5MY7OXWN.js.map → matrix.legend-S3E76TVO.js.map} +0 -0
  881. /package/dist/{matrix.renderers-QA7W7ZUL.js.map → matrix.renderers-3SIBT2RP.js.map} +0 -0
  882. /package/dist/{matrix.serieses-4FSFJPCK.js.map → matrix.serieses-3UGLZW25.js.map} +0 -0
  883. /package/dist/{matrix.sort-3QLFMBJ5.js.map → matrix.sort-A7CNLDUJ.js.map} +0 -0
  884. /package/dist/{matrix.sort.unit.spec-HVOC6IYT.js.map → matrix.sort.unit.spec-L3H44T6I.js.map} +0 -0
  885. /package/dist/{matrix.sorterUi-EY3SA6CG.js.map → matrix.sorterUi-6PZR3YOD.js.map} +0 -0
  886. /package/dist/{matrix.sorterUi.unit.spec-OAXWPZZI.js.map → matrix.sorterUi.unit.spec-2NRU5UFH.js.map} +0 -0
  887. /package/dist/{matrix.unit.spec-RAL7AU22.js.map → matrix.unit.spec-HRZIJB6T.js.map} +0 -0
  888. /package/dist/{mavb-KIM63AC4.js.map → mavb-ZVRQSDPS.js.map} +0 -0
  889. /package/dist/{mds.fimo-DMAVM56P.js.map → mds.fimo-ZKETTET7.js.map} +0 -0
  890. /package/dist/{mds.samplescatterplot-KILTR2C7.js.map → mds.samplescatterplot-ZV3UNRLP.js.map} +0 -0
  891. /package/dist/{mds.survivalplot-PV76ANBP.js.map → mds.survivalplot-OVXZRTU4.js.map} +0 -0
  892. /package/dist/{multivalue-2V5LMQY7.js.map → multivalue-6BE5IA4F.js.map} +0 -0
  893. /package/dist/{numericDictTermCluster-TGL4X6UC.js.map → numericDictTermCluster-6XDVVWLE.js.map} +0 -0
  894. /package/dist/{oncomatrix-2O7SLXHX.js.map → oncomatrix-XK62NEOO.js.map} +0 -0
  895. /package/dist/{oncomatrix.spec-HZJKOF5G.js.map → oncomatrix.spec-YVTCHOPS.js.map} +0 -0
  896. /package/dist/{plot.2dvaf-424NNMMA.js.map → plot.2dvaf-NUOBWMNX.js.map} +0 -0
  897. /package/dist/{plot.app-YBZDNST2.js.map → plot.app-G6IQWXTV.js.map} +0 -0
  898. /package/dist/{plot.barplot-YZQBYJUY.js.map → plot.barplot-6QJ6HEJR.js.map} +0 -0
  899. /package/dist/{plot.boxplot-5OW6IBQL.js.map → plot.boxplot-XKQJSW2O.js.map} +0 -0
  900. /package/dist/{plot.brainImaging-H3ABPPD3.js.map → plot.brainImaging-UTHFJFXU.js.map} +0 -0
  901. /package/dist/{plot.disco-X7KCDWGX.js.map → plot.disco-3MSCX7TM.js.map} +0 -0
  902. /package/dist/{plot.ssgq-GYRVHTC7.js.map → plot.ssgq-4KBVHF42.js.map} +0 -0
  903. /package/dist/{plot.vaf2cov-B2TELPHL.js.map → plot.vaf2cov-OGUQSSDS.js.map} +0 -0
  904. /package/dist/{polar2-5KNZRLXY.js.map → polar2-V7M56GTZ.js.map} +0 -0
  905. /package/dist/{profileForms-FY34KXCL.js.map → profileForms-TS3BJLHH.js.map} +0 -0
  906. /package/dist/{profilePlot-3FX2TPYC.js.map → profilePlot-DP5272HR.js.map} +0 -0
  907. /package/dist/{proteinView-WSEO3LD3.js.map → proteinView-K4K4SP3L.js.map} +0 -0
  908. /package/dist/{proteomeCohortCompare-KA2DF3EE.js.map → proteomeCohortCompare-SFWVGLFK.js.map} +0 -0
  909. /package/dist/{pseudbulk.unit.spec-AT3TFCOW.js.map → pseudbulk.unit.spec-NFOA7J2C.js.map} +0 -0
  910. /package/dist/{pseudobulk-4ZRHUC7W.js.map → pseudobulk-XKZQEZ4I.js.map} +0 -0
  911. /package/dist/{qualitative-3OBGJRP6.js.map → qualitative-7OSFNVI5.js.map} +0 -0
  912. /package/dist/{qualitative-FHJD44OA.js.map → qualitative-OIIN6E4Y.js.map} +0 -0
  913. /package/dist/{radar2-X757WR6V.js.map → radar2-AHZJKX7S.js.map} +0 -0
  914. /package/dist/{radarFacility2-GUBAK4Y3.js.map → radarFacility2-OUW6D5E7.js.map} +0 -0
  915. /package/dist/{rememberedGvQ.unit.spec-ADO4Y2OE.js.map → rememberedGvQ.unit.spec-SHTMMZGG.js.map} +0 -0
  916. /package/dist/{render-MZEPNEMU.js.map → render-7UZSGX3Q.js.map} +0 -0
  917. /package/dist/{report-TUAFDGAE.js.map → report-J7HKTXZ2.js.map} +0 -0
  918. /package/dist/{sampleView-X6YKCBE7.js.map → sampleView-6547OUIM.js.map} +0 -0
  919. /package/dist/{samplelst-UPNRALBH.js.map → samplelst-UHF23UEB.js.map} +0 -0
  920. /package/dist/{samplematrix-W3HZK3IS.js.map → samplematrix-OOKS3TMR.js.map} +0 -0
  921. /package/dist/{sc-UL7233UR.js.map → sc-WF2BLGNG.js.map} +0 -0
  922. /package/dist/{scatter-VQQRIW6N.js.map → scatter-ABCVFGRV.js.map} +0 -0
  923. /package/dist/{scatter-FTJ77NUM.js.map → scatter-WF7XM3IA.js.map} +0 -0
  924. /package/dist/{selectGenomeWithTklst-HPYPSPFI.js.map → selectGenomeWithTklst-67HU5KRB.js.map} +0 -0
  925. /package/dist/{singleCellCellType-XTKGOH6H.js.map → singleCellCellType-3FZPJ25V.js.map} +0 -0
  926. /package/dist/{singleCellCellType.unit.spec-A62GT72A.js.map → singleCellCellType.unit.spec-TOMREHWK.js.map} +0 -0
  927. /package/dist/{singleCellGeneExpression-X7H5GTU3.js.map → singleCellGeneExpression-NQTJ5KJQ.js.map} +0 -0
  928. /package/dist/{singleCellGeneExpression.unit.spec-2KQBHG7O.js.map → singleCellGeneExpression.unit.spec-ZWUQTU2N.js.map} +0 -0
  929. /package/dist/{singleCellNumericValue-6YS42PZ2.js.map → singleCellNumericValue-VI7H722L.js.map} +0 -0
  930. /package/dist/{singleCellNumericValue.unit.spec-DNVXQFKI.js.map → singleCellNumericValue.unit.spec-QGLHES7H.js.map} +0 -0
  931. /package/dist/{singleCellPlot-MGOQ7EQV.js.map → singleCellPlot-RU5T6SJK.js.map} +0 -0
  932. /package/dist/{singlecell-QW3SLQD6.js.map → singlecell-C3CJVNXP.js.map} +0 -0
  933. /package/dist/{singlecell-CIOB5XON.js.map → singlecell-NRQZ7KC6.js.map} +0 -0
  934. /package/dist/{snp-6B4MIPKL.js.map → snp-X6XY65VS.js.map} +0 -0
  935. /package/dist/{snp.unit.spec-HNILS56E.js.map → snp.unit.spec-6EENK7GQ.js.map} +0 -0
  936. /package/dist/{snplocus-DDFLYZ2Y.js.map → snplocus-R4JA6TFT.js.map} +0 -0
  937. /package/dist/{snplst-JYKOV73J.js.map → snplst-SOWVHSXH.js.map} +0 -0
  938. /package/dist/{spliceevent.a53ss.diagram-IBD5ITXR.js.map → spliceevent.a53ss.diagram-IRLCCVQZ.js.map} +0 -0
  939. /package/dist/{spliceevent.exonskip.diagram-ZJGEVUYW.js.map → spliceevent.exonskip.diagram-4KG7LE5D.js.map} +0 -0
  940. /package/dist/{spliceevent.noeventdiagram-RNLNTFOW.js.map → spliceevent.noeventdiagram-OWXAJJX7.js.map} +0 -0
  941. /package/dist/{ssGSEA-42VQLAXL.js.map → ssGSEA-EMOKPLMP.js.map} +0 -0
  942. /package/dist/{ssGSEA.unit.spec-FBJANIKG.js.map → ssGSEA.unit.spec-KXQ7R5WH.js.map} +0 -0
  943. /package/dist/{stattable-FROSNTJY.js.map → stattable-H2G7MOZG.js.map} +0 -0
  944. /package/dist/{studyCatalog-XIYNJ24U.js.map → studyCatalog-3ITQXWFL.js.map} +0 -0
  945. /package/dist/{summarizeCnvGeneexp-N3OFI24L.js.map → summarizeCnvGeneexp-ZIPU6YDY.js.map} +0 -0
  946. /package/dist/{summarizeGeneexpSurvival-J4DO2AL4.js.map → summarizeGeneexpSurvival-3RYU226R.js.map} +0 -0
  947. /package/dist/{summarizeMutationCnv-Y43BBSI4.js.map → summarizeMutationCnv-RGDBUB22.js.map} +0 -0
  948. /package/dist/{summarizeMutationDiagnosis-JAEAUFCA.js.map → summarizeMutationDiagnosis-Z4MZE6Y4.js.map} +0 -0
  949. /package/dist/{summarizeMutationSurvival-4QZDDXDV.js.map → summarizeMutationSurvival-Z5CNRH7E.js.map} +0 -0
  950. /package/dist/{summary-DTJZ7NNA.js.map → summary-6QQCNX3B.js.map} +0 -0
  951. /package/dist/{summary.integration.spec-HRRE3J45.js.map → summary.integration.spec-3ULXTZUP.js.map} +0 -0
  952. /package/dist/{summaryInput-WCADUZBK.js.map → summaryInput-4QKR34QB.js.map} +0 -0
  953. /package/dist/{termCollection-QIN53TIL.js.map → sunburst-KB3BWC72.js.map} +0 -0
  954. /package/dist/{sunburst-BGXSCB63.js.map → sunburst-XTFBHZNH.js.map} +0 -0
  955. /package/dist/{survival-LFXQIWRT.js.map → survival-7O6ZK63E.js.map} +0 -0
  956. /package/dist/{survival-ONWZ5RFM.js.map → survival-NNCY4K6C.js.map} +0 -0
  957. /package/dist/{survival.integration.spec-ZP7XWHQH.js.map → survival.integration.spec-ZYZHZAXA.js.map} +0 -0
  958. /package/dist/{svgraph-2SL2SJVU.js.map → svgraph-ZLSFFEAC.js.map} +0 -0
  959. /package/dist/{svmr-ONIPMLC2.js.map → svmr-REBBDEYM.js.map} +0 -0
  960. /package/dist/{table-LLCFO4KK.js.map → table-CWIQQESJ.js.map} +0 -0
  961. /package/dist/{termCollectionFractionSelection-UKEVVZXL.js.map → termCollection-7TYJSQ45.js.map} +0 -0
  962. /package/dist/{termCollection-DAHJGR5P.js.map → termCollection-7Z55QNL7.js.map} +0 -0
  963. /package/dist/{termCollection.unit.spec-FQOX2IVP.js.map → termCollection.unit.spec-LQ5MIBDH.js.map} +0 -0
  964. /package/dist/{tk-GM7CJ2LU.js.map → termCollectionFractionSelection-24DZYVDU.js.map} +0 -0
  965. /package/dist/{termCollectionFractionSelection.unit.spec-URGEYBU2.js.map → termCollectionFractionSelection.unit.spec-DCV2CFS5.js.map} +0 -0
  966. /package/dist/{tvs.categorical-IY6YSFVN.js.map → tk-2WZFPRCP.js.map} +0 -0
  967. /package/dist/{tp.ui-TRUHW6GP.js.map → tp.ui-HXQX2UH4.js.map} +0 -0
  968. /package/dist/{tvs.density-CB24PXDE.js.map → tvs.categorical-4D3JI2ER.js.map} +0 -0
  969. /package/dist/{tvs.condition-YTD7GOPW.js.map → tvs.condition-62FXFHZ5.js.map} +0 -0
  970. /package/dist/{tvs.dt-AQQIZD5Z.js.map → tvs.density-IGO4I4T2.js.map} +0 -0
  971. /package/dist/{tvs.numeric-UFAOJR2B.js.map → tvs.dt-FZSVMJOO.js.map} +0 -0
  972. /package/dist/{tvs.dtcnv.categorical-WOAOGJSW.js.map → tvs.dtcnv.categorical-PPFQIC42.js.map} +0 -0
  973. /package/dist/{tvs.dtcnv.continuous-TJBEPJGO.js.map → tvs.dtcnv.continuous-TV2IGHY4.js.map} +0 -0
  974. /package/dist/{tvs.dtfusion-SFMZQKKU.js.map → tvs.dtfusion-ON4BA4XJ.js.map} +0 -0
  975. /package/dist/{tvs.dtitd-Q5RQTCLD.js.map → tvs.dtitd-VFNROOWQ.js.map} +0 -0
  976. /package/dist/{tvs.dtsnvindel-UEK4O6WI.js.map → tvs.dtsnvindel-ZXOP37T5.js.map} +0 -0
  977. /package/dist/{tvs.dtsv-ECS4KEYG.js.map → tvs.dtsv-EUHPTW7J.js.map} +0 -0
  978. /package/dist/{tvs.multivalue-CJIZ3I54.js.map → tvs.multivalue-NHVXZNDI.js.map} +0 -0
  979. /package/dist/{vocabulary-MTKDDDGB.js.map → tvs.numeric-FPWDPO3J.js.map} +0 -0
  980. /package/dist/{tvs.samplelst-BVFY2P7Q.js.map → tvs.samplelst-ZZHRNUP4.js.map} +0 -0
  981. /package/dist/{tvs.survival-L56B3I55.js.map → tvs.survival-F3KSG3U6.js.map} +0 -0
  982. /package/dist/{tvs.termCollection-BFIBVBSA.js.map → tvs.termCollection-B37DZLDY.js.map} +0 -0
  983. /package/dist/{wsi.direct-OSHY7VL4.js.map → wsi.direct-3YH3QGQD.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../gdc/bam.js"],
4
+ "sourcesContent": ["import { dofetch3 } from '#common/dofetch'\nimport { sayerror, addGeneSearchbox, string2variant, Menu, Tabs, renderTable, table2col, make_one_checkbox } from '#dom'\nimport { first_genetrack_tolist } from '#common/1stGenetk'\nimport { contigNameNoChr2, mclass } from '#shared/common.js'\nimport urlmap from '#common/urlmap'\nimport { fileSize } from '#shared/fileSize.js'\nimport { keyupEnter } from '../src/client'\n\n/*\n\nSV_EXPAND: to be expanded to support SV review using subpanel\n\n*********** gdc_args{}\ngdc_args {}\n\trunFlags{}\n\tgdc_token: <string>,\n\tbam_files: [ {} ]\n\t\tfile_id: file uuid from gdc <string>,\n\t\ttrack_name: used for naming of track <string> //optional\n\t\tabout:[] // with keys corresponding to baminfo_cols[]\n\tcase_id: <string>\n\tssmInput:{}\n\t\tchr, pos, ref, alt\n\tcoordInput:{}\n\t\toutput obj from genesearch\n\tuseSsmOrGene: string, one of ssm/gene/unmapped\n\t\tto identify where to slice on that bam\n\t\twhen there are multiple options available, Tabs will be created on ui to toggle from\n\t\t- ssm:\n\t\t\tlist ssms cataloged by gdc, allow user to select one and slice bam on it (uses ssmInput)\n\t\t\tit's possible there's no ssm from gdc. if so this option will not be available\n\t\t- gene:\n\t\t\talways show. let user enter any locus/snp (uses coordInput)\n\t\t- unmapped:\n\t\t\tavailable if stream2download=true\n# after validation, create position or variant used for launching tk\n\tposition: {chr,start,stop}\n\tvariant: {chr,pos,ref,alt}\n\nchanges to UI <input> are stored on this object\nand is validated in validateInputs{}\n\n************ functions\nmakeTokenInput\nmakeGdcIDinput\n\tqueryCaseFileList\n\tsearchByGdcInputString\n\t\tmakeSsmGeneSearch\n\t\t\ttemp_renderGeneSearch\n\t\t\ttemp_renderSsmList\n\tupdate_singlefile_table\n\tupdate_multifile_table\n\tmakeArg_geneSearchbox\n\tgeneSearchInstruction\nmakeSubmitAndNoPermissionDiv\n\tvalidateInputs\n\tsliceBamAndRender\n\n**************** url parameters\ngdc_id=TCGA-06-0211\ngdc_ssm=E17K\ngdc_var=chr14:g.104780214C>T\ngdc_pos=chr7:55153818-55156225\n\n*/\n\nconst tip = new Menu({ padding: '' })\nconst gdc_genome = 'hg38'\nconst gdcDslabel = 'GDC' // hardcoded in multiple places\nconst variantFlankingSize = 60 // bp\nconst baminfo_cols = [\n\t{ title: 'Entity ID', key: 'entity_id' },\n\t{ title: 'Experimental Strategy', key: 'experimental_strategy' },\n\t{ title: 'Tissue Type', key: 'tissue_type' },\n\t{ title: 'Tumor Descriptor', key: 'tumor_descriptor' },\n\t{ title: 'Size', key: 'file_size', width: '10vw' }\n]\nconst ssmTableColumns = [\n\t{ label: 'Gene', width: '10vw', sortable: true },\n\t{ label: 'Mutation' },\n\t{ label: 'Consequence', sortable: true },\n\t{ label: 'Position' }\n]\nconst noPermissionMessage =\n\t'You are attempting to access a Sequence Read file that you are not authorized to access. <a href=https://gdc.cancer.gov/access-data/obtaining-access-controlled-data target=_blank>Please request dbGaP Access to the project</a>.'\n\n/*\nArguments:\n\ngenomes{}\nholder\ndebugmode=boolean\nhideTokenInput=true/false\n\tset to true in pp react wrapper that's integrated into gdc portal\n\twill be using cookie session id instead of token\nfilter0=str\n\toptional, stringified json obj as the cohort filter from gdc ATF\n\tsimply pass to backend to include in api queries\ncallbacks={}\n\tstandard optional callbacks\n\t.postRender\n\t\tcalled when all ui components finish updating, for testing\n\t\tsee helper runCallbackAfterUIupdate()\nstream2download=boolean\n\tif true, run the app in \"bam slice download\" mode..\ninputValue=str\n\toptional search str to launch a default view, for tape test\n\n\n** all above arguments are accessible to all helper functions **\n\n\nReturns:\n\ta public API object with callback\n*/\nexport async function bamsliceui(\n\t{ filter0, hideTokenInput = false, callbacks = {}, stream2download = false, inputValue, debugmode = false },\n\tholder,\n\tgenomes\n) {\n\tif (callbacks.postRender && typeof callbacks.postRender != 'function') throw 'callbacks.postRender is not function'\n\n\t// public api obj to be returned\n\tconst publicApi = {\n\t\tdom: {\n\t\t\ttip\n\t\t}\n\t}\n\n\tconst genome = genomes[gdc_genome]\n\tif (!genome) throw 'missing genome for ' + gdc_genome\n\n\t// central obj, see comments on top\n\tconst gdc_args = {\n\t\tbam_files: [],\n\t\trunFlags: {\n\t\t\t// presence of a flag indicates the corresponding ui component is not finished loading yet\n\t\t\trunflag_caseFileList: 1,\n\t\t\trunflag_gdcInput: 1\n\t\t}\n\t}\n\n\t// fill from url for quick testing: ?gdc_id=TCGA-44-6147&gdc_pos=chr9:5064699-5065299\n\t// unable to autoload toke file this way\n\tconst urlp = urlmap()\n\n\t/////////////////////////////////////////////////////\n\t// there are 2 ui holders: formdiv and blockHolder\n\t// formdiv collects multiple rows\n\t// each row is for a ui input\n\t// formdiv will be cleared upon submission\n\n\tconst backBtnDiv = holder.append('div').style('margin-left', '30px').style('display', 'none')\n\tbackBtnDiv\n\t\t.append('button')\n\t\t.html('&#171; Back To Input Form')\n\t\t.on('click', () => {\n\t\t\tbackBtnDiv.style('display', 'none')\n\t\t\tblockHolder.style('display', 'none').selectAll('*').remove()\n\t\t\tformdiv.style('display', 'block')\n\t\t})\n\n\tconst formdiv = holder.append('div').style('margin-left', '30px')\n\n\tconst formDiv = formdiv.append('div')\n\t// table with two columns\n\t// has two rows for inputting token and input string\n\n\t// show block & bam tk\n\tconst blockHolder = holder.append('div').style('display', 'none')\n\n\t/* set to true when user has no access to the found file and app runs in download mode;\n\twhile true the submit button stays disabled no matter what any ui component requests. see setSubmitDisabled()\n\t*/\n\tlet blockSubmitForNoAccess = false\n\n\t/////////////////////////////////////////////////////\n\t// create UI components in formdiv\n\n\t// upload toke file\n\tif (!hideTokenInput) makeTokenInput()\n\n\t// <input> to enter gdc id, and doms for display case/file info\n\tconst gdcid_input = await makeGdcIDinput()\n\n\t// hold toggle ui for ssm list and gene search\n\t// contents are only rendered here after a case/file is found via searchByGdcInputString()\n\tconst ssmGeneDiv = formdiv.append('div').style('padding', '3px 10px').style('display', 'none')\n\n\t// submit button, \"no permission\" alert\n\tconst [submitButton, saydiv, noPermissionDiv] = makeSubmitAndNoPermissionDiv()\n\n\tconst defaultSearchString = inputValue || urlp.get('gdc_id')\n\tif (defaultSearchString) {\n\t\t// default search string is supplied either from runpp() or url. this is for testing only\n\t\tgdcid_input.property('value', defaultSearchString).node().dispatchEvent(new Event('search'))\n\t} else {\n\t\tdelete gdc_args.runFlags.runflag_gdcInput\n\t\trunCallbackAfterUIupdate()\n\t}\n\n\t//////////////////////// helper functions\n\n\t/* single point for toggling the submit button\n\tcallers request a state based on their own inputs (tab switch, gene search, ssm selection),\n\tbut blockSubmitForNoAccess always wins so that a user without access cannot submit\n\t*/\n\tfunction setSubmitDisabled(disabled) {\n\t\tsubmitButton.property('disabled', disabled || blockSubmitForNoAccess)\n\t}\n\n\tfunction runCallbackAfterUIupdate() {\n\t\tif (!callbacks.postRender) return\n\t\t/* this ensures postRender is only called when all ui parts are loaded\n\t\tat the end of rendering an ui part, and removal of its flag in runFlags{}, call this run() helper \n\t\t*/\n\t\tif (Object.keys(gdc_args.runFlags).length == 0) {\n\t\t\t// no flags. all ui components are updated;\n\t\t\tcallbacks.postRender(publicApi)\n\t\t} else {\n\t\t\t// some other ui is in midst of updating, do not run; this type of checking is agnostic to actual inserted flags\n\t\t}\n\t}\n\n\tfunction makeTokenInput() {\n\t\t// make one <tr> with two cells\n\t\tconst tr = formDiv.insert('div').attr('class', 'sja-gdcbam-tokendiv')\n\n\t\t// cell 1\n\t\ttr.insert('div').style('display', 'inline-block').style('width', '15vw').text('GDC Token File')\n\n\t\t// cell 2\n\t\tconst td = tr.insert('div').style('display', 'inline-block')\n\t\tconst input = td.append('input').attr('type', 'file').attr('aria-label', 'GDC token file')\n\n\t\tconst file_error_div = td.append('span').style('margin-left', '20px').style('display', 'none')\n\t\tinput.on('change', event => {\n\t\t\tconst file = event.target.files[0]\n\t\t\tif (!file) {\n\t\t\t\tinput.property('value', '')\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!file.size) {\n\t\t\t\tinput.property('value', '')\n\t\t\t\tshow_input_check(file_error_div, 'Blank file ' + file.name)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst reader = new FileReader()\n\t\t\treader.onload = event => {\n\t\t\t\tconst text = event.target.result.trim()\n\t\t\t\tif (text.length < 100) {\n\t\t\t\t\tinput.property('value', '')\n\t\t\t\t\tshow_input_check(file_error_div, 'Does not look like a toke file (content too short)')\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (text.length > 1000) {\n\t\t\t\t\tinput.property('value', '')\n\t\t\t\t\tshow_input_check(file_error_div, 'Does not look like a toke file (content too long)')\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tgdc_args.gdc_token = text\n\t\t\t}\n\t\t\treader.onerror = function () {\n\t\t\t\tinput.property('value', '')\n\t\t\t\tshow_input_check(file_error_div, 'Error reading file ' + file.name)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tshow_input_check(file_error_div)\n\t\t\treader.readAsText(file, 'utf8')\n\t\t})\n\n\t\tsetTimeout(() => input.node().focus(), 1100)\n\t}\n\n\tasync function makeGdcIDinput() {\n\t\t// make one <tr> with two cells\n\t\tconst tr = formDiv.insert('div')\n\n\t\t// cell 1\n\t\ttr.append('div')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('width', '15vw')\n\t\t\t.style('padding-top', '5px')\n\t\t\t.text('Enter Search String')\n\t\t\t.style('vertical-align', 'top')\n\n\t\t// cell 2\n\t\tconst td = tr.append('div').style('display', 'inline-block')\n\n\t\tconst gdcid_input = td\n\t\t\t.append('input')\n\t\t\t.attr('type', 'search')\n\t\t\t.attr('size', 45)\n\t\t\t.attr('aria-label', 'Specify File Name / File UUID / Case ID / Case UUID')\n\t\t\t.style('padding', '3px 10px')\n\t\t\t.property('placeholder', 'File Name / File UUID / Case ID / Case UUID')\n\t\t\t.attr('class', 'sja-gdcbam-input') // for testing\n\t\t\t.attr('data-testid', 'sjpp-gdcbam-fileSearchInput')\n\t\t\t// clicking X in <input> fires \"search\" event. must listen to it and call callback without delay in order to clear the UI\n\t\t\t.on('search', searchByGdcInputString)\n\t\t\t.on('keyup', event => {\n\t\t\t\tif (keyupEnter(event)) {\n\t\t\t\t\t// press Enter to trigger search; this is needed as when embedded in GFF, \"search\" event above is not triggered by hitting Enter\n\t\t\t\t\tsearchByGdcInputString()\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t// not pressed Enter, and do not debounce search. this avoid an err when hitting Enter too fast after entering string, that will trigger both \"search\" and \"keyup\" listeners and cause it to search twice (and show ssm table twice). also by not listening to keyup it allows users to manually type in search string without being interrupted, thus should be okay..\n\t\t\t\tgdc_loading.style('display', '').text('Press ENTER to search') // prompt\n\t\t\t\tgdcid_error_div.style('display', 'none')\n\t\t\t})\n\n\t\tconst gdc_loading = td.append('span').style('padding-left', '10px').style('display', 'none')\n\n\t\tconst gdcid_error_div = td\n\t\t\t.append('span')\n\t\t\t.attr('class', 'sja-gdcbam-gdcid_error_div') // for testing\n\t\t\t.style('display', 'none')\n\t\t\t.style('padding', '2px 5px')\n\n\t\ttd.append('br') // add line break from input box\n\n\t\tconst listCaseFileHandle = td\n\t\t\t.append('div')\n\t\t\t.attr('class', 'sja-gdcbam-listCaseFileHandle') // for testing\n\t\t\t.style('margin', '5px')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.text('Looking for BAM files from current cohort...')\n\t\tqueryCaseFileList(listCaseFileHandle)\n\n\t\tconst userHasNoAccessDiv = td\n\t\t\t.append('div')\n\t\t\t.style('display', 'none')\n\t\t\t.style('width', '500px')\n\t\t\t.style('margin', '20px 3px')\n\t\t\t.html(noPermissionMessage)\n\n\t\t//////////////////////////\n\t\t// row 2, to display details of case/file\n\t\tconst baminfo_div = formdiv.append('div').style('display', 'none').style('margin', '20px 20px 20px 40px')\n\t\t// either baminfo_table or bamselection_table is displayed\n\t\t// baminfo_table is a static table showing details about one bam file\n\t\t// bamselection_table lists multiple bam files available from a sample, allowing user to select some forslicing\n\t\tconst baminfo_table = baminfo_div.append('div').attr('class', 'sja-gdcbam-onefiletable').style('display', 'none')\n\t\tconst bamselection_table = baminfo_div\n\t\t\t.append('div')\n\t\t\t.attr('class', 'sja-gdcbam-multifiletable')\n\t\t\t.style('display', 'none')\n\n\t\t// the update() will be called in pp react wrapper, when user changes cohort from gdc portal\n\t\tpublicApi.update = _arg => {\n\t\t\tsearchByGdcInputString(null, _arg?.filter0 || filter0)\n\t\t\tqueryCaseFileList(listCaseFileHandle, _arg?.filter0 || filter0)\n\t\t}\n\n\t\t/* arguments\n\t\teventNotUsed: d3v7 passes \"event\" as first argument which is unused, as searchByGdcInputString() is used as event listener\n\t\tfilter0override: new updated gdc filter object, to replace existing filter0\n\t\t*/\n\t\tasync function searchByGdcInputString(eventNotUsed, filter0override) {\n\t\t\tsaydiv.selectAll('*').remove()\n\t\t\tnoPermissionDiv.style('display', 'none')\n\t\t\tsubmitButton.style('display', 'inline-block')\n\n\t\t\t// new search; access to the previously found file says nothing about the file about to be found\n\t\t\tblockSubmitForNoAccess = false\n\n\t\t\t// disable submit button when a new case/file loaded, and delete previou ssmInput/coordInput\n\t\t\tsetSubmitDisabled(true)\n\t\t\tdelete gdc_args.coordInput\n\t\t\tdelete gdc_args.ssmInput\n\n\t\t\tgdcid_error_div.style('display', 'none')\n\t\t\tgdc_loading.style('display', 'none')\n\n\t\t\t/* as _actual() is highly variable in how it can end\n\t\t\t- in the middle\n\t\t\t- done input search and not found\n\t\t\t- found case and trigger ssm search\n\t\t\tthus no need to worry about triggering callback everywhere\n\t\t\t*/\n\t\t\ttry {\n\t\t\t\tawait searchByGdcInputString_actual(\n\t\t\t\t\tObject.keys(filter0override || {}).length ? filter0override : filter0 || null\n\t\t\t\t)\n\t\t\t} catch (e) {\n\t\t\t\tshow_input_check(gdcid_error_div, e.message || e)\n\t\t\t\tbaminfo_div.style('display', 'none')\n\t\t\t\tssmGeneDiv.style('display', 'none')\n\t\t\t}\n\t\t\trunCallbackAfterUIupdate()\n\t\t}\n\n\t\tasync function searchByGdcInputString_actual(_filter0) {\n\t\t\tconst gdc_id = gdcid_input.property('value').trim()\n\t\t\tif (!gdc_id.length) {\n\t\t\t\tbaminfo_div.style('display', 'none')\n\t\t\t\tsaydiv.selectAll('*').remove()\n\t\t\t\tssmGeneDiv.style('display', 'none')\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// disable input field and show 'loading...' until response returned from gdc api\n\t\t\tgdcid_input.attr('disabled', 1)\n\t\t\tgdc_loading.style('display', '').text('Loading...')\n\n\t\t\tgdc_args.runFlags.runflag_gdcInput = 1\n\n\t\t\tconst body = { gdc_id }\n\t\t\tif (_filter0) body.filter0 = _filter0\n\t\t\tlet data\n\t\t\ttry {\n\t\t\t\tdata = await dofetch3('gdcbam', { body })\n\t\t\t} catch (e) {\n\t\t\t\tthrow e\n\t\t\t} finally {\n\t\t\t\tdelete gdc_args.runFlags.runflag_gdcInput // TEST if deleted when dofetch() throws\n\t\t\t}\n\t\t\t/* data = {\n\t\t\t\tfile_metadata:[]\n\t\t\t\tis_case_id:true\n\t\t\t\tis_case_uuid:true\n\t\t\t\tis_file_uuid:true\n\t\t\t\tis_file_id:true\n\t\t\t\tnumFilesSkippedByWorkflow:int\n\t\t\t}\n\t\t\t*/\n\n\t\t\tgdcid_input.attr('disabled', null) // enable input field\n\t\t\tgdc_loading.style('display', 'none') // hide loading\n\t\t\tgdc_args.bam_files = [] //empty bam_files array after each gdc api call\n\n\t\t\t/////////////////////////////////\n\t\t\t// possible exists before rendering ssm and gene ui\n\n\t\t\tif (data.error) throw 'Error: ' + data.error\n\t\t\tif (!Array.isArray(data.file_metadata)) throw 'Error: .file_metadata[] missing'\n\t\t\tif (data.file_metadata.length == 0) {\n\t\t\t\t// no viewable bam files\n\t\t\t\tif (data.numFilesSkippedByWorkflow) {\n\t\t\t\t\t// there are files skipped due to this reason. the value tells number of files rejected due to this reason\n\t\t\t\t\tthrow `File${data.numFilesSkippedByWorkflow > 1 ? 's' : ''} not viewable due to workflow type.`\n\t\t\t\t}\n\t\t\t\tthrow 'No viewable BAM files found'\n\t\t\t}\n\n\t\t\t// in react wrapper of gdc, session id is available from cookie, if so backend checks user's access to this bam\n\t\t\t// and if no access sets this flag\n\t\t\t// will show the prompt here but will still allow rest of ui to show, just to showcase app's capability\n\t\t\tuserHasNoAccessDiv.style('display', data.userHasNoAccess ? 'block' : 'none')\n\n\t\t\t/* in download mode the client streams the slice straight from the gdc api and never goes through pp\n\t\t\tbackend, thus the backend permission check guarding the visualization mode does not apply. must prevent\n\t\t\tsubmission here, or the api replies 403 and the ui saves that error body as a .bam file\n\t\t\t*/\n\t\t\tblockSubmitForNoAccess = stream2download && !!data.userHasNoAccess\n\t\t\tif (blockSubmitForNoAccess) setSubmitDisabled(true)\n\n\t\t\t/*\n\t\t\tin file_metadata[], each element is a bam file:\n\t\t\t{\n\t\t\t\tcase_id: \"9a2a226e-9605-4214-9320-469305e664e6\"\n\t\t\t\tentity_id: \"TCGA-49-AARQ-11A-21D-A413-08\"\n\t\t\t\texperimental_strategy: \"WXS\"\n\t\t\t\tfile_size: \"10.43 GB\"\n\t\t\t\tfile_uuid: \"f383b776-b162-4c61-909b-3b92d1853511\"\n\t\t\t\ttissue_type: str\n\t\t\t\ttumor_descriptor: str\n\t\t\t}\n\n\t\t\trecord case_id for the found file\n\t\t\tif the array has multiple files, all are from the same case\n\t\t\tso the case_id should be the same for all files\n\t\t\t*/\n\t\t\tgdc_args.case_id = data.file_metadata[0].case_id\n\n\t\t\tif (data.file_metadata.length == 1) {\n\t\t\t\t// has only 1 file\n\t\t\t\tupdate_singlefile_table(data, gdc_id)\n\t\t\t} else {\n\t\t\t\t// 2 or more files\n\t\t\t\tupdate_multifile_table(data.file_metadata)\n\t\t\t}\n\t\t\tshow_input_check(gdcid_error_div)\n\n\t\t\tgdc_args.runFlags.ssmSearch = 1\n\t\t\ttry {\n\t\t\t\tawait makeSsmGeneSearch()\n\t\t\t} catch (e) {\n\t\t\t\tthrow e\n\t\t\t} finally {\n\t\t\t\tdelete gdc_args.runFlags.ssmSearch\n\t\t\t}\n\t\t}\n\t\tfunction update_singlefile_table(data, gdc_id) {\n\t\t\t// will update table display, and also insert element into gdc_args.bam_files[]\n\t\t\tbaminfo_div.style('display', 'block')\n\t\t\tbaminfo_table.style('display', 'block').selectAll('*').remove()\n\t\t\tbamselection_table.style('display', 'none')\n\n\t\t\tconst onebam = data.file_metadata[0]\n\t\t\tconst file = {\n\t\t\t\tfile_id: onebam.file_uuid,\n\t\t\t\ttrack_name: onebam.entity_id, // assign track name as entity_id\n\t\t\t\tabout: []\n\t\t\t}\n\t\t\tgdc_args.bam_files.push(file)\n\n\t\t\tconst table = table2col({ holder: baminfo_table })\n\t\t\tfor (const col of baminfo_cols) {\n\t\t\t\tconst [td1, td2] = table.addRow()\n\t\t\t\ttd1.text(col.title)\n\t\t\t\ttd2.html(\n\t\t\t\t\tcol.url ? `<a href=${col.url}${onebam.file_uuid} target=_blank>${onebam[col.key]}</a>` : onebam[col.key]\n\t\t\t\t)\n\t\t\t\tconst id = file.about.push({ k: col.title, v: onebam[col.key] })\n\t\t\t}\n\t\t\tbaminfo_table.select('input').node()?.focus()\n\t\t}\n\n\t\tfunction update_multifile_table(files) {\n\t\t\tconst columns = baminfo_cols.map(i => {\n\t\t\t\treturn { label: i.title, width: i.width }\n\t\t\t})\n\t\t\tconst rows = []\n\t\t\tfor (const [i, onebam] of files.entries()) {\n\t\t\t\tconst row = []\n\t\t\t\t// address section 508 requirement to have explicit or implicit labels for input elements\n\t\t\t\tconst elemId = onebam.entity_id\n\t\t\t\trow.ariaLabelledBy = elemId\n\t\t\t\tfor (const column of baminfo_cols) {\n\t\t\t\t\tconst value = onebam[column.key]\n\t\t\t\t\tif (column.url) {\n\t\t\t\t\t\trow.push({ html: `<a href=${row.url}${onebam.file_uuid} target=_blank>${value}</a>` })\n\t\t\t\t\t} else if (column.key == 'entity_id') {\n\t\t\t\t\t\trow.push({ value, elemId })\n\t\t\t\t\t} else {\n\t\t\t\t\t\trow.push({ value })\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trows.push(row)\n\t\t\t}\n\n\t\t\tbaminfo_div.style('display', 'block')\n\t\t\tbamselection_table.style('display', 'block').selectAll('*').remove()\n\t\t\tbaminfo_table.style('display', 'none')\n\t\t\trenderTable({\n\t\t\t\trows,\n\t\t\t\tcolumns,\n\t\t\t\tdiv: bamselection_table,\n\t\t\t\tsingleMode: stream2download ? true : false, // if true, display radio to only select 1 for download; otherwise allow to selec >1 for viz\n\t\t\t\tdataTestId: 'sjpp-gdcbam-multiFileTable',\n\t\t\t\tnoButtonCallback: (i, node) => {\n\t\t\t\t\tconst onebam = files[i]\n\n\t\t\t\t\tif (stream2download) {\n\t\t\t\t\t\tgdc_args.bam_files = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfile_id: onebam.file_uuid,\n\t\t\t\t\t\t\t\ttrack_name: `${onebam.tissue_type}, ${onebam.tumor_descriptor}, ${onebam.experimental_strategy}, ${onebam.entity_id}`,\n\t\t\t\t\t\t\t\tabout: baminfo_cols.map(i => {\n\t\t\t\t\t\t\t\t\treturn { k: i.title, v: onebam[i.key] }\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} else {\n\t\t\t\t\t\tif (node.checked) {\n\t\t\t\t\t\t\tgdc_args.bam_files.push({\n\t\t\t\t\t\t\t\tfile_id: onebam.file_uuid,\n\t\t\t\t\t\t\t\ttrack_name: `${onebam.tissue_type}, ${onebam.tumor_descriptor}, ${onebam.experimental_strategy}, ${onebam.entity_id}`,\n\t\t\t\t\t\t\t\tabout: baminfo_cols.map(i => {\n\t\t\t\t\t\t\t\t\treturn { k: i.title, v: onebam[i.key] }\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// remove from array if checkbox unchecked\n\t\t\t\t\t\t\tgdc_args.bam_files = gdc_args.bam_files.filter(f => f.file_id != onebam.file_uuid)\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}\n\t\treturn gdcid_input\n\t}\n\n\tasync function queryCaseFileList(handle, filter0override) {\n\t\tgdc_args.runFlags.runflag_caseFileList = 1\n\t\ttry {\n\t\t\tawait queryCaseFileList_actual(handle, filter0override)\n\t\t} catch (e) {\n\t\t\thandle.text(e.message || e)\n\t\t} finally {\n\t\t\tdelete gdc_args.runFlags.runflag_caseFileList\n\t\t}\n\t\trunCallbackAfterUIupdate()\n\t}\n\n\tasync function queryCaseFileList_actual(handle, filter0override) {\n\t\tconst _filter0 = Object.keys(filter0override || {}).length ? filter0override : filter0 || null\n\t\tconst body = {}\n\t\tif (_filter0) body.filter0 = _filter0\n\t\tconst data = await dofetch3('gdcbam', { body }) // query same route without case_id\n\t\tif (data.error) throw data.error\n\t\t// data = { case2files={}, total=int, loaded=int }\n\t\tif (typeof data.case2files != 'object') throw 'wrong return'\n\n\t\t// \"bam slicing download\" app calls gdc api directly from client here and doesn't go through pp backend. thus it need the rest api host name which is determined by pp backend and diffs based on environments\n\t\tif (!data.restapihost) throw 'data.restapihost is missing'\n\t\tgdc_args.restapihost = data.restapihost\n\n\t\t/*\n\t\tif (data.total < data.loaded) handle.text(`Or, browse ${data.total} BAM files`)\n\t\telse handle.text(`Or, browse first ${data.loaded} BAM files out of ${data.total} total`)\n\t\t*/\n\t\thandle\n\t\t\t.text(`Or, Browse ${data.total} Available BAM Files`)\n\t\t\t.attr('data-testid', 'sjpp-gdcbam-availableBamFileHandleIsReady')\n\n\t\t// count number of bams per assay, allow checkbox to alter true/false for each assay here\n\t\tconst assays = new Map() // k: assay, v: {count:int, checked:bool}\n\t\tfor (const c in data.case2files) {\n\t\t\tfor (const f of data.case2files[c]) {\n\t\t\t\tconst e = f.experimental_strategy\n\t\t\t\tif (!assays.has(e)) {\n\t\t\t\t\tassays.set(e, { count: 1, checked: true })\n\t\t\t\t} else {\n\t\t\t\t\tassays.get(e).count += 1\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet lastTabbedTime = Date.now()\n\n\t\thandle\n\t\t\t.classed('sja_clbtext', true) // not to override the class name used for testing\n\t\t\t.attr('tabindex', 0)\n\t\t\t.on('keyup', event => {\n\t\t\t\tif (event.key == 'Enter') {\n\t\t\t\t\tevent.target.click()\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('click', event => {\n\t\t\t\ttip.clear().showunder(event.target)\n\t\t\t\t{\n\t\t\t\t\t// show checkboxes for assays\n\t\t\t\t\tconst row = tip.d.append('div').style('margin', '10px')\n\t\t\t\t\tfor (const [k, o] of assays) {\n\t\t\t\t\t\tmake_one_checkbox({\n\t\t\t\t\t\t\tholder: row,\n\t\t\t\t\t\t\tlabeltext: `${k}, ${o.count}`,\n\t\t\t\t\t\t\tdivstyle: { display: 'inline', 'margin-right': '15px' },\n\t\t\t\t\t\t\tchecked: o.checked,\n\t\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\t\to.checked = !o.checked\n\t\t\t\t\t\t\t\tmakeTable(tableDiv)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\trow\n\t\t\t\t\t\t.select('input')\n\t\t\t\t\t\t.on('keydown', event => {\n\t\t\t\t\t\t\tif (event.key == 'Tab' && event.shiftKey) lastTabbedTime = Date.now()\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.on('blur', () => {\n\t\t\t\t\t\t\tif (Date.now() - lastTabbedTime > 500) return\n\t\t\t\t\t\t\thandle.node().focus()\n\t\t\t\t\t\t\ttip.hide()\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.node()\n\t\t\t\t\t\t.focus()\n\t\t\t\t}\n\t\t\t\tconst tableDiv = tip.d.append('div')\n\t\t\t\tmakeTable(tableDiv)\n\t\t\t})\n\n\t\t// create new table to show list of available cases and bams, based on scoped things (data, assays), allow to click a bam and feed into main ui; skip bams with assay types that are unchecked\n\t\tfunction makeTable(tableDiv) {\n\t\t\ttableDiv.selectAll('*').remove()\n\t\t\tconst rows = []\n\t\t\tfor (const caseName in data.case2files) {\n\t\t\t\t// get the list of visible bam files passed assay filter\n\t\t\t\tconst files = data.case2files[caseName].filter(f => assays.get(f.experimental_strategy).checked)\n\t\t\t\tif (files.length == 0) continue // no files for this case due to assay filtering. do not show row\n\t\t\t\tfor (const f of files) {\n\t\t\t\t\t// f { tissue_type, tumor_descriptor, experimental_strategy, file_size, file_uuid }\n\t\t\t\t\trows.push([\n\t\t\t\t\t\t{ value: caseName, data: f },\n\t\t\t\t\t\t{ value: f.tissue_type },\n\t\t\t\t\t\t{ value: f.tumor_descriptor },\n\t\t\t\t\t\t{ value: f.experimental_strategy },\n\t\t\t\t\t\t{ value: f.file_size }\n\t\t\t\t\t])\n\t\t\t\t}\n\t\t\t}\n\t\t\trenderTable({\n\t\t\t\trows,\n\t\t\t\tcolumns: [\n\t\t\t\t\t{ label: 'Case', sortable: true },\n\t\t\t\t\t{ label: 'Tissue Type', sortable: true },\n\t\t\t\t\t{ label: 'Tumor Descriptor', sortable: true },\n\t\t\t\t\t{ label: 'Assay', sortable: true },\n\t\t\t\t\t{ label: 'File Size' } // barplot doesn't handle well size data range from mb to gb\n\t\t\t\t],\n\t\t\t\theader: { allowSort: true },\n\t\t\t\tdiv: tableDiv,\n\t\t\t\tnoButtonCallback: (i, node) => {\n\t\t\t\t\ttip.hide()\n\t\t\t\t\tgdcid_input.property('value', rows[i][0].data.file_uuid).node().dispatchEvent(new Event('search'))\n\t\t\t\t},\n\t\t\t\tsingleMode: true,\n\t\t\t\tdataTestId: 'sjpp-gdcbam-orBrowseFileTable'\n\t\t\t})\n\t\t\t//table.select('.sja_clbtext')?.node()?.focus() // auto focus on the first bam file\n\t\t}\n\t}\n\n\t// this is called after a file/case is found\n\t// case id is at gdc_args.case_id\n\t// query ssm associated with the case, show ssm/gene toggle ui\n\tasync function makeSsmGeneSearch() {\n\t\tdelete gdc_args.ssmInput // delete previous search result\n\t\tssmGeneDiv\n\t\t\t.style('display', 'block') // turn holder visible\n\t\t\t.selectAll('*')\n\t\t\t.remove() // clear holder, including ssm from previous case\n\n\t\tconst mutationMsgDiv = ssmGeneDiv.append('p').text('Searching for mutations...')\n\n\t\tconst data = await dofetch3('termdb/singleSampleMutation', {\n\t\t\tbody: {\n\t\t\t\t/* knowing that the query id is already case uuid, this prefix signals this to backend gdc code and thus no need for backend to sniff out if is case or sample id, which requires complete cache\n\t\t\t\tuse non-alphabetic characters so no need to worry about lower/upper case\n\t\t\t\tthis helps when backend caseid caching is incomplete, or truncated on dev machines\n\t\t\t\tthis is harmless and do not impact non-gdc code\n\t\t\t\t*/\n\t\t\t\tsample: '___' + gdc_args.case_id,\n\t\t\t\tgenome: gdc_genome,\n\t\t\t\tdslabel: gdcDslabel\n\t\t\t}\n\t\t})\n\t\tif (data.error) throw data.error\n\n\t\t// future: show this data with block or disco\n\n\t\tconst ssmLst = data.mlst.filter(m => m.dt == 1) // for now filter to only ssm, exclude cnv\n\n\t\tif (ssmLst.length == 0) {\n\t\t\tmutationMsgDiv.text('No mutations from this case.')\n\n\t\t\tif (stream2download) {\n\t\t\t\t// still show tab with 2 options\n\t\t\t\tconst tabs = [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Gene or position',\n\t\t\t\t\t\ttestid: 'sjpp-gdcbam-afterfindingcasetab-geneorpos',\n\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\tgdc_args.useSsmOrGene = 'gene'\n\t\t\t\t\t\t\t// under Gene or position tab, only enable submit button when coordInput provided\n\t\t\t\t\t\t\tsetSubmitDisabled(!gdc_args.coordInput?.chr)\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Unmapped reads',\n\t\t\t\t\t\ttestid: 'sjpp-gdcbam-afterfindingcasetab-unmapped',\n\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\tgdc_args.useSsmOrGene = 'unmapped'\n\t\t\t\t\t\t\t// under Unmapped reads tab, should always eanble submit button\n\t\t\t\t\t\t\tsetSubmitDisabled(false)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t\tnew Tabs({ holder: ssmGeneDiv, tabs }).main()\n\t\t\t\tawait temp_renderGeneSearch(tabs[0].contentHolder)\n\t\t\t\ttabs[1].contentHolder.append('p').text('Only download unmapped reads from this BAM file.')\n\t\t\t} else {\n\t\t\t\t// no tab. just gene search\n\t\t\t\tawait temp_renderGeneSearch(ssmGeneDiv.append('div'))\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\t// found ssms\n\t\tmutationMsgDiv.remove()\n\t\t// display toggle between ssm list and gene search\n\t\tconst tabs = [\n\t\t\t{\n\t\t\t\tlabel: `${ssmLst.length} mutations${data.dt2total?.[0] ? ' (' + data.dt2total[0].total + ' total)' : ''}`,\n\t\t\t\ttestid: 'sjpp-gdcbam-afterfindingcasetab-ssm',\n\t\t\t\tcallback: () => {\n\t\t\t\t\tgdc_args.useSsmOrGene = 'ssm'\n\t\t\t\t\t// Under variants tab, only enable submit button when ssmInput provided\n\t\t\t\t\tsetSubmitDisabled(!gdc_args.ssmInput?.chr)\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Gene or position',\n\t\t\t\ttestid: 'sjpp-gdcbam-afterfindingcasetab-geneorpos',\n\t\t\t\tcallback: () => {\n\t\t\t\t\tgdc_args.useSsmOrGene = 'gene'\n\t\t\t\t\t// Under Gene or position tab, only enable submit button when coordInput provided\n\t\t\t\t\tsetSubmitDisabled(!gdc_args.coordInput?.chr)\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\n\t\tif (stream2download) {\n\t\t\ttabs.push({\n\t\t\t\tlabel: 'Unmapped reads',\n\t\t\t\ttestid: 'sjpp-gdcbam-afterfindingcasetab-unmapped',\n\t\t\t\tcallback: () => {\n\t\t\t\t\tgdc_args.useSsmOrGene = 'unmapped'\n\t\t\t\t\t// under Unmapped reads tab, should always eanble submit button\n\t\t\t\t\tsetSubmitDisabled(false)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tnew Tabs({ holder: ssmGeneDiv, tabs }).main()\n\n\t\ttemp_renderSsmList(tabs[0].contentHolder, ssmLst)\n\t\tawait temp_renderGeneSearch(tabs[1].contentHolder)\n\t\tif (tabs[2]) tabs[2].contentHolder.append('p').text('Only download unmapped reads from this BAM file.')\n\t}\n\n\t// TODO new tabs ssm/cnv/fusion/disco, click an item from any tab to optionally launch block view of and narrow down region; also\n\tfunction temp_renderSsmList(div, mlst) {\n\t\tconst gene2mlst = new Map() // group by gene\n\t\tfor (const m of mlst) {\n\t\t\tif (!gene2mlst.has(m.gene)) gene2mlst.set(m.gene, [])\n\t\t\tgene2mlst.get(m.gene).push(m)\n\t\t}\n\t\tconst rows = []\n\t\tfor (const [gene, mlst] of gene2mlst) {\n\t\t\tfor (const m of mlst) {\n\t\t\t\tconst row = []\n\t\t\t\t// address section 508 requirement to have explicit or implicit labels for input elements\n\t\t\t\tconst elemId = `${gene}-${m.mname}`.replace(/\\W+/g, '_')\n\t\t\t\trow.ariaLabelledBy = elemId\n\t\t\t\trow.push({ value: gene, data: m })\n\t\t\t\trow.push({ value: m.mname, elemId })\n\t\t\t\trow.push({ value: mclass[m.class]?.label || 'Unknown' })\n\t\t\t\trow.push({ value: m.chr + ':' + m.pos + ' ' + m.ref + '>' + m.alt })\n\t\t\t\trows.push(row)\n\t\t\t}\n\t\t}\n\t\trenderTable({\n\t\t\trows,\n\t\t\tcolumns: ssmTableColumns,\n\t\t\theader: { allowSort: true },\n\t\t\tdiv,\n\t\t\tnoButtonCallback: (i, node) => {\n\t\t\t\tconst m = rows[i][0].data\n\t\t\t\tgdc_args.ssmInput = {\n\t\t\t\t\tchr: m.chr,\n\t\t\t\t\tpos: m.pos - 1, // convert 1-based to 0-based\n\t\t\t\t\tref: m.ref,\n\t\t\t\t\talt: m.alt\n\t\t\t\t}\n\t\t\t\tsetSubmitDisabled(false)\n\t\t\t},\n\t\t\tdataTestId: 'sjpp-gdcbam-ssmTable',\n\t\t\tsingleMode: true\n\t\t})\n\n\t\tif (urlp.has('gdc_ssm')) {\n\t\t\t// a quick fix. update later when table accepts array index of item selected by default\n\t\t\tfor (const [gene, mlst] of gene2mlst) {\n\t\t\t\tfor (const m of mlst) {\n\t\t\t\t\t// should send array index of selected item to renderTable() to auto check radio button\n\t\t\t\t\tif (m.mname == urlp.get('gdc_ssm')) {\n\t\t\t\t\t\tgdc_args.ssmInput = {\n\t\t\t\t\t\t\tchr: m.chr,\n\t\t\t\t\t\t\tpos: m.pos - 1, // convert 1-based to 0-based\n\t\t\t\t\t\t\tref: m.ref,\n\t\t\t\t\t\t\talt: m.alt\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetSubmitDisabled(false)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiv.select('input').node().focus()\n\t}\n\tasync function temp_renderGeneSearch(div) {\n\t\tconst geneSearchRow = div.append('div').style('display', 'grid').style('grid-template-columns', '300px auto')\n\t\tgeneSearchRow.append('div').text('Enter gene, position, SNP, or variant')\n\n\t\t// create gene search box\n\t\tgdc_args.coordInput = addGeneSearchbox(await makeArg_geneSearchbox(geneSearchRow))\n\n\t\tgeneSearchInstruction(div)\n\t}\n\n\tasync function makeArg_geneSearchbox(div) {\n\t\tconst opt = {\n\t\t\tgenome,\n\t\t\ttip,\n\t\t\trow: div.append('div'),\n\t\t\tallowVariant: true,\n\t\t\t// after getting valid result from geneSearchbox, enable submit button\n\t\t\tcallback: () => setSubmitDisabled(false)\n\t\t}\n\t\tif (urlp.has('gdc_pos')) {\n\t\t\tconst t = urlp.get('gdc_pos').split(/[:\\-]/)\n\t\t\tif (t.length == 3) {\n\t\t\t\topt.defaultCoord = {\n\t\t\t\t\tchr: t[0],\n\t\t\t\t\tstart: Number(t[1]),\n\t\t\t\t\tstop: Number(t[2])\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (urlp.has('gdc_var')) {\n\t\t\tconst variant = await string2variant(urlp.get('gdc_var'), genome)\n\t\t\tif (variant) {\n\t\t\t\topt.defaultCoord = variant\n\t\t\t}\n\t\t}\n\t\treturn opt\n\t}\n\n\tfunction makeSubmitAndNoPermissionDiv() {\n\t\tconst div = formdiv.append('div')\n\n\t\t// 1st <td> with submit button\n\t\tconst submitButton = div\n\t\t\t.insert('div')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.append('button')\n\t\t\t.attr('data-testid', 'sjpp-gdcbam-submitBtn')\n\t\t\t.style('margin', '20px 20px 20px 40px')\n\t\t\t.style('padding', '10px 25px')\n\t\t\t.style('border-radius', '35px')\n\t\t\t.text('Submit')\n\t\t\t//submit button should be disabled when first created, enabled after a case/file\n\t\t\t//selected and variant/postion/unmapped selected\n\t\t\t.attr('disabled', true)\n\t\t\t.on('click', async () => {\n\t\t\t\tif (JSON.parse(sessionStorage.getItem('optionalFeatures')).gdcBamDemoMode) {\n\t\t\t\t\tlaunchDemoMode() // in demo mode, do not validate arg and will run with non-gdc data\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tsaydiv.selectAll('*').remove()\n\t\t\t\t\tvalidateInputs(gdc_args, genome, hideTokenInput)\n\t\t\t\t\tsubmitButton.text('Loading ...')\n\t\t\t\t\tsetSubmitDisabled(true)\n\t\t\t\t\tawait sliceBamAndRender()\n\t\t\t\t} catch (e) {\n\t\t\t\t\tif (e == 'Permission denied') {\n\t\t\t\t\t\t// backend throws {error:'Permission denied'} to signal the display of this alert\n\t\t\t\t\t\tnoPermissionDiv.style('display', 'inline-block')\n\t\t\t\t\t\tsubmitButton.style('display', 'none')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsaydiv.selectAll('*').remove()\n\t\t\t\t\t\tsayerror(saydiv, e)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// turn submit button back to active so ui can be reused later\n\t\t\t\tsubmitButton.text('Submit')\n\t\t\t\tsetSubmitDisabled(false)\n\t\t\t})\n\n\t\t// 2nd <td> as notification holder\n\t\tconst saydiv = div.insert('div').style('display', 'inline-block')\n\t\tconst noPermissionDiv = div.insert('div').style('display', 'none').style('margin', '20px')\n\t\tnoPermissionDiv.append('div').text('Access Alert').style('font-size', '1.5em').style('opacity', 0.4)\n\t\tnoPermissionDiv\n\t\t\t.append('div')\n\t\t\t.style('border-top', 'solid 1px #eee')\n\t\t\t.style('border-bottom', 'solid 1px #eee')\n\t\t\t.style('padding', '20px 0px')\n\t\t\t.style('margin-top', '5px')\n\t\t\t.html(noPermissionMessage)\n\t\treturn [submitButton, saydiv, noPermissionDiv]\n\t}\n\n\tasync function sliceBamAndRender() {\n\t\tconst args = gdc_args\n\n\t\t// create arg for block init\n\t\tconst par = {\n\t\t\tnobox: 1,\n\t\t\tgenome,\n\t\t\tholder: blockHolder,\n\t\t\tdebugmode\n\t\t}\n\n\t\tif (args.useSsmOrGene == 'unmapped') {\n\t\t\t/* when this option is in use, app must be running in \"download mode\"\n\t\t\teven if par is block param, it's fine to skip chr/start/stop on it\n\t\t\tas later it will not reach visualization step and will not instantiate a block\n\t\t\t*/\n\t\t\tpar.unmapped = 1\n\t\t} else {\n\t\t\tif (args.position) {\n\t\t\t\tpar.chr = args.position.chr\n\t\t\t\tpar.start = args.position.start\n\t\t\t\tpar.stop = args.position.stop\n\t\t\t} else if (args.variant) {\n\t\t\t\tpar.chr = args.variant.chr\n\t\t\t\tpar.start = args.variant.pos - variantFlankingSize\n\t\t\t\tpar.stop = args.variant.pos + variantFlankingSize\n\t\t\t} else {\n\t\t\t\tthrow 'SV_EXPAND here'\n\t\t\t}\n\t\t}\n\n\t\tconst headers = { 'Content-Type': 'application/json', Accept: 'application/json' }\n\t\tif (args.gdc_token) {\n\t\t\theaders['X-Auth-Token'] = args.gdc_token\n\t\t}\n\n\t\t//////////////////////////////////////////////\n\t\t//\n\t\t// call backend to slice bam and write to cache file\n\t\t//\n\t\t//////////////////////////////////////////////\n\t\tfor (const [idx, file] of args.bam_files.entries()) {\n\t\t\t// file = {file_id,track_name,about[]}\n\n\t\t\tsubmitButton.text(`Slicing BAM File ${idx + 1} of ${args.bam_files.length}...`)\n\n\t\t\t// translate par{} into request body\n\t\t\tconst body = {\n\t\t\t\tdownloadgdc: 1,\n\t\t\t\tgdcFileUUID: file.file_id\n\t\t\t}\n\n\t\t\tif (par.unmapped) {\n\t\t\t\tbody.gdcFilePosition = 'unmapped'\n\t\t\t\tbody.unmapped = 1\n\t\t\t} else {\n\t\t\t\tbody.gdcFilePosition = par.chr + ':' + par.start + '-' + par.stop\n\t\t\t\t// SV_EXPAND\n\t\t\t\tbody.rglst = [{ chr: par.chr, start: par.start, stop: par.stop }]\n\t\t\t}\n\n\t\t\tif (stream2download) {\n\t\t\t\t/* detour: slice is streamed to client directly from gdc api and does not go through pp backend.\n\t\t\t\tthus the backend permission check done for the visualization mode does not apply here, and the\n\t\t\t\tapi response must be verified before it is saved to a file\n\t\t\t\t*/\n\n\t\t\t\t// cookie is domain based and will be automatically passed on all requests\n\t\t\t\t// do not reuse headers{}: response is binary and must not ask for Accept: application/json\n\t\t\t\tconst dlHeaders = args.gdc_token ? { 'X-Auth-Token': args.gdc_token } : {}\n\n\t\t\t\tconst url = `${gdc_args.restapihost}/slicing/view/${file.file_id}?region=${body.gdcFilePosition}`\n\t\t\t\tconst response = await fetch(url, { method: 'GET', headers: dlHeaders })\n\n\t\t\t\t/* fetch() does not reject on 4xx/5xx. without these checks the json error body from the api\n\t\t\t\t(e.g. the \"not authorized to download\" message on 403) is saved to a file named .bam\n\t\t\t\t*/\n\t\t\t\tif (!response.ok) {\n\t\t\t\t\t// signals makeSubmitAndNoPermissionDiv() to display the Access Alert\n\t\t\t\t\tif (response.status == 401 || response.status == 403) throw 'Permission denied'\n\t\t\t\t\tthrow (await getApiErrMsg(response)) || `GDC API error ${response.status}`\n\t\t\t\t}\n\t\t\t\tif ((response.headers.get('content-type') || '').includes('application/json')) {\n\t\t\t\t\t// status is ok but api replied with a message rather than binary data\n\t\t\t\t\tthrow (await getApiErrMsg(response)) || 'GDC API did not return BAM data'\n\t\t\t\t}\n\n\t\t\t\tconst data = await response.blob()\n\t\t\t\t// download the file to client\n\t\t\t\tconst a = document.createElement('a')\n\t\t\t\ta.href = URL.createObjectURL(data)\n\t\t\t\tif (par.unmapped) {\n\t\t\t\t\ta.download = file.track_name + '.unmapped.bam'\n\t\t\t\t} else {\n\t\t\t\t\ta.download = `${file.track_name}.${par.chr}.${par.start}.${par.stop}.bam`\n\t\t\t\t}\n\t\t\t\ta.style.display = 'none'\n\t\t\t\tdocument.body.appendChild(a)\n\t\t\t\ta.click()\n\t\t\t\tdocument.body.removeChild(a)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst fileStat = await dofetch3('tkbam', { headers, body }) // stat about the cached gdc bam slice file\n\t\t\tif (fileStat.error) throw fileStat.error\n\n\t\t\t// when clicking \"Back To\" button and resubmit another region, the same file info will be reused and must avoid inserting duplicating entries here\n\t\t\t{\n\t\t\t\tconst i = file.about.find(i => i.k == 'Slice file size')\n\t\t\t\tif (i) i.v = fileStat.size\n\t\t\t\telse file.about.push({ k: 'Slice file size', v: fileStat.size })\n\t\t\t}\n\t\t\tif (fileStat.time) {\n\t\t\t\tconst i = file.about.find(i => i.k == 'Stream time')\n\t\t\t\tif (i) i.v = Math.round(fileStat.time) + ' seconds'\n\t\t\t\telse file.about.push({ k: 'Stream time', v: Math.round(fileStat.time) + ' seconds' })\n\t\t\t}\n\t\t\tif (fileStat.truncated) {\n\t\t\t\t// insert entry if not found\n\t\t\t\tif (!file.about.find(i => i.k == 'Truncated'))\n\t\t\t\t\tfile.about.push({ k: 'Truncated', v: 'BAM slice size exceeds limit and is truncated' })\n\t\t\t} else {\n\t\t\t\t// delete entry if found\n\t\t\t\tconst i = file.about.findIndex(i => i.k == 'Truncated')\n\t\t\t\tif (i > 0) file.about.splice(i, 1)\n\t\t\t}\n\t\t}\n\n\t\tformdiv.style('display', 'none')\n\t\tbackBtnDiv.style('display', 'block')\n\t\tblockHolder.style('display', 'block')\n\n\t\t//////////////////////////////////////////////\n\t\t//\n\t\t// file slices are cached. launch block\n\t\t//\n\t\t//////////////////////////////////////////////\n\t\tpar.tklst = []\n\t\tfor (const file of args.bam_files) {\n\t\t\tconst tk = {\n\t\t\t\ttype: 'bam',\n\t\t\t\tname: file.track_name || 'Sample BAM slice',\n\t\t\t\tgdcToken: args.gdc_token,\n\t\t\t\tgdcFile: {\n\t\t\t\t\tuuid: file.file_id,\n\t\t\t\t\t// SV_EXPAND\n\t\t\t\t\t// tk remembers position for which slice is requested. this position is sent to backend to make the hashed cache file name persistent; must compose string consistently as chr:start-stop; using different separator will result in different hash\n\t\t\t\t\tposition: par.chr + ':' + par.start + '-' + par.stop\n\t\t\t\t},\n\t\t\t\taboutThisFile: file.about\n\t\t\t}\n\t\t\tif (args.variant) {\n\t\t\t\ttk.variants = [args.variant]\n\t\t\t}\n\t\t\tpar.tklst.push(tk)\n\t\t}\n\t\tfirst_genetrack_tolist(genome, par.tklst)\n\t\tconst _ = await import('../src/block')\n\t\tnew _.Block(par)\n\t}\n\n\tasync function launchDemoMode() {\n\t\tformdiv.style('display', 'none')\n\t\tbackBtnDiv.style('display', 'block')\n\t\tblockHolder.style('display', 'block')\n\t\tblockHolder\n\t\t\t.append('div')\n\t\t\t.style('margin', '25px')\n\t\t\t.style('font-weight', 'bold')\n\t\t\t.text('Running in demo mode and showing non-GDC data.')\n\t\t// create arg for block init\n\t\tconst hg19 = genomes.hg19 // use hg19 since demo file is hg19-based. intentionally not using hg38 file since demo only works on local where hg19 file is present, also signifies it's not using gdc hg38-based data\n\t\tconst par = {\n\t\t\tnobox: 1,\n\t\t\tgenome: hg19,\n\t\t\tholder: blockHolder,\n\t\t\tdebugmode,\n\t\t\tchr: 'chr17',\n\t\t\tstart: 7578191,\n\t\t\tstop: 7578591,\n\t\t\ttklst: [\n\t\t\t\t{\n\t\t\t\t\ttype: 'bam',\n\t\t\t\t\tname: 'Demo BAM Track',\n\t\t\t\t\t// can switch to other examples\n\t\t\t\t\tfile: 'proteinpaint_demo/hg19/bam/TP53_del.bam',\n\t\t\t\t\tvariants: [{ chr: 'chr17', pos: 7578382, ref: 'AGCAGCGCTCATGGTGGGG', alt: 'A' }]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t\tfirst_genetrack_tolist(hg19, par.tklst)\n\t\t// pretend the gene track is gencode (which gdc uses, and only show two p53 isoforms)\n\t\tpar.tklst[1].name = 'GENCODE'\n\t\tpar.tklst[1].filterByName = `NM_000546\n\t\tNM_001126115`\n\t\tconst _ = await import('../src/block')\n\t\tnew _.Block(par)\n\t}\n\n\treturn publicApi\n}\n\nfunction geneSearchInstruction(d) {\n\td.append('div').style('opacity', 0.7).html(`<ul>\n\t\t<li>Enter gene, position, SNP, or variant.\n\t\tThe BAM file will be sliced at the given position and visualized.</li>\n\t\t<li>\n\t\t\t<span>Position</span>\n\t\t\t<ul><li>Example: chr17:7676339-7676767</li>\n\t\t\t <li>Coordinates are hg38 and 1-based.</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>SNP example: rs28934574</li>\n\t\t<li>\n\t\t\t<span>Variant:</span>\n\t\t\t<ul>\n\t\t\t <li>Example: chr2.208248388.C.T</li>\n\t\t\t <li>Fields are separated by periods. Coordinate is hg38 and 1-based. Reference and alternative alleles are on forward strand.</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<span>Supported HGVS formats for variants:</span>\n\t\t\t<ul>\n\t\t\t <li>SNV: chr2:g.208248388C>T</li>\n\t\t\t <li>MNV: chr2:g.119955155_119955159delinsTTTTT</li>\n\t\t\t <li>Insertion: chr5:g.171410539_171410540insTCTG</li>\n\t\t\t <li>Deletion: chr10:g.8073734delTTTAGA</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t</ul>`)\n}\n\n/* extract the human readable message out of a failed gdc api response\nreturns falsy when body is not json or carries no message, so caller can fall back to a status-based message\n*/\nasync function getApiErrMsg(response) {\n\ttry {\n\t\tconst j = await response.json()\n\t\treturn j.message || j.error\n\t} catch (e) {\n\t\t// body is not json\n\t\treturn null\n\t}\n}\n\nfunction show_input_check(holder, error_msg) {\n\t// if error_msg was supplied it will appear as red next to input field\n\t// if error_msg is not supplied, check mark will appear next to field after entering value\n\tholder\n\t\t.style('display', 'inline-block')\n\t\t.style('color', error_msg ? 'red' : 'green')\n\t\t.html(error_msg ? '&#10060; ' + error_msg : '&#10003;')\n}\n\nfunction validateInputs(args, genome, hideTokenInput = false) {\n\tif (!hideTokenInput) {\n\t\tif (!args.gdc_token) throw 'GDC token missing'\n\t\tif (typeof args.gdc_token !== 'string') throw 'GDC token is not string'\n\t}\n\tif (!args.bam_files.length) throw 'No BAM file selected'\n\tfor (const file of args.bam_files) {\n\t\tif (!file.file_id) throw 'file uuid is missing'\n\t\tif (typeof file.file_id !== 'string') throw 'file uuid is not string'\n\t}\n\n\tif (args.useSsmOrGene == 'unmapped') {\n\t\t// do not supply a new attribute\n\t\treturn\n\t}\n\n\t/* if selecting one ssm from ssm table, args.variant{} is created\n\t if searched variant string in <input>, args.variant{} is created\n\t if searched position in <input>, args.position is created\n\t at bam slicing request, it will use args.position or args.variant, whichever is present\n\t thus must delete any previous setting\n\t*/\n\tdelete args.position\n\tdelete args.variant\n\n\tif (args.useSsmOrGene == 'ssm') {\n\t\tconst s = args.ssmInput\n\t\tif (!s) throw 'No variant selected'\n\t\tif (!s.chr) throw 'ssmInput.chr missing'\n\t\tif (!Number.isInteger(s.pos)) throw 'ssmInput.pos not integer'\n\t\tif (!s.ref) throw 'ssmInput.ref missing'\n\t\tif (!s.alt) throw 'ssmInput.alt missing'\n\t\targs.variant = s\n\t\treturn\n\t}\n\t// using coordInput\n\tconst ci = args.coordInput\n\tif (!ci.chr) throw 'No valid position or variant was entered'\n\tconst [nocount, hascount] = contigNameNoChr2(genome, [ci.chr])\n\tif (nocount + hascount == 0) throw 'Invalid chromosome name: ' + ci.chr\n\tconst chr = nocount ? 'chr' + ci.chr : ci.chr\n\tif (Number.isInteger(ci.pos)) {\n\t\t// is variant\n\t\tif (!ci.ref) throw 'Reference allele missing from variant string'\n\t\tif (!ci.alt) throw 'Alternative allele missing from variant string'\n\t\targs.variant = {\n\t\t\tchr,\n\t\t\tpos: ci.pos - 1, // convert 1-based to 0-based\n\t\t\tref: ci.ref,\n\t\t\talt: ci.alt\n\t\t}\n\t} else {\n\t\t// is range\n\t\tif (!Number.isInteger(ci.start) || !Number.isInteger(ci.stop)) throw 'non-integer start/stop'\n\t\targs.position = {\n\t\t\tchr,\n\t\t\tstart: ci.start,\n\t\t\tstop: ci.stop\n\t\t}\n\t}\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["event", "gdcid_input", "i", "tabs", "mlst", "submitButton", "saydiv", "noPermissionDiv"]
7
+ }
@@ -0,0 +1,38 @@
1
+ import {
2
+ Barchart,
3
+ barInit,
4
+ componentInit,
5
+ getDefaultBarSettings,
6
+ getPlotConfig,
7
+ negateTermLabel
8
+ } from "./chunk-WD7FZ5EE.js";
9
+ import "./chunk-HJ6L54YS.js";
10
+ import "./chunk-WXSMUSU7.js";
11
+ import "./chunk-CNFTQSNE.js";
12
+ import "./chunk-RIHO7ZD5.js";
13
+ import "./chunk-TVJOSRCH.js";
14
+ import "./chunk-3CIL7KH7.js";
15
+ import "./chunk-T4XPCSLP.js";
16
+ import "./chunk-4TJO2DGU.js";
17
+ import "./chunk-W5J3LTYS.js";
18
+ import "./chunk-MHWYRNGA.js";
19
+ import "./chunk-JHLF2ZC2.js";
20
+ import "./chunk-WJLRU5OF.js";
21
+ import "./chunk-HBNB5TRH.js";
22
+ import "./chunk-PF4DSFDR.js";
23
+ import "./chunk-4OLM3KSB.js";
24
+ import "./chunk-PWYMHUXY.js";
25
+ import "./chunk-TLT4YIG3.js";
26
+ import "./chunk-5R63Q5KH.js";
27
+ import "./chunk-I6Y4O3RR.js";
28
+ import "./chunk-Q5RDQNIT.js";
29
+ import "./chunk-HS5PO5ZQ.js";
30
+ export {
31
+ Barchart,
32
+ barInit,
33
+ componentInit,
34
+ getDefaultBarSettings,
35
+ getPlotConfig,
36
+ negateTermLabel
37
+ };
38
+ //# sourceMappingURL=barchart-CJR37234.js.map
@@ -0,0 +1,305 @@
1
+ import {
2
+ ABBREV_COHORT,
3
+ FULL_COHORT,
4
+ getDefaultProfilePlotSettings,
5
+ getProfilePlotConfig,
6
+ profilePlot
7
+ } from "./chunk-KPXCXBNU.js";
8
+ import {
9
+ fillTwLst
10
+ } from "./chunk-WD7FZ5EE.js";
11
+ import "./chunk-HJ6L54YS.js";
12
+ import "./chunk-WXSMUSU7.js";
13
+ import "./chunk-CNFTQSNE.js";
14
+ import "./chunk-RIHO7ZD5.js";
15
+ import "./chunk-TVJOSRCH.js";
16
+ import "./chunk-3CIL7KH7.js";
17
+ import "./chunk-T4XPCSLP.js";
18
+ import {
19
+ dofetch3
20
+ } from "./chunk-4TJO2DGU.js";
21
+ import "./chunk-W5J3LTYS.js";
22
+ import "./chunk-MHWYRNGA.js";
23
+ import "./chunk-JHLF2ZC2.js";
24
+ import {
25
+ axisTop
26
+ } from "./chunk-WJLRU5OF.js";
27
+ import {
28
+ copyMerge,
29
+ getCompInit
30
+ } from "./chunk-HBNB5TRH.js";
31
+ import "./chunk-PF4DSFDR.js";
32
+ import {
33
+ linear
34
+ } from "./chunk-4OLM3KSB.js";
35
+ import "./chunk-PWYMHUXY.js";
36
+ import "./chunk-TLT4YIG3.js";
37
+ import "./chunk-5R63Q5KH.js";
38
+ import "./chunk-I6Y4O3RR.js";
39
+ import "./chunk-Q5RDQNIT.js";
40
+ import "./chunk-HS5PO5ZQ.js";
41
+
42
+ // plots/profile/barchart2.ts
43
+ var stepx = 500;
44
+ var barwidth = 400;
45
+ var ProfileBarchart2 = class extends profilePlot {
46
+ constructor(opts) {
47
+ super(opts, "profileBarchart2");
48
+ this.rowCount = 0;
49
+ this.additionalInputs = [];
50
+ }
51
+ static {
52
+ this.type = "profileBarchart2";
53
+ }
54
+ async init(appState) {
55
+ await super.init(appState);
56
+ const config = appState.plots.find((p) => p.id === this.id);
57
+ this.componentNames = config.plotByComponent.map((elem) => ({
58
+ value: elem.profileComponent.name,
59
+ label: elem.profileComponent.name
60
+ }));
61
+ const profileComponentInput = {
62
+ label: "Component",
63
+ type: "dropdown",
64
+ chartType: "profileBarchart2",
65
+ options: this.componentNames,
66
+ settingsKey: "profileComponent",
67
+ callback: (value) => this.setProfileComponent(value)
68
+ };
69
+ this.additionalInputs.push(profileComponentInput);
70
+ }
71
+ setProfileComponent(value) {
72
+ this.settings.profileComponent = value;
73
+ this.app.dispatch({ type: "plot_edit", id: this.id, config: this.config });
74
+ }
75
+ async main() {
76
+ this.dom.loadingDiv.style("display", "");
77
+ try {
78
+ await super.main();
79
+ this.configProfileComponent = this.config.plotByComponent.find((comp) => comp.profileComponent.name == this.settings.profileComponent) || this.config.plotByComponent[0];
80
+ this.rowCount = 0;
81
+ this.scoreTerms = [];
82
+ for (const group of this.configProfileComponent.groups)
83
+ for (const row of group.rows) {
84
+ this.rowCount++;
85
+ if (row.term1) this.scoreTerms.push(row.term1);
86
+ if (row.term2) this.scoreTerms.push(row.term2);
87
+ }
88
+ await this.setControls(this.additionalInputs);
89
+ this.profileComponent = this.settings.profileComponent || this.componentNames[0].value;
90
+ this.plot();
91
+ } catch (e) {
92
+ console.error(e);
93
+ throw `${e} [profileBarchart2 main()]`;
94
+ } finally {
95
+ this.dom.loadingDiv.style("display", "none");
96
+ }
97
+ }
98
+ /**
99
+ * Override setControls() to fetch data from the dedicated barchart2 route.
100
+ * The base class setControls() builds filter UI and sets this.filter but
101
+ * skips the data fetch for profileBarchart2 (see profilePlot.ts).
102
+ * This method calls termdb/profileBarchart2Scores, which derives the facility
103
+ * term server-side and returns aggregated (median) percentages.
104
+ */
105
+ async setControls(additionalInputs = []) {
106
+ await super.setControls(additionalInputs);
107
+ this.data = await this.fetchAggregatedScores();
108
+ if (this.data && "error" in this.data) throw this.data.error;
109
+ }
110
+ async fetchAggregatedScores() {
111
+ return dofetch3("termdb/profileBarchart2Scores", {
112
+ body: {
113
+ genome: this.state.vocab.genome,
114
+ dslabel: this.state.vocab.dslabel,
115
+ scoreTerms: this.scoreTerms.map((t) => ({
116
+ score: { term: { id: t.score.term.id }, q: t.score.q },
117
+ maxScore: typeof t.maxScore === "number" ? t.maxScore : { term: { id: t.maxScore.term.id }, q: t.maxScore.q }
118
+ })),
119
+ filterByUserSites: this.settings?.filterByUserSites,
120
+ filter: this.filter
121
+ }
122
+ });
123
+ }
124
+ onMouseOut(event) {
125
+ if (event.target.tagName == "rect" && event.target.getAttribute("fill-opacity") == 0.3) {
126
+ event.target.setAttribute("fill-opacity", 0);
127
+ }
128
+ }
129
+ onMouseOver(event) {
130
+ if (event.target.tagName == "rect" && event.target.getAttribute("fill-opacity") == 0) {
131
+ event.target.setAttribute("fill-opacity", 0.3);
132
+ }
133
+ }
134
+ plot() {
135
+ const { hasSubjectiveData } = this.createSvg();
136
+ this.drawTitleAndDefs(hasSubjectiveData);
137
+ this.drawColumnHeaders(hasSubjectiveData);
138
+ const yEnd = this.drawComponentRows(hasSubjectiveData);
139
+ this.drawGuideLines(yEnd, hasSubjectiveData);
140
+ this.drawLegend(yEnd, hasSubjectiveData);
141
+ }
142
+ createSvg() {
143
+ const hasSubjectiveData = this.configProfileComponent.hasSubjectiveData;
144
+ const width = this.state.activeCohort == ABBREV_COHORT ? 1e3 : 1300;
145
+ const height = this.rowCount * 32 + 450;
146
+ this.dom.svg = this.dom.plotDiv.append("svg").attr("width", width).attr("height", height);
147
+ return { width, height, hasSubjectiveData };
148
+ }
149
+ drawTitleAndDefs(_hasSubjectiveData) {
150
+ const title = this.state.activeCohort == ABBREV_COHORT ? `Score-based Results for the ${this.profileComponent} Component by Module and Domain Compared with End-User Impression` : `Objective ${this.profileComponent == "Patients and Outcomes" ? "" : "and Subjective "}Score-based Results for the ${this.profileComponent} Component by Module and Domain`;
151
+ this.dom.svg.append("text").attr("transform", `translate(50, 30)`).attr("font-weight", "bold").text(title);
152
+ const color = this.configProfileComponent.profileComponent.color;
153
+ this.dom.svg.append("defs").append("pattern").attr("id", `${this.id}_diagonalHatch`).attr("patternUnits", "userSpaceOnUse").attr("width", 4).attr("height", 4).append("path").attr("d", "M-1,1 l2,-2 M0,4 l4,-4 M3,5 l2,-2").attr("stroke-width", 1).attr("stroke", color);
154
+ }
155
+ drawColumnHeaders(hasSubjectiveData) {
156
+ const svg = this.dom.svg;
157
+ const config = this.config;
158
+ for (const [i, c] of config.columnNames.entries()) {
159
+ if (i == 1 && !hasSubjectiveData) break;
160
+ const x = (i % 2 == 0 ? 400 : 900) + 10;
161
+ const y = 70;
162
+ svg.append("text").attr("transform", `translate(${x}, ${y})`).attr("text-anchor", "start").style("font-weight", "bold").text(c);
163
+ this.drawAxis(x, y + 30);
164
+ }
165
+ }
166
+ drawAxis(x, y) {
167
+ const xAxisScale = linear().domain([0, 100]).range([0, barwidth]);
168
+ this.dom.svg.append("g").attr("transform", `translate(${x}, ${y})`).call(axisTop(xAxisScale));
169
+ }
170
+ drawComponentRows(hasSubjectiveData) {
171
+ const svg = this.dom.svg;
172
+ const step = 30;
173
+ let y = 70;
174
+ for (const group of this.configProfileComponent.groups) {
175
+ svg.append("text").attr("transform", `translate(${50}, ${y + 40})`).attr("text-anchor", "start").text(`${group.label}`).style("font-weight", "bold");
176
+ y += step + 20;
177
+ for (const row of group.rows) {
178
+ const g = svg.append("g");
179
+ g.append("rect").attr("transform", `translate(${20}, ${y - 6})`).attr("x", 0).attr("y", 0).attr("width", hasSubjectiveData ? 1500 : 850).attr("height", 30).attr("fill", "#f8d335").attr("fill-opacity", 0);
180
+ const x = 400;
181
+ if (row.term1) this.drawRect(x, y, row, "term1", g);
182
+ if (row.term2) this.drawRect(x + stepx, y, row, "term2", g);
183
+ y += step;
184
+ }
185
+ }
186
+ return y;
187
+ }
188
+ drawRect(x, y, row, field, g) {
189
+ const hasSubjectiveData = this.configProfileComponent.hasSubjectiveData;
190
+ const d = row[field];
191
+ let subjectiveTerm = false;
192
+ if ((row.name == "Total Module" || row.name == "End-user Impression*") && !row.term2) subjectiveTerm = true;
193
+ const termColor = d.score.term.color;
194
+ const value = this.getPercentage(d);
195
+ const isFirst = field == "term1" || field == "term2" && !row.term1;
196
+ const pairValue = field == "term1" ? this.getPercentage(row.term2) : this.getPercentage(row.term1);
197
+ const width = value ? value / 100 * barwidth : 0;
198
+ if (value) {
199
+ const isObjective = this.state.activeCohort == FULL_COHORT && this.settings.profileComponent == "Patients and Outcomes" ? true : !subjectiveTerm && (pairValue || !hasSubjectiveData);
200
+ const rect = g.append("rect").attr("transform", `translate(${x + 10}, ${y})`).attr("pointer-events", "none").attr("x", 0).attr("y", 0).attr("width", width).attr("height", 20);
201
+ if (isObjective) rect.attr("fill", termColor);
202
+ else {
203
+ const termid = this.id + d.score.term.id;
204
+ g.append("defs").append("pattern").attr("id", termid).attr("patternUnits", "userSpaceOnUse").attr("width", 4).attr("height", 4).append("path").attr("d", "M-1,1 l2,-2 M0,4 l4,-4 M3,5 l2,-2").attr("stroke-width", 1).attr("stroke", termColor);
205
+ rect.attr("fill", `url(#${termid})`);
206
+ }
207
+ }
208
+ const text = g.append("text").attr("pointer-events", "none").attr("text-anchor", "end").text(`${value || 0}%`);
209
+ if (width > 0) text.attr("transform", `translate(${x + width + 55}, ${y + 15})`);
210
+ else if (!pairValue && field == "term1") text.attr("transform", `translate(${x + 35}, ${y + 15})`);
211
+ if (isFirst)
212
+ g.append("text").attr("transform", `translate(${field == "term1" ? x : x - stepx}, ${y + 15})`).attr("text-anchor", "end").text(row.name).attr("pointer-events", "none");
213
+ }
214
+ drawGuideLines(yEnd, hasSubjectiveData) {
215
+ this.drawGuide(410, 120, 50, yEnd, "B");
216
+ this.drawGuide(410, 120, 75, yEnd, "A");
217
+ if (!hasSubjectiveData) return;
218
+ this.drawGuide(910, 120, 50, yEnd, "B");
219
+ this.drawGuide(910, 120, 75, yEnd, "A");
220
+ }
221
+ drawGuide(x, y, percent, y2, text) {
222
+ const svg = this.dom.svg;
223
+ const x1 = x + percent / 100 * barwidth;
224
+ svg.append("line").style("stroke", "#aaa").style("stroke-width", 1).style("stroke-dasharray", "5, 5").attr("x1", x1).attr("y1", y).attr("x2", x1).attr("y2", y2);
225
+ svg.append("text").attr("transform", `translate(${x1 + 0.125 * barwidth}, ${y2 + 20})`).attr("text-anchor", "middle").text(text).style("font-weight", "bold");
226
+ if (percent == 50)
227
+ svg.append("text").attr("transform", `translate(${x1 - 0.25 * barwidth}, ${y2 + 20})`).attr("text-anchor", "middle").text("C").style("font-weight", "bold");
228
+ }
229
+ drawLegend(yEnd, hasSubjectiveData) {
230
+ this.legendG = this.dom.svg.append("g").attr("data-testid", "sjpp-profileBarchart2-legend").attr("transform", `translate(400,${yEnd + 90})`);
231
+ this.filterG = this.dom.svg.append("g").attr("transform", `translate(0,${yEnd + 90})`);
232
+ if (!this.isComparison) {
233
+ this.legendG.append("text").attr("text-anchor", "left").style("font-weight", "bold").text("Overall Score").attr("transform", `translate(0, -5)`);
234
+ this.addLegendItem("A", "More than 75% of possible scorable items", 1);
235
+ this.addLegendItem("B", "50-75% of possible scorable items", 2);
236
+ this.addLegendItem("C", "Less than 50% of possible scorable items", 3);
237
+ if (this.state.activeCohort == ABBREV_COHORT) {
238
+ this.addEndUserImpressionNote(this.legendG.append("g"));
239
+ } else this.addPOCNote(this.legendG.append("g"));
240
+ }
241
+ this.addFilterLegend();
242
+ if (!hasSubjectiveData) return;
243
+ const color = this.configProfileComponent.profileComponent.color;
244
+ const svg = this.dom.svg;
245
+ const y = yEnd + 40;
246
+ let x = 600;
247
+ const lineG = svg.append("g");
248
+ this.drawLegendRect(x, y, "and", color, lineG);
249
+ x += 300;
250
+ this.drawLegendRect(x, y, "or", color, lineG);
251
+ }
252
+ drawLegendRect(x, y, operator, color, lineG) {
253
+ const rect = lineG.append("g").attr("transform", `translate(${x}, ${y})`).append("rect").attr("x", 0).attr("y", 0).attr("width", 20).attr("height", 20);
254
+ if (operator == "and") rect.attr("fill", color);
255
+ else rect.attr("fill", `url(#${this.id}_diagonalHatch)`);
256
+ const text = this.dom.svg.append("text").attr("transform", `translate(${x + 25}, ${y + 15})`).attr("text-anchor", "start").text("Objective ");
257
+ text.append("tspan").attr("font-weight", "bold").text(operator);
258
+ text.append("tspan").text(" Subjective data");
259
+ }
260
+ };
261
+ async function getPlotConfig(opts, app, _activeCohort) {
262
+ try {
263
+ const activeCohort = _activeCohort === void 0 ? app.getState().activeCohort : _activeCohort;
264
+ const defaults = await getProfilePlotConfig(activeCohort, app, opts);
265
+ if (!defaults) throw "default config not found in termdbConfig.plotConfigByCohort.profileBarchart2";
266
+ defaults.settings = { profileBarchart2: getDefaultProfilePlotSettings() };
267
+ let config = structuredClone(defaults);
268
+ config = copyMerge(config, opts);
269
+ config.settings.controls = { isOpen: false };
270
+ const twlst = [];
271
+ for (const profileComponent of config.plotByComponent) {
272
+ profileComponent.hasSubjectiveData = false;
273
+ for (const group of profileComponent.groups)
274
+ for (const row of group.rows) {
275
+ if (row.term1) {
276
+ row.term1.score.q = row.term1.maxScore.q = { mode: "continuous" };
277
+ twlst.push(row.term1.score);
278
+ twlst.push(row.term1.maxScore);
279
+ }
280
+ if (row.term2) {
281
+ row.term2.score.q = row.term2.maxScore.q = { mode: "continuous" };
282
+ twlst.push(row.term2.score);
283
+ twlst.push(row.term2.maxScore);
284
+ }
285
+ if (row.term1 && row.term2) profileComponent.hasSubjectiveData = true;
286
+ }
287
+ }
288
+ await fillTwLst(twlst, app.vocabApi);
289
+ return config;
290
+ } catch (e) {
291
+ throw `${e} [profileBarchart2 getPlotConfig()]`;
292
+ }
293
+ }
294
+ var profileBarchart2Init = getCompInit(ProfileBarchart2);
295
+ var componentInit = profileBarchart2Init;
296
+ function getDefaultProfileBarchart2Settings() {
297
+ return {};
298
+ }
299
+ export {
300
+ componentInit,
301
+ getDefaultProfileBarchart2Settings,
302
+ getPlotConfig,
303
+ profileBarchart2Init
304
+ };
305
+ //# sourceMappingURL=barchart2-QQYLTHWR.js.map