@sjcrh/proteinpaint-client 2.224.1 → 2.224.2

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 (980) hide show
  1. package/dist/2dmaf-OWA6REJ5.js +1362 -0
  2. package/dist/AggMatrixInput-5GC33U5A.js +402 -0
  3. package/dist/AggregateMatrix-CMJFO53B.js +37 -0
  4. package/dist/AppHeader-KJCXF35P.js +826 -0
  5. package/dist/BoxPlot-NZTO6CLZ.js +1247 -0
  6. package/dist/BoxPlot-NZTO6CLZ.js.map +7 -0
  7. package/dist/CorrelationVolcano-GHTPFM2V.js +613 -0
  8. package/dist/Cuminc-HHBYFFFM.js +1217 -0
  9. package/dist/DE-VVKIMVXD.js +85 -0
  10. package/dist/DEinput-F7HSM2SO.js +479 -0
  11. package/dist/DM-UBCIWZEY.js +86 -0
  12. package/dist/DifferentialAnalysis-UUXXMOQS.js +236 -0
  13. package/dist/Disco-NHXU7LG7.js +3384 -0
  14. package/dist/Disco.UI-GSSSK4YJ.js +239 -0
  15. package/dist/DmrPlot-QFSU62PY.js +344 -0
  16. package/dist/DmrPlot-QFSU62PY.js.map +7 -0
  17. package/dist/GB-CIQGJBJP.js +1388 -0
  18. package/dist/GSEA-3GVFEJTX.js +870 -0
  19. package/dist/GeneExpInput-CFU3Q7FM.js +38 -0
  20. package/dist/Geomap-NMVFA77Q.js +80 -0
  21. package/dist/HicApp-4FCGUUJD.js +2240 -0
  22. package/dist/IDCViewer-WFB6AXHD.js +10810 -0
  23. package/dist/IDCViewer-WFB6AXHD.js.map +7 -0
  24. package/dist/NumBinaryEditor-4WUDJRSU.js +274 -0
  25. package/dist/NumBinaryEditor.unit.spec-MV53GTGQ.js +308 -0
  26. package/dist/NumContEditor-U4R6HPDM.js +100 -0
  27. package/dist/NumContEditor.unit.spec-J4ANPBSF.js +160 -0
  28. package/dist/NumCustomBinEditor-QRGDNFP4.js +29 -0
  29. package/dist/NumCustomBinEditor.unit.spec-PPF233FW.js +393 -0
  30. package/dist/NumDiscreteEditor-LNK4KHSL.js +165 -0
  31. package/dist/NumDiscreteEditor.unit.spec-QY6O62JU.js +229 -0
  32. package/dist/NumRegularBinEditor-XTINNM5L.js +29 -0
  33. package/dist/NumRegularBinEditor.unit.spec-FSLARHOC.js +274 -0
  34. package/dist/NumSplineEditor-YSQTKBFA.js +205 -0
  35. package/dist/NumSplineEditor.unit.spec-QNITPY7R.js +220 -0
  36. package/dist/NumericDensity-J5WS74JZ.js +29 -0
  37. package/dist/NumericDensity.unit.spec-4WQWLSSJ.js +414 -0
  38. package/dist/NumericHandler-ZEWC25U2.js +30 -0
  39. package/dist/NumericHandler.unit.spec-A3G5FWGV.js +225 -0
  40. package/dist/ProteomeInput-7DXGQIOO.js +610 -0
  41. package/dist/Regression-VQ5MC6KW.js +1412 -0
  42. package/dist/RunChart2-B33CQUXH.js +744 -0
  43. package/dist/SC-LEVWXS4P.js +1290 -0
  44. package/dist/Violin-L43OHY63.js +1105 -0
  45. package/dist/Violin-L43OHY63.js.map +7 -0
  46. package/dist/Volcano-NTXVM3UR.js +2657 -0
  47. package/dist/Wsi-VPF6RX3B.js +637 -0
  48. package/dist/Wsi-VPF6RX3B.js.map +7 -0
  49. package/dist/aboutSunburst-NGH3V74S.js +93 -0
  50. package/dist/adSandbox-VOAL4P5A.js +29 -0
  51. package/dist/animatedBubbleChart-HKOGYPSS.js +542 -0
  52. package/dist/app-AZLUP2BA.js +28 -0
  53. package/dist/app-JJPKGBEV.js +38 -0
  54. package/dist/app.js +14 -14
  55. package/dist/bam-GIZSH2MF.js +872 -0
  56. package/dist/barchart-CVTXLIIQ.js +38 -0
  57. package/dist/barchart2-XYC6WITL.js +305 -0
  58. package/dist/block-DXRSU62C.js +6203 -0
  59. package/dist/block.init-U4Y6ROG4.js +29 -0
  60. package/dist/block.mds.expressionrank-BB26LVTM.js +350 -0
  61. package/dist/block.mds.geneboxplot-VVKEU3SL.js +819 -0
  62. package/dist/block.mds.junction-XUZX6EAQ.js +1534 -0
  63. package/dist/block.mds.svcnv-WDSACPWG.js +6325 -0
  64. package/dist/block.svg-T5BA7VLS.js +155 -0
  65. package/dist/block.tk.aicheck-3VN2RDPD.js +274 -0
  66. package/dist/block.tk.bam-5XZ3N4Y7.js +1906 -0
  67. package/dist/block.tk.bigwig.ui-JODVOS4R.js +202 -0
  68. package/dist/block.tk.hicstraw-AFNWJ2YP.js +814 -0
  69. package/dist/block.tk.junction-T2G6XEVS.js +2353 -0
  70. package/dist/block.tk.junction.textmatrixui-FL5MZH7K.js +190 -0
  71. package/dist/block.tk.ld-JKBXDOB5.js +90 -0
  72. package/dist/block.tk.menu-2X4BN7BN.js +1050 -0
  73. package/dist/block.tk.pgv-ASUVEGQF.js +934 -0
  74. package/dist/brainImaging-27442GMQ.js +550 -0
  75. package/dist/brainRegions-3367RQCU.js +213 -0
  76. package/dist/bubbleHeatmap-IOVS6SHX.js +374 -0
  77. package/dist/cellTypeBubbleHeatmap-7XJP6B5W.js +274 -0
  78. package/dist/chunk-2CTAWHGB.js +56 -0
  79. package/dist/chunk-2ESAB2PP.js +848 -0
  80. package/dist/chunk-2GP3LH7J.js +194 -0
  81. package/dist/chunk-2UGYE6EJ.js +54 -0
  82. package/dist/chunk-3TJBSAIO.js +170 -0
  83. package/dist/chunk-46KQE4DV.js +418 -0
  84. package/dist/chunk-4ICGMPPE.js +56 -0
  85. package/dist/chunk-4RQTQDHF.js +5214 -0
  86. package/dist/chunk-5FD6NRGE.js +472 -0
  87. package/dist/chunk-5JBOGNSG.js +159 -0
  88. package/dist/chunk-5OWPH4IH.js +626 -0
  89. package/dist/chunk-63TCOVAK.js +30 -0
  90. package/dist/chunk-7ONTCJWB.js +1219 -0
  91. package/dist/chunk-7Q4KAFCS.js +281 -0
  92. package/dist/chunk-7UXV4IX5.js +102 -0
  93. package/dist/chunk-7ZCYC2DQ.js +70 -0
  94. package/dist/chunk-AQSZLUDV.js +184 -0
  95. package/dist/chunk-BBA5MAFS.js +240 -0
  96. package/dist/chunk-BNJC6OX5.js +2102 -0
  97. package/dist/chunk-BOQYGAYA.js +119 -0
  98. package/dist/chunk-C4YACFGH.js +692 -0
  99. package/dist/chunk-CKO54XWB.js +54 -0
  100. package/dist/chunk-COWLQ74R.js +82 -0
  101. package/dist/chunk-CU434U4N.js +35 -0
  102. package/dist/chunk-CZOJUH3C.js +30 -0
  103. package/dist/chunk-CZOJUH3C.js.map +7 -0
  104. package/dist/chunk-D22DJFFZ.js +254 -0
  105. package/dist/chunk-D22DJFFZ.js.map +7 -0
  106. package/dist/chunk-D2YPS46O.js +266 -0
  107. package/dist/chunk-DVSTBGZT.js +182 -0
  108. package/dist/chunk-EIO6DMIQ.js +31 -0
  109. package/dist/chunk-EM56Y4X6.js +2685 -0
  110. package/dist/chunk-F6CYUMSM.js +37 -0
  111. package/dist/chunk-FUTHP5J4.js +274 -0
  112. package/dist/chunk-G5GFCBJT.js +217 -0
  113. package/dist/chunk-GOL6A746.js +96 -0
  114. package/dist/chunk-GVLXSPTN.js +141 -0
  115. package/dist/chunk-HNU4RYI5.js +203 -0
  116. package/dist/chunk-HTIZFNBC.js +4389 -0
  117. package/dist/chunk-HUF5BTO6.js +562 -0
  118. package/dist/chunk-HWP3U2VY.js +382 -0
  119. package/dist/chunk-JEXS72M5.js +550 -0
  120. package/dist/chunk-JNIYPQWY.js +176 -0
  121. package/dist/chunk-K5RCZIZN.js +2799 -0
  122. package/dist/chunk-KA3KYNOP.js +195 -0
  123. package/dist/chunk-KGFH5VTH.js +444 -0
  124. package/dist/chunk-KTRDLHCP.js +397 -0
  125. package/dist/chunk-L6TGKNRA.js +516 -0
  126. package/dist/chunk-LN4KNFOQ.js +55 -0
  127. package/dist/chunk-M4ML4ACA.js +134 -0
  128. package/dist/chunk-MIDVLNN3.js +123 -0
  129. package/dist/chunk-MUVXIOXM.js +276 -0
  130. package/dist/chunk-N2RAPA7D.js +42 -0
  131. package/dist/chunk-N2RAPA7D.js.map +7 -0
  132. package/dist/chunk-N6AHRJAM.js +1339 -0
  133. package/dist/chunk-NB4UU4DH.js +54 -0
  134. package/dist/chunk-NGG4737W.js +296 -0
  135. package/dist/chunk-O4BDFBVK.js +1253 -0
  136. package/dist/chunk-OGU7IDV7.js +102 -0
  137. package/dist/chunk-OT2DMA2D.js +652 -0
  138. package/dist/chunk-OT2DMA2D.js.map +7 -0
  139. package/dist/chunk-OVO6NYUR.js +480 -0
  140. package/dist/chunk-OXRZSZKA.js +2008 -0
  141. package/dist/chunk-QMR3QMJG.js +50 -0
  142. package/dist/chunk-QUVGLTCF.js +103 -0
  143. package/dist/chunk-R2H22S4J.js +5786 -0
  144. package/dist/chunk-R2H22S4J.js.map +7 -0
  145. package/dist/chunk-RCLCEA55.js +305 -0
  146. package/dist/chunk-RCVA2RWU.js +466 -0
  147. package/dist/chunk-RSCSTOUN.js +6375 -0
  148. package/dist/chunk-SCXWXLMR.js +237 -0
  149. package/dist/chunk-SQUMXZXI.js +257 -0
  150. package/dist/chunk-T2DORAV4.js +398 -0
  151. package/dist/chunk-T4OGXIFB.js +13624 -0
  152. package/dist/chunk-T4OGXIFB.js.map +7 -0
  153. package/dist/chunk-TBXJ2CUA.js +14 -0
  154. package/dist/chunk-TQLHKDNS.js +140 -0
  155. package/dist/chunk-TTSKLWP7.js +2932 -0
  156. package/dist/chunk-TTSKLWP7.js.map +7 -0
  157. package/dist/chunk-VQD6GZMU.js +59 -0
  158. package/dist/chunk-VZBRG6HQ.js +263 -0
  159. package/dist/chunk-WQHL6SR3.js +468 -0
  160. package/dist/chunk-X7JGAQ5N.js +340 -0
  161. package/dist/chunk-Z6ZFRHXK.js +2334 -0
  162. package/dist/chunk-ZCY72DDM.js +379 -0
  163. package/dist/chunk-ZHY7ZHWC.js +243 -0
  164. package/dist/chunk-ZIMAIUZD.js +26744 -0
  165. package/dist/chunk-ZIMAIUZD.js.map +7 -0
  166. package/dist/chunk-ZLQ6PAI6.js +299 -0
  167. package/dist/chunk-ZUG4EY4T.js +348 -0
  168. package/dist/chunk-ZUXXBQ7D.js +2349 -0
  169. package/dist/chunk-ZUXXBQ7D.js.map +7 -0
  170. package/dist/cohort-2DQOQ5AO.js +66 -0
  171. package/dist/cohortSunburst-W6XC7VD6.js +402 -0
  172. package/dist/condition-3A7I5UQA.js +323 -0
  173. package/dist/controls-G5WYBX4P.js +30 -0
  174. package/dist/controls.config-TAFGM2S2.js +30 -0
  175. package/dist/correlation-K4EOOQJU.js +91 -0
  176. package/dist/customdata.inputui-E7RRN3KY.js +280 -0
  177. package/dist/dataDownload-OXZGAE5R.js +326 -0
  178. package/dist/databrowser.ui-IPUF6LUC.js +424 -0
  179. package/dist/databrowser.ui-IPUF6LUC.js.map +7 -0
  180. package/dist/dictionary-MUNAUI43.js +109 -0
  181. package/dist/dnaMethylation-SOV4HBAX.js +29 -0
  182. package/dist/dnaMethylation.integration.spec-T4KKTMRL.js +194 -0
  183. package/dist/dofetch-2CR2TVWC.js +49 -0
  184. package/dist/e2pca-EIOJCV4O.js +340 -0
  185. package/dist/ep-5QX3CW6D.js +1247 -0
  186. package/dist/expclust.gdc.spec-TNHPZLYQ.js +298 -0
  187. package/dist/facet-I3OC4DK2.js +556 -0
  188. package/dist/gb-WPIUHR3O.js +77 -0
  189. package/dist/geneExpClustering-EYGZENSP.js +240 -0
  190. package/dist/geneExpression-54L3DH32.js +309 -0
  191. package/dist/geneExpression-6S6H2EVY.js +29 -0
  192. package/dist/geneExpression.unit.spec-VVI2MXIH.js +151 -0
  193. package/dist/geneORA-7M64LXZC.js +269 -0
  194. package/dist/geneRanking-676CAA3B.js +544 -0
  195. package/dist/geneVariant-4UPJE6MJ.js +289 -0
  196. package/dist/geneVariant-PFVPL22U.js +32 -0
  197. package/dist/geneVariant.integration.spec-EAJ4OSFQ.js +672 -0
  198. package/dist/genefusion.ui-LP4EJUTO.js +299 -0
  199. package/dist/geneset-ANDOMTPO.js +199 -0
  200. package/dist/genomeBrowser.spec-NUXOOL5N.js +272 -0
  201. package/dist/grin2-K4LRVCES.js +66 -0
  202. package/dist/grin2-YFCWJZFR.js +945 -0
  203. package/dist/hierCluster-POD3DRO4.js +55 -0
  204. package/dist/hierCluster-QA7HXKRD.js +51 -0
  205. package/dist/hierCluster.config-HQ3SVKCE.js +32 -0
  206. package/dist/hierCluster.integration.spec-MOYDWJL3.js +479 -0
  207. package/dist/hierCluster.interactivity-OZTNHXZQ.js +45 -0
  208. package/dist/hierCluster.renderers-46E37NL4.js +18 -0
  209. package/dist/imagePlot-HNAYBWY3.js +152 -0
  210. package/dist/importPlot-XTW46VF4.js +8 -0
  211. package/dist/isoformExpression-2TMTILKG.js +31 -0
  212. package/dist/isoformExpression.unit.spec-SIJWP7TH.js +233 -0
  213. package/dist/jspdf.es.min-GSH2SAQO.js +40 -0
  214. package/dist/junction-AICKHNXX.js +32 -0
  215. package/dist/junction.customTerm-5STKYZ4B.js +15 -0
  216. package/dist/junction.unit.spec-EXFN4MLW.js +178 -0
  217. package/dist/launch.adhoc-PB6PGR7Q.js +33 -0
  218. package/dist/leftlabel.sample-ISUD4A7F.js +253 -0
  219. package/dist/lollipop-5UXUAFYY.js +162 -0
  220. package/dist/maf-L6YD25JK.js +451 -0
  221. package/dist/maftimeline-63YZDGJ3.js +583 -0
  222. package/dist/matrix-OPEBHZCW.js +55 -0
  223. package/dist/matrix-TLMWPG7C.js +50 -0
  224. package/dist/matrix.cells-IELMNYC6.js +25 -0
  225. package/dist/matrix.config-J7SVFXLM.js +33 -0
  226. package/dist/matrix.data-DJTJCPO4.js +22 -0
  227. package/dist/matrix.groups-2REICNZK.js +25 -0
  228. package/dist/matrix.integration.spec-ZXU2OEFU.js +3156 -0
  229. package/dist/matrix.interactivity-SX3OR6OI.js +33 -0
  230. package/dist/matrix.layout-ZJ6X5RON.js +35 -0
  231. package/dist/matrix.legend-ZOP72TIO.js +19 -0
  232. package/dist/matrix.renderers-YUSROXKN.js +30 -0
  233. package/dist/matrix.serieses-UMAZNCMR.js +18 -0
  234. package/dist/matrix.sort-2JNIZHNL.js +25 -0
  235. package/dist/matrix.sort.unit.spec-SNB643Y6.js +464 -0
  236. package/dist/matrix.sorterUi-JXEIY6UL.js +15 -0
  237. package/dist/matrix.sorterUi.unit.spec-LDAT4R3H.js +334 -0
  238. package/dist/matrix.unit.spec-QBQIMDLD.js +146 -0
  239. package/dist/mavb-EQUF3VGG.js +726 -0
  240. package/dist/mds.samplescatterplot-73E45ZT7.js +1545 -0
  241. package/dist/mds.survivalplot-DL53IRVD.js +472 -0
  242. package/dist/multivalue-PQN75ENP.js +79 -0
  243. package/dist/numericDictTermCluster-FGMIOTBO.js +62 -0
  244. package/dist/oncomatrix-CCHWOA3N.js +286 -0
  245. package/dist/oncomatrix.spec-GQT3UTCR.js +439 -0
  246. package/dist/plot.2dvaf-L6ZI5ROR.js +368 -0
  247. package/dist/plot.app-A73VXJCP.js +32 -0
  248. package/dist/plot.barplot-HSCHPOO7.js +93 -0
  249. package/dist/plot.boxplot-AXBVNTNH.js +142 -0
  250. package/dist/plot.brainImaging-PEMURKM3.js +51 -0
  251. package/dist/plot.disco-YKMYYVMV.js +98 -0
  252. package/dist/plot.ssgq-FGMQXKZU.js +130 -0
  253. package/dist/plot.vaf2cov-IBM7NQEB.js +249 -0
  254. package/dist/polar2-N7KWY36S.js +228 -0
  255. package/dist/profileForms-Q4NN7653.js +937 -0
  256. package/dist/profilePlot-SQ77M6LI.js +45 -0
  257. package/dist/proteinView-KSIZRDNP.js +1346 -0
  258. package/dist/proteomeCohortCompare-GYSBJSDY.js +866 -0
  259. package/dist/pseudbulk.unit.spec-XELPZVXM.js +82 -0
  260. package/dist/pseudobulk-H3USXM5U.js +31 -0
  261. package/dist/qualitative-ABXENRAF.js +34 -0
  262. package/dist/qualitative-OSEJTJ4D.js +241 -0
  263. package/dist/radar2-VTDQGHWN.js +323 -0
  264. package/dist/radarFacility2-BWGEC5A2.js +331 -0
  265. package/dist/rememberedGvQ.unit.spec-TWUDSEDP.js +210 -0
  266. package/dist/render-C3XJQ2QY.js +29 -0
  267. package/dist/report-7ZZ44X4R.js +213 -0
  268. package/dist/sampleView-CUCNI65Q.js +39 -0
  269. package/dist/samplelst-S7AJQ36J.js +114 -0
  270. package/dist/samplematrix-U7WM6GNB.js +2188 -0
  271. package/dist/sc-FMJHN2SW.js +77 -0
  272. package/dist/scatter-4UMCJNEH.js +919 -0
  273. package/dist/scatter-KMAZ3ZNR.js +84 -0
  274. package/dist/selectGenomeWithTklst-5SRM45BI.js +125 -0
  275. package/dist/singleCellCellType-GIIICJK5.js +29 -0
  276. package/dist/singleCellCellType.unit.spec-MVA7BMGL.js +150 -0
  277. package/dist/singleCellGeneExpression-2QFQHJJH.js +29 -0
  278. package/dist/singleCellGeneExpression.unit.spec-SAIETYHV.js +144 -0
  279. package/dist/singleCellNumericValue-45H5EPIB.js +29 -0
  280. package/dist/singleCellNumericValue.unit.spec-FNKEJ2WC.js +412 -0
  281. package/dist/singleCellPlot-SP7OEGYQ.js +44 -0
  282. package/dist/singlecell-AVZQX4AH.js +1562 -0
  283. package/dist/singlecell-JQKUHGIH.js +77 -0
  284. package/dist/snp-4SA7VABN.js +29 -0
  285. package/dist/snp.unit.spec-YIYGR6GW.js +167 -0
  286. package/dist/snplocus-TDGQ57ZJ.js +200 -0
  287. package/dist/snplst-SWBGRYPA.js +36 -0
  288. package/dist/spliceevent.a53ss.diagram-YODOBS6U.js +142 -0
  289. package/dist/spliceevent.exonskip.diagram-PMZIQ5UG.js +274 -0
  290. package/dist/spliceevent.noeventdiagram-A4T2PNUX.js +451 -0
  291. package/dist/ssGSEA-U7D6HOIV.js +29 -0
  292. package/dist/ssGSEA.unit.spec-SMNAM5DJ.js +79 -0
  293. package/dist/stattable-DBYMPJU6.js +112 -0
  294. package/dist/studyCatalog-7RABX4W5.js +457 -0
  295. package/dist/summarizeCnvGeneexp-YVRW7LWY.js +154 -0
  296. package/dist/summarizeGeneexpSurvival-ZB7IWGPS.js +101 -0
  297. package/dist/summarizeMutationCnv-CUSYURDK.js +155 -0
  298. package/dist/summarizeMutationDiagnosis-NSPCT5WI.js +31 -0
  299. package/dist/summarizeMutationSurvival-2PZZCC4G.js +95 -0
  300. package/dist/summary-CYDZSICI.js +40 -0
  301. package/dist/summary.integration.spec-2TLKJS3X.js +405 -0
  302. package/dist/summaryInput-BRQ5JRGV.js +238 -0
  303. package/dist/sunburst-435LKL2S.js +34 -0
  304. package/dist/sunburst-D5WAGHX6.js +274 -0
  305. package/dist/survival-M63B6DY5.js +1248 -0
  306. package/dist/survival-M63B6DY5.js.map +7 -0
  307. package/dist/survival-MHESSYWF.js +49 -0
  308. package/dist/survival.integration.spec-WMS3FTNR.js +609 -0
  309. package/dist/svg2pdf.es.min-PHWTISHJ.js +3157 -0
  310. package/dist/svgraph-LYFGVTHI.js +1377 -0
  311. package/dist/svmr-UR67QZIP.js +3834 -0
  312. package/dist/swimmer-RP4SUEZS.js +993 -0
  313. package/dist/table-V4OOMF3B.js +192 -0
  314. package/dist/termCollection-VHGVBSWW.js +29 -0
  315. package/dist/termCollection-WSNM3YFK.js +247 -0
  316. package/dist/termCollection.unit.spec-NCZUZL6P.js +295 -0
  317. package/dist/termCollectionFractionSelection-XM3FJWBQ.js +38 -0
  318. package/dist/termCollectionFractionSelection.unit.spec-VO4SAV72.js +184 -0
  319. package/dist/tk-G5PKWSXJ.js +1193 -0
  320. package/dist/tk-KIELQHVI.js +37 -0
  321. package/dist/tp.ui-HAKSWLFB.js +1453 -0
  322. package/dist/tvs.categorical-G4DM4JY5.js +28 -0
  323. package/dist/tvs.condition-E5NUQONB.js +160 -0
  324. package/dist/tvs.dt-T4BK24VZ.js +34 -0
  325. package/dist/tvs.dtcnv.categorical-V57TZFRA.js +31 -0
  326. package/dist/tvs.dtcnv.continuous-D4YIB4PN.js +72 -0
  327. package/dist/tvs.dtfusion-6DUFLUNH.js +31 -0
  328. package/dist/tvs.dtitd-GOEPAQGR.js +31 -0
  329. package/dist/tvs.dtsnvindel-ASTXGC4O.js +31 -0
  330. package/dist/tvs.dtsv-7TGDEWXK.js +31 -0
  331. package/dist/tvs.multivalue-SEIGL2W6.js +84 -0
  332. package/dist/tvs.numeric-MLLX5L7Z.js +32 -0
  333. package/dist/tvs.samplelst-HAV7C2EA.js +95 -0
  334. package/dist/tvs.survival-3B522MT2.js +110 -0
  335. package/dist/tvs.termCollection-R5NG4VXP.js +118 -0
  336. package/dist/vocabulary-LBNHNSEN.js +32 -0
  337. package/dist/wsi.direct-ZEZO4NLR.js +11515 -0
  338. package/dist/wsi.direct-ZEZO4NLR.js.map +7 -0
  339. package/package.json +3 -3
  340. package/src/databrowser/dictionary.parse.js +4 -1
  341. package/dist/2dmaf-7HOQRW25.js +0 -1362
  342. package/dist/AggMatrixInput-LMVRNQBN.js +0 -402
  343. package/dist/AggregateMatrix-AMQTLJV2.js +0 -37
  344. package/dist/AppHeader-AK7O2HUI.js +0 -826
  345. package/dist/BoxPlot-CE5JWPJH.js +0 -1229
  346. package/dist/BoxPlot-CE5JWPJH.js.map +0 -7
  347. package/dist/CorrelationVolcano-DO7I63FR.js +0 -613
  348. package/dist/Cuminc-NHABXYET.js +0 -1217
  349. package/dist/DE-A327BZNW.js +0 -85
  350. package/dist/DEinput-VKRBFYUE.js +0 -479
  351. package/dist/DM-NU23H5PL.js +0 -86
  352. package/dist/DifferentialAnalysis-SH47YDQQ.js +0 -236
  353. package/dist/Disco-DOLET5UY.js +0 -3384
  354. package/dist/Disco.UI-6J6INV56.js +0 -239
  355. package/dist/DmrPlot-KYZOQB2Y.js +0 -361
  356. package/dist/DmrPlot-KYZOQB2Y.js.map +0 -7
  357. package/dist/GB-LQCK6YNB.js +0 -1388
  358. package/dist/GSEA-KLTV4JDP.js +0 -870
  359. package/dist/GeneExpInput-ZMTWWDO7.js +0 -38
  360. package/dist/Geomap-4NP2JPMA.js +0 -80
  361. package/dist/HicApp-DXF6B4YR.js +0 -2240
  362. package/dist/IDCViewer-HEQYB6AY.js +0 -10808
  363. package/dist/IDCViewer-HEQYB6AY.js.map +0 -7
  364. package/dist/NumBinaryEditor-JZZS67NB.js +0 -274
  365. package/dist/NumBinaryEditor.unit.spec-S2MKCJYX.js +0 -308
  366. package/dist/NumContEditor-IRZPIDJU.js +0 -100
  367. package/dist/NumContEditor.unit.spec-JDSSEJLJ.js +0 -160
  368. package/dist/NumCustomBinEditor-E2FJNISZ.js +0 -29
  369. package/dist/NumCustomBinEditor.unit.spec-26GWME2W.js +0 -393
  370. package/dist/NumDiscreteEditor-JECWQKST.js +0 -165
  371. package/dist/NumDiscreteEditor.unit.spec-DG52CSV5.js +0 -229
  372. package/dist/NumRegularBinEditor-W726TJIB.js +0 -29
  373. package/dist/NumRegularBinEditor.unit.spec-GG7XXYLQ.js +0 -274
  374. package/dist/NumSplineEditor-7UYPJI57.js +0 -205
  375. package/dist/NumSplineEditor.unit.spec-MESJVLZV.js +0 -220
  376. package/dist/NumericDensity-VFXO6VZ7.js +0 -29
  377. package/dist/NumericDensity.unit.spec-OQDBGUQJ.js +0 -414
  378. package/dist/NumericHandler-EJHWVASI.js +0 -30
  379. package/dist/NumericHandler.unit.spec-VUIGKU4C.js +0 -225
  380. package/dist/ProteomeInput-ATBCNQLN.js +0 -610
  381. package/dist/Regression-ZL6XKZA6.js +0 -1412
  382. package/dist/RunChart2-NUSOF6LW.js +0 -744
  383. package/dist/SC-A55NDRZ2.js +0 -1290
  384. package/dist/Violin-DRTD42BR.js +0 -1092
  385. package/dist/Violin-DRTD42BR.js.map +0 -7
  386. package/dist/Volcano-UNZ6OAWB.js +0 -2657
  387. package/dist/Wsi-CC7GX3HL.js +0 -636
  388. package/dist/Wsi-CC7GX3HL.js.map +0 -7
  389. package/dist/aboutSunburst-VTBLSKCY.js +0 -93
  390. package/dist/adSandbox-7RA6NVM4.js +0 -29
  391. package/dist/animatedBubbleChart-BRGFUEYW.js +0 -542
  392. package/dist/app-2GMWQIJZ.js +0 -28
  393. package/dist/app-4KI25R4S.js +0 -38
  394. package/dist/bam-B3JWSAZ5.js +0 -872
  395. package/dist/barchart-E2IWHDLL.js +0 -38
  396. package/dist/barchart2-QDATDPDT.js +0 -305
  397. package/dist/block-IS3WJCNW.js +0 -6203
  398. package/dist/block.init-ZCEUPHX2.js +0 -29
  399. package/dist/block.mds.expressionrank-WCJNZ63X.js +0 -350
  400. package/dist/block.mds.geneboxplot-BCXVN3GL.js +0 -819
  401. package/dist/block.mds.junction-J7H7WNMN.js +0 -1534
  402. package/dist/block.mds.svcnv-GJ6BSNGY.js +0 -6325
  403. package/dist/block.svg-SR5EQSKQ.js +0 -155
  404. package/dist/block.tk.aicheck-RPKZMKLM.js +0 -274
  405. package/dist/block.tk.bam-BDF3UFRA.js +0 -1906
  406. package/dist/block.tk.bigwig.ui-2MG6M4CP.js +0 -202
  407. package/dist/block.tk.hicstraw-JFMLXXLH.js +0 -814
  408. package/dist/block.tk.junction-ZDFTQJGA.js +0 -2353
  409. package/dist/block.tk.junction.textmatrixui-OHAZEQNT.js +0 -190
  410. package/dist/block.tk.ld-BRYYNH55.js +0 -90
  411. package/dist/block.tk.menu-XQKB62BG.js +0 -1050
  412. package/dist/block.tk.pgv-76I52IUX.js +0 -934
  413. package/dist/brainImaging-65UMKH6J.js +0 -550
  414. package/dist/brainRegions-AURQKH5R.js +0 -213
  415. package/dist/bubbleHeatmap-T3LEYZBU.js +0 -374
  416. package/dist/cellTypeBubbleHeatmap-UPY53IPQ.js +0 -274
  417. package/dist/chunk-2CQ4YA7M.js +0 -257
  418. package/dist/chunk-2FTQ5RMP.js +0 -340
  419. package/dist/chunk-2GWAEK4R.js +0 -276
  420. package/dist/chunk-2OMX5AYB.js +0 -195
  421. package/dist/chunk-2VBU42YX.js +0 -299
  422. package/dist/chunk-36CCFKWS.js +0 -134
  423. package/dist/chunk-3A2CWTBI.js +0 -159
  424. package/dist/chunk-3I26BABG.js +0 -182
  425. package/dist/chunk-3TO7TWHS.js +0 -2008
  426. package/dist/chunk-3WU2KUY2.js +0 -13624
  427. package/dist/chunk-3WU2KUY2.js.map +0 -7
  428. package/dist/chunk-3YQYWX4M.js +0 -26716
  429. package/dist/chunk-3YQYWX4M.js.map +0 -7
  430. package/dist/chunk-4MGXKCPS.js +0 -2685
  431. package/dist/chunk-53VTLOOW.js +0 -1339
  432. package/dist/chunk-5DI4UNH5.js +0 -562
  433. package/dist/chunk-6T4MN7LV.js +0 -397
  434. package/dist/chunk-76SL5VYA.js +0 -255
  435. package/dist/chunk-76SL5VYA.js.map +0 -7
  436. package/dist/chunk-7BD532EJ.js +0 -70
  437. package/dist/chunk-7CE2X6HL.js +0 -56
  438. package/dist/chunk-7MJENXZ6.js +0 -2799
  439. package/dist/chunk-7SFK32JP.js +0 -398
  440. package/dist/chunk-7TG44KO3.js +0 -2334
  441. package/dist/chunk-AFEPQY5B.js +0 -2922
  442. package/dist/chunk-AFEPQY5B.js.map +0 -7
  443. package/dist/chunk-C7KUMZQM.js +0 -59
  444. package/dist/chunk-C7ROKWV2.js +0 -140
  445. package/dist/chunk-CAH6LJ5Z.js +0 -31
  446. package/dist/chunk-CDUBFFZ7.js +0 -82
  447. package/dist/chunk-CPVUBEDA.js +0 -54
  448. package/dist/chunk-CPWM4S3K.js +0 -123
  449. package/dist/chunk-DEIIID6R.js +0 -1219
  450. package/dist/chunk-E54XQGQM.js +0 -4389
  451. package/dist/chunk-EYKJQJ7R.js +0 -382
  452. package/dist/chunk-FE5TCBIT.js +0 -30
  453. package/dist/chunk-FZYVPRVQ.js +0 -38
  454. package/dist/chunk-FZYVPRVQ.js.map +0 -7
  455. package/dist/chunk-G4QRB64M.js +0 -418
  456. package/dist/chunk-GBKQHVKJ.js +0 -274
  457. package/dist/chunk-GUW7VTUL.js +0 -281
  458. package/dist/chunk-H7HTCD2Q.js +0 -55
  459. package/dist/chunk-HQNH2UX6.js +0 -194
  460. package/dist/chunk-HYW74ZT2.js +0 -103
  461. package/dist/chunk-HZTSMLBZ.js +0 -466
  462. package/dist/chunk-I2QKZURX.js +0 -5214
  463. package/dist/chunk-II5ZAY52.js +0 -516
  464. package/dist/chunk-IW5XJT3H.js +0 -468
  465. package/dist/chunk-JDRUY7IR.js +0 -266
  466. package/dist/chunk-JHLF2ZC2.js +0 -472
  467. package/dist/chunk-JUPLOOCO.js +0 -141
  468. package/dist/chunk-JXVRNCAZ.js +0 -96
  469. package/dist/chunk-K2ARLT2A.js +0 -26
  470. package/dist/chunk-K2ARLT2A.js.map +0 -7
  471. package/dist/chunk-KBTFT76L.js +0 -2305
  472. package/dist/chunk-KBTFT76L.js.map +0 -7
  473. package/dist/chunk-L2H4W3UM.js +0 -237
  474. package/dist/chunk-LXS2GSF4.js +0 -240
  475. package/dist/chunk-MANAUI7R.js +0 -54
  476. package/dist/chunk-MEUSRAOE.js +0 -170
  477. package/dist/chunk-MG5U4JYY.js +0 -102
  478. package/dist/chunk-MHWYRNGA.js +0 -348
  479. package/dist/chunk-MNN6NFZK.js +0 -203
  480. package/dist/chunk-N4ULQIGJ.js +0 -379
  481. package/dist/chunk-NX5IB4IY.js +0 -37
  482. package/dist/chunk-O3XTTT4K.js +0 -217
  483. package/dist/chunk-PGMHFGW7.js +0 -102
  484. package/dist/chunk-PUIQ3UF7.js +0 -176
  485. package/dist/chunk-QBGMD5UV.js +0 -50
  486. package/dist/chunk-QQH32U6O.js +0 -296
  487. package/dist/chunk-R3RD3VEX.js +0 -184
  488. package/dist/chunk-RIHO7ZD5.js +0 -119
  489. package/dist/chunk-RRKUFU4L.js +0 -243
  490. package/dist/chunk-S72DZX6B.js +0 -848
  491. package/dist/chunk-T4KD2FBB.js +0 -263
  492. package/dist/chunk-TLWU7JWO.js +0 -692
  493. package/dist/chunk-TUZ3MJVF.js +0 -6375
  494. package/dist/chunk-TZVSDB7S.js +0 -2102
  495. package/dist/chunk-UHPFEULI.js +0 -480
  496. package/dist/chunk-WJLRU5OF.js +0 -5786
  497. package/dist/chunk-WJLRU5OF.js.map +0 -7
  498. package/dist/chunk-XYAT642G.js +0 -305
  499. package/dist/chunk-Y3CSXSOZ.js +0 -652
  500. package/dist/chunk-Y3CSXSOZ.js.map +0 -7
  501. package/dist/chunk-YJFK6C2M.js +0 -35
  502. package/dist/chunk-Z44FLO2F.js +0 -626
  503. package/dist/chunk-Z5ECCUNG.js +0 -444
  504. package/dist/chunk-Z6CMJQKG.js +0 -1253
  505. package/dist/chunk-Z6LQ3URB.js +0 -14
  506. package/dist/chunk-ZESHWW2R.js +0 -54
  507. package/dist/chunk-ZK4JKSUK.js +0 -56
  508. package/dist/chunk-ZV7LZY67.js +0 -550
  509. package/dist/cohort-T3SEGYG3.js +0 -66
  510. package/dist/cohortSunburst-HIWGWD7A.js +0 -402
  511. package/dist/condition-KEFHKNUU.js +0 -323
  512. package/dist/controls-MDUZLMY7.js +0 -30
  513. package/dist/controls.config-4XZZXUZV.js +0 -30
  514. package/dist/correlation-55LF7GPF.js +0 -91
  515. package/dist/customdata.inputui-6KIPVY2Q.js +0 -280
  516. package/dist/dataDownload-XCFCSKDO.js +0 -326
  517. package/dist/databrowser.ui-HLWUAHSZ.js +0 -421
  518. package/dist/databrowser.ui-HLWUAHSZ.js.map +0 -7
  519. package/dist/dictionary-P5JGXQSW.js +0 -109
  520. package/dist/dnaMethylation-ZNR5U6HS.js +0 -29
  521. package/dist/dnaMethylation.integration.spec-7AMBXA4M.js +0 -194
  522. package/dist/dofetch-4P5F5ZGU.js +0 -49
  523. package/dist/e2pca-AJQ22AHJ.js +0 -340
  524. package/dist/ep-3ZEN3C4U.js +0 -1247
  525. package/dist/expclust.gdc.spec-IQXJYSCH.js +0 -298
  526. package/dist/facet-RPFQA3DH.js +0 -556
  527. package/dist/gb-R4D647D2.js +0 -77
  528. package/dist/geneExpClustering-JLJL6S3Q.js +0 -240
  529. package/dist/geneExpression-NWNOCRVM.js +0 -309
  530. package/dist/geneExpression-TK75VNQG.js +0 -29
  531. package/dist/geneExpression.unit.spec-4HTUTQ5K.js +0 -151
  532. package/dist/geneORA-7FP6KZSE.js +0 -269
  533. package/dist/geneRanking-SBFOUZTQ.js +0 -544
  534. package/dist/geneVariant-3DHX4LQL.js +0 -289
  535. package/dist/geneVariant-SUQWO6ON.js +0 -32
  536. package/dist/geneVariant.integration.spec-KOUVJAFB.js +0 -672
  537. package/dist/genefusion.ui-DAIBYS5I.js +0 -299
  538. package/dist/geneset-MKSYRPV4.js +0 -199
  539. package/dist/genomeBrowser.spec-JSHMD3CR.js +0 -272
  540. package/dist/grin2-RFRYBHBV.js +0 -945
  541. package/dist/grin2-Z4ETF6OM.js +0 -66
  542. package/dist/hierCluster-C67VO3VF.js +0 -55
  543. package/dist/hierCluster-CEJTROX7.js +0 -51
  544. package/dist/hierCluster.config-G3X5I72U.js +0 -32
  545. package/dist/hierCluster.integration.spec-HTS2GNUR.js +0 -479
  546. package/dist/hierCluster.interactivity-4JVDLIPZ.js +0 -45
  547. package/dist/hierCluster.renderers-YGX6MZZW.js +0 -18
  548. package/dist/imagePlot-HNKJX6YK.js +0 -152
  549. package/dist/importPlot-XUL6XFBL.js +0 -8
  550. package/dist/isoformExpression-ZJJUXJDF.js +0 -31
  551. package/dist/isoformExpression.unit.spec-INU6WFAM.js +0 -233
  552. package/dist/jspdf.es.min-THXUXEDC.js +0 -40
  553. package/dist/junction-FKYIKDC4.js +0 -32
  554. package/dist/junction.customTerm-3R2GNE3A.js +0 -15
  555. package/dist/junction.unit.spec-VRFIOT4T.js +0 -178
  556. package/dist/launch.adhoc-SDMXDSHS.js +0 -33
  557. package/dist/leftlabel.sample-S33KB225.js +0 -253
  558. package/dist/lollipop-WXQOGEY7.js +0 -162
  559. package/dist/maf-K6ZUNABR.js +0 -451
  560. package/dist/maftimeline-Y2LETT7W.js +0 -583
  561. package/dist/matrix-LADX4K5W.js +0 -50
  562. package/dist/matrix-M63KP6IL.js +0 -55
  563. package/dist/matrix.cells-5RTZUJVN.js +0 -25
  564. package/dist/matrix.config-ZMT7A2D5.js +0 -33
  565. package/dist/matrix.data-Y5TPRGMW.js +0 -22
  566. package/dist/matrix.groups-6DXCAY4P.js +0 -25
  567. package/dist/matrix.integration.spec-LJ5EQ65D.js +0 -3156
  568. package/dist/matrix.interactivity-2ISWFOK2.js +0 -33
  569. package/dist/matrix.layout-EAYTUK2H.js +0 -35
  570. package/dist/matrix.legend-S3E76TVO.js +0 -19
  571. package/dist/matrix.renderers-XUMZZUDW.js +0 -30
  572. package/dist/matrix.serieses-3UGLZW25.js +0 -18
  573. package/dist/matrix.sort-A7CNLDUJ.js +0 -25
  574. package/dist/matrix.sort.unit.spec-UPG3D6GE.js +0 -464
  575. package/dist/matrix.sorterUi-6PZR3YOD.js +0 -15
  576. package/dist/matrix.sorterUi.unit.spec-WPMREECT.js +0 -334
  577. package/dist/matrix.unit.spec-Z2HXOXM4.js +0 -146
  578. package/dist/mavb-WT4XM6U3.js +0 -726
  579. package/dist/mds.samplescatterplot-UTEBJF66.js +0 -1545
  580. package/dist/mds.survivalplot-DXWJA4IJ.js +0 -472
  581. package/dist/multivalue-LR7Z3OLZ.js +0 -79
  582. package/dist/numericDictTermCluster-6XDVVWLE.js +0 -62
  583. package/dist/oncomatrix-WV2LSH3X.js +0 -286
  584. package/dist/oncomatrix.spec-S7KHSJJG.js +0 -439
  585. package/dist/plot.2dvaf-FH7PMZ3U.js +0 -368
  586. package/dist/plot.app-DDB6YZJ3.js +0 -32
  587. package/dist/plot.barplot-XVSZDYKB.js +0 -93
  588. package/dist/plot.boxplot-M6URTYED.js +0 -142
  589. package/dist/plot.brainImaging-GNIBY3XC.js +0 -51
  590. package/dist/plot.disco-EH4E7B3O.js +0 -98
  591. package/dist/plot.ssgq-7HIGQHOT.js +0 -130
  592. package/dist/plot.vaf2cov-MGJHP2PV.js +0 -249
  593. package/dist/polar2-VYUW5GZO.js +0 -228
  594. package/dist/profileForms-LHJCFAP6.js +0 -937
  595. package/dist/profilePlot-UF2KERDD.js +0 -45
  596. package/dist/proteinView-5AF4I3PB.js +0 -1346
  597. package/dist/proteomeCohortCompare-4DYWZTLQ.js +0 -866
  598. package/dist/pseudbulk.unit.spec-ZTAP2YYA.js +0 -82
  599. package/dist/pseudobulk-A2KE233U.js +0 -31
  600. package/dist/qualitative-3FDE4JUM.js +0 -34
  601. package/dist/qualitative-NVWG57TK.js +0 -241
  602. package/dist/radar2-3CQ7T5QY.js +0 -323
  603. package/dist/radarFacility2-ERBWZQFH.js +0 -331
  604. package/dist/rememberedGvQ.unit.spec-SHTMMZGG.js +0 -210
  605. package/dist/render-LIUPN5SK.js +0 -29
  606. package/dist/report-JWNWR6NA.js +0 -213
  607. package/dist/sampleView-BQ6HCCKT.js +0 -39
  608. package/dist/samplelst-RQWH7WOX.js +0 -114
  609. package/dist/samplematrix-7FDWXSZA.js +0 -2188
  610. package/dist/sc-J2ZPQFGP.js +0 -77
  611. package/dist/scatter-7FQLITP7.js +0 -919
  612. package/dist/scatter-BDIZX73F.js +0 -84
  613. package/dist/selectGenomeWithTklst-52BHWMVR.js +0 -125
  614. package/dist/singleCellCellType-OC6QG6MU.js +0 -29
  615. package/dist/singleCellCellType.unit.spec-R3QPRXVY.js +0 -150
  616. package/dist/singleCellGeneExpression-QDRIVFQ5.js +0 -29
  617. package/dist/singleCellGeneExpression.unit.spec-FHUA6VWD.js +0 -144
  618. package/dist/singleCellNumericValue-2PKMS7NM.js +0 -29
  619. package/dist/singleCellNumericValue.unit.spec-YXDYOFJ5.js +0 -412
  620. package/dist/singleCellPlot-5RVA7KM7.js +0 -44
  621. package/dist/singlecell-5OUPDXEQ.js +0 -1562
  622. package/dist/singlecell-MLKBNJAG.js +0 -77
  623. package/dist/snp-ARLPF6ZU.js +0 -29
  624. package/dist/snp.unit.spec-MUB7YKMP.js +0 -167
  625. package/dist/snplocus-EZ33TXDU.js +0 -200
  626. package/dist/snplst-GLTNXAE5.js +0 -36
  627. package/dist/spliceevent.a53ss.diagram-FMP6CNCV.js +0 -142
  628. package/dist/spliceevent.exonskip.diagram-QRQ3DZ3I.js +0 -274
  629. package/dist/spliceevent.noeventdiagram-LAPCKJS3.js +0 -451
  630. package/dist/ssGSEA-WUE2PKUU.js +0 -29
  631. package/dist/ssGSEA.unit.spec-Y7KCKEGK.js +0 -79
  632. package/dist/stattable-GZF4ZWTT.js +0 -112
  633. package/dist/studyCatalog-PPV7WB2O.js +0 -457
  634. package/dist/summarizeCnvGeneexp-LZ7UWWZS.js +0 -154
  635. package/dist/summarizeGeneexpSurvival-VBRJFZR6.js +0 -101
  636. package/dist/summarizeMutationCnv-6LUM4YR7.js +0 -155
  637. package/dist/summarizeMutationDiagnosis-B47HKNM6.js +0 -31
  638. package/dist/summarizeMutationSurvival-6GH3MTLN.js +0 -95
  639. package/dist/summary-BBI7MS3B.js +0 -40
  640. package/dist/summary.integration.spec-SYLP7X3F.js +0 -405
  641. package/dist/summaryInput-5PPK7KRL.js +0 -238
  642. package/dist/sunburst-BVPS44ZR.js +0 -34
  643. package/dist/sunburst-H57DYWLE.js +0 -274
  644. package/dist/survival-C26WPJFT.js +0 -1248
  645. package/dist/survival-C26WPJFT.js.map +0 -7
  646. package/dist/survival-PRHRAD2T.js +0 -49
  647. package/dist/survival.integration.spec-KH6GPVZ4.js +0 -609
  648. package/dist/svg2pdf.es.min-BRE45YLJ.js +0 -3157
  649. package/dist/svgraph-VVGRE672.js +0 -1377
  650. package/dist/svmr-OKTQIHLN.js +0 -3834
  651. package/dist/swimmer-U5COUOM6.js +0 -993
  652. package/dist/table-I7SINEY4.js +0 -192
  653. package/dist/termCollection-QCSPDISY.js +0 -29
  654. package/dist/termCollection-TFNI2VIX.js +0 -247
  655. package/dist/termCollection.unit.spec-22E76H2W.js +0 -295
  656. package/dist/termCollectionFractionSelection-VZ5JJ7KV.js +0 -38
  657. package/dist/termCollectionFractionSelection.unit.spec-KCAQU2BV.js +0 -184
  658. package/dist/tk-GBNB42AI.js +0 -37
  659. package/dist/tk-YOBCGYFC.js +0 -1193
  660. package/dist/tp.ui-OEL4S73T.js +0 -1453
  661. package/dist/tvs.categorical-3X6CO5EA.js +0 -28
  662. package/dist/tvs.condition-YZQSSONN.js +0 -160
  663. package/dist/tvs.dt-GCMLLAJC.js +0 -34
  664. package/dist/tvs.dtcnv.categorical-ZSYUQQXP.js +0 -31
  665. package/dist/tvs.dtcnv.continuous-T67YFFAE.js +0 -72
  666. package/dist/tvs.dtfusion-VR2NAX3F.js +0 -31
  667. package/dist/tvs.dtitd-O3MIZPZO.js +0 -31
  668. package/dist/tvs.dtsnvindel-6G7UNHSQ.js +0 -31
  669. package/dist/tvs.dtsv-VZ2I4AMH.js +0 -31
  670. package/dist/tvs.multivalue-6KFI5ELB.js +0 -84
  671. package/dist/tvs.numeric-SFSOLXVF.js +0 -32
  672. package/dist/tvs.samplelst-WD5UMMTP.js +0 -95
  673. package/dist/tvs.survival-A2RUXAXJ.js +0 -110
  674. package/dist/tvs.termCollection-NVW4LO44.js +0 -118
  675. package/dist/vocabulary-FASF5IUM.js +0 -32
  676. package/dist/wsi.direct-O6HFKPCP.js +0 -11514
  677. package/dist/wsi.direct-O6HFKPCP.js.map +0 -7
  678. /package/dist/{2dmaf-7HOQRW25.js.map → 2dmaf-OWA6REJ5.js.map} +0 -0
  679. /package/dist/{AggMatrixInput-LMVRNQBN.js.map → AggMatrixInput-5GC33U5A.js.map} +0 -0
  680. /package/dist/{AggregateMatrix-AMQTLJV2.js.map → AggregateMatrix-CMJFO53B.js.map} +0 -0
  681. /package/dist/{AppHeader-AK7O2HUI.js.map → AppHeader-KJCXF35P.js.map} +0 -0
  682. /package/dist/{CorrelationVolcano-DO7I63FR.js.map → CorrelationVolcano-GHTPFM2V.js.map} +0 -0
  683. /package/dist/{Cuminc-NHABXYET.js.map → Cuminc-HHBYFFFM.js.map} +0 -0
  684. /package/dist/{DE-A327BZNW.js.map → DE-VVKIMVXD.js.map} +0 -0
  685. /package/dist/{DEinput-VKRBFYUE.js.map → DEinput-F7HSM2SO.js.map} +0 -0
  686. /package/dist/{DM-NU23H5PL.js.map → DM-UBCIWZEY.js.map} +0 -0
  687. /package/dist/{DifferentialAnalysis-SH47YDQQ.js.map → DifferentialAnalysis-UUXXMOQS.js.map} +0 -0
  688. /package/dist/{Disco-DOLET5UY.js.map → Disco-NHXU7LG7.js.map} +0 -0
  689. /package/dist/{Disco.UI-6J6INV56.js.map → Disco.UI-GSSSK4YJ.js.map} +0 -0
  690. /package/dist/{GB-LQCK6YNB.js.map → GB-CIQGJBJP.js.map} +0 -0
  691. /package/dist/{GSEA-KLTV4JDP.js.map → GSEA-3GVFEJTX.js.map} +0 -0
  692. /package/dist/{GeneExpInput-ZMTWWDO7.js.map → GeneExpInput-CFU3Q7FM.js.map} +0 -0
  693. /package/dist/{Geomap-4NP2JPMA.js.map → Geomap-NMVFA77Q.js.map} +0 -0
  694. /package/dist/{HicApp-DXF6B4YR.js.map → HicApp-4FCGUUJD.js.map} +0 -0
  695. /package/dist/{NumBinaryEditor-JZZS67NB.js.map → NumBinaryEditor-4WUDJRSU.js.map} +0 -0
  696. /package/dist/{NumBinaryEditor.unit.spec-S2MKCJYX.js.map → NumBinaryEditor.unit.spec-MV53GTGQ.js.map} +0 -0
  697. /package/dist/{NumContEditor-IRZPIDJU.js.map → NumContEditor-U4R6HPDM.js.map} +0 -0
  698. /package/dist/{NumContEditor.unit.spec-JDSSEJLJ.js.map → NumContEditor.unit.spec-J4ANPBSF.js.map} +0 -0
  699. /package/dist/{NumCustomBinEditor-E2FJNISZ.js.map → NumCustomBinEditor-QRGDNFP4.js.map} +0 -0
  700. /package/dist/{NumCustomBinEditor.unit.spec-26GWME2W.js.map → NumCustomBinEditor.unit.spec-PPF233FW.js.map} +0 -0
  701. /package/dist/{NumDiscreteEditor-JECWQKST.js.map → NumDiscreteEditor-LNK4KHSL.js.map} +0 -0
  702. /package/dist/{NumDiscreteEditor.unit.spec-DG52CSV5.js.map → NumDiscreteEditor.unit.spec-QY6O62JU.js.map} +0 -0
  703. /package/dist/{NumRegularBinEditor-W726TJIB.js.map → NumRegularBinEditor-XTINNM5L.js.map} +0 -0
  704. /package/dist/{NumRegularBinEditor.unit.spec-GG7XXYLQ.js.map → NumRegularBinEditor.unit.spec-FSLARHOC.js.map} +0 -0
  705. /package/dist/{NumSplineEditor-7UYPJI57.js.map → NumSplineEditor-YSQTKBFA.js.map} +0 -0
  706. /package/dist/{NumSplineEditor.unit.spec-MESJVLZV.js.map → NumSplineEditor.unit.spec-QNITPY7R.js.map} +0 -0
  707. /package/dist/{NumericDensity-VFXO6VZ7.js.map → NumericDensity-J5WS74JZ.js.map} +0 -0
  708. /package/dist/{NumericDensity.unit.spec-OQDBGUQJ.js.map → NumericDensity.unit.spec-4WQWLSSJ.js.map} +0 -0
  709. /package/dist/{NumericHandler-EJHWVASI.js.map → NumericHandler-ZEWC25U2.js.map} +0 -0
  710. /package/dist/{NumericHandler.unit.spec-VUIGKU4C.js.map → NumericHandler.unit.spec-A3G5FWGV.js.map} +0 -0
  711. /package/dist/{ProteomeInput-ATBCNQLN.js.map → ProteomeInput-7DXGQIOO.js.map} +0 -0
  712. /package/dist/{Regression-ZL6XKZA6.js.map → Regression-VQ5MC6KW.js.map} +0 -0
  713. /package/dist/{RunChart2-NUSOF6LW.js.map → RunChart2-B33CQUXH.js.map} +0 -0
  714. /package/dist/{SC-A55NDRZ2.js.map → SC-LEVWXS4P.js.map} +0 -0
  715. /package/dist/{Volcano-UNZ6OAWB.js.map → Volcano-NTXVM3UR.js.map} +0 -0
  716. /package/dist/{aboutSunburst-VTBLSKCY.js.map → aboutSunburst-NGH3V74S.js.map} +0 -0
  717. /package/dist/{adSandbox-7RA6NVM4.js.map → adSandbox-VOAL4P5A.js.map} +0 -0
  718. /package/dist/{animatedBubbleChart-BRGFUEYW.js.map → animatedBubbleChart-HKOGYPSS.js.map} +0 -0
  719. /package/dist/{app-2GMWQIJZ.js.map → app-AZLUP2BA.js.map} +0 -0
  720. /package/dist/{app-4KI25R4S.js.map → app-JJPKGBEV.js.map} +0 -0
  721. /package/dist/{bam-B3JWSAZ5.js.map → bam-GIZSH2MF.js.map} +0 -0
  722. /package/dist/{barchart-E2IWHDLL.js.map → barchart-CVTXLIIQ.js.map} +0 -0
  723. /package/dist/{barchart2-QDATDPDT.js.map → barchart2-XYC6WITL.js.map} +0 -0
  724. /package/dist/{block-IS3WJCNW.js.map → block-DXRSU62C.js.map} +0 -0
  725. /package/dist/{block.init-ZCEUPHX2.js.map → block.init-U4Y6ROG4.js.map} +0 -0
  726. /package/dist/{block.mds.expressionrank-WCJNZ63X.js.map → block.mds.expressionrank-BB26LVTM.js.map} +0 -0
  727. /package/dist/{block.mds.geneboxplot-BCXVN3GL.js.map → block.mds.geneboxplot-VVKEU3SL.js.map} +0 -0
  728. /package/dist/{block.mds.junction-J7H7WNMN.js.map → block.mds.junction-XUZX6EAQ.js.map} +0 -0
  729. /package/dist/{block.mds.svcnv-GJ6BSNGY.js.map → block.mds.svcnv-WDSACPWG.js.map} +0 -0
  730. /package/dist/{block.svg-SR5EQSKQ.js.map → block.svg-T5BA7VLS.js.map} +0 -0
  731. /package/dist/{block.tk.aicheck-RPKZMKLM.js.map → block.tk.aicheck-3VN2RDPD.js.map} +0 -0
  732. /package/dist/{block.tk.bam-BDF3UFRA.js.map → block.tk.bam-5XZ3N4Y7.js.map} +0 -0
  733. /package/dist/{block.tk.bigwig.ui-2MG6M4CP.js.map → block.tk.bigwig.ui-JODVOS4R.js.map} +0 -0
  734. /package/dist/{block.tk.hicstraw-JFMLXXLH.js.map → block.tk.hicstraw-AFNWJ2YP.js.map} +0 -0
  735. /package/dist/{block.tk.junction-ZDFTQJGA.js.map → block.tk.junction-T2G6XEVS.js.map} +0 -0
  736. /package/dist/{block.tk.junction.textmatrixui-OHAZEQNT.js.map → block.tk.junction.textmatrixui-FL5MZH7K.js.map} +0 -0
  737. /package/dist/{block.tk.ld-BRYYNH55.js.map → block.tk.ld-JKBXDOB5.js.map} +0 -0
  738. /package/dist/{block.tk.menu-XQKB62BG.js.map → block.tk.menu-2X4BN7BN.js.map} +0 -0
  739. /package/dist/{block.tk.pgv-76I52IUX.js.map → block.tk.pgv-ASUVEGQF.js.map} +0 -0
  740. /package/dist/{brainImaging-65UMKH6J.js.map → brainImaging-27442GMQ.js.map} +0 -0
  741. /package/dist/{brainRegions-AURQKH5R.js.map → brainRegions-3367RQCU.js.map} +0 -0
  742. /package/dist/{bubbleHeatmap-T3LEYZBU.js.map → bubbleHeatmap-IOVS6SHX.js.map} +0 -0
  743. /package/dist/{cellTypeBubbleHeatmap-UPY53IPQ.js.map → cellTypeBubbleHeatmap-7XJP6B5W.js.map} +0 -0
  744. /package/dist/{chunk-7CE2X6HL.js.map → chunk-2CTAWHGB.js.map} +0 -0
  745. /package/dist/{chunk-S72DZX6B.js.map → chunk-2ESAB2PP.js.map} +0 -0
  746. /package/dist/{chunk-HQNH2UX6.js.map → chunk-2GP3LH7J.js.map} +0 -0
  747. /package/dist/{chunk-MANAUI7R.js.map → chunk-2UGYE6EJ.js.map} +0 -0
  748. /package/dist/{chunk-MEUSRAOE.js.map → chunk-3TJBSAIO.js.map} +0 -0
  749. /package/dist/{chunk-G4QRB64M.js.map → chunk-46KQE4DV.js.map} +0 -0
  750. /package/dist/{chunk-ZK4JKSUK.js.map → chunk-4ICGMPPE.js.map} +0 -0
  751. /package/dist/{chunk-I2QKZURX.js.map → chunk-4RQTQDHF.js.map} +0 -0
  752. /package/dist/{chunk-JHLF2ZC2.js.map → chunk-5FD6NRGE.js.map} +0 -0
  753. /package/dist/{chunk-3A2CWTBI.js.map → chunk-5JBOGNSG.js.map} +0 -0
  754. /package/dist/{chunk-Z44FLO2F.js.map → chunk-5OWPH4IH.js.map} +0 -0
  755. /package/dist/{chunk-FE5TCBIT.js.map → chunk-63TCOVAK.js.map} +0 -0
  756. /package/dist/{chunk-DEIIID6R.js.map → chunk-7ONTCJWB.js.map} +0 -0
  757. /package/dist/{chunk-GUW7VTUL.js.map → chunk-7Q4KAFCS.js.map} +0 -0
  758. /package/dist/{chunk-PGMHFGW7.js.map → chunk-7UXV4IX5.js.map} +0 -0
  759. /package/dist/{chunk-7BD532EJ.js.map → chunk-7ZCYC2DQ.js.map} +0 -0
  760. /package/dist/{chunk-R3RD3VEX.js.map → chunk-AQSZLUDV.js.map} +0 -0
  761. /package/dist/{chunk-LXS2GSF4.js.map → chunk-BBA5MAFS.js.map} +0 -0
  762. /package/dist/{chunk-TZVSDB7S.js.map → chunk-BNJC6OX5.js.map} +0 -0
  763. /package/dist/{chunk-RIHO7ZD5.js.map → chunk-BOQYGAYA.js.map} +0 -0
  764. /package/dist/{chunk-TLWU7JWO.js.map → chunk-C4YACFGH.js.map} +0 -0
  765. /package/dist/{chunk-ZESHWW2R.js.map → chunk-CKO54XWB.js.map} +0 -0
  766. /package/dist/{chunk-CDUBFFZ7.js.map → chunk-COWLQ74R.js.map} +0 -0
  767. /package/dist/{chunk-YJFK6C2M.js.map → chunk-CU434U4N.js.map} +0 -0
  768. /package/dist/{chunk-JDRUY7IR.js.map → chunk-D2YPS46O.js.map} +0 -0
  769. /package/dist/{chunk-3I26BABG.js.map → chunk-DVSTBGZT.js.map} +0 -0
  770. /package/dist/{chunk-CAH6LJ5Z.js.map → chunk-EIO6DMIQ.js.map} +0 -0
  771. /package/dist/{chunk-4MGXKCPS.js.map → chunk-EM56Y4X6.js.map} +0 -0
  772. /package/dist/{chunk-NX5IB4IY.js.map → chunk-F6CYUMSM.js.map} +0 -0
  773. /package/dist/{chunk-GBKQHVKJ.js.map → chunk-FUTHP5J4.js.map} +0 -0
  774. /package/dist/{chunk-O3XTTT4K.js.map → chunk-G5GFCBJT.js.map} +0 -0
  775. /package/dist/{chunk-JXVRNCAZ.js.map → chunk-GOL6A746.js.map} +0 -0
  776. /package/dist/{chunk-JUPLOOCO.js.map → chunk-GVLXSPTN.js.map} +0 -0
  777. /package/dist/{chunk-MNN6NFZK.js.map → chunk-HNU4RYI5.js.map} +0 -0
  778. /package/dist/{chunk-E54XQGQM.js.map → chunk-HTIZFNBC.js.map} +0 -0
  779. /package/dist/{chunk-5DI4UNH5.js.map → chunk-HUF5BTO6.js.map} +0 -0
  780. /package/dist/{chunk-EYKJQJ7R.js.map → chunk-HWP3U2VY.js.map} +0 -0
  781. /package/dist/{chunk-ZV7LZY67.js.map → chunk-JEXS72M5.js.map} +0 -0
  782. /package/dist/{chunk-PUIQ3UF7.js.map → chunk-JNIYPQWY.js.map} +0 -0
  783. /package/dist/{chunk-7MJENXZ6.js.map → chunk-K5RCZIZN.js.map} +0 -0
  784. /package/dist/{chunk-2OMX5AYB.js.map → chunk-KA3KYNOP.js.map} +0 -0
  785. /package/dist/{chunk-Z5ECCUNG.js.map → chunk-KGFH5VTH.js.map} +0 -0
  786. /package/dist/{chunk-6T4MN7LV.js.map → chunk-KTRDLHCP.js.map} +0 -0
  787. /package/dist/{chunk-II5ZAY52.js.map → chunk-L6TGKNRA.js.map} +0 -0
  788. /package/dist/{chunk-H7HTCD2Q.js.map → chunk-LN4KNFOQ.js.map} +0 -0
  789. /package/dist/{chunk-36CCFKWS.js.map → chunk-M4ML4ACA.js.map} +0 -0
  790. /package/dist/{chunk-CPWM4S3K.js.map → chunk-MIDVLNN3.js.map} +0 -0
  791. /package/dist/{chunk-2GWAEK4R.js.map → chunk-MUVXIOXM.js.map} +0 -0
  792. /package/dist/{chunk-53VTLOOW.js.map → chunk-N6AHRJAM.js.map} +0 -0
  793. /package/dist/{chunk-CPVUBEDA.js.map → chunk-NB4UU4DH.js.map} +0 -0
  794. /package/dist/{chunk-QQH32U6O.js.map → chunk-NGG4737W.js.map} +0 -0
  795. /package/dist/{chunk-Z6CMJQKG.js.map → chunk-O4BDFBVK.js.map} +0 -0
  796. /package/dist/{chunk-MG5U4JYY.js.map → chunk-OGU7IDV7.js.map} +0 -0
  797. /package/dist/{chunk-UHPFEULI.js.map → chunk-OVO6NYUR.js.map} +0 -0
  798. /package/dist/{chunk-3TO7TWHS.js.map → chunk-OXRZSZKA.js.map} +0 -0
  799. /package/dist/{chunk-QBGMD5UV.js.map → chunk-QMR3QMJG.js.map} +0 -0
  800. /package/dist/{chunk-HYW74ZT2.js.map → chunk-QUVGLTCF.js.map} +0 -0
  801. /package/dist/{chunk-XYAT642G.js.map → chunk-RCLCEA55.js.map} +0 -0
  802. /package/dist/{chunk-HZTSMLBZ.js.map → chunk-RCVA2RWU.js.map} +0 -0
  803. /package/dist/{chunk-TUZ3MJVF.js.map → chunk-RSCSTOUN.js.map} +0 -0
  804. /package/dist/{chunk-L2H4W3UM.js.map → chunk-SCXWXLMR.js.map} +0 -0
  805. /package/dist/{chunk-2CQ4YA7M.js.map → chunk-SQUMXZXI.js.map} +0 -0
  806. /package/dist/{chunk-7SFK32JP.js.map → chunk-T2DORAV4.js.map} +0 -0
  807. /package/dist/{chunk-Z6LQ3URB.js.map → chunk-TBXJ2CUA.js.map} +0 -0
  808. /package/dist/{chunk-C7ROKWV2.js.map → chunk-TQLHKDNS.js.map} +0 -0
  809. /package/dist/{chunk-C7KUMZQM.js.map → chunk-VQD6GZMU.js.map} +0 -0
  810. /package/dist/{chunk-T4KD2FBB.js.map → chunk-VZBRG6HQ.js.map} +0 -0
  811. /package/dist/{chunk-IW5XJT3H.js.map → chunk-WQHL6SR3.js.map} +0 -0
  812. /package/dist/{chunk-2FTQ5RMP.js.map → chunk-X7JGAQ5N.js.map} +0 -0
  813. /package/dist/{chunk-7TG44KO3.js.map → chunk-Z6ZFRHXK.js.map} +0 -0
  814. /package/dist/{chunk-N4ULQIGJ.js.map → chunk-ZCY72DDM.js.map} +0 -0
  815. /package/dist/{chunk-RRKUFU4L.js.map → chunk-ZHY7ZHWC.js.map} +0 -0
  816. /package/dist/{chunk-2VBU42YX.js.map → chunk-ZLQ6PAI6.js.map} +0 -0
  817. /package/dist/{chunk-MHWYRNGA.js.map → chunk-ZUG4EY4T.js.map} +0 -0
  818. /package/dist/{cohort-T3SEGYG3.js.map → cohort-2DQOQ5AO.js.map} +0 -0
  819. /package/dist/{cohortSunburst-HIWGWD7A.js.map → cohortSunburst-W6XC7VD6.js.map} +0 -0
  820. /package/dist/{condition-KEFHKNUU.js.map → condition-3A7I5UQA.js.map} +0 -0
  821. /package/dist/{controls-MDUZLMY7.js.map → controls-G5WYBX4P.js.map} +0 -0
  822. /package/dist/{controls.config-4XZZXUZV.js.map → controls.config-TAFGM2S2.js.map} +0 -0
  823. /package/dist/{correlation-55LF7GPF.js.map → correlation-K4EOOQJU.js.map} +0 -0
  824. /package/dist/{customdata.inputui-6KIPVY2Q.js.map → customdata.inputui-E7RRN3KY.js.map} +0 -0
  825. /package/dist/{dataDownload-XCFCSKDO.js.map → dataDownload-OXZGAE5R.js.map} +0 -0
  826. /package/dist/{dictionary-P5JGXQSW.js.map → dictionary-MUNAUI43.js.map} +0 -0
  827. /package/dist/{dnaMethylation-ZNR5U6HS.js.map → dnaMethylation-SOV4HBAX.js.map} +0 -0
  828. /package/dist/{dnaMethylation.integration.spec-7AMBXA4M.js.map → dnaMethylation.integration.spec-T4KKTMRL.js.map} +0 -0
  829. /package/dist/{dofetch-4P5F5ZGU.js.map → dofetch-2CR2TVWC.js.map} +0 -0
  830. /package/dist/{e2pca-AJQ22AHJ.js.map → e2pca-EIOJCV4O.js.map} +0 -0
  831. /package/dist/{ep-3ZEN3C4U.js.map → ep-5QX3CW6D.js.map} +0 -0
  832. /package/dist/{expclust.gdc.spec-IQXJYSCH.js.map → expclust.gdc.spec-TNHPZLYQ.js.map} +0 -0
  833. /package/dist/{facet-RPFQA3DH.js.map → facet-I3OC4DK2.js.map} +0 -0
  834. /package/dist/{gb-R4D647D2.js.map → gb-WPIUHR3O.js.map} +0 -0
  835. /package/dist/{geneExpClustering-JLJL6S3Q.js.map → geneExpClustering-EYGZENSP.js.map} +0 -0
  836. /package/dist/{geneExpression-NWNOCRVM.js.map → geneExpression-54L3DH32.js.map} +0 -0
  837. /package/dist/{geneExpression-TK75VNQG.js.map → geneExpression-6S6H2EVY.js.map} +0 -0
  838. /package/dist/{geneExpression.unit.spec-4HTUTQ5K.js.map → geneExpression.unit.spec-VVI2MXIH.js.map} +0 -0
  839. /package/dist/{geneORA-7FP6KZSE.js.map → geneORA-7M64LXZC.js.map} +0 -0
  840. /package/dist/{geneRanking-SBFOUZTQ.js.map → geneRanking-676CAA3B.js.map} +0 -0
  841. /package/dist/{geneVariant-3DHX4LQL.js.map → geneVariant-4UPJE6MJ.js.map} +0 -0
  842. /package/dist/{geneVariant-SUQWO6ON.js.map → geneVariant-PFVPL22U.js.map} +0 -0
  843. /package/dist/{geneVariant.integration.spec-KOUVJAFB.js.map → geneVariant.integration.spec-EAJ4OSFQ.js.map} +0 -0
  844. /package/dist/{genefusion.ui-DAIBYS5I.js.map → genefusion.ui-LP4EJUTO.js.map} +0 -0
  845. /package/dist/{geneset-MKSYRPV4.js.map → geneset-ANDOMTPO.js.map} +0 -0
  846. /package/dist/{genomeBrowser.spec-JSHMD3CR.js.map → genomeBrowser.spec-NUXOOL5N.js.map} +0 -0
  847. /package/dist/{grin2-Z4ETF6OM.js.map → grin2-K4LRVCES.js.map} +0 -0
  848. /package/dist/{grin2-RFRYBHBV.js.map → grin2-YFCWJZFR.js.map} +0 -0
  849. /package/dist/{hierCluster-C67VO3VF.js.map → hierCluster-POD3DRO4.js.map} +0 -0
  850. /package/dist/{hierCluster-CEJTROX7.js.map → hierCluster-QA7HXKRD.js.map} +0 -0
  851. /package/dist/{hierCluster.config-G3X5I72U.js.map → hierCluster.config-HQ3SVKCE.js.map} +0 -0
  852. /package/dist/{hierCluster.integration.spec-HTS2GNUR.js.map → hierCluster.integration.spec-MOYDWJL3.js.map} +0 -0
  853. /package/dist/{hierCluster.interactivity-4JVDLIPZ.js.map → hierCluster.interactivity-OZTNHXZQ.js.map} +0 -0
  854. /package/dist/{hierCluster.renderers-YGX6MZZW.js.map → hierCluster.renderers-46E37NL4.js.map} +0 -0
  855. /package/dist/{imagePlot-HNKJX6YK.js.map → imagePlot-HNAYBWY3.js.map} +0 -0
  856. /package/dist/{importPlot-XUL6XFBL.js.map → importPlot-XTW46VF4.js.map} +0 -0
  857. /package/dist/{isoformExpression-ZJJUXJDF.js.map → isoformExpression-2TMTILKG.js.map} +0 -0
  858. /package/dist/{isoformExpression.unit.spec-INU6WFAM.js.map → isoformExpression.unit.spec-SIJWP7TH.js.map} +0 -0
  859. /package/dist/{jspdf.es.min-THXUXEDC.js.map → jspdf.es.min-GSH2SAQO.js.map} +0 -0
  860. /package/dist/{junction-FKYIKDC4.js.map → junction-AICKHNXX.js.map} +0 -0
  861. /package/dist/{junction.customTerm-3R2GNE3A.js.map → junction.customTerm-5STKYZ4B.js.map} +0 -0
  862. /package/dist/{junction.unit.spec-VRFIOT4T.js.map → junction.unit.spec-EXFN4MLW.js.map} +0 -0
  863. /package/dist/{launch.adhoc-SDMXDSHS.js.map → launch.adhoc-PB6PGR7Q.js.map} +0 -0
  864. /package/dist/{leftlabel.sample-S33KB225.js.map → leftlabel.sample-ISUD4A7F.js.map} +0 -0
  865. /package/dist/{lollipop-WXQOGEY7.js.map → lollipop-5UXUAFYY.js.map} +0 -0
  866. /package/dist/{maf-K6ZUNABR.js.map → maf-L6YD25JK.js.map} +0 -0
  867. /package/dist/{maftimeline-Y2LETT7W.js.map → maftimeline-63YZDGJ3.js.map} +0 -0
  868. /package/dist/{matrix-LADX4K5W.js.map → matrix-OPEBHZCW.js.map} +0 -0
  869. /package/dist/{matrix-M63KP6IL.js.map → matrix-TLMWPG7C.js.map} +0 -0
  870. /package/dist/{matrix.cells-5RTZUJVN.js.map → matrix.cells-IELMNYC6.js.map} +0 -0
  871. /package/dist/{matrix.config-ZMT7A2D5.js.map → matrix.config-J7SVFXLM.js.map} +0 -0
  872. /package/dist/{matrix.data-Y5TPRGMW.js.map → matrix.data-DJTJCPO4.js.map} +0 -0
  873. /package/dist/{matrix.groups-6DXCAY4P.js.map → matrix.groups-2REICNZK.js.map} +0 -0
  874. /package/dist/{matrix.integration.spec-LJ5EQ65D.js.map → matrix.integration.spec-ZXU2OEFU.js.map} +0 -0
  875. /package/dist/{matrix.interactivity-2ISWFOK2.js.map → matrix.interactivity-SX3OR6OI.js.map} +0 -0
  876. /package/dist/{matrix.layout-EAYTUK2H.js.map → matrix.layout-ZJ6X5RON.js.map} +0 -0
  877. /package/dist/{matrix.legend-S3E76TVO.js.map → matrix.legend-ZOP72TIO.js.map} +0 -0
  878. /package/dist/{matrix.renderers-XUMZZUDW.js.map → matrix.renderers-YUSROXKN.js.map} +0 -0
  879. /package/dist/{matrix.serieses-3UGLZW25.js.map → matrix.serieses-UMAZNCMR.js.map} +0 -0
  880. /package/dist/{matrix.sort-A7CNLDUJ.js.map → matrix.sort-2JNIZHNL.js.map} +0 -0
  881. /package/dist/{matrix.sort.unit.spec-UPG3D6GE.js.map → matrix.sort.unit.spec-SNB643Y6.js.map} +0 -0
  882. /package/dist/{matrix.sorterUi-6PZR3YOD.js.map → matrix.sorterUi-JXEIY6UL.js.map} +0 -0
  883. /package/dist/{matrix.sorterUi.unit.spec-WPMREECT.js.map → matrix.sorterUi.unit.spec-LDAT4R3H.js.map} +0 -0
  884. /package/dist/{matrix.unit.spec-Z2HXOXM4.js.map → matrix.unit.spec-QBQIMDLD.js.map} +0 -0
  885. /package/dist/{mavb-WT4XM6U3.js.map → mavb-EQUF3VGG.js.map} +0 -0
  886. /package/dist/{mds.samplescatterplot-UTEBJF66.js.map → mds.samplescatterplot-73E45ZT7.js.map} +0 -0
  887. /package/dist/{mds.survivalplot-DXWJA4IJ.js.map → mds.survivalplot-DL53IRVD.js.map} +0 -0
  888. /package/dist/{multivalue-LR7Z3OLZ.js.map → multivalue-PQN75ENP.js.map} +0 -0
  889. /package/dist/{numericDictTermCluster-6XDVVWLE.js.map → numericDictTermCluster-FGMIOTBO.js.map} +0 -0
  890. /package/dist/{oncomatrix-WV2LSH3X.js.map → oncomatrix-CCHWOA3N.js.map} +0 -0
  891. /package/dist/{oncomatrix.spec-S7KHSJJG.js.map → oncomatrix.spec-GQT3UTCR.js.map} +0 -0
  892. /package/dist/{plot.2dvaf-FH7PMZ3U.js.map → plot.2dvaf-L6ZI5ROR.js.map} +0 -0
  893. /package/dist/{plot.app-DDB6YZJ3.js.map → plot.app-A73VXJCP.js.map} +0 -0
  894. /package/dist/{plot.barplot-XVSZDYKB.js.map → plot.barplot-HSCHPOO7.js.map} +0 -0
  895. /package/dist/{plot.boxplot-M6URTYED.js.map → plot.boxplot-AXBVNTNH.js.map} +0 -0
  896. /package/dist/{plot.brainImaging-GNIBY3XC.js.map → plot.brainImaging-PEMURKM3.js.map} +0 -0
  897. /package/dist/{plot.disco-EH4E7B3O.js.map → plot.disco-YKMYYVMV.js.map} +0 -0
  898. /package/dist/{plot.ssgq-7HIGQHOT.js.map → plot.ssgq-FGMQXKZU.js.map} +0 -0
  899. /package/dist/{plot.vaf2cov-MGJHP2PV.js.map → plot.vaf2cov-IBM7NQEB.js.map} +0 -0
  900. /package/dist/{polar2-VYUW5GZO.js.map → polar2-N7KWY36S.js.map} +0 -0
  901. /package/dist/{profileForms-LHJCFAP6.js.map → profileForms-Q4NN7653.js.map} +0 -0
  902. /package/dist/{profilePlot-UF2KERDD.js.map → profilePlot-SQ77M6LI.js.map} +0 -0
  903. /package/dist/{proteinView-5AF4I3PB.js.map → proteinView-KSIZRDNP.js.map} +0 -0
  904. /package/dist/{proteomeCohortCompare-4DYWZTLQ.js.map → proteomeCohortCompare-GYSBJSDY.js.map} +0 -0
  905. /package/dist/{pseudbulk.unit.spec-ZTAP2YYA.js.map → pseudbulk.unit.spec-XELPZVXM.js.map} +0 -0
  906. /package/dist/{pseudobulk-A2KE233U.js.map → pseudobulk-H3USXM5U.js.map} +0 -0
  907. /package/dist/{qualitative-3FDE4JUM.js.map → qualitative-ABXENRAF.js.map} +0 -0
  908. /package/dist/{qualitative-NVWG57TK.js.map → qualitative-OSEJTJ4D.js.map} +0 -0
  909. /package/dist/{radar2-3CQ7T5QY.js.map → radar2-VTDQGHWN.js.map} +0 -0
  910. /package/dist/{radarFacility2-ERBWZQFH.js.map → radarFacility2-BWGEC5A2.js.map} +0 -0
  911. /package/dist/{rememberedGvQ.unit.spec-SHTMMZGG.js.map → rememberedGvQ.unit.spec-TWUDSEDP.js.map} +0 -0
  912. /package/dist/{render-LIUPN5SK.js.map → render-C3XJQ2QY.js.map} +0 -0
  913. /package/dist/{report-JWNWR6NA.js.map → report-7ZZ44X4R.js.map} +0 -0
  914. /package/dist/{sampleView-BQ6HCCKT.js.map → sampleView-CUCNI65Q.js.map} +0 -0
  915. /package/dist/{samplelst-RQWH7WOX.js.map → samplelst-S7AJQ36J.js.map} +0 -0
  916. /package/dist/{samplematrix-7FDWXSZA.js.map → samplematrix-U7WM6GNB.js.map} +0 -0
  917. /package/dist/{sc-J2ZPQFGP.js.map → sc-FMJHN2SW.js.map} +0 -0
  918. /package/dist/{scatter-7FQLITP7.js.map → scatter-4UMCJNEH.js.map} +0 -0
  919. /package/dist/{scatter-BDIZX73F.js.map → scatter-KMAZ3ZNR.js.map} +0 -0
  920. /package/dist/{selectGenomeWithTklst-52BHWMVR.js.map → selectGenomeWithTklst-5SRM45BI.js.map} +0 -0
  921. /package/dist/{singleCellCellType-OC6QG6MU.js.map → singleCellCellType-GIIICJK5.js.map} +0 -0
  922. /package/dist/{singleCellCellType.unit.spec-R3QPRXVY.js.map → singleCellCellType.unit.spec-MVA7BMGL.js.map} +0 -0
  923. /package/dist/{singleCellGeneExpression-QDRIVFQ5.js.map → singleCellGeneExpression-2QFQHJJH.js.map} +0 -0
  924. /package/dist/{singleCellGeneExpression.unit.spec-FHUA6VWD.js.map → singleCellGeneExpression.unit.spec-SAIETYHV.js.map} +0 -0
  925. /package/dist/{singleCellNumericValue-2PKMS7NM.js.map → singleCellNumericValue-45H5EPIB.js.map} +0 -0
  926. /package/dist/{singleCellNumericValue.unit.spec-YXDYOFJ5.js.map → singleCellNumericValue.unit.spec-FNKEJ2WC.js.map} +0 -0
  927. /package/dist/{singleCellPlot-5RVA7KM7.js.map → singleCellPlot-SP7OEGYQ.js.map} +0 -0
  928. /package/dist/{singlecell-5OUPDXEQ.js.map → singlecell-AVZQX4AH.js.map} +0 -0
  929. /package/dist/{singlecell-MLKBNJAG.js.map → singlecell-JQKUHGIH.js.map} +0 -0
  930. /package/dist/{snp-ARLPF6ZU.js.map → snp-4SA7VABN.js.map} +0 -0
  931. /package/dist/{snp.unit.spec-MUB7YKMP.js.map → snp.unit.spec-YIYGR6GW.js.map} +0 -0
  932. /package/dist/{snplocus-EZ33TXDU.js.map → snplocus-TDGQ57ZJ.js.map} +0 -0
  933. /package/dist/{snplst-GLTNXAE5.js.map → snplst-SWBGRYPA.js.map} +0 -0
  934. /package/dist/{spliceevent.a53ss.diagram-FMP6CNCV.js.map → spliceevent.a53ss.diagram-YODOBS6U.js.map} +0 -0
  935. /package/dist/{spliceevent.exonskip.diagram-QRQ3DZ3I.js.map → spliceevent.exonskip.diagram-PMZIQ5UG.js.map} +0 -0
  936. /package/dist/{spliceevent.noeventdiagram-LAPCKJS3.js.map → spliceevent.noeventdiagram-A4T2PNUX.js.map} +0 -0
  937. /package/dist/{ssGSEA-WUE2PKUU.js.map → ssGSEA-U7D6HOIV.js.map} +0 -0
  938. /package/dist/{ssGSEA.unit.spec-Y7KCKEGK.js.map → ssGSEA.unit.spec-SMNAM5DJ.js.map} +0 -0
  939. /package/dist/{stattable-GZF4ZWTT.js.map → stattable-DBYMPJU6.js.map} +0 -0
  940. /package/dist/{studyCatalog-PPV7WB2O.js.map → studyCatalog-7RABX4W5.js.map} +0 -0
  941. /package/dist/{summarizeCnvGeneexp-LZ7UWWZS.js.map → summarizeCnvGeneexp-YVRW7LWY.js.map} +0 -0
  942. /package/dist/{summarizeGeneexpSurvival-VBRJFZR6.js.map → summarizeGeneexpSurvival-ZB7IWGPS.js.map} +0 -0
  943. /package/dist/{summarizeMutationCnv-6LUM4YR7.js.map → summarizeMutationCnv-CUSYURDK.js.map} +0 -0
  944. /package/dist/{summarizeMutationDiagnosis-B47HKNM6.js.map → summarizeMutationDiagnosis-NSPCT5WI.js.map} +0 -0
  945. /package/dist/{summarizeMutationSurvival-6GH3MTLN.js.map → summarizeMutationSurvival-2PZZCC4G.js.map} +0 -0
  946. /package/dist/{summary-BBI7MS3B.js.map → summary-CYDZSICI.js.map} +0 -0
  947. /package/dist/{summary.integration.spec-SYLP7X3F.js.map → summary.integration.spec-2TLKJS3X.js.map} +0 -0
  948. /package/dist/{summaryInput-5PPK7KRL.js.map → summaryInput-BRQ5JRGV.js.map} +0 -0
  949. /package/dist/{sunburst-BVPS44ZR.js.map → sunburst-435LKL2S.js.map} +0 -0
  950. /package/dist/{sunburst-H57DYWLE.js.map → sunburst-D5WAGHX6.js.map} +0 -0
  951. /package/dist/{survival-PRHRAD2T.js.map → survival-MHESSYWF.js.map} +0 -0
  952. /package/dist/{survival.integration.spec-KH6GPVZ4.js.map → survival.integration.spec-WMS3FTNR.js.map} +0 -0
  953. /package/dist/{svg2pdf.es.min-BRE45YLJ.js.map → svg2pdf.es.min-PHWTISHJ.js.map} +0 -0
  954. /package/dist/{svgraph-VVGRE672.js.map → svgraph-LYFGVTHI.js.map} +0 -0
  955. /package/dist/{svmr-OKTQIHLN.js.map → svmr-UR67QZIP.js.map} +0 -0
  956. /package/dist/{swimmer-U5COUOM6.js.map → swimmer-RP4SUEZS.js.map} +0 -0
  957. /package/dist/{table-I7SINEY4.js.map → table-V4OOMF3B.js.map} +0 -0
  958. /package/dist/{termCollection-QCSPDISY.js.map → termCollection-VHGVBSWW.js.map} +0 -0
  959. /package/dist/{termCollection-TFNI2VIX.js.map → termCollection-WSNM3YFK.js.map} +0 -0
  960. /package/dist/{termCollection.unit.spec-22E76H2W.js.map → termCollection.unit.spec-NCZUZL6P.js.map} +0 -0
  961. /package/dist/{termCollectionFractionSelection-VZ5JJ7KV.js.map → termCollectionFractionSelection-XM3FJWBQ.js.map} +0 -0
  962. /package/dist/{termCollectionFractionSelection.unit.spec-KCAQU2BV.js.map → termCollectionFractionSelection.unit.spec-VO4SAV72.js.map} +0 -0
  963. /package/dist/{tk-YOBCGYFC.js.map → tk-G5PKWSXJ.js.map} +0 -0
  964. /package/dist/{tk-GBNB42AI.js.map → tk-KIELQHVI.js.map} +0 -0
  965. /package/dist/{tp.ui-OEL4S73T.js.map → tp.ui-HAKSWLFB.js.map} +0 -0
  966. /package/dist/{tvs.categorical-3X6CO5EA.js.map → tvs.categorical-G4DM4JY5.js.map} +0 -0
  967. /package/dist/{tvs.condition-YZQSSONN.js.map → tvs.condition-E5NUQONB.js.map} +0 -0
  968. /package/dist/{tvs.dt-GCMLLAJC.js.map → tvs.dt-T4BK24VZ.js.map} +0 -0
  969. /package/dist/{tvs.dtcnv.categorical-ZSYUQQXP.js.map → tvs.dtcnv.categorical-V57TZFRA.js.map} +0 -0
  970. /package/dist/{tvs.dtcnv.continuous-T67YFFAE.js.map → tvs.dtcnv.continuous-D4YIB4PN.js.map} +0 -0
  971. /package/dist/{tvs.dtfusion-VR2NAX3F.js.map → tvs.dtfusion-6DUFLUNH.js.map} +0 -0
  972. /package/dist/{tvs.dtitd-O3MIZPZO.js.map → tvs.dtitd-GOEPAQGR.js.map} +0 -0
  973. /package/dist/{tvs.dtsnvindel-6G7UNHSQ.js.map → tvs.dtsnvindel-ASTXGC4O.js.map} +0 -0
  974. /package/dist/{tvs.dtsv-VZ2I4AMH.js.map → tvs.dtsv-7TGDEWXK.js.map} +0 -0
  975. /package/dist/{tvs.multivalue-6KFI5ELB.js.map → tvs.multivalue-SEIGL2W6.js.map} +0 -0
  976. /package/dist/{tvs.numeric-SFSOLXVF.js.map → tvs.numeric-MLLX5L7Z.js.map} +0 -0
  977. /package/dist/{tvs.samplelst-WD5UMMTP.js.map → tvs.samplelst-HAV7C2EA.js.map} +0 -0
  978. /package/dist/{tvs.survival-A2RUXAXJ.js.map → tvs.survival-3B522MT2.js.map} +0 -0
  979. /package/dist/{tvs.termCollection-NVW4LO44.js.map → tvs.termCollection-R5NG4VXP.js.map} +0 -0
  980. /package/dist/{vocabulary-FASF5IUM.js.map → vocabulary-LBNHNSEN.js.map} +0 -0
