@sjcrh/proteinpaint-client 2.219.1 → 2.221.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/2dmaf-7YU3SNKL.js +1362 -0
- package/dist/AggMatrixInput-73CDR5FS.js +402 -0
- package/dist/AggregateMatrix-NNULVFBM.js +37 -0
- package/dist/AppHeader-EZDDLLXU.js +826 -0
- package/dist/BoxPlot-463E7CRY.js +1229 -0
- package/dist/CorrelationVolcano-LHIIMBPP.js +613 -0
- package/dist/Cuminc-UL2TCIKV.js +1217 -0
- package/dist/DE-VRFSKFDW.js +85 -0
- package/dist/DEinput-FZTQRWVC.js +479 -0
- package/dist/DM-PO7CQZNT.js +86 -0
- package/dist/DifferentialAnalysis-WK6HE3YH.js +236 -0
- package/dist/Disco-YBNQJQFG.js +3384 -0
- package/dist/Disco.UI-HC5XYBFV.js +239 -0
- package/dist/DmrPlot-7VJ5C66D.js +361 -0
- package/dist/GB-VPFQRDRO.js +1388 -0
- package/dist/GSEA-ZEJB3QZQ.js +870 -0
- package/dist/GeneExpInput-SBDDIY6G.js +38 -0
- package/dist/Geomap-23AHGP2V.js +80 -0
- package/dist/HicApp-7AQQE4CM.js +2240 -0
- package/dist/IDCViewer-NO5Q6VOB.js +10808 -0
- package/dist/NumBinaryEditor-DSRP4OOU.js +274 -0
- package/dist/NumBinaryEditor.unit.spec-TT666YL4.js +308 -0
- package/dist/NumContEditor-6CURFOCH.js +100 -0
- package/dist/NumContEditor.unit.spec-MNVCFCMP.js +160 -0
- package/dist/NumCustomBinEditor-SQRR5EFL.js +29 -0
- package/dist/NumCustomBinEditor.unit.spec-F7BZWGGT.js +393 -0
- package/dist/NumDiscreteEditor-U7Z2QNYP.js +165 -0
- package/dist/NumDiscreteEditor.unit.spec-EIEBUZCX.js +229 -0
- package/dist/NumRegularBinEditor-CVZSWN6Y.js +29 -0
- package/dist/NumRegularBinEditor.unit.spec-ZMAJOIHL.js +274 -0
- package/dist/NumSplineEditor-U43D5NBJ.js +205 -0
- package/dist/NumSplineEditor.unit.spec-C52AADTS.js +220 -0
- package/dist/NumericDensity-PUKDZOVI.js +29 -0
- package/dist/NumericDensity.unit.spec-2347S76D.js +414 -0
- package/dist/NumericHandler-3RT32PTR.js +30 -0
- package/dist/NumericHandler.unit.spec-4PADL4KZ.js +225 -0
- package/dist/ProteomeInput-NFV4FW4U.js +610 -0
- package/dist/Regression-N7M7N6G4.js +1412 -0
- package/dist/RunChart2-UPQ7C6QE.js +744 -0
- package/dist/SC-KBW2NHUV.js +1290 -0
- package/dist/Violin-GWCOP3ZF.js +1092 -0
- package/dist/Volcano-X3HT32GQ.js +2661 -0
- package/dist/Volcano-X3HT32GQ.js.map +7 -0
- package/dist/Wsi-NXAEOYIS.js +636 -0
- package/dist/aboutSunburst-5EKXZV2A.js +86 -0
- package/dist/aboutSunburst-5EKXZV2A.js.map +7 -0
- package/dist/adSandbox-RPEWEEW7.js +29 -0
- package/dist/animatedBubbleChart-ILDMZRBX.js +542 -0
- package/dist/app-LOUC4J47.js +28 -0
- package/dist/app-MRKXZ6AZ.js +38 -0
- package/dist/app.js +15 -15
- package/dist/bam-SQWPHCZZ.js +872 -0
- package/dist/bam-SQWPHCZZ.js.map +7 -0
- package/dist/barchart-CJR37234.js +38 -0
- package/dist/barchart2-QQYLTHWR.js +305 -0
- package/dist/block-GLF6QNKY.js +6203 -0
- package/dist/block-GLF6QNKY.js.map +7 -0
- package/dist/block.init-YJQTJIDO.js +29 -0
- package/dist/block.mds.expressionrank-GBMEI5KQ.js +350 -0
- package/dist/block.mds.geneboxplot-XWE3E5IW.js +819 -0
- package/dist/block.mds.junction-QLEHFVPE.js +1534 -0
- package/dist/block.mds.svcnv-53DTOPBC.js +6413 -0
- package/dist/block.svg-57T37ABS.js +155 -0
- package/dist/block.tk.aicheck-6DXJTS3H.js +274 -0
- package/dist/block.tk.bam-CJFFQDNX.js +1906 -0
- package/dist/block.tk.bam-CJFFQDNX.js.map +7 -0
- package/dist/block.tk.bigwig.ui-OYIVXE2L.js +202 -0
- package/dist/block.tk.hicstraw-UKTGEBWT.js +814 -0
- package/dist/block.tk.junction-ZU5KPFQ3.js +2353 -0
- package/dist/block.tk.junction.textmatrixui-P4WXTAZR.js +190 -0
- package/dist/block.tk.ld-3PQ4O2AE.js +90 -0
- package/dist/block.tk.menu-LLITB6UA.js +1050 -0
- package/dist/block.tk.pgv-Y3FBXUO3.js +934 -0
- package/dist/brainImaging-4B3WXLNP.js +550 -0
- package/dist/brainRegions-7VLONUWN.js +213 -0
- package/dist/bubbleHeatmap-DI6GJRR6.js +374 -0
- package/dist/cellTypeBubbleHeatmap-HJY53DB2.js +274 -0
- package/dist/chunk-226MNBZ2.js +240 -0
- package/dist/chunk-2CDFU4MQ.js +536 -0
- package/dist/chunk-2CDFU4MQ.js.map +7 -0
- package/dist/chunk-2CNFGVHU.js +257 -0
- package/dist/chunk-2MC3RNKA.js +2685 -0
- package/dist/chunk-2OMX5AYB.js +195 -0
- package/dist/chunk-2SL4QWUS.js +50 -0
- package/dist/chunk-3KGBC5MK.js +692 -0
- package/dist/chunk-3PCRAPUV.js +56 -0
- package/dist/chunk-4DBOMSKP.js +102 -0
- package/dist/chunk-4TJO2DGU.js +2297 -0
- package/dist/chunk-4TJO2DGU.js.map +7 -0
- package/dist/chunk-57BS6KNI.js +466 -0
- package/dist/chunk-5AXS5G4A.js +2334 -0
- package/dist/chunk-5DI4UNH5.js +562 -0
- package/dist/chunk-5HJG6ECV.js +237 -0
- package/dist/chunk-5ZYANHGX.js +550 -0
- package/dist/chunk-6T4MN7LV.js +397 -0
- package/dist/chunk-75MRUW2K.js +103 -0
- package/dist/chunk-7J3W3KCN.js +255 -0
- package/dist/chunk-7SFK32JP.js +398 -0
- package/dist/chunk-7SFK32JP.js.map +7 -0
- package/dist/chunk-AIZYAKIE.js +182 -0
- package/dist/chunk-AJNFI6GA.js +2008 -0
- package/dist/chunk-BJAWDZBL.js +2799 -0
- package/dist/chunk-C6PVZVIH.js +379 -0
- package/dist/chunk-C77X5ZUV.js +176 -0
- package/dist/chunk-C7KUMZQM.js +59 -0
- package/dist/chunk-C7ROKWV2.js +140 -0
- package/dist/chunk-CAH6LJ5Z.js +31 -0
- package/dist/chunk-CUCP2GMT.js +102 -0
- package/dist/chunk-DTGAMBRJ.js +134 -0
- package/dist/chunk-DXT7GDHY.js +55 -0
- package/dist/chunk-ENPMWVWG.js +5214 -0
- package/dist/chunk-EYKJQJ7R.js +382 -0
- package/dist/chunk-FE5TCBIT.js +30 -0
- package/dist/chunk-FJ2JV2VK.js +217 -0
- package/dist/chunk-FPMJJBLV.js +4389 -0
- package/dist/chunk-FPMJJBLV.js.map +7 -0
- package/dist/chunk-FZYVPRVQ.js +38 -0
- package/dist/chunk-GBKQHVKJ.js +274 -0
- package/dist/chunk-GUW7VTUL.js +281 -0
- package/dist/chunk-H7F6DMJA.js +70 -0
- package/dist/chunk-HH3NUAR2.js +96 -0
- package/dist/chunk-HRTPGNOG.js +159 -0
- package/dist/chunk-IFPRYTS7.js +848 -0
- package/dist/chunk-IJSFSUI4.js +302 -0
- package/dist/chunk-IRQKX6DL.js +263 -0
- package/dist/chunk-JHLF2ZC2.js +472 -0
- package/dist/chunk-JNZL7HKB.js +1219 -0
- package/dist/chunk-K2ARLT2A.js +26 -0
- package/dist/chunk-K3G56J5R.js +299 -0
- package/dist/chunk-KKUCG2QE.js +516 -0
- package/dist/chunk-KPXCXBNU.js +626 -0
- package/dist/chunk-LF5WBI27.js +418 -0
- package/dist/chunk-LF5WBI27.js.map +7 -0
- package/dist/chunk-MANAUI7R.js +54 -0
- package/dist/chunk-MEUSRAOE.js +170 -0
- package/dist/chunk-MHWYRNGA.js +348 -0
- package/dist/chunk-MSTYU3QO.js +14 -0
- package/dist/chunk-MWARRQT4.js +141 -0
- package/dist/chunk-MXKYPTZ7.js +203 -0
- package/dist/chunk-NX5IB4IY.js +37 -0
- package/dist/chunk-OZUF7O2S.js +133 -0
- package/dist/chunk-PRTLCJYF.js +2941 -0
- package/dist/chunk-PRTLCJYF.js.map +7 -0
- package/dist/chunk-PWYMHUXY.js +116 -0
- package/dist/chunk-PWYMHUXY.js.map +7 -0
- package/dist/chunk-QNCE6EOK.js +82 -0
- package/dist/chunk-RIHO7ZD5.js +119 -0
- package/dist/chunk-RV335DF2.js +266 -0
- package/dist/chunk-SFPZUBPM.js +2102 -0
- package/dist/chunk-SFPZUBPM.js.map +7 -0
- package/dist/chunk-THAUD62Q.js +1253 -0
- package/dist/chunk-VBTBUXXX.js +6375 -0
- package/dist/chunk-VHWJK2MP.js +56 -0
- package/dist/chunk-VLIOMJDR.js +276 -0
- package/dist/chunk-VMK4RHV5.js +54 -0
- package/dist/chunk-WD7FZ5EE.js +26536 -0
- package/dist/chunk-WD7FZ5EE.js.map +7 -0
- package/dist/chunk-WJLRU5OF.js +5786 -0
- package/dist/chunk-WJLRU5OF.js.map +7 -0
- package/dist/chunk-WKT7RF3C.js +468 -0
- package/dist/chunk-WXSMUSU7.js +184 -0
- package/dist/chunk-WXSX5OQJ.js +296 -0
- package/dist/chunk-WY3IORKG.js +194 -0
- package/dist/chunk-WYSOOKFJ.js +480 -0
- package/dist/chunk-XBBFFOLS.js +123 -0
- package/dist/chunk-XSRQGX5H.js +340 -0
- package/dist/chunk-YLL6CTBL.js +54 -0
- package/dist/chunk-YPBY37KD.js +1339 -0
- package/dist/chunk-YUNJBIK4.js +243 -0
- package/dist/chunk-Z5ECCUNG.js +444 -0
- package/dist/chunk-ZAC34BZQ.js +35 -0
- package/dist/chunk-ZAC34BZQ.js.map +7 -0
- package/dist/cohort-5WL6UJOS.js +66 -0
- package/dist/cohortSunburst-R3Z5KJQL.js +402 -0
- package/dist/condition-2IILUMVB.js +323 -0
- package/dist/controls-G3JITZF5.js +30 -0
- package/dist/controls.config-BO7KPPET.js +30 -0
- package/dist/correlation-CZILLVEM.js +91 -0
- package/dist/customdata.inputui-BXFQAMTR.js +280 -0
- package/dist/dataDownload-QTWR4IW7.js +326 -0
- package/dist/dataDownload-QTWR4IW7.js.map +7 -0
- package/dist/databrowser.ui-V2NJQF3U.js +421 -0
- package/dist/dictionary-OVAQX6R3.js +109 -0
- package/dist/dnaMethylation-DHPFRXB2.js +29 -0
- package/dist/dnaMethylation.integration.spec-PJLIRGN5.js +194 -0
- package/dist/dofetch-KBTN6OW4.js +49 -0
- package/dist/e2pca-O7SNMJGB.js +340 -0
- package/dist/ep-NIVLKG4S.js +1247 -0
- package/dist/expclust.gdc.spec-LVCD6C43.js +298 -0
- package/dist/facet-LB4SCXE4.js +556 -0
- package/dist/gb-3IJ4NCPO.js +77 -0
- package/dist/geneExpClustering-SIAC7CMA.js +240 -0
- package/dist/geneExpression-KPUOZ4PT.js +309 -0
- package/dist/geneExpression-P2TTZXN2.js +29 -0
- package/dist/geneExpression.unit.spec-Q5D6XHUF.js +151 -0
- package/dist/geneORA-PKUIJKTL.js +269 -0
- package/dist/geneRanking-ZGT5MHBV.js +544 -0
- package/dist/geneVariant-24YNANTT.js +289 -0
- package/dist/geneVariant-CDGENHWQ.js +32 -0
- package/dist/geneVariant.integration.spec-7QW4C2WO.js +672 -0
- package/dist/genefusion.ui-NVXGSBXD.js +299 -0
- package/dist/geneset-7STL6UDD.js +199 -0
- package/dist/genomeBrowser.spec-OE2CIP7I.js +272 -0
- package/dist/grin2-2HXUIY5O.js +66 -0
- package/dist/grin2-32IIJR5E.js +945 -0
- package/dist/hierCluster-MDZEI2KB.js +51 -0
- package/dist/hierCluster-T3PZUGBI.js +55 -0
- package/dist/hierCluster.config-7UN6AYGB.js +32 -0
- package/dist/hierCluster.integration.spec-DWOYVK6T.js +479 -0
- package/dist/hierCluster.interactivity-5OM6XNFG.js +45 -0
- package/dist/hierCluster.renderers-YGX6MZZW.js +18 -0
- package/dist/imagePlot-KBRXDV5G.js +152 -0
- package/dist/importPlot-DJMIC22L.js +8 -0
- package/dist/isoformExpression-SWDWADRC.js +31 -0
- package/dist/isoformExpression.unit.spec-2U5KCYBP.js +233 -0
- package/dist/junction-NMXVVGRG.js +32 -0
- package/dist/junction.customTerm-3R2GNE3A.js +15 -0
- package/dist/junction.unit.spec-JTGBPPN7.js +178 -0
- package/dist/launch.adhoc-YB5SKMNY.js +33 -0
- package/dist/leftlabel.sample-QKXIODCS.js +253 -0
- package/dist/lollipop-TSZ62PBH.js +162 -0
- package/dist/maf-4L5YN4CG.js +451 -0
- package/dist/maftimeline-VOYB3NY3.js +583 -0
- package/dist/matrix-IWJECVTF.js +55 -0
- package/dist/matrix-MMJAJZA7.js +50 -0
- package/dist/matrix.cells-5RTZUJVN.js +25 -0
- package/dist/matrix.config-DZGOZWJS.js +33 -0
- package/dist/matrix.data-Y5TPRGMW.js +22 -0
- package/dist/matrix.groups-6DXCAY4P.js +25 -0
- package/dist/matrix.integration.spec-2N237E7T.js +3156 -0
- package/dist/matrix.interactivity-FL33UUKR.js +33 -0
- package/dist/matrix.layout-7SYHV3KJ.js +35 -0
- package/dist/matrix.legend-S3E76TVO.js +19 -0
- package/dist/matrix.renderers-3SIBT2RP.js +30 -0
- package/dist/matrix.serieses-3UGLZW25.js +18 -0
- package/dist/matrix.sort-A7CNLDUJ.js +25 -0
- package/dist/matrix.sort.unit.spec-L3H44T6I.js +464 -0
- package/dist/matrix.sorterUi-6PZR3YOD.js +15 -0
- package/dist/matrix.sorterUi.unit.spec-2NRU5UFH.js +334 -0
- package/dist/matrix.unit.spec-HRZIJB6T.js +146 -0
- package/dist/mavb-ZVRQSDPS.js +726 -0
- package/dist/mds.fimo-ZKETTET7.js +509 -0
- package/dist/mds.samplescatterplot-ZV3UNRLP.js +1545 -0
- package/dist/mds.survivalplot-OVXZRTU4.js +472 -0
- package/dist/multivalue-6BE5IA4F.js +79 -0
- package/dist/numericDictTermCluster-6XDVVWLE.js +62 -0
- package/dist/oncomatrix-XK62NEOO.js +286 -0
- package/dist/oncomatrix.spec-YVTCHOPS.js +439 -0
- package/dist/plot.2dvaf-NUOBWMNX.js +368 -0
- package/dist/plot.app-G6IQWXTV.js +32 -0
- package/dist/plot.barplot-6QJ6HEJR.js +93 -0
- package/dist/plot.boxplot-XKQJSW2O.js +142 -0
- package/dist/plot.brainImaging-UTHFJFXU.js +51 -0
- package/dist/plot.disco-3MSCX7TM.js +98 -0
- package/dist/plot.ssgq-4KBVHF42.js +130 -0
- package/dist/plot.vaf2cov-OGUQSSDS.js +249 -0
- package/dist/polar2-V7M56GTZ.js +228 -0
- package/dist/profileForms-TS3BJLHH.js +937 -0
- package/dist/profilePlot-DP5272HR.js +45 -0
- package/dist/proteinView-K4K4SP3L.js +1346 -0
- package/dist/proteomeCohortCompare-SFWVGLFK.js +866 -0
- package/dist/pseudbulk.unit.spec-NFOA7J2C.js +82 -0
- package/dist/pseudobulk-XKZQEZ4I.js +31 -0
- package/dist/qualitative-7OSFNVI5.js +241 -0
- package/dist/qualitative-OIIN6E4Y.js +34 -0
- package/dist/radar2-AHZJKX7S.js +323 -0
- package/dist/radarFacility2-OUW6D5E7.js +331 -0
- package/dist/rememberedGvQ.unit.spec-SHTMMZGG.js +210 -0
- package/dist/render-7UZSGX3Q.js +29 -0
- package/dist/report-J7HKTXZ2.js +213 -0
- package/dist/sampleView-6547OUIM.js +39 -0
- package/dist/samplelst-UHF23UEB.js +114 -0
- package/dist/samplematrix-OOKS3TMR.js +2188 -0
- package/dist/sc-WF2BLGNG.js +77 -0
- package/dist/scatter-ABCVFGRV.js +84 -0
- package/dist/scatter-WF7XM3IA.js +919 -0
- package/dist/selectGenomeWithTklst-67HU5KRB.js +125 -0
- package/dist/singleCellCellType-3FZPJ25V.js +29 -0
- package/dist/singleCellCellType.unit.spec-TOMREHWK.js +150 -0
- package/dist/singleCellGeneExpression-NQTJ5KJQ.js +29 -0
- package/dist/singleCellGeneExpression.unit.spec-ZWUQTU2N.js +144 -0
- package/dist/singleCellNumericValue-VI7H722L.js +29 -0
- package/dist/singleCellNumericValue.unit.spec-QGLHES7H.js +412 -0
- package/dist/singleCellPlot-RU5T6SJK.js +44 -0
- package/dist/singlecell-C3CJVNXP.js +1562 -0
- package/dist/singlecell-NRQZ7KC6.js +77 -0
- package/dist/snp-X6XY65VS.js +29 -0
- package/dist/snp.unit.spec-6EENK7GQ.js +167 -0
- package/dist/snplocus-R4JA6TFT.js +200 -0
- package/dist/snplst-SOWVHSXH.js +36 -0
- package/dist/spliceevent.a53ss.diagram-IRLCCVQZ.js +142 -0
- package/dist/spliceevent.exonskip.diagram-4KG7LE5D.js +274 -0
- package/dist/spliceevent.noeventdiagram-OWXAJJX7.js +451 -0
- package/dist/ssGSEA-EMOKPLMP.js +29 -0
- package/dist/ssGSEA.unit.spec-KXQ7R5WH.js +79 -0
- package/dist/stattable-H2G7MOZG.js +112 -0
- package/dist/studyCatalog-3ITQXWFL.js +457 -0
- package/dist/summarizeCnvGeneexp-ZIPU6YDY.js +154 -0
- package/dist/summarizeGeneexpSurvival-3RYU226R.js +101 -0
- package/dist/summarizeMutationCnv-RGDBUB22.js +155 -0
- package/dist/summarizeMutationDiagnosis-Z4MZE6Y4.js +31 -0
- package/dist/summarizeMutationSurvival-Z5CNRH7E.js +95 -0
- package/dist/summary-6QQCNX3B.js +40 -0
- package/dist/summary.integration.spec-3ULXTZUP.js +405 -0
- package/dist/summaryInput-4QKR34QB.js +238 -0
- package/dist/sunburst-KB3BWC72.js +34 -0
- package/dist/sunburst-XTFBHZNH.js +274 -0
- package/dist/survival-7O6ZK63E.js +49 -0
- package/dist/survival-NNCY4K6C.js +1248 -0
- package/dist/survival.integration.spec-ZYZHZAXA.js +609 -0
- package/dist/svgraph-ZLSFFEAC.js +1377 -0
- package/dist/svmr-REBBDEYM.js +3834 -0
- package/dist/swimmer-NUBRIWLI.js +993 -0
- package/dist/swimmer-NUBRIWLI.js.map +7 -0
- package/dist/table-CWIQQESJ.js +192 -0
- package/dist/termCollection-7TYJSQ45.js +29 -0
- package/dist/termCollection-7Z55QNL7.js +247 -0
- package/dist/termCollection.unit.spec-LQ5MIBDH.js +295 -0
- package/dist/termCollectionFractionSelection-24DZYVDU.js +38 -0
- package/dist/termCollectionFractionSelection.unit.spec-DCV2CFS5.js +184 -0
- package/dist/tk-2WZFPRCP.js +37 -0
- package/dist/tk-QTLEYIP7.js +1193 -0
- package/dist/tk-QTLEYIP7.js.map +7 -0
- package/dist/tp.ui-HXQX2UH4.js +1453 -0
- package/dist/tvs.categorical-4D3JI2ER.js +28 -0
- package/dist/tvs.condition-62FXFHZ5.js +160 -0
- package/dist/tvs.density-IGO4I4T2.js +19 -0
- package/dist/tvs.dt-FZSVMJOO.js +34 -0
- package/dist/tvs.dtcnv.categorical-PPFQIC42.js +31 -0
- package/dist/tvs.dtcnv.continuous-TV2IGHY4.js +72 -0
- package/dist/tvs.dtfusion-ON4BA4XJ.js +31 -0
- package/dist/tvs.dtitd-VFNROOWQ.js +31 -0
- package/dist/tvs.dtsnvindel-ZXOP37T5.js +31 -0
- package/dist/tvs.dtsv-EUHPTW7J.js +31 -0
- package/dist/tvs.multivalue-NHVXZNDI.js +84 -0
- package/dist/tvs.numeric-FPWDPO3J.js +32 -0
- package/dist/tvs.samplelst-ZZHRNUP4.js +95 -0
- package/dist/tvs.survival-F3KSG3U6.js +110 -0
- package/dist/tvs.termCollection-B37DZLDY.js +118 -0
- package/dist/vocabulary-XNE5FFDK.js +32 -0
- package/dist/vocabulary-XNE5FFDK.js.map +7 -0
- package/dist/wsi.direct-3YH3QGQD.js +11514 -0
- package/package.json +4 -4
- package/dist/2dmaf-O2SQ5RGD.js +0 -1362
- package/dist/AggMatrixInput-LUCTWXHU.js +0 -402
- package/dist/AggregateMatrix-JVMF27YL.js +0 -37
- package/dist/AppHeader-DJU6HRKO.js +0 -826
- package/dist/BoxPlot-22RXMPRL.js +0 -1229
- package/dist/CorrelationVolcano-PBZWPFSN.js +0 -613
- package/dist/Cuminc-EL74X5GY.js +0 -1217
- package/dist/DE-W5SAMMRW.js +0 -85
- package/dist/DEinput-ZKEFJZQU.js +0 -479
- package/dist/DM-ABKDXMDG.js +0 -86
- package/dist/DifferentialAnalysis-3JTZ5WCQ.js +0 -236
- package/dist/Disco-ME53U25C.js +0 -3384
- package/dist/Disco.UI-F7XKJMKR.js +0 -239
- package/dist/DmrPlot-OWBXUTON.js +0 -361
- package/dist/GB-7X6DBWKS.js +0 -1388
- package/dist/GSEA-GAZIEGD7.js +0 -870
- package/dist/GeneExpInput-BAOC6ICV.js +0 -38
- package/dist/Geomap-OZERLL7V.js +0 -80
- package/dist/HicApp-WDH5LVTD.js +0 -2240
- package/dist/IDCViewer-XBZFU3BU.js +0 -10808
- package/dist/NumBinaryEditor-5R4EUQOZ.js +0 -274
- package/dist/NumBinaryEditor.unit.spec-ULBXMOYY.js +0 -308
- package/dist/NumContEditor-EN6V4FLQ.js +0 -100
- package/dist/NumContEditor.unit.spec-VDWKNIFN.js +0 -160
- package/dist/NumCustomBinEditor-UB34ALNZ.js +0 -29
- package/dist/NumCustomBinEditor.unit.spec-WZXJ7GEC.js +0 -393
- package/dist/NumDiscreteEditor-H6J67YEL.js +0 -165
- package/dist/NumDiscreteEditor.unit.spec-KJ7YU22W.js +0 -229
- package/dist/NumRegularBinEditor-R5JVUG7J.js +0 -29
- package/dist/NumRegularBinEditor.unit.spec-RZ73FMNO.js +0 -274
- package/dist/NumSplineEditor-AOR6OAJA.js +0 -205
- package/dist/NumSplineEditor.unit.spec-Z6ZEI3UO.js +0 -220
- package/dist/NumericDensity-SRTFTDQA.js +0 -29
- package/dist/NumericDensity.unit.spec-MRREBAYU.js +0 -414
- package/dist/NumericHandler-7RALUACA.js +0 -30
- package/dist/NumericHandler.unit.spec-MDO23WRB.js +0 -225
- package/dist/ProteomeInput-MOBXHRD5.js +0 -610
- package/dist/Regression-XWT4NNTG.js +0 -1412
- package/dist/RunChart2-Q7W5MWJS.js +0 -744
- package/dist/SC-MM3JTEVL.js +0 -1290
- package/dist/Violin-XNTBDUPG.js +0 -1092
- package/dist/Volcano-GRKXU3WL.js +0 -2619
- package/dist/Volcano-GRKXU3WL.js.map +0 -7
- package/dist/Wsi-22KJSFVH.js +0 -636
- package/dist/adSandbox-TLYWQOOA.js +0 -29
- package/dist/animatedBubbleChart-67SY5JGP.js +0 -542
- package/dist/app-FG3KPE4R.js +0 -28
- package/dist/app-VK5LYO6B.js +0 -38
- package/dist/bam-TNLNISLV.js +0 -872
- package/dist/bam-TNLNISLV.js.map +0 -7
- package/dist/barchart-IGWRVB6W.js +0 -38
- package/dist/barchart2-TT6OBJJP.js +0 -305
- package/dist/block-5PV2TYWJ.js +0 -6232
- package/dist/block-5PV2TYWJ.js.map +0 -7
- package/dist/block.init-2Y6CNK7H.js +0 -29
- package/dist/block.mds.expressionrank-VZ4JVPTG.js +0 -350
- package/dist/block.mds.geneboxplot-NYMS32JP.js +0 -819
- package/dist/block.mds.junction-3R6C3B5W.js +0 -1534
- package/dist/block.mds.svcnv-SO5CYYIQ.js +0 -6413
- package/dist/block.svg-R4ASXXNW.js +0 -155
- package/dist/block.tk.aicheck-LYRTDZRA.js +0 -274
- package/dist/block.tk.bam-GR7CHGGQ.js +0 -1897
- package/dist/block.tk.bam-GR7CHGGQ.js.map +0 -7
- package/dist/block.tk.bedgraphdot-GERXK2O6.js +0 -375
- package/dist/block.tk.bedgraphdot-GERXK2O6.js.map +0 -7
- package/dist/block.tk.bigwig.ui-3KMMZX2M.js +0 -202
- package/dist/block.tk.hicstraw-7HH4PGFY.js +0 -814
- package/dist/block.tk.junction-BPEKLYS2.js +0 -2353
- package/dist/block.tk.junction.textmatrixui-2QU5DL2X.js +0 -190
- package/dist/block.tk.ld-TJREYPNY.js +0 -90
- package/dist/block.tk.menu-HDBZK4YP.js +0 -1050
- package/dist/block.tk.pgv-G5GCYBK2.js +0 -934
- package/dist/brainImaging-ODWHF7WZ.js +0 -550
- package/dist/brainRegions-DC7DEA7N.js +0 -213
- package/dist/bubbleHeatmap-T5ACULRL.js +0 -374
- package/dist/cellTypeBubbleHeatmap-RQINXXTK.js +0 -274
- package/dist/chunk-24ZS2XWC.js +0 -176
- package/dist/chunk-2EPEWVKQ.js +0 -4378
- package/dist/chunk-2EPEWVKQ.js.map +0 -7
- package/dist/chunk-2PHFY3VP.js +0 -195
- package/dist/chunk-2QFMKWNS.js +0 -281
- package/dist/chunk-2UB6JZ3I.js +0 -466
- package/dist/chunk-3GQ54XTJ.js +0 -70
- package/dist/chunk-3IE6FDVA.js +0 -1253
- package/dist/chunk-4ENIOXIT.js +0 -133
- package/dist/chunk-4OOQ52ET.js +0 -182
- package/dist/chunk-5NI77Z3O.js +0 -119
- package/dist/chunk-5TPWMYBG.js +0 -274
- package/dist/chunk-64JHE3GV.js +0 -50
- package/dist/chunk-6MUJGVOH.js +0 -140
- package/dist/chunk-6XKAOSQE.js +0 -116
- package/dist/chunk-6XKAOSQE.js.map +0 -7
- package/dist/chunk-6YGSVJJD.js +0 -54
- package/dist/chunk-7PQVNQFR.js +0 -255
- package/dist/chunk-7XW4JWMJ.js +0 -170
- package/dist/chunk-7ZEJKFGW.js +0 -55
- package/dist/chunk-A6ZUYQHO.js +0 -159
- package/dist/chunk-ALIMVUHR.js +0 -1219
- package/dist/chunk-ANBGNYNP.js +0 -1339
- package/dist/chunk-ATZNXW5F.js +0 -237
- package/dist/chunk-AUPTEHV7.js +0 -257
- package/dist/chunk-B2KYLEYM.js +0 -30
- package/dist/chunk-BJCET6RU.js +0 -263
- package/dist/chunk-BKW35Z4U.js +0 -26619
- package/dist/chunk-BKW35Z4U.js.map +0 -7
- package/dist/chunk-CJHNPYFQ.js +0 -2292
- package/dist/chunk-CJHNPYFQ.js.map +0 -7
- package/dist/chunk-CTVPW77S.js +0 -194
- package/dist/chunk-D6U65W7Q.js +0 -626
- package/dist/chunk-DJMDETVU.js +0 -2685
- package/dist/chunk-DKPAOVJH.js +0 -243
- package/dist/chunk-DRESQF33.js +0 -38
- package/dist/chunk-DXM5MQCZ.js +0 -382
- package/dist/chunk-ETXOEP4N.js +0 -184
- package/dist/chunk-FOUMNTII.js +0 -134
- package/dist/chunk-FTGLS763.js +0 -56
- package/dist/chunk-GN2A5NL5.js +0 -472
- package/dist/chunk-GWNCQ5YI.js +0 -468
- package/dist/chunk-GX6G2SSW.js +0 -26
- package/dist/chunk-H3YF55ZI.js +0 -848
- package/dist/chunk-IANE75G3.js +0 -444
- package/dist/chunk-IKZQST6E.js +0 -5213
- package/dist/chunk-IPRYYK26.js +0 -96
- package/dist/chunk-JL3PYV5F.js +0 -6375
- package/dist/chunk-K6VYSDB5.js +0 -276
- package/dist/chunk-KSS26PXB.js +0 -54
- package/dist/chunk-LO2QBHP6.js +0 -418
- package/dist/chunk-LO2QBHP6.js.map +0 -7
- package/dist/chunk-LSRFRZNP.js +0 -59
- package/dist/chunk-LYX4S6WA.js +0 -266
- package/dist/chunk-ME3HB3V6.js +0 -5787
- package/dist/chunk-ME3HB3V6.js.map +0 -7
- package/dist/chunk-MP7BA3GK.js +0 -14
- package/dist/chunk-MVSUESEV.js +0 -141
- package/dist/chunk-NQMS7WV3.js +0 -2799
- package/dist/chunk-NR6WFCPF.js +0 -348
- package/dist/chunk-NS2MZN3C.js +0 -562
- package/dist/chunk-NUA66GW7.js +0 -37
- package/dist/chunk-NYEFSOKD.js +0 -550
- package/dist/chunk-OVHQFZAE.js +0 -34
- package/dist/chunk-OVHQFZAE.js.map +0 -7
- package/dist/chunk-QM724EG2.js +0 -103
- package/dist/chunk-RIL33JCW.js +0 -102
- package/dist/chunk-RJAJG5KN.js +0 -2954
- package/dist/chunk-RJAJG5KN.js.map +0 -7
- package/dist/chunk-SLHXR4BZ.js +0 -82
- package/dist/chunk-SO76DLSZ.js +0 -299
- package/dist/chunk-T7CKGRGP.js +0 -398
- package/dist/chunk-T7CKGRGP.js.map +0 -7
- package/dist/chunk-TUO5I6LP.js +0 -123
- package/dist/chunk-TWTPWEYL.js +0 -240
- package/dist/chunk-U2GHNZ4N.js +0 -54
- package/dist/chunk-UAB5PGOP.js +0 -56
- package/dist/chunk-UCB3W3OT.js +0 -217
- package/dist/chunk-UJIB7QM3.js +0 -2334
- package/dist/chunk-UYQGTW7I.js +0 -1857
- package/dist/chunk-UYQGTW7I.js.map +0 -7
- package/dist/chunk-VBDJG6GZ.js +0 -2008
- package/dist/chunk-VOXUMZMG.js +0 -379
- package/dist/chunk-WCNMP54T.js +0 -516
- package/dist/chunk-WETOH7YW.js +0 -692
- package/dist/chunk-WKGKKM6F.js +0 -480
- package/dist/chunk-WV44DGEJ.js +0 -397
- package/dist/chunk-XVEEMQAT.js +0 -31
- package/dist/chunk-YBOHXANC.js +0 -302
- package/dist/chunk-YNQFOPS6.js +0 -203
- package/dist/chunk-YVQ4USPP.js +0 -340
- package/dist/chunk-ZWLT5QS3.js +0 -102
- package/dist/chunk-ZYAZHJPZ.js +0 -296
- package/dist/cohort-QSLKB4ZO.js +0 -66
- package/dist/cohortSunburst-AQFSNJ5K.js +0 -402
- package/dist/condition-MLS6TJHV.js +0 -323
- package/dist/controls-ZT3GZ667.js +0 -30
- package/dist/controls.config-F7NIPLKB.js +0 -30
- package/dist/correlation-ZEIQJGSQ.js +0 -91
- package/dist/customdata.inputui-6PJSAJK2.js +0 -280
- package/dist/dataDownload-CHMPXHBY.js +0 -325
- package/dist/dataDownload-CHMPXHBY.js.map +0 -7
- package/dist/databrowser.ui-EMZ5L2Y7.js +0 -421
- package/dist/dictionary-U2BWGY6B.js +0 -109
- package/dist/dnaMethylation-R34E2XNC.js +0 -29
- package/dist/dnaMethylation.integration.spec-4Z2AJHWY.js +0 -194
- package/dist/dofetch-JY4A7BYI.js +0 -47
- package/dist/e2pca-WSSCXX6A.js +0 -340
- package/dist/ep-ATUWEHDJ.js +0 -1247
- package/dist/expclust.gdc.spec-QRIRRPO7.js +0 -298
- package/dist/facet-5VDCSP3S.js +0 -556
- package/dist/gb-Y4UG6LFA.js +0 -77
- package/dist/geneExpClustering-OO67JNJ2.js +0 -240
- package/dist/geneExpression-5KGV3MAA.js +0 -29
- package/dist/geneExpression-KPRFXKU7.js +0 -309
- package/dist/geneExpression.unit.spec-YV45EZ5O.js +0 -151
- package/dist/geneORA-R74JPUTC.js +0 -269
- package/dist/geneRanking-IJTXNMHV.js +0 -544
- package/dist/geneVariant-HBAHT6LU.js +0 -32
- package/dist/geneVariant-JT3EGAIH.js +0 -289
- package/dist/geneVariant.integration.spec-TFQYPUAS.js +0 -672
- package/dist/genefusion.ui-MMTQMTHC.js +0 -299
- package/dist/geneset-VMBICNCZ.js +0 -199
- package/dist/genomeBrowser.spec-2XLLIYGA.js +0 -272
- package/dist/grin2-2RYPEUWV.js +0 -66
- package/dist/grin2-Y6KAFVV2.js +0 -945
- package/dist/hierCluster-EKGFBQT4.js +0 -51
- package/dist/hierCluster-Z4PVNMGS.js +0 -55
- package/dist/hierCluster.config-Q6WUNK2K.js +0 -32
- package/dist/hierCluster.integration.spec-2LHSHNFC.js +0 -479
- package/dist/hierCluster.interactivity-OGQ3KUY6.js +0 -45
- package/dist/hierCluster.renderers-3GJZXG75.js +0 -18
- package/dist/imagePlot-ZJEZPBX7.js +0 -152
- package/dist/importPlot-GFEFYEHZ.js +0 -8
- package/dist/isoformExpression-A2X3DSR6.js +0 -31
- package/dist/isoformExpression.unit.spec-VKMEGCL4.js +0 -233
- package/dist/junction-HWIHLQU2.js +0 -32
- package/dist/junction.customTerm-C3VWXEYH.js +0 -15
- package/dist/junction.unit.spec-ZYJGDOXJ.js +0 -178
- package/dist/launch.adhoc-HW5AZM4T.js +0 -33
- package/dist/leftlabel.sample-MTW2HRRQ.js +0 -253
- package/dist/lollipop-VWW5H6CR.js +0 -162
- package/dist/maf-KEJYO3H4.js +0 -451
- package/dist/maftimeline-MJZDSGSR.js +0 -583
- package/dist/matrix-3UJW6LOA.js +0 -50
- package/dist/matrix-W4AX5OBM.js +0 -55
- package/dist/matrix.cells-5DAIZ3E5.js +0 -25
- package/dist/matrix.config-PK26VPQT.js +0 -33
- package/dist/matrix.data-UK5DGKBK.js +0 -22
- package/dist/matrix.groups-NM4Q5YDN.js +0 -25
- package/dist/matrix.integration.spec-FGWNBCRR.js +0 -3156
- package/dist/matrix.interactivity-4C37PII5.js +0 -33
- package/dist/matrix.layout-ODV7WXUP.js +0 -35
- package/dist/matrix.legend-5MY7OXWN.js +0 -19
- package/dist/matrix.renderers-QA7W7ZUL.js +0 -30
- package/dist/matrix.serieses-4FSFJPCK.js +0 -18
- package/dist/matrix.sort-3QLFMBJ5.js +0 -25
- package/dist/matrix.sort.unit.spec-HVOC6IYT.js +0 -464
- package/dist/matrix.sorterUi-EY3SA6CG.js +0 -15
- package/dist/matrix.sorterUi.unit.spec-OAXWPZZI.js +0 -334
- package/dist/matrix.unit.spec-RAL7AU22.js +0 -146
- package/dist/mavb-KIM63AC4.js +0 -726
- package/dist/mds.fimo-DMAVM56P.js +0 -509
- package/dist/mds.samplescatterplot-KILTR2C7.js +0 -1545
- package/dist/mds.survivalplot-PV76ANBP.js +0 -472
- package/dist/multivalue-2V5LMQY7.js +0 -79
- package/dist/numericDictTermCluster-TGL4X6UC.js +0 -62
- package/dist/oncomatrix-2O7SLXHX.js +0 -286
- package/dist/oncomatrix.spec-HZJKOF5G.js +0 -439
- package/dist/plot.2dvaf-424NNMMA.js +0 -368
- package/dist/plot.app-YBZDNST2.js +0 -32
- package/dist/plot.barplot-YZQBYJUY.js +0 -93
- package/dist/plot.boxplot-5OW6IBQL.js +0 -142
- package/dist/plot.brainImaging-H3ABPPD3.js +0 -51
- package/dist/plot.disco-X7KCDWGX.js +0 -98
- package/dist/plot.ssgq-GYRVHTC7.js +0 -130
- package/dist/plot.vaf2cov-B2TELPHL.js +0 -249
- package/dist/polar2-5KNZRLXY.js +0 -228
- package/dist/profileForms-FY34KXCL.js +0 -937
- package/dist/profilePlot-3FX2TPYC.js +0 -45
- package/dist/proteinView-WSEO3LD3.js +0 -1346
- package/dist/proteomeCohortCompare-KA2DF3EE.js +0 -866
- package/dist/pseudbulk.unit.spec-AT3TFCOW.js +0 -82
- package/dist/pseudobulk-4ZRHUC7W.js +0 -31
- package/dist/qualitative-3OBGJRP6.js +0 -241
- package/dist/qualitative-FHJD44OA.js +0 -34
- package/dist/radar2-X757WR6V.js +0 -323
- package/dist/radarFacility2-GUBAK4Y3.js +0 -331
- package/dist/rememberedGvQ.unit.spec-ADO4Y2OE.js +0 -210
- package/dist/render-MZEPNEMU.js +0 -29
- package/dist/report-TUAFDGAE.js +0 -213
- package/dist/sampleView-X6YKCBE7.js +0 -39
- package/dist/samplelst-UPNRALBH.js +0 -114
- package/dist/samplematrix-W3HZK3IS.js +0 -2188
- package/dist/sc-UL7233UR.js +0 -77
- package/dist/scatter-FTJ77NUM.js +0 -919
- package/dist/scatter-VQQRIW6N.js +0 -84
- package/dist/selectGenomeWithTklst-HPYPSPFI.js +0 -125
- package/dist/singleCellCellType-XTKGOH6H.js +0 -29
- package/dist/singleCellCellType.unit.spec-A62GT72A.js +0 -150
- package/dist/singleCellGeneExpression-X7H5GTU3.js +0 -29
- package/dist/singleCellGeneExpression.unit.spec-2KQBHG7O.js +0 -144
- package/dist/singleCellNumericValue-6YS42PZ2.js +0 -29
- package/dist/singleCellNumericValue.unit.spec-DNVXQFKI.js +0 -412
- package/dist/singleCellPlot-MGOQ7EQV.js +0 -44
- package/dist/singlecell-CIOB5XON.js +0 -77
- package/dist/singlecell-QW3SLQD6.js +0 -1562
- package/dist/snp-6B4MIPKL.js +0 -29
- package/dist/snp.unit.spec-HNILS56E.js +0 -167
- package/dist/snplocus-DDFLYZ2Y.js +0 -200
- package/dist/snplst-JYKOV73J.js +0 -36
- package/dist/spliceevent.a53ss.diagram-IBD5ITXR.js +0 -142
- package/dist/spliceevent.exonskip.diagram-ZJGEVUYW.js +0 -274
- package/dist/spliceevent.noeventdiagram-RNLNTFOW.js +0 -451
- package/dist/ssGSEA-42VQLAXL.js +0 -29
- package/dist/ssGSEA.unit.spec-FBJANIKG.js +0 -79
- package/dist/stattable-FROSNTJY.js +0 -112
- package/dist/studyCatalog-XIYNJ24U.js +0 -457
- package/dist/summarizeCnvGeneexp-N3OFI24L.js +0 -154
- package/dist/summarizeGeneexpSurvival-J4DO2AL4.js +0 -101
- package/dist/summarizeMutationCnv-Y43BBSI4.js +0 -155
- package/dist/summarizeMutationDiagnosis-JAEAUFCA.js +0 -31
- package/dist/summarizeMutationSurvival-4QZDDXDV.js +0 -95
- package/dist/summary-DTJZ7NNA.js +0 -40
- package/dist/summary.integration.spec-HRRE3J45.js +0 -405
- package/dist/summaryInput-WCADUZBK.js +0 -238
- package/dist/sunburst-BGXSCB63.js +0 -274
- package/dist/sunburst-DSFFFP33.js +0 -504
- package/dist/sunburst-DSFFFP33.js.map +0 -7
- package/dist/survival-LFXQIWRT.js +0 -49
- package/dist/survival-ONWZ5RFM.js +0 -1248
- package/dist/survival.integration.spec-ZP7XWHQH.js +0 -609
- package/dist/svgraph-2SL2SJVU.js +0 -1377
- package/dist/svmr-ONIPMLC2.js +0 -3834
- package/dist/swimmer-2EJZH5PP.js +0 -785
- package/dist/swimmer-2EJZH5PP.js.map +0 -7
- package/dist/table-LLCFO4KK.js +0 -192
- package/dist/termCollection-DAHJGR5P.js +0 -247
- package/dist/termCollection-QIN53TIL.js +0 -29
- package/dist/termCollection.unit.spec-FQOX2IVP.js +0 -295
- package/dist/termCollectionFractionSelection-UKEVVZXL.js +0 -38
- package/dist/termCollectionFractionSelection.unit.spec-URGEYBU2.js +0 -184
- package/dist/tk-4PYQ6WJQ.js +0 -1116
- package/dist/tk-4PYQ6WJQ.js.map +0 -7
- package/dist/tk-GM7CJ2LU.js +0 -37
- package/dist/tp.ui-TRUHW6GP.js +0 -1453
- package/dist/tvs.categorical-IY6YSFVN.js +0 -28
- package/dist/tvs.condition-YTD7GOPW.js +0 -160
- package/dist/tvs.density-CB24PXDE.js +0 -19
- package/dist/tvs.dt-AQQIZD5Z.js +0 -34
- package/dist/tvs.dtcnv.categorical-WOAOGJSW.js +0 -31
- package/dist/tvs.dtcnv.continuous-TJBEPJGO.js +0 -72
- package/dist/tvs.dtfusion-SFMZQKKU.js +0 -31
- package/dist/tvs.dtitd-Q5RQTCLD.js +0 -31
- package/dist/tvs.dtsnvindel-UEK4O6WI.js +0 -31
- package/dist/tvs.dtsv-ECS4KEYG.js +0 -31
- package/dist/tvs.multivalue-CJIZ3I54.js +0 -84
- package/dist/tvs.numeric-UFAOJR2B.js +0 -32
- package/dist/tvs.samplelst-BVFY2P7Q.js +0 -95
- package/dist/tvs.survival-L56B3I55.js +0 -110
- package/dist/tvs.termCollection-BFIBVBSA.js +0 -118
- package/dist/vocabulary-MTKDDDGB.js +0 -32
- package/dist/wsi.direct-OSHY7VL4.js +0 -11514
- /package/dist/{2dmaf-O2SQ5RGD.js.map → 2dmaf-7YU3SNKL.js.map} +0 -0
- /package/dist/{AggMatrixInput-LUCTWXHU.js.map → AggMatrixInput-73CDR5FS.js.map} +0 -0
- /package/dist/{AggregateMatrix-JVMF27YL.js.map → AggregateMatrix-NNULVFBM.js.map} +0 -0
- /package/dist/{AppHeader-DJU6HRKO.js.map → AppHeader-EZDDLLXU.js.map} +0 -0
- /package/dist/{BoxPlot-22RXMPRL.js.map → BoxPlot-463E7CRY.js.map} +0 -0
- /package/dist/{CorrelationVolcano-PBZWPFSN.js.map → CorrelationVolcano-LHIIMBPP.js.map} +0 -0
- /package/dist/{Cuminc-EL74X5GY.js.map → Cuminc-UL2TCIKV.js.map} +0 -0
- /package/dist/{DE-W5SAMMRW.js.map → DE-VRFSKFDW.js.map} +0 -0
- /package/dist/{DEinput-ZKEFJZQU.js.map → DEinput-FZTQRWVC.js.map} +0 -0
- /package/dist/{DM-ABKDXMDG.js.map → DM-PO7CQZNT.js.map} +0 -0
- /package/dist/{DifferentialAnalysis-3JTZ5WCQ.js.map → DifferentialAnalysis-WK6HE3YH.js.map} +0 -0
- /package/dist/{Disco-ME53U25C.js.map → Disco-YBNQJQFG.js.map} +0 -0
- /package/dist/{Disco.UI-F7XKJMKR.js.map → Disco.UI-HC5XYBFV.js.map} +0 -0
- /package/dist/{DmrPlot-OWBXUTON.js.map → DmrPlot-7VJ5C66D.js.map} +0 -0
- /package/dist/{GB-7X6DBWKS.js.map → GB-VPFQRDRO.js.map} +0 -0
- /package/dist/{GSEA-GAZIEGD7.js.map → GSEA-ZEJB3QZQ.js.map} +0 -0
- /package/dist/{GeneExpInput-BAOC6ICV.js.map → GeneExpInput-SBDDIY6G.js.map} +0 -0
- /package/dist/{Geomap-OZERLL7V.js.map → Geomap-23AHGP2V.js.map} +0 -0
- /package/dist/{HicApp-WDH5LVTD.js.map → HicApp-7AQQE4CM.js.map} +0 -0
- /package/dist/{IDCViewer-XBZFU3BU.js.map → IDCViewer-NO5Q6VOB.js.map} +0 -0
- /package/dist/{NumBinaryEditor-5R4EUQOZ.js.map → NumBinaryEditor-DSRP4OOU.js.map} +0 -0
- /package/dist/{NumBinaryEditor.unit.spec-ULBXMOYY.js.map → NumBinaryEditor.unit.spec-TT666YL4.js.map} +0 -0
- /package/dist/{NumContEditor-EN6V4FLQ.js.map → NumContEditor-6CURFOCH.js.map} +0 -0
- /package/dist/{NumContEditor.unit.spec-VDWKNIFN.js.map → NumContEditor.unit.spec-MNVCFCMP.js.map} +0 -0
- /package/dist/{NumCustomBinEditor-UB34ALNZ.js.map → NumCustomBinEditor-SQRR5EFL.js.map} +0 -0
- /package/dist/{NumCustomBinEditor.unit.spec-WZXJ7GEC.js.map → NumCustomBinEditor.unit.spec-F7BZWGGT.js.map} +0 -0
- /package/dist/{NumDiscreteEditor-H6J67YEL.js.map → NumDiscreteEditor-U7Z2QNYP.js.map} +0 -0
- /package/dist/{NumDiscreteEditor.unit.spec-KJ7YU22W.js.map → NumDiscreteEditor.unit.spec-EIEBUZCX.js.map} +0 -0
- /package/dist/{NumRegularBinEditor-R5JVUG7J.js.map → NumRegularBinEditor-CVZSWN6Y.js.map} +0 -0
- /package/dist/{NumRegularBinEditor.unit.spec-RZ73FMNO.js.map → NumRegularBinEditor.unit.spec-ZMAJOIHL.js.map} +0 -0
- /package/dist/{NumSplineEditor-AOR6OAJA.js.map → NumSplineEditor-U43D5NBJ.js.map} +0 -0
- /package/dist/{NumSplineEditor.unit.spec-Z6ZEI3UO.js.map → NumSplineEditor.unit.spec-C52AADTS.js.map} +0 -0
- /package/dist/{NumericDensity-SRTFTDQA.js.map → NumericDensity-PUKDZOVI.js.map} +0 -0
- /package/dist/{NumericDensity.unit.spec-MRREBAYU.js.map → NumericDensity.unit.spec-2347S76D.js.map} +0 -0
- /package/dist/{NumericHandler-7RALUACA.js.map → NumericHandler-3RT32PTR.js.map} +0 -0
- /package/dist/{NumericHandler.unit.spec-MDO23WRB.js.map → NumericHandler.unit.spec-4PADL4KZ.js.map} +0 -0
- /package/dist/{ProteomeInput-MOBXHRD5.js.map → ProteomeInput-NFV4FW4U.js.map} +0 -0
- /package/dist/{Regression-XWT4NNTG.js.map → Regression-N7M7N6G4.js.map} +0 -0
- /package/dist/{RunChart2-Q7W5MWJS.js.map → RunChart2-UPQ7C6QE.js.map} +0 -0
- /package/dist/{SC-MM3JTEVL.js.map → SC-KBW2NHUV.js.map} +0 -0
- /package/dist/{Violin-XNTBDUPG.js.map → Violin-GWCOP3ZF.js.map} +0 -0
- /package/dist/{Wsi-22KJSFVH.js.map → Wsi-NXAEOYIS.js.map} +0 -0
- /package/dist/{adSandbox-TLYWQOOA.js.map → adSandbox-RPEWEEW7.js.map} +0 -0
- /package/dist/{animatedBubbleChart-67SY5JGP.js.map → animatedBubbleChart-ILDMZRBX.js.map} +0 -0
- /package/dist/{app-FG3KPE4R.js.map → app-LOUC4J47.js.map} +0 -0
- /package/dist/{app-VK5LYO6B.js.map → app-MRKXZ6AZ.js.map} +0 -0
- /package/dist/{barchart-IGWRVB6W.js.map → barchart-CJR37234.js.map} +0 -0
- /package/dist/{barchart2-TT6OBJJP.js.map → barchart2-QQYLTHWR.js.map} +0 -0
- /package/dist/{block.init-2Y6CNK7H.js.map → block.init-YJQTJIDO.js.map} +0 -0
- /package/dist/{block.mds.expressionrank-VZ4JVPTG.js.map → block.mds.expressionrank-GBMEI5KQ.js.map} +0 -0
- /package/dist/{block.mds.geneboxplot-NYMS32JP.js.map → block.mds.geneboxplot-XWE3E5IW.js.map} +0 -0
- /package/dist/{block.mds.junction-3R6C3B5W.js.map → block.mds.junction-QLEHFVPE.js.map} +0 -0
- /package/dist/{block.mds.svcnv-SO5CYYIQ.js.map → block.mds.svcnv-53DTOPBC.js.map} +0 -0
- /package/dist/{block.svg-R4ASXXNW.js.map → block.svg-57T37ABS.js.map} +0 -0
- /package/dist/{block.tk.aicheck-LYRTDZRA.js.map → block.tk.aicheck-6DXJTS3H.js.map} +0 -0
- /package/dist/{block.tk.bigwig.ui-3KMMZX2M.js.map → block.tk.bigwig.ui-OYIVXE2L.js.map} +0 -0
- /package/dist/{block.tk.hicstraw-7HH4PGFY.js.map → block.tk.hicstraw-UKTGEBWT.js.map} +0 -0
- /package/dist/{block.tk.junction-BPEKLYS2.js.map → block.tk.junction-ZU5KPFQ3.js.map} +0 -0
- /package/dist/{block.tk.junction.textmatrixui-2QU5DL2X.js.map → block.tk.junction.textmatrixui-P4WXTAZR.js.map} +0 -0
- /package/dist/{block.tk.ld-TJREYPNY.js.map → block.tk.ld-3PQ4O2AE.js.map} +0 -0
- /package/dist/{block.tk.menu-HDBZK4YP.js.map → block.tk.menu-LLITB6UA.js.map} +0 -0
- /package/dist/{block.tk.pgv-G5GCYBK2.js.map → block.tk.pgv-Y3FBXUO3.js.map} +0 -0
- /package/dist/{brainImaging-ODWHF7WZ.js.map → brainImaging-4B3WXLNP.js.map} +0 -0
- /package/dist/{brainRegions-DC7DEA7N.js.map → brainRegions-7VLONUWN.js.map} +0 -0
- /package/dist/{bubbleHeatmap-T5ACULRL.js.map → bubbleHeatmap-DI6GJRR6.js.map} +0 -0
- /package/dist/{cellTypeBubbleHeatmap-RQINXXTK.js.map → cellTypeBubbleHeatmap-HJY53DB2.js.map} +0 -0
- /package/dist/{chunk-TWTPWEYL.js.map → chunk-226MNBZ2.js.map} +0 -0
- /package/dist/{chunk-AUPTEHV7.js.map → chunk-2CNFGVHU.js.map} +0 -0
- /package/dist/{chunk-DJMDETVU.js.map → chunk-2MC3RNKA.js.map} +0 -0
- /package/dist/{chunk-2PHFY3VP.js.map → chunk-2OMX5AYB.js.map} +0 -0
- /package/dist/{chunk-64JHE3GV.js.map → chunk-2SL4QWUS.js.map} +0 -0
- /package/dist/{chunk-WETOH7YW.js.map → chunk-3KGBC5MK.js.map} +0 -0
- /package/dist/{chunk-UAB5PGOP.js.map → chunk-3PCRAPUV.js.map} +0 -0
- /package/dist/{chunk-ZWLT5QS3.js.map → chunk-4DBOMSKP.js.map} +0 -0
- /package/dist/{chunk-2UB6JZ3I.js.map → chunk-57BS6KNI.js.map} +0 -0
- /package/dist/{chunk-UJIB7QM3.js.map → chunk-5AXS5G4A.js.map} +0 -0
- /package/dist/{chunk-NS2MZN3C.js.map → chunk-5DI4UNH5.js.map} +0 -0
- /package/dist/{chunk-ATZNXW5F.js.map → chunk-5HJG6ECV.js.map} +0 -0
- /package/dist/{chunk-NYEFSOKD.js.map → chunk-5ZYANHGX.js.map} +0 -0
- /package/dist/{chunk-WV44DGEJ.js.map → chunk-6T4MN7LV.js.map} +0 -0
- /package/dist/{chunk-QM724EG2.js.map → chunk-75MRUW2K.js.map} +0 -0
- /package/dist/{chunk-7PQVNQFR.js.map → chunk-7J3W3KCN.js.map} +0 -0
- /package/dist/{chunk-4OOQ52ET.js.map → chunk-AIZYAKIE.js.map} +0 -0
- /package/dist/{chunk-VBDJG6GZ.js.map → chunk-AJNFI6GA.js.map} +0 -0
- /package/dist/{chunk-NQMS7WV3.js.map → chunk-BJAWDZBL.js.map} +0 -0
- /package/dist/{chunk-VOXUMZMG.js.map → chunk-C6PVZVIH.js.map} +0 -0
- /package/dist/{chunk-24ZS2XWC.js.map → chunk-C77X5ZUV.js.map} +0 -0
- /package/dist/{chunk-LSRFRZNP.js.map → chunk-C7KUMZQM.js.map} +0 -0
- /package/dist/{chunk-6MUJGVOH.js.map → chunk-C7ROKWV2.js.map} +0 -0
- /package/dist/{chunk-XVEEMQAT.js.map → chunk-CAH6LJ5Z.js.map} +0 -0
- /package/dist/{chunk-RIL33JCW.js.map → chunk-CUCP2GMT.js.map} +0 -0
- /package/dist/{chunk-FOUMNTII.js.map → chunk-DTGAMBRJ.js.map} +0 -0
- /package/dist/{chunk-7ZEJKFGW.js.map → chunk-DXT7GDHY.js.map} +0 -0
- /package/dist/{chunk-IKZQST6E.js.map → chunk-ENPMWVWG.js.map} +0 -0
- /package/dist/{chunk-DXM5MQCZ.js.map → chunk-EYKJQJ7R.js.map} +0 -0
- /package/dist/{chunk-B2KYLEYM.js.map → chunk-FE5TCBIT.js.map} +0 -0
- /package/dist/{chunk-UCB3W3OT.js.map → chunk-FJ2JV2VK.js.map} +0 -0
- /package/dist/{chunk-DRESQF33.js.map → chunk-FZYVPRVQ.js.map} +0 -0
- /package/dist/{chunk-5TPWMYBG.js.map → chunk-GBKQHVKJ.js.map} +0 -0
- /package/dist/{chunk-2QFMKWNS.js.map → chunk-GUW7VTUL.js.map} +0 -0
- /package/dist/{chunk-3GQ54XTJ.js.map → chunk-H7F6DMJA.js.map} +0 -0
- /package/dist/{chunk-IPRYYK26.js.map → chunk-HH3NUAR2.js.map} +0 -0
- /package/dist/{chunk-A6ZUYQHO.js.map → chunk-HRTPGNOG.js.map} +0 -0
- /package/dist/{chunk-H3YF55ZI.js.map → chunk-IFPRYTS7.js.map} +0 -0
- /package/dist/{chunk-YBOHXANC.js.map → chunk-IJSFSUI4.js.map} +0 -0
- /package/dist/{chunk-BJCET6RU.js.map → chunk-IRQKX6DL.js.map} +0 -0
- /package/dist/{chunk-GN2A5NL5.js.map → chunk-JHLF2ZC2.js.map} +0 -0
- /package/dist/{chunk-ALIMVUHR.js.map → chunk-JNZL7HKB.js.map} +0 -0
- /package/dist/{chunk-GX6G2SSW.js.map → chunk-K2ARLT2A.js.map} +0 -0
- /package/dist/{chunk-SO76DLSZ.js.map → chunk-K3G56J5R.js.map} +0 -0
- /package/dist/{chunk-WCNMP54T.js.map → chunk-KKUCG2QE.js.map} +0 -0
- /package/dist/{chunk-D6U65W7Q.js.map → chunk-KPXCXBNU.js.map} +0 -0
- /package/dist/{chunk-6YGSVJJD.js.map → chunk-MANAUI7R.js.map} +0 -0
- /package/dist/{chunk-7XW4JWMJ.js.map → chunk-MEUSRAOE.js.map} +0 -0
- /package/dist/{chunk-NR6WFCPF.js.map → chunk-MHWYRNGA.js.map} +0 -0
- /package/dist/{chunk-MP7BA3GK.js.map → chunk-MSTYU3QO.js.map} +0 -0
- /package/dist/{chunk-MVSUESEV.js.map → chunk-MWARRQT4.js.map} +0 -0
- /package/dist/{chunk-YNQFOPS6.js.map → chunk-MXKYPTZ7.js.map} +0 -0
- /package/dist/{chunk-NUA66GW7.js.map → chunk-NX5IB4IY.js.map} +0 -0
- /package/dist/{chunk-4ENIOXIT.js.map → chunk-OZUF7O2S.js.map} +0 -0
- /package/dist/{chunk-SLHXR4BZ.js.map → chunk-QNCE6EOK.js.map} +0 -0
- /package/dist/{chunk-5NI77Z3O.js.map → chunk-RIHO7ZD5.js.map} +0 -0
- /package/dist/{chunk-LYX4S6WA.js.map → chunk-RV335DF2.js.map} +0 -0
- /package/dist/{chunk-3IE6FDVA.js.map → chunk-THAUD62Q.js.map} +0 -0
- /package/dist/{chunk-JL3PYV5F.js.map → chunk-VBTBUXXX.js.map} +0 -0
- /package/dist/{chunk-FTGLS763.js.map → chunk-VHWJK2MP.js.map} +0 -0
- /package/dist/{chunk-K6VYSDB5.js.map → chunk-VLIOMJDR.js.map} +0 -0
- /package/dist/{chunk-U2GHNZ4N.js.map → chunk-VMK4RHV5.js.map} +0 -0
- /package/dist/{chunk-GWNCQ5YI.js.map → chunk-WKT7RF3C.js.map} +0 -0
- /package/dist/{chunk-ETXOEP4N.js.map → chunk-WXSMUSU7.js.map} +0 -0
- /package/dist/{chunk-ZYAZHJPZ.js.map → chunk-WXSX5OQJ.js.map} +0 -0
- /package/dist/{chunk-CTVPW77S.js.map → chunk-WY3IORKG.js.map} +0 -0
- /package/dist/{chunk-WKGKKM6F.js.map → chunk-WYSOOKFJ.js.map} +0 -0
- /package/dist/{chunk-TUO5I6LP.js.map → chunk-XBBFFOLS.js.map} +0 -0
- /package/dist/{chunk-YVQ4USPP.js.map → chunk-XSRQGX5H.js.map} +0 -0
- /package/dist/{chunk-KSS26PXB.js.map → chunk-YLL6CTBL.js.map} +0 -0
- /package/dist/{chunk-ANBGNYNP.js.map → chunk-YPBY37KD.js.map} +0 -0
- /package/dist/{chunk-DKPAOVJH.js.map → chunk-YUNJBIK4.js.map} +0 -0
- /package/dist/{chunk-IANE75G3.js.map → chunk-Z5ECCUNG.js.map} +0 -0
- /package/dist/{cohort-QSLKB4ZO.js.map → cohort-5WL6UJOS.js.map} +0 -0
- /package/dist/{cohortSunburst-AQFSNJ5K.js.map → cohortSunburst-R3Z5KJQL.js.map} +0 -0
- /package/dist/{condition-MLS6TJHV.js.map → condition-2IILUMVB.js.map} +0 -0
- /package/dist/{controls-ZT3GZ667.js.map → controls-G3JITZF5.js.map} +0 -0
- /package/dist/{controls.config-F7NIPLKB.js.map → controls.config-BO7KPPET.js.map} +0 -0
- /package/dist/{correlation-ZEIQJGSQ.js.map → correlation-CZILLVEM.js.map} +0 -0
- /package/dist/{customdata.inputui-6PJSAJK2.js.map → customdata.inputui-BXFQAMTR.js.map} +0 -0
- /package/dist/{databrowser.ui-EMZ5L2Y7.js.map → databrowser.ui-V2NJQF3U.js.map} +0 -0
- /package/dist/{dictionary-U2BWGY6B.js.map → dictionary-OVAQX6R3.js.map} +0 -0
- /package/dist/{dnaMethylation-R34E2XNC.js.map → dnaMethylation-DHPFRXB2.js.map} +0 -0
- /package/dist/{dnaMethylation.integration.spec-4Z2AJHWY.js.map → dnaMethylation.integration.spec-PJLIRGN5.js.map} +0 -0
- /package/dist/{dofetch-JY4A7BYI.js.map → dofetch-KBTN6OW4.js.map} +0 -0
- /package/dist/{e2pca-WSSCXX6A.js.map → e2pca-O7SNMJGB.js.map} +0 -0
- /package/dist/{ep-ATUWEHDJ.js.map → ep-NIVLKG4S.js.map} +0 -0
- /package/dist/{expclust.gdc.spec-QRIRRPO7.js.map → expclust.gdc.spec-LVCD6C43.js.map} +0 -0
- /package/dist/{facet-5VDCSP3S.js.map → facet-LB4SCXE4.js.map} +0 -0
- /package/dist/{gb-Y4UG6LFA.js.map → gb-3IJ4NCPO.js.map} +0 -0
- /package/dist/{geneExpClustering-OO67JNJ2.js.map → geneExpClustering-SIAC7CMA.js.map} +0 -0
- /package/dist/{geneExpression-KPRFXKU7.js.map → geneExpression-KPUOZ4PT.js.map} +0 -0
- /package/dist/{geneExpression-5KGV3MAA.js.map → geneExpression-P2TTZXN2.js.map} +0 -0
- /package/dist/{geneExpression.unit.spec-YV45EZ5O.js.map → geneExpression.unit.spec-Q5D6XHUF.js.map} +0 -0
- /package/dist/{geneORA-R74JPUTC.js.map → geneORA-PKUIJKTL.js.map} +0 -0
- /package/dist/{geneRanking-IJTXNMHV.js.map → geneRanking-ZGT5MHBV.js.map} +0 -0
- /package/dist/{geneVariant-JT3EGAIH.js.map → geneVariant-24YNANTT.js.map} +0 -0
- /package/dist/{geneVariant-HBAHT6LU.js.map → geneVariant-CDGENHWQ.js.map} +0 -0
- /package/dist/{geneVariant.integration.spec-TFQYPUAS.js.map → geneVariant.integration.spec-7QW4C2WO.js.map} +0 -0
- /package/dist/{genefusion.ui-MMTQMTHC.js.map → genefusion.ui-NVXGSBXD.js.map} +0 -0
- /package/dist/{geneset-VMBICNCZ.js.map → geneset-7STL6UDD.js.map} +0 -0
- /package/dist/{genomeBrowser.spec-2XLLIYGA.js.map → genomeBrowser.spec-OE2CIP7I.js.map} +0 -0
- /package/dist/{grin2-2RYPEUWV.js.map → grin2-2HXUIY5O.js.map} +0 -0
- /package/dist/{grin2-Y6KAFVV2.js.map → grin2-32IIJR5E.js.map} +0 -0
- /package/dist/{hierCluster-EKGFBQT4.js.map → hierCluster-MDZEI2KB.js.map} +0 -0
- /package/dist/{hierCluster-Z4PVNMGS.js.map → hierCluster-T3PZUGBI.js.map} +0 -0
- /package/dist/{hierCluster.config-Q6WUNK2K.js.map → hierCluster.config-7UN6AYGB.js.map} +0 -0
- /package/dist/{hierCluster.integration.spec-2LHSHNFC.js.map → hierCluster.integration.spec-DWOYVK6T.js.map} +0 -0
- /package/dist/{hierCluster.interactivity-OGQ3KUY6.js.map → hierCluster.interactivity-5OM6XNFG.js.map} +0 -0
- /package/dist/{hierCluster.renderers-3GJZXG75.js.map → hierCluster.renderers-YGX6MZZW.js.map} +0 -0
- /package/dist/{imagePlot-ZJEZPBX7.js.map → imagePlot-KBRXDV5G.js.map} +0 -0
- /package/dist/{importPlot-GFEFYEHZ.js.map → importPlot-DJMIC22L.js.map} +0 -0
- /package/dist/{isoformExpression-A2X3DSR6.js.map → isoformExpression-SWDWADRC.js.map} +0 -0
- /package/dist/{isoformExpression.unit.spec-VKMEGCL4.js.map → isoformExpression.unit.spec-2U5KCYBP.js.map} +0 -0
- /package/dist/{junction-HWIHLQU2.js.map → junction-NMXVVGRG.js.map} +0 -0
- /package/dist/{junction.customTerm-C3VWXEYH.js.map → junction.customTerm-3R2GNE3A.js.map} +0 -0
- /package/dist/{junction.unit.spec-ZYJGDOXJ.js.map → junction.unit.spec-JTGBPPN7.js.map} +0 -0
- /package/dist/{launch.adhoc-HW5AZM4T.js.map → launch.adhoc-YB5SKMNY.js.map} +0 -0
- /package/dist/{leftlabel.sample-MTW2HRRQ.js.map → leftlabel.sample-QKXIODCS.js.map} +0 -0
- /package/dist/{lollipop-VWW5H6CR.js.map → lollipop-TSZ62PBH.js.map} +0 -0
- /package/dist/{maf-KEJYO3H4.js.map → maf-4L5YN4CG.js.map} +0 -0
- /package/dist/{maftimeline-MJZDSGSR.js.map → maftimeline-VOYB3NY3.js.map} +0 -0
- /package/dist/{matrix-3UJW6LOA.js.map → matrix-IWJECVTF.js.map} +0 -0
- /package/dist/{matrix-W4AX5OBM.js.map → matrix-MMJAJZA7.js.map} +0 -0
- /package/dist/{matrix.cells-5DAIZ3E5.js.map → matrix.cells-5RTZUJVN.js.map} +0 -0
- /package/dist/{matrix.config-PK26VPQT.js.map → matrix.config-DZGOZWJS.js.map} +0 -0
- /package/dist/{matrix.data-UK5DGKBK.js.map → matrix.data-Y5TPRGMW.js.map} +0 -0
- /package/dist/{matrix.groups-NM4Q5YDN.js.map → matrix.groups-6DXCAY4P.js.map} +0 -0
- /package/dist/{matrix.integration.spec-FGWNBCRR.js.map → matrix.integration.spec-2N237E7T.js.map} +0 -0
- /package/dist/{matrix.interactivity-4C37PII5.js.map → matrix.interactivity-FL33UUKR.js.map} +0 -0
- /package/dist/{matrix.layout-ODV7WXUP.js.map → matrix.layout-7SYHV3KJ.js.map} +0 -0
- /package/dist/{matrix.legend-5MY7OXWN.js.map → matrix.legend-S3E76TVO.js.map} +0 -0
- /package/dist/{matrix.renderers-QA7W7ZUL.js.map → matrix.renderers-3SIBT2RP.js.map} +0 -0
- /package/dist/{matrix.serieses-4FSFJPCK.js.map → matrix.serieses-3UGLZW25.js.map} +0 -0
- /package/dist/{matrix.sort-3QLFMBJ5.js.map → matrix.sort-A7CNLDUJ.js.map} +0 -0
- /package/dist/{matrix.sort.unit.spec-HVOC6IYT.js.map → matrix.sort.unit.spec-L3H44T6I.js.map} +0 -0
- /package/dist/{matrix.sorterUi-EY3SA6CG.js.map → matrix.sorterUi-6PZR3YOD.js.map} +0 -0
- /package/dist/{matrix.sorterUi.unit.spec-OAXWPZZI.js.map → matrix.sorterUi.unit.spec-2NRU5UFH.js.map} +0 -0
- /package/dist/{matrix.unit.spec-RAL7AU22.js.map → matrix.unit.spec-HRZIJB6T.js.map} +0 -0
- /package/dist/{mavb-KIM63AC4.js.map → mavb-ZVRQSDPS.js.map} +0 -0
- /package/dist/{mds.fimo-DMAVM56P.js.map → mds.fimo-ZKETTET7.js.map} +0 -0
- /package/dist/{mds.samplescatterplot-KILTR2C7.js.map → mds.samplescatterplot-ZV3UNRLP.js.map} +0 -0
- /package/dist/{mds.survivalplot-PV76ANBP.js.map → mds.survivalplot-OVXZRTU4.js.map} +0 -0
- /package/dist/{multivalue-2V5LMQY7.js.map → multivalue-6BE5IA4F.js.map} +0 -0
- /package/dist/{numericDictTermCluster-TGL4X6UC.js.map → numericDictTermCluster-6XDVVWLE.js.map} +0 -0
- /package/dist/{oncomatrix-2O7SLXHX.js.map → oncomatrix-XK62NEOO.js.map} +0 -0
- /package/dist/{oncomatrix.spec-HZJKOF5G.js.map → oncomatrix.spec-YVTCHOPS.js.map} +0 -0
- /package/dist/{plot.2dvaf-424NNMMA.js.map → plot.2dvaf-NUOBWMNX.js.map} +0 -0
- /package/dist/{plot.app-YBZDNST2.js.map → plot.app-G6IQWXTV.js.map} +0 -0
- /package/dist/{plot.barplot-YZQBYJUY.js.map → plot.barplot-6QJ6HEJR.js.map} +0 -0
- /package/dist/{plot.boxplot-5OW6IBQL.js.map → plot.boxplot-XKQJSW2O.js.map} +0 -0
- /package/dist/{plot.brainImaging-H3ABPPD3.js.map → plot.brainImaging-UTHFJFXU.js.map} +0 -0
- /package/dist/{plot.disco-X7KCDWGX.js.map → plot.disco-3MSCX7TM.js.map} +0 -0
- /package/dist/{plot.ssgq-GYRVHTC7.js.map → plot.ssgq-4KBVHF42.js.map} +0 -0
- /package/dist/{plot.vaf2cov-B2TELPHL.js.map → plot.vaf2cov-OGUQSSDS.js.map} +0 -0
- /package/dist/{polar2-5KNZRLXY.js.map → polar2-V7M56GTZ.js.map} +0 -0
- /package/dist/{profileForms-FY34KXCL.js.map → profileForms-TS3BJLHH.js.map} +0 -0
- /package/dist/{profilePlot-3FX2TPYC.js.map → profilePlot-DP5272HR.js.map} +0 -0
- /package/dist/{proteinView-WSEO3LD3.js.map → proteinView-K4K4SP3L.js.map} +0 -0
- /package/dist/{proteomeCohortCompare-KA2DF3EE.js.map → proteomeCohortCompare-SFWVGLFK.js.map} +0 -0
- /package/dist/{pseudbulk.unit.spec-AT3TFCOW.js.map → pseudbulk.unit.spec-NFOA7J2C.js.map} +0 -0
- /package/dist/{pseudobulk-4ZRHUC7W.js.map → pseudobulk-XKZQEZ4I.js.map} +0 -0
- /package/dist/{qualitative-3OBGJRP6.js.map → qualitative-7OSFNVI5.js.map} +0 -0
- /package/dist/{qualitative-FHJD44OA.js.map → qualitative-OIIN6E4Y.js.map} +0 -0
- /package/dist/{radar2-X757WR6V.js.map → radar2-AHZJKX7S.js.map} +0 -0
- /package/dist/{radarFacility2-GUBAK4Y3.js.map → radarFacility2-OUW6D5E7.js.map} +0 -0
- /package/dist/{rememberedGvQ.unit.spec-ADO4Y2OE.js.map → rememberedGvQ.unit.spec-SHTMMZGG.js.map} +0 -0
- /package/dist/{render-MZEPNEMU.js.map → render-7UZSGX3Q.js.map} +0 -0
- /package/dist/{report-TUAFDGAE.js.map → report-J7HKTXZ2.js.map} +0 -0
- /package/dist/{sampleView-X6YKCBE7.js.map → sampleView-6547OUIM.js.map} +0 -0
- /package/dist/{samplelst-UPNRALBH.js.map → samplelst-UHF23UEB.js.map} +0 -0
- /package/dist/{samplematrix-W3HZK3IS.js.map → samplematrix-OOKS3TMR.js.map} +0 -0
- /package/dist/{sc-UL7233UR.js.map → sc-WF2BLGNG.js.map} +0 -0
- /package/dist/{scatter-VQQRIW6N.js.map → scatter-ABCVFGRV.js.map} +0 -0
- /package/dist/{scatter-FTJ77NUM.js.map → scatter-WF7XM3IA.js.map} +0 -0
- /package/dist/{selectGenomeWithTklst-HPYPSPFI.js.map → selectGenomeWithTklst-67HU5KRB.js.map} +0 -0
- /package/dist/{singleCellCellType-XTKGOH6H.js.map → singleCellCellType-3FZPJ25V.js.map} +0 -0
- /package/dist/{singleCellCellType.unit.spec-A62GT72A.js.map → singleCellCellType.unit.spec-TOMREHWK.js.map} +0 -0
- /package/dist/{singleCellGeneExpression-X7H5GTU3.js.map → singleCellGeneExpression-NQTJ5KJQ.js.map} +0 -0
- /package/dist/{singleCellGeneExpression.unit.spec-2KQBHG7O.js.map → singleCellGeneExpression.unit.spec-ZWUQTU2N.js.map} +0 -0
- /package/dist/{singleCellNumericValue-6YS42PZ2.js.map → singleCellNumericValue-VI7H722L.js.map} +0 -0
- /package/dist/{singleCellNumericValue.unit.spec-DNVXQFKI.js.map → singleCellNumericValue.unit.spec-QGLHES7H.js.map} +0 -0
- /package/dist/{singleCellPlot-MGOQ7EQV.js.map → singleCellPlot-RU5T6SJK.js.map} +0 -0
- /package/dist/{singlecell-QW3SLQD6.js.map → singlecell-C3CJVNXP.js.map} +0 -0
- /package/dist/{singlecell-CIOB5XON.js.map → singlecell-NRQZ7KC6.js.map} +0 -0
- /package/dist/{snp-6B4MIPKL.js.map → snp-X6XY65VS.js.map} +0 -0
- /package/dist/{snp.unit.spec-HNILS56E.js.map → snp.unit.spec-6EENK7GQ.js.map} +0 -0
- /package/dist/{snplocus-DDFLYZ2Y.js.map → snplocus-R4JA6TFT.js.map} +0 -0
- /package/dist/{snplst-JYKOV73J.js.map → snplst-SOWVHSXH.js.map} +0 -0
- /package/dist/{spliceevent.a53ss.diagram-IBD5ITXR.js.map → spliceevent.a53ss.diagram-IRLCCVQZ.js.map} +0 -0
- /package/dist/{spliceevent.exonskip.diagram-ZJGEVUYW.js.map → spliceevent.exonskip.diagram-4KG7LE5D.js.map} +0 -0
- /package/dist/{spliceevent.noeventdiagram-RNLNTFOW.js.map → spliceevent.noeventdiagram-OWXAJJX7.js.map} +0 -0
- /package/dist/{ssGSEA-42VQLAXL.js.map → ssGSEA-EMOKPLMP.js.map} +0 -0
- /package/dist/{ssGSEA.unit.spec-FBJANIKG.js.map → ssGSEA.unit.spec-KXQ7R5WH.js.map} +0 -0
- /package/dist/{stattable-FROSNTJY.js.map → stattable-H2G7MOZG.js.map} +0 -0
- /package/dist/{studyCatalog-XIYNJ24U.js.map → studyCatalog-3ITQXWFL.js.map} +0 -0
- /package/dist/{summarizeCnvGeneexp-N3OFI24L.js.map → summarizeCnvGeneexp-ZIPU6YDY.js.map} +0 -0
- /package/dist/{summarizeGeneexpSurvival-J4DO2AL4.js.map → summarizeGeneexpSurvival-3RYU226R.js.map} +0 -0
- /package/dist/{summarizeMutationCnv-Y43BBSI4.js.map → summarizeMutationCnv-RGDBUB22.js.map} +0 -0
- /package/dist/{summarizeMutationDiagnosis-JAEAUFCA.js.map → summarizeMutationDiagnosis-Z4MZE6Y4.js.map} +0 -0
- /package/dist/{summarizeMutationSurvival-4QZDDXDV.js.map → summarizeMutationSurvival-Z5CNRH7E.js.map} +0 -0
- /package/dist/{summary-DTJZ7NNA.js.map → summary-6QQCNX3B.js.map} +0 -0
- /package/dist/{summary.integration.spec-HRRE3J45.js.map → summary.integration.spec-3ULXTZUP.js.map} +0 -0
- /package/dist/{summaryInput-WCADUZBK.js.map → summaryInput-4QKR34QB.js.map} +0 -0
- /package/dist/{termCollection-QIN53TIL.js.map → sunburst-KB3BWC72.js.map} +0 -0
- /package/dist/{sunburst-BGXSCB63.js.map → sunburst-XTFBHZNH.js.map} +0 -0
- /package/dist/{survival-LFXQIWRT.js.map → survival-7O6ZK63E.js.map} +0 -0
- /package/dist/{survival-ONWZ5RFM.js.map → survival-NNCY4K6C.js.map} +0 -0
- /package/dist/{survival.integration.spec-ZP7XWHQH.js.map → survival.integration.spec-ZYZHZAXA.js.map} +0 -0
- /package/dist/{svgraph-2SL2SJVU.js.map → svgraph-ZLSFFEAC.js.map} +0 -0
- /package/dist/{svmr-ONIPMLC2.js.map → svmr-REBBDEYM.js.map} +0 -0
- /package/dist/{table-LLCFO4KK.js.map → table-CWIQQESJ.js.map} +0 -0
- /package/dist/{termCollectionFractionSelection-UKEVVZXL.js.map → termCollection-7TYJSQ45.js.map} +0 -0
- /package/dist/{termCollection-DAHJGR5P.js.map → termCollection-7Z55QNL7.js.map} +0 -0
- /package/dist/{termCollection.unit.spec-FQOX2IVP.js.map → termCollection.unit.spec-LQ5MIBDH.js.map} +0 -0
- /package/dist/{tk-GM7CJ2LU.js.map → termCollectionFractionSelection-24DZYVDU.js.map} +0 -0
- /package/dist/{termCollectionFractionSelection.unit.spec-URGEYBU2.js.map → termCollectionFractionSelection.unit.spec-DCV2CFS5.js.map} +0 -0
- /package/dist/{tvs.categorical-IY6YSFVN.js.map → tk-2WZFPRCP.js.map} +0 -0
- /package/dist/{tp.ui-TRUHW6GP.js.map → tp.ui-HXQX2UH4.js.map} +0 -0
- /package/dist/{tvs.density-CB24PXDE.js.map → tvs.categorical-4D3JI2ER.js.map} +0 -0
- /package/dist/{tvs.condition-YTD7GOPW.js.map → tvs.condition-62FXFHZ5.js.map} +0 -0
- /package/dist/{tvs.dt-AQQIZD5Z.js.map → tvs.density-IGO4I4T2.js.map} +0 -0
- /package/dist/{tvs.numeric-UFAOJR2B.js.map → tvs.dt-FZSVMJOO.js.map} +0 -0
- /package/dist/{tvs.dtcnv.categorical-WOAOGJSW.js.map → tvs.dtcnv.categorical-PPFQIC42.js.map} +0 -0
- /package/dist/{tvs.dtcnv.continuous-TJBEPJGO.js.map → tvs.dtcnv.continuous-TV2IGHY4.js.map} +0 -0
- /package/dist/{tvs.dtfusion-SFMZQKKU.js.map → tvs.dtfusion-ON4BA4XJ.js.map} +0 -0
- /package/dist/{tvs.dtitd-Q5RQTCLD.js.map → tvs.dtitd-VFNROOWQ.js.map} +0 -0
- /package/dist/{tvs.dtsnvindel-UEK4O6WI.js.map → tvs.dtsnvindel-ZXOP37T5.js.map} +0 -0
- /package/dist/{tvs.dtsv-ECS4KEYG.js.map → tvs.dtsv-EUHPTW7J.js.map} +0 -0
- /package/dist/{tvs.multivalue-CJIZ3I54.js.map → tvs.multivalue-NHVXZNDI.js.map} +0 -0
- /package/dist/{vocabulary-MTKDDDGB.js.map → tvs.numeric-FPWDPO3J.js.map} +0 -0
- /package/dist/{tvs.samplelst-BVFY2P7Q.js.map → tvs.samplelst-ZZHRNUP4.js.map} +0 -0
- /package/dist/{tvs.survival-L56B3I55.js.map → tvs.survival-F3KSG3U6.js.map} +0 -0
- /package/dist/{tvs.termCollection-BFIBVBSA.js.map → tvs.termCollection-B37DZLDY.js.map} +0 -0
- /package/dist/{wsi.direct-OSHY7VL4.js.map → wsi.direct-3YH3QGQD.js.map} +0 -0
|
@@ -1,504 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
LINK,
|
|
3
|
-
RULE,
|
|
4
|
-
SELECT_STROKE,
|
|
5
|
-
SIZE,
|
|
6
|
-
SunburstRenderer,
|
|
7
|
-
TEXT_DARK,
|
|
8
|
-
TEXT_MUTED,
|
|
9
|
-
badge,
|
|
10
|
-
card,
|
|
11
|
-
icon,
|
|
12
|
-
pill
|
|
13
|
-
} from "./chunk-T7CKGRGP.js";
|
|
14
|
-
import {
|
|
15
|
-
PlotBase,
|
|
16
|
-
addNewGroup,
|
|
17
|
-
capitalizeFirstLetter,
|
|
18
|
-
escapeHtml,
|
|
19
|
-
fillTermWrapper,
|
|
20
|
-
getCombinedTermFilter,
|
|
21
|
-
getGroupFilterOfConditions,
|
|
22
|
-
getNormalRoot,
|
|
23
|
-
termsettingInit
|
|
24
|
-
} from "./chunk-BKW35Z4U.js";
|
|
25
|
-
import "./chunk-HJ6L54YS.js";
|
|
26
|
-
import "./chunk-ETXOEP4N.js";
|
|
27
|
-
import "./chunk-CNFTQSNE.js";
|
|
28
|
-
import "./chunk-5NI77Z3O.js";
|
|
29
|
-
import "./chunk-TVJOSRCH.js";
|
|
30
|
-
import "./chunk-3CIL7KH7.js";
|
|
31
|
-
import "./chunk-T4XPCSLP.js";
|
|
32
|
-
import {
|
|
33
|
-
dofetch3
|
|
34
|
-
} from "./chunk-CJHNPYFQ.js";
|
|
35
|
-
import "./chunk-W5J3LTYS.js";
|
|
36
|
-
import "./chunk-NR6WFCPF.js";
|
|
37
|
-
import "./chunk-GN2A5NL5.js";
|
|
38
|
-
import "./chunk-ME3HB3V6.js";
|
|
39
|
-
import {
|
|
40
|
-
copyMerge,
|
|
41
|
-
getCompInit
|
|
42
|
-
} from "./chunk-HBNB5TRH.js";
|
|
43
|
-
import "./chunk-PF4DSFDR.js";
|
|
44
|
-
import "./chunk-4OLM3KSB.js";
|
|
45
|
-
import "./chunk-6XKAOSQE.js";
|
|
46
|
-
import "./chunk-TLT4YIG3.js";
|
|
47
|
-
import "./chunk-5R63Q5KH.js";
|
|
48
|
-
import {
|
|
49
|
-
select_default
|
|
50
|
-
} from "./chunk-I6Y4O3RR.js";
|
|
51
|
-
import "./chunk-Q5RDQNIT.js";
|
|
52
|
-
import "./chunk-HS5PO5ZQ.js";
|
|
53
|
-
|
|
54
|
-
// plots/sunburst/sunburst.data.ts
|
|
55
|
-
function buildTermTree(res, twLst, rootName, colors) {
|
|
56
|
-
const convert = (n, ring, parentPath) => {
|
|
57
|
-
const tw = twLst[ring];
|
|
58
|
-
const category = res.rings[ring].categories[n.key] || { label: n.key };
|
|
59
|
-
const path = [...parentPath, [tw.$id, n.key]];
|
|
60
|
-
const children = (n.children || []).map((c) => convert(c, ring + 1, path));
|
|
61
|
-
const node = {
|
|
62
|
-
name: category.label,
|
|
63
|
-
level: tw.term.name,
|
|
64
|
-
// d3 adds the children to a node's own value, so it holds only the samples that end here
|
|
65
|
-
value: n.count - children.reduce((s, c) => s + c.count, 0),
|
|
66
|
-
count: n.count,
|
|
67
|
-
id: JSON.stringify(path),
|
|
68
|
-
ring,
|
|
69
|
-
key: n.key,
|
|
70
|
-
category
|
|
71
|
-
};
|
|
72
|
-
const color = ring == 0 && colors?.[n.key] || category.color;
|
|
73
|
-
if (color) node.color = color;
|
|
74
|
-
if (children.length) node.children = children;
|
|
75
|
-
return node;
|
|
76
|
-
};
|
|
77
|
-
return { name: rootName, value: 0, count: res.total, children: res.nodes.map((n) => convert(n, 0, [])) };
|
|
78
|
-
}
|
|
79
|
-
function categoryFilterItem(tw, category) {
|
|
80
|
-
if (category.filter) return structuredClone(category.filter);
|
|
81
|
-
if (!category.tvs) throw `no filter for category '${category.label}' of ${tw.term.name}`;
|
|
82
|
-
return { type: "tvs", tvs: { term: tw.term, ...structuredClone(category.tvs) } };
|
|
83
|
-
}
|
|
84
|
-
function wedgeFilter(path, twLst) {
|
|
85
|
-
const lst = path.map((n) => categoryFilterItem(twLst[n.ring], n.category));
|
|
86
|
-
return { type: "tvslst", in: true, join: lst.length > 1 ? "and" : "", lst };
|
|
87
|
-
}
|
|
88
|
-
function selectionFilter(paths, twLst) {
|
|
89
|
-
if (!paths.length) throw "no wedge selected";
|
|
90
|
-
if (paths.length == 1) return wedgeFilter(paths[0], twLst);
|
|
91
|
-
return { type: "tvslst", in: true, join: "or", lst: paths.map((p) => wedgeFilter(p, twLst)) };
|
|
92
|
-
}
|
|
93
|
-
function selectionName(paths, maxLen = 60) {
|
|
94
|
-
const names = paths.length == 1 ? paths[0].map((n) => n.name).join(" \u203A ") : paths.map((p) => p[p.length - 1].name).join(" or ");
|
|
95
|
-
return names.length > maxLen ? names.slice(0, maxLen - 1) + "\u2026" : names;
|
|
96
|
-
}
|
|
97
|
-
function allowedSampleTypes(otherTwLst, sampleTypes) {
|
|
98
|
-
if (!sampleTypes || Object.keys(sampleTypes).length < 2) return;
|
|
99
|
-
const parent = (t) => {
|
|
100
|
-
const p = sampleTypes[t]?.parent_id;
|
|
101
|
-
return p === null || p === void 0 ? void 0 : String(p);
|
|
102
|
-
};
|
|
103
|
-
const ancestors = (t) => {
|
|
104
|
-
const lst = [];
|
|
105
|
-
for (let p = parent(t); p !== void 0 && !lst.includes(p); p = parent(p)) lst.push(p);
|
|
106
|
-
return lst;
|
|
107
|
-
};
|
|
108
|
-
const types = otherTwLst.map((tw) => tw.term?.sample_type).filter((t) => t !== null && t !== void 0 && sampleTypes[t]).map(String);
|
|
109
|
-
const below = types.filter((t) => parent(t) !== void 0);
|
|
110
|
-
if (!below.length) return;
|
|
111
|
-
const deepest = below.reduce((a, b) => ancestors(b).length > ancestors(a).length ? b : a);
|
|
112
|
-
const descendants = Object.keys(sampleTypes).filter((t) => ancestors(t).includes(deepest));
|
|
113
|
-
return [...ancestors(deepest), deepest, ...descendants];
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// plots/sunburst/sunburst.ts
|
|
117
|
-
var STAT_SAMPLES = "Samples";
|
|
118
|
-
var STAT_SELECTED = "Selected samples";
|
|
119
|
-
var RING_STEP = 6;
|
|
120
|
-
var Sunburst = class _Sunburst extends PlotBase {
|
|
121
|
-
constructor(opts, api) {
|
|
122
|
-
super(opts, api);
|
|
123
|
-
this.twLst = [];
|
|
124
|
-
/** selected wedges by node id, in selection order */
|
|
125
|
-
this.selected = /* @__PURE__ */ new Map();
|
|
126
|
-
/** note shown in the selection card after a group is created */
|
|
127
|
-
this.createdNote = "";
|
|
128
|
-
/** the rings the Rings box shows, to rebuild its pills only when they change */
|
|
129
|
-
this.ringsShown = "";
|
|
130
|
-
/** the Rings box pills and their main() argument without the filter, which follows the state */
|
|
131
|
-
this.ringPills = [];
|
|
132
|
-
/** the counted unit, from the server */
|
|
133
|
-
this.unit = { one: "sample", many: "samples" };
|
|
134
|
-
this.type = _Sunburst.type;
|
|
135
|
-
if (this.opts.header)
|
|
136
|
-
this.opts.header.style("padding-left", "7px").style("color", "rgb(85, 85, 85)").html("Sunburst");
|
|
137
|
-
}
|
|
138
|
-
static {
|
|
139
|
-
this.type = "sunburst";
|
|
140
|
-
}
|
|
141
|
-
getState(appState) {
|
|
142
|
-
const config = appState.plots.find((p) => p.id === this.id);
|
|
143
|
-
if (!config) throw `No plot with id='${this.id}' found`;
|
|
144
|
-
return {
|
|
145
|
-
config,
|
|
146
|
-
// global mass filter combined with this plot's local filter
|
|
147
|
-
termfilter: getCombinedTermFilter(appState, config.filter),
|
|
148
|
-
genome: appState.vocab.genome,
|
|
149
|
-
dslabel: appState.vocab.dslabel,
|
|
150
|
-
sunburst: appState.termdbConfig?.sunburst || {}
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
async init() {
|
|
154
|
-
const holder = this.opts.holder.append("div").attr("data-testid", "sjpp-sunburst-holder").style("white-space", "normal").style("padding", "10px");
|
|
155
|
-
const errdiv = holder.append("div").attr("class", "sja_errorbar").style("display", "none");
|
|
156
|
-
const loadingDiv = holder.append("div").style("display", "none").style("padding", "24px").text("Loading ...");
|
|
157
|
-
const noteDiv = holder.append("div").style("font-size", ".85em").style("color", TEXT_MUTED).style("margin-bottom", "6px");
|
|
158
|
-
const chartHolder = holder.append("div").attr("data-testid", "sjpp-sunburst-chart");
|
|
159
|
-
this.renderer = new SunburstRenderer({
|
|
160
|
-
holder: chartHolder,
|
|
161
|
-
unit: this.unit,
|
|
162
|
-
rootName: "All samples",
|
|
163
|
-
statLabels: [STAT_SAMPLES, STAT_SELECTED],
|
|
164
|
-
pathCard: false,
|
|
165
|
-
hooks: {
|
|
166
|
-
onClick: (d, event) => this.onWedgeClick(d, event),
|
|
167
|
-
isSelected: (d) => this.selected.has(d.data.id),
|
|
168
|
-
cursor: (d) => d.children ? "zoom-in" : "pointer",
|
|
169
|
-
tooltip: (d, box) => this.tooltip(d, box),
|
|
170
|
-
onFocus: () => {
|
|
171
|
-
this.renderStats();
|
|
172
|
-
this.renderSidebar();
|
|
173
|
-
this.renderSelectFocus();
|
|
174
|
-
this.markShownRings();
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
const rings = card(this.renderer.dom.left, "Rings");
|
|
179
|
-
rings.body.attr("data-testid", "sjpp-sunburst-rings");
|
|
180
|
-
rings.box.append("style").text(".sjpp-sunburst-ringpill > div:nth-child(4) { display: none !important; }");
|
|
181
|
-
const selectFocus = this.renderer.addControl().attr("data-testid", "sjpp-sunburst-select-focus").on("click", () => {
|
|
182
|
-
const f = this.renderer.focus;
|
|
183
|
-
if (f?.depth && !this.selectedAncestor(f)) this.toggle(f);
|
|
184
|
-
});
|
|
185
|
-
this.dom = {
|
|
186
|
-
holder,
|
|
187
|
-
errdiv,
|
|
188
|
-
loadingDiv,
|
|
189
|
-
noteDiv,
|
|
190
|
-
rings,
|
|
191
|
-
sel: card(this.renderer.dom.right, "Selected wedges"),
|
|
192
|
-
selectFocus
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
async main() {
|
|
196
|
-
const config = this.state.config;
|
|
197
|
-
this.twLst = config.twLst || [];
|
|
198
|
-
this.dom.errdiv.style("display", "none");
|
|
199
|
-
this.dom.noteDiv.text("");
|
|
200
|
-
await this.renderRings();
|
|
201
|
-
if (!this.twLst.length) {
|
|
202
|
-
this.selected.clear();
|
|
203
|
-
this.renderer.setTree({ name: this.renderer.opts.rootName, children: [] });
|
|
204
|
-
this.dom.noteDiv.text("Add a ring in the Rings box to draw the sunburst.");
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
try {
|
|
208
|
-
this.dom.loadingDiv.style("display", "");
|
|
209
|
-
const res = await fetchSunburst({
|
|
210
|
-
genome: this.state.genome,
|
|
211
|
-
dslabel: this.state.dslabel,
|
|
212
|
-
twLst: this.twLst,
|
|
213
|
-
filter: getNormalRoot(this.state.termfilter?.filter),
|
|
214
|
-
filter0: this.state.termfilter?.filter0
|
|
215
|
-
});
|
|
216
|
-
this.dom.loadingDiv.style("display", "none");
|
|
217
|
-
this.render(res);
|
|
218
|
-
} catch (e) {
|
|
219
|
-
this.dom.loadingDiv.style("display", "none");
|
|
220
|
-
this.dom.errdiv.style("display", "").text(e?.message || String(e));
|
|
221
|
-
if (e instanceof Error) console.error(e);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
render(res) {
|
|
225
|
-
this.setUnit(res.unit || { one: "sample", many: "samples" });
|
|
226
|
-
if (res.noFirstRingValue) {
|
|
227
|
-
const n = res.noFirstRingValue;
|
|
228
|
-
this.dom.noteDiv.text(
|
|
229
|
-
`${n.toLocaleString()} ${n == 1 ? this.unit.one : this.unit.many} with no ${this.twLst[0].term.name} value ${n == 1 ? "is" : "are"} not shown.`
|
|
230
|
-
);
|
|
231
|
-
}
|
|
232
|
-
const focusId = this.renderer.focus?.data.id;
|
|
233
|
-
const selectedIds = [...this.selected.keys()];
|
|
234
|
-
this.renderer.setTree(buildTermTree(res, this.twLst, this.renderer.opts.rootName, this.state.sunburst.colors));
|
|
235
|
-
const byId = new Map(this.renderer.root.descendants().map((d) => [d.data.id, d]));
|
|
236
|
-
this.selected = new Map(selectedIds.filter((id) => byId.has(id)).map((id) => [id, byId.get(id)]));
|
|
237
|
-
this.renderer.refresh();
|
|
238
|
-
const focus = focusId && byId.get(focusId);
|
|
239
|
-
if (focus?.children) this.renderer.zoomTo(focus);
|
|
240
|
-
else this.renderSidebar();
|
|
241
|
-
}
|
|
242
|
-
/** wording of the counted unit: centre, stat box titles, tooltip and the create-group action */
|
|
243
|
-
setUnit(unit) {
|
|
244
|
-
this.unit = unit;
|
|
245
|
-
this.renderer.opts.unit = unit;
|
|
246
|
-
this.renderer.opts.rootName = `All ${unit.many}`;
|
|
247
|
-
this.renderer.setStatTitle(STAT_SAMPLES, capitalizeFirstLetter(unit.many));
|
|
248
|
-
this.renderer.setStatTitle(STAT_SELECTED, `Selected ${unit.many}`);
|
|
249
|
-
}
|
|
250
|
-
/** SELECT above the chart, for the wedge at the centre (which cannot be clicked) */
|
|
251
|
-
renderSelectFocus() {
|
|
252
|
-
const f = this.renderer.focus;
|
|
253
|
-
const el = this.dom.selectFocus;
|
|
254
|
-
if (!f?.depth) {
|
|
255
|
-
el.style("display", "none");
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
const anc = this.selectedAncestor(f);
|
|
259
|
-
const on = this.selected.has(f.data.id);
|
|
260
|
-
el.style("display", "").style("opacity", anc ? 0.35 : 1).style("cursor", anc ? "default" : "pointer").style("color", on ? SELECT_STROKE : TEXT_MUTED).attr("title", anc ? `Included in the selected ${anc.data.name}` : null).html(
|
|
261
|
-
on ? `${icon('<polyline points="5 12 10 17 19 7"/>')}SELECTED \xB7 ${escapeHtml(f.data.name.toUpperCase())}` : `${icon('<circle cx="12" cy="12" r="9"/><path d="M12 8v8M8 12h8"/>')}SELECT ${escapeHtml(
|
|
262
|
-
f.data.name.toUpperCase()
|
|
263
|
-
)}`
|
|
264
|
-
);
|
|
265
|
-
}
|
|
266
|
-
/************ selection ************/
|
|
267
|
-
/** the selected ancestor that already contains a wedge, if any */
|
|
268
|
-
selectedAncestor(d) {
|
|
269
|
-
for (let a = d.parent; a?.depth; a = a.parent) if (this.selected.has(a.data.id)) return a;
|
|
270
|
-
}
|
|
271
|
-
toggle(d) {
|
|
272
|
-
if (!d.depth) return;
|
|
273
|
-
const id = d.data.id;
|
|
274
|
-
this.createdNote = "";
|
|
275
|
-
if (this.selected.has(id)) this.selected.delete(id);
|
|
276
|
-
else {
|
|
277
|
-
if (this.selectedAncestor(d)) return;
|
|
278
|
-
for (const [k, n] of this.selected) if (n.ancestors().includes(d)) this.selected.delete(k);
|
|
279
|
-
this.selected.set(id, d);
|
|
280
|
-
}
|
|
281
|
-
this.refreshSelection();
|
|
282
|
-
}
|
|
283
|
-
refreshSelection() {
|
|
284
|
-
this.renderer.refresh();
|
|
285
|
-
this.renderStats();
|
|
286
|
-
this.renderSidebar();
|
|
287
|
-
this.renderSelectFocus();
|
|
288
|
-
}
|
|
289
|
-
/** wedge paths from the first ring, in selection order */
|
|
290
|
-
selectedPaths() {
|
|
291
|
-
return [...this.selected.values()].map(
|
|
292
|
-
(d) => d.ancestors().reverse().slice(1).map((a) => a.data)
|
|
293
|
-
);
|
|
294
|
-
}
|
|
295
|
-
selectedCount() {
|
|
296
|
-
let n = 0;
|
|
297
|
-
for (const d of this.selected.values()) n += d.value || 0;
|
|
298
|
-
return n;
|
|
299
|
-
}
|
|
300
|
-
renderStats() {
|
|
301
|
-
const r = this.renderer;
|
|
302
|
-
r.setStats(
|
|
303
|
-
/* @__PURE__ */ new Map([
|
|
304
|
-
[STAT_SAMPLES, r.focus.value || 0],
|
|
305
|
-
[STAT_SELECTED, this.selectedCount()]
|
|
306
|
-
])
|
|
307
|
-
);
|
|
308
|
-
}
|
|
309
|
-
/************ interaction ************/
|
|
310
|
-
onWedgeClick(d, event) {
|
|
311
|
-
if (event?.shiftKey || !d.children) this.toggle(d);
|
|
312
|
-
else this.renderer.zoomTo(d);
|
|
313
|
-
}
|
|
314
|
-
tooltip(d, box) {
|
|
315
|
-
const line = (text, color = "#6b7280") => box.append("div").style("color", color).text(text);
|
|
316
|
-
line(d.data.level);
|
|
317
|
-
const total = this.renderer.root.value || 0;
|
|
318
|
-
const pct = total ? ` (${(100 * (d.value || 0) / total).toFixed(1)}%)` : "";
|
|
319
|
-
const s = box.append("div").style("color", "#374151");
|
|
320
|
-
s.append("span").text(`${capitalizeFirstLetter(this.unit.many)}: `);
|
|
321
|
-
s.append("b").text((d.value || 0).toLocaleString());
|
|
322
|
-
s.append("span").text(pct);
|
|
323
|
-
const ended = d.data.value || 0;
|
|
324
|
-
if (d.children && ended) {
|
|
325
|
-
const next = this.twLst[d.data.ring + 1]?.term.name;
|
|
326
|
-
line(`${ended.toLocaleString()} with no ${next} value`);
|
|
327
|
-
}
|
|
328
|
-
const note = (text, color) => box.append("div").style("margin-top", "4px").style("color", color).text(text);
|
|
329
|
-
const anc = this.selectedAncestor(d);
|
|
330
|
-
if (anc) note(`Included in the selected ${anc.data.name}`, TEXT_MUTED);
|
|
331
|
-
else if (this.selected.has(d.data.id))
|
|
332
|
-
note(d.children ? "click to zoom in \xB7 shift-click to deselect" : "click to deselect", LINK);
|
|
333
|
-
else note(d.children ? "click to zoom in \xB7 shift-click to select" : "click to select", LINK);
|
|
334
|
-
}
|
|
335
|
-
/** the selected-wedges card: one line per wedge with its path and count, and the create-group
|
|
336
|
-
* action as the footer */
|
|
337
|
-
renderSidebar() {
|
|
338
|
-
const sel = this.dom.sel;
|
|
339
|
-
const { title, headRight, body } = sel;
|
|
340
|
-
headRight.selectAll("*").remove();
|
|
341
|
-
body.selectAll("*").remove();
|
|
342
|
-
headRight.style("margin-bottom", "8px");
|
|
343
|
-
const n = this.selected.size;
|
|
344
|
-
title.text(n ? "Selected wedges" : "No wedges selected");
|
|
345
|
-
if (n) {
|
|
346
|
-
pill(headRight).text(n);
|
|
347
|
-
headRight.append("span").style("font-size", "11px").style("color", LINK).style("cursor", "pointer").text("Clear").on("click", () => {
|
|
348
|
-
this.selected.clear();
|
|
349
|
-
this.refreshSelection();
|
|
350
|
-
});
|
|
351
|
-
}
|
|
352
|
-
const list = body.append("div").style("max-height", `${SIZE - 200}px`).style("overflow-y", "auto");
|
|
353
|
-
if (!n) {
|
|
354
|
-
list.append("div").style("font-size", "0.85em").style("color", TEXT_MUTED).style("padding", "4px 0").text("Shift-click a wedge, click an outermost one, or zoom into one and click SELECT above the chart.");
|
|
355
|
-
}
|
|
356
|
-
for (const [id, d] of this.selected) {
|
|
357
|
-
const path = d.ancestors().reverse().slice(1).map((a) => a.data.name);
|
|
358
|
-
const row = list.append("div").style("display", "flex").style("align-items", "center").style("gap", "8px").style("padding", "3px 6px").style("margin", "2px 0").style("border-radius", "6px").on("mouseenter", (event) => {
|
|
359
|
-
select_default(event.currentTarget).style("background", "#f3f4f6").select(".sjpp-sunburst-remove").style("opacity", 1);
|
|
360
|
-
}).on("mouseleave", (event) => {
|
|
361
|
-
select_default(event.currentTarget).style("background", "transparent").select(".sjpp-sunburst-remove").style("opacity", 0);
|
|
362
|
-
});
|
|
363
|
-
badge(row, d.data.name, this.renderer.color(d), 24);
|
|
364
|
-
const text = row.append("div").style("flex", "1 1 auto").style("min-width", "0").style("line-height", "1.2");
|
|
365
|
-
text.append("div").style("font-size", "0.9em").style("color", TEXT_DARK).style("overflow", "hidden").style("text-overflow", "ellipsis").style("white-space", "nowrap").attr("title", path.join(" \u203A ")).text(path.join(" \u203A "));
|
|
366
|
-
text.append("div").style("font-size", "0.7em").style("color", "#6b7280").text(this.renderer.unitText(d.value || 0));
|
|
367
|
-
row.append("span").attr("class", "sjpp-sunburst-remove").style("opacity", 0).style("cursor", "pointer").style("color", "#9ca3af").style("font-size", "0.85em").attr("title", "Remove").text("\u2715").on("click", () => {
|
|
368
|
-
this.selected.delete(id);
|
|
369
|
-
this.refreshSelection();
|
|
370
|
-
});
|
|
371
|
-
}
|
|
372
|
-
const footer = body.append("div").style("margin-top", "10px").style("padding-top", "10px").style("border-top", `1px solid ${RULE}`);
|
|
373
|
-
const count = this.selectedCount();
|
|
374
|
-
pill(footer, { button: true }).attr("data-testid", "sjpp-sunburst-create-group").property("disabled", n === 0).style("opacity", n ? 1 : 0.3).style("cursor", n ? "pointer" : "default").text(n ? `Create group of ${this.renderer.unitText(count)}` : "Create group").on("click", () => this.createGroup());
|
|
375
|
-
if (this.createdNote) {
|
|
376
|
-
footer.append("div").style("font-size", "0.8em").style("color", TEXT_MUTED).style("margin-top", "6px").text(this.createdNote);
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
/** one group of the union of the selected wedges, added to the GROUPS tab; the group also has the
|
|
380
|
-
* plot's own filter, which the counts are of. The global filter is joined where the group is used */
|
|
381
|
-
createGroup() {
|
|
382
|
-
const paths = this.selectedPaths();
|
|
383
|
-
if (!paths.length) return;
|
|
384
|
-
try {
|
|
385
|
-
const name = selectionName(paths);
|
|
386
|
-
const groups = this.app.getState().groups || [];
|
|
387
|
-
const filter = getGroupFilterOfConditions([this.state.config.filter, selectionFilter(paths, this.twLst)]);
|
|
388
|
-
addNewGroup(this.app, filter, groups, name);
|
|
389
|
-
this.selected.clear();
|
|
390
|
-
this.createdNote = `Group "${name}" added; find it in the GROUPS tab.`;
|
|
391
|
-
this.refreshSelection();
|
|
392
|
-
} catch (e) {
|
|
393
|
-
this.dom.errdiv.style("display", "").text(e?.message || String(e));
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
/************ rings box ************/
|
|
397
|
-
/** one line per ring: its number and a term pill, whose menu switches, edits or removes the
|
|
398
|
-
* term; then + Add ring. Rebuilt only when the rings change; otherwise the pills get the current
|
|
399
|
-
* filter, which their term pickers use */
|
|
400
|
-
async renderRings() {
|
|
401
|
-
const twLst = this.twLst;
|
|
402
|
-
const filter = this.state.termfilter?.filter;
|
|
403
|
-
const sig = JSON.stringify(twLst.map((tw) => [tw.$id, tw.q]));
|
|
404
|
-
if (sig == this.ringsShown) {
|
|
405
|
-
await Promise.all(this.ringPills.map(({ pill: pill2, arg }) => pill2.main({ ...arg, filter })));
|
|
406
|
-
return;
|
|
407
|
-
}
|
|
408
|
-
this.ringsShown = sig;
|
|
409
|
-
this.ringPills = [];
|
|
410
|
-
const holder = this.dom.rings.body;
|
|
411
|
-
holder.selectAll("*").remove();
|
|
412
|
-
const disable_terms = twLst.map((tw) => tw.term);
|
|
413
|
-
const sampleTypes = this.app.vocabApi.termdbConfig?.sampleTypes;
|
|
414
|
-
const edit = (lst) => this.app.dispatch({ type: "plot_edit", id: this.id, config: { twLst: lst } });
|
|
415
|
-
const line = (level) => {
|
|
416
|
-
const row = holder.append("div").style("position", "relative").style("margin", "2px 0").style("margin-left", `${level * RING_STEP}px`);
|
|
417
|
-
if (level) {
|
|
418
|
-
row.append("div").style("position", "absolute").style("left", `${-RING_STEP + 4}px`).style("top", "-6px").style("width", `${RING_STEP - 6}px`).style("height", "18px").style("border-left", `1px solid ${RING_LINE}`).style("border-bottom", `1px solid ${RING_LINE}`).style("border-bottom-left-radius", "4px");
|
|
419
|
-
}
|
|
420
|
-
return row;
|
|
421
|
-
};
|
|
422
|
-
for (const [i, tw] of twLst.entries()) {
|
|
423
|
-
const row = line(i).attr("class", "sjpp-sunburst-ring").style("display", "flex").style("align-items", "center").style("gap", "4px");
|
|
424
|
-
row.append("span").attr("class", "sjpp-sunburst-ringnum").style("font-size", ".8em").style("width", "14px").style("flex", "0 0 auto").style("padding-left", "4px").style("border-left", "3px solid transparent").style("border-radius", "2px").text(i + 1);
|
|
425
|
-
const pillDiv = row.append("div").attr("class", "sjpp-sunburst-ringpill").style("min-width", "0").style("overflow", "hidden").style("white-space", "nowrap").style("font-size", ".9em").style("text-overflow", "ellipsis").attr("title", tw.term.name);
|
|
426
|
-
const others = twLst.filter((_, j) => j != i);
|
|
427
|
-
const p = await this.ringPill(
|
|
428
|
-
pillDiv,
|
|
429
|
-
(newTw) => {
|
|
430
|
-
const lst = twLst.slice();
|
|
431
|
-
if (newTw?.term) lst[i] = newTw;
|
|
432
|
-
else lst.splice(i, 1);
|
|
433
|
-
edit(lst);
|
|
434
|
-
},
|
|
435
|
-
allowedSampleTypes(others, sampleTypes)
|
|
436
|
-
);
|
|
437
|
-
this.ringPills.push({ pill: p, arg: { term: tw.term, q: tw.q, $id: tw.$id, disable_terms } });
|
|
438
|
-
}
|
|
439
|
-
const addDiv = line(twLst.length).style("margin-top", "6px").append("div").style("margin-left", "21px");
|
|
440
|
-
const add = await this.ringPill(
|
|
441
|
-
addDiv,
|
|
442
|
-
(newTw) => {
|
|
443
|
-
if (newTw?.term) edit([...twLst, newTw]);
|
|
444
|
-
},
|
|
445
|
-
allowedSampleTypes(twLst, sampleTypes),
|
|
446
|
-
"+ Add ring"
|
|
447
|
-
);
|
|
448
|
-
this.ringPills.push({ pill: add, arg: { term: null, q: null, disable_terms } });
|
|
449
|
-
await Promise.all(this.ringPills.map(({ pill: pill2, arg }) => pill2.main({ ...arg, filter })));
|
|
450
|
-
this.markShownRings();
|
|
451
|
-
}
|
|
452
|
-
/** mark the two rings around the current centre: a bar beside the ring number, which is bold */
|
|
453
|
-
markShownRings() {
|
|
454
|
-
const first = this.renderer.focus?.depth || 0;
|
|
455
|
-
const shown = (i) => i == first || i == first + 1;
|
|
456
|
-
this.dom.rings.body.selectAll(".sjpp-sunburst-ring").attr("title", (_, i) => shown(i) ? "Shown in the chart" : null).select(".sjpp-sunburst-ringnum").style("border-left-color", (_, i) => shown(i) ? LINK : "transparent").style("color", (_, i) => shown(i) ? TEXT_DARK : TEXT_MUTED).style("font-weight", (_, i) => shown(i) ? "bold" : "normal");
|
|
457
|
-
}
|
|
458
|
-
/** a ring term pill; `sampleTypes` limits the terms it offers (see allowedSampleTypes) */
|
|
459
|
-
async ringPill(holder, callback, sampleTypes, placeholder) {
|
|
460
|
-
return await termsettingInit({
|
|
461
|
-
holder,
|
|
462
|
-
vocabApi: this.app.vocabApi,
|
|
463
|
-
usecase: { target: "sunburst", ...sampleTypes ? { sampleTypes } : {} },
|
|
464
|
-
// the full term name; a name too long for the box is clipped, with the name as its tooltip
|
|
465
|
-
abbrCutoff: 1e3,
|
|
466
|
-
menuOptions: "*",
|
|
467
|
-
numericEditMenuVersion: ["discrete"],
|
|
468
|
-
defaultQ4fillTW: { numeric: { mode: "discrete" } },
|
|
469
|
-
...placeholder ? { placeholder } : {},
|
|
470
|
-
debug: this.app.opts.debug,
|
|
471
|
-
callback
|
|
472
|
-
});
|
|
473
|
-
}
|
|
474
|
-
destroy() {
|
|
475
|
-
this.renderer?.destroy();
|
|
476
|
-
}
|
|
477
|
-
};
|
|
478
|
-
var RING_LINE = "#cbd5e1";
|
|
479
|
-
async function fetchSunburst(body) {
|
|
480
|
-
const res = await dofetch3("termdb/sunburst", { body });
|
|
481
|
-
if (res?.error) throw res.error;
|
|
482
|
-
if (!res?.nodes) throw "invalid response from termdb/sunburst";
|
|
483
|
-
return res;
|
|
484
|
-
}
|
|
485
|
-
async function getPlotConfig(opts, app) {
|
|
486
|
-
const config = {
|
|
487
|
-
chartType: "sunburst",
|
|
488
|
-
settings: {}
|
|
489
|
-
};
|
|
490
|
-
copyMerge(config, opts);
|
|
491
|
-
if (!config.twLst) config.twLst = structuredClone(app.vocabApi.termdbConfig?.sunburst?.twLst || []);
|
|
492
|
-
config.twLst = await Promise.all(
|
|
493
|
-
config.twLst.map((tw) => fillTermWrapper(tw, app.vocabApi, { numeric: { mode: "discrete" } }))
|
|
494
|
-
);
|
|
495
|
-
return config;
|
|
496
|
-
}
|
|
497
|
-
var sunburstInit = getCompInit(Sunburst);
|
|
498
|
-
var componentInit = sunburstInit;
|
|
499
|
-
export {
|
|
500
|
-
componentInit,
|
|
501
|
-
getPlotConfig,
|
|
502
|
-
sunburstInit
|
|
503
|
-
};
|
|
504
|
-
//# sourceMappingURL=sunburst-DSFFFP33.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../plots/sunburst/sunburst.data.ts", "../plots/sunburst/sunburst.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Filter, SunburstResponse, SunburstNode, SunburstCategory } from '#types'\nimport type { SunNode } from './SunburstRenderer'\n\n/*\nData helpers of the term-based sunburst, without any DOM code: the termdb/sunburst response as a renderer \ntree, and selected wedges as a group filter. Kept apart from sunburst.ts so they can be unit-tested directly.\n*/\n\n/** a wedge of the term sunburst. `id` names it by its path of [ring $id, key] pairs, as JSON so that no\n * category key can make two paths alike, and a selection can survive a re-fetch; `ring`, `key` and\n * `category` say which ring category it is */\nexport type TermSunNode = SunNode & {\n\tid: string\n\tring: number\n\tkey: string\n\tcategory: SunburstCategory\n\t/** samples under the wedge (SunNode.value is only those that end here) */\n\tcount: number\n\tchildren?: TermSunNode[]\n}\n\ntype TermSunRoot = SunNode & { children: TermSunNode[]; count: number }\n\n/** the response as a renderer tree; first-ring colours from the dataset (keyed by category key) win\n * over the term's own */\nexport function buildTermTree(\n\tres: SunburstResponse,\n\ttwLst: any[],\n\trootName: string,\n\tcolors?: { [key: string]: string }\n): TermSunRoot {\n\tconst convert = (n: SunburstNode, ring: number, parentPath: string[][]): TermSunNode => {\n\t\tconst tw = twLst[ring]\n\t\tconst category = res.rings[ring].categories[n.key] || { label: n.key }\n\t\tconst path = [...parentPath, [tw.$id, n.key]]\n\t\tconst children = (n.children || []).map(c => convert(c, ring + 1, path))\n\t\tconst node: TermSunNode = {\n\t\t\tname: category.label,\n\t\t\tlevel: tw.term.name,\n\t\t\t// d3 adds the children to a node's own value, so it holds only the samples that end here\n\t\t\tvalue: n.count - children.reduce((s, c) => s + c.count, 0),\n\t\t\tcount: n.count,\n\t\t\tid: JSON.stringify(path),\n\t\t\tring,\n\t\t\tkey: n.key,\n\t\t\tcategory\n\t\t}\n\t\tconst color = (ring == 0 && colors?.[n.key]) || category.color\n\t\tif (color) node.color = color\n\t\tif (children.length) node.children = children\n\t\treturn node\n\t}\n\treturn { name: rootName, value: 0, count: res.total, children: res.nodes.map(n => convert(n, 0, [])) }\n}\n\n/** one ring category as a filter entry: the tvs of the ring's term, or a filter group's own filter */\nexport function categoryFilterItem(tw: any, category: SunburstCategory): any {\n\tif (category.filter) return structuredClone(category.filter)\n\tif (!category.tvs) throw `no filter for category '${category.label}' of ${tw.term.name}`\n\treturn { type: 'tvs', tvs: { term: tw.term, ...structuredClone(category.tvs) } }\n}\n\n/** the samples of one wedge: its categories along the path from the first ring, joined by \"and\" */\nexport function wedgeFilter(path: TermSunNode[], twLst: any[]): Filter {\n\tconst lst = path.map(n => categoryFilterItem(twLst[n.ring], n.category))\n\treturn { type: 'tvslst', in: true, join: lst.length > 1 ? 'and' : '', lst }\n}\n\n/** the samples of any of the selected wedges, each given as its path from the first ring. One wedge\n * is just its own filter; several are joined by \"or\" */\nexport function selectionFilter(paths: TermSunNode[][], twLst: any[]): Filter {\n\tif (!paths.length) throw 'no wedge selected'\n\tif (paths.length == 1) return wedgeFilter(paths[0], twLst)\n\treturn { type: 'tvslst', in: true, join: 'or', lst: paths.map(p => wedgeFilter(p, twLst)) }\n}\n\n/** a readable name for a selection: the path of one wedge (e.g. \"BCP-ALL \u203A Hyperdiploid\"), or the\n * wedge names joined when several are selected */\nexport function selectionName(paths: TermSunNode[][], maxLen = 60): string {\n\tconst names =\n\t\tpaths.length == 1 ? paths[0].map(n => n.name).join(' \u203A ') : paths.map(p => p[p.length - 1].name).join(' or ')\n\treturn names.length > maxLen ? names.slice(0, maxLen - 1) + '\u2026' : names\n}\n\n/** the sample types a new or replacing ring may have, given the other rings: the line of descent through\n * the deepest of their sample types (its ancestors, itself and its descendants), since no value maps\n * between sibling types such as primary and PDX samples. Undefined (any type) when the dataset has one\n * sample type or no other ring is below the top level. `sampleTypes` is termdbConfig.sampleTypes */\nexport function allowedSampleTypes(otherTwLst: any[], sampleTypes?: { [id: string]: any }): string[] | undefined {\n\tif (!sampleTypes || Object.keys(sampleTypes).length < 2) return\n\tconst parent = (t: string) => {\n\t\tconst p = sampleTypes[t]?.parent_id\n\t\treturn p === null || p === undefined ? undefined : String(p)\n\t}\n\tconst ancestors = (t: string) => {\n\t\tconst lst: string[] = []\n\t\tfor (let p = parent(t); p !== undefined && !lst.includes(p); p = parent(p)) lst.push(p)\n\t\treturn lst\n\t}\n\tconst types = otherTwLst\n\t\t.map(tw => tw.term?.sample_type)\n\t\t.filter(t => t !== null && t !== undefined && sampleTypes[t])\n\t\t.map(String)\n\tconst below = types.filter(t => parent(t) !== undefined)\n\tif (!below.length) return\n\tconst deepest = below.reduce((a, b) => (ancestors(b).length > ancestors(a).length ? b : a))\n\tconst descendants = Object.keys(sampleTypes).filter(t => ancestors(t).includes(deepest))\n\treturn [...ancestors(deepest), deepest, ...descendants]\n}\n", "import { getCompInit, copyMerge, type RxComponent, type ComponentApi } from '#rx'\nimport { PlotBase } from '#plots/PlotBase.ts'\nimport { dofetch3 } from '#common/dofetch'\nimport { select } from 'd3-selection'\nimport { escapeHtml, capitalizeFirstLetter } from '#dom'\nimport { getCombinedTermFilter, getNormalRoot } from '#filter'\nimport { fillTermWrapper, termsettingInit } from '#termsetting'\nimport { addNewGroup, getGroupFilterOfConditions } from '#mass/groups'\nimport type { SunburstRequest, SunburstResponse } from '#types'\nimport {\n\tSunburstRenderer,\n\tcard,\n\tbadge,\n\tpill,\n\tSIZE,\n\tTEXT_DARK,\n\tTEXT_MUTED,\n\tLINK,\n\tRULE,\n\tSELECT_STROKE,\n\ticon,\n\ttype Card,\n\ttype HNode\n} from './SunburstRenderer'\nimport { buildTermTree, selectionFilter, selectionName, allowedSampleTypes, type TermSunNode } from './sunburst.data'\n\n/*\nSunburst of nested sample counts, one dictionary term per ring (categorical, or numeric binned),\ninside out. The dataset sets the default rings (termdb.sunburst.twLst); the Rings box left of the\nchart switches, edits, adds and removes them (from each term pill's menu). Counts follow the\nglobal and plot filters.\n\nClick a wedge to zoom into it; a wedge without rings beneath it, a shift-click, or SELECT above the\nchart (for the wedge at the centre) selects it. The selected wedges become one sample group (the union of\ntheir filters) in the GROUPS tab, for use by other charts. Selecting a wedge drops its selected\ndescendants, which it already contains.\n\nA sample with no value for a ring ends at the previous ring, leaving a gap in the outer ring of its\nwedge; samples with no value for the first ring are not in the chart.\n\nIn a dataset with a sample hierarchy, the rings are patient terms and the terms of one sample type (no\nvalue maps between sibling types such as primary and PDX samples): once a ring is of a sample type, the\npickers offer only terms of its line of descent. The server returns the counted unit (e.g. patients,\nprimary samples), which the chart's wording follows.\n*/\n\n// stat box keys; their titles follow the unit\nconst STAT_SAMPLES = 'Samples'\nconst STAT_SELECTED = 'Selected samples'\n/** indent per ring in the Rings box, so the rings read as a path from the first to the last */\nconst RING_STEP = 6\n\nclass Sunburst extends PlotBase implements RxComponent {\n\tstatic type = 'sunburst'\n\ttype: string\n\tdom!: {\n\t\tholder: any\n\t\terrdiv: any\n\t\tloadingDiv: any\n\t\tnoteDiv: any\n\t\t/** one term pill per ring, and + Add ring */\n\t\trings: Card\n\t\t/** the selected wedges, with the create-group action */\n\t\tsel: Card\n\t\t/** selects the wedge at the centre, in the toolbar above the chart */\n\t\tselectFocus: any\n\t}\n\trenderer!: SunburstRenderer\n\ttwLst: any[] = []\n\t/** selected wedges by node id, in selection order */\n\tselected: Map<string, HNode> = new Map()\n\t/** note shown in the selection card after a group is created */\n\tcreatedNote = ''\n\t/** the rings the Rings box shows, to rebuild its pills only when they change */\n\tringsShown = ''\n\t/** the Rings box pills and their main() argument without the filter, which follows the state */\n\tringPills: { pill: any; arg: any }[] = []\n\t/** the counted unit, from the server */\n\tunit = { one: 'sample', many: 'samples' }\n\n\tconstructor(opts: any, api: ComponentApi) {\n\t\tsuper(opts, api)\n\t\tthis.type = Sunburst.type\n\t\tif (this.opts.header)\n\t\t\tthis.opts.header.style('padding-left', '7px').style('color', 'rgb(85, 85, 85)').html('Sunburst')\n\t}\n\n\tgetState(appState: any) {\n\t\tconst config = appState.plots.find((p: any) => p.id === this.id)\n\t\tif (!config) throw `No plot with id='${this.id}' found`\n\t\treturn {\n\t\t\tconfig,\n\t\t\t// global mass filter combined with this plot's local filter\n\t\t\ttermfilter: getCombinedTermFilter(appState, config.filter),\n\t\t\tgenome: appState.vocab.genome,\n\t\t\tdslabel: appState.vocab.dslabel,\n\t\t\tsunburst: appState.termdbConfig?.sunburst || {}\n\t\t}\n\t}\n\n\tasync init() {\n\t\t// the plot holder inherits nowrap from the sandbox; the cards need their text to wrap\n\t\tconst holder = this.opts.holder\n\t\t\t.append('div')\n\t\t\t.attr('data-testid', 'sjpp-sunburst-holder')\n\t\t\t.style('white-space', 'normal')\n\t\t\t.style('padding', '10px')\n\t\tconst errdiv = holder.append('div').attr('class', 'sja_errorbar').style('display', 'none')\n\t\tconst loadingDiv = holder.append('div').style('display', 'none').style('padding', '24px').text('Loading ...')\n\t\tconst noteDiv = holder\n\t\t\t.append('div')\n\t\t\t.style('font-size', '.85em')\n\t\t\t.style('color', TEXT_MUTED)\n\t\t\t.style('margin-bottom', '6px')\n\t\tconst chartHolder = holder.append('div').attr('data-testid', 'sjpp-sunburst-chart')\n\t\tthis.renderer = new SunburstRenderer({\n\t\t\tholder: chartHolder,\n\t\t\tunit: this.unit,\n\t\t\trootName: 'All samples',\n\t\t\tstatLabels: [STAT_SAMPLES, STAT_SELECTED],\n\t\t\tpathCard: false,\n\t\t\thooks: {\n\t\t\t\tonClick: (d: HNode, event: any) => this.onWedgeClick(d, event),\n\t\t\t\tisSelected: (d: HNode) => this.selected.has(d.data.id),\n\t\t\t\tcursor: (d: HNode) => (d.children ? 'zoom-in' : 'pointer'),\n\t\t\t\ttooltip: (d: HNode, box: any) => this.tooltip(d, box),\n\t\t\t\tonFocus: () => {\n\t\t\t\t\tthis.renderStats()\n\t\t\t\t\tthis.renderSidebar()\n\t\t\t\t\tthis.renderSelectFocus()\n\t\t\t\t\tthis.markShownRings()\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\tconst rings = card(this.renderer.dom.left, 'Rings')\n\t\trings.body.attr('data-testid', 'sjpp-sunburst-rings')\n\t\t// a ring pill is only the term: termsetting's info button (its holder's 4th child) is hidden\n\t\trings.box.append('style').text('.sjpp-sunburst-ringpill > div:nth-child(4) { display: none !important; }')\n\t\tconst selectFocus = this.renderer\n\t\t\t.addControl()\n\t\t\t.attr('data-testid', 'sjpp-sunburst-select-focus')\n\t\t\t.on('click', () => {\n\t\t\t\tconst f = this.renderer.focus\n\t\t\t\tif (f?.depth && !this.selectedAncestor(f)) this.toggle(f)\n\t\t\t})\n\t\tthis.dom = {\n\t\t\tholder,\n\t\t\terrdiv,\n\t\t\tloadingDiv,\n\t\t\tnoteDiv,\n\t\t\trings,\n\t\t\tsel: card(this.renderer.dom.right, 'Selected wedges'),\n\t\t\tselectFocus\n\t\t}\n\t}\n\n\tasync main() {\n\t\tconst config = this.state.config\n\t\tthis.twLst = config.twLst || []\n\t\tthis.dom.errdiv.style('display', 'none')\n\t\tthis.dom.noteDiv.text('')\n\t\tawait this.renderRings()\n\t\tif (!this.twLst.length) {\n\t\t\tthis.selected.clear()\n\t\t\tthis.renderer.setTree({ name: this.renderer.opts.rootName, children: [] })\n\t\t\tthis.dom.noteDiv.text('Add a ring in the Rings box to draw the sunburst.')\n\t\t\treturn\n\t\t}\n\t\ttry {\n\t\t\tthis.dom.loadingDiv.style('display', '')\n\t\t\tconst res = await fetchSunburst({\n\t\t\t\tgenome: this.state.genome,\n\t\t\t\tdslabel: this.state.dslabel,\n\t\t\t\ttwLst: this.twLst,\n\t\t\t\tfilter: getNormalRoot(this.state.termfilter?.filter),\n\t\t\t\tfilter0: this.state.termfilter?.filter0\n\t\t\t})\n\t\t\tthis.dom.loadingDiv.style('display', 'none')\n\t\t\tthis.render(res)\n\t\t} catch (e: any) {\n\t\t\tthis.dom.loadingDiv.style('display', 'none')\n\t\t\tthis.dom.errdiv.style('display', '').text(e?.message || String(e))\n\t\t\tif (e instanceof Error) console.error(e)\n\t\t}\n\t}\n\n\trender(res: SunburstResponse) {\n\t\tthis.setUnit(res.unit || { one: 'sample', many: 'samples' })\n\t\tif (res.noFirstRingValue) {\n\t\t\tconst n = res.noFirstRingValue\n\t\t\tthis.dom.noteDiv.text(\n\t\t\t\t`${n.toLocaleString()} ${n == 1 ? this.unit.one : this.unit.many} with no ${this.twLst[0].term.name} value ${\n\t\t\t\t\tn == 1 ? 'is' : 'are'\n\t\t\t\t} not shown.`\n\t\t\t)\n\t\t}\n\t\tconst focusId = this.renderer.focus?.data.id\n\t\tconst selectedIds = [...this.selected.keys()]\n\t\tthis.renderer.setTree(buildTermTree(res, this.twLst, this.renderer.opts.rootName, this.state.sunburst.colors))\n\t\t// keep the selection and the centre of a re-fetch (e.g. after a filter change) where their\n\t\t// wedges still exist\n\t\tconst byId = new Map(this.renderer.root.descendants().map((d: HNode) => [d.data.id, d]))\n\t\tthis.selected = new Map(selectedIds.filter(id => byId.has(id)).map(id => [id, byId.get(id)]))\n\t\tthis.renderer.refresh()\n\t\tconst focus = focusId && byId.get(focusId)\n\t\tif (focus?.children) this.renderer.zoomTo(focus)\n\t\telse this.renderSidebar()\n\t}\n\n\t/** wording of the counted unit: centre, stat box titles, tooltip and the create-group action */\n\tsetUnit(unit: { one: string; many: string }) {\n\t\tthis.unit = unit\n\t\tthis.renderer.opts.unit = unit\n\t\tthis.renderer.opts.rootName = `All ${unit.many}`\n\t\tthis.renderer.setStatTitle(STAT_SAMPLES, capitalizeFirstLetter(unit.many))\n\t\tthis.renderer.setStatTitle(STAT_SELECTED, `Selected ${unit.many}`)\n\t}\n\n\t/** SELECT above the chart, for the wedge at the centre (which cannot be clicked) */\n\trenderSelectFocus() {\n\t\tconst f = this.renderer.focus\n\t\tconst el = this.dom.selectFocus\n\t\tif (!f?.depth) {\n\t\t\tel.style('display', 'none')\n\t\t\treturn\n\t\t}\n\t\tconst anc = this.selectedAncestor(f)\n\t\tconst on = this.selected.has(f.data.id)\n\t\tel.style('display', '')\n\t\t\t.style('opacity', anc ? 0.35 : 1)\n\t\t\t.style('cursor', anc ? 'default' : 'pointer')\n\t\t\t.style('color', on ? SELECT_STROKE : TEXT_MUTED)\n\t\t\t.attr('title', anc ? `Included in the selected ${anc.data.name}` : null)\n\t\t\t.html(\n\t\t\t\ton\n\t\t\t\t\t? `${icon('<polyline points=\"5 12 10 17 19 7\"/>')}SELECTED \u00B7 ${escapeHtml(f.data.name.toUpperCase())}`\n\t\t\t\t\t: `${icon('<circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M12 8v8M8 12h8\"/>')}SELECT ${escapeHtml(\n\t\t\t\t\t\t\tf.data.name.toUpperCase()\n\t\t\t\t\t )}`\n\t\t\t)\n\t}\n\n\t/************ selection ************/\n\n\t/** the selected ancestor that already contains a wedge, if any */\n\tselectedAncestor(d: HNode): HNode | undefined {\n\t\tfor (let a = d.parent; a?.depth; a = a.parent) if (this.selected.has(a.data.id)) return a\n\t}\n\n\ttoggle(d: HNode) {\n\t\tif (!d.depth) return\n\t\tconst id = d.data.id\n\t\tthis.createdNote = ''\n\t\tif (this.selected.has(id)) this.selected.delete(id)\n\t\telse {\n\t\t\tif (this.selectedAncestor(d)) return // already in the selection; the tooltip says so\n\t\t\t// a selected wedge contains its descendants, so drop any that were selected\n\t\t\tfor (const [k, n] of this.selected) if (n.ancestors().includes(d)) this.selected.delete(k)\n\t\t\tthis.selected.set(id, d)\n\t\t}\n\t\tthis.refreshSelection()\n\t}\n\n\trefreshSelection() {\n\t\tthis.renderer.refresh()\n\t\tthis.renderStats()\n\t\tthis.renderSidebar()\n\t\tthis.renderSelectFocus()\n\t}\n\n\t/** wedge paths from the first ring, in selection order */\n\tselectedPaths(): TermSunNode[][] {\n\t\treturn [...this.selected.values()].map(\n\t\t\t(d: HNode) =>\n\t\t\t\td\n\t\t\t\t\t.ancestors()\n\t\t\t\t\t.reverse()\n\t\t\t\t\t.slice(1)\n\t\t\t\t\t.map((a: HNode) => a.data) as TermSunNode[]\n\t\t)\n\t}\n\n\tselectedCount(): number {\n\t\tlet n = 0\n\t\tfor (const d of this.selected.values()) n += d.value || 0\n\t\treturn n\n\t}\n\n\trenderStats() {\n\t\tconst r = this.renderer\n\t\tr.setStats(\n\t\t\tnew Map([\n\t\t\t\t[STAT_SAMPLES, r.focus.value || 0],\n\t\t\t\t[STAT_SELECTED, this.selectedCount()]\n\t\t\t])\n\t\t)\n\t}\n\n\t/************ interaction ************/\n\n\tonWedgeClick(d: HNode, event: any) {\n\t\tif (event?.shiftKey || !d.children) this.toggle(d)\n\t\telse this.renderer.zoomTo(d)\n\t}\n\n\ttooltip(d: HNode, box: any) {\n\t\tconst line = (text: string, color = '#6b7280') => box.append('div').style('color', color).text(text)\n\t\tline(d.data.level)\n\t\tconst total = this.renderer.root.value || 0\n\t\tconst pct = total ? ` (${((100 * (d.value || 0)) / total).toFixed(1)}%)` : ''\n\t\tconst s = box.append('div').style('color', '#374151')\n\t\ts.append('span').text(`${capitalizeFirstLetter(this.unit.many)}: `)\n\t\ts.append('b').text((d.value || 0).toLocaleString())\n\t\ts.append('span').text(pct)\n\t\tconst ended = d.data.value || 0\n\t\tif (d.children && ended) {\n\t\t\tconst next = this.twLst[d.data.ring + 1]?.term.name\n\t\t\tline(`${ended.toLocaleString()} with no ${next} value`)\n\t\t}\n\t\tconst note = (text: string, color: string) =>\n\t\t\tbox.append('div').style('margin-top', '4px').style('color', color).text(text)\n\t\tconst anc = this.selectedAncestor(d)\n\t\tif (anc) note(`Included in the selected ${anc.data.name}`, TEXT_MUTED)\n\t\telse if (this.selected.has(d.data.id))\n\t\t\tnote(d.children ? 'click to zoom in \u00B7 shift-click to deselect' : 'click to deselect', LINK)\n\t\telse note(d.children ? 'click to zoom in \u00B7 shift-click to select' : 'click to select', LINK)\n\t}\n\n\t/** the selected-wedges card: one line per wedge with its path and count, and the create-group\n\t * action as the footer */\n\trenderSidebar() {\n\t\tconst sel = this.dom.sel\n\t\tconst { title, headRight, body } = sel\n\t\theadRight.selectAll('*').remove()\n\t\tbody.selectAll('*').remove()\n\t\theadRight.style('margin-bottom', '8px')\n\t\tconst n = this.selected.size\n\t\ttitle.text(n ? 'Selected wedges' : 'No wedges selected')\n\t\tif (n) {\n\t\t\tpill(headRight).text(n)\n\t\t\theadRight\n\t\t\t\t.append('span')\n\t\t\t\t.style('font-size', '11px')\n\t\t\t\t.style('color', LINK)\n\t\t\t\t.style('cursor', 'pointer')\n\t\t\t\t.text('Clear')\n\t\t\t\t.on('click', () => {\n\t\t\t\t\tthis.selected.clear()\n\t\t\t\t\tthis.refreshSelection()\n\t\t\t\t})\n\t\t}\n\t\tconst list = body\n\t\t\t.append('div')\n\t\t\t.style('max-height', `${SIZE - 200}px`)\n\t\t\t.style('overflow-y', 'auto')\n\t\tif (!n) {\n\t\t\tlist\n\t\t\t\t.append('div')\n\t\t\t\t.style('font-size', '0.85em')\n\t\t\t\t.style('color', TEXT_MUTED)\n\t\t\t\t.style('padding', '4px 0')\n\t\t\t\t.text('Shift-click a wedge, click an outermost one, or zoom into one and click SELECT above the chart.')\n\t\t}\n\t\tfor (const [id, d] of this.selected) {\n\t\t\tconst path = d\n\t\t\t\t.ancestors()\n\t\t\t\t.reverse()\n\t\t\t\t.slice(1)\n\t\t\t\t.map((a: HNode) => a.data.name)\n\t\t\tconst row = list\n\t\t\t\t.append('div')\n\t\t\t\t.style('display', 'flex')\n\t\t\t\t.style('align-items', 'center')\n\t\t\t\t.style('gap', '8px')\n\t\t\t\t.style('padding', '3px 6px')\n\t\t\t\t.style('margin', '2px 0')\n\t\t\t\t.style('border-radius', '6px')\n\t\t\t\t.on('mouseenter', (event: any) => {\n\t\t\t\t\tselect(event.currentTarget).style('background', '#f3f4f6').select('.sjpp-sunburst-remove').style('opacity', 1)\n\t\t\t\t})\n\t\t\t\t.on('mouseleave', (event: any) => {\n\t\t\t\t\tselect(event.currentTarget)\n\t\t\t\t\t\t.style('background', 'transparent')\n\t\t\t\t\t\t.select('.sjpp-sunburst-remove')\n\t\t\t\t\t\t.style('opacity', 0)\n\t\t\t\t})\n\t\t\tbadge(row, d.data.name, this.renderer.color(d), 24)\n\t\t\tconst text = row.append('div').style('flex', '1 1 auto').style('min-width', '0').style('line-height', '1.2')\n\t\t\ttext\n\t\t\t\t.append('div')\n\t\t\t\t.style('font-size', '0.9em')\n\t\t\t\t.style('color', TEXT_DARK)\n\t\t\t\t.style('overflow', 'hidden')\n\t\t\t\t.style('text-overflow', 'ellipsis')\n\t\t\t\t.style('white-space', 'nowrap')\n\t\t\t\t.attr('title', path.join(' \u203A '))\n\t\t\t\t.text(path.join(' \u203A '))\n\t\t\ttext\n\t\t\t\t.append('div')\n\t\t\t\t.style('font-size', '0.7em')\n\t\t\t\t.style('color', '#6b7280')\n\t\t\t\t.text(this.renderer.unitText(d.value || 0))\n\t\t\trow\n\t\t\t\t.append('span')\n\t\t\t\t.attr('class', 'sjpp-sunburst-remove')\n\t\t\t\t.style('opacity', 0)\n\t\t\t\t.style('cursor', 'pointer')\n\t\t\t\t.style('color', '#9ca3af')\n\t\t\t\t.style('font-size', '0.85em')\n\t\t\t\t.attr('title', 'Remove')\n\t\t\t\t.text('\u2715')\n\t\t\t\t.on('click', () => {\n\t\t\t\t\tthis.selected.delete(id)\n\t\t\t\t\tthis.refreshSelection()\n\t\t\t\t})\n\t\t}\n\n\t\tconst footer = body\n\t\t\t.append('div')\n\t\t\t.style('margin-top', '10px')\n\t\t\t.style('padding-top', '10px')\n\t\t\t.style('border-top', `1px solid ${RULE}`)\n\t\tconst count = this.selectedCount()\n\t\tpill(footer, { button: true })\n\t\t\t.attr('data-testid', 'sjpp-sunburst-create-group')\n\t\t\t.property('disabled', n === 0)\n\t\t\t.style('opacity', n ? 1 : 0.3)\n\t\t\t.style('cursor', n ? 'pointer' : 'default')\n\t\t\t.text(n ? `Create group of ${this.renderer.unitText(count)}` : 'Create group')\n\t\t\t.on('click', () => this.createGroup())\n\t\tif (this.createdNote) {\n\t\t\tfooter\n\t\t\t\t.append('div')\n\t\t\t\t.style('font-size', '0.8em')\n\t\t\t\t.style('color', TEXT_MUTED)\n\t\t\t\t.style('margin-top', '6px')\n\t\t\t\t.text(this.createdNote)\n\t\t}\n\t}\n\n\t/** one group of the union of the selected wedges, added to the GROUPS tab; the group also has the\n\t * plot's own filter, which the counts are of. The global filter is joined where the group is used */\n\tcreateGroup() {\n\t\tconst paths = this.selectedPaths()\n\t\tif (!paths.length) return\n\t\ttry {\n\t\t\tconst name = selectionName(paths)\n\t\t\tconst groups = this.app.getState().groups || []\n\t\t\tconst filter = getGroupFilterOfConditions([this.state.config.filter, selectionFilter(paths, this.twLst)])\n\t\t\taddNewGroup(this.app, filter, groups, name)\n\t\t\tthis.selected.clear()\n\t\t\tthis.createdNote = `Group \"${name}\" added; find it in the GROUPS tab.`\n\t\t\tthis.refreshSelection()\n\t\t} catch (e: any) {\n\t\t\tthis.dom.errdiv.style('display', '').text(e?.message || String(e))\n\t\t}\n\t}\n\n\t/************ rings box ************/\n\n\t/** one line per ring: its number and a term pill, whose menu switches, edits or removes the\n\t * term; then + Add ring. Rebuilt only when the rings change; otherwise the pills get the current\n\t * filter, which their term pickers use */\n\tasync renderRings() {\n\t\tconst twLst = this.twLst\n\t\tconst filter = this.state.termfilter?.filter\n\t\tconst sig = JSON.stringify(twLst.map(tw => [tw.$id, tw.q]))\n\t\tif (sig == this.ringsShown) {\n\t\t\tawait Promise.all(this.ringPills.map(({ pill, arg }) => pill.main({ ...arg, filter })))\n\t\t\treturn\n\t\t}\n\t\tthis.ringsShown = sig\n\t\tthis.ringPills = []\n\t\tconst holder = this.dom.rings.body\n\t\tholder.selectAll('*').remove()\n\t\tconst disable_terms = twLst.map(tw => tw.term)\n\t\tconst sampleTypes = this.app.vocabApi.termdbConfig?.sampleTypes\n\t\tconst edit = (lst: any[]) => this.app.dispatch({ type: 'plot_edit', id: this.id, config: { twLst: lst } })\n\t\t/** one line of the box, indented by its ring, with an elbow from the line above */\n\t\tconst line = (level: number) => {\n\t\t\tconst row = holder\n\t\t\t\t.append('div')\n\t\t\t\t.style('position', 'relative')\n\t\t\t\t.style('margin', '2px 0')\n\t\t\t\t.style('margin-left', `${level * RING_STEP}px`)\n\t\t\tif (level) {\n\t\t\t\trow\n\t\t\t\t\t.append('div')\n\t\t\t\t\t.style('position', 'absolute')\n\t\t\t\t\t.style('left', `${-RING_STEP + 4}px`)\n\t\t\t\t\t.style('top', '-6px')\n\t\t\t\t\t.style('width', `${RING_STEP - 6}px`)\n\t\t\t\t\t.style('height', '18px')\n\t\t\t\t\t.style('border-left', `1px solid ${RING_LINE}`)\n\t\t\t\t\t.style('border-bottom', `1px solid ${RING_LINE}`)\n\t\t\t\t\t.style('border-bottom-left-radius', '4px')\n\t\t\t}\n\t\t\treturn row\n\t\t}\n\t\tfor (const [i, tw] of twLst.entries()) {\n\t\t\tconst row = line(i)\n\t\t\t\t.attr('class', 'sjpp-sunburst-ring')\n\t\t\t\t.style('display', 'flex')\n\t\t\t\t.style('align-items', 'center')\n\t\t\t\t.style('gap', '4px')\n\t\t\t// the ring number; it and a bar beside it are marked while the ring is in the chart\n\t\t\trow\n\t\t\t\t.append('span')\n\t\t\t\t.attr('class', 'sjpp-sunburst-ringnum')\n\t\t\t\t.style('font-size', '.8em')\n\t\t\t\t.style('width', '14px')\n\t\t\t\t.style('flex', '0 0 auto')\n\t\t\t\t.style('padding-left', '4px')\n\t\t\t\t.style('border-left', '3px solid transparent')\n\t\t\t\t.style('border-radius', '2px')\n\t\t\t\t.text(i + 1)\n\t\t\tconst pillDiv = row\n\t\t\t\t.append('div')\n\t\t\t\t.attr('class', 'sjpp-sunburst-ringpill')\n\t\t\t\t.style('min-width', '0')\n\t\t\t\t.style('overflow', 'hidden')\n\t\t\t\t.style('white-space', 'nowrap')\n\t\t\t\t.style('font-size', '.9em')\n\t\t\t\t.style('text-overflow', 'ellipsis')\n\t\t\t\t.attr('title', tw.term.name)\n\t\t\tconst others = twLst.filter((_, j) => j != i)\n\t\t\tconst p = await this.ringPill(\n\t\t\t\tpillDiv,\n\t\t\t\tnewTw => {\n\t\t\t\t\tconst lst = twLst.slice()\n\t\t\t\t\tif (newTw?.term) lst[i] = newTw\n\t\t\t\t\telse lst.splice(i, 1)\n\t\t\t\t\tedit(lst)\n\t\t\t\t},\n\t\t\t\tallowedSampleTypes(others, sampleTypes)\n\t\t\t)\n\t\t\tthis.ringPills.push({ pill: p, arg: { term: tw.term, q: tw.q, $id: tw.$id, disable_terms } })\n\t\t}\n\t\tconst addDiv = line(twLst.length).style('margin-top', '6px').append('div').style('margin-left', '21px')\n\t\tconst add = await this.ringPill(\n\t\t\taddDiv,\n\t\t\tnewTw => {\n\t\t\t\tif (newTw?.term) edit([...twLst, newTw])\n\t\t\t},\n\t\t\tallowedSampleTypes(twLst, sampleTypes),\n\t\t\t'+ Add ring'\n\t\t)\n\t\tthis.ringPills.push({ pill: add, arg: { term: null, q: null, disable_terms } })\n\t\tawait Promise.all(this.ringPills.map(({ pill, arg }) => pill.main({ ...arg, filter })))\n\t\tthis.markShownRings()\n\t}\n\n\t/** mark the two rings around the current centre: a bar beside the ring number, which is bold */\n\tmarkShownRings() {\n\t\tconst first = this.renderer.focus?.depth || 0\n\t\tconst shown = (i: number) => i == first || i == first + 1\n\t\tthis.dom.rings.body\n\t\t\t.selectAll('.sjpp-sunburst-ring')\n\t\t\t.attr('title', (_: any, i: number) => (shown(i) ? 'Shown in the chart' : null))\n\t\t\t.select('.sjpp-sunburst-ringnum')\n\t\t\t.style('border-left-color', (_: any, i: number) => (shown(i) ? LINK : 'transparent'))\n\t\t\t.style('color', (_: any, i: number) => (shown(i) ? TEXT_DARK : TEXT_MUTED))\n\t\t\t.style('font-weight', (_: any, i: number) => (shown(i) ? 'bold' : 'normal'))\n\t}\n\n\t/** a ring term pill; `sampleTypes` limits the terms it offers (see allowedSampleTypes) */\n\tasync ringPill(holder: any, callback: (tw: any) => void, sampleTypes?: string[], placeholder?: string) {\n\t\treturn await termsettingInit({\n\t\t\tholder,\n\t\t\tvocabApi: this.app.vocabApi,\n\t\t\tusecase: { target: 'sunburst', ...(sampleTypes ? { sampleTypes } : {}) },\n\t\t\t// the full term name; a name too long for the box is clipped, with the name as its tooltip\n\t\t\tabbrCutoff: 1000,\n\t\t\tmenuOptions: '*',\n\t\t\tnumericEditMenuVersion: ['discrete'],\n\t\t\tdefaultQ4fillTW: { numeric: { mode: 'discrete' } },\n\t\t\t...(placeholder ? { placeholder } : {}),\n\t\t\tdebug: this.app.opts.debug,\n\t\t\tcallback\n\t\t})\n\t}\n\n\tdestroy() {\n\t\tthis.renderer?.destroy()\n\t}\n}\n\nconst RING_LINE = '#cbd5e1'\n\n/** termdb/sunburst request; errors are thrown */\nasync function fetchSunburst(body: SunburstRequest): Promise<SunburstResponse> {\n\tconst res: any = await dofetch3('termdb/sunburst', { body })\n\tif (res?.error) throw res.error\n\tif (!res?.nodes) throw 'invalid response from termdb/sunburst'\n\treturn res\n}\n\nexport async function getPlotConfig(opts: any, app: any) {\n\tconst config: any = {\n\t\tchartType: 'sunburst',\n\t\tsettings: {}\n\t}\n\tcopyMerge(config, opts)\n\t// default rings from the dataset; a saved session or another chart may give its own\n\tif (!config.twLst) config.twLst = structuredClone(app.vocabApi.termdbConfig?.sunburst?.twLst || [])\n\tconfig.twLst = await Promise.all(\n\t\tconfig.twLst.map((tw: any) => fillTermWrapper(tw, app.vocabApi, { numeric: { mode: 'discrete' } } as any))\n\t)\n\treturn config\n}\n\nexport const sunburstInit = getCompInit(Sunburst)\n// this alias will allow abstracted dynamic imports\nexport const componentInit = sunburstInit\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,SAAS,cACf,KACA,OACA,UACA,QACc;AACd,QAAM,UAAU,CAAC,GAAiB,MAAc,eAAwC;AACvF,UAAM,KAAK,MAAM,IAAI;AACrB,UAAM,WAAW,IAAI,MAAM,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI;AACrE,UAAM,OAAO,CAAC,GAAG,YAAY,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC;AAC5C,UAAM,YAAY,EAAE,YAAY,CAAC,GAAG,IAAI,OAAK,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;AACvE,UAAM,OAAoB;AAAA,MACzB,MAAM,SAAS;AAAA,MACf,OAAO,GAAG,KAAK;AAAA;AAAA,MAEf,OAAO,EAAE,QAAQ,SAAS,OAAO,CAAC,GAAG,MAAM,IAAI,EAAE,OAAO,CAAC;AAAA,MACzD,OAAO,EAAE;AAAA,MACT,IAAI,KAAK,UAAU,IAAI;AAAA,MACvB;AAAA,MACA,KAAK,EAAE;AAAA,MACP;AAAA,IACD;AACA,UAAM,QAAS,QAAQ,KAAK,SAAS,EAAE,GAAG,KAAM,SAAS;AACzD,QAAI,MAAO,MAAK,QAAQ;AACxB,QAAI,SAAS,OAAQ,MAAK,WAAW;AACrC,WAAO;AAAA,EACR;AACA,SAAO,EAAE,MAAM,UAAU,OAAO,GAAG,OAAO,IAAI,OAAO,UAAU,IAAI,MAAM,IAAI,OAAK,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE;AACtG;AAGO,SAAS,mBAAmB,IAAS,UAAiC;AAC5E,MAAI,SAAS,OAAQ,QAAO,gBAAgB,SAAS,MAAM;AAC3D,MAAI,CAAC,SAAS,IAAK,OAAM,2BAA2B,SAAS,KAAK,QAAQ,GAAG,KAAK,IAAI;AACtF,SAAO,EAAE,MAAM,OAAO,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,SAAS,GAAG,EAAE,EAAE;AAChF;AAGO,SAAS,YAAY,MAAqB,OAAsB;AACtE,QAAM,MAAM,KAAK,IAAI,OAAK,mBAAmB,MAAM,EAAE,IAAI,GAAG,EAAE,QAAQ,CAAC;AACvE,SAAO,EAAE,MAAM,UAAU,IAAI,MAAM,MAAM,IAAI,SAAS,IAAI,QAAQ,IAAI,IAAI;AAC3E;AAIO,SAAS,gBAAgB,OAAwB,OAAsB;AAC7E,MAAI,CAAC,MAAM,OAAQ,OAAM;AACzB,MAAI,MAAM,UAAU,EAAG,QAAO,YAAY,MAAM,CAAC,GAAG,KAAK;AACzD,SAAO,EAAE,MAAM,UAAU,IAAI,MAAM,MAAM,MAAM,KAAK,MAAM,IAAI,OAAK,YAAY,GAAG,KAAK,CAAC,EAAE;AAC3F;AAIO,SAAS,cAAc,OAAwB,SAAS,IAAY;AAC1E,QAAM,QACL,MAAM,UAAU,IAAI,MAAM,CAAC,EAAE,IAAI,OAAK,EAAE,IAAI,EAAE,KAAK,UAAK,IAAI,MAAM,IAAI,OAAK,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,MAAM;AAC7G,SAAO,MAAM,SAAS,SAAS,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,WAAM;AACnE;AAMO,SAAS,mBAAmB,YAAmB,aAA2D;AAChH,MAAI,CAAC,eAAe,OAAO,KAAK,WAAW,EAAE,SAAS,EAAG;AACzD,QAAM,SAAS,CAAC,MAAc;AAC7B,UAAM,IAAI,YAAY,CAAC,GAAG;AAC1B,WAAO,MAAM,QAAQ,MAAM,SAAY,SAAY,OAAO,CAAC;AAAA,EAC5D;AACA,QAAM,YAAY,CAAC,MAAc;AAChC,UAAM,MAAgB,CAAC;AACvB,aAAS,IAAI,OAAO,CAAC,GAAG,MAAM,UAAa,CAAC,IAAI,SAAS,CAAC,GAAG,IAAI,OAAO,CAAC,EAAG,KAAI,KAAK,CAAC;AACtF,WAAO;AAAA,EACR;AACA,QAAM,QAAQ,WACZ,IAAI,QAAM,GAAG,MAAM,WAAW,EAC9B,OAAO,OAAK,MAAM,QAAQ,MAAM,UAAa,YAAY,CAAC,CAAC,EAC3D,IAAI,MAAM;AACZ,QAAM,QAAQ,MAAM,OAAO,OAAK,OAAO,CAAC,MAAM,MAAS;AACvD,MAAI,CAAC,MAAM,OAAQ;AACnB,QAAM,UAAU,MAAM,OAAO,CAAC,GAAG,MAAO,UAAU,CAAC,EAAE,SAAS,UAAU,CAAC,EAAE,SAAS,IAAI,CAAE;AAC1F,QAAM,cAAc,OAAO,KAAK,WAAW,EAAE,OAAO,OAAK,UAAU,CAAC,EAAE,SAAS,OAAO,CAAC;AACvF,SAAO,CAAC,GAAG,UAAU,OAAO,GAAG,SAAS,GAAG,WAAW;AACvD;;;AC7DA,IAAM,eAAe;AACrB,IAAM,gBAAgB;AAEtB,IAAM,YAAY;AAElB,IAAM,WAAN,MAAM,kBAAiB,SAAgC;AAAA,EA4BtD,YAAY,MAAW,KAAmB;AACzC,UAAM,MAAM,GAAG;AAbhB,iBAAe,CAAC;AAEhB;AAAA,oBAA+B,oBAAI,IAAI;AAEvC;AAAA,uBAAc;AAEd;AAAA,sBAAa;AAEb;AAAA,qBAAuC,CAAC;AAExC;AAAA,gBAAO,EAAE,KAAK,UAAU,MAAM,UAAU;AAIvC,SAAK,OAAO,UAAS;AACrB,QAAI,KAAK,KAAK;AACb,WAAK,KAAK,OAAO,MAAM,gBAAgB,KAAK,EAAE,MAAM,SAAS,iBAAiB,EAAE,KAAK,UAAU;AAAA,EACjG;AAAA,EAhCA;AAAA,SAAO,OAAO;AAAA;AAAA,EAkCd,SAAS,UAAe;AACvB,UAAM,SAAS,SAAS,MAAM,KAAK,CAAC,MAAW,EAAE,OAAO,KAAK,EAAE;AAC/D,QAAI,CAAC,OAAQ,OAAM,oBAAoB,KAAK,EAAE;AAC9C,WAAO;AAAA,MACN;AAAA;AAAA,MAEA,YAAY,sBAAsB,UAAU,OAAO,MAAM;AAAA,MACzD,QAAQ,SAAS,MAAM;AAAA,MACvB,SAAS,SAAS,MAAM;AAAA,MACxB,UAAU,SAAS,cAAc,YAAY,CAAC;AAAA,IAC/C;AAAA,EACD;AAAA,EAEA,MAAM,OAAO;AAEZ,UAAM,SAAS,KAAK,KAAK,OACvB,OAAO,KAAK,EACZ,KAAK,eAAe,sBAAsB,EAC1C,MAAM,eAAe,QAAQ,EAC7B,MAAM,WAAW,MAAM;AACzB,UAAM,SAAS,OAAO,OAAO,KAAK,EAAE,KAAK,SAAS,cAAc,EAAE,MAAM,WAAW,MAAM;AACzF,UAAM,aAAa,OAAO,OAAO,KAAK,EAAE,MAAM,WAAW,MAAM,EAAE,MAAM,WAAW,MAAM,EAAE,KAAK,aAAa;AAC5G,UAAM,UAAU,OACd,OAAO,KAAK,EACZ,MAAM,aAAa,OAAO,EAC1B,MAAM,SAAS,UAAU,EACzB,MAAM,iBAAiB,KAAK;AAC9B,UAAM,cAAc,OAAO,OAAO,KAAK,EAAE,KAAK,eAAe,qBAAqB;AAClF,SAAK,WAAW,IAAI,iBAAiB;AAAA,MACpC,QAAQ;AAAA,MACR,MAAM,KAAK;AAAA,MACX,UAAU;AAAA,MACV,YAAY,CAAC,cAAc,aAAa;AAAA,MACxC,UAAU;AAAA,MACV,OAAO;AAAA,QACN,SAAS,CAAC,GAAU,UAAe,KAAK,aAAa,GAAG,KAAK;AAAA,QAC7D,YAAY,CAAC,MAAa,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE;AAAA,QACrD,QAAQ,CAAC,MAAc,EAAE,WAAW,YAAY;AAAA,QAChD,SAAS,CAAC,GAAU,QAAa,KAAK,QAAQ,GAAG,GAAG;AAAA,QACpD,SAAS,MAAM;AACd,eAAK,YAAY;AACjB,eAAK,cAAc;AACnB,eAAK,kBAAkB;AACvB,eAAK,eAAe;AAAA,QACrB;AAAA,MACD;AAAA,IACD,CAAC;AACD,UAAM,QAAQ,KAAK,KAAK,SAAS,IAAI,MAAM,OAAO;AAClD,UAAM,KAAK,KAAK,eAAe,qBAAqB;AAEpD,UAAM,IAAI,OAAO,OAAO,EAAE,KAAK,0EAA0E;AACzG,UAAM,cAAc,KAAK,SACvB,WAAW,EACX,KAAK,eAAe,4BAA4B,EAChD,GAAG,SAAS,MAAM;AAClB,YAAM,IAAI,KAAK,SAAS;AACxB,UAAI,GAAG,SAAS,CAAC,KAAK,iBAAiB,CAAC,EAAG,MAAK,OAAO,CAAC;AAAA,IACzD,CAAC;AACF,SAAK,MAAM;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK,KAAK,KAAK,SAAS,IAAI,OAAO,iBAAiB;AAAA,MACpD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,OAAO;AACZ,UAAM,SAAS,KAAK,MAAM;AAC1B,SAAK,QAAQ,OAAO,SAAS,CAAC;AAC9B,SAAK,IAAI,OAAO,MAAM,WAAW,MAAM;AACvC,SAAK,IAAI,QAAQ,KAAK,EAAE;AACxB,UAAM,KAAK,YAAY;AACvB,QAAI,CAAC,KAAK,MAAM,QAAQ;AACvB,WAAK,SAAS,MAAM;AACpB,WAAK,SAAS,QAAQ,EAAE,MAAM,KAAK,SAAS,KAAK,UAAU,UAAU,CAAC,EAAE,CAAC;AACzE,WAAK,IAAI,QAAQ,KAAK,mDAAmD;AACzE;AAAA,IACD;AACA,QAAI;AACH,WAAK,IAAI,WAAW,MAAM,WAAW,EAAE;AACvC,YAAM,MAAM,MAAM,cAAc;AAAA,QAC/B,QAAQ,KAAK,MAAM;AAAA,QACnB,SAAS,KAAK,MAAM;AAAA,QACpB,OAAO,KAAK;AAAA,QACZ,QAAQ,cAAc,KAAK,MAAM,YAAY,MAAM;AAAA,QACnD,SAAS,KAAK,MAAM,YAAY;AAAA,MACjC,CAAC;AACD,WAAK,IAAI,WAAW,MAAM,WAAW,MAAM;AAC3C,WAAK,OAAO,GAAG;AAAA,IAChB,SAAS,GAAQ;AAChB,WAAK,IAAI,WAAW,MAAM,WAAW,MAAM;AAC3C,WAAK,IAAI,OAAO,MAAM,WAAW,EAAE,EAAE,KAAK,GAAG,WAAW,OAAO,CAAC,CAAC;AACjE,UAAI,aAAa,MAAO,SAAQ,MAAM,CAAC;AAAA,IACxC;AAAA,EACD;AAAA,EAEA,OAAO,KAAuB;AAC7B,SAAK,QAAQ,IAAI,QAAQ,EAAE,KAAK,UAAU,MAAM,UAAU,CAAC;AAC3D,QAAI,IAAI,kBAAkB;AACzB,YAAM,IAAI,IAAI;AACd,WAAK,IAAI,QAAQ;AAAA,QAChB,GAAG,EAAE,eAAe,CAAC,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,KAAK,KAAK,IAAI,YAAY,KAAK,MAAM,CAAC,EAAE,KAAK,IAAI,UAClG,KAAK,IAAI,OAAO,KACjB;AAAA,MACD;AAAA,IACD;AACA,UAAM,UAAU,KAAK,SAAS,OAAO,KAAK;AAC1C,UAAM,cAAc,CAAC,GAAG,KAAK,SAAS,KAAK,CAAC;AAC5C,SAAK,SAAS,QAAQ,cAAc,KAAK,KAAK,OAAO,KAAK,SAAS,KAAK,UAAU,KAAK,MAAM,SAAS,MAAM,CAAC;AAG7G,UAAM,OAAO,IAAI,IAAI,KAAK,SAAS,KAAK,YAAY,EAAE,IAAI,CAAC,MAAa,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;AACvF,SAAK,WAAW,IAAI,IAAI,YAAY,OAAO,QAAM,KAAK,IAAI,EAAE,CAAC,EAAE,IAAI,QAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5F,SAAK,SAAS,QAAQ;AACtB,UAAM,QAAQ,WAAW,KAAK,IAAI,OAAO;AACzC,QAAI,OAAO,SAAU,MAAK,SAAS,OAAO,KAAK;AAAA,QAC1C,MAAK,cAAc;AAAA,EACzB;AAAA;AAAA,EAGA,QAAQ,MAAqC;AAC5C,SAAK,OAAO;AACZ,SAAK,SAAS,KAAK,OAAO;AAC1B,SAAK,SAAS,KAAK,WAAW,OAAO,KAAK,IAAI;AAC9C,SAAK,SAAS,aAAa,cAAc,sBAAsB,KAAK,IAAI,CAAC;AACzE,SAAK,SAAS,aAAa,eAAe,YAAY,KAAK,IAAI,EAAE;AAAA,EAClE;AAAA;AAAA,EAGA,oBAAoB;AACnB,UAAM,IAAI,KAAK,SAAS;AACxB,UAAM,KAAK,KAAK,IAAI;AACpB,QAAI,CAAC,GAAG,OAAO;AACd,SAAG,MAAM,WAAW,MAAM;AAC1B;AAAA,IACD;AACA,UAAM,MAAM,KAAK,iBAAiB,CAAC;AACnC,UAAM,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE;AACtC,OAAG,MAAM,WAAW,EAAE,EACpB,MAAM,WAAW,MAAM,OAAO,CAAC,EAC/B,MAAM,UAAU,MAAM,YAAY,SAAS,EAC3C,MAAM,SAAS,KAAK,gBAAgB,UAAU,EAC9C,KAAK,SAAS,MAAM,4BAA4B,IAAI,KAAK,IAAI,KAAK,IAAI,EACtE;AAAA,MACA,KACG,GAAG,KAAK,sCAAsC,CAAC,iBAAc,WAAW,EAAE,KAAK,KAAK,YAAY,CAAC,CAAC,KAClG,GAAG,KAAK,2DAA2D,CAAC,UAAU;AAAA,QAC9E,EAAE,KAAK,KAAK,YAAY;AAAA,MACxB,CAAC;AAAA,IACL;AAAA,EACF;AAAA;AAAA;AAAA,EAKA,iBAAiB,GAA6B;AAC7C,aAAS,IAAI,EAAE,QAAQ,GAAG,OAAO,IAAI,EAAE,OAAQ,KAAI,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,EAAG,QAAO;AAAA,EACzF;AAAA,EAEA,OAAO,GAAU;AAChB,QAAI,CAAC,EAAE,MAAO;AACd,UAAM,KAAK,EAAE,KAAK;AAClB,SAAK,cAAc;AACnB,QAAI,KAAK,SAAS,IAAI,EAAE,EAAG,MAAK,SAAS,OAAO,EAAE;AAAA,SAC7C;AACJ,UAAI,KAAK,iBAAiB,CAAC,EAAG;AAE9B,iBAAW,CAAC,GAAG,CAAC,KAAK,KAAK,SAAU,KAAI,EAAE,UAAU,EAAE,SAAS,CAAC,EAAG,MAAK,SAAS,OAAO,CAAC;AACzF,WAAK,SAAS,IAAI,IAAI,CAAC;AAAA,IACxB;AACA,SAAK,iBAAiB;AAAA,EACvB;AAAA,EAEA,mBAAmB;AAClB,SAAK,SAAS,QAAQ;AACtB,SAAK,YAAY;AACjB,SAAK,cAAc;AACnB,SAAK,kBAAkB;AAAA,EACxB;AAAA;AAAA,EAGA,gBAAiC;AAChC,WAAO,CAAC,GAAG,KAAK,SAAS,OAAO,CAAC,EAAE;AAAA,MAClC,CAAC,MACA,EACE,UAAU,EACV,QAAQ,EACR,MAAM,CAAC,EACP,IAAI,CAAC,MAAa,EAAE,IAAI;AAAA,IAC5B;AAAA,EACD;AAAA,EAEA,gBAAwB;AACvB,QAAI,IAAI;AACR,eAAW,KAAK,KAAK,SAAS,OAAO,EAAG,MAAK,EAAE,SAAS;AACxD,WAAO;AAAA,EACR;AAAA,EAEA,cAAc;AACb,UAAM,IAAI,KAAK;AACf,MAAE;AAAA,MACD,oBAAI,IAAI;AAAA,QACP,CAAC,cAAc,EAAE,MAAM,SAAS,CAAC;AAAA,QACjC,CAAC,eAAe,KAAK,cAAc,CAAC;AAAA,MACrC,CAAC;AAAA,IACF;AAAA,EACD;AAAA;AAAA,EAIA,aAAa,GAAU,OAAY;AAClC,QAAI,OAAO,YAAY,CAAC,EAAE,SAAU,MAAK,OAAO,CAAC;AAAA,QAC5C,MAAK,SAAS,OAAO,CAAC;AAAA,EAC5B;AAAA,EAEA,QAAQ,GAAU,KAAU;AAC3B,UAAM,OAAO,CAAC,MAAc,QAAQ,cAAc,IAAI,OAAO,KAAK,EAAE,MAAM,SAAS,KAAK,EAAE,KAAK,IAAI;AACnG,SAAK,EAAE,KAAK,KAAK;AACjB,UAAM,QAAQ,KAAK,SAAS,KAAK,SAAS;AAC1C,UAAM,MAAM,QAAQ,MAAO,OAAO,EAAE,SAAS,KAAM,OAAO,QAAQ,CAAC,CAAC,OAAO;AAC3E,UAAM,IAAI,IAAI,OAAO,KAAK,EAAE,MAAM,SAAS,SAAS;AACpD,MAAE,OAAO,MAAM,EAAE,KAAK,GAAG,sBAAsB,KAAK,KAAK,IAAI,CAAC,IAAI;AAClE,MAAE,OAAO,GAAG,EAAE,MAAM,EAAE,SAAS,GAAG,eAAe,CAAC;AAClD,MAAE,OAAO,MAAM,EAAE,KAAK,GAAG;AACzB,UAAM,QAAQ,EAAE,KAAK,SAAS;AAC9B,QAAI,EAAE,YAAY,OAAO;AACxB,YAAM,OAAO,KAAK,MAAM,EAAE,KAAK,OAAO,CAAC,GAAG,KAAK;AAC/C,WAAK,GAAG,MAAM,eAAe,CAAC,YAAY,IAAI,QAAQ;AAAA,IACvD;AACA,UAAM,OAAO,CAAC,MAAc,UAC3B,IAAI,OAAO,KAAK,EAAE,MAAM,cAAc,KAAK,EAAE,MAAM,SAAS,KAAK,EAAE,KAAK,IAAI;AAC7E,UAAM,MAAM,KAAK,iBAAiB,CAAC;AACnC,QAAI,IAAK,MAAK,4BAA4B,IAAI,KAAK,IAAI,IAAI,UAAU;AAAA,aAC5D,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE;AACnC,WAAK,EAAE,WAAW,kDAA+C,qBAAqB,IAAI;AAAA,QACtF,MAAK,EAAE,WAAW,gDAA6C,mBAAmB,IAAI;AAAA,EAC5F;AAAA;AAAA;AAAA,EAIA,gBAAgB;AACf,UAAM,MAAM,KAAK,IAAI;AACrB,UAAM,EAAE,OAAO,WAAW,KAAK,IAAI;AACnC,cAAU,UAAU,GAAG,EAAE,OAAO;AAChC,SAAK,UAAU,GAAG,EAAE,OAAO;AAC3B,cAAU,MAAM,iBAAiB,KAAK;AACtC,UAAM,IAAI,KAAK,SAAS;AACxB,UAAM,KAAK,IAAI,oBAAoB,oBAAoB;AACvD,QAAI,GAAG;AACN,WAAK,SAAS,EAAE,KAAK,CAAC;AACtB,gBACE,OAAO,MAAM,EACb,MAAM,aAAa,MAAM,EACzB,MAAM,SAAS,IAAI,EACnB,MAAM,UAAU,SAAS,EACzB,KAAK,OAAO,EACZ,GAAG,SAAS,MAAM;AAClB,aAAK,SAAS,MAAM;AACpB,aAAK,iBAAiB;AAAA,MACvB,CAAC;AAAA,IACH;AACA,UAAM,OAAO,KACX,OAAO,KAAK,EACZ,MAAM,cAAc,GAAG,OAAO,GAAG,IAAI,EACrC,MAAM,cAAc,MAAM;AAC5B,QAAI,CAAC,GAAG;AACP,WACE,OAAO,KAAK,EACZ,MAAM,aAAa,QAAQ,EAC3B,MAAM,SAAS,UAAU,EACzB,MAAM,WAAW,OAAO,EACxB,KAAK,iGAAiG;AAAA,IACzG;AACA,eAAW,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU;AACpC,YAAM,OAAO,EACX,UAAU,EACV,QAAQ,EACR,MAAM,CAAC,EACP,IAAI,CAAC,MAAa,EAAE,KAAK,IAAI;AAC/B,YAAM,MAAM,KACV,OAAO,KAAK,EACZ,MAAM,WAAW,MAAM,EACvB,MAAM,eAAe,QAAQ,EAC7B,MAAM,OAAO,KAAK,EAClB,MAAM,WAAW,SAAS,EAC1B,MAAM,UAAU,OAAO,EACvB,MAAM,iBAAiB,KAAK,EAC5B,GAAG,cAAc,CAAC,UAAe;AACjC,uBAAO,MAAM,aAAa,EAAE,MAAM,cAAc,SAAS,EAAE,OAAO,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAAA,MAC9G,CAAC,EACA,GAAG,cAAc,CAAC,UAAe;AACjC,uBAAO,MAAM,aAAa,EACxB,MAAM,cAAc,aAAa,EACjC,OAAO,uBAAuB,EAC9B,MAAM,WAAW,CAAC;AAAA,MACrB,CAAC;AACF,YAAM,KAAK,EAAE,KAAK,MAAM,KAAK,SAAS,MAAM,CAAC,GAAG,EAAE;AAClD,YAAM,OAAO,IAAI,OAAO,KAAK,EAAE,MAAM,QAAQ,UAAU,EAAE,MAAM,aAAa,GAAG,EAAE,MAAM,eAAe,KAAK;AAC3G,WACE,OAAO,KAAK,EACZ,MAAM,aAAa,OAAO,EAC1B,MAAM,SAAS,SAAS,EACxB,MAAM,YAAY,QAAQ,EAC1B,MAAM,iBAAiB,UAAU,EACjC,MAAM,eAAe,QAAQ,EAC7B,KAAK,SAAS,KAAK,KAAK,UAAK,CAAC,EAC9B,KAAK,KAAK,KAAK,UAAK,CAAC;AACvB,WACE,OAAO,KAAK,EACZ,MAAM,aAAa,OAAO,EAC1B,MAAM,SAAS,SAAS,EACxB,KAAK,KAAK,SAAS,SAAS,EAAE,SAAS,CAAC,CAAC;AAC3C,UACE,OAAO,MAAM,EACb,KAAK,SAAS,sBAAsB,EACpC,MAAM,WAAW,CAAC,EAClB,MAAM,UAAU,SAAS,EACzB,MAAM,SAAS,SAAS,EACxB,MAAM,aAAa,QAAQ,EAC3B,KAAK,SAAS,QAAQ,EACtB,KAAK,QAAG,EACR,GAAG,SAAS,MAAM;AAClB,aAAK,SAAS,OAAO,EAAE;AACvB,aAAK,iBAAiB;AAAA,MACvB,CAAC;AAAA,IACH;AAEA,UAAM,SAAS,KACb,OAAO,KAAK,EACZ,MAAM,cAAc,MAAM,EAC1B,MAAM,eAAe,MAAM,EAC3B,MAAM,cAAc,aAAa,IAAI,EAAE;AACzC,UAAM,QAAQ,KAAK,cAAc;AACjC,SAAK,QAAQ,EAAE,QAAQ,KAAK,CAAC,EAC3B,KAAK,eAAe,4BAA4B,EAChD,SAAS,YAAY,MAAM,CAAC,EAC5B,MAAM,WAAW,IAAI,IAAI,GAAG,EAC5B,MAAM,UAAU,IAAI,YAAY,SAAS,EACzC,KAAK,IAAI,mBAAmB,KAAK,SAAS,SAAS,KAAK,CAAC,KAAK,cAAc,EAC5E,GAAG,SAAS,MAAM,KAAK,YAAY,CAAC;AACtC,QAAI,KAAK,aAAa;AACrB,aACE,OAAO,KAAK,EACZ,MAAM,aAAa,OAAO,EAC1B,MAAM,SAAS,UAAU,EACzB,MAAM,cAAc,KAAK,EACzB,KAAK,KAAK,WAAW;AAAA,IACxB;AAAA,EACD;AAAA;AAAA;AAAA,EAIA,cAAc;AACb,UAAM,QAAQ,KAAK,cAAc;AACjC,QAAI,CAAC,MAAM,OAAQ;AACnB,QAAI;AACH,YAAM,OAAO,cAAc,KAAK;AAChC,YAAM,SAAS,KAAK,IAAI,SAAS,EAAE,UAAU,CAAC;AAC9C,YAAM,SAAS,2BAA2B,CAAC,KAAK,MAAM,OAAO,QAAQ,gBAAgB,OAAO,KAAK,KAAK,CAAC,CAAC;AACxG,kBAAY,KAAK,KAAK,QAAQ,QAAQ,IAAI;AAC1C,WAAK,SAAS,MAAM;AACpB,WAAK,cAAc,UAAU,IAAI;AACjC,WAAK,iBAAiB;AAAA,IACvB,SAAS,GAAQ;AAChB,WAAK,IAAI,OAAO,MAAM,WAAW,EAAE,EAAE,KAAK,GAAG,WAAW,OAAO,CAAC,CAAC;AAAA,IAClE;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cAAc;AACnB,UAAM,QAAQ,KAAK;AACnB,UAAM,SAAS,KAAK,MAAM,YAAY;AACtC,UAAM,MAAM,KAAK,UAAU,MAAM,IAAI,QAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;AAC1D,QAAI,OAAO,KAAK,YAAY;AAC3B,YAAM,QAAQ,IAAI,KAAK,UAAU,IAAI,CAAC,EAAE,MAAAA,OAAM,IAAI,MAAMA,MAAK,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC;AACtF;AAAA,IACD;AACA,SAAK,aAAa;AAClB,SAAK,YAAY,CAAC;AAClB,UAAM,SAAS,KAAK,IAAI,MAAM;AAC9B,WAAO,UAAU,GAAG,EAAE,OAAO;AAC7B,UAAM,gBAAgB,MAAM,IAAI,QAAM,GAAG,IAAI;AAC7C,UAAM,cAAc,KAAK,IAAI,SAAS,cAAc;AACpD,UAAM,OAAO,CAAC,QAAe,KAAK,IAAI,SAAS,EAAE,MAAM,aAAa,IAAI,KAAK,IAAI,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;AAEzG,UAAM,OAAO,CAAC,UAAkB;AAC/B,YAAM,MAAM,OACV,OAAO,KAAK,EACZ,MAAM,YAAY,UAAU,EAC5B,MAAM,UAAU,OAAO,EACvB,MAAM,eAAe,GAAG,QAAQ,SAAS,IAAI;AAC/C,UAAI,OAAO;AACV,YACE,OAAO,KAAK,EACZ,MAAM,YAAY,UAAU,EAC5B,MAAM,QAAQ,GAAG,CAAC,YAAY,CAAC,IAAI,EACnC,MAAM,OAAO,MAAM,EACnB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EACnC,MAAM,UAAU,MAAM,EACtB,MAAM,eAAe,aAAa,SAAS,EAAE,EAC7C,MAAM,iBAAiB,aAAa,SAAS,EAAE,EAC/C,MAAM,6BAA6B,KAAK;AAAA,MAC3C;AACA,aAAO;AAAA,IACR;AACA,eAAW,CAAC,GAAG,EAAE,KAAK,MAAM,QAAQ,GAAG;AACtC,YAAM,MAAM,KAAK,CAAC,EAChB,KAAK,SAAS,oBAAoB,EAClC,MAAM,WAAW,MAAM,EACvB,MAAM,eAAe,QAAQ,EAC7B,MAAM,OAAO,KAAK;AAEpB,UACE,OAAO,MAAM,EACb,KAAK,SAAS,uBAAuB,EACrC,MAAM,aAAa,MAAM,EACzB,MAAM,SAAS,MAAM,EACrB,MAAM,QAAQ,UAAU,EACxB,MAAM,gBAAgB,KAAK,EAC3B,MAAM,eAAe,uBAAuB,EAC5C,MAAM,iBAAiB,KAAK,EAC5B,KAAK,IAAI,CAAC;AACZ,YAAM,UAAU,IACd,OAAO,KAAK,EACZ,KAAK,SAAS,wBAAwB,EACtC,MAAM,aAAa,GAAG,EACtB,MAAM,YAAY,QAAQ,EAC1B,MAAM,eAAe,QAAQ,EAC7B,MAAM,aAAa,MAAM,EACzB,MAAM,iBAAiB,UAAU,EACjC,KAAK,SAAS,GAAG,KAAK,IAAI;AAC5B,YAAM,SAAS,MAAM,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC;AAC5C,YAAM,IAAI,MAAM,KAAK;AAAA,QACpB;AAAA,QACA,WAAS;AACR,gBAAM,MAAM,MAAM,MAAM;AACxB,cAAI,OAAO,KAAM,KAAI,CAAC,IAAI;AAAA,cACrB,KAAI,OAAO,GAAG,CAAC;AACpB,eAAK,GAAG;AAAA,QACT;AAAA,QACA,mBAAmB,QAAQ,WAAW;AAAA,MACvC;AACA,WAAK,UAAU,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,cAAc,EAAE,CAAC;AAAA,IAC7F;AACA,UAAM,SAAS,KAAK,MAAM,MAAM,EAAE,MAAM,cAAc,KAAK,EAAE,OAAO,KAAK,EAAE,MAAM,eAAe,MAAM;AACtG,UAAM,MAAM,MAAM,KAAK;AAAA,MACtB;AAAA,MACA,WAAS;AACR,YAAI,OAAO,KAAM,MAAK,CAAC,GAAG,OAAO,KAAK,CAAC;AAAA,MACxC;AAAA,MACA,mBAAmB,OAAO,WAAW;AAAA,MACrC;AAAA,IACD;AACA,SAAK,UAAU,KAAK,EAAE,MAAM,KAAK,KAAK,EAAE,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;AAC9E,UAAM,QAAQ,IAAI,KAAK,UAAU,IAAI,CAAC,EAAE,MAAAA,OAAM,IAAI,MAAMA,MAAK,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC;AACtF,SAAK,eAAe;AAAA,EACrB;AAAA;AAAA,EAGA,iBAAiB;AAChB,UAAM,QAAQ,KAAK,SAAS,OAAO,SAAS;AAC5C,UAAM,QAAQ,CAAC,MAAc,KAAK,SAAS,KAAK,QAAQ;AACxD,SAAK,IAAI,MAAM,KACb,UAAU,qBAAqB,EAC/B,KAAK,SAAS,CAAC,GAAQ,MAAe,MAAM,CAAC,IAAI,uBAAuB,IAAK,EAC7E,OAAO,wBAAwB,EAC/B,MAAM,qBAAqB,CAAC,GAAQ,MAAe,MAAM,CAAC,IAAI,OAAO,aAAc,EACnF,MAAM,SAAS,CAAC,GAAQ,MAAe,MAAM,CAAC,IAAI,YAAY,UAAW,EACzE,MAAM,eAAe,CAAC,GAAQ,MAAe,MAAM,CAAC,IAAI,SAAS,QAAS;AAAA,EAC7E;AAAA;AAAA,EAGA,MAAM,SAAS,QAAa,UAA6B,aAAwB,aAAsB;AACtG,WAAO,MAAM,gBAAgB;AAAA,MAC5B;AAAA,MACA,UAAU,KAAK,IAAI;AAAA,MACnB,SAAS,EAAE,QAAQ,YAAY,GAAI,cAAc,EAAE,YAAY,IAAI,CAAC,EAAG;AAAA;AAAA,MAEvE,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,wBAAwB,CAAC,UAAU;AAAA,MACnC,iBAAiB,EAAE,SAAS,EAAE,MAAM,WAAW,EAAE;AAAA,MACjD,GAAI,cAAc,EAAE,YAAY,IAAI,CAAC;AAAA,MACrC,OAAO,KAAK,IAAI,KAAK;AAAA,MACrB;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,UAAU;AACT,SAAK,UAAU,QAAQ;AAAA,EACxB;AACD;AAEA,IAAM,YAAY;AAGlB,eAAe,cAAc,MAAkD;AAC9E,QAAM,MAAW,MAAM,SAAS,mBAAmB,EAAE,KAAK,CAAC;AAC3D,MAAI,KAAK,MAAO,OAAM,IAAI;AAC1B,MAAI,CAAC,KAAK,MAAO,OAAM;AACvB,SAAO;AACR;AAEA,eAAsB,cAAc,MAAW,KAAU;AACxD,QAAM,SAAc;AAAA,IACnB,WAAW;AAAA,IACX,UAAU,CAAC;AAAA,EACZ;AACA,YAAU,QAAQ,IAAI;AAEtB,MAAI,CAAC,OAAO,MAAO,QAAO,QAAQ,gBAAgB,IAAI,SAAS,cAAc,UAAU,SAAS,CAAC,CAAC;AAClG,SAAO,QAAQ,MAAM,QAAQ;AAAA,IAC5B,OAAO,MAAM,IAAI,CAAC,OAAY,gBAAgB,IAAI,IAAI,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,EAAE,CAAQ,CAAC;AAAA,EAC1G;AACA,SAAO;AACR;AAEO,IAAM,eAAe,YAAY,QAAQ;AAEzC,IAAM,gBAAgB;",
|
|
6
|
-
"names": ["pill"]
|
|
7
|
-
}
|