@sjcrh/proteinpaint-client 2.203.0 → 2.203.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/2dmaf-6CEBP4SA.js +1366 -0
- package/dist/AIProjectAdmin-2CKKFC3A.js +951 -0
- package/dist/AggregateMatrix-5TBUMFE5.js +665 -0
- package/dist/AppHeader-5YBPWF44.js +829 -0
- package/dist/BoxPlot-UOJS5SJV.js +1210 -0
- package/dist/CorrelationVolcano-KX6JPZMT.js +613 -0
- package/dist/Cuminc-TLOOLZWR.js +1208 -0
- package/dist/DE-HUQLQ2Z3.js +87 -0
- package/dist/DEinput-WWUISAF2.js +404 -0
- package/dist/DifferentialAnalysis-6DTAGCEY.js +237 -0
- package/dist/Disco-P6ZLPYLF.js +3388 -0
- package/dist/Disco.UI-WGTMAFK2.js +242 -0
- package/dist/DmrPlot-3FRU5KUK.js +636 -0
- package/dist/GB-NWOBARL3.js +1390 -0
- package/dist/GSEA-DEEUAAMI.js +850 -0
- package/dist/GeneExpInput-6QWGEAFV.js +361 -0
- package/dist/Geomap-6HT2B7RH.js +83 -0
- package/dist/HicApp-PCNOUULF.js +2244 -0
- package/dist/IDCViewer-H3QPXVM3.js +10811 -0
- package/dist/NumBinaryEditor-IU6OLMKN.js +278 -0
- package/dist/NumBinaryEditor.unit.spec-YUPUILIV.js +311 -0
- package/dist/NumContEditor-KFDA76QN.js +104 -0
- package/dist/NumContEditor.unit.spec-QBOT5QHU.js +163 -0
- package/dist/NumCustomBinEditor-EOSTEXLB.js +32 -0
- package/dist/NumCustomBinEditor.unit.spec-B46XWFYH.js +396 -0
- package/dist/NumDiscreteEditor-Y4EAADXC.js +169 -0
- package/dist/NumDiscreteEditor.unit.spec-SJGHLWSM.js +232 -0
- package/dist/NumRegularBinEditor-3BNG7DIN.js +32 -0
- package/dist/NumRegularBinEditor.unit.spec-KM45QXXG.js +277 -0
- package/dist/NumSplineEditor-K4KPDC4S.js +209 -0
- package/dist/NumSplineEditor.unit.spec-TKQP5XTS.js +223 -0
- package/dist/NumericDensity-Z6JFVN3D.js +32 -0
- package/dist/NumericDensity.unit.spec-YEYBVLEP.js +417 -0
- package/dist/NumericHandler-ITT6HMPN.js +33 -0
- package/dist/NumericHandler.unit.spec-QVONMXY4.js +213 -0
- package/dist/ProteomeInput-PRS3DEMZ.js +387 -0
- package/dist/Regression-LJJJBBT6.js +1413 -0
- package/dist/Regression-LJJJBBT6.js.map +7 -0
- package/dist/RunChart2-AMM2JFF5.js +749 -0
- package/dist/SC-F7IE66VZ.js +1106 -0
- package/dist/Violin-RJ6OJZ4F.js +1073 -0
- package/dist/Volcano-BJA5HN5Y.js +1414 -0
- package/dist/WSIViewer-RJZGRUIR.js +26194 -0
- package/dist/Wsi-DXP6KOQA.js +232 -0
- package/dist/WsiSamplesPlot-2IAWV2B6.js +159 -0
- package/dist/adSandbox-RGWOIV3W.js +32 -0
- package/dist/animatedBubbleChart-J4Q2NAEW.js +546 -0
- package/dist/app-3QXNR4VG.js +31 -0
- package/dist/app-B4B7YNP3.js +41 -0
- package/dist/app.js +12 -12
- package/dist/bam-LRUMN45P.js +875 -0
- package/dist/barchart-L2G6GEHK.js +41 -0
- package/dist/barchart2-DWNVAZAJ.js +308 -0
- package/dist/block-TVEVAXNP.js +6248 -0
- package/dist/block.init-YOHAKPRI.js +32 -0
- package/dist/block.mds.expressionrank-PU6JH4W5.js +353 -0
- package/dist/block.mds.geneboxplot-WYYFDNE3.js +822 -0
- package/dist/block.mds.junction-4WCTL7Y4.js +1538 -0
- package/dist/block.mds.svcnv-MR3VCYUW.js +6795 -0
- package/dist/block.svg-LR3Y4ZO7.js +158 -0
- package/dist/block.tk.aicheck-A5AWKJZI.js +277 -0
- package/dist/block.tk.ase-AQBBAQEH.js +359 -0
- package/dist/block.tk.bam-QBTA2O3V.js +1900 -0
- package/dist/block.tk.bedgraphdot-4ALZG2MY.js +378 -0
- package/dist/block.tk.bigwig.ui-32W6XW37.js +205 -0
- package/dist/block.tk.hicstraw-PKBHBAG2.js +817 -0
- package/dist/block.tk.junction-AO5CXUCU.js +2357 -0
- package/dist/block.tk.junction.textmatrixui-RORVUIPI.js +193 -0
- package/dist/block.tk.ld-TNBSR4FT.js +93 -0
- package/dist/block.tk.menu-QDJO54J5.js +1023 -0
- package/dist/block.tk.pgv-6222WWYR.js +937 -0
- package/dist/brainImaging-2TPE7MXB.js +426 -0
- package/dist/brainImaging-2TPE7MXB.js.map +7 -0
- package/dist/brainRegions-KTFH6DE2.js +215 -0
- package/dist/bubbleHeatmap-LNXZLFY6.js +377 -0
- package/dist/cellTypeBubbleHeatmap-SRHUNX3S.js +277 -0
- package/dist/chunk-3TXVDBGN.js +626 -0
- package/dist/chunk-4HLHKBHP.js +274 -0
- package/dist/chunk-5GG7Q2ZG.js +397 -0
- package/dist/chunk-5HVAVJKW.js +518 -0
- package/dist/chunk-5HVAVJKW.js.map +7 -0
- package/dist/chunk-5PMFCQKC.js +98 -0
- package/dist/chunk-67URJYN7.js +84 -0
- package/dist/chunk-67URJYN7.js.map +7 -0
- package/dist/chunk-6AKSOLBX.js +5071 -0
- package/dist/chunk-6AKSOLBX.js.map +7 -0
- package/dist/chunk-6X7PP7A4.js +2126 -0
- package/dist/chunk-A3EDLRUN.js +54 -0
- package/dist/chunk-ACXFPMJP.js +14 -0
- package/dist/chunk-ASRW3UJ5.js +102 -0
- package/dist/chunk-BBILSUDX.js +176 -0
- package/dist/chunk-BOWI37X2.js +100 -0
- package/dist/chunk-BVA26EFK.js +368 -0
- package/dist/chunk-D5J57ENI.js +797 -0
- package/dist/chunk-D5PX2UDG.js +23878 -0
- package/dist/chunk-D5PX2UDG.js.map +7 -0
- package/dist/chunk-DAGONMWK.js +261 -0
- package/dist/chunk-DAGONMWK.js.map +7 -0
- package/dist/chunk-DXLO4OAB.js +357 -0
- package/dist/chunk-DXLO4OAB.js.map +7 -0
- package/dist/chunk-E5BFGDLA.js +292 -0
- package/dist/chunk-ECISCOPF.js +134 -0
- package/dist/chunk-ECLUUJVE.js +158 -0
- package/dist/chunk-EGDQ5I54.js +272 -0
- package/dist/chunk-ELNVTA7O.js +56 -0
- package/dist/chunk-EO6M3LY3.js +339 -0
- package/dist/chunk-EO6M3LY3.js.map +7 -0
- package/dist/chunk-F4PMOAQK.js +494 -0
- package/dist/chunk-FISQTHD4.js +2327 -0
- package/dist/chunk-FXT2XM4E.js +1337 -0
- package/dist/chunk-FXT2XM4E.js.map +7 -0
- package/dist/chunk-HIWTGMTE.js +1721 -0
- package/dist/chunk-HIWTGMTE.js.map +7 -0
- package/dist/chunk-HL6GJIOH.js +1254 -0
- package/dist/chunk-IGZAOCTU.js +55 -0
- package/dist/chunk-JMDJI7KM.js +6360 -0
- package/dist/chunk-JQVA264Z.js +49 -0
- package/dist/chunk-JRF7SRLB.js +2784 -0
- package/dist/chunk-KLWSW6CC.js +203 -0
- package/dist/chunk-KNNSOOTG.js +194 -0
- package/dist/chunk-KTPXQH2N.js +170 -0
- package/dist/chunk-LGKXSWY4.js +276 -0
- package/dist/chunk-LP2GIXVK.js +4274 -0
- package/dist/chunk-M2ZZL5EV.js +2669 -0
- package/dist/chunk-M2ZZL5EV.js.map +7 -0
- package/dist/chunk-MBHERRJR.js +302 -0
- package/dist/chunk-MLYQDJUQ.js +480 -0
- package/dist/chunk-NBGDLLMX.js +446 -0
- package/dist/chunk-OPMMU6DQ.js +183 -0
- package/dist/chunk-OPMMU6DQ.js.map +7 -0
- package/dist/chunk-P3JEXVBT.js +50 -0
- package/dist/chunk-PZPPJY4K.js +34 -0
- package/dist/chunk-Q6JF4ZLT.js +141 -0
- package/dist/chunk-QF5IH7PC.js +263 -0
- package/dist/chunk-QJ6SO7CF.js +465 -0
- package/dist/chunk-QQUOVIOM.js +2899 -0
- package/dist/chunk-R3OBOAOF.js +240 -0
- package/dist/chunk-SNCZRDS5.js +557 -0
- package/dist/chunk-SNCZRDS5.js.map +7 -0
- package/dist/chunk-SPDNUC76.js +70 -0
- package/dist/chunk-T3663ZQL.js +37 -0
- package/dist/chunk-TSK4ZTFK.js +340 -0
- package/dist/chunk-USW6WRDZ.js +217 -0
- package/dist/chunk-WBMYHNKH.js +299 -0
- package/dist/chunk-X46LAU4Q.js +187 -0
- package/dist/chunk-XE6E526E.js +129 -0
- package/dist/chunk-XWCWBHLB.js +123 -0
- package/dist/chunk-YCECQV3T.js +160 -0
- package/dist/chunk-YROOKO3Q.js +1954 -0
- package/dist/chunk-YROOKO3Q.js.map +7 -0
- package/dist/chunk-Z4NADGZX.js +243 -0
- package/dist/chunk-Z53KOPRJ.js +102 -0
- package/dist/cohort-U7M6Q2UX.js +69 -0
- package/dist/condition-EGAV2PMJ.js +326 -0
- package/dist/controls-PTMYWUZV.js +33 -0
- package/dist/controls.config-DOA6PTP2.js +33 -0
- package/dist/correlation-Y3EL6GB7.js +94 -0
- package/dist/customdata.inputui-4NDDG6FL.js +283 -0
- package/dist/dataDownload-EQGUAOK2.js +328 -0
- package/dist/databrowser.ui-ABGOJUWQ.js +424 -0
- package/dist/dictionary-YOLLEDE5.js +112 -0
- package/dist/dnaMethylation-JZT63UHO.js +32 -0
- package/dist/dnaMethylation.integration.spec-EATCABJW.js +197 -0
- package/dist/dofetch-YNBIUFV5.js +48 -0
- package/dist/e2pca-RD6COCRL.js +343 -0
- package/dist/ep-BAI7WUET.js +1248 -0
- package/dist/expclust.gdc.spec-LKV2CQA5.js +301 -0
- package/dist/facet-X3SXQIAC.js +518 -0
- package/dist/gb-K324K7XB.js +80 -0
- package/dist/geneExpClustering-BJD5U3KG.js +243 -0
- package/dist/geneExpression-2TK3XLZ5.js +310 -0
- package/dist/geneExpression-F6NRTHZ4.js +32 -0
- package/dist/geneExpression.unit.spec-IFZN3J6A.js +96 -0
- package/dist/geneORA-DUEP735U.js +272 -0
- package/dist/geneRanking-LURDNT7L.js +547 -0
- package/dist/geneVariant-EAVCWQAZ.js +35 -0
- package/dist/geneVariant-IZTFYAG6.js +284 -0
- package/dist/geneVariant-IZTFYAG6.js.map +7 -0
- package/dist/geneVariant.integration.spec-LHL4ERFO.js +192 -0
- package/dist/genefusion.ui-4T5R7DT7.js +302 -0
- package/dist/geneset-3PWXPBG2.js +202 -0
- package/dist/genomeBrowser.spec-5SEN7R2P.js +275 -0
- package/dist/grin2-EXBG7TMS.js +1136 -0
- package/dist/grin2-XIXVFVWO.js +69 -0
- package/dist/hierCluster-5XQIWXAY.js +57 -0
- package/dist/hierCluster-I4TAQWPF.js +53 -0
- package/dist/hierCluster.config-T7HVAWES.js +34 -0
- package/dist/hierCluster.integration.spec-XWX43K4D.js +482 -0
- package/dist/hierCluster.interactivity-MYIDHFSL.js +48 -0
- package/dist/hierCluster.renderers-YRXA5ZUK.js +19 -0
- package/dist/imagePlot-4JQB6JUG.js +155 -0
- package/dist/importPlot-D3MXCCLN.js +8 -0
- package/dist/isoformExpression-WNGGUVIZ.js +34 -0
- package/dist/isoformExpression.unit.spec-NVJ5TIKM.js +236 -0
- package/dist/junction-O7N57JE3.js +35 -0
- package/dist/junction.unit.spec-Z63DRTRR.js +181 -0
- package/dist/launch.adhoc-MBDRXD3B.js +36 -0
- package/dist/leftlabel.sample-IG6FOQ26.js +257 -0
- package/dist/lollipop-ZUYBLPGN.js +165 -0
- package/dist/maf-QOS5LURG.js +454 -0
- package/dist/maftimeline-FEHP2J55.js +586 -0
- package/dist/matrix-BG4J4RXA.js +57 -0
- package/dist/matrix-PX4LWTGN.js +52 -0
- package/dist/matrix.cells-PTIDQVCI.js +26 -0
- package/dist/matrix.config-NHW7BLIE.js +35 -0
- package/dist/matrix.data-FMIQRXOA.js +23 -0
- package/dist/matrix.dom-4S2UYJOU.js +11 -0
- package/dist/matrix.groups-QMID5XAO.js +25 -0
- package/dist/matrix.integration.spec-H6T7KP5R.js +3066 -0
- package/dist/matrix.interactivity-WQUO25HB.js +36 -0
- package/dist/matrix.layout-CTPVZZ34.js +38 -0
- package/dist/matrix.legend-K6EYUN6L.js +20 -0
- package/dist/matrix.renderers-5DIAUY6R.js +32 -0
- package/dist/matrix.serieses-LRMN2J52.js +19 -0
- package/dist/matrix.sort-RGAGEA6Z.js +25 -0
- package/dist/matrix.sort.unit.spec-RGICZZJL.js +466 -0
- package/dist/matrix.sorterUi.unit.spec-45QPEGWE.js +336 -0
- package/dist/matrix.unit.spec-TMRZM5DU.js +148 -0
- package/dist/matrix.unit.spec-TMRZM5DU.js.map +7 -0
- package/dist/mavb-VEIVB62L.js +726 -0
- package/dist/mds.fimo-BG4LTWFB.js +512 -0
- package/dist/mds.samplescatterplot-PWADJZ2J.js +1544 -0
- package/dist/mds.survivalplot-BX4HZ23K.js +476 -0
- package/dist/multivalue-OZALSBFW.js +82 -0
- package/dist/numericDictTermCluster-7PGJ7KV4.js +63 -0
- package/dist/oncomatrix-Q2EQZPLS.js +289 -0
- package/dist/oncomatrix.spec-YEQOQRPW.js +442 -0
- package/dist/plot.2dvaf-NJSB3HNH.js +371 -0
- package/dist/plot.app-AEUR6XGI.js +35 -0
- package/dist/plot.barplot-OXN2P5KL.js +96 -0
- package/dist/plot.boxplot-2KHEVVFE.js +145 -0
- package/dist/plot.brainImaging-JWDX4BZG.js +51 -0
- package/dist/plot.disco-LUFC5GGC.js +99 -0
- package/dist/plot.ssgq-FMM3IRNA.js +133 -0
- package/dist/plot.vaf2cov-K5TAQUC5.js +252 -0
- package/dist/plot.wsi-CNQCNZ4Z.js +36 -0
- package/dist/polar2-AB6SVYRS.js +231 -0
- package/dist/profileForms-AIEHZ4GC.js +933 -0
- package/dist/profilePlot-PZDFGXKZ.js +48 -0
- package/dist/proteinView-7GWHQYXC.js +1561 -0
- package/dist/proteomeCohortCompare-BTN4HHFL.js +779 -0
- package/dist/proteomeCohortCompare-BTN4HHFL.js.map +7 -0
- package/dist/pseudbulk.unit.spec-NFT4VNTI.js +85 -0
- package/dist/pseudobulk-WDGWTXW4.js +34 -0
- package/dist/qualitative-PZYJENE7.js +37 -0
- package/dist/radar2-QHRGH3YS.js +326 -0
- package/dist/radarFacility2-2JD26FL6.js +334 -0
- package/dist/render-YA4Z56LT.js +32 -0
- package/dist/report-2NUKFJTF.js +216 -0
- package/dist/sampleView-2XVPJTVR.js +42 -0
- package/dist/samplelst-DMILFDT5.js +105 -0
- package/dist/samplematrix-LYA5XTUM.js +2192 -0
- package/dist/sc-CM2C34MN.js +80 -0
- package/dist/scatter-C3CH3HTF.js +879 -0
- package/dist/scatter-GO6LV6NY.js +87 -0
- package/dist/selectGenomeWithTklst-5C7UBTGZ.js +128 -0
- package/dist/singleCellCellType-EZYESBVZ.js +32 -0
- package/dist/singleCellCellType.unit.spec-DB6FM4XR.js +153 -0
- package/dist/singleCellGeneExpression-DZLEFPW4.js +32 -0
- package/dist/singleCellGeneExpression.unit.spec-ZTBK3V43.js +147 -0
- package/dist/singleCellPlot-VF4TZ4FT.js +48 -0
- package/dist/singlecell-2MHROPBN.js +1565 -0
- package/dist/singlecell-GPAFNOUZ.js +80 -0
- package/dist/snp-K4EAEVW4.js +32 -0
- package/dist/snp.unit.spec-BUVQLVOY.js +170 -0
- package/dist/snplocus-GEVISN6Z.js +202 -0
- package/dist/spliceevent.a53ss.diagram-5UPWNAZF.js +145 -0
- package/dist/spliceevent.exonskip.diagram-7TKAQURC.js +277 -0
- package/dist/spliceevent.noeventdiagram-CDXZLR3Z.js +454 -0
- package/dist/ssGSEA-NMCJUQXT.js +32 -0
- package/dist/ssGSEA.unit.spec-3FQALTPQ.js +82 -0
- package/dist/stattable-2RXQPWKK.js +116 -0
- package/dist/studyCatalog-WWFCTTX7.js +377 -0
- package/dist/studyCatalog-WWFCTTX7.js.map +7 -0
- package/dist/summarizeCnvGeneexp-4BQS5AFM.js +157 -0
- package/dist/summarizeGeneexpSurvival-HTBZQFB5.js +104 -0
- package/dist/summarizeMutationCnv-XUWZGPCM.js +158 -0
- package/dist/summarizeMutationDiagnosis-QUJX42TO.js +34 -0
- package/dist/summarizeMutationSurvival-3R47TTR6.js +93 -0
- package/dist/summary-6UUB63QR.js +41 -0
- package/dist/summary.integration.spec-JJDE6SRV.js +408 -0
- package/dist/summaryInput-JG4AW6FW.js +225 -0
- package/dist/sunburst-YKB42RZX.js +277 -0
- package/dist/survival-3IFFTDQA.js +52 -0
- package/dist/survival-HOFNJENX.js +1236 -0
- package/dist/survival.integration.spec-7YZYKEUW.js +612 -0
- package/dist/survival.integration.spec-7YZYKEUW.js.map +7 -0
- package/dist/svgraph-WFEY4ZIZ.js +1381 -0
- package/dist/svmr-44EIX7YD.js +3836 -0
- package/dist/table-6MKVJUNC.js +196 -0
- package/dist/termCollection-6JBVQL6Y.js +251 -0
- package/dist/termCollection-TTELZVC5.js +32 -0
- package/dist/termCollection.unit.spec-6Z7X646L.js +298 -0
- package/dist/termCollectionFractionSelection-5DVIJBM5.js +41 -0
- package/dist/termCollectionFractionSelection.unit.spec-3HIM5BIF.js +187 -0
- package/dist/tk-HSYWJCGQ.js +40 -0
- package/dist/tk-PNOVG2XS.js +1120 -0
- package/dist/tp.ui-COBBSUPB.js +1453 -0
- package/dist/tvs.dt-35AKURFI.js +33 -0
- package/dist/tvs.dtcnv.categorical-3EHXYROL.js +34 -0
- package/dist/tvs.dtcnv.continuous-AXQ2GU6S.js +66 -0
- package/dist/tvs.dtfusion-PLJIMPNX.js +34 -0
- package/dist/tvs.dtitd-JS6RFBV5.js +34 -0
- package/dist/tvs.dtsnvindel-MDEM5MPT.js +34 -0
- package/dist/tvs.dtsv-OU756YLO.js +34 -0
- package/dist/tvs.samplelst-5NDICES4.js +98 -0
- package/dist/tvs.termCollection-5URPDPH6.js +123 -0
- package/dist/vocabulary-CHCVMPK5.js +35 -0
- package/dist/wsi.direct-JSKV4H4X.js +75 -0
- package/package.json +4 -4
- package/dist/2dmaf-I4HBWRNQ.js +0 -1366
- package/dist/AIProjectAdmin-SZYSG7HR.js +0 -951
- package/dist/AggregateMatrix-U7HHALFR.js +0 -665
- package/dist/AppHeader-O4RBZQZF.js +0 -829
- package/dist/BoxPlot-NOXWAGX6.js +0 -1210
- package/dist/CorrelationVolcano-IJ5UT6N5.js +0 -613
- package/dist/Cuminc-NGUDAOAD.js +0 -1208
- package/dist/DE-MIAHOI5J.js +0 -87
- package/dist/DEinput-FYBSL2ER.js +0 -404
- package/dist/DifferentialAnalysis-I6S5YQXY.js +0 -237
- package/dist/Disco-VLUBOZDC.js +0 -3388
- package/dist/Disco.UI-QQYWQEW7.js +0 -242
- package/dist/DmrPlot-DFOBEN7A.js +0 -636
- package/dist/GB-5FSXJMEZ.js +0 -1390
- package/dist/GSEA-JISHQOVY.js +0 -850
- package/dist/GeneExpInput-5YEX22VD.js +0 -361
- package/dist/Geomap-YVF6YBK5.js +0 -83
- package/dist/HicApp-ZCMOOKTY.js +0 -2244
- package/dist/IDCViewer-5ZNTAEUG.js +0 -10811
- package/dist/NumBinaryEditor-BEF5YCKI.js +0 -278
- package/dist/NumBinaryEditor.unit.spec-GCYZGHB2.js +0 -311
- package/dist/NumContEditor-TUXPB6YJ.js +0 -104
- package/dist/NumContEditor.unit.spec-5CMHHWIP.js +0 -163
- package/dist/NumCustomBinEditor-HS7RSGFV.js +0 -32
- package/dist/NumCustomBinEditor.unit.spec-MM3JJXT4.js +0 -396
- package/dist/NumDiscreteEditor-ZL7PP6ZT.js +0 -169
- package/dist/NumDiscreteEditor.unit.spec-OEWX2KJC.js +0 -232
- package/dist/NumRegularBinEditor-YBXK7YV6.js +0 -32
- package/dist/NumRegularBinEditor.unit.spec-FVHN4J5L.js +0 -277
- package/dist/NumSplineEditor-VN4XBTTI.js +0 -209
- package/dist/NumSplineEditor.unit.spec-AI642DWP.js +0 -223
- package/dist/NumericDensity-2KTY7DGH.js +0 -32
- package/dist/NumericDensity.unit.spec-6EA72A24.js +0 -417
- package/dist/NumericHandler-62EN6AD3.js +0 -33
- package/dist/NumericHandler.unit.spec-FXOJ2L2L.js +0 -213
- package/dist/ProteomeInput-MBBDXO2Z.js +0 -387
- package/dist/Regression-OQETMZPL.js +0 -1408
- package/dist/Regression-OQETMZPL.js.map +0 -7
- package/dist/RunChart2-RHZFHH4M.js +0 -749
- package/dist/SC-FAQXOHO4.js +0 -1106
- package/dist/Violin-2A3ICNBP.js +0 -1073
- package/dist/Volcano-X5KGHLHZ.js +0 -1414
- package/dist/WSIViewer-F2SD6LLP.js +0 -26194
- package/dist/Wsi-KAFAC3Q5.js +0 -232
- package/dist/WsiSamplesPlot-VKPMLDZI.js +0 -159
- package/dist/adSandbox-QKG5EA23.js +0 -32
- package/dist/animatedBubbleChart-ES62XWMN.js +0 -546
- package/dist/app-2HLLOBTD.js +0 -41
- package/dist/app-GJL6K6V4.js +0 -31
- package/dist/bam-DCPAAVPX.js +0 -875
- package/dist/barchart-DCVGCEZO.js +0 -41
- package/dist/barchart2-5X57VSIN.js +0 -308
- package/dist/block-XYSUTBXJ.js +0 -6248
- package/dist/block.init-5B27QKPU.js +0 -32
- package/dist/block.mds.expressionrank-Z7BGGPZ7.js +0 -353
- package/dist/block.mds.geneboxplot-4U4UZH2J.js +0 -822
- package/dist/block.mds.junction-ZPCUEQZJ.js +0 -1538
- package/dist/block.mds.svcnv-OGGPBOL2.js +0 -6795
- package/dist/block.svg-BWGAMNDS.js +0 -158
- package/dist/block.tk.aicheck-XHHW7WST.js +0 -277
- package/dist/block.tk.ase-BZ2IL3CQ.js +0 -359
- package/dist/block.tk.bam-WRHOOWXN.js +0 -1900
- package/dist/block.tk.bedgraphdot-B536STRA.js +0 -378
- package/dist/block.tk.bigwig.ui-K5X3BSQC.js +0 -205
- package/dist/block.tk.hicstraw-OYOKZ45W.js +0 -817
- package/dist/block.tk.junction-S5JMMMR6.js +0 -2357
- package/dist/block.tk.junction.textmatrixui-OLZY5BYR.js +0 -193
- package/dist/block.tk.ld-KINDO5UU.js +0 -93
- package/dist/block.tk.menu-3FNBVZ7J.js +0 -1023
- package/dist/block.tk.pgv-UHDY3T4G.js +0 -937
- package/dist/brainImaging-KWFRX3XB.js +0 -422
- package/dist/brainImaging-KWFRX3XB.js.map +0 -7
- package/dist/brainRegions-YI7K4OVE.js +0 -215
- package/dist/bubbleHeatmap-EQ44CSG5.js +0 -377
- package/dist/cellTypeBubbleHeatmap-O3KL2YBF.js +0 -277
- package/dist/chunk-254KEDDH.js +0 -129
- package/dist/chunk-25RPYQRT.js +0 -203
- package/dist/chunk-2OEMKKLP.js +0 -272
- package/dist/chunk-34AV6DED.js +0 -299
- package/dist/chunk-3UOSDVFJ.js +0 -1710
- package/dist/chunk-3UOSDVFJ.js.map +0 -7
- package/dist/chunk-4GN3CSDT.js +0 -98
- package/dist/chunk-4KUGV44F.js +0 -397
- package/dist/chunk-4WF3XDQP.js +0 -220
- package/dist/chunk-4WF3XDQP.js.map +0 -7
- package/dist/chunk-55PGOBTR.js +0 -123
- package/dist/chunk-5RHE36DQ.js +0 -37
- package/dist/chunk-6456HESK.js +0 -160
- package/dist/chunk-6THPWBBU.js +0 -102
- package/dist/chunk-6ZLCBVJA.js +0 -54
- package/dist/chunk-7AYGTMED.js +0 -182
- package/dist/chunk-7AYGTMED.js.map +0 -7
- package/dist/chunk-7ROMS7YT.js +0 -626
- package/dist/chunk-7UFK4GVI.js +0 -263
- package/dist/chunk-7UFK4GVI.js.map +0 -7
- package/dist/chunk-ALXSSRGI.js +0 -263
- package/dist/chunk-AT7HWXMW.js +0 -302
- package/dist/chunk-AVR4LFOO.js +0 -194
- package/dist/chunk-BY5B5BM5.js +0 -170
- package/dist/chunk-BZ36NJHA.js +0 -797
- package/dist/chunk-BZKHE26Z.js +0 -340
- package/dist/chunk-CBRZIMNF.js +0 -217
- package/dist/chunk-CTO247UZ.js +0 -5069
- package/dist/chunk-CTO247UZ.js.map +0 -7
- package/dist/chunk-D27C6HZW.js +0 -50
- package/dist/chunk-D73PJ4WC.js +0 -512
- package/dist/chunk-D73PJ4WC.js.map +0 -7
- package/dist/chunk-DLXMO6EK.js +0 -494
- package/dist/chunk-EK7CQC3P.js +0 -100
- package/dist/chunk-FCMHDCMO.js +0 -56
- package/dist/chunk-GJFG2MML.js +0 -1254
- package/dist/chunk-GQQ4R6BI.js +0 -24060
- package/dist/chunk-GQQ4R6BI.js.map +0 -7
- package/dist/chunk-HENLCRVM.js +0 -2126
- package/dist/chunk-I56CSICA.js +0 -292
- package/dist/chunk-I5KBI5PC.js +0 -274
- package/dist/chunk-IHDVUZFC.js +0 -1947
- package/dist/chunk-IHDVUZFC.js.map +0 -7
- package/dist/chunk-IUA3PSTK.js +0 -6360
- package/dist/chunk-J3TIXBCS.js +0 -276
- package/dist/chunk-JJHMFHRC.js +0 -257
- package/dist/chunk-JJHMFHRC.js.map +0 -7
- package/dist/chunk-JPQSDB2H.js +0 -102
- package/dist/chunk-LIMDUEVX.js +0 -1336
- package/dist/chunk-LIMDUEVX.js.map +0 -7
- package/dist/chunk-MECQLU4J.js +0 -243
- package/dist/chunk-MEJMWIBD.js +0 -187
- package/dist/chunk-MT5MHYL3.js +0 -480
- package/dist/chunk-NVH5I6EP.js +0 -176
- package/dist/chunk-OGQMELRU.js +0 -14
- package/dist/chunk-PBRW6QLS.js +0 -4274
- package/dist/chunk-PPJMCBVT.js +0 -82
- package/dist/chunk-PPJMCBVT.js.map +0 -7
- package/dist/chunk-RRI3RX4A.js +0 -2669
- package/dist/chunk-RRI3RX4A.js.map +0 -7
- package/dist/chunk-S2D6GH6D.js +0 -465
- package/dist/chunk-SACNULB3.js +0 -368
- package/dist/chunk-SEJGXC2L.js +0 -141
- package/dist/chunk-TMZZ4Z7L.js +0 -34
- package/dist/chunk-TRWFL52W.js +0 -446
- package/dist/chunk-VP2FPPLA.js +0 -70
- package/dist/chunk-VTYMSJGY.js +0 -49
- package/dist/chunk-WEF6INPI.js +0 -2784
- package/dist/chunk-WO4CL5JL.js +0 -240
- package/dist/chunk-WVVH56ZU.js +0 -2327
- package/dist/chunk-WZTZJNSG.js +0 -2899
- package/dist/chunk-XPSUKXMF.js +0 -556
- package/dist/chunk-XPSUKXMF.js.map +0 -7
- package/dist/chunk-XXITHNR2.js +0 -134
- package/dist/chunk-YCLNEB4L.js +0 -158
- package/dist/chunk-ZPFN3CYR.js +0 -55
- package/dist/cohort-JCMVMOBQ.js +0 -69
- package/dist/condition-SHRWEMG7.js +0 -326
- package/dist/controls-EKIHLQS6.js +0 -33
- package/dist/controls.config-WSVX6UC6.js +0 -33
- package/dist/correlation-ALFFZLKD.js +0 -94
- package/dist/customdata.inputui-L2UAIU6I.js +0 -283
- package/dist/dataDownload-73N5364T.js +0 -328
- package/dist/databrowser.ui-NTOGXDYE.js +0 -424
- package/dist/dictionary-CUAU2X6Q.js +0 -112
- package/dist/dnaMethylation-AGWAGXVD.js +0 -32
- package/dist/dnaMethylation.integration.spec-K22XXOU4.js +0 -197
- package/dist/dofetch-BVJ77SP7.js +0 -48
- package/dist/e2pca-4HIJWLSC.js +0 -343
- package/dist/ep-U4RGH62P.js +0 -1248
- package/dist/expclust.gdc.spec-JJGGQDQK.js +0 -301
- package/dist/facet-NNUPVXCG.js +0 -518
- package/dist/gb-2MYXJEMY.js +0 -80
- package/dist/geneExpClustering-6ORRRH43.js +0 -243
- package/dist/geneExpression-4JVWKJWP.js +0 -310
- package/dist/geneExpression-MARWAIHW.js +0 -32
- package/dist/geneExpression.unit.spec-3CQTUSDK.js +0 -96
- package/dist/geneORA-M2L2YEX3.js +0 -272
- package/dist/geneRanking-S2B3LSTU.js +0 -547
- package/dist/geneVariant-D2ANGINP.js +0 -35
- package/dist/geneVariant-T4NG72OL.js +0 -33
- package/dist/geneVariant.integration.spec-62NJS7GD.js +0 -192
- package/dist/genefusion.ui-4ZZNKANU.js +0 -302
- package/dist/geneset-QCLFANPD.js +0 -202
- package/dist/genomeBrowser.spec-BV5M6JFN.js +0 -275
- package/dist/grin2-J4VDS2JT.js +0 -1136
- package/dist/grin2-K5G3N5XP.js +0 -69
- package/dist/hierCluster-FMK524WF.js +0 -57
- package/dist/hierCluster-XF7ZWVKD.js +0 -53
- package/dist/hierCluster.config-LYAQCO3L.js +0 -34
- package/dist/hierCluster.integration.spec-NSLTJBL4.js +0 -482
- package/dist/hierCluster.interactivity-VKAOR2DR.js +0 -48
- package/dist/hierCluster.renderers-6C5F7LRL.js +0 -19
- package/dist/imagePlot-IPTIFVLT.js +0 -155
- package/dist/importPlot-V3P6DCUR.js +0 -8
- package/dist/isoformExpression-6IIPJI4M.js +0 -34
- package/dist/isoformExpression.unit.spec-IYZWSLO5.js +0 -236
- package/dist/junction-E6FB2OP4.js +0 -35
- package/dist/junction.unit.spec-M4EN7KPG.js +0 -181
- package/dist/launch.adhoc-SU5L2YXN.js +0 -36
- package/dist/leftlabel.sample-5WTK5NBD.js +0 -257
- package/dist/lollipop-L64ZTEEX.js +0 -165
- package/dist/maf-QLNFANWO.js +0 -454
- package/dist/maftimeline-U7FMTMTV.js +0 -586
- package/dist/matrix-GFVK3PEB.js +0 -57
- package/dist/matrix-HFJQGPJJ.js +0 -52
- package/dist/matrix.cells-5JKTBI3X.js +0 -26
- package/dist/matrix.config-QPTQ22RR.js +0 -35
- package/dist/matrix.data-MXIUMSRR.js +0 -23
- package/dist/matrix.dom-ENBFB4CW.js +0 -11
- package/dist/matrix.groups-6DYTBVGR.js +0 -25
- package/dist/matrix.integration.spec-X4HM67TN.js +0 -3066
- package/dist/matrix.interactivity-QTB56LXE.js +0 -36
- package/dist/matrix.layout-VQAORIIH.js +0 -38
- package/dist/matrix.legend-SDJXYNHE.js +0 -20
- package/dist/matrix.renderers-6PMYIP2S.js +0 -32
- package/dist/matrix.serieses-WWY7474U.js +0 -19
- package/dist/matrix.sort-V46C2MAZ.js +0 -25
- package/dist/matrix.sort.unit.spec-3RM7V6CS.js +0 -466
- package/dist/matrix.sorterUi.unit.spec-YOV6FBRT.js +0 -336
- package/dist/mavb-PJA76T7F.js +0 -726
- package/dist/mds.fimo-GW7XPJGQ.js +0 -512
- package/dist/mds.samplescatterplot-ZAIEWPO4.js +0 -1544
- package/dist/mds.survivalplot-ETLLFDWR.js +0 -476
- package/dist/multivalue-AZPAQJQD.js +0 -82
- package/dist/numericDictTermCluster-KOJODGZT.js +0 -63
- package/dist/oncomatrix-2TRXETOJ.js +0 -289
- package/dist/oncomatrix.spec-DOVKLS24.js +0 -442
- package/dist/plot.2dvaf-RQN6QADW.js +0 -371
- package/dist/plot.app-MOIVGIS6.js +0 -35
- package/dist/plot.barplot-46QRWJOX.js +0 -96
- package/dist/plot.boxplot-54J4UWQX.js +0 -145
- package/dist/plot.brainImaging-Y32KQFLS.js +0 -51
- package/dist/plot.disco-4R5J7Z5S.js +0 -99
- package/dist/plot.ssgq-6LCKYRYD.js +0 -133
- package/dist/plot.vaf2cov-UCBH4NSC.js +0 -252
- package/dist/plot.wsi-DAC7NUQE.js +0 -36
- package/dist/polar2-JKV74QV5.js +0 -231
- package/dist/profileForms-VDYCFH4M.js +0 -933
- package/dist/profilePlot-PR3LVRYU.js +0 -48
- package/dist/proteinView-A3EM6OR5.js +0 -1561
- package/dist/proteomeCohortCompare-QGFEJTDQ.js +0 -793
- package/dist/proteomeCohortCompare-QGFEJTDQ.js.map +0 -7
- package/dist/pseudbulk.unit.spec-CUMTLAH7.js +0 -85
- package/dist/pseudobulk-5E5MSMU3.js +0 -34
- package/dist/qualitative-WPXUBISK.js +0 -37
- package/dist/radar2-A5OYMORS.js +0 -326
- package/dist/radarFacility2-4TPJB6M4.js +0 -334
- package/dist/render-XQBWWS33.js +0 -32
- package/dist/report-NCJOTYIC.js +0 -216
- package/dist/sampleView-2PUSMG4W.js +0 -42
- package/dist/samplelst-FV7BAUN5.js +0 -105
- package/dist/samplematrix-DFD3PNI4.js +0 -2192
- package/dist/sc-GIMTDVLG.js +0 -80
- package/dist/scatter-4GJ5HKUY.js +0 -879
- package/dist/scatter-P3ISZB3R.js +0 -87
- package/dist/selectGenomeWithTklst-ZZ4CEHDU.js +0 -128
- package/dist/singleCellCellType-CEERCVTR.js +0 -32
- package/dist/singleCellCellType.unit.spec-JNEIICK5.js +0 -153
- package/dist/singleCellGeneExpression-G5B7DDES.js +0 -32
- package/dist/singleCellGeneExpression.unit.spec-CGRZGY66.js +0 -147
- package/dist/singleCellPlot-US5KTHS4.js +0 -48
- package/dist/singlecell-IPTSIKNA.js +0 -1565
- package/dist/singlecell-VB4KLPJF.js +0 -80
- package/dist/snp-6V2SCCRN.js +0 -32
- package/dist/snp.unit.spec-Q537NGVG.js +0 -170
- package/dist/snplocus-BV6WJTVP.js +0 -202
- package/dist/spliceevent.a53ss.diagram-3BUQVK4Q.js +0 -145
- package/dist/spliceevent.exonskip.diagram-CQZ2DFQ5.js +0 -277
- package/dist/spliceevent.noeventdiagram-QAEPR6LD.js +0 -454
- package/dist/ssGSEA-XNI5S7AC.js +0 -32
- package/dist/ssGSEA.unit.spec-A337IMC7.js +0 -82
- package/dist/stattable-J4ZQKJFM.js +0 -116
- package/dist/studyCatalog-BJTJJGBC.js +0 -352
- package/dist/studyCatalog-BJTJJGBC.js.map +0 -7
- package/dist/summarizeCnvGeneexp-76UJXLA4.js +0 -157
- package/dist/summarizeGeneexpSurvival-ZUEHXA2R.js +0 -104
- package/dist/summarizeMutationCnv-EBCBVMG6.js +0 -158
- package/dist/summarizeMutationDiagnosis-VLFI2ZIZ.js +0 -34
- package/dist/summarizeMutationSurvival-QRFMJLLO.js +0 -93
- package/dist/summary-U3YKEMZC.js +0 -41
- package/dist/summary.integration.spec-52WP6SNY.js +0 -408
- package/dist/summaryInput-WUJNHCGH.js +0 -225
- package/dist/sunburst-IJ3ZG2BC.js +0 -277
- package/dist/survival-F2B5JKOO.js +0 -1236
- package/dist/survival-SQRYWGWZ.js +0 -52
- package/dist/survival.integration.spec-YGRZJ2OL.js +0 -967
- package/dist/survival.integration.spec-YGRZJ2OL.js.map +0 -7
- package/dist/svgraph-HVCMF6KI.js +0 -1381
- package/dist/svmr-PROHTMTP.js +0 -3836
- package/dist/table-3E64OJNV.js +0 -196
- package/dist/termCollection-MUH7P6B5.js +0 -32
- package/dist/termCollection-WKT6ESMI.js +0 -251
- package/dist/termCollection.unit.spec-XMOCMVER.js +0 -298
- package/dist/termCollectionFractionSelection-P5G6WIJJ.js +0 -41
- package/dist/termCollectionFractionSelection.unit.spec-MG7E3EIZ.js +0 -187
- package/dist/tk-HWUPUGOS.js +0 -1120
- package/dist/tk-SBM2GN3S.js +0 -40
- package/dist/tp.ui-RRB5MJRD.js +0 -1453
- package/dist/tvs.dt-I2ECKHQ2.js +0 -33
- package/dist/tvs.dtcnv.categorical-7RJPQKMX.js +0 -34
- package/dist/tvs.dtcnv.continuous-FW4ZXIYY.js +0 -66
- package/dist/tvs.dtfusion-3GDWW3ML.js +0 -34
- package/dist/tvs.dtitd-FER4H4UO.js +0 -34
- package/dist/tvs.dtsnvindel-ISEOJ5UA.js +0 -34
- package/dist/tvs.dtsv-JDML7EWE.js +0 -34
- package/dist/tvs.samplelst-MJTM6GSV.js +0 -98
- package/dist/tvs.termCollection-GMOXBJWF.js +0 -123
- package/dist/vocabulary-5EJMLXI2.js +0 -35
- package/dist/vocabulary-5EJMLXI2.js.map +0 -7
- package/dist/wsi.direct-IVPACPNT.js +0 -75
- /package/dist/{2dmaf-I4HBWRNQ.js.map → 2dmaf-6CEBP4SA.js.map} +0 -0
- /package/dist/{AIProjectAdmin-SZYSG7HR.js.map → AIProjectAdmin-2CKKFC3A.js.map} +0 -0
- /package/dist/{AggregateMatrix-U7HHALFR.js.map → AggregateMatrix-5TBUMFE5.js.map} +0 -0
- /package/dist/{AppHeader-O4RBZQZF.js.map → AppHeader-5YBPWF44.js.map} +0 -0
- /package/dist/{BoxPlot-NOXWAGX6.js.map → BoxPlot-UOJS5SJV.js.map} +0 -0
- /package/dist/{CorrelationVolcano-IJ5UT6N5.js.map → CorrelationVolcano-KX6JPZMT.js.map} +0 -0
- /package/dist/{Cuminc-NGUDAOAD.js.map → Cuminc-TLOOLZWR.js.map} +0 -0
- /package/dist/{DE-MIAHOI5J.js.map → DE-HUQLQ2Z3.js.map} +0 -0
- /package/dist/{DEinput-FYBSL2ER.js.map → DEinput-WWUISAF2.js.map} +0 -0
- /package/dist/{DifferentialAnalysis-I6S5YQXY.js.map → DifferentialAnalysis-6DTAGCEY.js.map} +0 -0
- /package/dist/{Disco-VLUBOZDC.js.map → Disco-P6ZLPYLF.js.map} +0 -0
- /package/dist/{Disco.UI-QQYWQEW7.js.map → Disco.UI-WGTMAFK2.js.map} +0 -0
- /package/dist/{DmrPlot-DFOBEN7A.js.map → DmrPlot-3FRU5KUK.js.map} +0 -0
- /package/dist/{GB-5FSXJMEZ.js.map → GB-NWOBARL3.js.map} +0 -0
- /package/dist/{GSEA-JISHQOVY.js.map → GSEA-DEEUAAMI.js.map} +0 -0
- /package/dist/{GeneExpInput-5YEX22VD.js.map → GeneExpInput-6QWGEAFV.js.map} +0 -0
- /package/dist/{Geomap-YVF6YBK5.js.map → Geomap-6HT2B7RH.js.map} +0 -0
- /package/dist/{HicApp-ZCMOOKTY.js.map → HicApp-PCNOUULF.js.map} +0 -0
- /package/dist/{IDCViewer-5ZNTAEUG.js.map → IDCViewer-H3QPXVM3.js.map} +0 -0
- /package/dist/{NumBinaryEditor-BEF5YCKI.js.map → NumBinaryEditor-IU6OLMKN.js.map} +0 -0
- /package/dist/{NumBinaryEditor.unit.spec-GCYZGHB2.js.map → NumBinaryEditor.unit.spec-YUPUILIV.js.map} +0 -0
- /package/dist/{NumContEditor-TUXPB6YJ.js.map → NumContEditor-KFDA76QN.js.map} +0 -0
- /package/dist/{NumContEditor.unit.spec-5CMHHWIP.js.map → NumContEditor.unit.spec-QBOT5QHU.js.map} +0 -0
- /package/dist/{NumCustomBinEditor-HS7RSGFV.js.map → NumCustomBinEditor-EOSTEXLB.js.map} +0 -0
- /package/dist/{NumCustomBinEditor.unit.spec-MM3JJXT4.js.map → NumCustomBinEditor.unit.spec-B46XWFYH.js.map} +0 -0
- /package/dist/{NumDiscreteEditor-ZL7PP6ZT.js.map → NumDiscreteEditor-Y4EAADXC.js.map} +0 -0
- /package/dist/{NumDiscreteEditor.unit.spec-OEWX2KJC.js.map → NumDiscreteEditor.unit.spec-SJGHLWSM.js.map} +0 -0
- /package/dist/{NumRegularBinEditor-YBXK7YV6.js.map → NumRegularBinEditor-3BNG7DIN.js.map} +0 -0
- /package/dist/{NumRegularBinEditor.unit.spec-FVHN4J5L.js.map → NumRegularBinEditor.unit.spec-KM45QXXG.js.map} +0 -0
- /package/dist/{NumSplineEditor-VN4XBTTI.js.map → NumSplineEditor-K4KPDC4S.js.map} +0 -0
- /package/dist/{NumSplineEditor.unit.spec-AI642DWP.js.map → NumSplineEditor.unit.spec-TKQP5XTS.js.map} +0 -0
- /package/dist/{NumericDensity-2KTY7DGH.js.map → NumericDensity-Z6JFVN3D.js.map} +0 -0
- /package/dist/{NumericDensity.unit.spec-6EA72A24.js.map → NumericDensity.unit.spec-YEYBVLEP.js.map} +0 -0
- /package/dist/{NumericHandler-62EN6AD3.js.map → NumericHandler-ITT6HMPN.js.map} +0 -0
- /package/dist/{NumericHandler.unit.spec-FXOJ2L2L.js.map → NumericHandler.unit.spec-QVONMXY4.js.map} +0 -0
- /package/dist/{ProteomeInput-MBBDXO2Z.js.map → ProteomeInput-PRS3DEMZ.js.map} +0 -0
- /package/dist/{RunChart2-RHZFHH4M.js.map → RunChart2-AMM2JFF5.js.map} +0 -0
- /package/dist/{SC-FAQXOHO4.js.map → SC-F7IE66VZ.js.map} +0 -0
- /package/dist/{Violin-2A3ICNBP.js.map → Violin-RJ6OJZ4F.js.map} +0 -0
- /package/dist/{Volcano-X5KGHLHZ.js.map → Volcano-BJA5HN5Y.js.map} +0 -0
- /package/dist/{WSIViewer-F2SD6LLP.js.map → WSIViewer-RJZGRUIR.js.map} +0 -0
- /package/dist/{Wsi-KAFAC3Q5.js.map → Wsi-DXP6KOQA.js.map} +0 -0
- /package/dist/{WsiSamplesPlot-VKPMLDZI.js.map → WsiSamplesPlot-2IAWV2B6.js.map} +0 -0
- /package/dist/{adSandbox-QKG5EA23.js.map → adSandbox-RGWOIV3W.js.map} +0 -0
- /package/dist/{animatedBubbleChart-ES62XWMN.js.map → animatedBubbleChart-J4Q2NAEW.js.map} +0 -0
- /package/dist/{app-2HLLOBTD.js.map → app-3QXNR4VG.js.map} +0 -0
- /package/dist/{app-GJL6K6V4.js.map → app-B4B7YNP3.js.map} +0 -0
- /package/dist/{bam-DCPAAVPX.js.map → bam-LRUMN45P.js.map} +0 -0
- /package/dist/{barchart-DCVGCEZO.js.map → barchart-L2G6GEHK.js.map} +0 -0
- /package/dist/{barchart2-5X57VSIN.js.map → barchart2-DWNVAZAJ.js.map} +0 -0
- /package/dist/{block-XYSUTBXJ.js.map → block-TVEVAXNP.js.map} +0 -0
- /package/dist/{block.init-5B27QKPU.js.map → block.init-YOHAKPRI.js.map} +0 -0
- /package/dist/{block.mds.expressionrank-Z7BGGPZ7.js.map → block.mds.expressionrank-PU6JH4W5.js.map} +0 -0
- /package/dist/{block.mds.geneboxplot-4U4UZH2J.js.map → block.mds.geneboxplot-WYYFDNE3.js.map} +0 -0
- /package/dist/{block.mds.junction-ZPCUEQZJ.js.map → block.mds.junction-4WCTL7Y4.js.map} +0 -0
- /package/dist/{block.mds.svcnv-OGGPBOL2.js.map → block.mds.svcnv-MR3VCYUW.js.map} +0 -0
- /package/dist/{block.svg-BWGAMNDS.js.map → block.svg-LR3Y4ZO7.js.map} +0 -0
- /package/dist/{block.tk.aicheck-XHHW7WST.js.map → block.tk.aicheck-A5AWKJZI.js.map} +0 -0
- /package/dist/{block.tk.ase-BZ2IL3CQ.js.map → block.tk.ase-AQBBAQEH.js.map} +0 -0
- /package/dist/{block.tk.bam-WRHOOWXN.js.map → block.tk.bam-QBTA2O3V.js.map} +0 -0
- /package/dist/{block.tk.bedgraphdot-B536STRA.js.map → block.tk.bedgraphdot-4ALZG2MY.js.map} +0 -0
- /package/dist/{block.tk.bigwig.ui-K5X3BSQC.js.map → block.tk.bigwig.ui-32W6XW37.js.map} +0 -0
- /package/dist/{block.tk.hicstraw-OYOKZ45W.js.map → block.tk.hicstraw-PKBHBAG2.js.map} +0 -0
- /package/dist/{block.tk.junction-S5JMMMR6.js.map → block.tk.junction-AO5CXUCU.js.map} +0 -0
- /package/dist/{block.tk.junction.textmatrixui-OLZY5BYR.js.map → block.tk.junction.textmatrixui-RORVUIPI.js.map} +0 -0
- /package/dist/{block.tk.ld-KINDO5UU.js.map → block.tk.ld-TNBSR4FT.js.map} +0 -0
- /package/dist/{block.tk.menu-3FNBVZ7J.js.map → block.tk.menu-QDJO54J5.js.map} +0 -0
- /package/dist/{block.tk.pgv-UHDY3T4G.js.map → block.tk.pgv-6222WWYR.js.map} +0 -0
- /package/dist/{brainRegions-YI7K4OVE.js.map → brainRegions-KTFH6DE2.js.map} +0 -0
- /package/dist/{bubbleHeatmap-EQ44CSG5.js.map → bubbleHeatmap-LNXZLFY6.js.map} +0 -0
- /package/dist/{cellTypeBubbleHeatmap-O3KL2YBF.js.map → cellTypeBubbleHeatmap-SRHUNX3S.js.map} +0 -0
- /package/dist/{chunk-7ROMS7YT.js.map → chunk-3TXVDBGN.js.map} +0 -0
- /package/dist/{chunk-I5KBI5PC.js.map → chunk-4HLHKBHP.js.map} +0 -0
- /package/dist/{chunk-4KUGV44F.js.map → chunk-5GG7Q2ZG.js.map} +0 -0
- /package/dist/{chunk-4GN3CSDT.js.map → chunk-5PMFCQKC.js.map} +0 -0
- /package/dist/{chunk-HENLCRVM.js.map → chunk-6X7PP7A4.js.map} +0 -0
- /package/dist/{chunk-6ZLCBVJA.js.map → chunk-A3EDLRUN.js.map} +0 -0
- /package/dist/{chunk-OGQMELRU.js.map → chunk-ACXFPMJP.js.map} +0 -0
- /package/dist/{chunk-JPQSDB2H.js.map → chunk-ASRW3UJ5.js.map} +0 -0
- /package/dist/{chunk-NVH5I6EP.js.map → chunk-BBILSUDX.js.map} +0 -0
- /package/dist/{chunk-EK7CQC3P.js.map → chunk-BOWI37X2.js.map} +0 -0
- /package/dist/{chunk-SACNULB3.js.map → chunk-BVA26EFK.js.map} +0 -0
- /package/dist/{chunk-BZ36NJHA.js.map → chunk-D5J57ENI.js.map} +0 -0
- /package/dist/{chunk-I56CSICA.js.map → chunk-E5BFGDLA.js.map} +0 -0
- /package/dist/{chunk-XXITHNR2.js.map → chunk-ECISCOPF.js.map} +0 -0
- /package/dist/{chunk-YCLNEB4L.js.map → chunk-ECLUUJVE.js.map} +0 -0
- /package/dist/{chunk-2OEMKKLP.js.map → chunk-EGDQ5I54.js.map} +0 -0
- /package/dist/{chunk-FCMHDCMO.js.map → chunk-ELNVTA7O.js.map} +0 -0
- /package/dist/{chunk-DLXMO6EK.js.map → chunk-F4PMOAQK.js.map} +0 -0
- /package/dist/{chunk-WVVH56ZU.js.map → chunk-FISQTHD4.js.map} +0 -0
- /package/dist/{chunk-GJFG2MML.js.map → chunk-HL6GJIOH.js.map} +0 -0
- /package/dist/{chunk-ZPFN3CYR.js.map → chunk-IGZAOCTU.js.map} +0 -0
- /package/dist/{chunk-IUA3PSTK.js.map → chunk-JMDJI7KM.js.map} +0 -0
- /package/dist/{chunk-VTYMSJGY.js.map → chunk-JQVA264Z.js.map} +0 -0
- /package/dist/{chunk-WEF6INPI.js.map → chunk-JRF7SRLB.js.map} +0 -0
- /package/dist/{chunk-25RPYQRT.js.map → chunk-KLWSW6CC.js.map} +0 -0
- /package/dist/{chunk-AVR4LFOO.js.map → chunk-KNNSOOTG.js.map} +0 -0
- /package/dist/{chunk-BY5B5BM5.js.map → chunk-KTPXQH2N.js.map} +0 -0
- /package/dist/{chunk-J3TIXBCS.js.map → chunk-LGKXSWY4.js.map} +0 -0
- /package/dist/{chunk-PBRW6QLS.js.map → chunk-LP2GIXVK.js.map} +0 -0
- /package/dist/{chunk-AT7HWXMW.js.map → chunk-MBHERRJR.js.map} +0 -0
- /package/dist/{chunk-MT5MHYL3.js.map → chunk-MLYQDJUQ.js.map} +0 -0
- /package/dist/{chunk-TRWFL52W.js.map → chunk-NBGDLLMX.js.map} +0 -0
- /package/dist/{chunk-D27C6HZW.js.map → chunk-P3JEXVBT.js.map} +0 -0
- /package/dist/{chunk-TMZZ4Z7L.js.map → chunk-PZPPJY4K.js.map} +0 -0
- /package/dist/{chunk-SEJGXC2L.js.map → chunk-Q6JF4ZLT.js.map} +0 -0
- /package/dist/{chunk-ALXSSRGI.js.map → chunk-QF5IH7PC.js.map} +0 -0
- /package/dist/{chunk-S2D6GH6D.js.map → chunk-QJ6SO7CF.js.map} +0 -0
- /package/dist/{chunk-WZTZJNSG.js.map → chunk-QQUOVIOM.js.map} +0 -0
- /package/dist/{chunk-WO4CL5JL.js.map → chunk-R3OBOAOF.js.map} +0 -0
- /package/dist/{chunk-VP2FPPLA.js.map → chunk-SPDNUC76.js.map} +0 -0
- /package/dist/{chunk-5RHE36DQ.js.map → chunk-T3663ZQL.js.map} +0 -0
- /package/dist/{chunk-BZKHE26Z.js.map → chunk-TSK4ZTFK.js.map} +0 -0
- /package/dist/{chunk-CBRZIMNF.js.map → chunk-USW6WRDZ.js.map} +0 -0
- /package/dist/{chunk-34AV6DED.js.map → chunk-WBMYHNKH.js.map} +0 -0
- /package/dist/{chunk-MEJMWIBD.js.map → chunk-X46LAU4Q.js.map} +0 -0
- /package/dist/{chunk-254KEDDH.js.map → chunk-XE6E526E.js.map} +0 -0
- /package/dist/{chunk-55PGOBTR.js.map → chunk-XWCWBHLB.js.map} +0 -0
- /package/dist/{chunk-6456HESK.js.map → chunk-YCECQV3T.js.map} +0 -0
- /package/dist/{chunk-MECQLU4J.js.map → chunk-Z4NADGZX.js.map} +0 -0
- /package/dist/{chunk-6THPWBBU.js.map → chunk-Z53KOPRJ.js.map} +0 -0
- /package/dist/{cohort-JCMVMOBQ.js.map → cohort-U7M6Q2UX.js.map} +0 -0
- /package/dist/{condition-SHRWEMG7.js.map → condition-EGAV2PMJ.js.map} +0 -0
- /package/dist/{controls-EKIHLQS6.js.map → controls-PTMYWUZV.js.map} +0 -0
- /package/dist/{controls.config-WSVX6UC6.js.map → controls.config-DOA6PTP2.js.map} +0 -0
- /package/dist/{correlation-ALFFZLKD.js.map → correlation-Y3EL6GB7.js.map} +0 -0
- /package/dist/{customdata.inputui-L2UAIU6I.js.map → customdata.inputui-4NDDG6FL.js.map} +0 -0
- /package/dist/{dataDownload-73N5364T.js.map → dataDownload-EQGUAOK2.js.map} +0 -0
- /package/dist/{databrowser.ui-NTOGXDYE.js.map → databrowser.ui-ABGOJUWQ.js.map} +0 -0
- /package/dist/{dictionary-CUAU2X6Q.js.map → dictionary-YOLLEDE5.js.map} +0 -0
- /package/dist/{dnaMethylation-AGWAGXVD.js.map → dnaMethylation-JZT63UHO.js.map} +0 -0
- /package/dist/{dnaMethylation.integration.spec-K22XXOU4.js.map → dnaMethylation.integration.spec-EATCABJW.js.map} +0 -0
- /package/dist/{dofetch-BVJ77SP7.js.map → dofetch-YNBIUFV5.js.map} +0 -0
- /package/dist/{e2pca-4HIJWLSC.js.map → e2pca-RD6COCRL.js.map} +0 -0
- /package/dist/{ep-U4RGH62P.js.map → ep-BAI7WUET.js.map} +0 -0
- /package/dist/{expclust.gdc.spec-JJGGQDQK.js.map → expclust.gdc.spec-LKV2CQA5.js.map} +0 -0
- /package/dist/{facet-NNUPVXCG.js.map → facet-X3SXQIAC.js.map} +0 -0
- /package/dist/{gb-2MYXJEMY.js.map → gb-K324K7XB.js.map} +0 -0
- /package/dist/{geneExpClustering-6ORRRH43.js.map → geneExpClustering-BJD5U3KG.js.map} +0 -0
- /package/dist/{geneExpression-4JVWKJWP.js.map → geneExpression-2TK3XLZ5.js.map} +0 -0
- /package/dist/{geneExpression-MARWAIHW.js.map → geneExpression-F6NRTHZ4.js.map} +0 -0
- /package/dist/{geneExpression.unit.spec-3CQTUSDK.js.map → geneExpression.unit.spec-IFZN3J6A.js.map} +0 -0
- /package/dist/{geneORA-M2L2YEX3.js.map → geneORA-DUEP735U.js.map} +0 -0
- /package/dist/{geneRanking-S2B3LSTU.js.map → geneRanking-LURDNT7L.js.map} +0 -0
- /package/dist/{geneVariant-D2ANGINP.js.map → geneVariant-EAVCWQAZ.js.map} +0 -0
- /package/dist/{geneVariant.integration.spec-62NJS7GD.js.map → geneVariant.integration.spec-LHL4ERFO.js.map} +0 -0
- /package/dist/{genefusion.ui-4ZZNKANU.js.map → genefusion.ui-4T5R7DT7.js.map} +0 -0
- /package/dist/{geneset-QCLFANPD.js.map → geneset-3PWXPBG2.js.map} +0 -0
- /package/dist/{genomeBrowser.spec-BV5M6JFN.js.map → genomeBrowser.spec-5SEN7R2P.js.map} +0 -0
- /package/dist/{grin2-J4VDS2JT.js.map → grin2-EXBG7TMS.js.map} +0 -0
- /package/dist/{grin2-K5G3N5XP.js.map → grin2-XIXVFVWO.js.map} +0 -0
- /package/dist/{geneVariant-T4NG72OL.js.map → hierCluster-5XQIWXAY.js.map} +0 -0
- /package/dist/{hierCluster-FMK524WF.js.map → hierCluster-I4TAQWPF.js.map} +0 -0
- /package/dist/{hierCluster-XF7ZWVKD.js.map → hierCluster.config-T7HVAWES.js.map} +0 -0
- /package/dist/{hierCluster.integration.spec-NSLTJBL4.js.map → hierCluster.integration.spec-XWX43K4D.js.map} +0 -0
- /package/dist/{hierCluster.config-LYAQCO3L.js.map → hierCluster.interactivity-MYIDHFSL.js.map} +0 -0
- /package/dist/{hierCluster.interactivity-VKAOR2DR.js.map → hierCluster.renderers-YRXA5ZUK.js.map} +0 -0
- /package/dist/{imagePlot-IPTIFVLT.js.map → imagePlot-4JQB6JUG.js.map} +0 -0
- /package/dist/{hierCluster.renderers-6C5F7LRL.js.map → importPlot-D3MXCCLN.js.map} +0 -0
- /package/dist/{importPlot-V3P6DCUR.js.map → isoformExpression-WNGGUVIZ.js.map} +0 -0
- /package/dist/{isoformExpression.unit.spec-IYZWSLO5.js.map → isoformExpression.unit.spec-NVJ5TIKM.js.map} +0 -0
- /package/dist/{isoformExpression-6IIPJI4M.js.map → junction-O7N57JE3.js.map} +0 -0
- /package/dist/{junction.unit.spec-M4EN7KPG.js.map → junction.unit.spec-Z63DRTRR.js.map} +0 -0
- /package/dist/{junction-E6FB2OP4.js.map → launch.adhoc-MBDRXD3B.js.map} +0 -0
- /package/dist/{leftlabel.sample-5WTK5NBD.js.map → leftlabel.sample-IG6FOQ26.js.map} +0 -0
- /package/dist/{lollipop-L64ZTEEX.js.map → lollipop-ZUYBLPGN.js.map} +0 -0
- /package/dist/{maf-QLNFANWO.js.map → maf-QOS5LURG.js.map} +0 -0
- /package/dist/{maftimeline-U7FMTMTV.js.map → maftimeline-FEHP2J55.js.map} +0 -0
- /package/dist/{launch.adhoc-SU5L2YXN.js.map → matrix-BG4J4RXA.js.map} +0 -0
- /package/dist/{matrix-GFVK3PEB.js.map → matrix-PX4LWTGN.js.map} +0 -0
- /package/dist/{matrix-HFJQGPJJ.js.map → matrix.cells-PTIDQVCI.js.map} +0 -0
- /package/dist/{matrix.cells-5JKTBI3X.js.map → matrix.config-NHW7BLIE.js.map} +0 -0
- /package/dist/{matrix.config-QPTQ22RR.js.map → matrix.data-FMIQRXOA.js.map} +0 -0
- /package/dist/{matrix.data-MXIUMSRR.js.map → matrix.dom-4S2UYJOU.js.map} +0 -0
- /package/dist/{matrix.dom-ENBFB4CW.js.map → matrix.groups-QMID5XAO.js.map} +0 -0
- /package/dist/{matrix.integration.spec-X4HM67TN.js.map → matrix.integration.spec-H6T7KP5R.js.map} +0 -0
- /package/dist/{matrix.groups-6DYTBVGR.js.map → matrix.interactivity-WQUO25HB.js.map} +0 -0
- /package/dist/{matrix.interactivity-QTB56LXE.js.map → matrix.layout-CTPVZZ34.js.map} +0 -0
- /package/dist/{matrix.layout-VQAORIIH.js.map → matrix.legend-K6EYUN6L.js.map} +0 -0
- /package/dist/{matrix.legend-SDJXYNHE.js.map → matrix.renderers-5DIAUY6R.js.map} +0 -0
- /package/dist/{matrix.renderers-6PMYIP2S.js.map → matrix.serieses-LRMN2J52.js.map} +0 -0
- /package/dist/{matrix.serieses-WWY7474U.js.map → matrix.sort-RGAGEA6Z.js.map} +0 -0
- /package/dist/{matrix.sort.unit.spec-3RM7V6CS.js.map → matrix.sort.unit.spec-RGICZZJL.js.map} +0 -0
- /package/dist/{matrix.sorterUi.unit.spec-YOV6FBRT.js.map → matrix.sorterUi.unit.spec-45QPEGWE.js.map} +0 -0
- /package/dist/{mavb-PJA76T7F.js.map → mavb-VEIVB62L.js.map} +0 -0
- /package/dist/{mds.fimo-GW7XPJGQ.js.map → mds.fimo-BG4LTWFB.js.map} +0 -0
- /package/dist/{mds.samplescatterplot-ZAIEWPO4.js.map → mds.samplescatterplot-PWADJZ2J.js.map} +0 -0
- /package/dist/{mds.survivalplot-ETLLFDWR.js.map → mds.survivalplot-BX4HZ23K.js.map} +0 -0
- /package/dist/{multivalue-AZPAQJQD.js.map → multivalue-OZALSBFW.js.map} +0 -0
- /package/dist/{numericDictTermCluster-KOJODGZT.js.map → numericDictTermCluster-7PGJ7KV4.js.map} +0 -0
- /package/dist/{oncomatrix-2TRXETOJ.js.map → oncomatrix-Q2EQZPLS.js.map} +0 -0
- /package/dist/{oncomatrix.spec-DOVKLS24.js.map → oncomatrix.spec-YEQOQRPW.js.map} +0 -0
- /package/dist/{plot.2dvaf-RQN6QADW.js.map → plot.2dvaf-NJSB3HNH.js.map} +0 -0
- /package/dist/{matrix.sort-V46C2MAZ.js.map → plot.app-AEUR6XGI.js.map} +0 -0
- /package/dist/{plot.barplot-46QRWJOX.js.map → plot.barplot-OXN2P5KL.js.map} +0 -0
- /package/dist/{plot.boxplot-54J4UWQX.js.map → plot.boxplot-2KHEVVFE.js.map} +0 -0
- /package/dist/{plot.brainImaging-Y32KQFLS.js.map → plot.brainImaging-JWDX4BZG.js.map} +0 -0
- /package/dist/{plot.disco-4R5J7Z5S.js.map → plot.disco-LUFC5GGC.js.map} +0 -0
- /package/dist/{plot.ssgq-6LCKYRYD.js.map → plot.ssgq-FMM3IRNA.js.map} +0 -0
- /package/dist/{plot.vaf2cov-UCBH4NSC.js.map → plot.vaf2cov-K5TAQUC5.js.map} +0 -0
- /package/dist/{plot.wsi-DAC7NUQE.js.map → plot.wsi-CNQCNZ4Z.js.map} +0 -0
- /package/dist/{polar2-JKV74QV5.js.map → polar2-AB6SVYRS.js.map} +0 -0
- /package/dist/{profileForms-VDYCFH4M.js.map → profileForms-AIEHZ4GC.js.map} +0 -0
- /package/dist/{plot.app-MOIVGIS6.js.map → profilePlot-PZDFGXKZ.js.map} +0 -0
- /package/dist/{proteinView-A3EM6OR5.js.map → proteinView-7GWHQYXC.js.map} +0 -0
- /package/dist/{pseudbulk.unit.spec-CUMTLAH7.js.map → pseudbulk.unit.spec-NFT4VNTI.js.map} +0 -0
- /package/dist/{profilePlot-PR3LVRYU.js.map → pseudobulk-WDGWTXW4.js.map} +0 -0
- /package/dist/{pseudobulk-5E5MSMU3.js.map → qualitative-PZYJENE7.js.map} +0 -0
- /package/dist/{radar2-A5OYMORS.js.map → radar2-QHRGH3YS.js.map} +0 -0
- /package/dist/{radarFacility2-4TPJB6M4.js.map → radarFacility2-2JD26FL6.js.map} +0 -0
- /package/dist/{qualitative-WPXUBISK.js.map → render-YA4Z56LT.js.map} +0 -0
- /package/dist/{report-NCJOTYIC.js.map → report-2NUKFJTF.js.map} +0 -0
- /package/dist/{render-XQBWWS33.js.map → sampleView-2XVPJTVR.js.map} +0 -0
- /package/dist/{samplelst-FV7BAUN5.js.map → samplelst-DMILFDT5.js.map} +0 -0
- /package/dist/{samplematrix-DFD3PNI4.js.map → samplematrix-LYA5XTUM.js.map} +0 -0
- /package/dist/{sc-GIMTDVLG.js.map → sc-CM2C34MN.js.map} +0 -0
- /package/dist/{scatter-4GJ5HKUY.js.map → scatter-C3CH3HTF.js.map} +0 -0
- /package/dist/{scatter-P3ISZB3R.js.map → scatter-GO6LV6NY.js.map} +0 -0
- /package/dist/{selectGenomeWithTklst-ZZ4CEHDU.js.map → selectGenomeWithTklst-5C7UBTGZ.js.map} +0 -0
- /package/dist/{sampleView-2PUSMG4W.js.map → singleCellCellType-EZYESBVZ.js.map} +0 -0
- /package/dist/{singleCellCellType.unit.spec-JNEIICK5.js.map → singleCellCellType.unit.spec-DB6FM4XR.js.map} +0 -0
- /package/dist/{singleCellCellType-CEERCVTR.js.map → singleCellGeneExpression-DZLEFPW4.js.map} +0 -0
- /package/dist/{singleCellGeneExpression.unit.spec-CGRZGY66.js.map → singleCellGeneExpression.unit.spec-ZTBK3V43.js.map} +0 -0
- /package/dist/{singleCellGeneExpression-G5B7DDES.js.map → singleCellPlot-VF4TZ4FT.js.map} +0 -0
- /package/dist/{singlecell-IPTSIKNA.js.map → singlecell-2MHROPBN.js.map} +0 -0
- /package/dist/{singlecell-VB4KLPJF.js.map → singlecell-GPAFNOUZ.js.map} +0 -0
- /package/dist/{singleCellPlot-US5KTHS4.js.map → snp-K4EAEVW4.js.map} +0 -0
- /package/dist/{snp.unit.spec-Q537NGVG.js.map → snp.unit.spec-BUVQLVOY.js.map} +0 -0
- /package/dist/{snplocus-BV6WJTVP.js.map → snplocus-GEVISN6Z.js.map} +0 -0
- /package/dist/{spliceevent.a53ss.diagram-3BUQVK4Q.js.map → spliceevent.a53ss.diagram-5UPWNAZF.js.map} +0 -0
- /package/dist/{spliceevent.exonskip.diagram-CQZ2DFQ5.js.map → spliceevent.exonskip.diagram-7TKAQURC.js.map} +0 -0
- /package/dist/{spliceevent.noeventdiagram-QAEPR6LD.js.map → spliceevent.noeventdiagram-CDXZLR3Z.js.map} +0 -0
- /package/dist/{snp-6V2SCCRN.js.map → ssGSEA-NMCJUQXT.js.map} +0 -0
- /package/dist/{ssGSEA.unit.spec-A337IMC7.js.map → ssGSEA.unit.spec-3FQALTPQ.js.map} +0 -0
- /package/dist/{stattable-J4ZQKJFM.js.map → stattable-2RXQPWKK.js.map} +0 -0
- /package/dist/{summarizeCnvGeneexp-76UJXLA4.js.map → summarizeCnvGeneexp-4BQS5AFM.js.map} +0 -0
- /package/dist/{summarizeGeneexpSurvival-ZUEHXA2R.js.map → summarizeGeneexpSurvival-HTBZQFB5.js.map} +0 -0
- /package/dist/{summarizeMutationCnv-EBCBVMG6.js.map → summarizeMutationCnv-XUWZGPCM.js.map} +0 -0
- /package/dist/{ssGSEA-XNI5S7AC.js.map → summarizeMutationDiagnosis-QUJX42TO.js.map} +0 -0
- /package/dist/{summarizeMutationSurvival-QRFMJLLO.js.map → summarizeMutationSurvival-3R47TTR6.js.map} +0 -0
- /package/dist/{summarizeMutationDiagnosis-VLFI2ZIZ.js.map → summary-6UUB63QR.js.map} +0 -0
- /package/dist/{summary.integration.spec-52WP6SNY.js.map → summary.integration.spec-JJDE6SRV.js.map} +0 -0
- /package/dist/{summaryInput-WUJNHCGH.js.map → summaryInput-JG4AW6FW.js.map} +0 -0
- /package/dist/{sunburst-IJ3ZG2BC.js.map → sunburst-YKB42RZX.js.map} +0 -0
- /package/dist/{survival-SQRYWGWZ.js.map → survival-3IFFTDQA.js.map} +0 -0
- /package/dist/{survival-F2B5JKOO.js.map → survival-HOFNJENX.js.map} +0 -0
- /package/dist/{svgraph-HVCMF6KI.js.map → svgraph-WFEY4ZIZ.js.map} +0 -0
- /package/dist/{svmr-PROHTMTP.js.map → svmr-44EIX7YD.js.map} +0 -0
- /package/dist/{table-3E64OJNV.js.map → table-6MKVJUNC.js.map} +0 -0
- /package/dist/{termCollection-WKT6ESMI.js.map → termCollection-6JBVQL6Y.js.map} +0 -0
- /package/dist/{summary-U3YKEMZC.js.map → termCollection-TTELZVC5.js.map} +0 -0
- /package/dist/{termCollection.unit.spec-XMOCMVER.js.map → termCollection.unit.spec-6Z7X646L.js.map} +0 -0
- /package/dist/{termCollection-MUH7P6B5.js.map → termCollectionFractionSelection-5DVIJBM5.js.map} +0 -0
- /package/dist/{termCollectionFractionSelection.unit.spec-MG7E3EIZ.js.map → termCollectionFractionSelection.unit.spec-3HIM5BIF.js.map} +0 -0
- /package/dist/{termCollectionFractionSelection-P5G6WIJJ.js.map → tk-HSYWJCGQ.js.map} +0 -0
- /package/dist/{tk-HWUPUGOS.js.map → tk-PNOVG2XS.js.map} +0 -0
- /package/dist/{tp.ui-RRB5MJRD.js.map → tp.ui-COBBSUPB.js.map} +0 -0
- /package/dist/{tk-SBM2GN3S.js.map → tvs.dt-35AKURFI.js.map} +0 -0
- /package/dist/{tvs.dtcnv.categorical-7RJPQKMX.js.map → tvs.dtcnv.categorical-3EHXYROL.js.map} +0 -0
- /package/dist/{tvs.dtcnv.continuous-FW4ZXIYY.js.map → tvs.dtcnv.continuous-AXQ2GU6S.js.map} +0 -0
- /package/dist/{tvs.dtfusion-3GDWW3ML.js.map → tvs.dtfusion-PLJIMPNX.js.map} +0 -0
- /package/dist/{tvs.dtitd-FER4H4UO.js.map → tvs.dtitd-JS6RFBV5.js.map} +0 -0
- /package/dist/{tvs.dtsnvindel-ISEOJ5UA.js.map → tvs.dtsnvindel-MDEM5MPT.js.map} +0 -0
- /package/dist/{tvs.dtsv-JDML7EWE.js.map → tvs.dtsv-OU756YLO.js.map} +0 -0
- /package/dist/{tvs.samplelst-MJTM6GSV.js.map → tvs.samplelst-5NDICES4.js.map} +0 -0
- /package/dist/{tvs.termCollection-GMOXBJWF.js.map → tvs.termCollection-5URPDPH6.js.map} +0 -0
- /package/dist/{tvs.dt-I2ECKHQ2.js.map → vocabulary-CHCVMPK5.js.map} +0 -0
- /package/dist/{wsi.direct-IVPACPNT.js.map → wsi.direct-JSKV4H4X.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../shared/utils/src/termCollection.ts", "../../shared/utils/src/filter.ts", "../../shared/utils/src/geneVariantFilter.ts"],
|
|
4
|
+
"sourcesContent": ["import type { TermCollectionQFraction } from '#types'\n\ntype CollectionMemberLike = {\n\tid?: string\n\tname?: string\n\ttype?: string\n}\n\nexport type CollectionTermLike = {\n\ttermlst: CollectionMemberLike[]\n\t/** numerator/denominator member ids of a filter tvs, mirroring q.numerators[]/q.denominators[]\n\tof a fraction tw. only used by validateTermCollectionTvs() */\n\tnumerators?: string[]\n\tdenominators?: string[]\n}\n\n/** Validate the term obj of a termCollection, shared by the fraction tw and the filter tvs.\nReturns the set of member term ids, for validating id arrays e.g. numerators. */\nexport function validateTermCollectionTerm(term: CollectionTermLike): Set<string> {\n\tif (!Array.isArray(term?.termlst) || !term.termlst.length)\n\t\tthrow new Error('termCollection requires nonempty term.termlst[]')\n\tconst memberIds: Set<string> = new Set()\n\tconst types: Set<string> = new Set() // term types of member terms\n\tfor (const t of term.termlst) {\n\t\tif (typeof t.id != 'string' || !t.id) throw new Error('member term id not non-empty string') // id required for validating id arrays e.g. numerators\n\t\tif (typeof t.type != 'string' || !t.type) throw new Error('member term type not non-empty string')\n\t\tif (memberIds.has(t.id)) throw new Error(`duplicate member term id '${t.id}'`)\n\t\tmemberIds.add(t.id)\n\n\t\t// allow integer/float to be mixed in one collection\n\t\ttypes.add(t.type == 'integer' || t.type == 'float' ? 'numDict' : t.type)\n\t}\n\tif (types.size > 1) throw new Error('termCollection.termlst[] not allowed to mix multiple term types')\n\treturn memberIds\n}\n\n/** Validate the numerator/denominator member selection of a fraction, shared by the q{} of a\nfraction tw and the term of a filter tvs. Both lists are member term ids of the collection.\nmemberIds is returned by validateTermCollectionTerm() */\nexport function validateFractionMembers(numerators: string[], denominators: string[], memberIds: Set<string>): void {\n\tif (!Array.isArray(denominators) || !denominators.length) throw new Error('fraction requires nonempty denominators[]')\n\tif (!Array.isArray(numerators) || !numerators.length) throw new Error('fraction requires nonempty numerators[]')\n\tif (new Set(denominators).size !== denominators.length) throw new Error('fraction denominators[] contains duplicates')\n\tif (new Set(numerators).size !== numerators.length) throw new Error('fraction numerators[] contains duplicates')\n\tfor (const id of denominators) {\n\t\tif (typeof id != 'string' || !id) throw new Error('fraction denominator id not non-empty string')\n\t\tif (!memberIds.has(id)) throw new Error(`fraction denominator '${id}' is not a collection member`)\n\t}\n\tfor (const id of numerators) {\n\t\tif (typeof id != 'string' || !id) throw new Error('fraction numerator id not non-empty string')\n\t\t// no need to test against memberIds: denominators[] is already a subset of it\n\t\tif (!denominators.includes(id)) throw new Error(`fraction numerator '${id}' is not included in denominators[]`)\n\t}\n}\n\n/** tw.type of a termCollection that resolves to one numeric value per sample, the fraction\nof the numerator members over the denominator ones */\nexport const FRACTION_TW_TYPE = 'TermCollectionTWFraction'\n\n/** True when a tw is a fraction termCollection */\nexport function isFractionTw(tw: any): boolean {\n\treturn tw?.type === FRACTION_TW_TYPE && tw?.term?.type === 'termCollection'\n}\n\n/** Build the tvs.term for filtering on a fraction termCollection, e.g. from a clicked bar\nor a brushed violin. The member selection of a tw lives in q{}, but a tvs is standalone:\nthe server filter and the filter ui both read numerators[]/denominators[] from tvs.term.\nReturns a copy, so that editing the filter later does not mutate the plot term.\n@param tw a filled fraction termCollection tw\n@throws Error if the tw or its member selection is invalid */\nexport function getFractionTvsTerm(tw: any): CollectionTermLike {\n\tif (!isFractionTw(tw)) throw new Error('not a fraction termCollection tw')\n\tconst term = structuredClone(tw.term)\n\t// a min copy tw may carry termIds[] instead of the full termlst[]\n\tconst memberIds = term.termlst?.length ? validateTermCollectionTerm(term) : new Set<string>(term.termIds || [])\n\tconst denominators = tw.q?.denominators?.length ? [...tw.q.denominators] : [...memberIds]\n\tconst numerators = tw.q?.numerators?.length ? [...tw.q.numerators] : [...denominators]\n\tvalidateFractionMembers(numerators, denominators, memberIds)\n\tterm.numerators = numerators\n\tterm.denominators = denominators\n\treturn term\n}\n\n/** Validate the member selection and binning discriminator for a fraction term collection. */\nexport function validateTermCollectionFraction(q: TermCollectionQFraction, term: CollectionTermLike): void {\n\tconst memberIds = validateTermCollectionTerm(term)\n\tvalidateFractionMembers(q?.numerators, q?.denominators, memberIds)\n\tif (q.mode === 'discrete' && q.type !== 'regular-bin' && q.type !== 'custom-bin')\n\t\tthrow new Error('discrete fraction termCollection requires regular-bin or custom-bin q.type')\n}\n", "import type { Filter, Tvs } from '#types'\nimport { validateTermCollectionTerm, validateFractionMembers, type CollectionTermLike } from './termCollection.js'\n\n/**\n * Sample annotation structure\n */\nexport interface SampleAnnotation {\n\tsample: string | number\n\ts?: Record<string, any>\n\tdata?: Record<string, any>\n}\n\n/**\n * Dataset with annotation functionality\n */\nexport interface Dataset {\n\tsetAnnoByTermId?: (termId: string) => void\n}\n\n/**\n * Filters an array of sample annotations and returns a Set of matching sample names\n * @param sampleAnno Array of sample annotations\n * @param filter Nested filter structure as used in the termdbapp\n * @returns Set of sample names that match the filter\n */\nexport function getFilteredSamples(sampleAnno: SampleAnnotation[], filter: Filter): Set<string | number> {\n\tsetDatasetAnnotations(filter)\n\n\tconst samples = new Set<string | number>()\n\tfor (const anno of sampleAnno) {\n\t\tif (samples.has(anno.sample)) continue\n\t\tconst data = anno.s || anno.data\n\t\tif (data && sample_match_termvaluesetting(data, filter)) {\n\t\t\tsamples.add(anno.sample)\n\t\t}\n\t}\n\treturn samples\n}\n\n/**\n * Given a value from a sample's annotation of a term, return true if a value matches the filter\n * @param row Sample annotation data\n * @param filter Filter structure or single tvs item\n * @param _term Optional term to filter by\n * @param sample Optional sample data\n * @returns True if the sample matches the filter\n */\nexport function sample_match_termvaluesetting(\n\trow: any,\n\tfilter: Filter,\n\t_term: any = null,\n\tsample: any = null\n): boolean {\n\tconst lst = filter.type == 'tvslst' ? filter.lst : [filter]\n\tlet numberofmatchedterms = 0\n\n\t/* for AND, require all terms to match */\n\tfor (const item of lst) {\n\t\tif ('type' in item && item.type == 'tvslst') {\n\t\t\tif (sample_match_termvaluesetting(row, item, _term, sample)) {\n\t\t\t\tnumberofmatchedterms++\n\t\t\t}\n\t\t} else {\n\t\t\tconst itemCopy = JSON.parse(JSON.stringify(item))\n\t\t\tconst t = itemCopy.tvs\n\n\t\t\tif (_term && t.term) {\n\t\t\t\tif (!(_term.name == t.term.name && _term.type == t.term.type)) {\n\t\t\t\t\t// for an filter from \"this.config.legendValueFilter\", if the filter is not for the tw\n\t\t\t\t\t// (not the same type and name), ignore the filter.\n\t\t\t\t\tnumberofmatchedterms++\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet samplevalue\n\t\t\tif (_term && !t.term) {\n\t\t\t\tif (t.term$type && t.term$type !== _term.type) {\n\t\t\t\t\t//when the filter is not for the term being tested, ignore the filter\n\t\t\t\t\tnumberofmatchedterms++\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tt.term = _term\n\t\t\t\tsamplevalue = typeof row === 'object' && t.term.id in row ? row[t.term.id] : row\n\t\t\t} else if (sample && t.term.$id) {\n\t\t\t\tsamplevalue = sample[t.term.$id].value\n\t\t\t} else {\n\t\t\t\tsamplevalue = t.term.id in row ? row[t.term.id] : row\n\t\t\t}\n\t\t\tsetDatasetAnnotations(itemCopy)\n\t\t\tlet thistermmatch\n\n\t\t\tif (t.term.type == 'categorical') {\n\t\t\t\tif (samplevalue === undefined) continue // this sample has no anno for this term, do not count\n\t\t\t\tthistermmatch = t.valueset.has(samplevalue)\n\t\t\t} else if (t.term.type == 'integer' || t.term.type == 'float') {\n\t\t\t\tif (samplevalue === undefined) continue // this sample has no anno for this term, do not count\n\t\t\t\tfor (const range of t.ranges) {\n\t\t\t\t\tif ('value' in range) {\n\t\t\t\t\t\tthistermmatch = samplevalue === range.value\n\t\t\t\t\t\tif (thistermmatch) break\n\t\t\t\t\t} else if (samplevalue == range.name) {\n\t\t\t\t\t\tthistermmatch = true\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// actual range\n\t\t\t\t\t\tif (t.term.values) {\n\t\t\t\t\t\t\tconst v = t.term.values[samplevalue.toString()]\n\t\t\t\t\t\t\tif (v && v.uncomputable) {\n\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet left, right\n\t\t\t\t\t\tif (range.startunbounded) {\n\t\t\t\t\t\t\tleft = true\n\t\t\t\t\t\t} else if ('start' in range) {\n\t\t\t\t\t\t\tif (range.startinclusive) {\n\t\t\t\t\t\t\t\tleft = samplevalue >= range.start\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tleft = samplevalue > range.start\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (range.stopunbounded) {\n\t\t\t\t\t\t\tright = true\n\t\t\t\t\t\t} else if ('stop' in range) {\n\t\t\t\t\t\t\tif (range.stopinclusive) {\n\t\t\t\t\t\t\t\tright = samplevalue <= range.stop\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tright = samplevalue < range.stop\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthistermmatch = left && right\n\t\t\t\t\t}\n\t\t\t\t\tif (thistermmatch) break\n\t\t\t\t}\n\t\t\t} else if (t.term.type == 'condition') {\n\t\t\t\tconst key = getPrecomputedKey(t)\n\t\t\t\tconst anno = samplevalue && samplevalue[key]\n\t\t\t\tif (anno) {\n\t\t\t\t\tthistermmatch = Array.isArray(anno)\n\t\t\t\t\t\t? t.values.find((d: any) => anno.includes(d.key))\n\t\t\t\t\t\t: t.values.find((d: any) => d.key == anno)\n\t\t\t\t}\n\t\t\t} else if (t.term.type == 'geneVariant') {\n\t\t\t\t/*\n\t\t\t\tsamplevalue.values here can be an array or only one of the entries \n\t\t\t\t[\n\t\t\t\t\t{ dt: 1, class: 'WT', _SAMPLEID_: 21, origin: 'germline' },\n\t\t\t\t\t{ dt: 1, class: 'WT', _SAMPLEID_: 21, origin: 'somatic' },\n\t\t\t\t\t{ dt: 2, class: 'Blank', _SAMPLEID_: 21 },\n\t\t\t\t\t{ dt: 4, class: 'WT', _SAMPLEID_: 21 }\n\t\t\t\t]\n\t\t\t\t*/\n\t\t\t\t/* tvs.values is an array that stores classes (for each available dt) that have/haven't been crossed out by the user at this round of edit-and-apply, e.g.\n [\n {dt: 1, mclassLst: ['WT'], mclassExcludeLst: ['Blank'], origin: 'germline'}\n {dt: 1, mclassLst: ['Blank', 'WT', 'M'], mclassExcludeLst:[], origin:'somatic'},\n {dt: 2, mclassLst: ['Blank', 'WT'], mclassExcludeLst:[]}\n {dt: 4, mclassLst: ['WT', 'CNV_loss'], mclassExcludeLst:[]}\n ]\n */\n\t\t\t\tconst svalues = samplevalue.values || [samplevalue]\n\t\t\t\tfor (const sv of svalues) {\n\t\t\t\t\tthistermmatch =\n\t\t\t\t\t\tt.values.find(\n\t\t\t\t\t\t\t(v: any) =>\n\t\t\t\t\t\t\t\tv.dt == sv.dt &&\n\t\t\t\t\t\t\t\t(!v.origin || sv.origin == v.origin) &&\n\t\t\t\t\t\t\t\t(!v.mclasslst || v.mclasslst.includes(sv.class))\n\t\t\t\t\t\t) && true\n\t\t\t\t\tif (thistermmatch) break\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow 'unknown term type [sample_match_termvaluesetting() shared/utils/src/filter.ts]'\n\t\t\t}\n\n\t\t\tif (t.isnot) {\n\t\t\t\tthistermmatch = !thistermmatch\n\t\t\t}\n\t\t\tif (thistermmatch) numberofmatchedterms++\n\t\t}\n\n\t\t// if one tvslst is matched with an \"or\" (Set UNION), then sample is okay\n\t\tif (filter.join == 'or') {\n\t\t\tif (numberofmatchedterms && filter.in) return true\n\t\t\tif (!numberofmatchedterms && !filter.in) return true\n\t\t}\n\t}\n\t// for join=\"and\" (Set intersection)\n\tif (!('in' in filter)) (filter as any).in = true // casting to any avoids tsc err despite it's typed!\n\treturn filter.in == (numberofmatchedterms == lst.length)\n}\n\n/**\n * Recursively processes filter items and sets dataset annotations\n * @param item Filter item to process\n * @param ds Optional dataset with annotation functionality\n */\nexport function setDatasetAnnotations(item: Filter | { type: 'tvs'; tvs: Tvs }, ds: Dataset | null = null): void {\n\tif (item.type == 'tvslst') {\n\t\tfor (const subitem of item.lst) {\n\t\t\tsetDatasetAnnotations(subitem, ds)\n\t\t}\n\t} else {\n\t\tif (ds && typeof ds.setAnnoByTermId == 'function') {\n\t\t\tds.setAnnoByTermId(item.tvs.term.id)\n\t\t}\n\t\tif (item.tvs.term.type == 'categorical') {\n\t\t\tconst tvsAny = item.tvs as any\n\t\t\ttvsAny.valueset = new Set(tvsAny.values.map((i: any) => i.key))\n\t\t}\n\t}\n}\n\n/**\n * Gets the precomputed key for a condition term based on bar_by and value_by settings\n */\nfunction getPrecomputedKey(q: any): string {\n\tconst precomputedKey =\n\t\tq.bar_by_children && q.value_by_max_grade\n\t\t\t? 'childrenAtMaxGrade'\n\t\t\t: q.bar_by_children && q.value_by_most_recent\n\t\t\t? 'childrenAtMostRecent'\n\t\t\t: q.bar_by_children && q.value_by_computable_grade\n\t\t\t? 'children'\n\t\t\t: q.bar_by_grade && q.value_by_max_grade\n\t\t\t? 'maxGrade'\n\t\t\t: q.bar_by_grade && q.value_by_most_recent\n\t\t\t? 'mostRecentGrades'\n\t\t\t: q.bar_by_grade && q.value_by_computable_grade\n\t\t\t? 'computableGrades'\n\t\t\t: ''\n\tif (!precomputedKey) throw `unknown condition term bar_by_* and/or value_by_*`\n\treturn precomputedKey\n}\n\n/**\n * Joins a list of filters into the first filter with \"and\", returns joined filter\n * Used by caller app to join hidden filters into a visible filter\n * @param lst List of filters to join\n * @returns The joined filter\n */\nexport function filterJoin(lst: Filter[]): Filter | undefined {\n\tif (!lst || lst.length == 0) return\n\tlet f = JSON.parse(JSON.stringify(lst[0]))\n\tif (lst.length == 1) return f\n\t// more than 1 item, will join\n\tif (f.lst.length < 2) {\n\t\tif (f.join !== '') throw 'filter.join must be an empty string \"\" when filter.lst.length < 2'\n\t\tf.join = 'and'\n\t} else if (f.join == 'or') {\n\t\t// f is \"or\", wrap it with another root layer of \"and\"\n\t\tf = {\n\t\t\ttype: 'tvslst',\n\t\t\tjoin: 'and',\n\t\t\tin: true,\n\t\t\tlst: [f]\n\t\t}\n\t} else if (f.join != 'and') {\n\t\tthrow 'filter.join must be either \"and\" or \"or\" when .lst length > 1'\n\t}\n\t// now, f.join should be \"and\"\n\t// if the argument lst[0].join == \"and\",\n\t// then the f.in boolean value is reused\n\tfor (let i = 1; i < lst.length; i++) {\n\t\tconst f2 = JSON.parse(JSON.stringify(lst[i]))\n\t\tif (f2.join == 'or') f.lst.push(f2)\n\t\telse f.lst.push(...f2.lst)\n\t}\n\t// if f ends up single-tvs item (from joining single tvs to empty filter), need to set join to '' per filter spec\n\tif (f.lst.length == 1 && f.lst[0].type == 'tvs') {\n\t\tf.join = ''\n\t}\n\treturn f\n}\n\n/**\n * Creates a wrapped tvslst (term value settings list) filter object\n * @param lst List of filter items\n * @param join Join operation (and/or)\n * @param $id Optional filter ID\n * @returns Wrapped filter object\n */\nexport function getWrappedTvslst(lst: Filter['lst'] = [], join: string = '', $id: string | null = null): Filter {\n\tconst filter: Filter = {\n\t\ttype: 'tvslst',\n\t\tin: true,\n\t\tjoin,\n\t\tlst\n\t}\n\tif ($id !== null) filter.$id = $id\n\treturn filter\n}\n\nexport function getTvsDenominators(term: any): string[] {\n\t/* Denominator term ids of a termCollection tvs, which reduces the collection to a\n\tpercentage. term.denominators[] is explicit, matching q.denominators[] of a fraction\n\ttermCollection tw. Filters saved before term.denominators[] existed implied the\n\tdenominator from term.termlst[], which was pruned to the selected members. */\n\tif (Array.isArray(term?.denominators) && term.denominators.length) return term.denominators\n\treturn (term?.termlst || []).map(t => t.id)\n}\n\n/**\n * Validates the term obj of a termCollection tvs, and its fraction member selection\n * @param term tvs.term of a termCollection. term.numerators[] is optional: a tvs may brush\n * on a single member instead of the numerator/denominator fraction. When present, it is\n * validated against the denominators from getTvsDenominators()\n * @throws Error if validation fails\n */\nexport function validateTermCollectionTvs(term: CollectionTermLike): void {\n\tconst memberIds = validateTermCollectionTerm(term)\n\tif (!term.numerators) return // not filtering on a fraction, nothing more to validate\n\tvalidateFractionMembers(term.numerators, getTvsDenominators(term), memberIds)\n}\n", "import { mclass } from './common.js'\nimport { matchesGvQueryEntry } from './terms.js'\n\n/*\ntw.q.variantFilter of a geneVariant termwrapper, i.e. the per-row variant filter\nthat lets two rows of the same gene, e.g. KRAS G12D and KRAS G12V, each show only\nits own variants. Only meaningful for q.type='values'; a groupset assigns samples\nto named groups instead and does its own filtering server-side.\n\n!!! NOTE !!!\nThe tvs filters on the server decide whether a *sample* passes. This one decides\nwhether a single *variant of a sample* is shown by the row it is filtered on, so\nit is applied per value of an annotation and not per sample. Anything that can\nonly be answered by looking at a sample as a whole, e.g. how many mutations it\nhas, is rejected by validateVariantFilter() rather than silently ignored.\n\nThe filter reuses the tvs shape that the variant config UI already emits for a\ngroupset group, so that the same UI can be wired to it: leaf items are tvs on the\nchild dt terms of the geneVariant term, whose tvs.values[] entries are\n{ key: <mutation class>, mname?: <amino acid change>, gene? }.\n*/\n\n/** a mutation class that is a per-dt testing status rather than a variant:\n * WT = tested, no mutation of this dt; Blank = not tested for this dt */\nconst statusClasses = new Set(['WT', 'Blank'])\n\n/** a leaf of a variant filter is a tvs on a child dt term of the geneVariant term */\ntype VariantTvs = {\n\tterm: { dt: number; origin?: string; [k: string]: any }\n\tvalues: { key: string; mname?: string; gene?: string; [k: string]: any }[]\n\tisnot?: boolean\n\t[k: string]: any\n}\n\nexport type VariantFilter = {\n\ttype: 'tvslst'\n\tin?: boolean\n\tjoin?: string\n\tlst: ({ type: 'tvs'; tvs: VariantTvs } | VariantFilter)[]\n}\n\n/** a variant of a sample, as returned for a geneVariant term */\ntype VariantValue = {\n\tdt: number\n\tclass: string\n\tmname?: string\n\tgene?: string\n\torigin?: string\n\t[k: string]: any\n}\n\nfunction unsupported(what: string) {\n\treturn (\n\t\t`tw.q.variantFilter does not support ${what}, which qualifies a sample rather than an individual variant. ` +\n\t\t`Use a groupset (q.type='custom-groupset') for a sample-level filter.`\n\t)\n}\n\n/*\nValidate a variant filter, throwing on anything that cannot be honored one\nvariant at a time. Called when filling a tw, so that a bad filter fails at plot\ncreation with a usable message instead of quietly showing the wrong variants.\n\nfilter: tw.q.variantFilter\nterm: the geneVariant tw.term, to check the filtered dts against its child dt\n terms. optional, as term.childTerms[] may not be filled in yet\n*/\nexport function validateVariantFilter(filter: any, term?: any): void {\n\tif (!filter) return\n\tif (filter.type != 'tvslst') throw `tw.q.variantFilter.type must be 'tvslst'`\n\tif (!Array.isArray(filter.lst) || !filter.lst.length) throw 'tw.q.variantFilter.lst[] is empty'\n\tif (filter.lst.length > 1 && filter.join != 'and' && filter.join != 'or')\n\t\tthrow `tw.q.variantFilter.join must be 'and' or 'or' when lst[] has more than one item`\n\tconst dts = term?.childTerms?.length ? new Set(term.childTerms.map((t: any) => t.dt)) : null\n\tfor (const item of filter.lst) {\n\t\tif (item.type == 'tvslst') {\n\t\t\tvalidateVariantFilter(item, term)\n\t\t\tcontinue\n\t\t}\n\t\tif (item.type != 'tvs') throw `unexpected tw.q.variantFilter item.type='${item.type}'`\n\t\tconst tvs = item.tvs\n\t\tif (!tvs) throw 'missing tvs of a tw.q.variantFilter item'\n\t\tif (!Number.isInteger(tvs.term?.dt)) throw 'tw.q.variantFilter tvs.term must be a dt term, with an integer .dt'\n\t\tif (dts && !dts.has(tvs.term.dt))\n\t\t\tthrow `tw.q.variantFilter tvs.term.dt=${tvs.term.dt} is not a dt of term '${term.name}'`\n\t\tif (!Array.isArray(tvs.values) || !tvs.values.length) throw 'tw.q.variantFilter tvs.values[] is empty'\n\t\tfor (const v of tvs.values) {\n\t\t\tif (!v.key) throw 'a tw.q.variantFilter tvs.values[] entry is missing .key'\n\t\t\tif (statusClasses.has(v.key))\n\t\t\t\tthrow `tw.q.variantFilter cannot select the '${v.key}' class, which is a testing status and not a variant`\n\t\t\tif (v.partnerBreakpointRange) throw unsupported('partnerBreakpointRange')\n\t\t}\n\t\t// these tvs props qualify a sample by counting or comparing across its\n\t\t// mutations, or by data that a matrix annotation does not carry\n\t\tif (tvs.genotype && tvs.genotype != 'variant') throw unsupported(`genotype='${tvs.genotype}'`)\n\t\tif (tvs.mcount && tvs.mcount != 'any') throw unsupported(`mcount='${tvs.mcount}'`)\n\t\tif (tvs.mafFilter) throw unsupported('mafFilter')\n\t\tif (tvs.continuousCnv) throw unsupported('continuousCnv')\n\t\tif (tvs.selfBreakpointRange) throw unsupported('selfBreakpointRange')\n\t}\n}\n\n/** the dts, and origins when a leaf is origin-specific, that a filter covers.\n * a row shows only what its filter names, so a value of an uncovered dt is not\n * rendered by that row at all */\nfunction getFilterScope(filter: any, scope = new Set<string>()): Set<string> {\n\tfor (const item of filter.lst) {\n\t\tif (item.type == 'tvslst') getFilterScope(item, scope)\n\t\telse scope.add(`${item.tvs.term.dt}:${item.tvs.term.origin || '*'}`)\n\t}\n\treturn scope\n}\n\nfunction isInScope(v: VariantValue, scope: Set<string>): boolean {\n\treturn scope.has(`${v.dt}:*`) || scope.has(`${v.dt}:${v.origin || ''}`)\n}\n\nfunction matchTvs(v: VariantValue, tvs: VariantTvs): boolean {\n\tlet match = false\n\tif (v.dt == tvs.term.dt && (!tvs.term.origin || v.origin == tvs.term.origin)) {\n\t\t/* an entry without .mname matches any variant of its class; with .mname\n\t\t(e.g. \"G12D\") it matches only that amino acid change, further restricted to the\n\t\tgene or region it names, see matchesGvQueryEntry(). mirrors filterByItem() in\n\t\tserver/src/mds3.init.js, so that the same tvs means the same thing on both\n\t\tsides */\n\t\tmatch = tvs.values.some(e => e.key == v.class && (!e.mname || (e.mname == v.mname && matchesGvQueryEntry(e, v))))\n\t}\n\treturn tvs.isnot ? !match : match\n}\n\nfunction matchFilter(v: VariantValue, filter: any): boolean {\n\tconst lst = filter.type == 'tvslst' ? filter.lst : [filter]\n\tlet numMatched = 0\n\tfor (const item of lst) {\n\t\tconst matched = item.type == 'tvslst' ? matchFilter(v, item) : matchTvs(v, item.tvs)\n\t\tif (matched) numMatched++\n\t\tif (filter.join == 'or' && numMatched) break\n\t}\n\tconst pass = filter.join == 'or' ? numMatched > 0 : numMatched == lst.length\n\treturn filter.in === false ? !pass : pass\n}\n\n/*\nReturn the values of a geneVariant annotation that the filtered row shows.\nDoes not mutate the input array or its entries.\n\nvalues: anno.values[] of one sample for one geneVariant term\nfilter: tw.q.variantFilter, already validated\n\n- a value of a dt that the filter does not name is dropped: a row shows only the\n dts that its filter covers, so that e.g. a KRAS G12D row does not also render\n that sample's KRAS CNV\n- a WT or Blank value is a per-dt testing status and not a variant, so it is kept\n as-is for every covered dt\n- when a covered dt had variants but none of them matched, the sample was tested\n and simply does not carry what the row asks for, so it is annotated as wildtype\n for that dt. Without this a KRAS G12V sample would render as an empty, i.e.\n untested, cell in a KRAS G12D row\n*/\nexport function filterVariantValues(values: VariantValue[], filter: any): VariantValue[] {\n\tif (!filter || !values) return values\n\tconst scope = getFilterScope(filter)\n\tconst kept: VariantValue[] = []\n\t/** covered dt+origin that already reads as tested, either by a WT/Blank status\n\t * or by a matching variant */\n\tconst annotated = new Set<string>()\n\t/** covered dt+origin whose variants were all dropped, k: dt+origin,\n\t * v: one of the dropped values, to copy the shared props from */\n\tconst dropped = new Map<string, VariantValue>()\n\tfor (const v of values) {\n\t\tif (!isInScope(v, scope)) continue\n\t\tconst key = `${v.dt}:${v.origin || ''}`\n\t\tif (statusClasses.has(v.class) || matchFilter(v, filter)) {\n\t\t\tkept.push(v)\n\t\t\tannotated.add(key)\n\t\t} else if (!dropped.has(key)) {\n\t\t\tdropped.set(key, v)\n\t\t}\n\t}\n\tfor (const [key, v] of dropped) {\n\t\tif (annotated.has(key)) continue\n\t\tconst wt: VariantValue = { dt: v.dt, class: 'WT', label: mclass.WT.label }\n\t\tif (v.gene) wt.gene = v.gene\n\t\tif (v.origin) wt.origin = v.origin\n\t\tkept.push(wt)\n\t}\n\treturn kept\n}\n\n/*\nA short label for what a filter selects, to distinguish rows of the same gene.\nEach entry is named by its amino acid change when it has one, e.g. \"G12D\", and by\nits mutation class label otherwise, e.g. \"FRAMESHIFT\". Naming a specific variant\nby its class would overstate the row, since the class also covers variants that\nthe filter does not select. Only the selected, i.e. not negated, entries are\nnamed; returns an empty string when there is nothing nameable, in which case the\ncaller should keep the plain term name.\n\nmclassOverride: dataset/chart-level mclass overrides, see the comment in\n client/plots/matrix/matrix.js\n*/\nexport function variantFilterLabel(filter: any, mclassOverride?: { [k: string]: any }, maxItems = 3): string {\n\tif (!filter) return ''\n\tconst entries: { key: string; mname?: string }[] = []\n\tcollect(filter, false)\n\t/* negated tracks the effective sense of the enclosing lists: a tvslst with\n\tin=false renders the complement of what it lists, and nesting flips it again,\n\tas matchFilter() applies it. a leaf is only nameable when the lists and its own\n\tisnot agree, otherwise a row rendering everything *except* G12D would be\n\tlabeled \"KRAS G12D\" */\n\tfunction collect(f: any, negated: boolean) {\n\t\tconst flipped = f.in === false ? !negated : negated\n\t\tfor (const item of f.lst) {\n\t\t\tif (item.type == 'tvslst') collect(item, flipped)\n\t\t\telse if (flipped === !!item.tvs.isnot) entries.push(...item.tvs.values)\n\t\t}\n\t}\n\tif (!entries.length) return ''\n\tconst classes = mclass as { [k: string]: any }\n\tconst names = [\n\t\t...new Set(entries.map(e => e.mname || mclassOverride?.[e.key]?.label || classes[e.key]?.label || e.key))\n\t]\n\treturn names.length > maxItems ? `${names.slice(0, maxItems).join('/')}\u2026` : names.join('/')\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,494 @@
|
|
|
1
|
+
import {
|
|
2
|
+
rehydrateFilter
|
|
3
|
+
} from "./chunk-SKMFMGCD.js";
|
|
4
|
+
import {
|
|
5
|
+
findParent,
|
|
6
|
+
getFilter,
|
|
7
|
+
getFilterItemByTag,
|
|
8
|
+
getSamplelstTW
|
|
9
|
+
} from "./chunk-D5PX2UDG.js";
|
|
10
|
+
import {
|
|
11
|
+
importPlot
|
|
12
|
+
} from "./chunk-OPMMU6DQ.js";
|
|
13
|
+
import {
|
|
14
|
+
StoreApi,
|
|
15
|
+
StoreBase
|
|
16
|
+
} from "./chunk-H6INPPUC.js";
|
|
17
|
+
import {
|
|
18
|
+
CustomError
|
|
19
|
+
} from "./chunk-W5J3LTYS.js";
|
|
20
|
+
|
|
21
|
+
// mass/store.ts
|
|
22
|
+
var idPrefix = "_MASS_AUTOID_" + Math.random().toString().slice(-6);
|
|
23
|
+
var id = 0;
|
|
24
|
+
var usedPlotIds = /* @__PURE__ */ new Set();
|
|
25
|
+
function getId() {
|
|
26
|
+
return idPrefix + "_" + id++;
|
|
27
|
+
}
|
|
28
|
+
var navHeaderModes = /* @__PURE__ */ new Set([
|
|
29
|
+
"with_tabs",
|
|
30
|
+
// default, shows tabs cohort/charts/filter etc
|
|
31
|
+
"hidden",
|
|
32
|
+
// no header
|
|
33
|
+
"search_only",
|
|
34
|
+
// ?
|
|
35
|
+
"hide_search",
|
|
36
|
+
// ?
|
|
37
|
+
"with_cohortHtmlSelect",
|
|
38
|
+
// only show cohort toggle as <select>
|
|
39
|
+
"only_buttons"
|
|
40
|
+
]);
|
|
41
|
+
var defaultState = {
|
|
42
|
+
nav: {
|
|
43
|
+
header_mode: "with_tabs",
|
|
44
|
+
activeTab: 0
|
|
45
|
+
// -1 for no active tab and all closed
|
|
46
|
+
},
|
|
47
|
+
// will be ignored if there is no dataset termdb.selectCohort
|
|
48
|
+
// or value will be set to match a filter node that has been tagged
|
|
49
|
+
// as 'cohortfilter' in state.termfilter.filter
|
|
50
|
+
activeCohort: 0,
|
|
51
|
+
search: { isVisible: true },
|
|
52
|
+
plots: [],
|
|
53
|
+
termfilter: {
|
|
54
|
+
filter: {
|
|
55
|
+
type: "tvslst",
|
|
56
|
+
in: true,
|
|
57
|
+
join: "",
|
|
58
|
+
lst: []
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
reuse: {
|
|
62
|
+
customTermQ: {
|
|
63
|
+
byId: {},
|
|
64
|
+
// non-dictionary terms do not have a term.id,
|
|
65
|
+
// save by term.type + name?
|
|
66
|
+
byName: {}
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
groups: [],
|
|
70
|
+
// element: {name=str, filter={}}, to show in Groups tab
|
|
71
|
+
customTerms: [],
|
|
72
|
+
// element: {name=str, term={}}, able to attach more attr to object if needed
|
|
73
|
+
autoSave: true
|
|
74
|
+
};
|
|
75
|
+
var MassStore = class extends StoreBase {
|
|
76
|
+
constructor(opts, api) {
|
|
77
|
+
super(opts);
|
|
78
|
+
// expected class-specific props
|
|
79
|
+
this.defaultState = defaultState;
|
|
80
|
+
this.plotAdjusters = /* @__PURE__ */ new WeakMap();
|
|
81
|
+
this.app = opts.app;
|
|
82
|
+
this.api = api;
|
|
83
|
+
this.type = "store";
|
|
84
|
+
let savedState = {};
|
|
85
|
+
try {
|
|
86
|
+
const key = window.navigator.webdriver && window["SJPP_E2E_STORAGE_STATES_KEY"];
|
|
87
|
+
const savedStateStr = key && window.localStorage.getItem("SJPP_E2E_STORAGE_STATES") || "{}";
|
|
88
|
+
savedState = JSON.parse(savedStateStr)[key]?.state || {};
|
|
89
|
+
} catch (_) {
|
|
90
|
+
savedState = {};
|
|
91
|
+
}
|
|
92
|
+
this.state = this.copyMerge(this.toJson(defaultState), opts.state, savedState);
|
|
93
|
+
this.prevGeneratedId = 0;
|
|
94
|
+
}
|
|
95
|
+
static {
|
|
96
|
+
this.type = "store";
|
|
97
|
+
}
|
|
98
|
+
validateOpts(opts) {
|
|
99
|
+
const s = opts.state;
|
|
100
|
+
if (s.vocab.dslabel) {
|
|
101
|
+
if (!s.vocab.genome) throw ".state[.vocab].genome missing";
|
|
102
|
+
} else {
|
|
103
|
+
if (!Array.isArray(s.vocab.terms)) throw "vocab.terms must be an array of objects";
|
|
104
|
+
}
|
|
105
|
+
return opts;
|
|
106
|
+
}
|
|
107
|
+
validateState() {
|
|
108
|
+
if (!navHeaderModes.has(this.state.nav.header_mode)) throw "invalid state.nav.header_mode";
|
|
109
|
+
}
|
|
110
|
+
async init() {
|
|
111
|
+
try {
|
|
112
|
+
this.state.termdbConfig = await this.app.vocabApi.getTermdbConfig();
|
|
113
|
+
await this.setTermfilter();
|
|
114
|
+
await this.rehydrateGroups();
|
|
115
|
+
await this.app.vocabApi.main({
|
|
116
|
+
termfilter: JSON.parse(JSON.stringify(this.state.termfilter)),
|
|
117
|
+
termdbConfig: this.state.termdbConfig
|
|
118
|
+
});
|
|
119
|
+
const invalidPlots = [];
|
|
120
|
+
for (const [i, savedPlot] of this.state.plots.entries()) {
|
|
121
|
+
let plot;
|
|
122
|
+
try {
|
|
123
|
+
const _ = await importPlot(savedPlot.chartType);
|
|
124
|
+
plot = await _.getPlotConfig(savedPlot, this.app, this.state.activeCohort);
|
|
125
|
+
} catch (e) {
|
|
126
|
+
this.app.printError(e);
|
|
127
|
+
console.error(`getPlotConfig() failed: ${e}`);
|
|
128
|
+
}
|
|
129
|
+
if (!plot) {
|
|
130
|
+
invalidPlots.push(i);
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
this.state.plots[i] = plot;
|
|
134
|
+
if (!("id" in plot)) plot.id = `_AUTOID_${id++}_${i}`;
|
|
135
|
+
if (plot.mayAdjustConfig) {
|
|
136
|
+
plot.mayAdjustConfig(plot);
|
|
137
|
+
this.plotAdjusters.set(plot, plot.mayAdjustConfig);
|
|
138
|
+
delete plot.mayAdjustConfig;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (invalidPlots.length) {
|
|
142
|
+
for (const i of invalidPlots) {
|
|
143
|
+
this.state.plots.splice(i, 1);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
} catch (e) {
|
|
147
|
+
console.log("store.init() error", e);
|
|
148
|
+
throw e;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
setId(item) {
|
|
152
|
+
item.$id = this.prevGeneratedId++;
|
|
153
|
+
if (item.$lst) {
|
|
154
|
+
for (const subitem of item.$lst) {
|
|
155
|
+
this.setId(subitem);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async setTermfilter() {
|
|
160
|
+
let filterUiRoot = getFilterItemByTag(this.state.termfilter.filter, "filterUiRoot");
|
|
161
|
+
if (!filterUiRoot) {
|
|
162
|
+
this.state.termfilter.filter.tag = "filterUiRoot";
|
|
163
|
+
filterUiRoot = this.state.termfilter.filter;
|
|
164
|
+
}
|
|
165
|
+
await Promise.all(rehydrateFilter(this.state.termfilter.filter, this.app.vocabApi));
|
|
166
|
+
if (!this.state.termdbConfig.selectCohort) {
|
|
167
|
+
this.state.activeCohort = -1;
|
|
168
|
+
if (this.state.activeTab === 0) this.state.activeTab = 1;
|
|
169
|
+
if (this.state.nav.header_mode === "with_cohortHtmlSelect") {
|
|
170
|
+
console.warn(`no termdbConfig.selectCohort to use for nav.header_mode = 'with_cohortHtmlSelect'`);
|
|
171
|
+
this.state.nav.header_mode = "search_only";
|
|
172
|
+
}
|
|
173
|
+
} else {
|
|
174
|
+
let cohortFilter = getFilterItemByTag(this.state.termfilter.filter, "cohortFilter");
|
|
175
|
+
if (!cohortFilter) {
|
|
176
|
+
cohortFilter = {
|
|
177
|
+
tag: "cohortFilter",
|
|
178
|
+
type: "tvs",
|
|
179
|
+
tvs: {
|
|
180
|
+
term: JSON.parse(JSON.stringify(this.state.termdbConfig.selectCohort.term)),
|
|
181
|
+
values: this.state.activeCohort == -1 ? [] : this.state.termdbConfig.selectCohort.values[this.state.activeCohort].keys.map((key) => {
|
|
182
|
+
return { key, label: key };
|
|
183
|
+
})
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
this.state.termfilter.filter = {
|
|
187
|
+
type: "tvslst",
|
|
188
|
+
in: true,
|
|
189
|
+
join: "and",
|
|
190
|
+
lst: [cohortFilter, filterUiRoot]
|
|
191
|
+
};
|
|
192
|
+
} else {
|
|
193
|
+
const sorter = (a, b) => a < b ? -1 : 1;
|
|
194
|
+
cohortFilter.tvs.values.sort((a, b) => a.key < b.key ? -1 : 1);
|
|
195
|
+
const keysStr = JSON.stringify(cohortFilter.tvs.values.map((v) => v.key).sort(sorter));
|
|
196
|
+
const i = this.state.termdbConfig.selectCohort.values.findIndex(
|
|
197
|
+
(v) => keysStr == JSON.stringify(v.keys.sort(sorter))
|
|
198
|
+
);
|
|
199
|
+
if (this.state.activeCohort !== -1 && this.state.activeCohort !== 0 && i !== this.state.activeCohort) {
|
|
200
|
+
console.log("Warning: cohortFilter will override the state.activeCohort due to mismatch");
|
|
201
|
+
}
|
|
202
|
+
this.state.activeCohort = i;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
async rehydrateGroups() {
|
|
207
|
+
const lst = [];
|
|
208
|
+
for (const g of this.state.groups) {
|
|
209
|
+
lst.push(...rehydrateFilter(g.filter, this.app.vocabApi));
|
|
210
|
+
}
|
|
211
|
+
await Promise.all(lst);
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
MassStore.prototype.actions = {
|
|
215
|
+
// Type '{ app_refresh(this: MassStore, action?: {}): Promise<void>; tab_set(action: any): void; cohort_set(action: any): void; plot_prep(action: any): Promise<void>; ... 13 more ...; delete_group({ name }: { ...; }): void; }' is not assignable to type '(action: { [prop: string]: any; type: string; }) => void | Promise<void>'.
|
|
216
|
+
// Object literal may only specify known properties, and 'app_refresh' does not exist in type '(action: { [prop: string]: any; type: string; }) => void | Promise<void>'.
|
|
217
|
+
async app_refresh(action) {
|
|
218
|
+
this.state = this.copyMerge(this.toJson(this.state), action.state || {});
|
|
219
|
+
const subactionPlotIds = /* @__PURE__ */ new Set();
|
|
220
|
+
const promises = [];
|
|
221
|
+
if (action.subactions) {
|
|
222
|
+
for (const a of action.subactions) {
|
|
223
|
+
promises.push(this.actions[a.type].call(this, a));
|
|
224
|
+
if (a.type.startsWith("plot_")) subactionPlotIds.add(a.id);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
await Promise.all(promises);
|
|
228
|
+
for (const plot of this.state.plots) {
|
|
229
|
+
const mayAdjustConfig = this.plotAdjusters.get(plot);
|
|
230
|
+
if (mayAdjustConfig && !subactionPlotIds.has(plot.id)) {
|
|
231
|
+
mayAdjustConfig(plot, action.config);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
tab_set(action) {
|
|
236
|
+
this.state.nav.activeTab = action.activeTab;
|
|
237
|
+
},
|
|
238
|
+
cohort_set(action) {
|
|
239
|
+
this.state.activeCohort = action.activeCohort;
|
|
240
|
+
const cohort = this.state.termdbConfig.selectCohort.values[action.activeCohort];
|
|
241
|
+
const cohortFilter = getFilterItemByTag(this.state.termfilter.filter, "cohortFilter");
|
|
242
|
+
if (!cohortFilter) throw `No item tagged with 'cohortFilter'`;
|
|
243
|
+
cohortFilter.tvs.values = cohort.keys.map((key) => {
|
|
244
|
+
return { key, label: key };
|
|
245
|
+
});
|
|
246
|
+
},
|
|
247
|
+
// dispatch "plot_prep" action to produce a 'initiating' UI of this plot, for user to fill in additional details to launch the plot
|
|
248
|
+
// example: table, scatterplot which requires user to select two terms
|
|
249
|
+
async plot_prep(action) {
|
|
250
|
+
if (usedPlotIds.has(action.id)) delete action.id;
|
|
251
|
+
const plot = {
|
|
252
|
+
// rx.getComponents() relies on parsing dot-separated key names that breaks if a key has a dot,
|
|
253
|
+
// the plot.id value should be assumed to be auto-generated and to not have any non-rx usage expectations
|
|
254
|
+
id: "id" in action && !action.id.includes(".") ? action.id : getId()
|
|
255
|
+
};
|
|
256
|
+
usedPlotIds.add(plot.id);
|
|
257
|
+
if (!action.config) throw ".config{} missing for plot_prep";
|
|
258
|
+
if (action.config.chartType && Object.keys(action.config).length == 1) {
|
|
259
|
+
const _ = await importPlot(action.config.chartType);
|
|
260
|
+
const config = await _.getPlotConfig(action.config, this.app, this.state.activeCohort);
|
|
261
|
+
action.config = Object.assign(config, action.config);
|
|
262
|
+
}
|
|
263
|
+
Object.assign(plot, action.config);
|
|
264
|
+
this.state.plots.push(plot);
|
|
265
|
+
},
|
|
266
|
+
async plot_create(action) {
|
|
267
|
+
if (usedPlotIds.has(action.id)) delete action.id;
|
|
268
|
+
const _ = await importPlot(action.config.chartType);
|
|
269
|
+
const plot = await _.getPlotConfig(action.config, this.app, this.state.activeCohort);
|
|
270
|
+
if (!("id" in action) || action.id.includes(".")) action.id = getId();
|
|
271
|
+
plot.id = action.id;
|
|
272
|
+
usedPlotIds.add(plot.id);
|
|
273
|
+
if (plot.mayAdjustConfig) {
|
|
274
|
+
plot.mayAdjustConfig(plot);
|
|
275
|
+
this.plotAdjusters.set(plot, plot.mayAdjustConfig);
|
|
276
|
+
delete plot.mayAdjustConfig;
|
|
277
|
+
}
|
|
278
|
+
this.state.plots.push(plot);
|
|
279
|
+
if (plot.sections) {
|
|
280
|
+
for (const section of plot.sections) {
|
|
281
|
+
for (const p of section.plots) {
|
|
282
|
+
p.parentId = plot.id;
|
|
283
|
+
if (!p.id) p.id = getId();
|
|
284
|
+
const _2 = await importPlot(p.chartType);
|
|
285
|
+
const config = await _2.getPlotConfig(p, this.app, this.state.activeCohort);
|
|
286
|
+
this.state.plots.push(config);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
plot_edit(action) {
|
|
292
|
+
const plot = this.state.plots.find((p) => p.id === action.id);
|
|
293
|
+
if (!plot) {
|
|
294
|
+
throw new CustomError(`missing plot config for id='${action.id}' in store.plot_edit()`, {
|
|
295
|
+
name: "MISSING_PLOT_CONFIG",
|
|
296
|
+
level: "warn"
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
this.copyMerge(plot, action.config, action.opts ? action.opts : {});
|
|
300
|
+
const mayAdjustConfig = this.plotAdjusters.get(plot);
|
|
301
|
+
if (mayAdjustConfig) mayAdjustConfig(plot, action.config);
|
|
302
|
+
if (action.config && "cutoff" in action.config) {
|
|
303
|
+
plot.cutoff = action.config.cutoff;
|
|
304
|
+
} else {
|
|
305
|
+
delete plot.cutoff;
|
|
306
|
+
}
|
|
307
|
+
if (!action.parentId && plot.parentId) action.parentId = plot.parentId;
|
|
308
|
+
},
|
|
309
|
+
plot_delete(action) {
|
|
310
|
+
const i = this.state.plots.findIndex((p) => p.id === action.id);
|
|
311
|
+
if (i !== -1) {
|
|
312
|
+
this.state.plots.splice(i, 1);
|
|
313
|
+
const plot = this.state.plots[i];
|
|
314
|
+
if (!action.parentId && plot?.parentId) action.parentId = plot.parentId;
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
plot_nestedEdits(action) {
|
|
318
|
+
const plot = this.state.plots.find((p) => p.id === action.id);
|
|
319
|
+
if (!plot) {
|
|
320
|
+
throw new CustomError(`missing plot config for id='${action.id}' in store.plot_edit_nested`, {
|
|
321
|
+
name: "MISSING_PLOT_CONFIG",
|
|
322
|
+
level: "warn"
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
for (const edit of action.edits) {
|
|
326
|
+
const lastKey = edit.nestedKeys.pop();
|
|
327
|
+
const obj = edit.nestedKeys.reduce((obj2, key) => obj2[key], plot);
|
|
328
|
+
obj[lastKey] = edit.value;
|
|
329
|
+
}
|
|
330
|
+
if (!action.parentId && plot.parentId) action.parentId = plot.parentId;
|
|
331
|
+
},
|
|
332
|
+
// TODO: delete this action? does not seem to be used
|
|
333
|
+
async plot_splice(action) {
|
|
334
|
+
for (const a of action.subactions) {
|
|
335
|
+
await this.actions[a.type].call(this, a);
|
|
336
|
+
}
|
|
337
|
+
},
|
|
338
|
+
filter_replace(action) {
|
|
339
|
+
if ("filter0" in action) {
|
|
340
|
+
this.state.termfilter.filter0 = action.filter0;
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
const replacementFilter = action.filter ? action.filter : { type: "tvslst", join: "", in: 1, lst: [] };
|
|
344
|
+
if (!action.filter.tag) {
|
|
345
|
+
this.state.termfilter.filter = replacementFilter;
|
|
346
|
+
} else {
|
|
347
|
+
const filter = getFilterItemByTag(this.state.termfilter.filter, action.filter.tag);
|
|
348
|
+
if (!filter) throw `cannot replace missing filter with tag '${action.filter.tag}'`;
|
|
349
|
+
const parent = findParent(this.state.termfilter.filter, filter.$id);
|
|
350
|
+
if (parent == filter) {
|
|
351
|
+
this.state.termfilter.filter = replacementFilter;
|
|
352
|
+
} else {
|
|
353
|
+
const i = parent.lst.indexOf(filter);
|
|
354
|
+
parent.lst[i] = replacementFilter;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
if (this.app.opts.app?.onFilterChange) this.app.opts.app.onFilterChange(this.state.plots);
|
|
358
|
+
},
|
|
359
|
+
cache_termq({ termId, q }) {
|
|
360
|
+
if (!termId) throw `missing termId for caching custom term.q`;
|
|
361
|
+
if (!q?.reuseId) throw `missing or empty tw.q.reuseId as cache identifier for term='${termId}'`;
|
|
362
|
+
const cache = this.state.reuse.customTermQ.byId;
|
|
363
|
+
if (!cache[termId]) cache[termId] = {};
|
|
364
|
+
cache[termId][q.reuseId] = q;
|
|
365
|
+
for (const plot of this.state.plots) {
|
|
366
|
+
if (!(plot.chartType in getTwsByChartType)) continue;
|
|
367
|
+
const twlst = getTwsByChartType[plot.chartType](plot);
|
|
368
|
+
for (const tw of twlst) {
|
|
369
|
+
if (tw?.q?.reuseId === q.reuseId) tw.q = q;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
uncache_termq({ term, q }) {
|
|
374
|
+
if (!term.id) throw `missing term.id for uncaching custom term.q`;
|
|
375
|
+
if (!q.reuseId) throw `missing qname as uncache identifier for term.id='${term.id}'`;
|
|
376
|
+
const cache = this.state.reuse.customTermQ.byId[term.id];
|
|
377
|
+
if (!cache) throw `missing term.q cache for term.id='${term.id}`;
|
|
378
|
+
if (!(q.reuseId in cache)) console.warn(`q.reuseId='${q.cacheid}' not cached for term.id='${term.id}'`);
|
|
379
|
+
else {
|
|
380
|
+
delete cache[q.reuseId];
|
|
381
|
+
for (const plot of this.state.plots) {
|
|
382
|
+
if (!(plot.chartType in getTwsByChartType)) continue;
|
|
383
|
+
const twlst = getTwsByChartType[plot.chartType](plot);
|
|
384
|
+
for (const tw of twlst) {
|
|
385
|
+
if (tw.q.reuseId === q.reuseId) {
|
|
386
|
+
delete tw.q.reuseId;
|
|
387
|
+
delete tw.q.name;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
},
|
|
393
|
+
add_customTerm(action) {
|
|
394
|
+
const i = action.obj.id ? this.state.customTerms.findIndex((term) => term.id === action.obj.id) : -1;
|
|
395
|
+
if (i === -1) this.state.customTerms.push(action.obj);
|
|
396
|
+
else this.state.customTerms[i] = action.obj;
|
|
397
|
+
},
|
|
398
|
+
delete_customTerm({ id: id2, name }) {
|
|
399
|
+
const i = this.state.customTerms.findIndex((term) => id2 ? term.id === id2 : term.name == name);
|
|
400
|
+
if (i != -1) this.state.customTerms.splice(i, 1);
|
|
401
|
+
},
|
|
402
|
+
add_group(action) {
|
|
403
|
+
if (this.state.nav.header_mode != "hidden") {
|
|
404
|
+
const group = action.obj;
|
|
405
|
+
const name = `Group ${this.state.groups.length + 1}`;
|
|
406
|
+
const samplelstTW = getSamplelstTW([group]);
|
|
407
|
+
const appGroup = {
|
|
408
|
+
name,
|
|
409
|
+
filter: getFilter(samplelstTW),
|
|
410
|
+
plotId: group.plotId
|
|
411
|
+
};
|
|
412
|
+
this.state.groups.push(appGroup);
|
|
413
|
+
this.state.nav.activeTab = 1;
|
|
414
|
+
} else if ("plotId" in action.obj) {
|
|
415
|
+
const plot = this.state.plots.find((p) => p.id == action.obj.plotId);
|
|
416
|
+
if (plot.groups) {
|
|
417
|
+
action.obj.index = plot.groups.length;
|
|
418
|
+
action.obj.name = `Group ${plot.groups.length + 1}`;
|
|
419
|
+
plot.groups.push(action.obj);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
},
|
|
423
|
+
rename_group(action) {
|
|
424
|
+
const index = action.index;
|
|
425
|
+
const newName = action.newName;
|
|
426
|
+
if (this.state.nav.header_mode != "hidden") {
|
|
427
|
+
this.state.groups[index].name = newName;
|
|
428
|
+
} else {
|
|
429
|
+
for (const plot of this.state.plots) {
|
|
430
|
+
if (plot?.groups) {
|
|
431
|
+
plot.groups[index].name = newName;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
},
|
|
436
|
+
change_color_group(action) {
|
|
437
|
+
const index = action.index;
|
|
438
|
+
const newColor = action.newColor;
|
|
439
|
+
if (this.state.nav.header_mode != "hidden") {
|
|
440
|
+
this.state.groups[index].color = newColor;
|
|
441
|
+
} else {
|
|
442
|
+
for (const plot of this.state.plots) {
|
|
443
|
+
if (plot?.groups) {
|
|
444
|
+
plot.groups[index].color = newColor;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
},
|
|
449
|
+
delete_group({ name }) {
|
|
450
|
+
if (this.state.nav.header_mode != "hidden") {
|
|
451
|
+
const i = this.state.groups.findIndex((i2) => i2.name == name);
|
|
452
|
+
if (i != -1) this.state.groups.splice(i, 1);
|
|
453
|
+
} else {
|
|
454
|
+
for (const plot of this.state.plots) {
|
|
455
|
+
if (plot?.groups) {
|
|
456
|
+
const j = plot.groups.findIndex((j2) => j2.name == name);
|
|
457
|
+
if (j != -1) plot.groups.splice(j, 1);
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
};
|
|
463
|
+
var getNestedChartSeriesDataTws = (plot) => [plot.term0, plot.term, plot.term2].filter((d) => !!d);
|
|
464
|
+
var getTwsByChartType = {
|
|
465
|
+
summary: getNestedChartSeriesDataTws,
|
|
466
|
+
survival: getNestedChartSeriesDataTws,
|
|
467
|
+
cuminc: getNestedChartSeriesDataTws,
|
|
468
|
+
regression: (plot) => [plot.outcome, ...plot.independent].filter((d) => !!d),
|
|
469
|
+
matrix: (plot) => plot.termgroups.reduce((arr, grp) => {
|
|
470
|
+
arr.push(...grp.lst);
|
|
471
|
+
return arr;
|
|
472
|
+
}, [])
|
|
473
|
+
};
|
|
474
|
+
var storeInit = StoreApi.getInitFxn(MassStore);
|
|
475
|
+
|
|
476
|
+
// mass/skipPrevActionAbort.ts
|
|
477
|
+
var globalStateKeys = ["termfilter", "activeCohort", "plots"];
|
|
478
|
+
var isGlobalActionType = (type) => type.startsWith("filter") || type.startsWith("cohort");
|
|
479
|
+
function skipPrevActionAbort(action) {
|
|
480
|
+
if (!action) return false;
|
|
481
|
+
if (isGlobalActionType(action.type)) return false;
|
|
482
|
+
if (action.type == "app_refresh") {
|
|
483
|
+
if (action.subactions?.find((a) => isGlobalActionType(a.type))) return false;
|
|
484
|
+
if (action.state) return !globalStateKeys.find((key) => key in action.state);
|
|
485
|
+
return Boolean(action.subactions);
|
|
486
|
+
}
|
|
487
|
+
return true;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
export {
|
|
491
|
+
storeInit,
|
|
492
|
+
skipPrevActionAbort
|
|
493
|
+
};
|
|
494
|
+
//# sourceMappingURL=chunk-F4PMOAQK.js.map
|