@@ -0,0 +1,993 @@
1
+ import {
2
+ getTermValue
3
+ } from "./chunk-2ESAB2PP.js";
4
+ import {
5
+ DataPointInteractions,
6
+ DownloadMenu,
7
+ PlotBase,
8
+ axisstyle,
9
+ controlsInit,
10
+ fillTermWrapper,
11
+ getCombinedTermFilter,
12
+ getT0T2defaultQ,
13
+ make_radios,
14
+ shapeSelector,
15
+ shapes,
16
+ termsettingInit
17
+ } from "./chunk-ZIMAIUZD.js";
18
+ import "./chunk-HJ6L54YS.js";
19
+ import "./chunk-AQSZLUDV.js";
20
+ import {
21
+ Menu
22
+ } from "./chunk-CNFTQSNE.js";
23
+ import "./chunk-BOQYGAYA.js";
24
+ import "./chunk-TVJOSRCH.js";
25
+ import "./chunk-3CIL7KH7.js";
26
+ import "./chunk-T4XPCSLP.js";
27
+ import {
28
+ dofetch3
29
+ } from "./chunk-ZUXXBQ7D.js";
30
+ import "./chunk-W5J3LTYS.js";
31
+ import "./chunk-ZUG4EY4T.js";
32
+ import "./chunk-5FD6NRGE.js";
33
+ import {
34
+ axisBottom,
35
+ getColors
36
+ } from "./chunk-R2H22S4J.js";
37
+ import {
38
+ copyMerge,
39
+ getCompInit
40
+ } from "./chunk-HBNB5TRH.js";
41
+ import "./chunk-PF4DSFDR.js";
42
+ import {
43
+ linear
44
+ } from "./chunk-4OLM3KSB.js";
45
+ import "./chunk-PWYMHUXY.js";
46
+ import "./chunk-TLT4YIG3.js";
47
+ import "./chunk-5R63Q5KH.js";
48
+ import {
49
+ create_default,
50
+ pointer_default
51
+ } from "./chunk-I6Y4O3RR.js";
52
+ import {
53
+ rgb
54
+ } from "./chunk-Q5RDQNIT.js";
55
+ import "./chunk-HS5PO5ZQ.js";
56
+
57
+ // plots/swimmer.ts
58
+ var noValueCategory = "No value";
59
+ var labelGap = 14;
60
+ var legendWidth = 190;
61
+ var shapeBBox = /* @__PURE__ */ new Map();
62
+ function getMarkerGeometry(shapeKey, height) {
63
+ const key = shapes[shapeKey] ? shapeKey : "filledCircle";
64
+ const shape = shapes[key];
65
+ const bb = shapeBBox.get(key) || { x: 0, y: 0, width: 16, height: 16 };
66
+ const strokePx = shape.isFilled ? Math.min(1, height * 0.1) : Math.max(1, height * 0.08);
67
+ const scale = Math.max(0.1, height - strokePx) / bb.height;
68
+ return {
69
+ shape,
70
+ strokePx,
71
+ scale,
72
+ transform: `scale(${scale}) translate(${-(bb.x + bb.width / 2)},${-(bb.y + bb.height / 2)})`,
73
+ halfWidth: (bb.width * scale + strokePx) / 2
74
+ };
75
+ }
76
+ function drawMarker(holder, shapeKey, cx, cy, height, color) {
77
+ const key = shapes[shapeKey] ? shapeKey : "filledCircle";
78
+ const g = holder.append("g").attr("transform", `translate(${cx},${cy})`);
79
+ const path = g.append("path").attr("d", shapes[key].path).attr("fill", color);
80
+ if (!shapeBBox.has(key)) {
81
+ const b = path.node().getBBox();
82
+ if (b.width && b.height) shapeBBox.set(key, { x: b.x, y: b.y, width: b.width, height: b.height });
83
+ }
84
+ const m = getMarkerGeometry(key, height);
85
+ path.attr("transform", m.transform).attr("stroke", m.shape.isFilled ? "white" : color).attr("stroke-width", m.strokePx / m.scale).attr("stroke-linejoin", "round");
86
+ return g;
87
+ }
88
+ function getMarkerIconHtml(shapeKey, color) {
89
+ const svg = create_default("svg").attr("width", 14).attr("height", 14).style("vertical-align", "middle");
90
+ drawMarker(svg, shapeKey, 7, 7, 12, color);
91
+ return svg.node().outerHTML;
92
+ }
93
+ var Swimmer = class _Swimmer extends PlotBase {
94
+ static {
95
+ this.type = "swimmer";
96
+ }
97
+ constructor(opts, api) {
98
+ super(opts, api);
99
+ this.type = _Swimmer.type;
100
+ this.components = { controls: {} };
101
+ if (this.opts.header) {
102
+ this.opts.header.style("padding-left", "7px").style("color", "rgb(85, 85, 85)").html("Swimmer Plot");
103
+ }
104
+ }
105
+ getState(appState) {
106
+ const config = appState.plots.find((p) => p.id === this.id);
107
+ if (!config) throw `No plot with id='${this.id}' found`;
108
+ return {
109
+ config,
110
+ // global mass filter combined with this plot's local filter (config.filter, set by the plot wrapper's filter UI)
111
+ termfilter: getCombinedTermFilter(appState, config.filter),
112
+ genome: appState.vocab.genome,
113
+ dslabel: appState.vocab.dslabel,
114
+ swimmer: appState.termdbConfig?.queries?.swimmer || {}
115
+ };
116
+ }
117
+ async init() {
118
+ const holder = this.opts.holder.append("div").attr("data-testid", "sjpp-swimmer-holder");
119
+ const controlsHolder = holder.append("div").style("display", "inline-block").style("vertical-align", "top");
120
+ const rightDiv = holder.append("div").style("display", "inline-block").style("vertical-align", "top");
121
+ this.dom = {
122
+ holder,
123
+ controlsHolder,
124
+ errdiv: rightDiv.append("div").attr("class", "sja_errorbar").style("display", "none"),
125
+ loadingDiv: rightDiv.append("div").style("display", "none").style("padding", "24px").text("Loading ..."),
126
+ plotDiv: rightDiv.append("div").attr("data-testid", "sjpp-swimmer-plot").style("padding", "10px"),
127
+ noteDiv: rightDiv.append("div").style("padding", "0 10px 10px 10px").style("font-size", ".9em").style("opacity", 0.7),
128
+ tip: new Menu({ padding: "5px" })
129
+ };
130
+ this.renderer = new SwimmerRenderer(
131
+ this.app,
132
+ this.dom,
133
+ (settings) => this.app.dispatch({ type: "plot_edit", id: this.id, config: { settings: { swimmer: settings } } }),
134
+ (pointTerm) => this.app.dispatch({ type: "plot_edit", id: this.id, config: { pointTerm } })
135
+ );
136
+ const laneName = this.renderer.laneType?.name || "sample";
137
+ this.components = {
138
+ controls: await controlsInit({
139
+ app: this.app,
140
+ id: this.id,
141
+ holder: controlsHolder,
142
+ inputs: [
143
+ {
144
+ type: "term",
145
+ configKey: "term0",
146
+ chartType: "swimmer",
147
+ usecase: { target: "swimmer", detail: "term0" },
148
+ label: "Divide by",
149
+ title: "Split lanes into one panel per category",
150
+ vocabApi: this.app.vocabApi,
151
+ numericEditMenuVersion: ["discrete"],
152
+ defaultQ4fillTW: getT0T2defaultQ()
153
+ },
154
+ ...this.getPointTermInputs(),
155
+ {
156
+ label: "Sort lanes by",
157
+ type: "radio",
158
+ chartType: "swimmer",
159
+ settingsKey: "sortBy",
160
+ options: [
161
+ { label: "Lane length", value: "end" },
162
+ { label: `${laneName[0].toUpperCase()}${laneName.slice(1)} name`, value: "sample" }
163
+ ]
164
+ },
165
+ {
166
+ label: `Show ${laneName} names`,
167
+ type: "checkbox",
168
+ chartType: "swimmer",
169
+ settingsKey: "showSampleNames",
170
+ boxLabel: "Yes"
171
+ },
172
+ {
173
+ label: "Row height",
174
+ type: "number",
175
+ chartType: "swimmer",
176
+ settingsKey: "rowHeight",
177
+ min: 6,
178
+ max: 50
179
+ },
180
+ {
181
+ label: "Plot width",
182
+ type: "number",
183
+ chartType: "swimmer",
184
+ settingsKey: "plotWidth",
185
+ min: 200,
186
+ max: 3e3
187
+ }
188
+ ]
189
+ })
190
+ };
191
+ this.components.controls.on("downloadClick.swimmer", (event) => {
192
+ const svg = this.renderer.dom.svg;
193
+ if (!svg) return;
194
+ new DownloadMenu([{ name: "Swimmer plot", svg }], "swimmer_plot").show(event.clientX, event.clientY, event.target);
195
+ });
196
+ }
197
+ /** "Mark <event> by" term input, only when the ds has points linked to samples (e.g. CSF dots). the
198
+ term picker lists only terms of those samples' types */
199
+ getPointTermInputs() {
200
+ const sw = this.app.vocabApi.termdbConfig?.queries?.swimmer;
201
+ if (!sw?.pointSampleTypes?.length) return [];
202
+ const events = (sw.pointSampleEvents || []).map((k) => sw.events?.[k]?.label || k);
203
+ const what = [...new Set(events)].join(" / ") || "linked samples";
204
+ return [
205
+ {
206
+ type: "term",
207
+ configKey: "pointTerm",
208
+ chartType: "swimmer",
209
+ usecase: { target: "swimmer", detail: "pointTerm", sampleTypes: sw.pointSampleTypes },
210
+ label: `Mark ${what} by`,
211
+ title: `Color the ${what} markers by a variable of their own samples`,
212
+ vocabApi: this.app.vocabApi,
213
+ numericEditMenuVersion: ["discrete"],
214
+ defaultQ4fillTW: getT0T2defaultQ()
215
+ }
216
+ ];
217
+ }
218
+ async main() {
219
+ try {
220
+ this.toggleLoadingDiv();
221
+ this.dom.errdiv.style("display", "none");
222
+ const result = await this.fetchLanes();
223
+ this.toggleLoadingDiv("none");
224
+ this.renderer.update({
225
+ swimmer: this.state.swimmer,
226
+ settings: this.state.config.settings.swimmer,
227
+ lanes: result.lanes,
228
+ divideByOrder: result.divideByOrder,
229
+ term0: this.state.config.term0,
230
+ pointTerm: this.state.config.pointTerm,
231
+ pointCategoryOrder: result.pointCategoryOrder,
232
+ timeReference: result.timeReference
233
+ });
234
+ } catch (e) {
235
+ this.toggleLoadingDiv("none");
236
+ this.printError(e);
237
+ }
238
+ }
239
+ destroy() {
240
+ this.renderer?.destroy();
241
+ }
242
+ async fetchLanes() {
243
+ const body = {
244
+ genome: this.state.genome,
245
+ dslabel: this.state.dslabel,
246
+ filter: this.state.termfilter?.filter
247
+ };
248
+ if (this.state.config.term0) body.term0 = this.state.config.term0;
249
+ if (this.state.config.pointTerm) body.pointTerm = this.state.config.pointTerm;
250
+ const timeReference = this.state.config.settings.swimmer.timeReference;
251
+ if (timeReference) body.timeReference = timeReference;
252
+ return await fetchSwimmerLanes(body);
253
+ }
254
+ };
255
+ var SwimmerRenderer = class {
256
+ constructor(app, dom, onSettingsChange, onPointTermChange) {
257
+ /** client copy of ds.queries.swimmer: timeLabel, timeReferences, categories, events, terminalEvent,
258
+ pointSampleTypes, pointSampleEvents */
259
+ this.swimmer = {};
260
+ this.lanes = [];
261
+ /** divide-by category order from the server, only with term0 */
262
+ this.divideByOrder = [];
263
+ /** point category order from the server, only with pointTerm */
264
+ this.pointCategoryOrder = [];
265
+ /** annotations of point samples (e.g. CSF) shown on hover, fetched once per sample id */
266
+ this.pointSampleAnno = /* @__PURE__ */ new Map();
267
+ /** hover and click handling of each divide-by panel, replaced on every render */
268
+ this.interactions = [];
269
+ this.app = app;
270
+ this.dom = dom;
271
+ this.onSettingsChange = onSettingsChange;
272
+ this.onPointTermChange = onPointTermChange;
273
+ const roots = Object.values(app.vocabApi?.termdbConfig?.sampleTypes || {}).filter((t) => t.parent_id == null);
274
+ if (roots.length == 1) this.laneType = roots[0];
275
+ }
276
+ update(d) {
277
+ this.swimmer = d.swimmer || {};
278
+ this.settings = d.settings;
279
+ this.lanes = d.lanes;
280
+ this.divideByOrder = d.divideByOrder || [];
281
+ this.term0 = d.term0;
282
+ this.pointTerm = d.pointTerm;
283
+ this.pointCategoryOrder = d.pointCategoryOrder || [];
284
+ this.timeReference = d.timeReference;
285
+ this.render();
286
+ }
287
+ /** whether a point is colored by the "mark by" term: a linked point of a markBy event */
288
+ isMarkedPoint(p) {
289
+ return !!this.pointTerm && p.sampleId !== void 0 && !!this.swimmer.pointSampleEvents?.includes(p.event);
290
+ }
291
+ /** with pointTerm: legend of the marked points' categories, in server order, then "No value" when some
292
+ marked point lacks a value. colors come from term.values when set there, else a default palette; the shape
293
+ is that of the point's event. user overrides apply as for the other legend sections */
294
+ getPointLegend(events) {
295
+ if (!this.pointTerm) return { byKey: /* @__PURE__ */ new Map(), entries: [] };
296
+ let hasNoValue = false;
297
+ let shape;
298
+ for (const lane of this.lanes) {
299
+ for (const p of lane.points) {
300
+ if (!this.isMarkedPoint(p)) continue;
301
+ shape ||= events.byKey.get(p.event)?.shape;
302
+ if (!p.category) hasNoValue = true;
303
+ }
304
+ }
305
+ const termColors = /* @__PURE__ */ new Map();
306
+ for (const [k, v] of Object.entries(this.pointTerm.term?.values || {}))
307
+ if (v.color) termColors.set(v.label || k, v.color);
308
+ const labels = [...this.pointCategoryOrder, ...hasNoValue ? [noValueCategory] : []];
309
+ const palette = getColors(Math.max(labels.length, 1));
310
+ const configured = {};
311
+ for (const label of labels)
312
+ configured[label] = {
313
+ label,
314
+ color: label == noValueCategory ? "#aaa" : termColors.get(label) || palette(label),
315
+ shape
316
+ };
317
+ return this.getLegend(configured, new Set(labels), this.settings.legend?.pointCategories);
318
+ }
319
+ /** lanes split by divide-by category, in server order. without term0 there is one unlabeled group.
320
+ a patient with several categories (a multivalue term, or samples in different categories) is in each
321
+ of its groups; lanes without a value are left out and counted in the note below the plot */
322
+ getGroups(lanes) {
323
+ if (!this.term0) return [{ lanes }];
324
+ const byLabel = new Map(this.divideByOrder.map((c) => [c, []]));
325
+ let noValue = 0;
326
+ for (const l of lanes) {
327
+ if (!l.lane.divideBy?.length) {
328
+ noValue++;
329
+ continue;
330
+ }
331
+ for (const c of l.lane.divideBy) {
332
+ if (!byLabel.has(c)) byLabel.set(c, []);
333
+ byLabel.get(c).push(l);
334
+ }
335
+ }
336
+ if (noValue) {
337
+ const name = this.term0.term?.name || "the divide-by variable";
338
+ const noun = noValue > 1 ? this.laneType?.plural_name || "samples" : this.laneType?.name || "sample";
339
+ this.dom.noteDiv.append("div").attr("data-testid", "sjpp-swimmer-novalue-note").text(`${noValue} ${noun} without a value for ${name} not shown`);
340
+ }
341
+ return [...byLabel].filter(([, l]) => l.length).map(([label, l]) => ({ label, lanes: l }));
342
+ }
343
+ /** lane end: the terminal event time when present, else the latest event or interval time */
344
+ getLaneEnd(lane) {
345
+ const terminal = this.swimmer.terminalEvent;
346
+ if (terminal) {
347
+ const t = lane.points.find((p) => p.event == terminal);
348
+ if (t) return t.time;
349
+ }
350
+ let end = 0;
351
+ for (const p of lane.points) end = Math.max(end, p.time);
352
+ for (const r of lane.ranges) end = Math.max(end, r.start, r.end ?? 0);
353
+ return end;
354
+ }
355
+ /** legend entries for interval categories or events: configured items first (in config order,
356
+ merged by label), then any key found in the data that the ds did not configure, with a default color. a
357
+ clipBeforeOrigin event with no drawn marker (e.g. birth in a treatment-referenced view) is left out. user
358
+ overrides (by label) take precedence over the ds config */
359
+ getLegend(configured, dataKeys, overrides = {}) {
360
+ const byKey = /* @__PURE__ */ new Map();
361
+ const entries = [];
362
+ const seenLabels = /* @__PURE__ */ new Set();
363
+ const unconfigured = [...dataKeys].filter((k) => !configured?.[k]);
364
+ const fallback = getColors(Math.max(unconfigured.length, 1));
365
+ const add = (key, item) => {
366
+ const label = item.label || key;
367
+ const o = overrides[label] || {};
368
+ const e = {
369
+ key,
370
+ label,
371
+ color: o.color || item.color || fallback(key),
372
+ shape: o.shape || item.shape || "filledCircle",
373
+ size: item.size || 1,
374
+ sampleTerms: item.sampleTerms,
375
+ hidden: !!o.hidden
376
+ };
377
+ byKey.set(key, e);
378
+ if (!seenLabels.has(e.label)) {
379
+ seenLabels.add(e.label);
380
+ entries.push(e);
381
+ }
382
+ };
383
+ for (const [key, item] of Object.entries(configured || {})) {
384
+ if (item.clipBeforeOrigin && !dataKeys.has(key)) continue;
385
+ add(key, item);
386
+ }
387
+ for (const key of unconfigured) add(key, {});
388
+ return { byKey, entries };
389
+ }
390
+ render() {
391
+ const s = this.settings;
392
+ const plotDiv = this.dom.plotDiv;
393
+ plotDiv.selectAll("*").remove();
394
+ this.dom.noteDiv.selectAll("*").remove();
395
+ delete this.dom.svg;
396
+ for (const i of this.interactions) i.destroy();
397
+ this.interactions = [];
398
+ const ref = this.swimmer.timeReferences?.find(
399
+ (r) => r.key == this.timeReference
400
+ );
401
+ this.renderTimeReferences();
402
+ if (!this.lanes.length) {
403
+ plotDiv.append("div").style("opacity", 0.6).text(`No ${this.laneType?.plural_name || "samples"} with timeline data match the current filter`);
404
+ return;
405
+ }
406
+ const lanes = this.lanes.map((lane) => ({ lane, end: this.getLaneEnd(lane) }));
407
+ if (s.sortBy == "sample") lanes.sort((a, b) => a.lane.sample.localeCompare(b.lane.sample));
408
+ else lanes.sort((a, b) => b.end - a.end);
409
+ const categoryKeys = /* @__PURE__ */ new Set();
410
+ const eventKeys = /* @__PURE__ */ new Set();
411
+ for (const { lane } of lanes) {
412
+ for (const r of lane.ranges) categoryKeys.add(r.category);
413
+ for (const p of lane.points) if (!this.isClipped(p)) eventKeys.add(p.event);
414
+ }
415
+ const categories = this.getLegend(this.swimmer.categories, categoryKeys, s.legend?.categories);
416
+ const events = this.getLegend(this.swimmer.events, eventKeys, s.legend?.events);
417
+ const pointCategories = this.getPointLegend(events);
418
+ const fontSize = Math.min(12, Math.max(7, s.rowHeight - 3));
419
+ const axisHeight = 45;
420
+ const topPad = 10;
421
+ const rightPad = 20;
422
+ const laneGap = Math.max(1, Math.round(s.rowHeight * 0.1));
423
+ const barH = Math.max(2, s.rowHeight - laneGap);
424
+ const segH = Math.max(1, barH * 0.6);
425
+ const baseH = Math.max(1, barH * 0.25);
426
+ const markerH = Math.max(4, barH * 0.7);
427
+ const svg = plotDiv.append("svg").attr("data-testid", "sjpp-swimmer-svg");
428
+ this.dom.svg = svg;
429
+ const names = lanes.map((l) => l.lane.sample);
430
+ const labelWidth = s.showSampleNames ? getMaxTextWidth(svg, names, fontSize) + labelGap + 6 : 10;
431
+ const maxEnd = Math.max(...lanes.map((l) => l.end), 1);
432
+ let minTime = 0;
433
+ for (const { lane } of lanes) {
434
+ for (const p of lane.points) {
435
+ if (!this.isClipped(p)) minTime = Math.min(minTime, p.time);
436
+ }
437
+ for (const r of lane.ranges) minTime = Math.min(minTime, r.start);
438
+ }
439
+ const x = linear().domain([minTime < 0 ? minTime - (maxEnd - minTime) * 0.01 : 0, maxEnd * 1.02]).range([0, s.plotWidth]);
440
+ const ticks = x.ticks(Math.max(2, Math.floor(s.plotWidth / 90)));
441
+ const tip = this.dom.tip;
442
+ const timeLabel = ref?.timeLabel || this.swimmer.timeLabel || "Time";
443
+ const fmt = (d) => Number.isInteger(d) ? String(d) : d.toFixed(1);
444
+ const groups = this.getGroups(lanes);
445
+ if (!groups.length) {
446
+ svg.remove();
447
+ delete this.dom.svg;
448
+ plotDiv.append("div").style("opacity", 0.6).text(`No ${this.laneType?.plural_name || "samples"} have a value for the divide-by variable`);
449
+ return;
450
+ }
451
+ const titleH = groups[0].label !== void 0 ? 24 : 0;
452
+ const groupGap = 16;
453
+ let yOffset = topPad;
454
+ for (const group of groups) {
455
+ if (group.label !== void 0) {
456
+ svg.append("text").attr("data-testid", "sjpp-swimmer-group-title").attr("x", labelWidth).attr("y", yOffset + 15).attr("font-size", 14).attr("font-weight", 600).attr("fill", "#333").text(`${group.label} (n=${group.lanes.length})`);
457
+ yOffset += titleH;
458
+ }
459
+ const plotHeight = group.lanes.length * s.rowHeight;
460
+ const mainG = svg.append("g").attr("transform", `translate(${labelWidth},${yOffset})`);
461
+ const markers = [];
462
+ const rows = [];
463
+ mainG.append("g").selectAll("line").data(ticks).enter().append("line").attr("x1", (d) => x(d)).attr("x2", (d) => x(d)).attr("y1", 0).attr("y2", plotHeight).attr("stroke", "#e6e6e6").attr("shape-rendering", "crispEdges");
464
+ for (const [i, { lane, end }] of group.lanes.entries()) {
465
+ const y = i * s.rowHeight;
466
+ const g = mainG.append("g").attr("transform", `translate(0,${y})`);
467
+ const row = { lane, end, segments: [] };
468
+ rows.push(row);
469
+ g.append("rect").attr("x", x(0)).attr("y", (s.rowHeight - baseH) / 2).attr("width", Math.max(0, x(end) - x(0))).attr("height", baseH).attr("fill", "#999").attr("fill-opacity", 0.5).attr("shape-rendering", "crispEdges");
470
+ for (const r of lane.ranges) {
471
+ const entry = categories.byKey.get(r.category);
472
+ if (entry.hidden) continue;
473
+ const segEnd = r.end ?? Math.max(end, r.start);
474
+ const segTop = (s.rowHeight - segH) / 2;
475
+ const seg = g.append("g");
476
+ seg.attr("fill-opacity", 0.75);
477
+ seg.append("rect").attr("x", x(r.start)).attr("y", segTop).attr("width", Math.max(1, x(segEnd) - x(r.start))).attr("height", segH).attr("fill", entry.color).attr("shape-rendering", "crispEdges");
478
+ const xe = x(r.start) + Math.max(1, x(segEnd) - x(r.start));
479
+ row.segments.push({ r, entry, x0: x(r.start), x1: r.end == null ? xe + segH * 0.8 : xe });
480
+ if (r.end == null) {
481
+ seg.append("path").attr(
482
+ "d",
483
+ `M${xe},${segTop - segH / 3}L${xe + segH * 0.8},${s.rowHeight / 2}L${xe},${segTop + segH * 1.33}Z`
484
+ ).attr("fill", entry.color);
485
+ }
486
+ }
487
+ for (const p of lane.points) {
488
+ if (this.isClipped(p)) continue;
489
+ const entry = events.byKey.get(p.event);
490
+ if (entry.hidden) continue;
491
+ const mark = this.isMarkedPoint(p) ? pointCategories.byKey.get(p.category || noValueCategory) : void 0;
492
+ if (mark?.hidden) continue;
493
+ const shape = mark?.shape || entry.shape;
494
+ const color = mark?.color || entry.color;
495
+ const height = markerH * entry.size;
496
+ const cx = x(p.time);
497
+ const dot = drawMarker(g, shape, cx, s.rowHeight / 2, height, color).attr("data-event", p.event);
498
+ const { halfWidth } = getMarkerGeometry(shape, height);
499
+ markers.push({ p, lane, entry, mark, shape, color, x: cx, y: y + s.rowHeight / 2, height, halfWidth });
500
+ if (p.sample && p.sampleId !== void 0) {
501
+ const sample = { sampleId: p.sampleId, sampleName: p.sample };
502
+ dot.attr("data-testid", "sjpp-swimmer-linked-point").attr("role", "button").attr("tabindex", 0).attr("aria-label", `Open sample view of ${p.sample}`).on("keydown", (event) => {
503
+ if (event.key === "Enter" || event.key === " ") {
504
+ event.preventDefault();
505
+ this.openSampleView(sample);
506
+ }
507
+ });
508
+ }
509
+ }
510
+ if (s.showSampleNames) {
511
+ g.append("text").attr("x", -labelGap).attr("y", s.rowHeight / 2).attr("text-anchor", "end").attr("dominant-baseline", "central").attr("font-size", fontSize).attr("fill", "#333").attr("role", "button").attr("tabindex", 0).attr("aria-label", `Open sample view of ${lane.sample}`).style("cursor", "pointer").text(lane.sample).on("click", () => this.openSampleView({ sampleId: lane.sampleId, sampleName: lane.sample }, true)).on("keydown", (event) => {
512
+ if (event.key === "Enter" || event.key === " ") {
513
+ event.preventDefault();
514
+ this.openSampleView({ sampleId: lane.sampleId, sampleName: lane.sample }, true);
515
+ }
516
+ }).on("mouseover", (event) => {
517
+ tip.clear().show(event.clientX, event.clientY);
518
+ tip.d.append("div").text("Click to open sample view");
519
+ }).on("mouseout", () => tip.hide());
520
+ }
521
+ }
522
+ this.attachInteractions(mainG, markers, rows, {
523
+ plotWidth: s.plotWidth,
524
+ rowHeight: s.rowHeight,
525
+ segH,
526
+ barH,
527
+ x,
528
+ timeLabel,
529
+ fmt
530
+ });
531
+ const axisG = mainG.append("g").attr("transform", `translate(0,${plotHeight + 2})`);
532
+ axisG.call(axisBottom(x).tickValues(ticks));
533
+ axisstyle({ axis: axisG, showline: true, fontsize: 11 });
534
+ axisG.append("text").attr("x", s.plotWidth / 2).attr("y", 34).attr("text-anchor", "middle").attr("font-size", 12).attr("fill", "#333").text(timeLabel);
535
+ yOffset += plotHeight + axisHeight + groupGap;
536
+ }
537
+ const legendHeight = this.renderLegend(
538
+ svg.append("g").attr("transform", `translate(${labelWidth + s.plotWidth + rightPad},${topPad})`),
539
+ categories.entries,
540
+ events.entries,
541
+ pointCategories.entries
542
+ );
543
+ svg.attr("width", labelWidth + s.plotWidth + rightPad + legendWidth).attr("height", Math.max(yOffset - groupGap, topPad + legendHeight));
544
+ }
545
+ /** returns the legend height. events linked to samples (e.g. "CSF sample") are listed last. with a "mark
546
+ by" term their markers take the term's category colors and shapes, so the event row has no icon and is
547
+ followed by the term as a pill, as in the controls, then the term's categories, indented:
548
+ Events
549
+ Follow-up
550
+ Mark CSF sample by
551
+ [term name]
552
+ category1
553
+ category2 */
554
+ renderLegend(g, categories, events, pointCategories = []) {
555
+ const lineH = 18;
556
+ const indent = 20;
557
+ let y = 0;
558
+ const fit = (text, max) => text.length > max ? text.slice(0, max - 1) + "\u2026" : text;
559
+ const title = (text) => {
560
+ g.append("text").attr("y", y + 10).attr("font-size", 12).attr("font-weight", "bold").text(text);
561
+ y += lineH;
562
+ };
563
+ const item = (type, e, entries, drawIcon, opts = {}) => {
564
+ const x = opts.x || 0;
565
+ const max = Math.floor(26 * (legendWidth - x) / legendWidth);
566
+ const row = g.append("g").attr("transform", `translate(${x},${y})`).attr("data-testid", "sjpp-swimmer-legend-item").attr("data-legend-type", type).attr("role", "button").attr("tabindex", 0).attr("aria-label", `Edit legend item ${opts.label || e.label}`).style("cursor", "pointer").style("opacity", e.hidden ? 0.4 : 1);
567
+ const showMenu = (event) => this.showLegendMenu(event, type, e, entries, {
568
+ allowColor: opts.allowColor !== false,
569
+ allowShape: type != "categories" && opts.allowShape !== false
570
+ });
571
+ row.on("click", showMenu).on("keydown", (event) => {
572
+ if (event.key === "Enter" || event.key === " ") {
573
+ event.preventDefault();
574
+ showMenu(event);
575
+ }
576
+ });
577
+ row.append("rect").attr("width", legendWidth - 20 - x).attr("height", lineH).attr("fill", "transparent");
578
+ drawIcon(row, e);
579
+ row.append("text").attr("x", 20).attr("y", 10).attr("font-size", 12).attr("fill", "#333").style("text-decoration", e.hidden ? "line-through" : "none").text(fit(opts.label || e.label, max));
580
+ if ((opts.label || e.label).length > max) row.append("title").text(opts.label || e.label);
581
+ y += lineH;
582
+ };
583
+ const rect = (row, e) => row.append("rect").attr("x", 0).attr("y", 3).attr("width", 14).attr("height", 8).attr("fill", e.color);
584
+ const marker = (row, e) => drawMarker(row, e.shape, 7, 7, Math.max(6, 12 * e.size), e.color);
585
+ if (categories.length) {
586
+ title("Intervals");
587
+ for (const e of categories) item("categories", e, categories, rect);
588
+ y += 8;
589
+ }
590
+ if (events.length) {
591
+ const linkedKeys = new Set(this.swimmer.pointSampleEvents || []);
592
+ const linked = events.filter((e) => linkedKeys.has(e.key));
593
+ const ordered = [...events.filter((e) => !linkedKeys.has(e.key)), ...linked];
594
+ const marked = this.pointTerm && pointCategories.length > 0;
595
+ title("Events");
596
+ for (const e of ordered) {
597
+ if (!marked || !linkedKeys.has(e.key)) {
598
+ item("events", e, ordered, marker);
599
+ continue;
600
+ }
601
+ g.append("text").attr("x", 20).attr("y", y + 10).attr("font-size", 12).attr("fill", "#333").style("opacity", e.hidden ? 0.4 : 1).style("text-decoration", e.hidden ? "line-through" : "none").text(`Mark ${e.label} by`);
602
+ y += lineH;
603
+ const name = this.pointTerm.term?.name || "";
604
+ const pill = g.append("g").attr("transform", `translate(${indent},${y})`).attr("data-testid", "sjpp-swimmer-legend-pointterm").attr("role", "button").attr("tabindex", 0).attr("aria-label", `Edit ${name}`).style("cursor", "pointer");
605
+ const pillRect = pill.append("rect").attr("rx", 6).attr("height", 20).attr("fill", "#cfe2f3");
606
+ const max = Math.floor(26 * (legendWidth - indent - 12) / legendWidth);
607
+ const pillText = pill.append("text").attr("x", 6).attr("y", 14).attr("font-size", 12).text(fit(name, max));
608
+ if (name.length > max) pill.append("title").text(name);
609
+ pillRect.attr("width", (pillText.node().getComputedTextLength() || name.length * 7) + 12);
610
+ const showMenu = () => this.showPointTermMenu(pill.node(), e, ordered);
611
+ pill.on("click", showMenu).on("keydown", (event) => {
612
+ if (event.key === "Enter" || event.key === " ") {
613
+ event.preventDefault();
614
+ showMenu();
615
+ }
616
+ });
617
+ y += 24;
618
+ }
619
+ if (marked) {
620
+ for (const e of pointCategories) item("pointCategories", e, pointCategories, marker, { x: indent });
621
+ }
622
+ y += 8;
623
+ }
624
+ return y;
625
+ }
626
+ /** a clipBeforeOrigin event before time 0 (e.g. birth in a treatment-referenced view), not drawn */
627
+ isClipped(p) {
628
+ return p.time < 0 && !!this.swimmer.events?.[p.event]?.clipBeforeOrigin;
629
+ }
630
+ /** radio buttons to switch the time reference (e.g. birth, diagnosis, treatment start), above the plot. only
631
+ with two or more ds time references and onSettingsChange, which refetches the lanes */
632
+ renderTimeReferences() {
633
+ const refs = this.swimmer.timeReferences || [];
634
+ if (refs.length < 2 || !this.onSettingsChange) return;
635
+ const current = this.timeReference;
636
+ const holder = this.dom.plotDiv.append("div").attr("data-testid", "sjpp-swimmer-time-references").attr("role", "radiogroup").attr("aria-label", "Time from").style("margin-bottom", "8px");
637
+ holder.append("span").style("margin-right", "8px").style("opacity", 0.8).text("Time from:");
638
+ make_radios({
639
+ holder: holder.append("div").style("display", "inline-block"),
640
+ options: refs.map((r) => ({
641
+ label: r.label || r.key,
642
+ value: r.key,
643
+ checked: r.key == current,
644
+ testid: `sjpp-swimmer-time-reference-${r.key}`
645
+ })),
646
+ styles: { display: "inline-block", padding: "3px 10px 3px 0" },
647
+ // the lanes are refetched and the plot redrawn, these radios included
648
+ callback: (key) => this.onSettingsChange({ timeReference: key })
649
+ });
650
+ }
651
+ /** legend item menu, as in the scatter plot legend: hide/show, show only, show all, color, and shape for
652
+ events. "show only" and "show all" act within the item's own section (intervals, events or mark-by
653
+ categories). color and shape options are left out for an event whose markers are drawn by the mark-by term */
654
+ showLegendMenu(event, type, e, entries, opts) {
655
+ this.dom.tip.hide();
656
+ if (!this.legendMenu) this.legendMenu = new Menu({ padding: "0px" });
657
+ const menu = this.legendMenu;
658
+ this.addLegendOptions(menu, menu.clear().d.append("div"), type, e, entries, opts);
659
+ menu.showunder(event.target);
660
+ }
661
+ /** menu of the "mark by" term pill in the legend: the edit, replace and remove options of the controls'
662
+ "Mark ... by" pill, then the legend options of the marked event (e), without color or shape */
663
+ async showPointTermMenu(node, e, entries) {
664
+ this.dom.tip.hide();
665
+ this.legendMenu?.hide();
666
+ if (!this.pointTermMenu) this.pointTermMenu = new Menu({ padding: "0px" });
667
+ const menu = this.pointTermMenu;
668
+ if (!this.pointTermPill)
669
+ this.pointTermPill = termsettingInit({
670
+ vocabApi: this.app.vocabApi,
671
+ renderAs: "none",
672
+ tip: menu,
673
+ menuOptions: "*",
674
+ usecase: { target: "swimmer", detail: "pointTerm", sampleTypes: this.swimmer.pointSampleTypes },
675
+ numericEditMenuVersion: ["discrete"],
676
+ defaultQ4fillTW: getT0T2defaultQ(),
677
+ callback: (tw) => {
678
+ menu.hide();
679
+ this.onPointTermChange?.(tw);
680
+ }
681
+ });
682
+ const pointTerm = structuredClone(this.pointTerm);
683
+ delete pointTerm.tw;
684
+ await this.pointTermPill.main(pointTerm);
685
+ this.pointTermPill.showMenu(null, node);
686
+ this.addLegendOptions(menu, menu.d.append("div"), "events", e, entries, { allowColor: false, allowShape: false });
687
+ }
688
+ /** legend options of entry e, appended to div inside menu */
689
+ addLegendOptions(menu, div, type, e, entries, opts) {
690
+ const option = (text, edit) => div.append("div").attr("class", "sja_menuoption sja_sharp_border").text(text).on("click", () => {
691
+ menu.hide();
692
+ this.editLegend(type, edit());
693
+ });
694
+ option(e.hidden ? "Show" : "Hide", () => ({ [e.label]: { hidden: !e.hidden } }));
695
+ if (entries.length > 1)
696
+ option("Show only", () => Object.fromEntries(entries.map((x) => [x.label, { hidden: x.label != e.label }])));
697
+ if (entries.some((x) => x.hidden))
698
+ option("Show all", () => Object.fromEntries(entries.map((x) => [x.label, { hidden: false }])));
699
+ if (opts.allowColor)
700
+ div.append("div").attr("class", "sja_sharp_border").style("padding", "0px 10px").text("Color:").append("input").attr("type", "color").attr("value", rgb(e.color).formatHex()).on("change", (ev) => {
701
+ menu.hide();
702
+ this.editLegend(type, { [e.label]: { color: ev.target.value } });
703
+ });
704
+ if (opts.allowShape) {
705
+ div.append("div").attr("class", "sja_menuoption sja_sharp_border").text("Change shape").on("click", () => {
706
+ div.selectAll("*").remove();
707
+ shapeSelector(div, (index) => {
708
+ menu.hide();
709
+ this.editLegend(type, { [e.label]: { shape: Object.keys(shapes)[index] } });
710
+ });
711
+ });
712
+ }
713
+ }
714
+ /** remove the body-mounted menus and their body listeners */
715
+ destroy() {
716
+ for (const i of this.interactions) i.destroy();
717
+ this.dom.tip.destroy();
718
+ this.legendMenu?.destroy();
719
+ this.pointTermPill?.destroy();
720
+ }
721
+ /** merge changes into the legend overrides, then save them through onSettingsChange or redraw locally */
722
+ editLegend(type, changes) {
723
+ const legend = structuredClone(
724
+ this.settings.legend || { categories: {}, events: {}, pointCategories: {} }
725
+ );
726
+ if (!legend[type]) legend[type] = {};
727
+ for (const [label, o] of Object.entries(changes)) legend[type][label] = { ...legend[type][label], ...o };
728
+ if (this.onSettingsChange) this.onSettingsChange({ legend });
729
+ else {
730
+ this.settings = { ...this.settings, legend };
731
+ this.render();
732
+ }
733
+ }
734
+ /** whether a marker opens a sample view on click: a point linked to its own sample (e.g. a CSF dot) */
735
+ isLinked(d) {
736
+ return !!d.p.sample && d.p.sampleId !== void 0;
737
+ }
738
+ /** hover and click of a panel, through a transparent cover over its lanes. the shared DataPointInteractions
739
+ hit-tests the markers; when none is under the cursor, a hover shows the interval segments or the base bar
740
+ under it. a marker is hit when the cursor is within its drawn left and right edges, anywhere in its lane's
741
+ row, so only markers whose shapes overlap at the cursor are listed together. a click on several
742
+ linked markers opens a menu to pick the sample to view */
743
+ attachInteractions(mainG, markers, rows, o) {
744
+ const tip = this.dom.tip;
745
+ const time = `(${o.timeLabel.toLowerCase()})`;
746
+ const hoverLayer = mainG.append("g").style("pointer-events", "none");
747
+ const minX = markers.reduce((v, d) => Math.min(v, d.x - d.halfWidth), 0);
748
+ const maxX = rows.reduce(
749
+ (right, row) => row.segments.reduce((v, segment) => Math.max(v, segment.x1), right),
750
+ markers.reduce((v, d) => Math.max(v, d.x + d.halfWidth), o.plotWidth)
751
+ );
752
+ const cover = mainG.append("rect").attr("data-testid", "sjpp-swimmer-cover").attr("x", minX).attr("width", maxX - minX).attr("height", rows.length * o.rowHeight).attr("fill", "transparent").style("pointer-events", "all");
753
+ const getCursor = (event) => {
754
+ const [mx, my] = pointer_default(event, mainG.node());
755
+ const i = Math.floor(my / o.rowHeight);
756
+ return { mx, my, i, cy: (i + 0.5) * o.rowHeight };
757
+ };
758
+ let hovered = [];
759
+ let cursorRow = -1;
760
+ const dpi = new DataPointInteractions({
761
+ cover,
762
+ hoverLayer,
763
+ hoverTip: tip,
764
+ points: markers,
765
+ getX: (d) => d.x,
766
+ getY: (d) => d.y,
767
+ toLocalCoords: (event) => {
768
+ const { mx, cy, i } = getCursor(event);
769
+ cursorRow = i;
770
+ return [mx, cy];
771
+ },
772
+ hitRadius: Math.max(0, ...markers.map((d) => d.halfWidth)),
773
+ perDotRadius: (d) => d.halfWidth,
774
+ // only markers of the cursor's row: a large marker (event size of about 3 or more) would otherwise be
775
+ // within reach from the neighboring lanes. so the hit distance is the horizontal one
776
+ isHidden: (d) => Math.floor(d.y / o.rowHeight) !== cursorRow,
777
+ // outline of the marker's shape, 2px larger on each side
778
+ toHoverSpec: (d) => {
779
+ const m = getMarkerGeometry(d.shape, d.height + 4);
780
+ return {
781
+ path: m.shape.path,
782
+ transform: `translate(${d.x},${d.y}) ${m.transform}`,
783
+ stroke: "black",
784
+ fill: "none"
785
+ };
786
+ },
787
+ itemNoun: "event",
788
+ renderSingleHoverTooltip: (d, container) => this.renderMarkerTip(d, container, time, o.fmt),
789
+ buildMultiHitTableData: (dots) => this.buildMarkersTable(dots, o.timeLabel, o.fmt),
790
+ onHover: (dots) => {
791
+ hovered = dots;
792
+ cover.style("cursor", dots.some((d) => this.isLinked(d)) ? "pointer" : "default");
793
+ },
794
+ onSingleClick: (d, event, ctx) => this.openMarkerSamples([d], event, ctx, time, o.fmt),
795
+ onMultiClick: (dots, event, ctx) => this.openMarkerSamples(dots, event, ctx, time, o.fmt)
796
+ });
797
+ dpi.attach();
798
+ this.interactions.push(dpi);
799
+ cover.on("mousemove.lane", (event) => {
800
+ if (hovered.length || dpi.clickMenu.d.style("display") != "none") return;
801
+ const { mx, my, i, cy } = getCursor(event);
802
+ const row = rows[i];
803
+ if (!row) return tip.hide();
804
+ const dy = Math.abs(my - cy);
805
+ const segments = row.segments.filter((sg) => {
806
+ if (mx < sg.x0 || mx > sg.x1) return false;
807
+ if (sg.r.end != null) return dy <= o.segH / 2;
808
+ const arrowStart = sg.x1 - o.segH * 0.8;
809
+ if (mx < arrowStart) return dy <= o.segH / 2;
810
+ const fraction = (sg.x1 - mx) / (o.segH * 0.8);
811
+ return my >= cy - (o.segH / 2 + o.segH / 3) * fraction && my <= cy + (o.segH * 1.33 - o.segH / 2) * fraction;
812
+ });
813
+ const onBase = dy <= o.barH / 2 && mx >= o.x(0) && mx <= o.x(row.end);
814
+ if (!segments.length && !onBase) return tip.hide();
815
+ tip.clear();
816
+ tip.d.append("div").style("font-weight", "bold").text(row.lane.sample);
817
+ for (const { r, entry } of segments) {
818
+ const div = tip.d.append("div").attr("data-testid", "sjpp-swimmer-tip-interval");
819
+ div.append("svg").attr("width", 14).attr("height", 10).style("margin-right", "5px").append("rect").attr("y", 1).attr("width", 14).attr("height", 8).attr("fill", entry.color);
820
+ div.append("span").text(`${entry.label}${entry.label != r.category ? ` (${r.category})` : ""}`);
821
+ tip.d.append("div").style("margin-left", "19px").text(
822
+ r.end == null ? `From ${o.fmt(r.start)}, ongoing ${time}` : `${o.fmt(r.start)} to ${o.fmt(r.end)} ${time}`
823
+ );
824
+ }
825
+ if (!segments.length) tip.d.append("div").text(`Lane end: ${o.fmt(row.end)} ${time}`);
826
+ tip.show(event.clientX, event.clientY);
827
+ });
828
+ }
829
+ /** hover tooltip of one marker: the lane name, the event with its legend icon, and a linked point's sample
830
+ with its annotations */
831
+ renderMarkerTip(d, container, time, fmt) {
832
+ const { p, lane, entry, mark } = d;
833
+ container.append("div").style("font-weight", "bold").text(lane.sample);
834
+ const row = container.append("div").attr("data-testid", "sjpp-swimmer-tip-event");
835
+ row.append("span").style("margin-right", "5px").html(getMarkerIconHtml(d.shape, d.color));
836
+ row.append("span").text(`${entry.label}: ${fmt(p.time)} ${time}`);
837
+ if (mark) container.append("div").text(`${this.pointTerm.term?.name}: ${mark.label}`);
838
+ if (!p.sample) return;
839
+ container.append("div").text(`Sample: ${p.sample}`);
840
+ if (p.sampleId === void 0) return;
841
+ if (entry.sampleTerms?.length) this.showPointSampleAnno(container, p.sampleId, entry.sampleTerms);
842
+ container.append("div").style("font-size", "0.8em").style("opacity", 0.7).text("Click to open sample view");
843
+ }
844
+ /** multi-hit hover table of overlapping markers, one row per marker with its legend icon */
845
+ buildMarkersTable(dots, timeLabel, fmt) {
846
+ const hasSample = dots.some((d) => d.p.sample);
847
+ const hasMark = dots.some((d) => d.mark);
848
+ const columns = [
849
+ { label: "" },
850
+ { label: "Event" },
851
+ { label: timeLabel, sortable: true },
852
+ ...hasMark ? [{ label: this.pointTerm.term?.name || "" }] : [],
853
+ ...hasSample ? [{ label: "Sample" }] : []
854
+ ];
855
+ const rows = dots.map((d) => [
856
+ { html: getMarkerIconHtml(d.shape, d.color) },
857
+ { value: d.entry.label },
858
+ { value: fmt(d.p.time) },
859
+ ...hasMark ? [{ value: d.mark?.label || "" }] : [],
860
+ ...hasSample ? [{ value: d.p.sample || "" }] : []
861
+ ]);
862
+ return { columns, rows };
863
+ }
864
+ /** click on markers: opens the sample view of the one linked marker, or a menu to pick one of several */
865
+ openMarkerSamples(dots, event, ctx, time, fmt) {
866
+ const linked = dots.filter((d) => this.isLinked(d));
867
+ if (linked.length < 2) {
868
+ ctx.dismiss();
869
+ if (linked.length) this.openSampleView({ sampleId: linked[0].p.sampleId, sampleName: linked[0].p.sample });
870
+ return;
871
+ }
872
+ const menu = ctx.clickMenu;
873
+ menu.clear();
874
+ menu.d.append("div").style("padding", "5px 10px").style("opacity", 0.7).text("Open sample view of");
875
+ for (const d of linked) {
876
+ const sample = { sampleId: d.p.sampleId, sampleName: d.p.sample };
877
+ const option = menu.d.append("div").attr("class", "sja_menuoption sja_sharp_border").attr("data-testid", "sjpp-swimmer-sample-choice").attr("role", "button").attr("tabindex", 0).on("click", () => {
878
+ menu.hide();
879
+ this.openSampleView(sample);
880
+ }).on("keydown", (e) => {
881
+ if (e.key === "Enter" || e.key === " ") {
882
+ e.preventDefault();
883
+ menu.hide();
884
+ this.openSampleView(sample);
885
+ }
886
+ });
887
+ option.append("span").style("margin-right", "5px").html(getMarkerIconHtml(d.shape, d.color));
888
+ option.append("span").text(`${d.p.sample} (${d.entry.label}: ${fmt(d.p.time)} ${time})`);
889
+ }
890
+ menu.show(event.clientX, event.clientY);
891
+ }
892
+ /** list annotations of a point's own sample (e.g. a CSF sample) in container of the open tooltip, using the
893
+ same single-sample query and value formatting as sample view. termIds comes from the event's sampleTerms in
894
+ the dataset config and sets which terms are shown and in what order. the table fills in only if the
895
+ tooltip still shows this point */
896
+ async showPointSampleAnno(container, sampleId, termIds) {
897
+ const holder = container.append("div").attr("data-sampleid", sampleId).style("margin", "4px 0");
898
+ holder.append("div").style("opacity", 0.6).text("Loading annotations ...");
899
+ let rows;
900
+ try {
901
+ rows = await this.getPointSampleAnno(sampleId, termIds);
902
+ } catch (e) {
903
+ rows = [];
904
+ console.warn("swimmer: cannot load sample annotations", e);
905
+ }
906
+ if (!holder.node()?.isConnected) return;
907
+ holder.selectAll("*").remove();
908
+ if (!rows.length) return;
909
+ const table = holder.append("table").style("border-spacing", "0 1px").style("font-size", "0.9em");
910
+ for (const r of rows) {
911
+ const tr = table.append("tr");
912
+ tr.append("td").style("padding-right", "8px").style("opacity", 0.7).text(r.label);
913
+ tr.append("td").text(r.value);
914
+ }
915
+ }
916
+ getPointSampleAnno(sampleId, termIds) {
917
+ const cacheKey = `${sampleId} ${termIds.join(" ")}`;
918
+ let pr = this.pointSampleAnno.get(cacheKey);
919
+ if (!pr) {
920
+ pr = (async () => {
921
+ const data = await this.app.vocabApi.getSingleSampleData({ sampleId, term_ids: termIds });
922
+ if ("error" in data) throw data.error;
923
+ const rows = [];
924
+ for (const id of termIds.filter((id2) => data[id2])) {
925
+ const term = data[id].term;
926
+ const value = getTermValue(term, data);
927
+ if (value != null) rows.push({ label: term.name, value });
928
+ }
929
+ return rows;
930
+ })();
931
+ pr.catch(() => this.pointSampleAnno.delete(cacheKey));
932
+ this.pointSampleAnno.set(cacheKey, pr);
933
+ }
934
+ return pr;
935
+ }
936
+ /** withRelated: open the sample with its related samples (e.g. a patient lane shows the patient and
937
+ its primary/PDX/CSF samples as columns), as when the sample is picked in the sample view search box;
938
+ otherwise only this sample (e.g. a CSF dot). the sample view's swimmer lane uses the same time reference */
939
+ openSampleView(sample, withRelated = false) {
940
+ const config = { chartType: "sampleView", ...withRelated ? { sample } : { samples: [sample] } };
941
+ if (this.timeReference) config.swimmerTimeReference = this.timeReference;
942
+ this.app.dispatch({ type: "plot_create", config });
943
+ }
944
+ };
945
+ async function fetchSwimmerLanes(body) {
946
+ const result = await dofetch3("termdb/swimmer", { body });
947
+ if (typeof result == "string") throw result;
948
+ if (!result?.lanes) throw "invalid response from termdb/swimmer";
949
+ return result;
950
+ }
951
+ function getDefaultSwimmerSettings() {
952
+ return {
953
+ rowHeight: 20,
954
+ plotWidth: 800,
955
+ sortBy: "end",
956
+ showSampleNames: true,
957
+ legend: { categories: {}, events: {}, pointCategories: {} }
958
+ };
959
+ }
960
+ function getMaxTextWidth(svg, labels, fontSize) {
961
+ let max = 0;
962
+ for (const label of labels) {
963
+ const t = svg.append("text").attr("font-size", fontSize).text(label);
964
+ max = Math.max(max, t.node().getBBox().width);
965
+ t.remove();
966
+ }
967
+ return max;
968
+ }
969
+ async function getPlotConfig(opts, app) {
970
+ const settings = getDefaultSwimmerSettings();
971
+ const config = {
972
+ chartType: "swimmer",
973
+ settings: {
974
+ controls: { isOpen: false },
975
+ swimmer: settings
976
+ }
977
+ };
978
+ copyMerge(config, opts);
979
+ if (config.term0) config.term0 = await fillTermWrapper(config.term0, app.vocabApi);
980
+ if (config.pointTerm) config.pointTerm = await fillTermWrapper(config.pointTerm, app.vocabApi);
981
+ return config;
982
+ }
983
+ var swimmerInit = getCompInit(Swimmer);
984
+ var componentInit = swimmerInit;
985
+ export {
986
+ SwimmerRenderer,
987
+ componentInit,
988
+ fetchSwimmerLanes,
989
+ getDefaultSwimmerSettings,
990
+ getPlotConfig,
991
+ swimmerInit
992
+ };
993
+ //# sourceMappingURL=swimmer-RP4SUEZS.js.map