@sjcrh/proteinpaint-client 2.183.0 → 2.183.1

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 (937) hide show
  1. package/dist/2dmaf-PBJ3POZQ.js +1371 -0
  2. package/dist/AIProjectAdmin-5IAXCACJ.js +830 -0
  3. package/dist/AppHeader-HLUE2IQT.js +833 -0
  4. package/dist/BoxPlot-NAQS5MHV.js +1217 -0
  5. package/dist/CorrelationVolcano-TVVUP4L4.js +617 -0
  6. package/dist/DE-F7LUSAO2.js +93 -0
  7. package/dist/DEinput-V7MF5IEZ.js +297 -0
  8. package/dist/DifferentialAnalysis-R2Z7G75Y.js +238 -0
  9. package/dist/Disco-7S5KUVQ6.js +3235 -0
  10. package/dist/Disco.UI-6ONZR7GK.js +242 -0
  11. package/dist/DmrPlot-NZXGFMBY.js +640 -0
  12. package/dist/GB-3EXBSESG.js +1125 -0
  13. package/dist/HicApp-WEYV7T46.js +2248 -0
  14. package/dist/NumBinaryEditor-SNJD6NVL.js +268 -0
  15. package/dist/NumBinaryEditor.unit.spec-A7C4A2HF.js +284 -0
  16. package/dist/NumContEditor-TBOEORWJ.js +105 -0
  17. package/dist/NumContEditor.unit.spec-BJKQNFPL.js +167 -0
  18. package/dist/NumCustomBinEditor-RNWEGLLB.js +36 -0
  19. package/dist/NumCustomBinEditor.unit.spec-CW3D5WOW.js +282 -0
  20. package/dist/NumDiscreteEditor-WXRAMEWQ.js +177 -0
  21. package/dist/NumDiscreteEditor.unit.spec-SJTHYGMI.js +200 -0
  22. package/dist/NumRegularBinEditor-LLSKHSJC.js +36 -0
  23. package/dist/NumRegularBinEditor.unit.spec-G3YRWT52.js +225 -0
  24. package/dist/NumSplineEditor-W6HG3I53.js +190 -0
  25. package/dist/NumSplineEditor.unit.spec-BVVTYJY7.js +197 -0
  26. package/dist/NumericDensity-VYAZXP4D.js +36 -0
  27. package/dist/NumericDensity.unit.spec-4QCKG6GM.js +219 -0
  28. package/dist/NumericHandler-PKCERKLB.js +37 -0
  29. package/dist/NumericHandler.unit.spec-JIYZ3IFG.js +217 -0
  30. package/dist/RunChart2-I4ZBBKOC.js +756 -0
  31. package/dist/SC-OLNRPTNS.js +682 -0
  32. package/dist/Volcano-DEOVDPYB.js +1185 -0
  33. package/dist/WSIViewer-VA36EDFH.js +47974 -0
  34. package/dist/WsiSamplesPlot-RA644FK6.js +163 -0
  35. package/dist/adSandbox-SJ3O3RVJ.js +36 -0
  36. package/dist/alphaGenome-UTVIVOEF.js +173 -0
  37. package/dist/app-6UPJNZVS.js +35 -0
  38. package/dist/app-YFBAT5TM.js +47 -0
  39. package/dist/app.js +20 -20
  40. package/dist/bam-C4KHGT7X.js +857 -0
  41. package/dist/barchart-UOELLJAZ.js +45 -0
  42. package/dist/barchart.data-EYZ3W4BQ.js +22 -0
  43. package/dist/barchart.events-SJZZV3TI.js +45 -0
  44. package/dist/barchart.integration.spec-A4XZNV3B.js +1675 -0
  45. package/dist/block-ODDURI6Y.js +6200 -0
  46. package/dist/block.init-TZXJGL7D.js +36 -0
  47. package/dist/block.mds.expressionrank-UE2D6D3N.js +357 -0
  48. package/dist/block.mds.geneboxplot-KINAWY6K.js +826 -0
  49. package/dist/block.mds.junction-HRJQOYBL.js +1543 -0
  50. package/dist/block.mds.svcnv-7C2IMZXB.js +6799 -0
  51. package/dist/block.svg-757BH6PD.js +162 -0
  52. package/dist/block.tk.aicheck-M4VAVJL6.js +281 -0
  53. package/dist/block.tk.ase-J5HCPECM.js +363 -0
  54. package/dist/block.tk.bam-7NFAMVLF.js +1904 -0
  55. package/dist/block.tk.bedgraphdot-HROSDQH5.js +382 -0
  56. package/dist/block.tk.bigwig.ui-BIMVFUT6.js +209 -0
  57. package/dist/block.tk.hicstraw-W7CWMNZ7.js +821 -0
  58. package/dist/block.tk.junction-ZUUBN36V.js +2362 -0
  59. package/dist/block.tk.junction.textmatrixui-PYJ4UGCF.js +197 -0
  60. package/dist/block.tk.ld-6E7ZXTCC.js +97 -0
  61. package/dist/block.tk.menu-SWT3R74J.js +1027 -0
  62. package/dist/block.tk.pgv-SEDDAV24.js +942 -0
  63. package/dist/brainImaging-X5WPNTUO.js +421 -0
  64. package/dist/chat-KZ3LZAQ6.js +148 -0
  65. package/dist/chunk-2LCTMDCS.js +20649 -0
  66. package/dist/chunk-2LCTMDCS.js.map +7 -0
  67. package/dist/chunk-2TMP56TB.js +386 -0
  68. package/dist/chunk-2VNQJGPM.js +92 -0
  69. package/dist/chunk-3DN47Y2E.js +526 -0
  70. package/dist/chunk-4IL33OUX.js +261 -0
  71. package/dist/chunk-4YG57UVZ.js +228 -0
  72. package/dist/chunk-54P7H5GL.js +1150 -0
  73. package/dist/chunk-5BBR2HND.js +158 -0
  74. package/dist/chunk-5BCACIPX.js +2784 -0
  75. package/dist/chunk-5OHXYXLD.js +46 -0
  76. package/dist/chunk-5OHXYXLD.js.map +7 -0
  77. package/dist/chunk-6CRWDKT7.js +289 -0
  78. package/dist/chunk-7M45T6YS.js +1426 -0
  79. package/dist/chunk-7N3Q25KC.js +26 -0
  80. package/dist/chunk-AQ2ODUYY.js +50 -0
  81. package/dist/chunk-AZLWNXFP.js +1087 -0
  82. package/dist/chunk-B3SLLQAS.js +100 -0
  83. package/dist/chunk-BEWDIM6H.js +42 -0
  84. package/dist/chunk-BEWDIM6H.js.map +7 -0
  85. package/dist/chunk-BHEBKIGM.js +824 -0
  86. package/dist/chunk-CAHAYB6O.js +148 -0
  87. package/dist/chunk-CGDEEO4I.js +37 -0
  88. package/dist/chunk-CXLRKDEC.js +56 -0
  89. package/dist/chunk-DET76M2J.js +102 -0
  90. package/dist/chunk-DONWY7TP.js +39 -0
  91. package/dist/chunk-DP5ACVIR.js +480 -0
  92. package/dist/chunk-E5JQ3PN6.js +176 -0
  93. package/dist/chunk-EJNV6SCH.js +148 -0
  94. package/dist/chunk-F5D4ADBB.js +514 -0
  95. package/dist/chunk-F6V4AYWP.js +177 -0
  96. package/dist/chunk-FBG235FD.js +229 -0
  97. package/dist/chunk-FGMPKWT5.js +371 -0
  98. package/dist/chunk-FWKAYZ55.js +205 -0
  99. package/dist/chunk-GMDQIP3M.js +31 -0
  100. package/dist/chunk-GXINX3WK.js +281 -0
  101. package/dist/chunk-GXINX3WK.js.map +7 -0
  102. package/dist/chunk-GZJ7GDZ4.js +2327 -0
  103. package/dist/chunk-GZJ7GDZ4.js.map +7 -0
  104. package/dist/chunk-H55L2FAY.js +107 -0
  105. package/dist/chunk-HED3JZ2O.js +615 -0
  106. package/dist/chunk-I2M62STM.js +276 -0
  107. package/dist/chunk-I2M62STM.js.map +7 -0
  108. package/dist/chunk-IBIFTCWL.js +293 -0
  109. package/dist/chunk-ILDUYXV5.js +407 -0
  110. package/dist/chunk-IQ25XHGX.js +335 -0
  111. package/dist/chunk-IQIXGTQV.js +84 -0
  112. package/dist/chunk-IQIXGTQV.js.map +7 -0
  113. package/dist/chunk-JLSN2WF5.js +95 -0
  114. package/dist/chunk-JOT4WDJE.js +815 -0
  115. package/dist/chunk-JQIR2UG5.js +1271 -0
  116. package/dist/chunk-K6ZAAZKO.js +1159 -0
  117. package/dist/chunk-K6ZAAZKO.js.map +7 -0
  118. package/dist/chunk-KBDY6GE3.js +446 -0
  119. package/dist/chunk-KZFOWI7N.js +52 -0
  120. package/dist/chunk-LKFYRQOH.js +226 -0
  121. package/dist/chunk-LO4WNMBO.js +6364 -0
  122. package/dist/chunk-LXQ6DLAR.js +217 -0
  123. package/dist/chunk-M3EBH2WK.js +194 -0
  124. package/dist/chunk-M5Z3GYRH.js +2672 -0
  125. package/dist/chunk-MEIKKPY7.js +2815 -0
  126. package/dist/chunk-MZ7RBJSI.js +629 -0
  127. package/dist/chunk-OH7PDA2Z.js +170 -0
  128. package/dist/chunk-OKIJIYSP.js +470 -0
  129. package/dist/chunk-OOD5HBVR.js +34 -0
  130. package/dist/chunk-OTCYJP7G.js +119 -0
  131. package/dist/chunk-P7T2U6T7.js +158 -0
  132. package/dist/chunk-PLHGSDJY.js +142 -0
  133. package/dist/chunk-PUDZL7RZ.js +1205 -0
  134. package/dist/chunk-PYJ3QA6E.js +14 -0
  135. package/dist/chunk-QDRZL47L.js +455 -0
  136. package/dist/chunk-QTGTMFHM.js +441 -0
  137. package/dist/chunk-QWL5TZ4G.js +97 -0
  138. package/dist/chunk-RCYTUKAJ.js +1745 -0
  139. package/dist/chunk-RCYTUKAJ.js.map +7 -0
  140. package/dist/chunk-RF6ATFT2.js +302 -0
  141. package/dist/chunk-RH573XZP.js +368 -0
  142. package/dist/chunk-SOED2SLH.js +257 -0
  143. package/dist/chunk-SOED2SLH.js.map +7 -0
  144. package/dist/chunk-SR72NS4M.js +4961 -0
  145. package/dist/chunk-SSPDNHDW.js +398 -0
  146. package/dist/chunk-SSPDNHDW.js.map +7 -0
  147. package/dist/chunk-STEV77G7.js +215 -0
  148. package/dist/chunk-TBRPZ3FL.js +4207 -0
  149. package/dist/chunk-TE3DK3A6.js +147 -0
  150. package/dist/chunk-TTGDA3MA.js +203 -0
  151. package/dist/chunk-UFDQ2R2Q.js +534 -0
  152. package/dist/chunk-UWX7W22M.js +121 -0
  153. package/dist/chunk-V2R3JFLP.js +54 -0
  154. package/dist/chunk-VKK5MGDU.js +272 -0
  155. package/dist/chunk-WHVOWEFP.js +117 -0
  156. package/dist/chunk-XQTXYKAU.js +55 -0
  157. package/dist/chunk-XRVBHNCW.js +1561 -0
  158. package/dist/chunk-XRVBHNCW.js.map +7 -0
  159. package/dist/chunk-YA73ETIT.js +252 -0
  160. package/dist/chunk-YXJXRXJR.js +273 -0
  161. package/dist/chunk-ZIAGMGMS.js +381 -0
  162. package/dist/chunk-ZXNBYIBD.js +129 -0
  163. package/dist/condition-RQP7JUST.js +330 -0
  164. package/dist/controls-WFT5GE3D.js +39 -0
  165. package/dist/controls.config-66ZKRSPU.js +37 -0
  166. package/dist/correlation-45MFH7X4.js +96 -0
  167. package/dist/cuminc-44ALCFL4.js +1147 -0
  168. package/dist/cuminc.integration.spec-I2UTPH3X.js +676 -0
  169. package/dist/customdata.inputui-PBA5LZRT.js +287 -0
  170. package/dist/dataDownload-CRGQTCOW.js +328 -0
  171. package/dist/dataDownload.integration.spec-7SAPXDH4.js +191 -0
  172. package/dist/databrowser.ui-O5TPKDPL.js +419 -0
  173. package/dist/dictionary-QGSAJ7FM.js +109 -0
  174. package/dist/dnaMethylation-4VDQBBGJ.js +36 -0
  175. package/dist/dnaMethylation.integration.spec-RSO5U6RN.js +165 -0
  176. package/dist/e2pca-7LPSASDI.js +348 -0
  177. package/dist/ep-AIOPCUME.js +1254 -0
  178. package/dist/expclust.gdc.spec-PSXJZCAI.js +305 -0
  179. package/dist/facet-W3RYRWXJ.js +519 -0
  180. package/dist/geneExpClustering-SBQWW6IZ.js +246 -0
  181. package/dist/geneExpression-4WEYCEZV.js +312 -0
  182. package/dist/geneExpression-JWYJNDN5.js +36 -0
  183. package/dist/geneExpression.unit.spec-HKD4DJIV.js +100 -0
  184. package/dist/geneORA-YUVDOZ5X.js +276 -0
  185. package/dist/geneVariant-J3UI6RWM.js +39 -0
  186. package/dist/geneVariant-ZB7CLFCT.js +37 -0
  187. package/dist/geneVariant.integration.spec-JDCKOR4C.js +196 -0
  188. package/dist/genefusion.ui-GUMRDRHQ.js +306 -0
  189. package/dist/genefusion.ui-GUMRDRHQ.js.map +7 -0
  190. package/dist/geneset-242QGP5Q.js +194 -0
  191. package/dist/genomeBrowser.spec-NRLKLJQD.js +279 -0
  192. package/dist/grin2-FD3JTI5R.js +1554 -0
  193. package/dist/grin2-TAR4VXPJ.js +1031 -0
  194. package/dist/gsea-YHG57UZ5.js +45 -0
  195. package/dist/hierCluster-QUAZ7NI6.js +62 -0
  196. package/dist/hierCluster-V2YZEXGX.js +58 -0
  197. package/dist/hierCluster.config-ZOWXZGTF.js +38 -0
  198. package/dist/hierCluster.integration.spec-FAR4KK32.js +374 -0
  199. package/dist/hierCluster.interactivity-D3TK5FSM.js +52 -0
  200. package/dist/hierCluster.renderers-C2RK55NN.js +21 -0
  201. package/dist/imagePlot-2CACVKOO.js +139 -0
  202. package/dist/importPlot-KUOEC2YF.js +8 -0
  203. package/dist/isoformExpression-2G4WCETG.js +38 -0
  204. package/dist/isoformExpression.unit.spec-YBNCR6PE.js +206 -0
  205. package/dist/launch.adhoc-PECQW652.js +40 -0
  206. package/dist/leftlabel.sample-6O2CXXC2.js +257 -0
  207. package/dist/legacyDataset-QRSNRVUA.js +119 -0
  208. package/dist/lollipop-CAFEKZSO.js +166 -0
  209. package/dist/maf-N7ZB5J22.js +450 -0
  210. package/dist/maftimeline-MCYB3EST.js +591 -0
  211. package/dist/matrix-ID662DZG.js +57 -0
  212. package/dist/matrix-JDGO6A4G.js +62 -0
  213. package/dist/matrix.cells-QWB3XSTN.js +28 -0
  214. package/dist/matrix.config-HHWMMUZT.js +39 -0
  215. package/dist/matrix.controls-EOX43634.js +37 -0
  216. package/dist/matrix.data-YTSSULKG.js +25 -0
  217. package/dist/matrix.groups-NGJ276VG.js +26 -0
  218. package/dist/matrix.integration.spec-XHGSEBYM.js +3070 -0
  219. package/dist/matrix.interactivity-OZS7R32Z.js +40 -0
  220. package/dist/matrix.layout-GBQJ7O3H.js +42 -0
  221. package/dist/matrix.legend-AGTC5JPS.js +22 -0
  222. package/dist/matrix.renderers-L5D5NLLR.js +36 -0
  223. package/dist/matrix.serieses-DDQOSCL4.js +21 -0
  224. package/dist/matrix.sort-6VF7VNFX.js +27 -0
  225. package/dist/matrix.sort.unit.spec-QGJBVO3X.js +470 -0
  226. package/dist/matrix.sorterUi-UE7CBIUP.js +18 -0
  227. package/dist/matrix.sorterUi.unit.spec-CTLTVJCO.js +340 -0
  228. package/dist/mavb-MU7H7YWY.js +730 -0
  229. package/dist/mds.fimo-ELCNQMNR.js +516 -0
  230. package/dist/mds.samplescatterplot-P7N4SXYT.js +1548 -0
  231. package/dist/mds.survivalplot-KJFW4IRT.js +481 -0
  232. package/dist/oncomatrix-Q5X3O65P.js +293 -0
  233. package/dist/oncomatrix.spec-CJGXXI3U.js +446 -0
  234. package/dist/plot.2dvaf-CDPVMUPX.js +375 -0
  235. package/dist/plot.app-BSPQMQCI.js +39 -0
  236. package/dist/plot.barplot-C33LEV4Q.js +100 -0
  237. package/dist/plot.boxplot-XH7FN6PC.js +150 -0
  238. package/dist/plot.brainImaging-5BB455FT.js +51 -0
  239. package/dist/plot.disco-3YUN6XAY.js +101 -0
  240. package/dist/plot.dzi-RZWAL5UC.js +33 -0
  241. package/dist/plot.ssgq-M763HWMN.js +137 -0
  242. package/dist/plot.vaf2cov-EAHQV6FD.js +257 -0
  243. package/dist/plot.wsi-2BDC3RJS.js +36 -0
  244. package/dist/polar-3SJ5SUNJ.js +184 -0
  245. package/dist/polar2-3GTEGZUL.js +226 -0
  246. package/dist/profile.spec-AR7JLQYT.js +78 -0
  247. package/dist/profileBarchart-GLTPPW2O.js +265 -0
  248. package/dist/profileForms-FE4GHA2T.js +438 -0
  249. package/dist/profilePlot-3JXEZUX5.js +52 -0
  250. package/dist/profileRadar-NA2WUSHG.js +261 -0
  251. package/dist/profileRadarFacility-6UNT4GPM.js +261 -0
  252. package/dist/proteinView-ESTBC3K2.js +633 -0
  253. package/dist/proteomeAbundance-GDK5EIE7.js +63 -0
  254. package/dist/proteomeAbundance-NVLYQRKI.js +21 -0
  255. package/dist/qualitative-TUNIICQ4.js +41 -0
  256. package/dist/regression-22IF77A7.js +54 -0
  257. package/dist/regression.inputs-VCVMUBA7.js +46 -0
  258. package/dist/regression.inputs.term-6FWVBNJT.js +46 -0
  259. package/dist/regression.inputs.values.table-2FXOWLKN.js +43 -0
  260. package/dist/regression.integration.spec-2UMB7EIG.js +782 -0
  261. package/dist/regression.results-27XHC5GE.js +38 -0
  262. package/dist/regression.spec-5Q4J7TJZ.js +706 -0
  263. package/dist/report-B4RRLC7Q.js +220 -0
  264. package/dist/sampleScatter.spec-TXZYLGM7.js +200 -0
  265. package/dist/sampleView-2WKGJUSX.js +46 -0
  266. package/dist/samplelst-NJZOPYYJ.js +109 -0
  267. package/dist/samplematrix-ZXOLANI5.js +2196 -0
  268. package/dist/sc-4IYYVV2I.js +84 -0
  269. package/dist/scatter-UBF4N6ON.js +800 -0
  270. package/dist/scatter.integration.spec-JNGJ4BU5.js +1194 -0
  271. package/dist/selectGenomeWithTklst-7ICTRJNK.js +132 -0
  272. package/dist/singleCellCellType-Y5ETQYDC.js +36 -0
  273. package/dist/singleCellCellType.unit.spec-TLLZRMD7.js +158 -0
  274. package/dist/singleCellGeneExpression-HZRIE2XT.js +36 -0
  275. package/dist/singleCellGeneExpression.unit.spec-K435LTFJ.js +151 -0
  276. package/dist/singleCellPlot-T7MKCAAW.js +51 -0
  277. package/dist/singlecell-K662WWCH.js +84 -0
  278. package/dist/singlecell-KVLDYQ36.js +1570 -0
  279. package/dist/snp-JNV3DX5W.js +36 -0
  280. package/dist/snp.unit.spec-7KFVZUWR.js +174 -0
  281. package/dist/snplocus-VJLA35TV.js +206 -0
  282. package/dist/spliceevent.a53ss.diagram-MZPU6IBF.js +149 -0
  283. package/dist/spliceevent.exonskip.diagram-OOYBJT4F.js +275 -0
  284. package/dist/spliceevent.noeventdiagram-KPEZVRFS.js +458 -0
  285. package/dist/ssGSEA-GPPPUU2J.js +36 -0
  286. package/dist/ssGSEA.unit.spec-4SRZ4NRN.js +86 -0
  287. package/dist/summarizeCnvGeneexp-NRLEM4X4.js +161 -0
  288. package/dist/summarizeGeneexpSurvival-BJLP43OZ.js +106 -0
  289. package/dist/summarizeMutationCnv-7DCCBY5U.js +162 -0
  290. package/dist/summarizeMutationDiagnosis-HATSCOMG.js +38 -0
  291. package/dist/summarizeMutationSurvival-XIRZFWDJ.js +97 -0
  292. package/dist/summary-VOFTJ76P.js +47 -0
  293. package/dist/summary.integration.spec-2C5RCIY4.js +412 -0
  294. package/dist/summaryInput-DIIECI4W.js +218 -0
  295. package/dist/sunburst-CYROEYTG.js +282 -0
  296. package/dist/survival-5Y3DFIES.js +44 -0
  297. package/dist/survival-WCPGEHW5.js +56 -0
  298. package/dist/survival.integration.spec-LRSN2B7G.js +800 -0
  299. package/dist/survival.integration.spec-LRSN2B7G.js.map +7 -0
  300. package/dist/svgraph-3T6XL7TR.js +1385 -0
  301. package/dist/svmr-GUBPSOID.js +3840 -0
  302. package/dist/table-NTS6ROT7.js +198 -0
  303. package/dist/termCollection-EE72SAHN.js +177 -0
  304. package/dist/termCollection-ZZXLZ3UE.js +36 -0
  305. package/dist/termCollection.unit.spec-3CTEJRTX.js +206 -0
  306. package/dist/tk-6FIXPXTM.js +44 -0
  307. package/dist/tp.ui-4ESL6SCH.js +1457 -0
  308. package/dist/tvs.density-AQ5GD437.js +18 -0
  309. package/dist/tvs.dt-G5FMPWPL.js +37 -0
  310. package/dist/tvs.dtcnv.categorical-EYQ6RTHD.js +38 -0
  311. package/dist/tvs.dtcnv.continuous-PSQMFFNX.js +70 -0
  312. package/dist/tvs.dtfusion-4F6627GK.js +38 -0
  313. package/dist/tvs.dtsnvindel-YNYVLJEI.js +38 -0
  314. package/dist/tvs.dtsv-X2K4K4RN.js +38 -0
  315. package/dist/tvs.numeric-ZN2R7BH3.js +21 -0
  316. package/dist/tvs.samplelst-XZK4BE3H.js +102 -0
  317. package/dist/tvs.termCollection-ZAX57TN4.js +151 -0
  318. package/dist/violin-YEMSGTYF.js +44 -0
  319. package/dist/violin.integration.spec-TULH2DWL.js +1423 -0
  320. package/dist/violin.interactivity-RX2CDFVC.js +36 -0
  321. package/dist/violin.renderer-OJJDZFMZ.js +38 -0
  322. package/dist/vocabulary-726CSMNM.js +39 -0
  323. package/package.json +2 -2
  324. package/dist/2dmaf-6ZTETSC5.js +0 -1371
  325. package/dist/AIProjectAdmin-ZT3XKBBT.js +0 -830
  326. package/dist/AppHeader-U7SJPIBS.js +0 -833
  327. package/dist/BoxPlot-QGHLZ67V.js +0 -1217
  328. package/dist/CorrelationVolcano-7SE4CTBW.js +0 -617
  329. package/dist/DE-PZ7RHPBS.js +0 -93
  330. package/dist/DEinput-UZEQIU2V.js +0 -297
  331. package/dist/DifferentialAnalysis-L6BOEYVO.js +0 -238
  332. package/dist/Disco-6FDT6KRM.js +0 -3235
  333. package/dist/Disco.UI-HKOUAD4P.js +0 -242
  334. package/dist/DmrPlot-3R24PTXP.js +0 -640
  335. package/dist/GB-SZVYZASR.js +0 -1125
  336. package/dist/HicApp-SEEJETVE.js +0 -2248
  337. package/dist/NumBinaryEditor-SDQFJ3FW.js +0 -268
  338. package/dist/NumBinaryEditor.unit.spec-76ZZXTYC.js +0 -284
  339. package/dist/NumContEditor-G75O4YZE.js +0 -105
  340. package/dist/NumContEditor.unit.spec-BFUZRBPL.js +0 -167
  341. package/dist/NumCustomBinEditor-ILTPHCEF.js +0 -36
  342. package/dist/NumCustomBinEditor.unit.spec-GFIYV55V.js +0 -282
  343. package/dist/NumDiscreteEditor-5K3OKUOE.js +0 -177
  344. package/dist/NumDiscreteEditor.unit.spec-NZ4KWPFK.js +0 -200
  345. package/dist/NumRegularBinEditor-7ZJ2MEMY.js +0 -36
  346. package/dist/NumRegularBinEditor.unit.spec-QGVJET65.js +0 -225
  347. package/dist/NumSplineEditor-KE4UPODZ.js +0 -190
  348. package/dist/NumSplineEditor.unit.spec-YQOOZA7S.js +0 -197
  349. package/dist/NumericDensity-RL42P4QC.js +0 -36
  350. package/dist/NumericDensity.unit.spec-Y6RMTYC7.js +0 -219
  351. package/dist/NumericHandler-4QIX324I.js +0 -37
  352. package/dist/NumericHandler.unit.spec-T6F5QYP6.js +0 -217
  353. package/dist/RunChart2-ASGCKKER.js +0 -756
  354. package/dist/SC-H2YCKSBH.js +0 -682
  355. package/dist/Volcano-QBYYJYVW.js +0 -1185
  356. package/dist/WSIViewer-NDHWFVAB.js +0 -47974
  357. package/dist/WsiSamplesPlot-CXGWPCDL.js +0 -163
  358. package/dist/adSandbox-DE4VRO4Z.js +0 -36
  359. package/dist/alphaGenome-FSIGC5ZT.js +0 -173
  360. package/dist/app-KZGKWQMU.js +0 -47
  361. package/dist/app-MQRJ7FVL.js +0 -35
  362. package/dist/bam-BDWTA4O3.js +0 -857
  363. package/dist/barchart-4Q6LVJY4.js +0 -45
  364. package/dist/barchart.data-EXENRVMU.js +0 -22
  365. package/dist/barchart.events-XRGND6I7.js +0 -45
  366. package/dist/barchart.integration.spec-VQITP4YH.js +0 -1675
  367. package/dist/block-2MABX5QO.js +0 -6200
  368. package/dist/block.init-NCNSE3HD.js +0 -36
  369. package/dist/block.mds.expressionrank-JYZARS7T.js +0 -357
  370. package/dist/block.mds.geneboxplot-FD2MCIHV.js +0 -826
  371. package/dist/block.mds.junction-LOHVQBIU.js +0 -1543
  372. package/dist/block.mds.svcnv-Z7SAYPQL.js +0 -6799
  373. package/dist/block.svg-LNJOKQNN.js +0 -162
  374. package/dist/block.tk.aicheck-IXCMMAGV.js +0 -281
  375. package/dist/block.tk.ase-WYRYFP6N.js +0 -363
  376. package/dist/block.tk.bam-EIVBNGAL.js +0 -1904
  377. package/dist/block.tk.bedgraphdot-3FHLNCU7.js +0 -382
  378. package/dist/block.tk.bigwig.ui-YDQU5PC4.js +0 -209
  379. package/dist/block.tk.hicstraw-S3ROL3CV.js +0 -821
  380. package/dist/block.tk.junction-DL7RNWX3.js +0 -2362
  381. package/dist/block.tk.junction.textmatrixui-Z6I7IEDY.js +0 -197
  382. package/dist/block.tk.ld-XHVU6L56.js +0 -97
  383. package/dist/block.tk.menu-FPLAEEFY.js +0 -1027
  384. package/dist/block.tk.pgv-6ZZ2QGNO.js +0 -942
  385. package/dist/brainImaging-VSOOMITW.js +0 -421
  386. package/dist/chat-LW23PIG5.js +0 -148
  387. package/dist/chunk-2A2KM5DU.js +0 -117
  388. package/dist/chunk-2K5DSRBJ.js +0 -84
  389. package/dist/chunk-2K5DSRBJ.js.map +0 -7
  390. package/dist/chunk-2LULD7RN.js +0 -31
  391. package/dist/chunk-36DYWBU7.js +0 -514
  392. package/dist/chunk-3AGB6HL4.js +0 -158
  393. package/dist/chunk-3AVDNIDN.js +0 -55
  394. package/dist/chunk-3DCABJHB.js +0 -381
  395. package/dist/chunk-3JMB3OSC.js +0 -102
  396. package/dist/chunk-3UEMY45Y.js +0 -215
  397. package/dist/chunk-4RR4KPRJ.js +0 -1205
  398. package/dist/chunk-5HCB4HNL.js +0 -147
  399. package/dist/chunk-5RFB7TYT.js +0 -92
  400. package/dist/chunk-5UMPBVA6.js +0 -534
  401. package/dist/chunk-6C2SBTLR.js +0 -407
  402. package/dist/chunk-6ITDJ5UR.js +0 -261
  403. package/dist/chunk-6ITDJ5UR.js.map +0 -7
  404. package/dist/chunk-77ZJGPK2.js +0 -289
  405. package/dist/chunk-7RN3L2BX.js +0 -1788
  406. package/dist/chunk-7RN3L2BX.js.map +0 -7
  407. package/dist/chunk-7VV43ICF.js +0 -272
  408. package/dist/chunk-A742TQD2.js +0 -615
  409. package/dist/chunk-A7E3JZ5P.js +0 -56
  410. package/dist/chunk-AFLFPYJI.js +0 -480
  411. package/dist/chunk-APOHXHKH.js +0 -526
  412. package/dist/chunk-AQ4OP4GR.js +0 -39
  413. package/dist/chunk-BAY47D5E.js +0 -226
  414. package/dist/chunk-CFHKYLDY.js +0 -26
  415. package/dist/chunk-CTAKX5CT.js +0 -129
  416. package/dist/chunk-CVBQWXLH.js +0 -455
  417. package/dist/chunk-D4QFQQWJ.js +0 -170
  418. package/dist/chunk-DGMK7SXX.js +0 -203
  419. package/dist/chunk-DNCSPTOQ.js +0 -446
  420. package/dist/chunk-DTDQKGIQ.js +0 -2672
  421. package/dist/chunk-E4NVHKWD.js +0 -142
  422. package/dist/chunk-E6KEZENR.js +0 -4207
  423. package/dist/chunk-EY2KBPHJ.js +0 -261
  424. package/dist/chunk-FRBYOOWT.js +0 -229
  425. package/dist/chunk-FVWCYGJL.js +0 -121
  426. package/dist/chunk-HWHG63LH.js +0 -148
  427. package/dist/chunk-I4IKRKYJ.js +0 -2815
  428. package/dist/chunk-IEQSUAIO.js +0 -6364
  429. package/dist/chunk-IET6P5MV.js +0 -335
  430. package/dist/chunk-JMPSZMDD.js +0 -52
  431. package/dist/chunk-JXOL73PT.js +0 -2784
  432. package/dist/chunk-K62XUHA4.js +0 -100
  433. package/dist/chunk-KQMEJUWI.js +0 -815
  434. package/dist/chunk-L4QG7XZE.js +0 -46
  435. package/dist/chunk-L4QG7XZE.js.map +0 -7
  436. package/dist/chunk-L4YGMXLX.js +0 -37
  437. package/dist/chunk-LI7FE335.js +0 -371
  438. package/dist/chunk-M7W2GYSM.js +0 -4961
  439. package/dist/chunk-MV6O4I2B.js +0 -441
  440. package/dist/chunk-MXNSW55L.js +0 -148
  441. package/dist/chunk-NB7NLFGZ.js +0 -228
  442. package/dist/chunk-NGGWK6HX.js +0 -302
  443. package/dist/chunk-OGGFS66K.js +0 -1087
  444. package/dist/chunk-OSM7YS23.js +0 -276
  445. package/dist/chunk-OSM7YS23.js.map +0 -7
  446. package/dist/chunk-OXJ2TWDO.js +0 -20644
  447. package/dist/chunk-OXJ2TWDO.js.map +0 -7
  448. package/dist/chunk-Q7PYFSNU.js +0 -107
  449. package/dist/chunk-QMI222IJ.js +0 -386
  450. package/dist/chunk-QRIRWDIW.js +0 -252
  451. package/dist/chunk-R6L6NVEC.js +0 -14
  452. package/dist/chunk-RLTLYKHO.js +0 -34
  453. package/dist/chunk-S5ZI6N2I.js +0 -293
  454. package/dist/chunk-S7T7OZC7.js +0 -158
  455. package/dist/chunk-SEQLC4AD.js +0 -177
  456. package/dist/chunk-TEZLFSOV.js +0 -54
  457. package/dist/chunk-TFI7ZZJG.js +0 -50
  458. package/dist/chunk-TV74I3Y5.js +0 -43
  459. package/dist/chunk-TV74I3Y5.js.map +0 -7
  460. package/dist/chunk-UEMTP6ZC.js +0 -824
  461. package/dist/chunk-UJU3Q7QJ.js +0 -119
  462. package/dist/chunk-V245THQC.js +0 -2370
  463. package/dist/chunk-V245THQC.js.map +0 -7
  464. package/dist/chunk-V6DLLX4N.js +0 -176
  465. package/dist/chunk-VIPMLSZP.js +0 -217
  466. package/dist/chunk-VQPS4SXU.js +0 -97
  467. package/dist/chunk-VUUZJANK.js +0 -1150
  468. package/dist/chunk-W345H42C.js +0 -273
  469. package/dist/chunk-WGHO2NCP.js +0 -205
  470. package/dist/chunk-WGL6FIUE.js +0 -330
  471. package/dist/chunk-WGL6FIUE.js.map +0 -7
  472. package/dist/chunk-WPHOEG56.js +0 -194
  473. package/dist/chunk-WS5XVKPJ.js +0 -470
  474. package/dist/chunk-X6URQAFD.js +0 -1271
  475. package/dist/chunk-XYFDBYOY.js +0 -1658
  476. package/dist/chunk-XYFDBYOY.js.map +0 -7
  477. package/dist/chunk-Y6RCKITI.js +0 -1155
  478. package/dist/chunk-Y6RCKITI.js.map +0 -7
  479. package/dist/chunk-YALAQWX4.js +0 -368
  480. package/dist/chunk-YY4CKQJ6.js +0 -95
  481. package/dist/chunk-Z3KV6SC2.js +0 -629
  482. package/dist/chunk-ZGT4XP5J.js +0 -1426
  483. package/dist/chunk-ZIBWLDQI.js +0 -230
  484. package/dist/chunk-ZIBWLDQI.js.map +0 -7
  485. package/dist/condition-JKQIRMMW.js +0 -330
  486. package/dist/controls-324AGOZG.js +0 -39
  487. package/dist/controls.config-TA4NNARU.js +0 -37
  488. package/dist/correlation-3Z36TKC2.js +0 -96
  489. package/dist/cuminc-4DY2CSZF.js +0 -1147
  490. package/dist/cuminc.integration.spec-SFQPLMSF.js +0 -676
  491. package/dist/customdata.inputui-IKGPEBXV.js +0 -287
  492. package/dist/dataDownload-3AE2N7KI.js +0 -328
  493. package/dist/dataDownload.integration.spec-DKOT6BJP.js +0 -191
  494. package/dist/databrowser.ui-ATODRS5P.js +0 -419
  495. package/dist/dictionary-WHDZBW5M.js +0 -109
  496. package/dist/dnaMethylation-TVA5YMOR.js +0 -36
  497. package/dist/dnaMethylation.integration.spec-JTWQR6XY.js +0 -165
  498. package/dist/e2pca-KHVDNFEZ.js +0 -348
  499. package/dist/ep-B5GAAMNM.js +0 -1254
  500. package/dist/expclust.gdc.spec-EDPX7V6K.js +0 -305
  501. package/dist/facet-ZCSXKXIO.js +0 -519
  502. package/dist/geneExpClustering-ERNCMAED.js +0 -246
  503. package/dist/geneExpression-HUOXWETT.js +0 -36
  504. package/dist/geneExpression-X2KXJPND.js +0 -312
  505. package/dist/geneExpression.unit.spec-5QQB4ISW.js +0 -100
  506. package/dist/geneORA-B5UK77KL.js +0 -276
  507. package/dist/geneVariant-7MGUAIZ6.js +0 -39
  508. package/dist/geneVariant-FK3KZJ2K.js +0 -37
  509. package/dist/geneVariant.integration.spec-C6TYWKIC.js +0 -196
  510. package/dist/genefusion.ui-VKAINMY7.js +0 -249
  511. package/dist/genefusion.ui-VKAINMY7.js.map +0 -7
  512. package/dist/geneset-673KAZVX.js +0 -194
  513. package/dist/genomeBrowser.spec-T6TQCJ3O.js +0 -279
  514. package/dist/grin2-376BD4XY.js +0 -1554
  515. package/dist/grin2-OALS75LC.js +0 -1031
  516. package/dist/gsea-25LD2LGP.js +0 -45
  517. package/dist/hierCluster-7KU3K52V.js +0 -58
  518. package/dist/hierCluster-M5VVWKQK.js +0 -62
  519. package/dist/hierCluster.config-EDO3SH2P.js +0 -38
  520. package/dist/hierCluster.integration.spec-UOX7J2XD.js +0 -374
  521. package/dist/hierCluster.interactivity-FEFZDXML.js +0 -52
  522. package/dist/hierCluster.renderers-A6MEGO2B.js +0 -21
  523. package/dist/imagePlot-FPXZ2H5Z.js +0 -139
  524. package/dist/importPlot-VKWPSFEK.js +0 -8
  525. package/dist/isoformExpression-2R2TOB6P.js +0 -38
  526. package/dist/isoformExpression.unit.spec-ZKFKOPKT.js +0 -206
  527. package/dist/launch.adhoc-242RS6DW.js +0 -40
  528. package/dist/leftlabel.sample-OJW3AE64.js +0 -257
  529. package/dist/legacyDataset-PBCPC5I7.js +0 -119
  530. package/dist/lollipop-TRQ3LK7Y.js +0 -166
  531. package/dist/maf-ZBOLN2FE.js +0 -450
  532. package/dist/maftimeline-GVX7NJP7.js +0 -591
  533. package/dist/matrix-73KRNXLM.js +0 -57
  534. package/dist/matrix-US3OXYRY.js +0 -62
  535. package/dist/matrix.cells-U7AQNEBP.js +0 -28
  536. package/dist/matrix.config-Q57D7C3F.js +0 -39
  537. package/dist/matrix.controls-AWXDRSWP.js +0 -37
  538. package/dist/matrix.data-EEIY6AO4.js +0 -25
  539. package/dist/matrix.groups-CUB6UWC5.js +0 -26
  540. package/dist/matrix.integration.spec-PQH67KRM.js +0 -3070
  541. package/dist/matrix.interactivity-JW4AXAWO.js +0 -40
  542. package/dist/matrix.layout-I56KRVCO.js +0 -42
  543. package/dist/matrix.legend-42LQGAGX.js +0 -22
  544. package/dist/matrix.renderers-IX3FCNBK.js +0 -36
  545. package/dist/matrix.serieses-4B2WB526.js +0 -21
  546. package/dist/matrix.sort-BJACNR7G.js +0 -27
  547. package/dist/matrix.sort.unit.spec-3KKDKIPY.js +0 -470
  548. package/dist/matrix.sorterUi-W6XFYZY2.js +0 -18
  549. package/dist/matrix.sorterUi.unit.spec-CMJ7EBIW.js +0 -340
  550. package/dist/mavb-ROAE6WYA.js +0 -730
  551. package/dist/mds.fimo-UGK5OWCF.js +0 -516
  552. package/dist/mds.samplescatterplot-5KFUAYSB.js +0 -1548
  553. package/dist/mds.survivalplot-2EVNZUX5.js +0 -481
  554. package/dist/oncomatrix-UGFXSXQJ.js +0 -293
  555. package/dist/oncomatrix.spec-FEP7BR7L.js +0 -446
  556. package/dist/plot.2dvaf-WXGLWCOC.js +0 -375
  557. package/dist/plot.app-IZAFRTBU.js +0 -39
  558. package/dist/plot.barplot-Z4VWOPFJ.js +0 -100
  559. package/dist/plot.boxplot-QU2KZSB7.js +0 -150
  560. package/dist/plot.brainImaging-U643YIK7.js +0 -51
  561. package/dist/plot.disco-3BV6YEBC.js +0 -101
  562. package/dist/plot.dzi-DWXPOOQE.js +0 -33
  563. package/dist/plot.ssgq-GXB2GZO3.js +0 -137
  564. package/dist/plot.vaf2cov-EKRIADPB.js +0 -257
  565. package/dist/plot.wsi-E2LLE6HI.js +0 -36
  566. package/dist/polar-MZLIUXHO.js +0 -184
  567. package/dist/polar2-IUVHNQM4.js +0 -226
  568. package/dist/profile.spec-JRW6KYUI.js +0 -78
  569. package/dist/profileBarchart-N7HJMYZ5.js +0 -265
  570. package/dist/profileForms-Q5TPGPQP.js +0 -438
  571. package/dist/profilePlot-TXTUYDVE.js +0 -52
  572. package/dist/profileRadar-ICEASI7W.js +0 -261
  573. package/dist/profileRadarFacility-NFMRNJYX.js +0 -261
  574. package/dist/proteinView-K3JFNORQ.js +0 -633
  575. package/dist/proteomeAbundance-DE4NVBCN.js +0 -21
  576. package/dist/proteomeAbundance-LTB3QR3G.js +0 -63
  577. package/dist/qualitative-DFGWQURY.js +0 -41
  578. package/dist/regression-TTQTAEGD.js +0 -54
  579. package/dist/regression.inputs-2LU2XRGC.js +0 -46
  580. package/dist/regression.inputs.term-G57GL57T.js +0 -46
  581. package/dist/regression.inputs.values.table-JSEM3PXL.js +0 -43
  582. package/dist/regression.integration.spec-XJQJAIC3.js +0 -782
  583. package/dist/regression.results-3YNM6LLQ.js +0 -38
  584. package/dist/regression.spec-S6WFCPSW.js +0 -706
  585. package/dist/report-YRAV4MY4.js +0 -220
  586. package/dist/sampleScatter.spec-MBJ4XNTX.js +0 -200
  587. package/dist/sampleView-IUR3ZEN7.js +0 -46
  588. package/dist/samplelst-C2NBFGH6.js +0 -109
  589. package/dist/samplematrix-AOK2HHSB.js +0 -2196
  590. package/dist/sc-XT3Z5XJI.js +0 -84
  591. package/dist/scatter-SAHKZRFL.js +0 -800
  592. package/dist/scatter.integration.spec-6KRDNHHH.js +0 -1194
  593. package/dist/selectGenomeWithTklst-2YVZ4JWV.js +0 -132
  594. package/dist/singleCellCellType-NFN5GQJM.js +0 -36
  595. package/dist/singleCellCellType.unit.spec-CR4IJ4DA.js +0 -158
  596. package/dist/singleCellGeneExpression-7AQGLXTR.js +0 -36
  597. package/dist/singleCellGeneExpression.unit.spec-QYNWSV2G.js +0 -151
  598. package/dist/singleCellPlot-IWFEG44C.js +0 -51
  599. package/dist/singlecell-3QNV4OMZ.js +0 -1570
  600. package/dist/singlecell-EATPLH66.js +0 -84
  601. package/dist/snp-UP7WL7WG.js +0 -36
  602. package/dist/snp.unit.spec-Y5NWQ442.js +0 -174
  603. package/dist/snplocus-WAQK2AZG.js +0 -206
  604. package/dist/spliceevent.a53ss.diagram-FFK27UIB.js +0 -149
  605. package/dist/spliceevent.exonskip.diagram-KWEF2OZJ.js +0 -275
  606. package/dist/spliceevent.noeventdiagram-PU4TI7OM.js +0 -458
  607. package/dist/ssGSEA-N6QOAVLW.js +0 -36
  608. package/dist/ssGSEA.unit.spec-KQBNZNNP.js +0 -86
  609. package/dist/summarizeCnvGeneexp-NWX4M6LZ.js +0 -161
  610. package/dist/summarizeGeneexpSurvival-N5VTE2G6.js +0 -106
  611. package/dist/summarizeMutationCnv-VV7CVAA7.js +0 -162
  612. package/dist/summarizeMutationDiagnosis-5RHSG7L6.js +0 -38
  613. package/dist/summarizeMutationSurvival-22YYXGS5.js +0 -97
  614. package/dist/summary-P3WIKJS7.js +0 -47
  615. package/dist/summary.integration.spec-ULGRPICW.js +0 -412
  616. package/dist/summaryInput-IH4EVNF5.js +0 -218
  617. package/dist/sunburst-VJJ3UVYC.js +0 -282
  618. package/dist/survival-2ZE3N62A.js +0 -44
  619. package/dist/survival-ASCLKIII.js +0 -56
  620. package/dist/survival.integration.spec-C5YXOY77.js +0 -787
  621. package/dist/survival.integration.spec-C5YXOY77.js.map +0 -7
  622. package/dist/svgraph-AYR2UPNK.js +0 -1385
  623. package/dist/svmr-MOMW5DNY.js +0 -3840
  624. package/dist/table-PQB6KCEY.js +0 -198
  625. package/dist/termCollection-5AY2AWT4.js +0 -36
  626. package/dist/termCollection-OQMUUTW6.js +0 -177
  627. package/dist/termCollection.unit.spec-BUAXYIJK.js +0 -206
  628. package/dist/tk-EJLFFA5H.js +0 -44
  629. package/dist/tp.ui-WUW6A7KP.js +0 -1457
  630. package/dist/tvs.density-HSVPDDGA.js +0 -18
  631. package/dist/tvs.dt-MVJXQMNU.js +0 -37
  632. package/dist/tvs.dtcnv.categorical-FIIDWVK7.js +0 -38
  633. package/dist/tvs.dtcnv.continuous-JPQU3JA2.js +0 -70
  634. package/dist/tvs.dtfusion-BW35GOQM.js +0 -38
  635. package/dist/tvs.dtsnvindel-AEMFZ4EH.js +0 -38
  636. package/dist/tvs.dtsv-JHTU7UFD.js +0 -38
  637. package/dist/tvs.numeric-ICUGA4WY.js +0 -21
  638. package/dist/tvs.samplelst-VD2NFFFS.js +0 -102
  639. package/dist/tvs.termCollection-IKE5Q74D.js +0 -151
  640. package/dist/violin-DPMJLHQG.js +0 -44
  641. package/dist/violin.integration.spec-A4PNR4ES.js +0 -1423
  642. package/dist/violin.interactivity-TS4DYUE5.js +0 -36
  643. package/dist/violin.renderer-53L4PXUT.js +0 -38
  644. package/dist/vocabulary-4MPFHKYC.js +0 -39
  645. /package/dist/{2dmaf-6ZTETSC5.js.map → 2dmaf-PBJ3POZQ.js.map} +0 -0
  646. /package/dist/{AIProjectAdmin-ZT3XKBBT.js.map → AIProjectAdmin-5IAXCACJ.js.map} +0 -0
  647. /package/dist/{AppHeader-U7SJPIBS.js.map → AppHeader-HLUE2IQT.js.map} +0 -0
  648. /package/dist/{BoxPlot-QGHLZ67V.js.map → BoxPlot-NAQS5MHV.js.map} +0 -0
  649. /package/dist/{CorrelationVolcano-7SE4CTBW.js.map → CorrelationVolcano-TVVUP4L4.js.map} +0 -0
  650. /package/dist/{DE-PZ7RHPBS.js.map → DE-F7LUSAO2.js.map} +0 -0
  651. /package/dist/{DEinput-UZEQIU2V.js.map → DEinput-V7MF5IEZ.js.map} +0 -0
  652. /package/dist/{DifferentialAnalysis-L6BOEYVO.js.map → DifferentialAnalysis-R2Z7G75Y.js.map} +0 -0
  653. /package/dist/{Disco-6FDT6KRM.js.map → Disco-7S5KUVQ6.js.map} +0 -0
  654. /package/dist/{Disco.UI-HKOUAD4P.js.map → Disco.UI-6ONZR7GK.js.map} +0 -0
  655. /package/dist/{DmrPlot-3R24PTXP.js.map → DmrPlot-NZXGFMBY.js.map} +0 -0
  656. /package/dist/{GB-SZVYZASR.js.map → GB-3EXBSESG.js.map} +0 -0
  657. /package/dist/{HicApp-SEEJETVE.js.map → HicApp-WEYV7T46.js.map} +0 -0
  658. /package/dist/{NumBinaryEditor-SDQFJ3FW.js.map → NumBinaryEditor-SNJD6NVL.js.map} +0 -0
  659. /package/dist/{NumBinaryEditor.unit.spec-76ZZXTYC.js.map → NumBinaryEditor.unit.spec-A7C4A2HF.js.map} +0 -0
  660. /package/dist/{NumContEditor-G75O4YZE.js.map → NumContEditor-TBOEORWJ.js.map} +0 -0
  661. /package/dist/{NumContEditor.unit.spec-BFUZRBPL.js.map → NumContEditor.unit.spec-BJKQNFPL.js.map} +0 -0
  662. /package/dist/{NumCustomBinEditor-ILTPHCEF.js.map → NumCustomBinEditor-RNWEGLLB.js.map} +0 -0
  663. /package/dist/{NumCustomBinEditor.unit.spec-GFIYV55V.js.map → NumCustomBinEditor.unit.spec-CW3D5WOW.js.map} +0 -0
  664. /package/dist/{NumDiscreteEditor-5K3OKUOE.js.map → NumDiscreteEditor-WXRAMEWQ.js.map} +0 -0
  665. /package/dist/{NumDiscreteEditor.unit.spec-NZ4KWPFK.js.map → NumDiscreteEditor.unit.spec-SJTHYGMI.js.map} +0 -0
  666. /package/dist/{NumRegularBinEditor-7ZJ2MEMY.js.map → NumRegularBinEditor-LLSKHSJC.js.map} +0 -0
  667. /package/dist/{NumRegularBinEditor.unit.spec-QGVJET65.js.map → NumRegularBinEditor.unit.spec-G3YRWT52.js.map} +0 -0
  668. /package/dist/{NumSplineEditor-KE4UPODZ.js.map → NumSplineEditor-W6HG3I53.js.map} +0 -0
  669. /package/dist/{NumSplineEditor.unit.spec-YQOOZA7S.js.map → NumSplineEditor.unit.spec-BVVTYJY7.js.map} +0 -0
  670. /package/dist/{NumericDensity-RL42P4QC.js.map → NumericDensity-VYAZXP4D.js.map} +0 -0
  671. /package/dist/{NumericDensity.unit.spec-Y6RMTYC7.js.map → NumericDensity.unit.spec-4QCKG6GM.js.map} +0 -0
  672. /package/dist/{NumericHandler-4QIX324I.js.map → NumericHandler-PKCERKLB.js.map} +0 -0
  673. /package/dist/{NumericHandler.unit.spec-T6F5QYP6.js.map → NumericHandler.unit.spec-JIYZ3IFG.js.map} +0 -0
  674. /package/dist/{RunChart2-ASGCKKER.js.map → RunChart2-I4ZBBKOC.js.map} +0 -0
  675. /package/dist/{SC-H2YCKSBH.js.map → SC-OLNRPTNS.js.map} +0 -0
  676. /package/dist/{Volcano-QBYYJYVW.js.map → Volcano-DEOVDPYB.js.map} +0 -0
  677. /package/dist/{WSIViewer-NDHWFVAB.js.map → WSIViewer-VA36EDFH.js.map} +0 -0
  678. /package/dist/{WsiSamplesPlot-CXGWPCDL.js.map → WsiSamplesPlot-RA644FK6.js.map} +0 -0
  679. /package/dist/{adSandbox-DE4VRO4Z.js.map → adSandbox-SJ3O3RVJ.js.map} +0 -0
  680. /package/dist/{alphaGenome-FSIGC5ZT.js.map → alphaGenome-UTVIVOEF.js.map} +0 -0
  681. /package/dist/{app-KZGKWQMU.js.map → app-6UPJNZVS.js.map} +0 -0
  682. /package/dist/{app-MQRJ7FVL.js.map → app-YFBAT5TM.js.map} +0 -0
  683. /package/dist/{bam-BDWTA4O3.js.map → bam-C4KHGT7X.js.map} +0 -0
  684. /package/dist/{barchart-4Q6LVJY4.js.map → barchart-UOELLJAZ.js.map} +0 -0
  685. /package/dist/{barchart.data-EXENRVMU.js.map → barchart.data-EYZ3W4BQ.js.map} +0 -0
  686. /package/dist/{barchart.events-XRGND6I7.js.map → barchart.events-SJZZV3TI.js.map} +0 -0
  687. /package/dist/{barchart.integration.spec-VQITP4YH.js.map → barchart.integration.spec-A4XZNV3B.js.map} +0 -0
  688. /package/dist/{block-2MABX5QO.js.map → block-ODDURI6Y.js.map} +0 -0
  689. /package/dist/{block.init-NCNSE3HD.js.map → block.init-TZXJGL7D.js.map} +0 -0
  690. /package/dist/{block.mds.expressionrank-JYZARS7T.js.map → block.mds.expressionrank-UE2D6D3N.js.map} +0 -0
  691. /package/dist/{block.mds.geneboxplot-FD2MCIHV.js.map → block.mds.geneboxplot-KINAWY6K.js.map} +0 -0
  692. /package/dist/{block.mds.junction-LOHVQBIU.js.map → block.mds.junction-HRJQOYBL.js.map} +0 -0
  693. /package/dist/{block.mds.svcnv-Z7SAYPQL.js.map → block.mds.svcnv-7C2IMZXB.js.map} +0 -0
  694. /package/dist/{block.svg-LNJOKQNN.js.map → block.svg-757BH6PD.js.map} +0 -0
  695. /package/dist/{block.tk.aicheck-IXCMMAGV.js.map → block.tk.aicheck-M4VAVJL6.js.map} +0 -0
  696. /package/dist/{block.tk.ase-WYRYFP6N.js.map → block.tk.ase-J5HCPECM.js.map} +0 -0
  697. /package/dist/{block.tk.bam-EIVBNGAL.js.map → block.tk.bam-7NFAMVLF.js.map} +0 -0
  698. /package/dist/{block.tk.bedgraphdot-3FHLNCU7.js.map → block.tk.bedgraphdot-HROSDQH5.js.map} +0 -0
  699. /package/dist/{block.tk.bigwig.ui-YDQU5PC4.js.map → block.tk.bigwig.ui-BIMVFUT6.js.map} +0 -0
  700. /package/dist/{block.tk.hicstraw-S3ROL3CV.js.map → block.tk.hicstraw-W7CWMNZ7.js.map} +0 -0
  701. /package/dist/{block.tk.junction-DL7RNWX3.js.map → block.tk.junction-ZUUBN36V.js.map} +0 -0
  702. /package/dist/{block.tk.junction.textmatrixui-Z6I7IEDY.js.map → block.tk.junction.textmatrixui-PYJ4UGCF.js.map} +0 -0
  703. /package/dist/{block.tk.ld-XHVU6L56.js.map → block.tk.ld-6E7ZXTCC.js.map} +0 -0
  704. /package/dist/{block.tk.menu-FPLAEEFY.js.map → block.tk.menu-SWT3R74J.js.map} +0 -0
  705. /package/dist/{block.tk.pgv-6ZZ2QGNO.js.map → block.tk.pgv-SEDDAV24.js.map} +0 -0
  706. /package/dist/{brainImaging-VSOOMITW.js.map → brainImaging-X5WPNTUO.js.map} +0 -0
  707. /package/dist/{chat-LW23PIG5.js.map → chat-KZ3LZAQ6.js.map} +0 -0
  708. /package/dist/{chunk-QMI222IJ.js.map → chunk-2TMP56TB.js.map} +0 -0
  709. /package/dist/{chunk-5RFB7TYT.js.map → chunk-2VNQJGPM.js.map} +0 -0
  710. /package/dist/{chunk-APOHXHKH.js.map → chunk-3DN47Y2E.js.map} +0 -0
  711. /package/dist/{chunk-EY2KBPHJ.js.map → chunk-4IL33OUX.js.map} +0 -0
  712. /package/dist/{chunk-NB7NLFGZ.js.map → chunk-4YG57UVZ.js.map} +0 -0
  713. /package/dist/{chunk-VUUZJANK.js.map → chunk-54P7H5GL.js.map} +0 -0
  714. /package/dist/{chunk-S7T7OZC7.js.map → chunk-5BBR2HND.js.map} +0 -0
  715. /package/dist/{chunk-JXOL73PT.js.map → chunk-5BCACIPX.js.map} +0 -0
  716. /package/dist/{chunk-77ZJGPK2.js.map → chunk-6CRWDKT7.js.map} +0 -0
  717. /package/dist/{chunk-ZGT4XP5J.js.map → chunk-7M45T6YS.js.map} +0 -0
  718. /package/dist/{chunk-CFHKYLDY.js.map → chunk-7N3Q25KC.js.map} +0 -0
  719. /package/dist/{chunk-TFI7ZZJG.js.map → chunk-AQ2ODUYY.js.map} +0 -0
  720. /package/dist/{chunk-OGGFS66K.js.map → chunk-AZLWNXFP.js.map} +0 -0
  721. /package/dist/{chunk-K62XUHA4.js.map → chunk-B3SLLQAS.js.map} +0 -0
  722. /package/dist/{chunk-UEMTP6ZC.js.map → chunk-BHEBKIGM.js.map} +0 -0
  723. /package/dist/{chunk-MXNSW55L.js.map → chunk-CAHAYB6O.js.map} +0 -0
  724. /package/dist/{chunk-L4YGMXLX.js.map → chunk-CGDEEO4I.js.map} +0 -0
  725. /package/dist/{chunk-A7E3JZ5P.js.map → chunk-CXLRKDEC.js.map} +0 -0
  726. /package/dist/{chunk-3JMB3OSC.js.map → chunk-DET76M2J.js.map} +0 -0
  727. /package/dist/{chunk-AQ4OP4GR.js.map → chunk-DONWY7TP.js.map} +0 -0
  728. /package/dist/{chunk-AFLFPYJI.js.map → chunk-DP5ACVIR.js.map} +0 -0
  729. /package/dist/{chunk-V6DLLX4N.js.map → chunk-E5JQ3PN6.js.map} +0 -0
  730. /package/dist/{chunk-HWHG63LH.js.map → chunk-EJNV6SCH.js.map} +0 -0
  731. /package/dist/{chunk-36DYWBU7.js.map → chunk-F5D4ADBB.js.map} +0 -0
  732. /package/dist/{chunk-SEQLC4AD.js.map → chunk-F6V4AYWP.js.map} +0 -0
  733. /package/dist/{chunk-FRBYOOWT.js.map → chunk-FBG235FD.js.map} +0 -0
  734. /package/dist/{chunk-LI7FE335.js.map → chunk-FGMPKWT5.js.map} +0 -0
  735. /package/dist/{chunk-WGHO2NCP.js.map → chunk-FWKAYZ55.js.map} +0 -0
  736. /package/dist/{chunk-2LULD7RN.js.map → chunk-GMDQIP3M.js.map} +0 -0
  737. /package/dist/{chunk-Q7PYFSNU.js.map → chunk-H55L2FAY.js.map} +0 -0
  738. /package/dist/{chunk-A742TQD2.js.map → chunk-HED3JZ2O.js.map} +0 -0
  739. /package/dist/{chunk-S5ZI6N2I.js.map → chunk-IBIFTCWL.js.map} +0 -0
  740. /package/dist/{chunk-6C2SBTLR.js.map → chunk-ILDUYXV5.js.map} +0 -0
  741. /package/dist/{chunk-IET6P5MV.js.map → chunk-IQ25XHGX.js.map} +0 -0
  742. /package/dist/{chunk-YY4CKQJ6.js.map → chunk-JLSN2WF5.js.map} +0 -0
  743. /package/dist/{chunk-KQMEJUWI.js.map → chunk-JOT4WDJE.js.map} +0 -0
  744. /package/dist/{chunk-X6URQAFD.js.map → chunk-JQIR2UG5.js.map} +0 -0
  745. /package/dist/{chunk-DNCSPTOQ.js.map → chunk-KBDY6GE3.js.map} +0 -0
  746. /package/dist/{chunk-JMPSZMDD.js.map → chunk-KZFOWI7N.js.map} +0 -0
  747. /package/dist/{chunk-BAY47D5E.js.map → chunk-LKFYRQOH.js.map} +0 -0
  748. /package/dist/{chunk-IEQSUAIO.js.map → chunk-LO4WNMBO.js.map} +0 -0
  749. /package/dist/{chunk-VIPMLSZP.js.map → chunk-LXQ6DLAR.js.map} +0 -0
  750. /package/dist/{chunk-WPHOEG56.js.map → chunk-M3EBH2WK.js.map} +0 -0
  751. /package/dist/{chunk-DTDQKGIQ.js.map → chunk-M5Z3GYRH.js.map} +0 -0
  752. /package/dist/{chunk-I4IKRKYJ.js.map → chunk-MEIKKPY7.js.map} +0 -0
  753. /package/dist/{chunk-Z3KV6SC2.js.map → chunk-MZ7RBJSI.js.map} +0 -0
  754. /package/dist/{chunk-D4QFQQWJ.js.map → chunk-OH7PDA2Z.js.map} +0 -0
  755. /package/dist/{chunk-WS5XVKPJ.js.map → chunk-OKIJIYSP.js.map} +0 -0
  756. /package/dist/{chunk-RLTLYKHO.js.map → chunk-OOD5HBVR.js.map} +0 -0
  757. /package/dist/{chunk-UJU3Q7QJ.js.map → chunk-OTCYJP7G.js.map} +0 -0
  758. /package/dist/{chunk-3AGB6HL4.js.map → chunk-P7T2U6T7.js.map} +0 -0
  759. /package/dist/{chunk-E4NVHKWD.js.map → chunk-PLHGSDJY.js.map} +0 -0
  760. /package/dist/{chunk-4RR4KPRJ.js.map → chunk-PUDZL7RZ.js.map} +0 -0
  761. /package/dist/{chunk-R6L6NVEC.js.map → chunk-PYJ3QA6E.js.map} +0 -0
  762. /package/dist/{chunk-CVBQWXLH.js.map → chunk-QDRZL47L.js.map} +0 -0
  763. /package/dist/{chunk-MV6O4I2B.js.map → chunk-QTGTMFHM.js.map} +0 -0
  764. /package/dist/{chunk-VQPS4SXU.js.map → chunk-QWL5TZ4G.js.map} +0 -0
  765. /package/dist/{chunk-NGGWK6HX.js.map → chunk-RF6ATFT2.js.map} +0 -0
  766. /package/dist/{chunk-YALAQWX4.js.map → chunk-RH573XZP.js.map} +0 -0
  767. /package/dist/{chunk-M7W2GYSM.js.map → chunk-SR72NS4M.js.map} +0 -0
  768. /package/dist/{chunk-3UEMY45Y.js.map → chunk-STEV77G7.js.map} +0 -0
  769. /package/dist/{chunk-E6KEZENR.js.map → chunk-TBRPZ3FL.js.map} +0 -0
  770. /package/dist/{chunk-5HCB4HNL.js.map → chunk-TE3DK3A6.js.map} +0 -0
  771. /package/dist/{chunk-DGMK7SXX.js.map → chunk-TTGDA3MA.js.map} +0 -0
  772. /package/dist/{chunk-5UMPBVA6.js.map → chunk-UFDQ2R2Q.js.map} +0 -0
  773. /package/dist/{chunk-FVWCYGJL.js.map → chunk-UWX7W22M.js.map} +0 -0
  774. /package/dist/{chunk-TEZLFSOV.js.map → chunk-V2R3JFLP.js.map} +0 -0
  775. /package/dist/{chunk-7VV43ICF.js.map → chunk-VKK5MGDU.js.map} +0 -0
  776. /package/dist/{chunk-2A2KM5DU.js.map → chunk-WHVOWEFP.js.map} +0 -0
  777. /package/dist/{chunk-3AVDNIDN.js.map → chunk-XQTXYKAU.js.map} +0 -0
  778. /package/dist/{chunk-QRIRWDIW.js.map → chunk-YA73ETIT.js.map} +0 -0
  779. /package/dist/{chunk-W345H42C.js.map → chunk-YXJXRXJR.js.map} +0 -0
  780. /package/dist/{chunk-3DCABJHB.js.map → chunk-ZIAGMGMS.js.map} +0 -0
  781. /package/dist/{chunk-CTAKX5CT.js.map → chunk-ZXNBYIBD.js.map} +0 -0
  782. /package/dist/{condition-JKQIRMMW.js.map → condition-RQP7JUST.js.map} +0 -0
  783. /package/dist/{controls-324AGOZG.js.map → controls-WFT5GE3D.js.map} +0 -0
  784. /package/dist/{controls.config-TA4NNARU.js.map → controls.config-66ZKRSPU.js.map} +0 -0
  785. /package/dist/{correlation-3Z36TKC2.js.map → correlation-45MFH7X4.js.map} +0 -0
  786. /package/dist/{cuminc-4DY2CSZF.js.map → cuminc-44ALCFL4.js.map} +0 -0
  787. /package/dist/{cuminc.integration.spec-SFQPLMSF.js.map → cuminc.integration.spec-I2UTPH3X.js.map} +0 -0
  788. /package/dist/{customdata.inputui-IKGPEBXV.js.map → customdata.inputui-PBA5LZRT.js.map} +0 -0
  789. /package/dist/{dataDownload-3AE2N7KI.js.map → dataDownload-CRGQTCOW.js.map} +0 -0
  790. /package/dist/{dataDownload.integration.spec-DKOT6BJP.js.map → dataDownload.integration.spec-7SAPXDH4.js.map} +0 -0
  791. /package/dist/{databrowser.ui-ATODRS5P.js.map → databrowser.ui-O5TPKDPL.js.map} +0 -0
  792. /package/dist/{dictionary-WHDZBW5M.js.map → dictionary-QGSAJ7FM.js.map} +0 -0
  793. /package/dist/{dnaMethylation-TVA5YMOR.js.map → dnaMethylation-4VDQBBGJ.js.map} +0 -0
  794. /package/dist/{dnaMethylation.integration.spec-JTWQR6XY.js.map → dnaMethylation.integration.spec-RSO5U6RN.js.map} +0 -0
  795. /package/dist/{e2pca-KHVDNFEZ.js.map → e2pca-7LPSASDI.js.map} +0 -0
  796. /package/dist/{ep-B5GAAMNM.js.map → ep-AIOPCUME.js.map} +0 -0
  797. /package/dist/{expclust.gdc.spec-EDPX7V6K.js.map → expclust.gdc.spec-PSXJZCAI.js.map} +0 -0
  798. /package/dist/{facet-ZCSXKXIO.js.map → facet-W3RYRWXJ.js.map} +0 -0
  799. /package/dist/{geneExpClustering-ERNCMAED.js.map → geneExpClustering-SBQWW6IZ.js.map} +0 -0
  800. /package/dist/{geneExpression-X2KXJPND.js.map → geneExpression-4WEYCEZV.js.map} +0 -0
  801. /package/dist/{geneExpression-HUOXWETT.js.map → geneExpression-JWYJNDN5.js.map} +0 -0
  802. /package/dist/{geneExpression.unit.spec-5QQB4ISW.js.map → geneExpression.unit.spec-HKD4DJIV.js.map} +0 -0
  803. /package/dist/{geneORA-B5UK77KL.js.map → geneORA-YUVDOZ5X.js.map} +0 -0
  804. /package/dist/{geneVariant-7MGUAIZ6.js.map → geneVariant-J3UI6RWM.js.map} +0 -0
  805. /package/dist/{geneVariant-FK3KZJ2K.js.map → geneVariant-ZB7CLFCT.js.map} +0 -0
  806. /package/dist/{geneVariant.integration.spec-C6TYWKIC.js.map → geneVariant.integration.spec-JDCKOR4C.js.map} +0 -0
  807. /package/dist/{geneset-673KAZVX.js.map → geneset-242QGP5Q.js.map} +0 -0
  808. /package/dist/{genomeBrowser.spec-T6TQCJ3O.js.map → genomeBrowser.spec-NRLKLJQD.js.map} +0 -0
  809. /package/dist/{grin2-376BD4XY.js.map → grin2-FD3JTI5R.js.map} +0 -0
  810. /package/dist/{grin2-OALS75LC.js.map → grin2-TAR4VXPJ.js.map} +0 -0
  811. /package/dist/{gsea-25LD2LGP.js.map → gsea-YHG57UZ5.js.map} +0 -0
  812. /package/dist/{hierCluster-7KU3K52V.js.map → hierCluster-QUAZ7NI6.js.map} +0 -0
  813. /package/dist/{hierCluster-M5VVWKQK.js.map → hierCluster-V2YZEXGX.js.map} +0 -0
  814. /package/dist/{hierCluster.config-EDO3SH2P.js.map → hierCluster.config-ZOWXZGTF.js.map} +0 -0
  815. /package/dist/{hierCluster.integration.spec-UOX7J2XD.js.map → hierCluster.integration.spec-FAR4KK32.js.map} +0 -0
  816. /package/dist/{hierCluster.interactivity-FEFZDXML.js.map → hierCluster.interactivity-D3TK5FSM.js.map} +0 -0
  817. /package/dist/{hierCluster.renderers-A6MEGO2B.js.map → hierCluster.renderers-C2RK55NN.js.map} +0 -0
  818. /package/dist/{imagePlot-FPXZ2H5Z.js.map → imagePlot-2CACVKOO.js.map} +0 -0
  819. /package/dist/{importPlot-VKWPSFEK.js.map → importPlot-KUOEC2YF.js.map} +0 -0
  820. /package/dist/{isoformExpression-2R2TOB6P.js.map → isoformExpression-2G4WCETG.js.map} +0 -0
  821. /package/dist/{isoformExpression.unit.spec-ZKFKOPKT.js.map → isoformExpression.unit.spec-YBNCR6PE.js.map} +0 -0
  822. /package/dist/{launch.adhoc-242RS6DW.js.map → launch.adhoc-PECQW652.js.map} +0 -0
  823. /package/dist/{leftlabel.sample-OJW3AE64.js.map → leftlabel.sample-6O2CXXC2.js.map} +0 -0
  824. /package/dist/{legacyDataset-PBCPC5I7.js.map → legacyDataset-QRSNRVUA.js.map} +0 -0
  825. /package/dist/{lollipop-TRQ3LK7Y.js.map → lollipop-CAFEKZSO.js.map} +0 -0
  826. /package/dist/{maf-ZBOLN2FE.js.map → maf-N7ZB5J22.js.map} +0 -0
  827. /package/dist/{maftimeline-GVX7NJP7.js.map → maftimeline-MCYB3EST.js.map} +0 -0
  828. /package/dist/{matrix-73KRNXLM.js.map → matrix-ID662DZG.js.map} +0 -0
  829. /package/dist/{matrix-US3OXYRY.js.map → matrix-JDGO6A4G.js.map} +0 -0
  830. /package/dist/{matrix.cells-U7AQNEBP.js.map → matrix.cells-QWB3XSTN.js.map} +0 -0
  831. /package/dist/{matrix.config-Q57D7C3F.js.map → matrix.config-HHWMMUZT.js.map} +0 -0
  832. /package/dist/{matrix.controls-AWXDRSWP.js.map → matrix.controls-EOX43634.js.map} +0 -0
  833. /package/dist/{matrix.data-EEIY6AO4.js.map → matrix.data-YTSSULKG.js.map} +0 -0
  834. /package/dist/{matrix.groups-CUB6UWC5.js.map → matrix.groups-NGJ276VG.js.map} +0 -0
  835. /package/dist/{matrix.integration.spec-PQH67KRM.js.map → matrix.integration.spec-XHGSEBYM.js.map} +0 -0
  836. /package/dist/{matrix.interactivity-JW4AXAWO.js.map → matrix.interactivity-OZS7R32Z.js.map} +0 -0
  837. /package/dist/{matrix.layout-I56KRVCO.js.map → matrix.layout-GBQJ7O3H.js.map} +0 -0
  838. /package/dist/{matrix.legend-42LQGAGX.js.map → matrix.legend-AGTC5JPS.js.map} +0 -0
  839. /package/dist/{matrix.renderers-IX3FCNBK.js.map → matrix.renderers-L5D5NLLR.js.map} +0 -0
  840. /package/dist/{matrix.serieses-4B2WB526.js.map → matrix.serieses-DDQOSCL4.js.map} +0 -0
  841. /package/dist/{matrix.sort-BJACNR7G.js.map → matrix.sort-6VF7VNFX.js.map} +0 -0
  842. /package/dist/{matrix.sort.unit.spec-3KKDKIPY.js.map → matrix.sort.unit.spec-QGJBVO3X.js.map} +0 -0
  843. /package/dist/{matrix.sorterUi-W6XFYZY2.js.map → matrix.sorterUi-UE7CBIUP.js.map} +0 -0
  844. /package/dist/{matrix.sorterUi.unit.spec-CMJ7EBIW.js.map → matrix.sorterUi.unit.spec-CTLTVJCO.js.map} +0 -0
  845. /package/dist/{mavb-ROAE6WYA.js.map → mavb-MU7H7YWY.js.map} +0 -0
  846. /package/dist/{mds.fimo-UGK5OWCF.js.map → mds.fimo-ELCNQMNR.js.map} +0 -0
  847. /package/dist/{mds.samplescatterplot-5KFUAYSB.js.map → mds.samplescatterplot-P7N4SXYT.js.map} +0 -0
  848. /package/dist/{mds.survivalplot-2EVNZUX5.js.map → mds.survivalplot-KJFW4IRT.js.map} +0 -0
  849. /package/dist/{oncomatrix-UGFXSXQJ.js.map → oncomatrix-Q5X3O65P.js.map} +0 -0
  850. /package/dist/{oncomatrix.spec-FEP7BR7L.js.map → oncomatrix.spec-CJGXXI3U.js.map} +0 -0
  851. /package/dist/{plot.2dvaf-WXGLWCOC.js.map → plot.2dvaf-CDPVMUPX.js.map} +0 -0
  852. /package/dist/{plot.app-IZAFRTBU.js.map → plot.app-BSPQMQCI.js.map} +0 -0
  853. /package/dist/{plot.barplot-Z4VWOPFJ.js.map → plot.barplot-C33LEV4Q.js.map} +0 -0
  854. /package/dist/{plot.boxplot-QU2KZSB7.js.map → plot.boxplot-XH7FN6PC.js.map} +0 -0
  855. /package/dist/{plot.brainImaging-U643YIK7.js.map → plot.brainImaging-5BB455FT.js.map} +0 -0
  856. /package/dist/{plot.disco-3BV6YEBC.js.map → plot.disco-3YUN6XAY.js.map} +0 -0
  857. /package/dist/{plot.dzi-DWXPOOQE.js.map → plot.dzi-RZWAL5UC.js.map} +0 -0
  858. /package/dist/{plot.ssgq-GXB2GZO3.js.map → plot.ssgq-M763HWMN.js.map} +0 -0
  859. /package/dist/{plot.vaf2cov-EKRIADPB.js.map → plot.vaf2cov-EAHQV6FD.js.map} +0 -0
  860. /package/dist/{plot.wsi-E2LLE6HI.js.map → plot.wsi-2BDC3RJS.js.map} +0 -0
  861. /package/dist/{polar-MZLIUXHO.js.map → polar-3SJ5SUNJ.js.map} +0 -0
  862. /package/dist/{polar2-IUVHNQM4.js.map → polar2-3GTEGZUL.js.map} +0 -0
  863. /package/dist/{profile.spec-JRW6KYUI.js.map → profile.spec-AR7JLQYT.js.map} +0 -0
  864. /package/dist/{profileBarchart-N7HJMYZ5.js.map → profileBarchart-GLTPPW2O.js.map} +0 -0
  865. /package/dist/{profileForms-Q5TPGPQP.js.map → profileForms-FE4GHA2T.js.map} +0 -0
  866. /package/dist/{profilePlot-TXTUYDVE.js.map → profilePlot-3JXEZUX5.js.map} +0 -0
  867. /package/dist/{profileRadar-ICEASI7W.js.map → profileRadar-NA2WUSHG.js.map} +0 -0
  868. /package/dist/{profileRadarFacility-NFMRNJYX.js.map → profileRadarFacility-6UNT4GPM.js.map} +0 -0
  869. /package/dist/{proteinView-K3JFNORQ.js.map → proteinView-ESTBC3K2.js.map} +0 -0
  870. /package/dist/{proteomeAbundance-LTB3QR3G.js.map → proteomeAbundance-GDK5EIE7.js.map} +0 -0
  871. /package/dist/{proteomeAbundance-DE4NVBCN.js.map → proteomeAbundance-NVLYQRKI.js.map} +0 -0
  872. /package/dist/{qualitative-DFGWQURY.js.map → qualitative-TUNIICQ4.js.map} +0 -0
  873. /package/dist/{regression-TTQTAEGD.js.map → regression-22IF77A7.js.map} +0 -0
  874. /package/dist/{regression.inputs-2LU2XRGC.js.map → regression.inputs-VCVMUBA7.js.map} +0 -0
  875. /package/dist/{regression.inputs.term-G57GL57T.js.map → regression.inputs.term-6FWVBNJT.js.map} +0 -0
  876. /package/dist/{regression.inputs.values.table-JSEM3PXL.js.map → regression.inputs.values.table-2FXOWLKN.js.map} +0 -0
  877. /package/dist/{regression.integration.spec-XJQJAIC3.js.map → regression.integration.spec-2UMB7EIG.js.map} +0 -0
  878. /package/dist/{regression.results-3YNM6LLQ.js.map → regression.results-27XHC5GE.js.map} +0 -0
  879. /package/dist/{regression.spec-S6WFCPSW.js.map → regression.spec-5Q4J7TJZ.js.map} +0 -0
  880. /package/dist/{report-YRAV4MY4.js.map → report-B4RRLC7Q.js.map} +0 -0
  881. /package/dist/{sampleScatter.spec-MBJ4XNTX.js.map → sampleScatter.spec-TXZYLGM7.js.map} +0 -0
  882. /package/dist/{sampleView-IUR3ZEN7.js.map → sampleView-2WKGJUSX.js.map} +0 -0
  883. /package/dist/{samplelst-C2NBFGH6.js.map → samplelst-NJZOPYYJ.js.map} +0 -0
  884. /package/dist/{samplematrix-AOK2HHSB.js.map → samplematrix-ZXOLANI5.js.map} +0 -0
  885. /package/dist/{sc-XT3Z5XJI.js.map → sc-4IYYVV2I.js.map} +0 -0
  886. /package/dist/{scatter-SAHKZRFL.js.map → scatter-UBF4N6ON.js.map} +0 -0
  887. /package/dist/{scatter.integration.spec-6KRDNHHH.js.map → scatter.integration.spec-JNGJ4BU5.js.map} +0 -0
  888. /package/dist/{selectGenomeWithTklst-2YVZ4JWV.js.map → selectGenomeWithTklst-7ICTRJNK.js.map} +0 -0
  889. /package/dist/{singleCellCellType-NFN5GQJM.js.map → singleCellCellType-Y5ETQYDC.js.map} +0 -0
  890. /package/dist/{singleCellCellType.unit.spec-CR4IJ4DA.js.map → singleCellCellType.unit.spec-TLLZRMD7.js.map} +0 -0
  891. /package/dist/{singleCellGeneExpression-7AQGLXTR.js.map → singleCellGeneExpression-HZRIE2XT.js.map} +0 -0
  892. /package/dist/{singleCellGeneExpression.unit.spec-QYNWSV2G.js.map → singleCellGeneExpression.unit.spec-K435LTFJ.js.map} +0 -0
  893. /package/dist/{singleCellPlot-IWFEG44C.js.map → singleCellPlot-T7MKCAAW.js.map} +0 -0
  894. /package/dist/{singlecell-EATPLH66.js.map → singlecell-K662WWCH.js.map} +0 -0
  895. /package/dist/{singlecell-3QNV4OMZ.js.map → singlecell-KVLDYQ36.js.map} +0 -0
  896. /package/dist/{snp-UP7WL7WG.js.map → snp-JNV3DX5W.js.map} +0 -0
  897. /package/dist/{snp.unit.spec-Y5NWQ442.js.map → snp.unit.spec-7KFVZUWR.js.map} +0 -0
  898. /package/dist/{snplocus-WAQK2AZG.js.map → snplocus-VJLA35TV.js.map} +0 -0
  899. /package/dist/{spliceevent.a53ss.diagram-FFK27UIB.js.map → spliceevent.a53ss.diagram-MZPU6IBF.js.map} +0 -0
  900. /package/dist/{spliceevent.exonskip.diagram-KWEF2OZJ.js.map → spliceevent.exonskip.diagram-OOYBJT4F.js.map} +0 -0
  901. /package/dist/{spliceevent.noeventdiagram-PU4TI7OM.js.map → spliceevent.noeventdiagram-KPEZVRFS.js.map} +0 -0
  902. /package/dist/{ssGSEA-N6QOAVLW.js.map → ssGSEA-GPPPUU2J.js.map} +0 -0
  903. /package/dist/{ssGSEA.unit.spec-KQBNZNNP.js.map → ssGSEA.unit.spec-4SRZ4NRN.js.map} +0 -0
  904. /package/dist/{summarizeCnvGeneexp-NWX4M6LZ.js.map → summarizeCnvGeneexp-NRLEM4X4.js.map} +0 -0
  905. /package/dist/{summarizeGeneexpSurvival-N5VTE2G6.js.map → summarizeGeneexpSurvival-BJLP43OZ.js.map} +0 -0
  906. /package/dist/{summarizeMutationCnv-VV7CVAA7.js.map → summarizeMutationCnv-7DCCBY5U.js.map} +0 -0
  907. /package/dist/{summarizeMutationDiagnosis-5RHSG7L6.js.map → summarizeMutationDiagnosis-HATSCOMG.js.map} +0 -0
  908. /package/dist/{summarizeMutationSurvival-22YYXGS5.js.map → summarizeMutationSurvival-XIRZFWDJ.js.map} +0 -0
  909. /package/dist/{summary-P3WIKJS7.js.map → summary-VOFTJ76P.js.map} +0 -0
  910. /package/dist/{summary.integration.spec-ULGRPICW.js.map → summary.integration.spec-2C5RCIY4.js.map} +0 -0
  911. /package/dist/{summaryInput-IH4EVNF5.js.map → summaryInput-DIIECI4W.js.map} +0 -0
  912. /package/dist/{sunburst-VJJ3UVYC.js.map → sunburst-CYROEYTG.js.map} +0 -0
  913. /package/dist/{survival-2ZE3N62A.js.map → survival-5Y3DFIES.js.map} +0 -0
  914. /package/dist/{survival-ASCLKIII.js.map → survival-WCPGEHW5.js.map} +0 -0
  915. /package/dist/{svgraph-AYR2UPNK.js.map → svgraph-3T6XL7TR.js.map} +0 -0
  916. /package/dist/{svmr-MOMW5DNY.js.map → svmr-GUBPSOID.js.map} +0 -0
  917. /package/dist/{table-PQB6KCEY.js.map → table-NTS6ROT7.js.map} +0 -0
  918. /package/dist/{termCollection-OQMUUTW6.js.map → termCollection-EE72SAHN.js.map} +0 -0
  919. /package/dist/{termCollection-5AY2AWT4.js.map → termCollection-ZZXLZ3UE.js.map} +0 -0
  920. /package/dist/{termCollection.unit.spec-BUAXYIJK.js.map → termCollection.unit.spec-3CTEJRTX.js.map} +0 -0
  921. /package/dist/{tk-EJLFFA5H.js.map → tk-6FIXPXTM.js.map} +0 -0
  922. /package/dist/{tp.ui-WUW6A7KP.js.map → tp.ui-4ESL6SCH.js.map} +0 -0
  923. /package/dist/{tvs.density-HSVPDDGA.js.map → tvs.density-AQ5GD437.js.map} +0 -0
  924. /package/dist/{tvs.dt-MVJXQMNU.js.map → tvs.dt-G5FMPWPL.js.map} +0 -0
  925. /package/dist/{tvs.dtcnv.categorical-FIIDWVK7.js.map → tvs.dtcnv.categorical-EYQ6RTHD.js.map} +0 -0
  926. /package/dist/{tvs.dtcnv.continuous-JPQU3JA2.js.map → tvs.dtcnv.continuous-PSQMFFNX.js.map} +0 -0
  927. /package/dist/{tvs.dtfusion-BW35GOQM.js.map → tvs.dtfusion-4F6627GK.js.map} +0 -0
  928. /package/dist/{tvs.dtsnvindel-AEMFZ4EH.js.map → tvs.dtsnvindel-YNYVLJEI.js.map} +0 -0
  929. /package/dist/{tvs.dtsv-JHTU7UFD.js.map → tvs.dtsv-X2K4K4RN.js.map} +0 -0
  930. /package/dist/{tvs.numeric-ICUGA4WY.js.map → tvs.numeric-ZN2R7BH3.js.map} +0 -0
  931. /package/dist/{tvs.samplelst-VD2NFFFS.js.map → tvs.samplelst-XZK4BE3H.js.map} +0 -0
  932. /package/dist/{tvs.termCollection-IKE5Q74D.js.map → tvs.termCollection-ZAX57TN4.js.map} +0 -0
  933. /package/dist/{violin-DPMJLHQG.js.map → violin-YEMSGTYF.js.map} +0 -0
  934. /package/dist/{violin.integration.spec-A4PNR4ES.js.map → violin.integration.spec-TULH2DWL.js.map} +0 -0
  935. /package/dist/{violin.interactivity-TS4DYUE5.js.map → violin.interactivity-RX2CDFVC.js.map} +0 -0
  936. /package/dist/{violin.renderer-53L4PXUT.js.map → violin.renderer-OJJDZFMZ.js.map} +0 -0
  937. /package/dist/{vocabulary-4MPFHKYC.js.map → vocabulary-726CSMNM.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../plots/survival/survival.ts"],
4
+ "sourcesContent": ["import { getCompInit, copyMerge, type RxComponent, type ComponentApi } from '#rx'\nimport { PlotBase, defaultUiLabels } from '#plots/PlotBase.ts'\nimport { controlsInit, term0_term2_defaultQ } from '#plots/controls.js'\nimport { select } from 'd3-selection'\nimport { scaleLinear, scaleOrdinal } from 'd3-scale'\nimport { schemeCategory10 } from 'd3-scale-chromatic'\nimport { schemeCategory20 } from '#common/legacy-d3-polyfill'\nimport { axisLeft, axisBottom } from 'd3-axis'\nimport { line, area, curveStepAfter } from 'd3-shape'\nimport { rgb } from 'd3-color'\nimport htmlLegend from '#dom/html.legend'\nimport Partjson from 'partjson'\nimport { rgb2hex } from '#src/client'\nimport { fillTermWrapper } from '#termsetting'\nimport { Menu } from '#dom/menu'\nimport { getSeriesTip } from '#dom/svgSeriesTips'\nimport { renderAtRiskG } from '#dom/renderAtRisk'\nimport { renderPvalues } from '#dom/renderPvalueTable'\nimport { downloadChart } from '#common/svg.download'\nimport { getCombinedTermFilter } from '#filter'\nimport { DownloadMenu } from '#dom/downloadMenu'\nimport { isNumericTerm } from '#shared/terms.js'\n\nexport const t0_t2_defaultQ = structuredClone(term0_term2_defaultQ)\nObject.assign(t0_t2_defaultQ, {\n\tnumeric: {\n\t\tmode: 'discrete',\n\t\ttype: 'custom-bin',\n\t\tpreferredBins: 'median'\n\t},\n\tgeneExpression: {\n\t\tmode: 'discrete',\n\t\ttype: 'custom-bin',\n\t\tpreferredBins: 'median'\n\t}\n})\n\nclass TdbSurvival extends PlotBase implements RxComponent {\n\tstatic type = 'survival'\n\n\t// expected RxComponent props, some are already declared/set in PlotBase\n\ttype: string\n\tparentId?: string\n\tdom!: {\n\t\t[index: string]: any\n\t}\n\tcomponents: { [name: string]: ComponentApi } = {}\n\n\t// expected class-specific props\n\tconfigTermKeys = ['term', 'term0', 'term2']\n\tsettings: any\n\tlineFxn: any\n\tpj: any\n\tactiveMenu = false\n\tlegendRenderer: any\n\thiddenRenderer: any\n\tlegendClick = (_, __, ___) => {}\n\tdownload: () => void = () => {}\n\tgetChartImages = () => this.getChartImages()\n\tloadingWait = 0\n\n\tcolorScale: any\n\n\trefs: any\n\tsymbol: any\n\tserverData?: any\n\tcurrData?: any\n\tlegendData?: any\n\tlegendOrder: any[] = []\n\thiddenData?: any\n\ttests?: { [name: string]: any }\n\tterm2toColor: { [name: string]: { orig: string; rgb: any; adjusted: string; hex: string } } = {}\n\n\tuniqueSeriesIds: Set<any> = new Set()\n\n\t// TODO: migrate to this.view method\n\trender = () => {}\n\tgetSymbol = (_: number) => {\n\t\treturn ''\n\t}\n\n\tconstructor(opts, api) {\n\t\tsuper(opts, api)\n\t\tthis.type = TdbSurvival.type\n\t\tthis.settings = Object.assign({}, opts.settings)\n\t\tthis.dom = this.getDom()\n\t\tthis.pj = getPj(this)\n\n\t\tthis.lineFxn = line()\n\t\t\t.curve(curveStepAfter)\n\t\t\t.x(c => (c as any).scaledX)\n\t\t\t.y(c => (c as any).scaledY)\n\n\t\tthis.legendRenderer = htmlLegend(this.dom.legendDiv, {\n\t\t\tsettings: {\n\t\t\t\tlegendOrientation: 'vertical'\n\t\t\t},\n\t\t\thandlers: {\n\t\t\t\tlegend: {\n\t\t\t\t\tclick: e => this.legendClick(e.target.__data__, e.clientX, e.clientY)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tthis.hiddenRenderer = htmlLegend(this.dom.hiddenDiv, {\n\t\t\tsettings: {\n\t\t\t\tlegendOrientation: 'vertical'\n\t\t\t},\n\t\t\thandlers: {\n\t\t\t\tlegend: {\n\t\t\t\t\tclick: e => this.legendClick(e.target.__data__, e.clientX, e.clientY)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tgetDom() {\n\t\tconst opts = this.opts\n\t\tconst controls = this.opts.controls ? null : opts.holder.append('div')\n\t\tconst holder = opts.controls ? opts.holder : opts.holder.append('div')\n\t\tconst loadingDiv = holder\n\t\t\t.append('div')\n\t\t\t.style('position', 'absolute')\n\t\t\t.style('display', 'none')\n\t\t\t.style('padding', '20px')\n\t\t\t.html('Loading ...')\n\t\tconst chartsDiv = holder\n\t\t\t.append('div')\n\t\t\t.style('margin', '10px')\n\t\t\t.style('display', 'flex')\n\t\t\t.style('flex-direction', 'row')\n\t\t\t.style('flex-wrap', 'wrap')\n\t\t\t.style('max-width', '100vw')\n\t\tconst dom = {\n\t\t\tloadingDiv,\n\t\t\theader: opts.header,\n\t\t\tcontrols,\n\t\t\tholder,\n\t\t\tchartsDiv,\n\t\t\tlegendDiv: holder.append('div').style('margin', '5px 5px 15px 5px'),\n\t\t\thiddenDiv: holder.append('div').style('margin', '5px 5px 15px 5px'),\n\t\t\ttip: new Menu({ padding: '5px' }),\n\t\t\tlegendTip: new Menu({ padding: '5px' })\n\t\t}\n\n\t\tdom.tip.onHide = () => {\n\t\t\tthis.activeMenu = false\n\t\t}\n\n\t\tif (dom.header) dom.header.html('Survival Plot')\n\t\treturn dom\n\t}\n\n\tasync init() {\n\t\tsetInteractivity(this)\n\t\tsetRenderers(this)\n\t\tawait this.setControls()\n\t}\n\n\tasync setControls() {\n\t\tconst state = this.getState(this.app.getState())\n\t\tconst controlLabels = state.config.controlLabels\n\t\tif (!controlLabels) throw 'controls labels not found'\n\t\tif (this.opts.controls) {\n\t\t\tthis.opts.controls.on('downloadClick.survival', this.download)\n\t\t} else {\n\t\t\tthis.dom.holder.attr('class', 'pp-termdb-plot-viz').style('display', 'inline-block').style('min-width', '300px')\n\n\t\t\tthis.components = {\n\t\t\t\tcontrols: await controlsInit({\n\t\t\t\t\tapp: this.app,\n\t\t\t\t\tid: this.id,\n\t\t\t\t\tholder: this.dom.controls.style('display', 'inline-block'),\n\t\t\t\t\tinputs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'term',\n\t\t\t\t\t\t\tconfigKey: 'term2',\n\t\t\t\t\t\t\tchartType: 'survival',\n\t\t\t\t\t\t\tusecase: { target: 'survival', detail: 'term2' },\n\t\t\t\t\t\t\ttitle: controlLabels.term2.title || controlLabels.term2.label,\n\t\t\t\t\t\t\tlabel: controlLabels.term2.label,\n\t\t\t\t\t\t\tvocabApi: this.app.vocabApi,\n\t\t\t\t\t\t\tnumericEditMenuVersion: ['discrete'],\n\t\t\t\t\t\t\tdefaultQ4fillTW: t0_t2_defaultQ\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'term',\n\t\t\t\t\t\t\tconfigKey: 'term0',\n\t\t\t\t\t\t\tchartType: 'survival',\n\t\t\t\t\t\t\tusecase: { target: 'survival', detail: 'term0' },\n\t\t\t\t\t\t\ttitle: controlLabels.term0.title || controlLabels.term0.label,\n\t\t\t\t\t\t\tlabel: controlLabels.term0.label,\n\t\t\t\t\t\t\tvocabApi: this.app.vocabApi,\n\t\t\t\t\t\t\tnumericEditMenuVersion: ['discrete'],\n\t\t\t\t\t\t\tdefaultQ4fillTW: t0_t2_defaultQ\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Chart width',\n\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\tchartType: 'survival',\n\t\t\t\t\t\t\tsettingsKey: 'svgw',\n\t\t\t\t\t\t\ttitle: 'The internal width of the chart plot'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Chart height',\n\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\tchartType: 'survival',\n\t\t\t\t\t\t\tsettingsKey: 'svgh',\n\t\t\t\t\t\t\ttitle: 'The internal height of the chart plot'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: '95% Confidence Interval',\n\t\t\t\t\t\t\tboxLabel: 'Visible',\n\t\t\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\t\t\tchartType: 'survival',\n\t\t\t\t\t\t\tsettingsKey: 'ciVisible',\n\t\t\t\t\t\t\ttitle: 'Display the 95% confidence interval'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Censored Symbol',\n\t\t\t\t\t\t\ttype: 'radio',\n\t\t\t\t\t\t\tchartType: 'survival',\n\t\t\t\t\t\t\tsettingsKey: 'symbol',\n\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t{ label: 'Tick', value: 'vtick' },\n\t\t\t\t\t\t\t\t{ label: 'X', value: 'x' }\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\ttitle: 'Symbol for displaying censored samples'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Survival Time Visualized',\n\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\tchartType: 'survival',\n\t\t\t\t\t\t\tsettingsKey: 'maxTimeToEvent',\n\t\t\t\t\t\t\ttitle:\n\t\t\t\t\t\t\t\t'The maximum time-to-event to be displayed in the survival plot, affects only the visual representation and does not impact other analyses. All available data is still used to compute p-values. If this value is left empty or set to 0, no cutoff will be applied.'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Time Unit',\n\t\t\t\t\t\t\ttype: 'radio',\n\t\t\t\t\t\t\tchartType: 'survival',\n\t\t\t\t\t\t\tsettingsKey: 'timeUnit',\n\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t{ label: 'years', value: 'years' },\n\t\t\t\t\t\t\t\t{ label: 'months', value: 'months' },\n\t\t\t\t\t\t\t\t{ label: 'weeks', value: 'weeks' },\n\t\t\t\t\t\t\t\t{ label: 'days', value: 'days' }\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\ttitle: `The unit to display in the x-axis title, like 'years'`\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'X-axis ticks',\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\tchartType: 'survival',\n\t\t\t\t\t\t\tsettingsKey: 'xTickValues',\n\t\t\t\t\t\t\ttitle: `Option to customize the x-axis tick values, enter as comma-separated values. Will be ignored if empty`,\n\t\t\t\t\t\t\tprocessInput: value => (value ? value.split(',').map(Number) : [])\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'At-risk counts',\n\t\t\t\t\t\t\tboxLabel: 'Visible',\n\t\t\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\t\t\tchartType: 'survival',\n\t\t\t\t\t\t\tsettingsKey: 'atRiskVisible',\n\t\t\t\t\t\t\ttitle: 'Display the at-risk counts'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t//{label: 'At-risk label offset', type: 'numeric', chartType: 'survival', settingsKey: 'atRiskLabelOffset'},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Default color',\n\t\t\t\t\t\t\ttype: 'color',\n\t\t\t\t\t\t\tchartType: 'survival',\n\t\t\t\t\t\t\tsettingsKey: 'defaultColor',\n\t\t\t\t\t\t\ttitle: 'Default plot color'\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t}\n\t\t\tthis.components.controls.on('downloadClick.survival', this.download)\n\t\t}\n\t}\n\n\tgetState(appState) {\n\t\tconst config = appState.plots.find(p => p.id === this.id)\n\t\tif (!config) {\n\t\t\tthrow `No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`\n\t\t}\n\t\tconst parentConfig = appState.plots.find(p => p.id === this.parentId)\n\t\tconst termfilter = getCombinedTermFilter(appState, config.filter || parentConfig?.filter)\n\n\t\treturn {\n\t\t\tisVisible: config.term.term.type == 'survival' || config.term2?.term.type == 'survival',\n\t\t\tgenome: this.app.vocabApi.vocab.genome,\n\t\t\tdslabel: this.app.vocabApi.vocab.dslabel,\n\t\t\tactiveCohort: appState.activeCohort,\n\t\t\ttermfilter,\n\n\t\t\tconfig: {\n\t\t\t\t// NOTE: will create mutable copies of tw terms in async main() below\n\t\t\t\tterm: config.term,\n\t\t\t\tterm0: config.term0 || null,\n\t\t\t\tterm2: config.term2 || null,\n\t\t\t\tcontrolLabels: config.controlLabels,\n\t\t\t\tsettings: config.settings.survival\n\t\t\t},\n\t\t\ttermdbConfig: appState.termdbConfig\n\t\t}\n\t}\n\n\tasync main() {\n\t\tif (!this.state.isVisible) {\n\t\t\tthis.dom.holder.style('display', 'none')\n\t\t\treturn\n\t\t}\n\n\t\tthis.state.config = await this.getMutableConfig()\n\t\tthis.maySetSandboxHeader()\n\t\tthis.toggleLoadingDiv()\n\n\t\tObject.assign(this.settings, this.state.config.settings)\n\t\tthis.settings.defaultHidden = this.getDefaultHidden()\n\t\tthis.settings.hidden = this.settings.customHidden || this.settings.defaultHidden\n\t\tthis.settings.xTitleLabel = this.getXtitleLabel()\n\t\tconst reqOpts = this.getDataRequestOpts()\n\t\tlet data\n\t\ttry {\n\t\t\t// do not directly set this.serverData to response, since it could be an error\n\t\t\tdata = await this.app.vocabApi.getNestedChartSeriesData(reqOpts, this.api?.getAbortSignal())\n\t\t} catch (e) {\n\t\t\tif (this.app.isAbortError(e)) return\n\t\t\tthrow e\n\t\t}\n\t\tthis.serverData = data\n\t\tthis.toggleLoadingDiv('none')\n\t\tthis.app.vocabApi.syncTermData(this.state.config, data)\n\t\tthis.currData = this.processData(data)\n\t\tthis.refs = data.refs\n\t\tthis.pj.refresh({ data: this.currData })\n\t\tthis.setTerm2Color(this.pj.tree.charts)\n\t\tthis.symbol = this.getSymbol(7) // hardcode the symbol size for now\n\t\tthis.render()\n\t}\n\n\tmaySetSandboxHeader() {\n\t\tif (!this.dom.header) return\n\t\tconst { term, term2 } = this.state.config\n\t\tconst mainTerm = term.term.name\n\t\tif (term2?.type) {\n\t\t\tthis.dom.header.html(`${term2.getTitleText?.() || term2.term.name} vs ${mainTerm}`)\n\t\t} else {\n\t\t\tthis.dom.header.html(`${mainTerm} plot`)\n\t\t}\n\t}\n\n\t// creates an opts object for the vocabApi.getNestedChartsData()\n\tgetDataRequestOpts() {\n\t\tconst c = this.state.config\n\t\tconst opts: any = {\n\t\t\tchartType: 'survival',\n\t\t\tterm: c.term,\n\t\t\tfilter: this.state.termfilter.filter,\n\t\t\tfilter0: this.state.termfilter.filter0\n\t\t}\n\t\tif (c.term2) {\n\t\t\topts.term2 = c.term2\n\t\t}\n\t\tif (c.term0) opts.term0 = c.term0\n\t\treturn opts\n\t}\n\n\tgetDefaultHidden() {\n\t\tconst hidden: any[] = []\n\t\tconst term2 = this.state.config.term2\n\t\tif (!term2) return hidden\n\t\tconst hiddenValues = term2.q.hiddenValues\n\t\tif (hiddenValues && Object.keys(hiddenValues).length) {\n\t\t\t// term2 has default hidden values\n\t\t\tfor (const k in hiddenValues) {\n\t\t\t\thidden.push(term2.term.values[k].label)\n\t\t\t}\n\t\t}\n\t\treturn hidden\n\t}\n\n\tgetXtitleLabel() {\n\t\tconst termNum = this.state.config.term.term.type == 'survival' ? 'term' : 'term2'\n\t\tconst xUnit = this.settings.timeUnit ? this.settings.timeUnit : this.state.config[termNum].term.unit\n\t\tconst xTitleLabel = `Time to Event (${xUnit})`\n\t\treturn xTitleLabel\n\t}\n\n\tprocessData(data) {\n\t\tthis.uniqueSeriesIds = new Set()\n\t\tconst rows: any[] = []\n\t\tconst estKeys = ['survival', 'lower', 'upper']\n\t\tfor (const d of data.case) {\n\t\t\tconst obj: { [name: string]: any } = {}\n\t\t\tdata.keys.forEach((k, i) => {\n\t\t\t\tobj[k] = estKeys.includes(k) ? Number(d[i]) : d[i]\n\t\t\t})\n\t\t\tobj.time = obj.time * this.getTimeFactor()\n\t\t\trows.push(obj)\n\t\t\tthis.uniqueSeriesIds.add(obj.seriesId)\n\t\t}\n\n\t\t// process statistical tests\n\t\tthis.tests = {}\n\t\tif (data.tests) {\n\t\t\tfor (const chartId in data.tests) {\n\t\t\t\tconst chartTests = data.tests[chartId]\n\t\t\t\tthis.tests[chartId] = []\n\t\t\t\tfor (const test of chartTests) {\n\t\t\t\t\tif (this.settings.hidden.includes(test.series1) || this.settings.hidden.includes(test.series2)) continue // hide tests that contain hidden series\n\t\t\t\t\tthis.tests[chartId].push({\n\t\t\t\t\t\tpvalue: { id: 'pvalue', text: test.pvalue },\n\t\t\t\t\t\tseries1: { id: test.series1 },\n\t\t\t\t\t\tseries2: { id: test.series2 }\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (!this.tests[chartId].length) delete this.tests[chartId]\n\t\t\t}\n\t\t}\n\n\t\treturn rows\n\t}\n\n\t// time factor that converts survival data from default time unit to the current time unit.\n\tgetTimeFactor() {\n\t\tconst numUnitInOneYear = this.settings.numUnitInOneYear || 1\n\t\tconst timeUnit = this.settings.timeUnit || 'years'\n\t\tswitch (timeUnit) {\n\t\t\tcase 'years':\n\t\t\t\treturn (1 / numUnitInOneYear) * 1\n\t\t\tcase 'months':\n\t\t\t\treturn (1 / numUnitInOneYear) * 12\n\t\t\tcase 'weeks':\n\t\t\t\treturn (1 / numUnitInOneYear) * 52\n\t\t\tcase 'days':\n\t\t\t\treturn (1 / numUnitInOneYear) * 365.25\n\t\t\tdefault:\n\t\t\t\tthrow 'unknown time Unit for survival data'\n\t\t}\n\t}\n\n\tsetTerm2Color(charts) {\n\t\tif (!charts) return\n\t\tconst config = this.state.config\n\t\t// color override via legend clicks is saved in term2.values, not by directly editing term2.term.values\n\t\tconst t2values = copyMerge({}, config.term2?.term?.values || {}, config.term2?.values || {})\n\t\tconst values = (this.refs.bins[2] && [this.refs.bins[2]]) || Object.values(t2values)\n\t\tlet t2groups\n\t\tif (config.term2?.q.type == 'predefined-groupset' || config.term2?.q.type == 'custom-groupset') {\n\t\t\tconst groupset =\n\t\t\t\tconfig.term2.q.type == 'predefined-groupset'\n\t\t\t\t\t? config.term2.term.groupsetting.lst[config.term2.q.predefined_groupset_idx]\n\t\t\t\t\t: config.term2.q.customset\n\t\t\tif (!groupset) throw 'groupset is missing'\n\t\t\tt2groups = groupset.groups\n\t\t}\n\t\tthis.term2toColor = {}\n\t\tthis.colorScale = this.uniqueSeriesIds.size < 11 ? scaleOrdinal(schemeCategory10) : scaleOrdinal(schemeCategory20)\n\t\tconst legendItems: any[] = []\n\t\tfor (const chart of charts) {\n\t\t\tfor (const series of chart.serieses) {\n\t\t\t\tlet color\n\t\t\t\t// color override via legend clicks is saved in t2values, does not edit term.values or group.color directly\n\t\t\t\tconst v = values.find(\n\t\t\t\t\tv =>\n\t\t\t\t\t\tv.seriesId === series.seriesId ||\n\t\t\t\t\t\tv.key === series.seriesId ||\n\t\t\t\t\t\tv.name === series.seriesId ||\n\t\t\t\t\t\tv.label === series.seriesId\n\t\t\t\t)\n\t\t\t\tcolor = v?.color\n\t\t\t\tif (!color && t2groups?.length) {\n\t\t\t\t\tconst group = t2groups.find(g => g.name == series.seriesId)\n\t\t\t\t\tcolor = group?.color\n\t\t\t\t\t// quick fix to make WT gray darker to pass Section 508 contrast requirement;\n\t\t\t\t\t// doing this in common.js makes this gray in all tools darker and conflicts\n\t\t\t\t\t// with other mclass colors like in-frame insertion, also visually overwhelming\n\t\t\t\t\t// in GDC oncomatrix\n\t\t\t\t\tif (color === '#D3D3D3' && group?.filter?.lst?.find(f => f?.type === 'tvs' && f.tvs.genotype == 'wt'))\n\t\t\t\t\t\tcolor = 'rgb(105,105,105)'\n\t\t\t\t}\n\t\t\t\tconst orig = color || (series.seriesId == '' ? this.settings.defaultColor : this.colorScale(series.seriesId))\n\t\t\t\tconst _rgb = rgb(orig)\n\t\t\t\tconst adjusted = _rgb.toString()\n\t\t\t\tconst c = { orig, rgb: _rgb, adjusted, hex: rgb2hex(adjusted) }\n\t\t\t\tthis.term2toColor[series.seriesId] = c\n\n\t\t\t\tif (!legendItems.find(d => d.seriesId == series.seriesId)) {\n\t\t\t\t\tlegendItems.push({\n\t\t\t\t\t\tkey: series.seriesId,\n\t\t\t\t\t\tseriesId: series.seriesId,\n\t\t\t\t\t\ttext: series.seriesLabel,\n\t\t\t\t\t\tcolor: this.term2toColor[series.seriesId].adjusted,\n\t\t\t\t\t\tisHidden: this.settings.hidden.includes(series.seriesId)\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.refs.orderedKeys) {\n\t\t\tconst s = this.refs.orderedKeys.series\n\t\t\tlegendItems.sort((a, b) => s.indexOf(a.seriesId) - s.indexOf(b.seriesId))\n\t\t}\n\n\t\tif (!this.legendOrder.length) {\n\t\t\tthis.legendOrder = legendItems.map(item => item.seriesId)\n\t\t} else {\n\t\t\tlegendItems.sort((a, b) => this.legendOrder.indexOf(a.seriesId) - this.legendOrder.indexOf(b.seriesId))\n\t\t}\n\n\t\tif ((config.term.term.type == 'survival' || config.term2) && legendItems.length) {\n\t\t\tconst termNum = config.term.term.type == 'survival' && config.term2 ? 'term2' : 'term'\n\t\t\tthis.legendData = [\n\t\t\t\t{\n\t\t\t\t\tname: config[termNum].term.name,\n\t\t\t\t\titems: legendItems.filter(s => !s.isHidden)\n\t\t\t\t}\n\t\t\t]\n\n\t\t\tthis.hiddenData = [\n\t\t\t\t{\n\t\t\t\t\tname: `<span style='color:#aaa; font-weight:400'><span>Hidden categories</span><span style='font-size:0.8rem'> CLICK TO SHOW</span></span>`,\n\t\t\t\t\titems: legendItems.filter(s => s.isHidden).map(item => Object.assign({}, item, { isHidden: false }))\n\t\t\t\t}\n\t\t\t]\n\t\t} else {\n\t\t\tthis.legendData = []\n\t\t}\n\t\tfor (const chartId in this.tests) {\n\t\t\tconst chartTests = this.tests[chartId]\n\t\t\tfor (const test of chartTests) {\n\t\t\t\tfor (const key in test) {\n\t\t\t\t\tif (key == 'pvalue') {\n\t\t\t\t\t\t// p-value of test\n\t\t\t\t\t\ttest[key].color = '#000'\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// series of test\n\t\t\t\t\t\tconst item = legendItems.find(item => item.seriesId == test[key].id)\n\t\t\t\t\t\ttest[key].color = item.color\n\t\t\t\t\t\ttest[key].text = item.text\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// helper so that 'Loading...' does not flash when not needed\n\ttoggleLoadingDiv(display = '') {\n\t\tif (display != 'none') {\n\t\t\tthis.dom.loadingDiv\n\t\t\t\t.style('opacity', 0)\n\t\t\t\t.style('display', display)\n\t\t\t\t.transition()\n\t\t\t\t.duration('loadingWait' in this ? this.loadingWait : 0)\n\t\t\t\t.style('opacity', 1)\n\t\t} else {\n\t\t\tthis.dom.loadingDiv.style('display', display)\n\t\t}\n\t\t// do not transition on initial chart load\n\t\tthis.loadingWait = 1000\n\t}\n}\n\nexport const survivalInit = getCompInit(TdbSurvival)\n// this alias will allow abstracted dynamic imports\nexport const componentInit = survivalInit\n\nfunction setRenderers(self) {\n\tself.render = function () {\n\t\tconst data = self.pj.tree.charts || [{ chartId: 'No survival data' }]\n\t\tconst chartDivs = self.dom.chartsDiv.selectAll('.pp-survival-chart').data(data, d => d.chartId)\n\t\tchartDivs.exit().remove()\n\t\tchartDivs.each(self.updateCharts)\n\t\tchartDivs.enter().each(self.addCharts)\n\n\t\tself.dom.holder.style('display', 'inline-block')\n\t\tself.dom.chartsDiv.on('mouseover', self.mouseover).on('mouseout', self.mouseout)\n\n\t\tself.legendRenderer(self.settings.atRiskVisible ? [] : self.legendData)\n\t\tif (!self.hiddenData?.[0]?.items.length) self.dom.hiddenDiv.style('display', 'none')\n\t\telse {\n\t\t\tself.dom.hiddenDiv.style('display', '')\n\t\t\tself.hiddenRenderer(self.hiddenData)\n\t\t}\n\t}\n\n\tconst updateHiddenPvalues = hiddenPvalues => {\n\t\tself.app.dispatch({\n\t\t\ttype: 'plot_edit',\n\t\t\tid: self.id,\n\t\t\tconfig: {\n\t\t\t\tsettings: {\n\t\t\t\t\tsurvival: {\n\t\t\t\t\t\thiddenPvalues\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tconst setActiveMenu = bool => (self.activeMenu = bool)\n\n\tself.addCharts = function (chart) {\n\t\tconst s = self.settings\n\t\tsetVisibleSerieses(chart, s)\n\n\t\tconst div = select(this)\n\t\t\t.append('div')\n\t\t\t.attr('class', 'pp-survival-chart')\n\t\t\t.style('opacity', chart.serieses ? 0 : 1) // if the data can be plotted, slowly reveal plot\n\t\t\t.style('width', 'fit-content')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('margin', s.chartMargin + 'px')\n\t\t\t.style('padding', '10px')\n\t\t\t.style('top', 0)\n\t\t\t.style('left', 0)\n\t\t\t.style('text-align', 'left')\n\t\t\t.style('vertical-align', 'top')\n\n\t\tdiv\n\t\t\t.append('div')\n\t\t\t.style('width', s.svgw + 50 + 'px')\n\t\t\t.style('height', s.chartTitleDivHt + 'px')\n\t\t\t.style('text-align', 'center')\n\t\t\t.style('font-weight', '600')\n\t\t\t.style('margin', '5px')\n\t\t\t.append('div')\n\t\t\t.attr('class', 'sjpp-survival-title')\n\t\t\t.attr('data-testid', 'sjpp-survival-plotTitle')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('width', 'fit-content')\n\t\t\t.datum(chart)\n\t\t\t.html(chart => chart.chartId)\n\n\t\tif (chart.serieses) {\n\t\t\tconst svg = div.append('svg').attr('class', 'pp-survival-svg')\n\t\t\trenderSVG(svg, chart, s, 0)\n\n\t\t\tdiv.transition().duration(s.duration).style('opacity', 1)\n\n\t\t\t// div for chart-specific legends\n\t\t\tdiv\n\t\t\t\t.append('div')\n\t\t\t\t.attr('class', 'pp-survival-chartLegends')\n\t\t\t\t.style('vertical-align', 'top')\n\t\t\t\t.style('margin', '10px 10px 10px 80px')\n\t\t\t\t.style('display', 'none')\n\n\t\t\t// p-values legend\n\t\t\tif (self.tests && chart.rawChartId in self.tests) {\n\t\t\t\tconst holder = div.select('.pp-survival-chartLegends').style('display', 'inline-block').append('div')\n\t\t\t\trenderPvalues({\n\t\t\t\t\ttitle: 'Group comparisons (log-rank test)',\n\t\t\t\t\tholder,\n\t\t\t\t\tplot: 'survival',\n\t\t\t\t\ttests: self.tests[chart.rawChartId],\n\t\t\t\t\ts,\n\t\t\t\t\tbins: self.refs.bins,\n\t\t\t\t\ttip: self.app.tip,\n\t\t\t\t\tsetActiveMenu,\n\t\t\t\t\tupdateHiddenPvalues\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction setVisibleSerieses(chart, s) {\n\t\tchart.visibleSerieses = chart.serieses?.filter(series => !s.hidden.includes(series.seriesId)) || []\n\t\tconst maxSeriesLabelLen = chart.visibleSerieses.reduce(\n\t\t\t(maxlen, a) => (a.seriesLabel && a.seriesLabel.length > maxlen ? a.seriesLabel.length : maxlen),\n\t\t\t0\n\t\t)\n\t\tchart.atRiskLabelWidth = s.atRiskVisible\n\t\t\t? maxSeriesLabelLen * (s.axisTitleFontSize - 2) * 0.4 + s.atRiskLabelOffset\n\t\t\t: 0\n\t}\n\n\tself.updateCharts = function (chart) {\n\t\tif (!chart.serieses) return\n\t\tconst s = self.settings\n\t\tsetVisibleSerieses(chart, s)\n\n\t\tconst div = select(this)\n\t\tdiv.transition().duration(s.duration).style('width', 'fit-content')\n\n\t\tdiv\n\t\t\t.select('.sjpp-survival-title')\n\t\t\t.style('width', s.svgw + 50)\n\t\t\t.style('height', s.chartTitleDivHt + 'px')\n\t\t\t.datum(chart.chartId)\n\t\t\t.html(chart.chartId)\n\n\t\tdiv.selectAll('.sjpp-lock-icon').style('display', s.scale == 'byChart' ? 'block' : 'none')\n\n\t\tdiv.selectAll('.sjpp-unlock-icon').style('display', s.scale == 'byChart' ? 'none' : 'block')\n\n\t\trenderSVG(div.select('svg'), chart, s, s.duration)\n\n\t\t// div for chart-specific legends\n\t\tdiv.select('.pp-survival-chartLegends').selectAll('*').remove()\n\n\t\t// p-values legend\n\t\tif (self.tests && chart.rawChartId in self.tests) {\n\t\t\tconst holder = div.select('.pp-survival-chartLegends').style('display', 'inline-block').append('div')\n\t\t\trenderPvalues({\n\t\t\t\ttitle: 'Group comparisons (log-rank test)',\n\t\t\t\tholder,\n\t\t\t\tplot: 'survival',\n\t\t\t\ttests: self.tests[chart.rawChartId],\n\t\t\t\ts,\n\t\t\t\tbins: self.refs.bins,\n\t\t\t\ttip: self.app.tip,\n\t\t\t\tsetActiveMenu,\n\t\t\t\tupdateHiddenPvalues\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction renderSVG(svg, chart, s, duration) {\n\t\tchart.svg = svg\n\t\tconst extraHeight = s.atRiskVisible\n\t\t\t? s.axisTitleFontSize + 4 + chart.visibleSerieses.length * 2 * (s.axisTitleFontSize + 4)\n\t\t\t: 0\n\n\t\tsvg\n\t\t\t.transition()\n\t\t\t.duration(duration)\n\t\t\t.attr('width', s.svgw + chart.atRiskLabelWidth)\n\t\t\t.attr('height', s.svgh + extraHeight)\n\t\t\t.style('overflow', 'visible')\n\t\t\t.style('padding-left', '20px')\n\n\t\t/* eslint-disable */\n\t\tconst [mainG, seriesesG, axisG, xAxis, yAxis, xTitle, yTitle, atRiskG, plotRect] = getSvgSubElems(svg)\n\t\t/* eslint-enable */\n\t\tconst xOffset = chart.atRiskLabelWidth + s.svgPadding.left + 70 //adding 70 avoids clipping of the svg when downloading\n\t\tmainG.attr('transform', 'translate(' + xOffset + ',' + s.svgPadding.top + ')')\n\n\t\tconst serieses = seriesesG\n\t\t\t.selectAll('.sjpp-survival-series')\n\t\t\t.data(chart.visibleSerieses, d => (d && d[0] ? d[0].seriesId : ''))\n\n\t\tserieses.exit().remove()\n\t\tserieses.each(function (this: HTMLElement, series, i) {\n\t\t\trenderSeries(select(this), chart, series, i, s)\n\t\t})\n\t\tserieses\n\t\t\t.enter()\n\t\t\t.append('g')\n\t\t\t.attr('class', 'sjpp-survival-series')\n\t\t\t.each(function (this: HTMLElement, series, i) {\n\t\t\t\trenderSeries(select(this), chart, series, i, s)\n\t\t\t})\n\n\t\trenderAxes(xAxis, xTitle, yAxis, yTitle, s, chart)\n\t\trenderAtRiskG({\n\t\t\tg: atRiskG,\n\t\t\ts,\n\t\t\tchart,\n\t\t\torder: self.legendOrder,\n\t\t\tterm2toColor: self.term2toColor,\n\t\t\tonSerieClick: self.legendClick\n\t\t})\n\n\t\tplotRect\n\t\t\t.attr('x', 0) //s.svgPadding.left) //s.svgh - s.svgPadding.top - s.svgPadding.bottom + 5)\n\t\t\t.attr('width', s.svgw - s.svgPadding.left - s.svgPadding.right)\n\t\t\t.attr('y', 0) //s.svgPadding.top) // - s.svgPadding.bottom + 5)\n\t\t\t.attr('height', s.svgh - s.svgPadding.top - s.svgPadding.bottom + s.xAxisOffset)\n\n\t\tsvg.seriesTip.update({\n\t\t\txScale: chart.xScale,\n\t\t\txTitleLabel: s.xTitleLabel,\n\t\t\tdecimals: s.seriesTipDecimals,\n\t\t\tserieses: chart.visibleSerieses.map(s => {\n\t\t\t\tconst seriesLabel = `${s.seriesLabel || 'Probability'}:`\n\t\t\t\tconst color = self.term2toColor[s.seriesId].adjusted || '#000'\n\t\t\t\treturn {\n\t\t\t\t\tdata: s.data.map(d => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tx: d.x,\n\t\t\t\t\t\t\thtml:\n\t\t\t\t\t\t\t\t`<span style='color: ${color}'>` +\n\t\t\t\t\t\t\t\t`${seriesLabel} ${(100 * d.y).toFixed(2)}% (${(100 * d.lower).toFixed(2)} - ${(100 * d.upper).toFixed(\n\t\t\t\t\t\t\t\t\t2\n\t\t\t\t\t\t\t\t)})` +\n\t\t\t\t\t\t\t\t`</span>`\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n\n\tfunction getSvgSubElems(svg) {\n\t\tlet mainG, seriesesG, axisG, xAxis, yAxis, xTitle, yTitle, atRiskG, plotRect, line\n\t\tif (!svg.select('.sjpp-survival-mainG').size()) {\n\t\t\tmainG = svg.append('g').attr('class', 'sjpp-survival-mainG')\n\t\t\tseriesesG = mainG.append('g').attr('class', 'sjpcb-survival-seriesesG')\n\t\t\taxisG = mainG.append('g').attr('class', 'sjpp-survival-axis')\n\t\t\txAxis = axisG.append('g').attr('class', 'sjpp-survival-x-axis')\n\t\t\tyAxis = axisG.append('g').attr('class', 'sjpp-survival-y-axis')\n\t\t\txTitle = axisG.append('g').attr('class', 'sjpp-survival-x-title')\n\t\t\tyTitle = axisG.append('g').attr('class', 'sjpp-survival-y-title')\n\t\t\tatRiskG = mainG.append('g').attr('class', 'sjpp-survival-atrisk')\n\t\t\tline = mainG\n\t\t\t\t.append('line')\n\t\t\t\t.attr('class', 'sjpcb-plot-tip-line')\n\t\t\t\t.attr('stroke', '#000')\n\t\t\t\t.attr('stroke-width', '1px')\n\t\t\tplotRect = mainG.append('rect').attr('class', 'sjpcb-plot-tip-rect').style('fill', 'transparent')\n\t\t} else {\n\t\t\tmainG = svg.select('.sjpp-survival-mainG')\n\t\t\tseriesesG = mainG.select('.sjpcb-survival-seriesesG')\n\t\t\taxisG = mainG.select('.sjpp-survival-axis')\n\t\t\txAxis = axisG.select('.sjpp-survival-x-axis')\n\t\t\tyAxis = axisG.select('.sjpp-survival-y-axis')\n\t\t\txTitle = axisG.select('.sjpp-survival-x-title')\n\t\t\tyTitle = axisG.select('.sjpp-survival-y-title')\n\t\t\tatRiskG = mainG.select('.sjpp-survival-atrisk')\n\t\t\tplotRect = mainG.select('.sjpcb-plot-tip-rect')\n\t\t\tline = mainG.select('.sjpcb-plot-tip-line')\n\t\t}\n\n\t\tif (!svg.seriesTip) {\n\t\t\tsvg.seriesTip = getSeriesTip(line, plotRect, self.dom.tip)\n\t\t}\n\n\t\treturn [mainG, seriesesG, axisG, xAxis, yAxis, xTitle, yTitle, atRiskG, plotRect]\n\t}\n\n\tfunction renderSeries(g, chart, series, i, s) {\n\t\t// do not show samples with time to event larger than maxTimeToEvent\n\t\tlet processedData = series.data\n\t\tif (s.maxTimeToEvent) {\n\t\t\tprocessedData = series.data.filter(d => d.x <= s.maxTimeToEvent)\n\t\t}\n\t\t// todo: allow update of exiting path instead of replacing\n\t\tg.selectAll('path').remove()\n\t\tg.append('path')\n\t\t\t.attr(\n\t\t\t\t'd',\n\t\t\t\tarea()\n\t\t\t\t\t.curve(curveStepAfter)\n\t\t\t\t\t.x(c => (c as any).scaledX)\n\t\t\t\t\t.y0(c => (c as any).scaledY[1])\n\t\t\t\t\t.y1(c => (c as any).scaledY[2])(processedData)\n\t\t\t)\n\t\t\t.style('display', s.ciVisible ? '' : 'none')\n\t\t\t.style('fill', self.term2toColor[series.seriesId].adjusted)\n\t\t\t.style('opacity', '0.15')\n\t\t\t.style('stroke', 'none')\n\n\t\trenderSubseries(\n\t\t\ts,\n\t\t\tg,\n\t\t\tprocessedData.map(d => {\n\t\t\t\treturn {\n\t\t\t\t\tseriesId: d.seriesId,\n\t\t\t\t\tx: d.x,\n\t\t\t\t\ty: d.y,\n\t\t\t\t\tscaledX: d.scaledX,\n\t\t\t\t\tscaledY: d.scaledY[0],\n\t\t\t\t\tseriesName: 'survival',\n\t\t\t\t\tseriesLabel: series.seriesLabel,\n\t\t\t\t\tnevent: d.nevent,\n\t\t\t\t\tncensor: d.ncensor,\n\t\t\t\t\tnrisk: d.nrisk\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\trenderSubseries(\n\t\t\ts,\n\t\t\tg.append('g'),\n\t\t\tprocessedData.map(d => {\n\t\t\t\treturn {\n\t\t\t\t\tseriesId: d.seriesId,\n\t\t\t\t\tx: d.x,\n\t\t\t\t\ty: d.lower,\n\t\t\t\t\tscaledX: d.scaledX,\n\t\t\t\t\tscaledY: d.scaledY[1],\n\t\t\t\t\tseriesName: 'lower',\n\t\t\t\t\tseriesLabel: series.seriesLabel,\n\t\t\t\t\tnevent: d.nevent,\n\t\t\t\t\tncensor: 0, // no censor marks for lower CI\n\t\t\t\t\tnrisk: d.nrisk\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\trenderSubseries(\n\t\t\ts,\n\t\t\tg.append('g'),\n\t\t\tprocessedData.map(d => {\n\t\t\t\treturn {\n\t\t\t\t\tseriesId: d.seriesId,\n\t\t\t\t\tx: d.x,\n\t\t\t\t\ty: d.upper,\n\t\t\t\t\tscaledX: d.scaledX,\n\t\t\t\t\tscaledY: d.scaledY[2],\n\t\t\t\t\tseriesName: 'upper', // no censor marks for upper CI\n\t\t\t\t\tseriesLabel: series.seriesLabel,\n\t\t\t\t\tnevent: d.nevent,\n\t\t\t\t\tncensor: 0,\n\t\t\t\t\tnrisk: d.nrisk\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\t}\n\n\tfunction renderSubseries(s, g, data) {\n\t\t// todo: allow update of exiting g's instead of replacing\n\t\tg.selectAll('g').remove()\n\n\t\tconst lineData = data.filter((d, i) => i === 0 || d.nevent || i === data.length - 1)\n\t\tconst censoredData = data.filter(d => d.ncensor)\n\n\t\tconst seriesName = data[0].seriesName\n\t\tconst color = self.term2toColor[data[0].seriesId].adjusted\n\t\tif (seriesName == 'survival') {\n\t\t\tg.append('path')\n\t\t\t\t.attr('d', self.lineFxn(lineData))\n\t\t\t\t.style('fill', 'none')\n\t\t\t\t.style('stroke', color)\n\t\t\t\t.style('opacity', 1)\n\t\t\t\t.style('stroke-opacity', 1)\n\t\t}\n\n\t\tconst subg1 = g.append('g').attr('class', 'sjpp-survival-censored')\n\t\tconst censored = subg1.selectAll('.sjpp-survival-censored-x').data(censoredData, d => d.x)\n\n\t\tcensored.exit().remove()\n\n\t\tcensored\n\t\t\t.attr('transform', c => `translate(${c.scaledX},${c.scaledY})`)\n\t\t\t.style('stroke', color)\n\t\t\t.style('display', '')\n\n\t\tcensored\n\t\t\t.enter()\n\t\t\t.append('path')\n\t\t\t.attr('class', 'sjpp-survival-censored-x')\n\t\t\t.attr('transform', c => `translate(${c.scaledX},${c.scaledY})`)\n\t\t\t.attr('d', self.symbol)\n\t\t\t.style('fill', 'transparent')\n\t\t\t.style('fill-opacity', s.fillOpacity)\n\t\t\t.style('stroke', color)\n\t\t\t.style('display', '')\n\t}\n\n\tfunction renderAxes(xAxis, xTitle, yAxis, yTitle, s, chart) {\n\t\tlet xTicks\n\t\tif (s.xTickValues?.length) {\n\t\t\t// xTicksValues should not be larger than maxTimeToEvent\n\t\t\tchart.xTickValues = s.xTickValues.filter(\n\t\t\t\tv => v === 0 || (v >= chart.xMin && v <= Math.min(s.maxTimeToEvent || chart.xMax, chart.xMax))\n\t\t\t)\n\t\t\txTicks = axisBottom(chart.xScale).tickValues(chart.xTickValues)\n\t\t} else {\n\t\t\tchart.xTickValues = []\n\t\t\txTicks = axisBottom(chart.xScale)\n\t\t\t\t.ticks(4)\n\t\t\t\t.tickFormat((xval: any) => {\n\t\t\t\t\tchart.xTickValues.push(xval)\n\t\t\t\t\treturn xval\n\t\t\t\t})\n\t\t}\n\n\t\t// without this pixel offset, the axes and data are slightly misaligned\n\t\t// this could be because the axes have a 0.5 offset in their path,\n\t\t// for example: <path class=\"domain\" stroke=\"#000\" d=\"M0.5,6V0.5H325.5V6\"></path>\n\t\tconst pixelOffset = -0.5\n\n\t\txAxis\n\t\t\t.attr(\n\t\t\t\t'transform',\n\t\t\t\t`translate(${pixelOffset}, ${s.svgh - s.svgPadding.top - s.svgPadding.bottom + s.xAxisOffset + pixelOffset})`\n\t\t\t)\n\t\t\t.call(xTicks)\n\n\t\tyAxis\n\t\t\t.attr('transform', `translate(${s.yAxisOffset + pixelOffset}, ${pixelOffset})`)\n\t\t\t.call(axisLeft(scaleLinear().domain(chart.yScale.domain()).range(chart.yScale.range())).ticks(5))\n\n\t\txTitle.select('text, title').remove()\n\t\txTitle\n\t\t\t.attr(\n\t\t\t\t'transform',\n\t\t\t\t'translate(' +\n\t\t\t\t\t(s.svgw - s.svgPadding.left - s.svgPadding.right) / 2 +\n\t\t\t\t\t',' +\n\t\t\t\t\t(s.svgh - s.axisTitleFontSize - 4) +\n\t\t\t\t\t')'\n\t\t\t)\n\t\t\t.append('text')\n\t\t\t.style('text-anchor', 'middle')\n\t\t\t.style('font-size', s.axisTitleFontSize + 'px')\n\t\t\t.text(s.xTitleLabel)\n\n\t\tconst yTitleLabel = 'Probability of Survival'\n\t\tyTitle.select('text, title').remove()\n\t\tyTitle\n\t\t\t.attr(\n\t\t\t\t'transform',\n\t\t\t\t'translate(' +\n\t\t\t\t\t(-s.svgPadding.left / 2 - s.axisTitleFontSize) +\n\t\t\t\t\t',' +\n\t\t\t\t\t(s.svgh - s.svgPadding.top - s.svgPadding.bottom) / 2 +\n\t\t\t\t\t')rotate(-90)'\n\t\t\t)\n\t\t\t.append('text')\n\t\t\t.style('text-anchor', 'middle')\n\t\t\t.style('font-size', s.axisTitleFontSize + 'px')\n\t\t\t.text(yTitleLabel)\n\t}\n\n\tself.getSymbol = function (size) {\n\t\tconst s = size,\n\t\t\th = s / 2\n\n\t\tswitch (self.settings.symbol) {\n\t\t\tcase 'x':\n\t\t\t\treturn `M -${h},-${h} l ${s},${s} M ${h},-${h} l -${s},${s}`\n\n\t\t\tcase 'vtick':\n\t\t\t\treturn `M 0,-${h} L 0,${h}`\n\n\t\t\tdefault:\n\t\t\t\tthrow `Unrecognized survival plot symbol='${self.settings.symbol}'`\n\t\t}\n\t}\n}\n\nfunction setInteractivity(self) {\n\tself.download = function (event) {\n\t\tconst charts = self.getChartImages()\n\t\tconst menu = new DownloadMenu(charts, self.state.config.term.term.name)\n\t\tmenu.show(event.clientX, event.clientY, event.target)\n\t}\n\n\tself.getChartImages = function () {\n\t\tconst charts: any[] = []\n\t\tif (!self.pj.tree.charts) return charts // no charts to download\n\t\tfor (const chart of self.pj.tree.charts) {\n\t\t\tcharts.push({ name: chart.chartId, svg: chart.svg })\n\t\t}\n\t\treturn charts\n\t}\n\n\t// The logic is replaced by the downloadMenu SVG option\n\t// self.download = function () {\n\t// \tif (!self.state) return\n\t// \tdownloadChart(\n\t// \t\tself.dom.chartsDiv.selectAll('.sjpp-survival-mainG'),\n\t// \t\t'Survival_Plot',\n\t// \t\tself.dom.chartsDiv.select('.pp-survival-chart').node()\n\t// \t)\n\t// }\n\n\tself.mouseover = function () {}\n\n\tself.mouseout = function () {\n\t\tif (self.activeMenu) return\n\t\tself.app.tip.hide()\n\t}\n\n\tself.legendClick = function (d, x, y) {\n\t\tif (d === undefined) return\n\t\tconst hidden = self.settings.hidden.slice()\n\t\tconst i = hidden.indexOf(d.seriesId)\n\t\tif (i == -1) {\n\t\t\thidden.push(d.seriesId)\n\t\t\tself.showLegendItemMenu(d, hidden, x, y)\n\t\t} else {\n\t\t\thidden.splice(i, 1)\n\t\t\tself.app.dispatch({\n\t\t\t\ttype: 'plot_edit',\n\t\t\t\tid: self.id,\n\t\t\t\tconfig: {\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tsurvival: {\n\t\t\t\t\t\t\tcustomHidden: hidden\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tself.showLegendItemMenu = function (d, hidden, x, y) {\n\t\tconst term2 = self.state.config.term2?.term || null\n\t\tconst seriesLabel = term2?.values?.[d.seriesId]?.label || d.seriesId\n\n\t\tconst header = `<div style='padding-bottom:8px'><b>${seriesLabel}</b></div>`\n\t\tconst data = d.seriesId || d.seriesId === 0 ? d : { seriesId: d.id, dataId: d.dataId }\n\t\tif (!data.seriesId && !data.dataId) {\n\t\t\tif (!term2) {\n\t\t\t\tconst label = self.dom.legendTip.clear().d.append('div').html('Edit color: ')\n\t\t\t\tconst input = label\n\t\t\t\t\t.append('input')\n\t\t\t\t\t.attr('type', 'color')\n\t\t\t\t\t.attr('value', self.settings.defaultColor)\n\t\t\t\t\t.on('change', () => self.adjustColor(input.property('value'), d))\n\t\t\t\tself.dom.legendTip.show(x, y)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconst options: any[] = []\n\t\toptions.push({\n\t\t\tlabel: 'Hide',\n\t\t\tcallback: () => {\n\t\t\t\tmenu.hide()\n\t\t\t\tself.app.dispatch({\n\t\t\t\t\ttype: 'plot_edit',\n\t\t\t\t\tid: self.id,\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\tsurvival: {\n\t\t\t\t\t\t\t\tcustomHidden: hidden\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\tif (self.legendData[0]?.items.length > 1) {\n\t\t\toptions.push({\n\t\t\t\tlabel: 'Move&nbsp;',\n\t\t\t\tsetInput: holder => {\n\t\t\t\t\tconst legendIndex = self.legendOrder.indexOf(d.seriesId)\n\t\t\t\t\tif (legendIndex != 0)\n\t\t\t\t\t\tholder\n\t\t\t\t\t\t\t.append('button')\n\t\t\t\t\t\t\t.html('up')\n\t\t\t\t\t\t\t.on('click', () => {\n\t\t\t\t\t\t\t\tmenu.hide()\n\t\t\t\t\t\t\t\tself.adjustLegendOrder(d, -1)\n\t\t\t\t\t\t\t})\n\t\t\t\t\tif (legendIndex < self.legendData[0]?.items.length - 1)\n\t\t\t\t\t\tholder\n\t\t\t\t\t\t\t.append('button')\n\t\t\t\t\t\t\t.html('down')\n\t\t\t\t\t\t\t.on('click', () => {\n\t\t\t\t\t\t\t\tmenu.hide()\n\t\t\t\t\t\t\t\tself.adjustLegendOrder(d, 1)\n\t\t\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\toptions.push({\n\t\t\t//label: 'Color',\n\t\t\t//callback: d => {}\n\t\t\tsetInput: holder => {\n\t\t\t\tconst label = holder.append('div')\n\t\t\t\tlabel.html('Edit color: ')\n\t\t\t\tconst input = label\n\t\t\t\t\t.append('input')\n\t\t\t\t\t.attr('type', 'color')\n\t\t\t\t\t.attr('value', self.term2toColor[d.seriesId].hex)\n\t\t\t\t\t.on('change', () => self.adjustColor(input.property('value'), d))\n\t\t\t}\n\t\t})\n\n\t\tif (!options.length) return\n\t\tconst menu = self.dom.legendTip.clear()\n\t\tmenu.d.append('div').html(header)\n\t\tmenu.d\n\t\t\t.append('div')\n\t\t\t.selectAll('div')\n\t\t\t.data(options)\n\t\t\t.enter()\n\t\t\t.append('div')\n\t\t\t.attr('class', d => (d.label == 'Hide' ? 'sja_menuoption' : 'sja_menuoption_not_interactive'))\n\t\t\t.on('click', (event, c) => {\n\t\t\t\tif (c.setInput) return\n\t\t\t\tself.app.tip.hide()\n\t\t\t\tc.callback(d)\n\t\t\t})\n\n\t\t\t.each(function (this: HTMLElement, d) {\n\t\t\t\tconst div = select(this)\n\t\t\t\tif (d.label) div.append('div').style('display', 'inline-block').html(d.label)\n\t\t\t\tif (d.setInput)\n\t\t\t\t\td.setInput(\n\t\t\t\t\t\tdiv.append('div').style('display', 'inline-block')\n\t\t\t\t\t\t//.style('margin-left', '10px')\n\t\t\t\t\t)\n\t\t\t})\n\n\t\tmenu.show(x, y)\n\t}\n\n\tself.adjustLegendOrder = (d, increment) => {\n\t\tconst oldIndex = self.legendOrder.indexOf(d.seriesId)\n\t\tif (oldIndex == -1) return\n\t\tlet newIndex = oldIndex + increment\n\t\t// clamp to array bounds\n\t\tnewIndex = Math.max(0, Math.min(self.legendOrder.length - 1, newIndex))\n\t\t// remove item\n\t\tself.legendOrder.splice(oldIndex, 1)\n\t\t// insert at new index\n\t\tself.legendOrder.splice(newIndex, 0, d.seriesId)\n\t\tself.app.dispatch({\n\t\t\ttype: 'app_refresh'\n\t\t})\n\t\tself.app.tip.hide()\n\t}\n\n\tself.adjustColor = (value, d) => {\n\t\tconst color = rgb(value).formatHex()\n\t\tconst t2 = self.state.config.term2\n\t\tif (!t2) {\n\t\t\tself.app.dispatch({\n\t\t\t\ttype: 'plot_edit',\n\t\t\t\tid: self.id,\n\t\t\t\tconfig: { settings: { survival: { defaultColor: color } } }\n\t\t\t})\n\t\t} else {\n\t\t\t// this is the overlay termwrapper\n\t\t\tconst term2 = structuredClone(t2)\n\t\t\t// do not replace term2.term.values directly, will set term2.values to use as overrides\n\t\t\tif (!term2.values) term2.values = {}\n\t\t\tconst values = term2.values\n\t\t\tif (!values[d.seriesId]) values[d.seriesId] = {}\n\t\t\tif (!('key' in values[d.seriesId])) values[d.seriesId].key = d.seriesId\n\t\t\tvalues[d.seriesId].color = color\n\t\t\tself.app.dispatch({\n\t\t\t\ttype: 'plot_edit',\n\t\t\t\tid: self.id,\n\t\t\t\tconfig: {\n\t\t\t\t\tterm2\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tself.app.tip.hide()\n\t}\n\n\t// disabled as a click handler for now, need to review\n\t// before completely removing this code\n\tself.showMenuForSelectedChart = function () {\n\t\tself.dom.tip.clear()\n\t\tself.activeMenu = true\n\t\tself.dom.tip\n\t\t\t.showunder(this)\n\t\t\t.d.append('button')\n\t\t\t.html('Download SVG')\n\t\t\t.on('click', () => {\n\t\t\t\tif (!self.state) return\n\t\t\t\tconst chartDiv = select(this.closest('.pp-survival-chart'))\n\t\t\t\tdownloadChart(\n\t\t\t\t\tchartDiv.select('.sjpp-survival-mainG'),\n\t\t\t\t\t'Survival_Plot',\n\t\t\t\t\tchartDiv.node() // use to get computed styles\n\t\t\t\t)\n\t\t\t})\n\t}\n}\n\nexport async function getPlotConfig(opts, app) {\n\tif (!opts.term) throw 'survival getPlotConfig: opts.term{} missing'\n\ttry {\n\t\tawait fillTermWrapper(opts.term, app.vocabApi)\n\t\t// supply t0_t2_defaultQ if opts.term0/2.bins/q is undefined\n\t\t// so that t0_t2_defaultQ does not override bins or q from user\n\t\tif (opts.term2)\n\t\t\tawait fillTermWrapper(opts.term2, app.vocabApi, opts.term2.bins || opts.term2.q ? undefined : t0_t2_defaultQ)\n\t\tif (opts.term0)\n\t\t\tawait fillTermWrapper(opts.term0, app.vocabApi, opts.term0.bins || opts.term0.q ? undefined : t0_t2_defaultQ)\n\t} catch (e) {\n\t\tthrow `${e} [survival getPlotConfig()]`\n\t}\n\n\tconst config = {\n\t\tid: opts.term.term.id,\n\t\tcontrolLabels: Object.assign({}, defaultUiLabels, app.vocabApi.termdbConfig.uiLabels || {}),\n\t\tsettings: {\n\t\t\tcontrols: {\n\t\t\t\tterm2: null, // the previous overlay value may be displayed as a convenience for toggling\n\t\t\t\tterm0: null\n\t\t\t},\n\t\t\tsurvival: {\n\t\t\t\tradius: 5,\n\t\t\t\tciVisible: true,\n\t\t\t\tfill: '#fff',\n\t\t\t\tstroke: '#000',\n\t\t\t\tsymbol: 'vtick', // 'x', 'vtick'\n\t\t\t\tfillOpacity: 0,\n\t\t\t\tchartMargin: 10,\n\t\t\t\tsvgw: 400,\n\t\t\t\tsvgh: 300,\n\t\t\t\tnumUnitInOneYear: 1,\n\t\t\t\ttimeUnit: 'years',\n\t\t\t\tatRiskVisible: true,\n\t\t\t\tatRiskLabelOffset: -20,\n\t\t\t\txTickValues: [], // if undefined or empty, will be ignored\n\t\t\t\tseriesTipDecimals: 1,\n\t\t\t\tsvgPadding: {\n\t\t\t\t\ttop: 20,\n\t\t\t\t\tleft: 55,\n\t\t\t\t\tright: 20,\n\t\t\t\t\tbottom: 50\n\t\t\t\t},\n\t\t\t\taxisTitleFontSize: 16,\n\t\t\t\txAxisOffset: 5,\n\t\t\t\tyAxisOffset: -5,\n\t\t\t\thiddenPvalues: [],\n\t\t\t\tdefaultColor: '#2077b4'\n\t\t\t}\n\t\t}\n\t}\n\n\t// default survival settings will be overwritten by the survival settings defined in dataset\n\tconst overrides = app.vocabApi.termdbConfig.survival || {}\n\tcopyMerge(config.settings.survival, overrides.settings)\n\n\t// may apply term-specific changes to the default object\n\treturn copyMerge(config, opts)\n}\n\nfunction getPj(self) {\n\tconst pj = new Partjson({\n\t\ttemplate: {\n\t\t\tyMin: '>=yMin()',\n\t\t\tyMax: '<=yMax()',\n\t\t\tcharts: [\n\t\t\t\t{\n\t\t\t\t\tchartId: '@key',\n\t\t\t\t\trawChartId: '$chartId',\n\t\t\t\t\txMin: '>$time',\n\t\t\t\t\txMax: '<$time',\n\t\t\t\t\t'__:xScale': '=xScale()',\n\t\t\t\t\t'__:yScale': '=yScale()',\n\t\t\t\t\tyMin: '>=yMin()',\n\t\t\t\t\tyMax: '<=yMax()',\n\t\t\t\t\tserieses: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tchartId: '@parent.@parent.@key',\n\t\t\t\t\t\t\tseriesId: '@key',\n\t\t\t\t\t\t\t'__:seriesLabel': '=seriesLabel()',\n\t\t\t\t\t\t\tdata: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'__:seriesId': '@parent.@parent.seriesId',\n\t\t\t\t\t\t\t\t\t//color: \"$color\",\n\t\t\t\t\t\t\t\t\tx: '$time',\n\t\t\t\t\t\t\t\t\ty: '$survival',\n\t\t\t\t\t\t\t\t\tlower: '$lower',\n\t\t\t\t\t\t\t\t\tupper: '$upper',\n\t\t\t\t\t\t\t\t\t'_1:scaledX': '=scaledX()',\n\t\t\t\t\t\t\t\t\t'_1:scaledY': '=scaledY()',\n\t\t\t\t\t\t\t\t\tnevent: '$nevent',\n\t\t\t\t\t\t\t\t\tncensor: '$ncensor',\n\t\t\t\t\t\t\t\t\tnrisk: '$nrisk'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t'=timeCensored()'\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'$seriesId'\n\t\t\t\t\t],\n\t\t\t\t\t'@done()': '=sortSerieses()'\n\t\t\t\t},\n\t\t\t\t'=chartTitle()'\n\t\t\t],\n\t\t\t'@done()': '=sortCharts()'\n\t\t},\n\t\t'=': {\n\t\t\tchartTitle(row) {\n\t\t\t\tif (!row.chartId || row.chartId == '-') {\n\t\t\t\t\tconst termNum = self.state.config.term.term.type == 'survival' ? 'term' : 'term2'\n\t\t\t\t\treturn self.state.config[termNum].term.name\n\t\t\t\t}\n\t\t\t\tconst t0 = self.state.config.term0\n\t\t\t\tif (!t0 || !t0.term.values) return row.chartId\n\t\t\t\tif (t0.q?.type == 'predefined-groupset' || t0.q?.type == 'custom-groupset') return row.chartId\n\t\t\t\tconst value = self.state.config.term0.term.values[row.chartId]\n\t\t\t\treturn value && value.label ? value.label : row.chartId\n\t\t\t},\n\t\t\tseriesLabel(row, context) {\n\t\t\t\tconst t2 = self.state.config.term2\n\t\t\t\tif (!t2) return\n\t\t\t\tconst seriesId = context.self.seriesId\n\t\t\t\tif (t2?.q?.type == 'predefined-groupset' || t2?.q?.type == 'custom-groupset') return seriesId\n\t\t\t\tif (t2 && t2.term.values && seriesId in t2.term.values) return t2.term.values[seriesId].label\n\t\t\t\tif (isNumericTerm(t2.term)) {\n\t\t\t\t\t// numeric term\n\t\t\t\t\t// seriesId on its own (e.g. \"<5\") will be vague,\n\t\t\t\t\t// so include term name in series label\n\t\t\t\t\treturn t2.term.name + ' ' + seriesId\n\t\t\t\t}\n\t\t\t\treturn seriesId\n\t\t\t},\n\t\t\ttimeCensored(row) {\n\t\t\t\treturn row.time + '-' + row.ncensor\n\t\t\t},\n\t\t\ty(row, context) {\n\t\t\t\tconst seriesId = context.context.parent.seriesId\n\t\t\t\treturn seriesId == 'CI' ? [row.lower, row.upper] : row[seriesId]\n\t\t\t},\n\t\t\tyMin(row) {\n\t\t\t\treturn row.lower\n\t\t\t},\n\t\t\tyMax(row) {\n\t\t\t\treturn row.upper\n\t\t\t},\n\t\t\txScale(_, context) {\n\t\t\t\tconst s = self.settings\n\t\t\t\treturn (\n\t\t\t\t\tscaleLinear()\n\t\t\t\t\t\t// force x to start at 0 because first data point will always\n\t\t\t\t\t\t// be at x=0 (see survival.R)\n\t\t\t\t\t\t.domain([0, Math.min(s.maxTimeToEvent || context.self.xMax, context.self.xMax)])\n\t\t\t\t\t\t.range([0, s.svgw - s.svgPadding.left - s.svgPadding.right])\n\t\t\t\t)\n\t\t\t},\n\t\t\tscaledX(_, context) {\n\t\t\t\treturn context.context.context.context.parent.xScale(context.self.x)\n\t\t\t},\n\t\t\tscaledY(_, context) {\n\t\t\t\tconst yScale = context.context.context.context.parent.yScale\n\t\t\t\tconst s = context.self\n\t\t\t\treturn [yScale(s.y), yScale(s.lower), yScale(s.upper)]\n\t\t\t},\n\t\t\tyScale() {\n\t\t\t\tconst s = self.settings\n\t\t\t\tconst domain = [1.05, 0]\n\t\t\t\treturn scaleLinear()\n\t\t\t\t\t.domain(domain)\n\t\t\t\t\t.range([0, s.svgh - s.svgPadding.top - s.svgPadding.bottom])\n\t\t\t},\n\t\t\tsortSerieses(result) {\n\t\t\t\tfor (const series of result.serieses) {\n\t\t\t\t\tseries.data.sort((a, b) => (a.x < b.x ? -1 : 1))\n\t\t\t\t}\n\t\t\t\tif (self.refs.orderedKeys) {\n\t\t\t\t\tconst s = self.refs.orderedKeys.series\n\t\t\t\t\tresult.serieses.sort((a, b) => s.indexOf(a.seriesId) - s.indexOf(b.seriesId))\n\t\t\t\t}\n\t\t\t\tif (self.refs.bins) {\n\t\t\t\t\tconst labelOrder = self.refs.bins.map(b => b.label)\n\t\t\t\t\tresult.serieses.sort((a, b) => labelOrder.indexOf(a.seriesId) - labelOrder.indexOf(b.seriesId))\n\t\t\t\t}\n\t\t\t},\n\t\t\tsortCharts(result) {\n\t\t\t\tif (!self.refs.orderedKeys) return\n\t\t\t\tconst c = self.refs.orderedKeys.chart\n\t\t\t\tresult.charts.sort(\n\t\t\t\t\t(a, b) =>\n\t\t\t\t\t\t(c.indexOf(a.chartId) == -1 ? c.indexOf(a.rawChartId) : c.indexOf(a.chartId)) -\n\t\t\t\t\t\t(c.indexOf(b.chartId) == -1 ? c.indexOf(b.rawChartId) : c.indexOf(b.chartId))\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t})\n\n\treturn pj\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["v", "item", "chart", "s", "d", "Partjson"]
7
+ }
@@ -0,0 +1,446 @@
1
+ import {
2
+ schemeCategory20
3
+ } from "./chunk-V2OJLJSK.js";
4
+ import {
5
+ isNumericTerm
6
+ } from "./chunk-SOED2SLH.js";
7
+ import {
8
+ dtcnv,
9
+ dtsnvindel
10
+ } from "./chunk-XRVBHNCW.js";
11
+ import {
12
+ category10_default
13
+ } from "./chunk-IH7ILDJS.js";
14
+ import {
15
+ linear,
16
+ ordinal
17
+ } from "./chunk-OAWQ6LOO.js";
18
+ import {
19
+ __export
20
+ } from "./chunk-HFNDKYVF.js";
21
+
22
+ // plots/matrix/matrix.legend.js
23
+ var matrix_legend_exports = {};
24
+ __export(matrix_legend_exports, {
25
+ CNVkey2order: () => CNVkey2order,
26
+ getLegendData: () => getLegendData,
27
+ getLegendItemText: () => getLegendItemText
28
+ });
29
+ function getLegendData(legendGroups, refs, self) {
30
+ const s = this.settings.matrix;
31
+ const legendData = [];
32
+ const dvt = this.config.divideBy || {};
33
+ const dvtId = dvt && "id" in dvt ? dvt.id : dvt.name;
34
+ for (const $id in legendGroups) {
35
+ const legend = legendGroups[$id];
36
+ if ($id == "Consequences") {
37
+ for (const f of this.config.legendValueFilter.lst) {
38
+ if (f.tvs.term.type !== "geneVariant") continue;
39
+ if (f.legendGrpName != $id) continue;
40
+ if (f.tvs.legendFilterType == "geneVariant_soft" && f.filteredOutCats.length == 0) {
41
+ continue;
42
+ }
43
+ for (const v of f.tvs.values) {
44
+ for (const key of v.mclasslst) {
45
+ const legendk = v.origin ? v.origin + key : key;
46
+ legend.values[legendk] = {
47
+ key,
48
+ dt: v.dt,
49
+ origin: v.origin,
50
+ label: v.label || self.mclass[key].label,
51
+ fill: v.color || self.mclass[key]?.color,
52
+ order: CNVkey2order(key),
53
+ crossedOut: f.tvs.legendFilterType == "geneVariant_hard" ? true : false,
54
+ greyedOut: f.tvs.legendFilterType == "geneVariant_soft" ? true : false
55
+ };
56
+ }
57
+ }
58
+ }
59
+ const keys2 = Object.keys(legend.values);
60
+ if (!keys2.length) continue;
61
+ legendData.unshift({
62
+ name: "Consequences",
63
+ order: legend.order,
64
+ $id: legend.$id,
65
+ dt: legend.dt,
66
+ origin: legend.origin,
67
+ items: keys2.map((key, i) => {
68
+ const item = legend.values[key];
69
+ const count = item.samples?.size;
70
+ return {
71
+ termid: "Consequences",
72
+ key: item.key,
73
+ text: this.getLegendItemText(item, count, {}, s),
74
+ color: item.fill,
75
+ order: i,
76
+ border: "1px solid #ccc",
77
+ count,
78
+ isLegendItem: true,
79
+ dt: item.dt,
80
+ crossedOut: item.crossedOut,
81
+ greyedOut: item.greyedOut,
82
+ origin: item.origin
83
+ };
84
+ })
85
+ });
86
+ legendData[0].items.sort((a, b) => a.text < b.text ? -1 : 1);
87
+ continue;
88
+ }
89
+ const t = $id == dvtId ? { tw: dvt } : this.termOrder.find((t2) => t2.tw.$id == $id || t2.tw.legend?.group == $id) || {
90
+ tw: { term: { id: $id, name: $id, type: $id === "CNV" ? "geneVariant" : "" } }
91
+ };
92
+ for (const f of this.config.legendValueFilter.lst) {
93
+ const name = t.tw.legend?.group || t.tw.label || t.tw.term.name;
94
+ if (f.legendGrpName != $id && f.legendGrpName != name && f.tvs.term.name != name) continue;
95
+ if (f.tvs.term.type == "geneVariant") {
96
+ for (const v of f.tvs.values) {
97
+ if (legend.dt && !legend.dt.includes(v.dt)) legend.dt.push(v.dt);
98
+ if (f.tvs.legendFilterType == "geneVariant_soft" && f.filteredOutCats.length == 0) {
99
+ continue;
100
+ }
101
+ for (const key of v.mclasslst) {
102
+ const legendk = v.origin ? v.origin + key : key;
103
+ legend.values[legendk] = {
104
+ key,
105
+ dt: v.dt,
106
+ origin: v.origin,
107
+ label: v.label || self.mclass[key]?.label || "Gain and loss",
108
+ fill: v.color || self.mclass[key]?.color,
109
+ order: CNVkey2order(key),
110
+ crossedOut: f.tvs.legendFilterType == "geneVariant_hard" ? true : false,
111
+ greyedOut: f.tvs.legendFilterType == "geneVariant_soft" ? true : false
112
+ };
113
+ }
114
+ }
115
+ } else {
116
+ if (isNumericTerm(f.tvs.term)) {
117
+ if (t.ref?.bins) {
118
+ for (const v of f.tvs.ranges) {
119
+ const termValues = t.ref.bins;
120
+ legend.values[v.name] = {
121
+ key: v.name,
122
+ label: termValues?.find((vl) => vl.name == v.name)?.name || v.name,
123
+ fill: termValues?.find((vl) => vl.name == v.name)?.color,
124
+ crossedOut: true
125
+ };
126
+ }
127
+ }
128
+ } else if (f.tvs.term.type == "survival") {
129
+ for (const v of f.tvs.values) {
130
+ const termValues = t.tw.term.values;
131
+ legend.values[v.key] = {
132
+ key: v.key,
133
+ label: termValues?.[v.key]?.label || "Exit code: " + v.key,
134
+ fill: v.key == 1 ? "#ff7f0e" : "#1f77b4",
135
+ crossedOut: true
136
+ };
137
+ }
138
+ } else {
139
+ for (const v of f.tvs.values) {
140
+ const termValues = t.tw.term.values;
141
+ legend.values[v.key] = {
142
+ key: v.key,
143
+ label: termValues?.[v.key]?.label || v.key,
144
+ fill: termValues?.[v.key]?.color,
145
+ crossedOut: true
146
+ };
147
+ }
148
+ }
149
+ }
150
+ }
151
+ const keys = Object.keys(legend.values).sort();
152
+ const hasScale = Object.values(legend.values).find((v) => v.scale);
153
+ if (hasScale) {
154
+ if (legend === legendGroups?.CNV) {
155
+ const gain = legend.values["CNV_amp"];
156
+ const loss = legend.values["CNV_loss"];
157
+ if (gain?.scale && loss?.scale) {
158
+ const colors = loss.scales?.legend.range;
159
+ const domain = loss.scales?.legend.domain;
160
+ const setLegendAttr = (item) => {
161
+ return {
162
+ $id,
163
+ domain: item.scales.legend.domain,
164
+ key: item.key,
165
+ isLegendItem: true,
166
+ minLabel: domain[0],
167
+ //item.minLoss, // item.maxLabel,
168
+ maxLabel: domain.slice(-1)[0],
169
+ //item.maxGain, // item.maxLabel,
170
+ scale: item.scale,
171
+ termid: "CNV"
172
+ };
173
+ };
174
+ const numericInputs = {
175
+ cutoffMode: s.cnvValues.cutoffMode,
176
+ defaultPercentile: s.cnvValues.defaultPercentile,
177
+ percentile: s.cnvValues.percentile,
178
+ callback: async (obj) => {
179
+ const cValues = self.config.settings.matrix.cnvValues;
180
+ if (obj.cutoffMode == "fixed") {
181
+ if (cValues.min == null) cValues.min = domain[0];
182
+ if (cValues.max == null) cValues.max = domain[domain.length - 1];
183
+ if (obj.min != cValues.min) obj.max = Math.abs(obj.min);
184
+ else obj.min = -obj.max;
185
+ }
186
+ self.config.settings.matrix.cnvValues = {
187
+ defaultPercentile: self.config.settings.matrix.cnvValues.defaultPercentile,
188
+ cutoffMode: obj.cutoffMode,
189
+ min: obj.min,
190
+ max: obj.max,
191
+ percentile: obj.percentile
192
+ };
193
+ await self.app.dispatch({
194
+ type: "plot_edit",
195
+ id: self.opts.id,
196
+ config: self.config
197
+ });
198
+ }
199
+ };
200
+ legend.values.CNV_gain_loss = {
201
+ key: $id,
202
+ label: "Gain and Loss",
203
+ dt: dtcnv,
204
+ order: -1,
205
+ domain,
206
+ name: "CNV gain/loss",
207
+ scale: linear().domain(domain).range(colors),
208
+ scales: loss.scales,
209
+ //Prevent the colors and domain recalculating below
210
+ minLabel: domain[0],
211
+ //loss.maxLabel,
212
+ maxLabel: domain.slice(-1)[0],
213
+ labels: { left: "Loss", right: "Gain" },
214
+ parents: [Object.assign(setLegendAttr(loss), loss), Object.assign(setLegendAttr(gain), gain)],
215
+ samples: /* @__PURE__ */ new Set([...gain.samples, ...loss.samples]),
216
+ numericInputs
217
+ };
218
+ delete legend.values[gain.key];
219
+ delete legend.values[loss.key];
220
+ keys.splice(keys.indexOf(gain.key), 1);
221
+ keys.splice(keys.indexOf(loss.key), 1);
222
+ keys.push("CNV_gain_loss");
223
+ }
224
+ }
225
+ const legendGrpLabelMaxChars = s.legendGrpLabelMaxChars || 26;
226
+ legendData.push({
227
+ name: $id.length < legendGrpLabelMaxChars ? $id : $id.slice(0, legendGrpLabelMaxChars) + "...",
228
+ //name:$id,
229
+ order: legend.order,
230
+ $id: legend.$id,
231
+ dt: legend.dt,
232
+ origin: legend.origin,
233
+ hasScale,
234
+ items: keys.map((key, i) => {
235
+ const item = legend.values[key];
236
+ const count = item.samples?.size;
237
+ if (item.scale) {
238
+ const colors = item.scales?.legend?.range || getColors(item);
239
+ const domain = item.scales?.legend?.domain || setColorScaleDomain(item.minLabel, item.maxLabel, item.domain, colors);
240
+ const opts = {
241
+ termid: $id,
242
+ key: item.key,
243
+ text: this.getLegendItemText(item, count, t, s),
244
+ width: 100,
245
+ scale: item.scale,
246
+ colors,
247
+ domain,
248
+ order: "order" in item ? item.order : i,
249
+ count,
250
+ isLegendItem: true,
251
+ dt: item.dt,
252
+ crossedOut: item.crossedOut,
253
+ greyedOut: item.greyedOut,
254
+ origin: item.origin,
255
+ parents: item.parents,
256
+ labels: item.labels
257
+ };
258
+ if (item.numericInputs) {
259
+ opts.numericInputs = item.numericInputs;
260
+ }
261
+ return opts;
262
+ } else {
263
+ return {
264
+ termid: $id,
265
+ key: item.key,
266
+ text: this.getLegendItemText(item, count, t, s),
267
+ color: item.fill || this.colorScaleByTermId[$id](key),
268
+ order: "order" in item ? item.order : i,
269
+ count,
270
+ isLegendItem: true,
271
+ dt: item.dt,
272
+ crossedOut: item.crossedOut,
273
+ greyedOut: item.greyedOut,
274
+ origin: item.origin
275
+ };
276
+ }
277
+ })
278
+ });
279
+ } else {
280
+ const grp = $id;
281
+ const term = t.tw.term;
282
+ const ref = legend.ref;
283
+ if (ref.bins)
284
+ keys.sort((a, b) => ref.bins.findIndex((bin) => bin.name === a) - ref.bins.findIndex((bin) => bin.name === b));
285
+ else if (ref.keyOrder) keys.sort((a, b) => ref.keyOrder.indexOf(a) - ref.keyOrder.indexOf(b));
286
+ if (!this.colorScaleByTermId[grp])
287
+ this.colorScaleByTermId[grp] = keys.length < 11 ? ordinal(category10_default) : ordinal(schemeCategory20);
288
+ const name = t.tw.legend?.group || t.tw.label || term.name;
289
+ const legendGrpLabelMaxChars = s.legendGrpLabelMaxChars || 26;
290
+ legendData.push({
291
+ name: name.length < legendGrpLabelMaxChars ? name : name.slice(0, legendGrpLabelMaxChars) + "...",
292
+ order: legend.order,
293
+ $id: legend.$id,
294
+ dt: legend.dt,
295
+ origin: legend.origin,
296
+ items: keys.map((key, i) => {
297
+ const item = legend.values[key];
298
+ const count = item.samples?.size;
299
+ return {
300
+ $id,
301
+ termid: term.id || term.name,
302
+ key: item.key,
303
+ text: this.getLegendItemText(item, count, t, s),
304
+ color: t.scale || item.fill || this.colorScaleByTermId[grp](key),
305
+ order: "order" in item ? item.order : i,
306
+ count,
307
+ isExcluded: item.isExcluded,
308
+ //onClickCallback: this.handleLegendItemClick,
309
+ isLegendItem: true,
310
+ dt: item.dt,
311
+ crossedOut: item.crossedOut,
312
+ greyedOut: item.greyedOut,
313
+ origin: item.origin
314
+ };
315
+ })
316
+ });
317
+ }
318
+ }
319
+ for (const grpFilter of self.config.legendGrpFilter.lst) {
320
+ if (grpFilter.dt.length == 1 && grpFilter.dt[0] == 4 && !legendData.filter((l) => l.dt)?.find((l) => l.dt.length == 1 && l.dt[0] == 4)) {
321
+ legendData.push({
322
+ name: "CNV",
323
+ dt: grpFilter.dt,
324
+ origin: grpFilter.origin,
325
+ crossedOut: true,
326
+ items: grpFilter.filteredOutCats.map((fc) => {
327
+ return {
328
+ dt: 4,
329
+ termid: "CNV",
330
+ origin: grpFilter.origin,
331
+ key: fc,
332
+ text: self.mclass[fc].label,
333
+ color: self.mclass[fc]?.color,
334
+ isLegendItem: true
335
+ };
336
+ })
337
+ });
338
+ } else if (grpFilter.dt.includes(dtsnvindel)) {
339
+ const controlLabels = self.settings.matrix.controlLabels;
340
+ const groupName = grpFilter.origin ? `${grpFilter.origin[0].toUpperCase() + grpFilter.origin.slice(1)} ${controlLabels.Mutations}` : controlLabels.Mutations;
341
+ if (!legendData.filter((l) => l.dt)?.find((l) => l.dt.includes(dtsnvindel) && l.origin == grpFilter.origin)) {
342
+ legendData.push({
343
+ name: groupName,
344
+ dt: grpFilter.dt,
345
+ origin: grpFilter.origin,
346
+ crossedOut: true,
347
+ items: grpFilter.filteredOutCats.map((fc) => {
348
+ return {
349
+ dt: self.mclass[fc].dt,
350
+ origin: grpFilter.origin,
351
+ termid: groupName,
352
+ key: fc,
353
+ text: self.mclass[fc].label,
354
+ color: self.mclass[fc]?.color,
355
+ isLegendItem: true
356
+ };
357
+ })
358
+ });
359
+ }
360
+ } else if (grpFilter.dt.length == 1 && grpFilter.dt[0] == 2 && !legendData.filter((l) => l.dt)?.find((l) => l.dt.length == 1 && l.dt[0] == 2)) {
361
+ legendData.push({
362
+ name: "Fusion RNA",
363
+ dt: grpFilter.dt,
364
+ origin: grpFilter.origin,
365
+ crossedOut: true,
366
+ items: grpFilter.filteredOutCats.map((fc) => {
367
+ return {
368
+ dt: 2,
369
+ origin: grpFilter.origin,
370
+ termid: "Fusion RNA",
371
+ key: fc,
372
+ text: self.mclass[fc].label,
373
+ color: self.mclass[fc]?.color,
374
+ isLegendItem: true
375
+ };
376
+ })
377
+ });
378
+ } else if (grpFilter.dt.length == 1 && grpFilter.dt[0] == 5 && !legendData.filter((l) => l.dt)?.find((l) => l.dt.length == 1 && l.dt[0] == 5)) {
379
+ legendData.push({
380
+ name: "Structural Variation",
381
+ dt: grpFilter.dt,
382
+ origin: grpFilter.origin,
383
+ crossedOut: true,
384
+ items: grpFilter.filteredOutCats.map((fc) => {
385
+ return {
386
+ dt: 5,
387
+ origin: grpFilter.origin,
388
+ termid: "Structural Variation",
389
+ key: fc,
390
+ text: self.mclass[fc].label,
391
+ color: self.mclass[fc]?.color,
392
+ isLegendItem: true
393
+ };
394
+ })
395
+ });
396
+ }
397
+ }
398
+ for (const itemsGrp of legendData) {
399
+ itemsGrp.items.sort((a, b) => {
400
+ const getStatusOrder = (item) => {
401
+ if (!item.greyedOut && !item.crossedOut) return 0;
402
+ if (item.greyedOut && !item.crossedOut) return 1;
403
+ if (item.crossedOut) return 2;
404
+ return 3;
405
+ };
406
+ return getStatusOrder(a) - getStatusOrder(b);
407
+ });
408
+ }
409
+ return legendData.sort(
410
+ (a, b) => a.crossedOut && b.crossedOut ? 0 : a.crossedOut ? 1 : b.crossedOut ? -1 : a.order && b.order ? a.order - b.order : a.order ? -1 : b.order ? 1 : 0
411
+ );
412
+ }
413
+ function getLegendItemText(item, count, t, s) {
414
+ if (item.crossedOut || item.greyedOut) {
415
+ return item.label;
416
+ }
417
+ let text = item.label;
418
+ const notes = [count];
419
+ if (item.isExcluded) notes.push("hidden");
420
+ if (t?.tw?.term?.type == "geneVariant" && s.geneVariantCountSamplesSkipMclass.includes(item.key))
421
+ notes.push("not counted");
422
+ if (!notes.length) return text;
423
+ return text += ` (${notes.join(", ")})`;
424
+ }
425
+ function setColorScaleDomain(min, max, domain, colors) {
426
+ if (domain[0] === min && domain[domain.length - 1] === max) return domain;
427
+ const step = (max - min) / (colors.length - 1);
428
+ return colors.map((_, i) => {
429
+ if (i === (colors.length - 1) / 2 && min < 0 && max > 0) return 0;
430
+ return min + step * i;
431
+ });
432
+ }
433
+ function getColors(item) {
434
+ return item.domain?.map((c) => item.scale(c)) || item.scale.range();
435
+ }
436
+ function CNVkey2order(key) {
437
+ return key == "CNV_homozygous_deletion" ? -5 : key == "CNV_amplification" ? -4 : key == "CNV_loss" ? -3 : key == "CNV_amp" ? -2 : key == "CNV_loh" ? -1 : 0;
438
+ }
439
+
440
+ export {
441
+ getLegendData,
442
+ getLegendItemText,
443
+ CNVkey2order,
444
+ matrix_legend_exports
445
+ };
446
+ //# sourceMappingURL=chunk-KBDY6GE3.js.map