@sjcrh/proteinpaint-client 2.196.0 → 2.198.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/2dmaf-R3PFZNRN.js +1373 -0
- package/dist/AIProjectAdmin-DM3KG6SR.js +958 -0
- package/dist/AppHeader-6DZQ6YZX.js +835 -0
- package/dist/BoxPlot-76NINVX4.js +1217 -0
- package/dist/CorrelationVolcano-U5UMJNH5.js +619 -0
- package/dist/DE-AXNYWIQK.js +95 -0
- package/dist/DEinput-JH6YY6LS.js +301 -0
- package/dist/DifferentialAnalysis-25P4CGIY.js +242 -0
- package/dist/DifferentialAnalysis-25P4CGIY.js.map +7 -0
- package/dist/Disco-NVMLF3BK.js +3392 -0
- package/dist/Disco-NVMLF3BK.js.map +7 -0
- package/dist/Disco.UI-C7CZINUQ.js +249 -0
- package/dist/DmrPlot-WROR4ENM.js +642 -0
- package/dist/GB-JUABODPH.js +1394 -0
- package/dist/GB-JUABODPH.js.map +7 -0
- package/dist/GSEA-Y5R2THIJ.js +846 -0
- package/dist/GSEA-Y5R2THIJ.js.map +7 -0
- package/dist/GeneExpInput-JDU6EI7K.js +367 -0
- package/dist/Geomap-J763OK2F.js +89 -0
- package/dist/Geomap-J763OK2F.js.map +7 -0
- package/dist/HicApp-UNIJLH4B.js +2250 -0
- package/dist/IDCViewer-KVPCIUDW.js +10803 -0
- package/dist/IDCViewer-KVPCIUDW.js.map +7 -0
- package/dist/NumBinaryEditor-WMN2GGO4.js +271 -0
- package/dist/NumBinaryEditor.unit.spec-TAMXV6SE.js +286 -0
- package/dist/NumContEditor-XYIOJY4E.js +109 -0
- package/dist/NumContEditor.unit.spec-WDZ75BHO.js +169 -0
- package/dist/NumCustomBinEditor-5SY3C4TY.js +38 -0
- package/dist/NumCustomBinEditor.unit.spec-XHTAIXR3.js +284 -0
- package/dist/NumDiscreteEditor-NRDRX4FD.js +179 -0
- package/dist/NumDiscreteEditor.unit.spec-2CJW7OAT.js +202 -0
- package/dist/NumRegularBinEditor-DUDVTNDC.js +38 -0
- package/dist/NumRegularBinEditor.unit.spec-H3GNQHMN.js +227 -0
- package/dist/NumSplineEditor-7Q4AC7KH.js +198 -0
- package/dist/NumSplineEditor.unit.spec-YRZK5PH5.js +199 -0
- package/dist/NumericDensity-NTNWUESG.js +38 -0
- package/dist/NumericDensity.unit.spec-5I5U6T6P.js +221 -0
- package/dist/NumericHandler-MEW2KMPX.js +39 -0
- package/dist/NumericHandler.unit.spec-JFX4BPRG.js +219 -0
- package/dist/ProteomeInput-K2ZHR2U6.js +395 -0
- package/dist/ProteomeInput-K2ZHR2U6.js.map +7 -0
- package/dist/RunChart2-BEBDU7RC.js +758 -0
- package/dist/SC-XCBFJVUJ.js +1120 -0
- package/dist/SC-XCBFJVUJ.js.map +7 -0
- package/dist/Volcano-4Y4TP3UX.js +1385 -0
- package/dist/Volcano-4Y4TP3UX.js.map +7 -0
- package/dist/WSIViewer-ZLQU62PD.js +48562 -0
- package/dist/WsiSamplesPlot-JMBSITOM.js +165 -0
- package/dist/adSandbox-664IRCRL.js +38 -0
- package/dist/animatedBubbleChart-TX7NW34K.js +555 -0
- package/dist/app-63WJ3BMP.js +37 -0
- package/dist/app-77FIZHCG.js +49 -0
- package/dist/app.js +19 -19
- package/dist/bam-IETNVAYD.js +860 -0
- package/dist/barchart-YUVXJNH4.js +47 -0
- package/dist/barchart.data-P4EIQXGE.js +22 -0
- package/dist/barchart.events-JPVCLTIG.js +47 -0
- package/dist/barchart.integration.spec-ZH7DEQI2.js +2196 -0
- package/dist/barchart2-XO2FG76J.js +314 -0
- package/dist/bars.renderer-AUIWUJDH.js +12 -0
- package/dist/block-NBTCOT3H.js +6255 -0
- package/dist/block-NBTCOT3H.js.map +7 -0
- package/dist/block.init-X7Y2EEVR.js +38 -0
- package/dist/block.mds.expressionrank-BIAOZIZ3.js +359 -0
- package/dist/block.mds.geneboxplot-CNICDVLK.js +828 -0
- package/dist/block.mds.junction-PQXCTSUI.js +1545 -0
- package/dist/block.mds.svcnv-32KMVTCT.js +6801 -0
- package/dist/block.svg-LRTOYQK2.js +164 -0
- package/dist/block.tk.aicheck-HDV7ZIUD.js +283 -0
- package/dist/block.tk.ase-JIDWKMYI.js +365 -0
- package/dist/block.tk.bam-5X3OS5HB.js +1906 -0
- package/dist/block.tk.bedgraphdot-T7JX7YQL.js +384 -0
- package/dist/block.tk.bigwig.ui-OSAYEBAE.js +212 -0
- package/dist/block.tk.hicstraw-DEY3VQFK.js +823 -0
- package/dist/block.tk.junction-7UAFEZSJ.js +2364 -0
- package/dist/block.tk.junction.textmatrixui-27LHS33U.js +199 -0
- package/dist/block.tk.ld-DF2PI7OO.js +99 -0
- package/dist/block.tk.menu-L2D5KBIV.js +1029 -0
- package/dist/block.tk.pgv-QO56SKBV.js +944 -0
- package/dist/brainImaging-NIPQWFWO.js +423 -0
- package/dist/brainRegions-ZNZ2WHSU.js +221 -0
- package/dist/bubbleHeatmap-ERWNEKZB.js +383 -0
- package/dist/chunk-2GYWFQML.js +299 -0
- package/dist/chunk-2HYJ4GDH.js +50 -0
- package/dist/chunk-2MG6XE6R.js +272 -0
- package/dist/chunk-2X6W4E3W.js +1507 -0
- package/dist/chunk-2X6W4E3W.js.map +7 -0
- package/dist/chunk-33K5PA52.js +54 -0
- package/dist/chunk-37XDBPOP.js +26 -0
- package/dist/chunk-3EWB3246.js +58 -0
- package/dist/chunk-3RSKOPIY.js +100 -0
- package/dist/chunk-3XVVN66M.js +4085 -0
- package/dist/chunk-3XVVN66M.js.map +7 -0
- package/dist/chunk-4DPVT4NE.js +1102 -0
- package/dist/chunk-4IH7DORZ.js +98 -0
- package/dist/chunk-4QNBFIIR.js +399 -0
- package/dist/chunk-4STKL6SR.js +217 -0
- package/dist/chunk-4TZIVSL5.js +34 -0
- package/dist/chunk-5ABGFJSP.js +467 -0
- package/dist/chunk-5AZNP47R.js +302 -0
- package/dist/chunk-5RL2OHXX.js +5070 -0
- package/dist/chunk-5RL2OHXX.js.map +7 -0
- package/dist/chunk-5VOPABBA.js +20941 -0
- package/dist/chunk-5VOPABBA.js.map +7 -0
- package/dist/chunk-6BB43SIB.js +102 -0
- package/dist/chunk-7OHRR2IE.js +276 -0
- package/dist/chunk-ARBHWDMY.js +226 -0
- package/dist/chunk-ARBHWDMY.js.map +7 -0
- package/dist/chunk-ASATD4T7.js +14 -0
- package/dist/chunk-AZ47Q7BX.js +1223 -0
- package/dist/chunk-AZ47Q7BX.js.map +7 -0
- package/dist/chunk-B5B3LZB3.js +236 -0
- package/dist/chunk-BHGISFCA.js +2681 -0
- package/dist/chunk-BMBOZ64T.js +2786 -0
- package/dist/chunk-BOZJHPJP.js +216 -0
- package/dist/chunk-CDD7LYJM.js +194 -0
- package/dist/chunk-CTQ3IUCA.js +2327 -0
- package/dist/chunk-D7TID3HR.js +158 -0
- package/dist/chunk-DBKNWR4J.js +1561 -0
- package/dist/chunk-DBKNWR4J.js.map +7 -0
- package/dist/chunk-E55LLYRX.js +55 -0
- package/dist/chunk-ESGXULRH.js +386 -0
- package/dist/chunk-EZ4LZ6ZT.js +117 -0
- package/dist/chunk-F3SJTVP5.js +4284 -0
- package/dist/chunk-F5IXNJO7.js +222 -0
- package/dist/chunk-FJYECRHW.js +448 -0
- package/dist/chunk-FPNRUQOU.js +833 -0
- package/dist/chunk-G5S4R77D.js +1942 -0
- package/dist/chunk-G5S4R77D.js.map +7 -0
- package/dist/chunk-G764NXQN.js +170 -0
- package/dist/chunk-GAPI4MML.js +148 -0
- package/dist/chunk-HLUZOZXJ.js +272 -0
- package/dist/chunk-HOKIK2FR.js +375 -0
- package/dist/chunk-I6WR4CG7.js +323 -0
- package/dist/chunk-I6WR4CG7.js.map +7 -0
- package/dist/chunk-KLGL6XZD.js +129 -0
- package/dist/chunk-KTKZSYIH.js +24 -0
- package/dist/chunk-KTKZSYIH.js.map +7 -0
- package/dist/chunk-L7IRWUKT.js +480 -0
- package/dist/chunk-LFCYMSVA.js +314 -0
- package/dist/chunk-LFCYMSVA.js.map +7 -0
- package/dist/chunk-LX6G7HJJ.js +617 -0
- package/dist/chunk-M2G5R4WB.js +142 -0
- package/dist/chunk-M4TTGGT4.js +102 -0
- package/dist/chunk-M6EF3WVV.js +1825 -0
- package/dist/chunk-M6KHT3MM.js +146 -0
- package/dist/chunk-MCZFHWIR.js +230 -0
- package/dist/chunk-MFQACKYU.js +448 -0
- package/dist/chunk-MVGAGTM3.js +343 -0
- package/dist/chunk-NELOT3NJ.js +119 -0
- package/dist/chunk-NRKMXULC.js +54 -0
- package/dist/chunk-NSTL4MY2.js +2110 -0
- package/dist/chunk-NSTL4MY2.js.map +7 -0
- package/dist/chunk-NYRZNRG5.js +177 -0
- package/dist/chunk-ONPKE6DC.js +368 -0
- package/dist/chunk-OXVLWQ6M.js +556 -0
- package/dist/chunk-OXVLWQ6M.js.map +7 -0
- package/dist/chunk-PFRWS4CR.js +203 -0
- package/dist/chunk-PJKQUXEN.js +1275 -0
- package/dist/chunk-Q2L44HK3.js +6364 -0
- package/dist/chunk-QNHT74XC.js +1245 -0
- package/dist/chunk-QNHT74XC.js.map +7 -0
- package/dist/chunk-RKO6BL5N.js +446 -0
- package/dist/chunk-T25QNZHB.js +254 -0
- package/dist/chunk-U7TBYVIQ.js +31 -0
- package/dist/chunk-UGRQXBL4.js +381 -0
- package/dist/chunk-USFSHSCJ.js +477 -0
- package/dist/chunk-VJ6UFVGC.js +2833 -0
- package/dist/chunk-W3WPPOXH.js +292 -0
- package/dist/chunk-WFCSOTBO.js +263 -0
- package/dist/chunk-WHP4AKDM.js +185 -0
- package/dist/chunk-WHP4AKDM.js.map +7 -0
- package/dist/chunk-WZ2L57MB.js +102 -0
- package/dist/chunk-XPY6AWXO.js +787 -0
- package/dist/chunk-XPY6AWXO.js.map +7 -0
- package/dist/chunk-Y4UAKFWC.js +37 -0
- package/dist/chunk-YQBS2ZCK.js +514 -0
- package/dist/chunk-Z5U6HOE4.js +190 -0
- package/dist/chunk-Z5U6HOE4.js.map +7 -0
- package/dist/chunk-ZNEJUKJW.js +140 -0
- package/dist/chunk-ZNEJUKJW.js.map +7 -0
- package/dist/chunk-ZTHM2TKP.js +176 -0
- package/dist/condition-2PASYSUC.js +332 -0
- package/dist/controls-5IMJ6K5L.js +41 -0
- package/dist/controls.config-P5PG2DHW.js +39 -0
- package/dist/correlation-U3EDLNHR.js +102 -0
- package/dist/cuminc-2HUFEROK.js +1149 -0
- package/dist/cuminc.integration.spec-WFWAPTDA.js +678 -0
- package/dist/cuminc.integration.spec-WFWAPTDA.js.map +7 -0
- package/dist/customdata.inputui-ZHWNEPFH.js +289 -0
- package/dist/dataDownload-VBSJBKMP.js +330 -0
- package/dist/dataDownload.integration.spec-LUFSETOP.js +193 -0
- package/dist/databrowser.ui-6H2KMSTJ.js +433 -0
- package/dist/dictionary-V37LXFIP.js +118 -0
- package/dist/dnaMethylation-OIZMHMLK.js +38 -0
- package/dist/dnaMethylation.integration.spec-CWPTJ74H.js +203 -0
- package/dist/dofetch-IWPZQB5N.js +51 -0
- package/dist/e2pca-7SLIAGYW.js +350 -0
- package/dist/ep-7L6KF6K4.js +1256 -0
- package/dist/expclust.gdc.spec-JT452Q3G.js +307 -0
- package/dist/facet-CXOUU5AS.js +521 -0
- package/dist/forms2-VPNCLQOY.js +539 -0
- package/dist/gb-P4VRXRED.js +88 -0
- package/dist/geneExpClustering-FQTCKRJJ.js +249 -0
- package/dist/geneExpression-BHO5326K.js +313 -0
- package/dist/geneExpression-ZMERB64E.js +38 -0
- package/dist/geneExpression.unit.spec-CNVHZWNG.js +102 -0
- package/dist/geneORA-FXVUCXGX.js +278 -0
- package/dist/geneRanking-SFK4UBKQ.js +553 -0
- package/dist/geneVariant-IYEHB4H7.js +41 -0
- package/dist/geneVariant-LIRRLUFR.js +39 -0
- package/dist/geneVariant.integration.spec-Y2NPNTYX.js +198 -0
- package/dist/genefusion.ui-L3HIJM3N.js +309 -0
- package/dist/geneset-A6VUFX63.js +208 -0
- package/dist/genomeBrowser.spec-CB4HHHBN.js +281 -0
- package/dist/grin2-FKBIMH5N.js +75 -0
- package/dist/grin2-V36KLEBU.js +1143 -0
- package/dist/grin2-V36KLEBU.js.map +7 -0
- package/dist/hierCluster-QFPRMHVA.js +63 -0
- package/dist/hierCluster-YWC3XYPV.js +59 -0
- package/dist/hierCluster.config-F7YYZNM3.js +40 -0
- package/dist/hierCluster.integration.spec-AF4L3YT6.js +488 -0
- package/dist/hierCluster.interactivity-RPY74PK6.js +54 -0
- package/dist/hierCluster.renderers-LOKHZ3V2.js +21 -0
- package/dist/imagePlot-BBEXA754.js +163 -0
- package/dist/importPlot-7QGANZGK.js +8 -0
- package/dist/isoformExpression-4SLLCVFD.js +40 -0
- package/dist/isoformExpression.unit.spec-GEL4JJ64.js +208 -0
- package/dist/launch.adhoc-LWLBQJS5.js +42 -0
- package/dist/leftlabel.sample-RTEZOIH2.js +264 -0
- package/dist/legacyDataset-VLD7ZYWI.js +119 -0
- package/dist/lollipop-XKQK5QZU.js +171 -0
- package/dist/maf-AZQPPWDO.js +459 -0
- package/dist/maftimeline-7MSVYKQU.js +593 -0
- package/dist/matrix-BGLWC25D.js +58 -0
- package/dist/matrix-IQR5SRMK.js +63 -0
- package/dist/matrix.cells-5C57NWOY.js +28 -0
- package/dist/matrix.config-2DQXAN2E.js +41 -0
- package/dist/matrix.data-ADCGF5H6.js +25 -0
- package/dist/matrix.groups-V4ITQ5F7.js +27 -0
- package/dist/matrix.integration.spec-IBNOO2WP.js +3072 -0
- package/dist/matrix.integration.spec-IBNOO2WP.js.map +7 -0
- package/dist/matrix.interactivity-JNELJFOV.js +42 -0
- package/dist/matrix.layout-WBVIV6GR.js +44 -0
- package/dist/matrix.legend-YHOWPK77.js +22 -0
- package/dist/matrix.renderers-5BGVRR3M.js +38 -0
- package/dist/matrix.serieses-2GZJOASZ.js +21 -0
- package/dist/matrix.sort-WKIWPJKP.js +27 -0
- package/dist/matrix.sort.unit.spec-L2E4D4AS.js +472 -0
- package/dist/matrix.sorterUi-TEJWWJ64.js +18 -0
- package/dist/matrix.sorterUi.unit.spec-SHP7C4P7.js +342 -0
- package/dist/mavb-4MXNYUEO.js +732 -0
- package/dist/mds.fimo-WHIJIBOI.js +518 -0
- package/dist/mds.samplescatterplot-BRJ6NG2D.js +1550 -0
- package/dist/mds.survivalplot-OPCMB5PB.js +483 -0
- package/dist/numericDictTermCluster-7MIFOP2K.js +65 -0
- package/dist/oncomatrix-BGG6BEUI.js +295 -0
- package/dist/oncomatrix.spec-LYQ4L4F3.js +448 -0
- package/dist/plot.2dvaf-6WVCP2ZI.js +377 -0
- package/dist/plot.app-MLBP6WFP.js +41 -0
- package/dist/plot.barplot-JEPRZSCU.js +102 -0
- package/dist/plot.boxplot-GNFW42VM.js +152 -0
- package/dist/plot.brainImaging-5ACNSD45.js +51 -0
- package/dist/plot.disco-Q2V2KKIH.js +102 -0
- package/dist/plot.dzi-KVT6S7K7.js +33 -0
- package/dist/plot.ssgq-4N3KFJQ2.js +139 -0
- package/dist/plot.vaf2cov-ITRG5U43.js +259 -0
- package/dist/plot.wsi-26YZNU4V.js +36 -0
- package/dist/polar2-J7GVUK4X.js +231 -0
- package/dist/profileForms-VXV2JLXU.js +446 -0
- package/dist/profilePlot-ZZYZK4SY.js +54 -0
- package/dist/proteinView-7KN532D3.js +1568 -0
- package/dist/qualitative-MLRVLIAU.js +43 -0
- package/dist/radar2-WM2ZBOH3.js +326 -0
- package/dist/radarFacility2-3SBR2JJ3.js +334 -0
- package/dist/regression-WMRPQJW2.js +56 -0
- package/dist/regression.inputs-VWZKSYNY.js +48 -0
- package/dist/regression.inputs.term-OWE6GWHM.js +48 -0
- package/dist/regression.inputs.values.table-4INNZQI2.js +45 -0
- package/dist/regression.integration.spec-XKQ2JOOT.js +784 -0
- package/dist/regression.results-VZBYMBYC.js +40 -0
- package/dist/regression.spec-DU3UTDCJ.js +708 -0
- package/dist/render-N5FOF247.js +38 -0
- package/dist/report-DW3OHB67.js +222 -0
- package/dist/sampleScatter.spec-REFSK2V4.js +202 -0
- package/dist/sampleView-ICOT2R6O.js +48 -0
- package/dist/samplelst-TJEVASYG.js +111 -0
- package/dist/samplematrix-6DAWCXQ3.js +2198 -0
- package/dist/sc-53LNOB7N.js +86 -0
- package/dist/scatter-DKYSS4DL.js +851 -0
- package/dist/selectGenomeWithTklst-WTX66TV3.js +134 -0
- package/dist/singleCellCellType-D2CN2BHQ.js +38 -0
- package/dist/singleCellCellType.unit.spec-LADUCI4R.js +160 -0
- package/dist/singleCellGeneExpression-YR2ZT34W.js +38 -0
- package/dist/singleCellGeneExpression.unit.spec-BM63M432.js +153 -0
- package/dist/singleCellPlot-3ICIOILE.js +54 -0
- package/dist/singlecell-6ZUFA3BQ.js +86 -0
- package/dist/singlecell-KX7W4U57.js +1572 -0
- package/dist/snp-VIURB7L3.js +38 -0
- package/dist/snp.unit.spec-ACZNZUNS.js +176 -0
- package/dist/snplocus-3LW4ZUZR.js +208 -0
- package/dist/spliceevent.a53ss.diagram-AKTZGWNM.js +151 -0
- package/dist/spliceevent.exonskip.diagram-XZHXB77R.js +283 -0
- package/dist/spliceevent.exonskip.diagram-XZHXB77R.js.map +7 -0
- package/dist/spliceevent.noeventdiagram-YTXWWNTJ.js +460 -0
- package/dist/ssGSEA-THW4WFMI.js +38 -0
- package/dist/ssGSEA.unit.spec-HTRGQI2K.js +88 -0
- package/dist/summarizeCnvGeneexp-RFYC3H2Z.js +163 -0
- package/dist/summarizeGeneexpSurvival-DQBZUTQ6.js +114 -0
- package/dist/summarizeMutationCnv-7AYEMHAI.js +164 -0
- package/dist/summarizeMutationDiagnosis-AKFJDSAF.js +40 -0
- package/dist/summarizeMutationSurvival-QJHZRQBZ.js +99 -0
- package/dist/summary-A5P7AYK4.js +49 -0
- package/dist/summary.integration.spec-HQISXGNL.js +414 -0
- package/dist/summaryInput-HP675QOQ.js +235 -0
- package/dist/sunburst-65LSYRXX.js +284 -0
- package/dist/survival-QNEI6YVK.js +46 -0
- package/dist/survival-UI74VXSM.js +58 -0
- package/dist/survival.integration.spec-X5N3JQXS.js +915 -0
- package/dist/survival.integration.spec-X5N3JQXS.js.map +7 -0
- package/dist/svgraph-PSX2NER3.js +1387 -0
- package/dist/svmr-QDQ33EFX.js +3842 -0
- package/dist/table-LWAI27UO.js +200 -0
- package/dist/termCollection-3JHR74FG.js +179 -0
- package/dist/termCollection-CDF5LYUG.js +38 -0
- package/dist/termCollection.unit.spec-HOJKYWHF.js +208 -0
- package/dist/tk-GL4QCL4K.js +1019 -0
- package/dist/tk-GL4QCL4K.js.map +7 -0
- package/dist/tk-OEQFO73V.js +46 -0
- package/dist/tp.ui-SHNERDGC.js +1459 -0
- package/dist/tvs.dt-CZDC4TSR.js +39 -0
- package/dist/tvs.dtcnv.categorical-OPBDHZGB.js +40 -0
- package/dist/tvs.dtcnv.continuous-AR6P4EP3.js +72 -0
- package/dist/tvs.dtfusion-2YQ7N6FQ.js +40 -0
- package/dist/tvs.dtitd-ATCHW735.js +40 -0
- package/dist/tvs.dtitd-ATCHW735.js.map +7 -0
- package/dist/tvs.dtsnvindel-WHHWAATJ.js +40 -0
- package/dist/tvs.dtsv-3UMCW65O.js +40 -0
- package/dist/tvs.numeric-TOEPASWN.js +21 -0
- package/dist/tvs.samplelst-M7XKXRTZ.js +104 -0
- package/dist/tvs.termCollection-WT4WZMYR.js +159 -0
- package/dist/violin-2YGXTBDS.js +46 -0
- package/dist/violin.integration.spec-YWNHVAGS.js +1425 -0
- package/dist/violin.interactivity-J6BE2UQL.js +38 -0
- package/dist/violin.renderer-3GRUWP2U.js +40 -0
- package/dist/vocabulary-2INCVPYJ.js +41 -0
- package/package.json +3 -3
- package/dist/2dmaf-SKNV7IHT.js +0 -1373
- package/dist/AIProjectAdmin-AOTVRBNH.js +0 -958
- package/dist/AppHeader-M2ZSS3M3.js +0 -835
- package/dist/BoxPlot-P3EECSQA.js +0 -1217
- package/dist/CorrelationVolcano-YCQ5S6MT.js +0 -619
- package/dist/DE-RBMOQZCR.js +0 -95
- package/dist/DEinput-PTW6RS6U.js +0 -301
- package/dist/DifferentialAnalysis-M6IDWPYX.js +0 -245
- package/dist/DifferentialAnalysis-M6IDWPYX.js.map +0 -7
- package/dist/Disco-GUKDAHUY.js +0 -3297
- package/dist/Disco-GUKDAHUY.js.map +0 -7
- package/dist/Disco.UI-YBIMV7RH.js +0 -249
- package/dist/DmrPlot-JQPLLU6P.js +0 -642
- package/dist/GB-UOTFNVJE.js +0 -1353
- package/dist/GB-UOTFNVJE.js.map +0 -7
- package/dist/GeneExpInput-3OPDDCXR.js +0 -367
- package/dist/HicApp-VFOWRP6G.js +0 -2250
- package/dist/IDCViewer-Y7EOIIBG.js +0 -10455
- package/dist/IDCViewer-Y7EOIIBG.js.map +0 -7
- package/dist/NumBinaryEditor-RL44SO3T.js +0 -271
- package/dist/NumBinaryEditor.unit.spec-P73PGAX5.js +0 -286
- package/dist/NumContEditor-MIC7M73G.js +0 -109
- package/dist/NumContEditor.unit.spec-5XZH7OCG.js +0 -169
- package/dist/NumCustomBinEditor-W357XTIR.js +0 -38
- package/dist/NumCustomBinEditor.unit.spec-CJMK4CYW.js +0 -284
- package/dist/NumDiscreteEditor-PRSUMS3I.js +0 -179
- package/dist/NumDiscreteEditor.unit.spec-A6R56P3Z.js +0 -202
- package/dist/NumRegularBinEditor-7OHUEUCC.js +0 -38
- package/dist/NumRegularBinEditor.unit.spec-NOAX42UZ.js +0 -227
- package/dist/NumSplineEditor-XI7AT5LM.js +0 -198
- package/dist/NumSplineEditor.unit.spec-ZH4M2N2C.js +0 -199
- package/dist/NumericDensity-X6IHQAW3.js +0 -38
- package/dist/NumericDensity.unit.spec-EKVD4AUG.js +0 -221
- package/dist/NumericHandler-5ONBWFJ5.js +0 -39
- package/dist/NumericHandler.unit.spec-SHI6E4VA.js +0 -219
- package/dist/ProteomeInput-HN46MIBP.js +0 -396
- package/dist/ProteomeInput-HN46MIBP.js.map +0 -7
- package/dist/RunChart2-Y6IY6MW2.js +0 -758
- package/dist/SC-JYF564FK.js +0 -1130
- package/dist/SC-JYF564FK.js.map +0 -7
- package/dist/Volcano-WZGAUYGY.js +0 -1380
- package/dist/Volcano-WZGAUYGY.js.map +0 -7
- package/dist/WSIViewer-RLLL7MAL.js +0 -48562
- package/dist/WsiSamplesPlot-FU3TCOTY.js +0 -165
- package/dist/adSandbox-ZINST5DE.js +0 -38
- package/dist/animatedBubbleChart-PIQWCVBJ.js +0 -555
- package/dist/app-N42SVGI2.js +0 -37
- package/dist/app-RWN4XLCP.js +0 -49
- package/dist/bam-QTSTXJ4N.js +0 -860
- package/dist/barchart-27BYTRVI.js +0 -47
- package/dist/barchart.data-OUNVH4JU.js +0 -22
- package/dist/barchart.events-PY4CEDSO.js +0 -47
- package/dist/barchart.integration.spec-H4WGHQ7R.js +0 -2196
- package/dist/barchart2-TIOTRAC2.js +0 -314
- package/dist/bars.renderer-57KSYAAT.js +0 -12
- package/dist/block-YPM767A4.js +0 -6226
- package/dist/block-YPM767A4.js.map +0 -7
- package/dist/block.init-LRZ3QAGC.js +0 -38
- package/dist/block.mds.expressionrank-IV7JLC52.js +0 -359
- package/dist/block.mds.geneboxplot-IBCE5XZU.js +0 -828
- package/dist/block.mds.junction-ISSCJHNF.js +0 -1545
- package/dist/block.mds.svcnv-ZEBVBTL7.js +0 -6801
- package/dist/block.svg-FYWA5VYH.js +0 -164
- package/dist/block.tk.aicheck-AD6DTKXR.js +0 -283
- package/dist/block.tk.ase-LO2J4KRE.js +0 -365
- package/dist/block.tk.bam-XGX22FCN.js +0 -1906
- package/dist/block.tk.bedgraphdot-SUIRFNFL.js +0 -384
- package/dist/block.tk.bigwig.ui-2Q7FAK3V.js +0 -212
- package/dist/block.tk.hicstraw-4MVP2PCL.js +0 -823
- package/dist/block.tk.junction-F54FTEPB.js +0 -2364
- package/dist/block.tk.junction.textmatrixui-ETROZJVK.js +0 -199
- package/dist/block.tk.ld-NJEDKSTU.js +0 -99
- package/dist/block.tk.menu-LZOY4FKT.js +0 -1029
- package/dist/block.tk.pgv-I3XHJ7VU.js +0 -944
- package/dist/brainImaging-BGP6VRFV.js +0 -423
- package/dist/brainRegions-AAN7LM2Y.js +0 -221
- package/dist/bubbleHeatmap-HNEU4CYA.js +0 -383
- package/dist/chunk-25XCVML7.js +0 -236
- package/dist/chunk-2XV6U42J.js +0 -100
- package/dist/chunk-36NAWXQ7.js +0 -5067
- package/dist/chunk-36NAWXQ7.js.map +0 -7
- package/dist/chunk-3LYZMOLO.js +0 -58
- package/dist/chunk-427UL37G.js +0 -222
- package/dist/chunk-4C3XRI6J.js +0 -54
- package/dist/chunk-4O6H4ZHL.js +0 -514
- package/dist/chunk-53JJ7SXN.js +0 -276
- package/dist/chunk-5CR24RTX.js +0 -381
- package/dist/chunk-5HMX4NUJ.js +0 -217
- package/dist/chunk-5QTJUPFS.js +0 -26
- package/dist/chunk-5V2BMEAS.js +0 -55
- package/dist/chunk-6MBTPVIM.js +0 -1275
- package/dist/chunk-6MQWYMPB.js +0 -183
- package/dist/chunk-6MQWYMPB.js.map +0 -7
- package/dist/chunk-7D3WX34I.js +0 -1230
- package/dist/chunk-7D3WX34I.js.map +0 -7
- package/dist/chunk-7FSIZZOX.js +0 -176
- package/dist/chunk-7KRS7L4U.js +0 -1443
- package/dist/chunk-7KRS7L4U.js.map +0 -7
- package/dist/chunk-A3URBFXN.js +0 -119
- package/dist/chunk-A45KH7LP.js +0 -254
- package/dist/chunk-B4GS7OLB.js +0 -4284
- package/dist/chunk-BKPDYW5T.js +0 -177
- package/dist/chunk-BWQV2OBL.js +0 -102
- package/dist/chunk-BXGQXLHP.js +0 -2786
- package/dist/chunk-CDJAHMAN.js +0 -299
- package/dist/chunk-CXHLROWX.js +0 -37
- package/dist/chunk-EKKQMKQI.js +0 -102
- package/dist/chunk-EPWIJEMK.js +0 -158
- package/dist/chunk-F7Y67LK7.js +0 -230
- package/dist/chunk-FDBVAL6K.js +0 -14
- package/dist/chunk-FISP5YN2.js +0 -292
- package/dist/chunk-G3FSS7GR.js +0 -477
- package/dist/chunk-GE4NJDV4.js +0 -98
- package/dist/chunk-GYGU4UT5.js +0 -34
- package/dist/chunk-I5IPJG2R.js +0 -148
- package/dist/chunk-I73KUUYG.js +0 -287
- package/dist/chunk-I73KUUYG.js.map +0 -7
- package/dist/chunk-IFK24IXL.js +0 -194
- package/dist/chunk-ILE6ML2D.js +0 -50
- package/dist/chunk-IRKP6IZ4.js +0 -216
- package/dist/chunk-J6ZOUCWN.js +0 -170
- package/dist/chunk-JFRSVFWO.js +0 -736
- package/dist/chunk-JFRSVFWO.js.map +0 -7
- package/dist/chunk-JNBJG57F.js +0 -448
- package/dist/chunk-K5UVG3FQ.js +0 -117
- package/dist/chunk-KE5B34CS.js +0 -102
- package/dist/chunk-L6A2BEXB.js +0 -2681
- package/dist/chunk-LQJMCE7G.js +0 -467
- package/dist/chunk-LSWU6EAQ.js +0 -31
- package/dist/chunk-LWEGSYDD.js +0 -226
- package/dist/chunk-LWEGSYDD.js.map +0 -7
- package/dist/chunk-LYVLF6HO.js +0 -1825
- package/dist/chunk-MBUQ34CF.js +0 -189
- package/dist/chunk-MBUQ34CF.js.map +0 -7
- package/dist/chunk-MN3KDNHC.js +0 -617
- package/dist/chunk-MNIBZTQE.js +0 -146
- package/dist/chunk-MTHEEXT2.js +0 -1450
- package/dist/chunk-MTHEEXT2.js.map +0 -7
- package/dist/chunk-MTZSN3H4.js +0 -302
- package/dist/chunk-N7O7NPUO.js +0 -534
- package/dist/chunk-N7O7NPUO.js.map +0 -7
- package/dist/chunk-NNFAUP2I.js +0 -315
- package/dist/chunk-NNFAUP2I.js.map +0 -7
- package/dist/chunk-OF5FE6GT.js +0 -142
- package/dist/chunk-OVSKJROY.js +0 -815
- package/dist/chunk-OVSKJROY.js.map +0 -7
- package/dist/chunk-PJ3FCJBZ.js +0 -480
- package/dist/chunk-PU2Q4SZR.js +0 -2327
- package/dist/chunk-PZPS56Z6.js +0 -343
- package/dist/chunk-QKR3ZD3S.js +0 -833
- package/dist/chunk-QMXCK4Y5.js +0 -203
- package/dist/chunk-ROJ3LJLE.js +0 -448
- package/dist/chunk-SLHWUFAW.js +0 -1943
- package/dist/chunk-SLHWUFAW.js.map +0 -7
- package/dist/chunk-SOTB4FRE.js +0 -2098
- package/dist/chunk-SOTB4FRE.js.map +0 -7
- package/dist/chunk-TJYRBEBK.js +0 -2878
- package/dist/chunk-TJYRBEBK.js.map +0 -7
- package/dist/chunk-U3G4JGKJ.js +0 -54
- package/dist/chunk-UN3O2MNB.js +0 -375
- package/dist/chunk-VDZ5QOF6.js +0 -446
- package/dist/chunk-VO5XZ2EG.js +0 -129
- package/dist/chunk-VRH7NP6R.js +0 -263
- package/dist/chunk-VTMJGRT5.js +0 -272
- package/dist/chunk-W5X6C7LY.js +0 -399
- package/dist/chunk-WJGUNGFK.js +0 -272
- package/dist/chunk-WKT46ZJ6.js +0 -368
- package/dist/chunk-WQCQWUUP.js +0 -2833
- package/dist/chunk-WY2PGUVX.js +0 -20898
- package/dist/chunk-WY2PGUVX.js.map +0 -7
- package/dist/chunk-WZ2U5QXJ.js +0 -6364
- package/dist/chunk-WZUWK5Q6.js +0 -1102
- package/dist/chunk-XPMTUVSS.js +0 -1220
- package/dist/chunk-XPMTUVSS.js.map +0 -7
- package/dist/chunk-YYFQPGIE.js +0 -386
- package/dist/condition-GVIEMQG7.js +0 -332
- package/dist/controls-73K3XBDR.js +0 -41
- package/dist/controls.config-FQKY2LRE.js +0 -39
- package/dist/correlation-AOAXIUFJ.js +0 -102
- package/dist/cuminc-OD2PPCEK.js +0 -1149
- package/dist/cuminc.integration.spec-TMIFW7EO.js +0 -678
- package/dist/cuminc.integration.spec-TMIFW7EO.js.map +0 -7
- package/dist/customdata.inputui-SWLGLATL.js +0 -289
- package/dist/dataDownload-456HL2OE.js +0 -330
- package/dist/dataDownload.integration.spec-5YS4MWK5.js +0 -193
- package/dist/databrowser.ui-7APC5MNM.js +0 -433
- package/dist/dictionary-A3HA5MVK.js +0 -118
- package/dist/dnaMethylation-6ONBKARD.js +0 -38
- package/dist/dnaMethylation.integration.spec-T3WEGVX3.js +0 -203
- package/dist/dofetch-RVPQUMVX.js +0 -51
- package/dist/e2pca-75WZ46XG.js +0 -350
- package/dist/ep-QG5CWPTW.js +0 -1256
- package/dist/expclust.gdc.spec-KBBQJR4M.js +0 -307
- package/dist/facet-QGB2Q7YV.js +0 -521
- package/dist/forms2-CJGDCWYH.js +0 -539
- package/dist/gb-NEFAHKQI.js +0 -88
- package/dist/geneExpClustering-ZVR44UZC.js +0 -249
- package/dist/geneExpression-25EX4DFK.js +0 -313
- package/dist/geneExpression-FALOA4GC.js +0 -38
- package/dist/geneExpression.unit.spec-BQLELQUS.js +0 -102
- package/dist/geneORA-K2B7JYWD.js +0 -278
- package/dist/geneRanking-6AXL5ZJS.js +0 -553
- package/dist/geneVariant-RZFDP5J5.js +0 -41
- package/dist/geneVariant-UIBZ5UIQ.js +0 -39
- package/dist/geneVariant.integration.spec-4EZQMPQB.js +0 -198
- package/dist/genefusion.ui-YK4TNS2P.js +0 -309
- package/dist/geneset-47J4D5ID.js +0 -208
- package/dist/genomeBrowser.spec-LFFWRIWG.js +0 -281
- package/dist/grin2-DQB2WW3C.js +0 -75
- package/dist/grin2-TZFU4JM3.js +0 -1078
- package/dist/grin2-TZFU4JM3.js.map +0 -7
- package/dist/gsea-KKLAMLMG.js +0 -47
- package/dist/hierCluster-3MZEJG6B.js +0 -59
- package/dist/hierCluster-YGBC4XCZ.js +0 -63
- package/dist/hierCluster.config-A4N54K3A.js +0 -40
- package/dist/hierCluster.integration.spec-GLKXFZDM.js +0 -488
- package/dist/hierCluster.interactivity-4TPWGIVC.js +0 -54
- package/dist/hierCluster.renderers-WUWSXXHU.js +0 -21
- package/dist/imagePlot-JRPYOV3Q.js +0 -163
- package/dist/importPlot-A3PFUP6K.js +0 -8
- package/dist/isoformExpression-5L4O3WKL.js +0 -40
- package/dist/isoformExpression.unit.spec-SLB6XIX4.js +0 -208
- package/dist/launch.adhoc-QI7TPYSC.js +0 -42
- package/dist/leftlabel.sample-OSIRTJFW.js +0 -264
- package/dist/legacyDataset-TNIIJABK.js +0 -119
- package/dist/lollipop-LAELXNQY.js +0 -171
- package/dist/maf-HZAYVZFO.js +0 -459
- package/dist/maftimeline-BLBNUGAL.js +0 -593
- package/dist/matrix-LVJSHXDM.js +0 -58
- package/dist/matrix-S5QQV4JU.js +0 -63
- package/dist/matrix.cells-JUTRYPG4.js +0 -28
- package/dist/matrix.config-ZTWWYNIZ.js +0 -41
- package/dist/matrix.data-BREYB54F.js +0 -25
- package/dist/matrix.groups-WMHTLOXC.js +0 -27
- package/dist/matrix.integration.spec-S6FIEE2X.js +0 -3072
- package/dist/matrix.integration.spec-S6FIEE2X.js.map +0 -7
- package/dist/matrix.interactivity-TMBVAM5M.js +0 -42
- package/dist/matrix.layout-POK5NOUV.js +0 -44
- package/dist/matrix.legend-6XVQ67AC.js +0 -22
- package/dist/matrix.renderers-G5FQZZ73.js +0 -38
- package/dist/matrix.serieses-XNLQSQS6.js +0 -21
- package/dist/matrix.sort-XNES23OQ.js +0 -27
- package/dist/matrix.sort.unit.spec-65BDBQUV.js +0 -472
- package/dist/matrix.sorterUi-WC2YX7S7.js +0 -18
- package/dist/matrix.sorterUi.unit.spec-GZQBW7F7.js +0 -342
- package/dist/mavb-T2UCRWWM.js +0 -732
- package/dist/mds.fimo-65UUK7ER.js +0 -518
- package/dist/mds.samplescatterplot-4NHGQBJF.js +0 -1550
- package/dist/mds.survivalplot-WVAHDM3Z.js +0 -483
- package/dist/numericDictTermCluster-CXASCSQ6.js +0 -65
- package/dist/oncomatrix-5WMOICWR.js +0 -295
- package/dist/oncomatrix.spec-POVBNFJR.js +0 -448
- package/dist/plot.2dvaf-63K5RSIU.js +0 -377
- package/dist/plot.app-V5IY25QS.js +0 -41
- package/dist/plot.barplot-IQTYHNFE.js +0 -102
- package/dist/plot.boxplot-2RMTO7AS.js +0 -152
- package/dist/plot.brainImaging-DLUHAHHG.js +0 -51
- package/dist/plot.disco-WK6GDLNF.js +0 -102
- package/dist/plot.dzi-3V3FWE7U.js +0 -33
- package/dist/plot.ssgq-TENK2RP4.js +0 -139
- package/dist/plot.vaf2cov-P2QOOZGZ.js +0 -259
- package/dist/plot.wsi-BVRGJF4E.js +0 -36
- package/dist/polar2-NNOZOQQJ.js +0 -231
- package/dist/profileForms-RS4GEZZV.js +0 -446
- package/dist/profilePlot-3DLME3NH.js +0 -54
- package/dist/proteinView-NPKJAQAI.js +0 -1568
- package/dist/qualitative-S45RXXRJ.js +0 -43
- package/dist/radar2-EX7YBNMT.js +0 -326
- package/dist/radarFacility2-WU5O6O77.js +0 -334
- package/dist/regression-7MCOYJVD.js +0 -56
- package/dist/regression.inputs-QHSWJ23R.js +0 -48
- package/dist/regression.inputs.term-EJ4Z5Q5O.js +0 -48
- package/dist/regression.inputs.values.table-YKMAWNXN.js +0 -45
- package/dist/regression.integration.spec-XOX7OXXA.js +0 -784
- package/dist/regression.results-YKPOTPCC.js +0 -40
- package/dist/regression.spec-YIIY2AZA.js +0 -708
- package/dist/report-JEJFCWUU.js +0 -222
- package/dist/sampleScatter.spec-LBAZBDYA.js +0 -202
- package/dist/sampleView-WKZT5ZFE.js +0 -48
- package/dist/samplelst-HXM3H6M4.js +0 -111
- package/dist/samplematrix-LCGHK2EK.js +0 -2198
- package/dist/sc-3OE2G4BU.js +0 -86
- package/dist/scatter-AGVUDTTU.js +0 -851
- package/dist/selectGenomeWithTklst-WF2XZ6GH.js +0 -134
- package/dist/singleCellCellType-2SRGROMS.js +0 -38
- package/dist/singleCellCellType.unit.spec-DCGHNRJI.js +0 -160
- package/dist/singleCellGeneExpression-RASZA4NO.js +0 -38
- package/dist/singleCellGeneExpression.unit.spec-5MRGH2OO.js +0 -153
- package/dist/singleCellPlot-TIYA3GNM.js +0 -54
- package/dist/singlecell-CFA43TTU.js +0 -1572
- package/dist/singlecell-JS5SIZHY.js +0 -86
- package/dist/snp-VXZXPMKS.js +0 -38
- package/dist/snp.unit.spec-TR5TCO7X.js +0 -176
- package/dist/snplocus-VLPH5Y65.js +0 -208
- package/dist/spliceevent.a53ss.diagram-PATK67SH.js +0 -151
- package/dist/spliceevent.exonskip.diagram-7B3SEOAJ.js +0 -277
- package/dist/spliceevent.exonskip.diagram-7B3SEOAJ.js.map +0 -7
- package/dist/spliceevent.noeventdiagram-4NPNZUEN.js +0 -460
- package/dist/ssGSEA-XMW5BLAU.js +0 -38
- package/dist/ssGSEA.unit.spec-ASUWKVUT.js +0 -88
- package/dist/summarizeCnvGeneexp-KWRFGX32.js +0 -163
- package/dist/summarizeGeneexpSurvival-FIPIMEJR.js +0 -114
- package/dist/summarizeMutationCnv-IUYRVLZG.js +0 -164
- package/dist/summarizeMutationDiagnosis-ZFJPCABL.js +0 -40
- package/dist/summarizeMutationSurvival-HFHYB7DT.js +0 -99
- package/dist/summary-AZUNEZ5I.js +0 -49
- package/dist/summary.integration.spec-WLBAJL44.js +0 -414
- package/dist/summaryInput-NJWVXDXW.js +0 -235
- package/dist/sunburst-PXGF4WM6.js +0 -284
- package/dist/survival-RAU4XCKG.js +0 -58
- package/dist/survival-ZZ4QLZHK.js +0 -46
- package/dist/survival.integration.spec-GBQ5X362.js +0 -915
- package/dist/survival.integration.spec-GBQ5X362.js.map +0 -7
- package/dist/svgraph-7UCFRL6A.js +0 -1387
- package/dist/svmr-DB3RY2ID.js +0 -3842
- package/dist/table-HJRWWXGM.js +0 -200
- package/dist/termCollection-AW7M6DTP.js +0 -38
- package/dist/termCollection-WPON7RG3.js +0 -179
- package/dist/termCollection.unit.spec-254ESHOE.js +0 -208
- package/dist/tk-SUAFM5YA.js +0 -46
- package/dist/tp.ui-ELEQGSK2.js +0 -1459
- package/dist/tvs.dt-DCXY66YY.js +0 -39
- package/dist/tvs.dtcnv.categorical-SFQZMYX7.js +0 -40
- package/dist/tvs.dtcnv.continuous-AUZNJMC3.js +0 -72
- package/dist/tvs.dtfusion-5F7MYFHZ.js +0 -40
- package/dist/tvs.dtsnvindel-JJSPL4PH.js +0 -40
- package/dist/tvs.dtsv-DARTSV5H.js +0 -40
- package/dist/tvs.numeric-KYAU5OV3.js +0 -21
- package/dist/tvs.samplelst-HHBIO26C.js +0 -104
- package/dist/tvs.termCollection-KCMALH6B.js +0 -159
- package/dist/violin-C26FW5WK.js +0 -46
- package/dist/violin.integration.spec-QQ43XWHQ.js +0 -1425
- package/dist/violin.interactivity-H2BHC6M4.js +0 -38
- package/dist/violin.renderer-GSG2I7AV.js +0 -40
- package/dist/vocabulary-3G525O5V.js +0 -41
- /package/dist/{2dmaf-SKNV7IHT.js.map → 2dmaf-R3PFZNRN.js.map} +0 -0
- /package/dist/{AIProjectAdmin-AOTVRBNH.js.map → AIProjectAdmin-DM3KG6SR.js.map} +0 -0
- /package/dist/{AppHeader-M2ZSS3M3.js.map → AppHeader-6DZQ6YZX.js.map} +0 -0
- /package/dist/{BoxPlot-P3EECSQA.js.map → BoxPlot-76NINVX4.js.map} +0 -0
- /package/dist/{CorrelationVolcano-YCQ5S6MT.js.map → CorrelationVolcano-U5UMJNH5.js.map} +0 -0
- /package/dist/{DE-RBMOQZCR.js.map → DE-AXNYWIQK.js.map} +0 -0
- /package/dist/{DEinput-PTW6RS6U.js.map → DEinput-JH6YY6LS.js.map} +0 -0
- /package/dist/{Disco.UI-YBIMV7RH.js.map → Disco.UI-C7CZINUQ.js.map} +0 -0
- /package/dist/{DmrPlot-JQPLLU6P.js.map → DmrPlot-WROR4ENM.js.map} +0 -0
- /package/dist/{GeneExpInput-3OPDDCXR.js.map → GeneExpInput-JDU6EI7K.js.map} +0 -0
- /package/dist/{HicApp-VFOWRP6G.js.map → HicApp-UNIJLH4B.js.map} +0 -0
- /package/dist/{NumBinaryEditor-RL44SO3T.js.map → NumBinaryEditor-WMN2GGO4.js.map} +0 -0
- /package/dist/{NumBinaryEditor.unit.spec-P73PGAX5.js.map → NumBinaryEditor.unit.spec-TAMXV6SE.js.map} +0 -0
- /package/dist/{NumContEditor-MIC7M73G.js.map → NumContEditor-XYIOJY4E.js.map} +0 -0
- /package/dist/{NumContEditor.unit.spec-5XZH7OCG.js.map → NumContEditor.unit.spec-WDZ75BHO.js.map} +0 -0
- /package/dist/{NumCustomBinEditor-W357XTIR.js.map → NumCustomBinEditor-5SY3C4TY.js.map} +0 -0
- /package/dist/{NumCustomBinEditor.unit.spec-CJMK4CYW.js.map → NumCustomBinEditor.unit.spec-XHTAIXR3.js.map} +0 -0
- /package/dist/{NumDiscreteEditor-PRSUMS3I.js.map → NumDiscreteEditor-NRDRX4FD.js.map} +0 -0
- /package/dist/{NumDiscreteEditor.unit.spec-A6R56P3Z.js.map → NumDiscreteEditor.unit.spec-2CJW7OAT.js.map} +0 -0
- /package/dist/{NumRegularBinEditor-7OHUEUCC.js.map → NumRegularBinEditor-DUDVTNDC.js.map} +0 -0
- /package/dist/{NumRegularBinEditor.unit.spec-NOAX42UZ.js.map → NumRegularBinEditor.unit.spec-H3GNQHMN.js.map} +0 -0
- /package/dist/{NumSplineEditor-XI7AT5LM.js.map → NumSplineEditor-7Q4AC7KH.js.map} +0 -0
- /package/dist/{NumSplineEditor.unit.spec-ZH4M2N2C.js.map → NumSplineEditor.unit.spec-YRZK5PH5.js.map} +0 -0
- /package/dist/{NumericDensity-X6IHQAW3.js.map → NumericDensity-NTNWUESG.js.map} +0 -0
- /package/dist/{NumericDensity.unit.spec-EKVD4AUG.js.map → NumericDensity.unit.spec-5I5U6T6P.js.map} +0 -0
- /package/dist/{NumericHandler-5ONBWFJ5.js.map → NumericHandler-MEW2KMPX.js.map} +0 -0
- /package/dist/{NumericHandler.unit.spec-SHI6E4VA.js.map → NumericHandler.unit.spec-JFX4BPRG.js.map} +0 -0
- /package/dist/{RunChart2-Y6IY6MW2.js.map → RunChart2-BEBDU7RC.js.map} +0 -0
- /package/dist/{WSIViewer-RLLL7MAL.js.map → WSIViewer-ZLQU62PD.js.map} +0 -0
- /package/dist/{WsiSamplesPlot-FU3TCOTY.js.map → WsiSamplesPlot-JMBSITOM.js.map} +0 -0
- /package/dist/{adSandbox-ZINST5DE.js.map → adSandbox-664IRCRL.js.map} +0 -0
- /package/dist/{animatedBubbleChart-PIQWCVBJ.js.map → animatedBubbleChart-TX7NW34K.js.map} +0 -0
- /package/dist/{app-N42SVGI2.js.map → app-63WJ3BMP.js.map} +0 -0
- /package/dist/{app-RWN4XLCP.js.map → app-77FIZHCG.js.map} +0 -0
- /package/dist/{bam-QTSTXJ4N.js.map → bam-IETNVAYD.js.map} +0 -0
- /package/dist/{barchart-27BYTRVI.js.map → barchart-YUVXJNH4.js.map} +0 -0
- /package/dist/{barchart.data-OUNVH4JU.js.map → barchart.data-P4EIQXGE.js.map} +0 -0
- /package/dist/{barchart.events-PY4CEDSO.js.map → barchart.events-JPVCLTIG.js.map} +0 -0
- /package/dist/{barchart.integration.spec-H4WGHQ7R.js.map → barchart.integration.spec-ZH7DEQI2.js.map} +0 -0
- /package/dist/{barchart2-TIOTRAC2.js.map → barchart2-XO2FG76J.js.map} +0 -0
- /package/dist/{bars.renderer-57KSYAAT.js.map → bars.renderer-AUIWUJDH.js.map} +0 -0
- /package/dist/{block.init-LRZ3QAGC.js.map → block.init-X7Y2EEVR.js.map} +0 -0
- /package/dist/{block.mds.expressionrank-IV7JLC52.js.map → block.mds.expressionrank-BIAOZIZ3.js.map} +0 -0
- /package/dist/{block.mds.geneboxplot-IBCE5XZU.js.map → block.mds.geneboxplot-CNICDVLK.js.map} +0 -0
- /package/dist/{block.mds.junction-ISSCJHNF.js.map → block.mds.junction-PQXCTSUI.js.map} +0 -0
- /package/dist/{block.mds.svcnv-ZEBVBTL7.js.map → block.mds.svcnv-32KMVTCT.js.map} +0 -0
- /package/dist/{block.svg-FYWA5VYH.js.map → block.svg-LRTOYQK2.js.map} +0 -0
- /package/dist/{block.tk.aicheck-AD6DTKXR.js.map → block.tk.aicheck-HDV7ZIUD.js.map} +0 -0
- /package/dist/{block.tk.ase-LO2J4KRE.js.map → block.tk.ase-JIDWKMYI.js.map} +0 -0
- /package/dist/{block.tk.bam-XGX22FCN.js.map → block.tk.bam-5X3OS5HB.js.map} +0 -0
- /package/dist/{block.tk.bedgraphdot-SUIRFNFL.js.map → block.tk.bedgraphdot-T7JX7YQL.js.map} +0 -0
- /package/dist/{block.tk.bigwig.ui-2Q7FAK3V.js.map → block.tk.bigwig.ui-OSAYEBAE.js.map} +0 -0
- /package/dist/{block.tk.hicstraw-4MVP2PCL.js.map → block.tk.hicstraw-DEY3VQFK.js.map} +0 -0
- /package/dist/{block.tk.junction-F54FTEPB.js.map → block.tk.junction-7UAFEZSJ.js.map} +0 -0
- /package/dist/{block.tk.junction.textmatrixui-ETROZJVK.js.map → block.tk.junction.textmatrixui-27LHS33U.js.map} +0 -0
- /package/dist/{block.tk.ld-NJEDKSTU.js.map → block.tk.ld-DF2PI7OO.js.map} +0 -0
- /package/dist/{block.tk.menu-LZOY4FKT.js.map → block.tk.menu-L2D5KBIV.js.map} +0 -0
- /package/dist/{block.tk.pgv-I3XHJ7VU.js.map → block.tk.pgv-QO56SKBV.js.map} +0 -0
- /package/dist/{brainImaging-BGP6VRFV.js.map → brainImaging-NIPQWFWO.js.map} +0 -0
- /package/dist/{brainRegions-AAN7LM2Y.js.map → brainRegions-ZNZ2WHSU.js.map} +0 -0
- /package/dist/{bubbleHeatmap-HNEU4CYA.js.map → bubbleHeatmap-ERWNEKZB.js.map} +0 -0
- /package/dist/{chunk-CDJAHMAN.js.map → chunk-2GYWFQML.js.map} +0 -0
- /package/dist/{chunk-ILE6ML2D.js.map → chunk-2HYJ4GDH.js.map} +0 -0
- /package/dist/{chunk-VTMJGRT5.js.map → chunk-2MG6XE6R.js.map} +0 -0
- /package/dist/{chunk-4C3XRI6J.js.map → chunk-33K5PA52.js.map} +0 -0
- /package/dist/{chunk-5QTJUPFS.js.map → chunk-37XDBPOP.js.map} +0 -0
- /package/dist/{chunk-3LYZMOLO.js.map → chunk-3EWB3246.js.map} +0 -0
- /package/dist/{chunk-2XV6U42J.js.map → chunk-3RSKOPIY.js.map} +0 -0
- /package/dist/{chunk-WZUWK5Q6.js.map → chunk-4DPVT4NE.js.map} +0 -0
- /package/dist/{chunk-GE4NJDV4.js.map → chunk-4IH7DORZ.js.map} +0 -0
- /package/dist/{chunk-W5X6C7LY.js.map → chunk-4QNBFIIR.js.map} +0 -0
- /package/dist/{chunk-5HMX4NUJ.js.map → chunk-4STKL6SR.js.map} +0 -0
- /package/dist/{chunk-GYGU4UT5.js.map → chunk-4TZIVSL5.js.map} +0 -0
- /package/dist/{chunk-LQJMCE7G.js.map → chunk-5ABGFJSP.js.map} +0 -0
- /package/dist/{chunk-MTZSN3H4.js.map → chunk-5AZNP47R.js.map} +0 -0
- /package/dist/{chunk-KE5B34CS.js.map → chunk-6BB43SIB.js.map} +0 -0
- /package/dist/{chunk-53JJ7SXN.js.map → chunk-7OHRR2IE.js.map} +0 -0
- /package/dist/{chunk-FDBVAL6K.js.map → chunk-ASATD4T7.js.map} +0 -0
- /package/dist/{chunk-25XCVML7.js.map → chunk-B5B3LZB3.js.map} +0 -0
- /package/dist/{chunk-L6A2BEXB.js.map → chunk-BHGISFCA.js.map} +0 -0
- /package/dist/{chunk-BXGQXLHP.js.map → chunk-BMBOZ64T.js.map} +0 -0
- /package/dist/{chunk-IRKP6IZ4.js.map → chunk-BOZJHPJP.js.map} +0 -0
- /package/dist/{chunk-IFK24IXL.js.map → chunk-CDD7LYJM.js.map} +0 -0
- /package/dist/{chunk-PU2Q4SZR.js.map → chunk-CTQ3IUCA.js.map} +0 -0
- /package/dist/{chunk-EPWIJEMK.js.map → chunk-D7TID3HR.js.map} +0 -0
- /package/dist/{chunk-5V2BMEAS.js.map → chunk-E55LLYRX.js.map} +0 -0
- /package/dist/{chunk-YYFQPGIE.js.map → chunk-ESGXULRH.js.map} +0 -0
- /package/dist/{chunk-K5UVG3FQ.js.map → chunk-EZ4LZ6ZT.js.map} +0 -0
- /package/dist/{chunk-B4GS7OLB.js.map → chunk-F3SJTVP5.js.map} +0 -0
- /package/dist/{chunk-427UL37G.js.map → chunk-F5IXNJO7.js.map} +0 -0
- /package/dist/{chunk-ROJ3LJLE.js.map → chunk-FJYECRHW.js.map} +0 -0
- /package/dist/{chunk-QKR3ZD3S.js.map → chunk-FPNRUQOU.js.map} +0 -0
- /package/dist/{chunk-J6ZOUCWN.js.map → chunk-G764NXQN.js.map} +0 -0
- /package/dist/{chunk-I5IPJG2R.js.map → chunk-GAPI4MML.js.map} +0 -0
- /package/dist/{chunk-WJGUNGFK.js.map → chunk-HLUZOZXJ.js.map} +0 -0
- /package/dist/{chunk-UN3O2MNB.js.map → chunk-HOKIK2FR.js.map} +0 -0
- /package/dist/{chunk-VO5XZ2EG.js.map → chunk-KLGL6XZD.js.map} +0 -0
- /package/dist/{chunk-PJ3FCJBZ.js.map → chunk-L7IRWUKT.js.map} +0 -0
- /package/dist/{chunk-MN3KDNHC.js.map → chunk-LX6G7HJJ.js.map} +0 -0
- /package/dist/{chunk-OF5FE6GT.js.map → chunk-M2G5R4WB.js.map} +0 -0
- /package/dist/{chunk-EKKQMKQI.js.map → chunk-M4TTGGT4.js.map} +0 -0
- /package/dist/{chunk-LYVLF6HO.js.map → chunk-M6EF3WVV.js.map} +0 -0
- /package/dist/{chunk-MNIBZTQE.js.map → chunk-M6KHT3MM.js.map} +0 -0
- /package/dist/{chunk-F7Y67LK7.js.map → chunk-MCZFHWIR.js.map} +0 -0
- /package/dist/{chunk-JNBJG57F.js.map → chunk-MFQACKYU.js.map} +0 -0
- /package/dist/{chunk-PZPS56Z6.js.map → chunk-MVGAGTM3.js.map} +0 -0
- /package/dist/{chunk-A3URBFXN.js.map → chunk-NELOT3NJ.js.map} +0 -0
- /package/dist/{chunk-U3G4JGKJ.js.map → chunk-NRKMXULC.js.map} +0 -0
- /package/dist/{chunk-BKPDYW5T.js.map → chunk-NYRZNRG5.js.map} +0 -0
- /package/dist/{chunk-WKT46ZJ6.js.map → chunk-ONPKE6DC.js.map} +0 -0
- /package/dist/{chunk-QMXCK4Y5.js.map → chunk-PFRWS4CR.js.map} +0 -0
- /package/dist/{chunk-6MBTPVIM.js.map → chunk-PJKQUXEN.js.map} +0 -0
- /package/dist/{chunk-WZ2U5QXJ.js.map → chunk-Q2L44HK3.js.map} +0 -0
- /package/dist/{chunk-VDZ5QOF6.js.map → chunk-RKO6BL5N.js.map} +0 -0
- /package/dist/{chunk-A45KH7LP.js.map → chunk-T25QNZHB.js.map} +0 -0
- /package/dist/{chunk-LSWU6EAQ.js.map → chunk-U7TBYVIQ.js.map} +0 -0
- /package/dist/{chunk-5CR24RTX.js.map → chunk-UGRQXBL4.js.map} +0 -0
- /package/dist/{chunk-G3FSS7GR.js.map → chunk-USFSHSCJ.js.map} +0 -0
- /package/dist/{chunk-WQCQWUUP.js.map → chunk-VJ6UFVGC.js.map} +0 -0
- /package/dist/{chunk-FISP5YN2.js.map → chunk-W3WPPOXH.js.map} +0 -0
- /package/dist/{chunk-VRH7NP6R.js.map → chunk-WFCSOTBO.js.map} +0 -0
- /package/dist/{chunk-BWQV2OBL.js.map → chunk-WZ2L57MB.js.map} +0 -0
- /package/dist/{chunk-CXHLROWX.js.map → chunk-Y4UAKFWC.js.map} +0 -0
- /package/dist/{chunk-4O6H4ZHL.js.map → chunk-YQBS2ZCK.js.map} +0 -0
- /package/dist/{chunk-7FSIZZOX.js.map → chunk-ZTHM2TKP.js.map} +0 -0
- /package/dist/{condition-GVIEMQG7.js.map → condition-2PASYSUC.js.map} +0 -0
- /package/dist/{controls-73K3XBDR.js.map → controls-5IMJ6K5L.js.map} +0 -0
- /package/dist/{controls.config-FQKY2LRE.js.map → controls.config-P5PG2DHW.js.map} +0 -0
- /package/dist/{correlation-AOAXIUFJ.js.map → correlation-U3EDLNHR.js.map} +0 -0
- /package/dist/{cuminc-OD2PPCEK.js.map → cuminc-2HUFEROK.js.map} +0 -0
- /package/dist/{customdata.inputui-SWLGLATL.js.map → customdata.inputui-ZHWNEPFH.js.map} +0 -0
- /package/dist/{dataDownload-456HL2OE.js.map → dataDownload-VBSJBKMP.js.map} +0 -0
- /package/dist/{dataDownload.integration.spec-5YS4MWK5.js.map → dataDownload.integration.spec-LUFSETOP.js.map} +0 -0
- /package/dist/{databrowser.ui-7APC5MNM.js.map → databrowser.ui-6H2KMSTJ.js.map} +0 -0
- /package/dist/{dictionary-A3HA5MVK.js.map → dictionary-V37LXFIP.js.map} +0 -0
- /package/dist/{dnaMethylation-6ONBKARD.js.map → dnaMethylation-OIZMHMLK.js.map} +0 -0
- /package/dist/{dnaMethylation.integration.spec-T3WEGVX3.js.map → dnaMethylation.integration.spec-CWPTJ74H.js.map} +0 -0
- /package/dist/{dofetch-RVPQUMVX.js.map → dofetch-IWPZQB5N.js.map} +0 -0
- /package/dist/{e2pca-75WZ46XG.js.map → e2pca-7SLIAGYW.js.map} +0 -0
- /package/dist/{ep-QG5CWPTW.js.map → ep-7L6KF6K4.js.map} +0 -0
- /package/dist/{expclust.gdc.spec-KBBQJR4M.js.map → expclust.gdc.spec-JT452Q3G.js.map} +0 -0
- /package/dist/{facet-QGB2Q7YV.js.map → facet-CXOUU5AS.js.map} +0 -0
- /package/dist/{forms2-CJGDCWYH.js.map → forms2-VPNCLQOY.js.map} +0 -0
- /package/dist/{gb-NEFAHKQI.js.map → gb-P4VRXRED.js.map} +0 -0
- /package/dist/{geneExpClustering-ZVR44UZC.js.map → geneExpClustering-FQTCKRJJ.js.map} +0 -0
- /package/dist/{geneExpression-25EX4DFK.js.map → geneExpression-BHO5326K.js.map} +0 -0
- /package/dist/{geneExpression-FALOA4GC.js.map → geneExpression-ZMERB64E.js.map} +0 -0
- /package/dist/{geneExpression.unit.spec-BQLELQUS.js.map → geneExpression.unit.spec-CNVHZWNG.js.map} +0 -0
- /package/dist/{geneORA-K2B7JYWD.js.map → geneORA-FXVUCXGX.js.map} +0 -0
- /package/dist/{geneRanking-6AXL5ZJS.js.map → geneRanking-SFK4UBKQ.js.map} +0 -0
- /package/dist/{geneVariant-RZFDP5J5.js.map → geneVariant-IYEHB4H7.js.map} +0 -0
- /package/dist/{geneVariant-UIBZ5UIQ.js.map → geneVariant-LIRRLUFR.js.map} +0 -0
- /package/dist/{geneVariant.integration.spec-4EZQMPQB.js.map → geneVariant.integration.spec-Y2NPNTYX.js.map} +0 -0
- /package/dist/{genefusion.ui-YK4TNS2P.js.map → genefusion.ui-L3HIJM3N.js.map} +0 -0
- /package/dist/{geneset-47J4D5ID.js.map → geneset-A6VUFX63.js.map} +0 -0
- /package/dist/{genomeBrowser.spec-LFFWRIWG.js.map → genomeBrowser.spec-CB4HHHBN.js.map} +0 -0
- /package/dist/{grin2-DQB2WW3C.js.map → grin2-FKBIMH5N.js.map} +0 -0
- /package/dist/{gsea-KKLAMLMG.js.map → hierCluster-QFPRMHVA.js.map} +0 -0
- /package/dist/{hierCluster-3MZEJG6B.js.map → hierCluster-YWC3XYPV.js.map} +0 -0
- /package/dist/{hierCluster-YGBC4XCZ.js.map → hierCluster.config-F7YYZNM3.js.map} +0 -0
- /package/dist/{hierCluster.integration.spec-GLKXFZDM.js.map → hierCluster.integration.spec-AF4L3YT6.js.map} +0 -0
- /package/dist/{hierCluster.config-A4N54K3A.js.map → hierCluster.interactivity-RPY74PK6.js.map} +0 -0
- /package/dist/{hierCluster.interactivity-4TPWGIVC.js.map → hierCluster.renderers-LOKHZ3V2.js.map} +0 -0
- /package/dist/{imagePlot-JRPYOV3Q.js.map → imagePlot-BBEXA754.js.map} +0 -0
- /package/dist/{hierCluster.renderers-WUWSXXHU.js.map → importPlot-7QGANZGK.js.map} +0 -0
- /package/dist/{importPlot-A3PFUP6K.js.map → isoformExpression-4SLLCVFD.js.map} +0 -0
- /package/dist/{isoformExpression.unit.spec-SLB6XIX4.js.map → isoformExpression.unit.spec-GEL4JJ64.js.map} +0 -0
- /package/dist/{isoformExpression-5L4O3WKL.js.map → launch.adhoc-LWLBQJS5.js.map} +0 -0
- /package/dist/{leftlabel.sample-OSIRTJFW.js.map → leftlabel.sample-RTEZOIH2.js.map} +0 -0
- /package/dist/{legacyDataset-TNIIJABK.js.map → legacyDataset-VLD7ZYWI.js.map} +0 -0
- /package/dist/{lollipop-LAELXNQY.js.map → lollipop-XKQK5QZU.js.map} +0 -0
- /package/dist/{maf-HZAYVZFO.js.map → maf-AZQPPWDO.js.map} +0 -0
- /package/dist/{maftimeline-BLBNUGAL.js.map → maftimeline-7MSVYKQU.js.map} +0 -0
- /package/dist/{launch.adhoc-QI7TPYSC.js.map → matrix-BGLWC25D.js.map} +0 -0
- /package/dist/{matrix-LVJSHXDM.js.map → matrix-IQR5SRMK.js.map} +0 -0
- /package/dist/{matrix-S5QQV4JU.js.map → matrix.cells-5C57NWOY.js.map} +0 -0
- /package/dist/{matrix.cells-JUTRYPG4.js.map → matrix.config-2DQXAN2E.js.map} +0 -0
- /package/dist/{matrix.config-ZTWWYNIZ.js.map → matrix.data-ADCGF5H6.js.map} +0 -0
- /package/dist/{matrix.data-BREYB54F.js.map → matrix.groups-V4ITQ5F7.js.map} +0 -0
- /package/dist/{matrix.groups-WMHTLOXC.js.map → matrix.interactivity-JNELJFOV.js.map} +0 -0
- /package/dist/{matrix.interactivity-TMBVAM5M.js.map → matrix.layout-WBVIV6GR.js.map} +0 -0
- /package/dist/{matrix.layout-POK5NOUV.js.map → matrix.legend-YHOWPK77.js.map} +0 -0
- /package/dist/{matrix.legend-6XVQ67AC.js.map → matrix.renderers-5BGVRR3M.js.map} +0 -0
- /package/dist/{matrix.renderers-G5FQZZ73.js.map → matrix.serieses-2GZJOASZ.js.map} +0 -0
- /package/dist/{matrix.serieses-XNLQSQS6.js.map → matrix.sort-WKIWPJKP.js.map} +0 -0
- /package/dist/{matrix.sort.unit.spec-65BDBQUV.js.map → matrix.sort.unit.spec-L2E4D4AS.js.map} +0 -0
- /package/dist/{matrix.sort-XNES23OQ.js.map → matrix.sorterUi-TEJWWJ64.js.map} +0 -0
- /package/dist/{matrix.sorterUi.unit.spec-GZQBW7F7.js.map → matrix.sorterUi.unit.spec-SHP7C4P7.js.map} +0 -0
- /package/dist/{mavb-T2UCRWWM.js.map → mavb-4MXNYUEO.js.map} +0 -0
- /package/dist/{mds.fimo-65UUK7ER.js.map → mds.fimo-WHIJIBOI.js.map} +0 -0
- /package/dist/{mds.samplescatterplot-4NHGQBJF.js.map → mds.samplescatterplot-BRJ6NG2D.js.map} +0 -0
- /package/dist/{mds.survivalplot-WVAHDM3Z.js.map → mds.survivalplot-OPCMB5PB.js.map} +0 -0
- /package/dist/{numericDictTermCluster-CXASCSQ6.js.map → numericDictTermCluster-7MIFOP2K.js.map} +0 -0
- /package/dist/{oncomatrix-5WMOICWR.js.map → oncomatrix-BGG6BEUI.js.map} +0 -0
- /package/dist/{oncomatrix.spec-POVBNFJR.js.map → oncomatrix.spec-LYQ4L4F3.js.map} +0 -0
- /package/dist/{plot.2dvaf-63K5RSIU.js.map → plot.2dvaf-6WVCP2ZI.js.map} +0 -0
- /package/dist/{matrix.sorterUi-WC2YX7S7.js.map → plot.app-MLBP6WFP.js.map} +0 -0
- /package/dist/{plot.barplot-IQTYHNFE.js.map → plot.barplot-JEPRZSCU.js.map} +0 -0
- /package/dist/{plot.boxplot-2RMTO7AS.js.map → plot.boxplot-GNFW42VM.js.map} +0 -0
- /package/dist/{plot.brainImaging-DLUHAHHG.js.map → plot.brainImaging-5ACNSD45.js.map} +0 -0
- /package/dist/{plot.disco-WK6GDLNF.js.map → plot.disco-Q2V2KKIH.js.map} +0 -0
- /package/dist/{plot.dzi-3V3FWE7U.js.map → plot.dzi-KVT6S7K7.js.map} +0 -0
- /package/dist/{plot.ssgq-TENK2RP4.js.map → plot.ssgq-4N3KFJQ2.js.map} +0 -0
- /package/dist/{plot.vaf2cov-P2QOOZGZ.js.map → plot.vaf2cov-ITRG5U43.js.map} +0 -0
- /package/dist/{plot.wsi-BVRGJF4E.js.map → plot.wsi-26YZNU4V.js.map} +0 -0
- /package/dist/{polar2-NNOZOQQJ.js.map → polar2-J7GVUK4X.js.map} +0 -0
- /package/dist/{profileForms-RS4GEZZV.js.map → profileForms-VXV2JLXU.js.map} +0 -0
- /package/dist/{plot.app-V5IY25QS.js.map → profilePlot-ZZYZK4SY.js.map} +0 -0
- /package/dist/{proteinView-NPKJAQAI.js.map → proteinView-7KN532D3.js.map} +0 -0
- /package/dist/{profilePlot-3DLME3NH.js.map → qualitative-MLRVLIAU.js.map} +0 -0
- /package/dist/{radar2-EX7YBNMT.js.map → radar2-WM2ZBOH3.js.map} +0 -0
- /package/dist/{radarFacility2-WU5O6O77.js.map → radarFacility2-3SBR2JJ3.js.map} +0 -0
- /package/dist/{qualitative-S45RXXRJ.js.map → regression-WMRPQJW2.js.map} +0 -0
- /package/dist/{regression-7MCOYJVD.js.map → regression.inputs-VWZKSYNY.js.map} +0 -0
- /package/dist/{regression.inputs-QHSWJ23R.js.map → regression.inputs.term-OWE6GWHM.js.map} +0 -0
- /package/dist/{regression.inputs.term-EJ4Z5Q5O.js.map → regression.inputs.values.table-4INNZQI2.js.map} +0 -0
- /package/dist/{regression.integration.spec-XOX7OXXA.js.map → regression.integration.spec-XKQ2JOOT.js.map} +0 -0
- /package/dist/{regression.inputs.values.table-YKMAWNXN.js.map → regression.results-VZBYMBYC.js.map} +0 -0
- /package/dist/{regression.spec-YIIY2AZA.js.map → regression.spec-DU3UTDCJ.js.map} +0 -0
- /package/dist/{regression.results-YKPOTPCC.js.map → render-N5FOF247.js.map} +0 -0
- /package/dist/{report-JEJFCWUU.js.map → report-DW3OHB67.js.map} +0 -0
- /package/dist/{sampleScatter.spec-LBAZBDYA.js.map → sampleScatter.spec-REFSK2V4.js.map} +0 -0
- /package/dist/{sampleView-WKZT5ZFE.js.map → sampleView-ICOT2R6O.js.map} +0 -0
- /package/dist/{samplelst-HXM3H6M4.js.map → samplelst-TJEVASYG.js.map} +0 -0
- /package/dist/{samplematrix-LCGHK2EK.js.map → samplematrix-6DAWCXQ3.js.map} +0 -0
- /package/dist/{sc-3OE2G4BU.js.map → sc-53LNOB7N.js.map} +0 -0
- /package/dist/{scatter-AGVUDTTU.js.map → scatter-DKYSS4DL.js.map} +0 -0
- /package/dist/{selectGenomeWithTklst-WF2XZ6GH.js.map → selectGenomeWithTklst-WTX66TV3.js.map} +0 -0
- /package/dist/{singleCellCellType-2SRGROMS.js.map → singleCellCellType-D2CN2BHQ.js.map} +0 -0
- /package/dist/{singleCellCellType.unit.spec-DCGHNRJI.js.map → singleCellCellType.unit.spec-LADUCI4R.js.map} +0 -0
- /package/dist/{singleCellGeneExpression-RASZA4NO.js.map → singleCellGeneExpression-YR2ZT34W.js.map} +0 -0
- /package/dist/{singleCellGeneExpression.unit.spec-5MRGH2OO.js.map → singleCellGeneExpression.unit.spec-BM63M432.js.map} +0 -0
- /package/dist/{singleCellPlot-TIYA3GNM.js.map → singleCellPlot-3ICIOILE.js.map} +0 -0
- /package/dist/{singlecell-JS5SIZHY.js.map → singlecell-6ZUFA3BQ.js.map} +0 -0
- /package/dist/{singlecell-CFA43TTU.js.map → singlecell-KX7W4U57.js.map} +0 -0
- /package/dist/{snp-VXZXPMKS.js.map → snp-VIURB7L3.js.map} +0 -0
- /package/dist/{snp.unit.spec-TR5TCO7X.js.map → snp.unit.spec-ACZNZUNS.js.map} +0 -0
- /package/dist/{snplocus-VLPH5Y65.js.map → snplocus-3LW4ZUZR.js.map} +0 -0
- /package/dist/{spliceevent.a53ss.diagram-PATK67SH.js.map → spliceevent.a53ss.diagram-AKTZGWNM.js.map} +0 -0
- /package/dist/{spliceevent.noeventdiagram-4NPNZUEN.js.map → spliceevent.noeventdiagram-YTXWWNTJ.js.map} +0 -0
- /package/dist/{ssGSEA-XMW5BLAU.js.map → ssGSEA-THW4WFMI.js.map} +0 -0
- /package/dist/{ssGSEA.unit.spec-ASUWKVUT.js.map → ssGSEA.unit.spec-HTRGQI2K.js.map} +0 -0
- /package/dist/{summarizeCnvGeneexp-KWRFGX32.js.map → summarizeCnvGeneexp-RFYC3H2Z.js.map} +0 -0
- /package/dist/{summarizeGeneexpSurvival-FIPIMEJR.js.map → summarizeGeneexpSurvival-DQBZUTQ6.js.map} +0 -0
- /package/dist/{summarizeMutationCnv-IUYRVLZG.js.map → summarizeMutationCnv-7AYEMHAI.js.map} +0 -0
- /package/dist/{summarizeMutationDiagnosis-ZFJPCABL.js.map → summarizeMutationDiagnosis-AKFJDSAF.js.map} +0 -0
- /package/dist/{summarizeMutationSurvival-HFHYB7DT.js.map → summarizeMutationSurvival-QJHZRQBZ.js.map} +0 -0
- /package/dist/{summary-AZUNEZ5I.js.map → summary-A5P7AYK4.js.map} +0 -0
- /package/dist/{summary.integration.spec-WLBAJL44.js.map → summary.integration.spec-HQISXGNL.js.map} +0 -0
- /package/dist/{summaryInput-NJWVXDXW.js.map → summaryInput-HP675QOQ.js.map} +0 -0
- /package/dist/{sunburst-PXGF4WM6.js.map → sunburst-65LSYRXX.js.map} +0 -0
- /package/dist/{survival-ZZ4QLZHK.js.map → survival-QNEI6YVK.js.map} +0 -0
- /package/dist/{survival-RAU4XCKG.js.map → survival-UI74VXSM.js.map} +0 -0
- /package/dist/{svgraph-7UCFRL6A.js.map → svgraph-PSX2NER3.js.map} +0 -0
- /package/dist/{svmr-DB3RY2ID.js.map → svmr-QDQ33EFX.js.map} +0 -0
- /package/dist/{table-HJRWWXGM.js.map → table-LWAI27UO.js.map} +0 -0
- /package/dist/{termCollection-WPON7RG3.js.map → termCollection-3JHR74FG.js.map} +0 -0
- /package/dist/{termCollection-AW7M6DTP.js.map → termCollection-CDF5LYUG.js.map} +0 -0
- /package/dist/{termCollection.unit.spec-254ESHOE.js.map → termCollection.unit.spec-HOJKYWHF.js.map} +0 -0
- /package/dist/{tk-SUAFM5YA.js.map → tk-OEQFO73V.js.map} +0 -0
- /package/dist/{tp.ui-ELEQGSK2.js.map → tp.ui-SHNERDGC.js.map} +0 -0
- /package/dist/{tvs.dt-DCXY66YY.js.map → tvs.dt-CZDC4TSR.js.map} +0 -0
- /package/dist/{tvs.dtcnv.categorical-SFQZMYX7.js.map → tvs.dtcnv.categorical-OPBDHZGB.js.map} +0 -0
- /package/dist/{tvs.dtcnv.continuous-AUZNJMC3.js.map → tvs.dtcnv.continuous-AR6P4EP3.js.map} +0 -0
- /package/dist/{tvs.dtfusion-5F7MYFHZ.js.map → tvs.dtfusion-2YQ7N6FQ.js.map} +0 -0
- /package/dist/{tvs.dtsnvindel-JJSPL4PH.js.map → tvs.dtsnvindel-WHHWAATJ.js.map} +0 -0
- /package/dist/{tvs.dtsv-DARTSV5H.js.map → tvs.dtsv-3UMCW65O.js.map} +0 -0
- /package/dist/{tvs.numeric-KYAU5OV3.js.map → tvs.numeric-TOEPASWN.js.map} +0 -0
- /package/dist/{tvs.samplelst-HHBIO26C.js.map → tvs.samplelst-M7XKXRTZ.js.map} +0 -0
- /package/dist/{tvs.termCollection-KCMALH6B.js.map → tvs.termCollection-WT4WZMYR.js.map} +0 -0
- /package/dist/{violin-C26FW5WK.js.map → violin-2YGXTBDS.js.map} +0 -0
- /package/dist/{violin.integration.spec-QQ43XWHQ.js.map → violin.integration.spec-YWNHVAGS.js.map} +0 -0
- /package/dist/{violin.interactivity-H2BHC6M4.js.map → violin.interactivity-J6BE2UQL.js.map} +0 -0
- /package/dist/{violin.renderer-GSG2I7AV.js.map → violin.renderer-3GRUWP2U.js.map} +0 -0
- /package/dist/{vocabulary-3G525O5V.js.map → vocabulary-2INCVPYJ.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\tssGSEA: {\n\t\tmode: 'discrete',\n\t\ttype: 'custom-bin',\n\t\tpreferredBins: 'median'\n\t},\n\tisoformExpression: {\n\t\tmode: 'discrete',\n\t\ttype: 'custom-bin',\n\t\tpreferredBins: 'median'\n\t},\n\tdnaMethylation: {\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\tmsg?: string\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 holder = opts.controls ? opts.holder : opts.holder.append('div')\n\t\tconst { controls, errdiv, loadingDiv, renderedData, charts, legendDiv } = this.getStandardDomLayout(holder, opts)\n\t\tconst dom = {\n\t\t\tloadingDiv,\n\t\t\theader: opts.header?.html('Survival Plot'),\n\t\t\tcontrols,\n\t\t\tholder,\n\t\t\terrdiv,\n\t\t\trenderedData,\n\t\t\tchartsDiv: charts\n\t\t\t\t.style('margin', '10px')\n\t\t\t\t.style('display', 'flex')\n\t\t\t\t.style('flex-direction', 'row')\n\t\t\t\t.style('flex-wrap', 'wrap')\n\t\t\t\t.style('max-width', '100vw'),\n\t\t\tlegendDiv: legendDiv.style('margin', '5px 5px 15px 5px'),\n\t\t\thiddenDiv: renderedData.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\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\t// public/unauthenticated views disable stratification to limit inference from aggregated data; admin/user are unaffected\n\t\tconst stratDisabledMsg = this.app.vocabApi.termdbConfig?.survival?.stratificationDisabledMessage\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\tdisabledMessage: stratDisabledMsg\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\tdisabledMessage: stratDisabledMsg\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: 'Median Survival',\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: 'medianSurvivalVisible',\n\t\t\t\t\t\t\ttitle: 'Display dashed lines indicating the median survival time (50% probability)'\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\tlet data\n\t\ttry {\n\t\t\tthis.state.config = await this.getMutableConfig()\n\t\t\tthis.maySetSandboxHeader()\n\t\t\tthis.toggleLoadingDiv()\n\n\t\t\tObject.assign(this.settings, this.state.config.settings)\n\t\t\tthis.settings.defaultHidden = this.getDefaultHidden()\n\t\t\tthis.settings.hidden = this.settings.customHidden || this.settings.defaultHidden\n\t\t\tthis.settings.xTitleLabel = this.getXtitleLabel()\n\t\t\tconst reqOpts = this.getDataRequestOpts()\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\tthis.toggleLoadingDiv('none', 'none')\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\tthis.msg = ''\n\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\t// process refs\n\t\tif (data.refs.byTermId) {\n\t\t\tconst byTermId = data.refs.byTermId\n\t\t\tconst msg = byTermId[this.state.config.term.term.id]?.survMsg\n\t\t\tif (msg) {\n\t\t\t\t// message to be displayed in survival plot\n\t\t\t\t// will be rendered in .pp-survival-chartLegends of each chart\n\t\t\t\tthis.msg = msg\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\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.attr('data-testid', 'sjpp-survival-plotDiv')\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 10px')\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\n\t\t\t\t\t.select('.pp-survival-chartLegends')\n\t\t\t\t\t.style('display', 'inline-block')\n\t\t\t\t\t.append('div')\n\t\t\t\t\t.style('margin-bottom', '30px')\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\n\t\t\t// message\n\t\t\tif (self.msg) {\n\t\t\t\tconst fontSize = s.axisTitleFontSize ? s.axisTitleFontSize - 2 : 15\n\t\t\t\tconst holder = div.select('.pp-survival-chartLegends').style('display', 'inline-block').append('div')\n\t\t\t\tholder\n\t\t\t\t\t.style('font-size', fontSize + 'px')\n\t\t\t\t\t.style('font-style', 'italic')\n\t\t\t\t\t.text(self.msg)\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\t// When there's no overlay term (maxSeriesLabelLen is 0), add extra padding to prevent\n\t\t// \"Number at risk\" text from overlapping with the config menu\n\t\tconst extraPaddingForNoOverlay = maxSeriesLabelLen === 0 ? s.atRiskNoOverlayExtraPadding : 0\n\t\tchart.atRiskLabelWidth = s.atRiskVisible\n\t\t\t? maxSeriesLabelLen * (s.axisTitleFontSize - 2) * 0.4 + s.atRiskLabelOffset + extraPaddingForNoOverlay\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').style('display', 'none').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\n\t\t\t\t.select('.pp-survival-chartLegends')\n\t\t\t\t.style('display', 'inline-block')\n\t\t\t\t.append('div')\n\t\t\t\t.style('margin-bottom', '30px')\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\n\t\t// message\n\t\tif (self.msg) {\n\t\t\tconst fontSize = s.axisTitleFontSize ? s.axisTitleFontSize - 2 : 15\n\t\t\tconst holder = div.select('.pp-survival-chartLegends').style('display', 'inline-block').append('div')\n\t\t\tholder\n\t\t\t\t.style('font-size', fontSize + 'px')\n\t\t\t\t.style('font-style', 'italic')\n\t\t\t\t.text(self.msg)\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', '5px')\n\n\t\t/* eslint-disable */\n\t\tconst [mainG, seriesesG, axisG, xAxis, yAxis, xTitle, yTitle, atRiskG, plotRect, medianSurvivalG] =\n\t\t\tgetSvgSubElems(svg)\n\t\t/* eslint-enable */\n\t\tconst xOffset = chart.atRiskLabelWidth + s.svgPadding.left + 10 //adding 10 avoids clipping of the svg when downloading\n\t\tmainG.attr('transform', 'translate(' + xOffset + ',' + s.svgPadding.top + ')')\n\t\tconst setSeriesDataID = series => {\n\t\t\treturn `sjpp-survival-series-${series.seriesLabel ?? series.seriesId ?? 'unknown'}`\n\t\t}\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\t\tserieses.exit().remove()\n\t\tserieses.attr('data-testid', setSeriesDataID).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.attr('data-testid', setSeriesDataID)\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\trenderMedianSurvival(medianSurvivalG, chart, s)\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, medianSurvivalG\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\tmedianSurvivalG = mainG.append('g').attr('class', 'sjpp-survival-median')\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\tmedianSurvivalG = mainG.select('.sjpp-survival-median')\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, medianSurvivalG]\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('data-testid', `sjpp-survival-ci-${series.seriesLabel ?? series.seriesId ?? 'unknown'}`)\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('data-testid', `sjpp-survival-curve-${data[0].seriesLabel ?? data[0].seriesId ?? 'unknown'}`)\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\tfunction renderMedianSurvival(g, chart, s) {\n\t\tg.selectAll('*').remove()\n\t\tif (!s.medianSurvivalVisible) return\n\n\t\tconst yMid = chart.yScale(0.5)\n\t\tconst yBottom = chart.yScale(0)\n\n\t\t// Find the first data point where survival <= 0.5 (median) for a series\n\t\tconst getMedianPoint = (series: any) => {\n\t\t\tconst data = s.maxTimeToEvent ? series.data.filter((d: any) => d.x <= s.maxTimeToEvent) : series.data\n\t\t\treturn (data as any[]).find((d: any) => d.y <= 0.5)\n\t\t}\n\n\t\t// Collect scaled x positions for all visible series that have a median\n\t\tconst medianScaledXs: number[] = []\n\t\tfor (const series of chart.visibleSerieses) {\n\t\t\tconst medianPoint = getMedianPoint(series)\n\t\t\tif (medianPoint) medianScaledXs.push(chart.xScale(medianPoint.x))\n\t\t}\n\n\t\tif (!medianScaledXs.length) return\n\n\t\t// Horizontal dashed line at 50% survival from y-axis to the rightmost median time\n\t\tg.append('line')\n\t\t\t.attr('x1', 0)\n\t\t\t.attr('y1', yMid)\n\t\t\t.attr('x2', Math.max(...medianScaledXs))\n\t\t\t.attr('y2', yMid)\n\t\t\t.attr('stroke', '#000')\n\t\t\t.attr('stroke-width', 1)\n\t\t\t.attr('stroke-dasharray', '4,4')\n\n\t\t// Vertical dashed line from 50% down to x-axis for each series with a median\n\t\tfor (const scaledX of medianScaledXs) {\n\t\t\tg.append('line')\n\t\t\t\t.attr('x1', scaledX)\n\t\t\t\t.attr('y1', yMid)\n\t\t\t\t.attr('x2', scaledX)\n\t\t\t\t.attr('y2', yBottom)\n\t\t\t\t.attr('stroke', '#000')\n\t\t\t\t.attr('stroke-width', 1)\n\t\t\t\t.attr('stroke-dasharray', '4,4')\n\t\t}\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) // this setting data will be dispatched after clicking on the Hide menu option\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 ',\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\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\tmedianSurvivalVisible: false,\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\tatRiskNoOverlayExtraPadding: 30, // Extra padding when there's no overlay term to prevent \"Number at risk\" text overlap\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,236 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DownloadMenu,
|
|
3
|
+
ListSamples,
|
|
4
|
+
filterJoin,
|
|
5
|
+
getFilterItemByTag,
|
|
6
|
+
renderTable
|
|
7
|
+
} from "./chunk-5VOPABBA.js";
|
|
8
|
+
import {
|
|
9
|
+
SINGLECELL_GENE_EXPRESSION
|
|
10
|
+
} from "./chunk-I6WR4CG7.js";
|
|
11
|
+
import {
|
|
12
|
+
niceNumLabels
|
|
13
|
+
} from "./chunk-NYRZNRG5.js";
|
|
14
|
+
|
|
15
|
+
// plots/violin.interactivity.js
|
|
16
|
+
function setInteractivity(self) {
|
|
17
|
+
self.getChartImages = function() {
|
|
18
|
+
const charts = [];
|
|
19
|
+
for (const [key, chart] of Object.entries(self.data.charts)) {
|
|
20
|
+
const title = self.getChartTitle(chart.chartId);
|
|
21
|
+
const name = `${self.config.term.term.name} ${title}`;
|
|
22
|
+
const chartDiv = chart.chartDiv;
|
|
23
|
+
charts.push({ name, svg: chartDiv.select("svg") });
|
|
24
|
+
}
|
|
25
|
+
return charts;
|
|
26
|
+
};
|
|
27
|
+
self.download = function(event) {
|
|
28
|
+
if (!self.state) return;
|
|
29
|
+
const name2svg = self.getChartImages();
|
|
30
|
+
const dm = new DownloadMenu(name2svg, self.config.term.term.name);
|
|
31
|
+
dm.show(event.clientX, event.clientY, event.target);
|
|
32
|
+
};
|
|
33
|
+
self.displayLabelClickMenu = function(t1, t2, plot, event) {
|
|
34
|
+
if (!t2) return;
|
|
35
|
+
if (self.config.term.term.type == SINGLECELL_GENE_EXPRESSION) return;
|
|
36
|
+
const label = t1.q.mode === "continuous" ? "term2" : "term";
|
|
37
|
+
const options = [];
|
|
38
|
+
if (this.app.getState().nav.header_mode !== "only_buttons")
|
|
39
|
+
options.push({
|
|
40
|
+
label: `Add filter: ${plot.label.split(",")[0]}`,
|
|
41
|
+
testid: "sjpp-violinLabOpt-addf",
|
|
42
|
+
callback: getAddFilterCallback(self, plot)
|
|
43
|
+
});
|
|
44
|
+
options.push({
|
|
45
|
+
label: `Hide: ${plot.label}`,
|
|
46
|
+
testid: "sjpp-violinLabOpt-hide",
|
|
47
|
+
callback: () => {
|
|
48
|
+
const term = self.config[label];
|
|
49
|
+
const isHidden = true;
|
|
50
|
+
self.app.dispatch({
|
|
51
|
+
type: "plot_edit",
|
|
52
|
+
id: self.id,
|
|
53
|
+
config: {
|
|
54
|
+
[label]: {
|
|
55
|
+
isAtomic: true,
|
|
56
|
+
term: term.term,
|
|
57
|
+
q: getUpdatedQfromClick(plot, term, isHidden)
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
const { samples } = self.config.controlLabels;
|
|
64
|
+
if (self.state.displaySampleIds && self.state.hasVerifiedToken) {
|
|
65
|
+
options.push({
|
|
66
|
+
label: `List ${samples}`,
|
|
67
|
+
testid: "sjpp-violinLabOpt-list",
|
|
68
|
+
callback: async () => {
|
|
69
|
+
const [start, end] = [self.data.min, self.data.max];
|
|
70
|
+
await self.callListSamples(event, plot, start, end);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
if (self.opts.allow2selectSamples) {
|
|
74
|
+
const ss = self.opts.allow2selectSamples;
|
|
75
|
+
options.push({
|
|
76
|
+
label: ss.buttonText,
|
|
77
|
+
callback: async () => {
|
|
78
|
+
const [start, end] = [self.data.min, self.data.max];
|
|
79
|
+
await self.selectSamples(plot, start, end, ss);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
self.displayMenu(event, options);
|
|
85
|
+
};
|
|
86
|
+
self.displayBrushMenu = function(t1, t2, self2, plot, event, scale, isH) {
|
|
87
|
+
const selection = event.selection;
|
|
88
|
+
const [start, end] = isH ? [scale.invert(selection[0]), scale.invert(selection[1])] : [scale.invert(selection[1]), scale.invert(selection[0])];
|
|
89
|
+
const options = [];
|
|
90
|
+
if (this.app.getState().nav.header_mode === "with_tabs")
|
|
91
|
+
options.push({
|
|
92
|
+
label: `Add filter`,
|
|
93
|
+
testid: "sjpp-violinBrushOpt-addf",
|
|
94
|
+
callback: getAddFilterCallback(self2, plot, start, end)
|
|
95
|
+
});
|
|
96
|
+
const { samples } = self2.config.controlLabels;
|
|
97
|
+
if (self2.state.displaySampleIds && self2.state.hasVerifiedToken) {
|
|
98
|
+
options.push({
|
|
99
|
+
label: `List ${samples}`,
|
|
100
|
+
testid: "sjpp-violinBrushOpt-list",
|
|
101
|
+
callback: async () => self2.callListSamples(event.sourceEvent, plot, start, end)
|
|
102
|
+
});
|
|
103
|
+
if (self2.opts.allow2selectSamples) {
|
|
104
|
+
const ss = self2.opts.allow2selectSamples;
|
|
105
|
+
options.push({
|
|
106
|
+
label: ss.buttonText,
|
|
107
|
+
callback: async () => {
|
|
108
|
+
await self2.selectSamples(plot, start, end, ss);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
self2.displayMenu(event.sourceEvent, options, start, end);
|
|
114
|
+
};
|
|
115
|
+
self.displayMenu = function(event, options, start, end) {
|
|
116
|
+
const tip = self.dom.clicktip.clear().show(event.clientX, event.clientY);
|
|
117
|
+
const isBrush = start != null && end != null;
|
|
118
|
+
if (isBrush) {
|
|
119
|
+
const [niceStart, niceEnd] = self.config.term.term.type == "integer" ? [Math.round(start), Math.round(end)] : niceNumLabels([start, end]);
|
|
120
|
+
tip.d.append("div").style("margin", "10px").text(`From ${niceStart} to ${niceEnd}`);
|
|
121
|
+
}
|
|
122
|
+
tip.d.append("div").selectAll("div").data(options).enter().append("div").attr("class", "sja_menuoption sja_sharp_border").attr("data-testid", (d) => d.testid).text((d) => d.label).on("click", async (event2, d) => {
|
|
123
|
+
if (event2.target._clicked) return;
|
|
124
|
+
event2.target._clicked = true;
|
|
125
|
+
event2.target.textContent = "Loading...";
|
|
126
|
+
await d.callback();
|
|
127
|
+
tip.hide();
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
self.selectSamples = async function(plot, start, end, ss) {
|
|
131
|
+
const ls = self.getSampleList(plot, start, end);
|
|
132
|
+
const data = await ls.getData();
|
|
133
|
+
const table = ls.setTableData(data);
|
|
134
|
+
const samples = table[2];
|
|
135
|
+
ss.callback({
|
|
136
|
+
samples: await self.app.vocabApi.convertSampleId(samples, ss.attributes),
|
|
137
|
+
source: ss.defaultSelectionLabel || `Selected from violin`
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
self.getSampleList = function(plot, start, end) {
|
|
141
|
+
const { term, term2, term0 } = self.config;
|
|
142
|
+
const bins = self.data.bins;
|
|
143
|
+
const rangeStart = start !== void 0 ? start : null;
|
|
144
|
+
const rangeStop = end !== void 0 ? end : null;
|
|
145
|
+
const ls = new ListSamples({
|
|
146
|
+
app: self.app,
|
|
147
|
+
termfilter: self.state.termfilter,
|
|
148
|
+
term,
|
|
149
|
+
term2,
|
|
150
|
+
term0,
|
|
151
|
+
plot,
|
|
152
|
+
bins,
|
|
153
|
+
start: rangeStart,
|
|
154
|
+
end: rangeStop
|
|
155
|
+
});
|
|
156
|
+
return ls;
|
|
157
|
+
};
|
|
158
|
+
self.callListSamples = async function(event, plot, start, end) {
|
|
159
|
+
const ls = self.getSampleList(plot, start, end);
|
|
160
|
+
const data = await ls.getData();
|
|
161
|
+
const [rows, columns] = ls.setTableData(data);
|
|
162
|
+
const tip = self.dom.sampletabletip;
|
|
163
|
+
tip.clear().show(event.clientX, event.clientY, false);
|
|
164
|
+
renderTable({
|
|
165
|
+
rows,
|
|
166
|
+
columns,
|
|
167
|
+
div: tip.d,
|
|
168
|
+
showLines: true,
|
|
169
|
+
maxHeight: "40vh",
|
|
170
|
+
resize: true,
|
|
171
|
+
dataTestId: "sjpp-listsampletable"
|
|
172
|
+
});
|
|
173
|
+
};
|
|
174
|
+
self.labelHideLegendClicking = function(t2, plot) {
|
|
175
|
+
self.dom.legendDiv.selectAll(".sjpp-htmlLegend").on("click", (event) => {
|
|
176
|
+
event.stopPropagation();
|
|
177
|
+
const d = event.target.__data__;
|
|
178
|
+
const termNum = t2?.term.type === "condition" || t2?.term.type === "samplelst" || t2?.term.type === "categorical" || (t2?.term.type === "float" || t2?.term.type === "integer") && self.config.term?.q.mode === "continuous" ? "term2" : "term";
|
|
179
|
+
const term = self.config[termNum];
|
|
180
|
+
if (t2) {
|
|
181
|
+
for (const key of Object.keys(term?.q?.hiddenValues)) {
|
|
182
|
+
if (d.text === key) {
|
|
183
|
+
delete term.q.hiddenValues[key];
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
const isHidden = false;
|
|
187
|
+
self.app.dispatch({
|
|
188
|
+
type: "plot_edit",
|
|
189
|
+
id: self.id,
|
|
190
|
+
config: {
|
|
191
|
+
[termNum]: {
|
|
192
|
+
isAtomic: true,
|
|
193
|
+
term: term.term,
|
|
194
|
+
q: getUpdatedQfromClick(plot, term, isHidden)
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}).on("mouseover", (event) => {
|
|
200
|
+
const q = event.target.__data__;
|
|
201
|
+
if (q === void 0) return;
|
|
202
|
+
if (q.isHidden === true && q.isClickable === true) {
|
|
203
|
+
self.dom.hovertip.clear().show(event.clientX, event.clientY).d.append("span").text("Click to unhide plot");
|
|
204
|
+
}
|
|
205
|
+
}).on("mouseout", function() {
|
|
206
|
+
self.dom.hovertip.hide();
|
|
207
|
+
});
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
function getAddFilterCallback(self, plot, rangeStart, rangeStop) {
|
|
211
|
+
const ls = self.getSampleList(plot, rangeStart, rangeStop);
|
|
212
|
+
return () => {
|
|
213
|
+
const filterUiRoot = getFilterItemByTag(self.state.termfilter.filter, "filterUiRoot");
|
|
214
|
+
const filter = filterJoin([filterUiRoot, ls.tvslst]);
|
|
215
|
+
filter.tag = "filterUiRoot";
|
|
216
|
+
self.app.dispatch({
|
|
217
|
+
type: "filter_replace",
|
|
218
|
+
filter
|
|
219
|
+
});
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
function getUpdatedQfromClick(plot, term, isHidden = false) {
|
|
223
|
+
const label = plot.label;
|
|
224
|
+
const valueId = term?.term?.values ? term?.term?.values?.[label]?.label : label;
|
|
225
|
+
const id = !valueId ? label : valueId;
|
|
226
|
+
const q = term.q;
|
|
227
|
+
if (!q.hiddenValues) q.hiddenValues = {};
|
|
228
|
+
if (isHidden) q.hiddenValues[id] = 1;
|
|
229
|
+
else delete q.hiddenValues[id];
|
|
230
|
+
return q;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
export {
|
|
234
|
+
setInteractivity
|
|
235
|
+
};
|
|
236
|
+
//# sourceMappingURL=chunk-B5B3LZB3.js.map
|