@sjcrh/proteinpaint-client 2.74.2 → 2.76.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-b2d78c57.js → 2dmaf-74b99126.js} +1 -1
- package/dist/AppHeader-cecb39c2.js +1 -0
- package/dist/{ColorScale-9c76aef3.js → ColorScale-21cab8d2.js} +1 -1
- package/dist/DEanalysis-95bad59a.js +1 -0
- package/dist/Disco-a6e921a0.js +1 -0
- package/dist/Disco.UI-9ad999ed.js +1 -0
- package/dist/{DragControls-586f72db.js → DragControls-e3b6a937.js} +1 -1
- package/dist/{DziViewer-6311327c.js → DziViewer-354a790d.js} +1 -1
- package/dist/FilterRxComp-701a1480.js +1 -0
- package/dist/{FilterStateless-046081c2.js → FilterStateless-54c0b763.js} +1 -1
- package/dist/{HicApp-40e44cba.js → HicApp-d5a946bf.js} +1 -1
- package/dist/{OrbitControls-0cda1772.js → OrbitControls-694652cd.js} +1 -1
- package/dist/WSIViewer-dc7f8eb0.js +1 -0
- package/dist/adSandbox-f438e388.js +1 -0
- package/dist/app-3320ab6f.js +1 -0
- package/dist/app-649f8357.js +1 -0
- package/dist/app-b369b169.js +1 -0
- package/dist/app.js +1 -1
- package/dist/bam-431875ef.js +1 -0
- package/dist/barchart-8277ed43.js +1 -0
- package/dist/barchart.events-da29c90d.js +1 -0
- package/dist/{bars.renderer-5f7a4174.js → bars.renderer-dcfdd59b.js} +1 -1
- package/dist/block-6aedd569.js +1 -0
- package/dist/block.lazyload-87b12654.js +1 -0
- package/dist/block.legend-d3f61ef7.js +1 -0
- package/dist/{block.mds-effc078d.js → block.mds-3ad17dfa.js} +1 -1
- package/dist/{block.mds.cnv-ec861a26.js → block.mds.cnv-857ba868.js} +1 -1
- package/dist/{block.mds.expressionrank-a2ad7c80.js → block.mds.expressionrank-7e3b208c.js} +1 -1
- package/dist/{block.mds.expressionstat-31dc5595.js → block.mds.expressionstat-f2d31c86.js} +1 -1
- package/dist/{block.mds.geneboxplot-3ca857ce.js → block.mds.geneboxplot-f0fbaf12.js} +1 -1
- package/dist/{block.mds.junction-debba938.js → block.mds.junction-7f87f48f.js} +1 -1
- package/dist/{block.mds.svcnv-8dc5abdf.js → block.mds.svcnv-ac035c12.js} +1 -1
- package/dist/{block.mds.svcnv.share-81e62600.js → block.mds.svcnv.share-886d9479.js} +1 -1
- package/dist/block.mds2-7852c1ee.js +1 -0
- package/dist/{block.svg-9121e8e7.js → block.svg-9b916fa6.js} +1 -1
- package/dist/{block.tk.aicheck-c1b478e9.js → block.tk.aicheck-6770e333.js} +1 -1
- package/dist/{block.tk.ase-0f6ded48.js → block.tk.ase-ee807e59.js} +1 -1
- package/dist/{block.tk.bam-7cd06aee.js → block.tk.bam-00fba6e8.js} +1 -1
- package/dist/{block.tk.bedgraphdot-3ef8b94e.js → block.tk.bedgraphdot-7fda78e9.js} +1 -1
- package/dist/{block.tk.bigwig.ui-d1248810.js → block.tk.bigwig.ui-cc1a42f3.js} +1 -1
- package/dist/{block.tk.hicstraw-ee731e55.js → block.tk.hicstraw-526470e3.js} +1 -1
- package/dist/{block.tk.junction-4d8cab4d.js → block.tk.junction-b43a4cda.js} +1 -1
- package/dist/{block.tk.junction.textmatrixui-a6430b27.js → block.tk.junction.textmatrixui-a60ed78a.js} +1 -1
- package/dist/{block.tk.ld-8429a18b.js → block.tk.ld-d15bde41.js} +1 -1
- package/dist/{block.tk.menu-3f31f958.js → block.tk.menu-3aeb93c6.js} +1 -1
- package/dist/{block.tk.pgv-07e46705.js → block.tk.pgv-9af2bd64.js} +1 -1
- package/dist/boxplot-e17a17b7.js +1 -0
- package/dist/brainImaging-bf2ceee9.js +1 -0
- package/dist/{brush-c386fe3d.js → brush-aa175142.js} +1 -1
- package/dist/categorical-a52014a1.js +1 -0
- package/dist/condition-c646e357.js +1 -0
- package/dist/controls-287e6efa.js +1 -0
- package/dist/{controls.btns-1cb2bfab.js → controls.btns-79b805dd.js} +1 -1
- package/dist/controls.config-28d6d6a8.js +1 -0
- package/dist/cuminc-9e275854.js +1 -0
- package/dist/{customdata.inputui-cbd712ea.js → customdata.inputui-dc49d94b.js} +1 -1
- package/dist/dataDownload-3a3d4f33.js +1 -0
- package/dist/databrowser.ui-d8d3f8fd.js +1 -0
- package/dist/{density-19266ebf.js → density-a82a8b1c.js} +1 -1
- package/dist/dictionary-c5a19d90.js +1 -0
- package/dist/{drag-0b968811.js → drag-7b30ba17.js} +1 -1
- package/dist/{e2pca-b8752945.js → e2pca-82765817.js} +1 -1
- package/dist/{ep-a86b185a.js → ep-d017ec2f.js} +1 -1
- package/dist/facet-a9b44ef3.js +1 -0
- package/dist/{fusion.parse-244b2b97.js → fusion.parse-d40d0b9d.js} +1 -1
- package/dist/geneExpClustering-34c3f518.js +1 -0
- package/dist/geneExpression-0d1b7244.js +1 -0
- package/dist/{geneExpression-e0430f2e.js → geneExpression-589f485b.js} +1 -1
- package/dist/{geneExpression-387205bf.js → geneExpression-7d14983f.js} +1 -1
- package/dist/geneORA-903a780f.js +1 -0
- package/dist/{geneVariant-7de021b6.js → geneVariant-89601b34.js} +1 -1
- package/dist/geneVariant-92c4e870.js +1 -0
- package/dist/{genefusion.ui-a331de19.js → genefusion.ui-7e22e811.js} +1 -1
- package/dist/{genesearch-ea59f5d4.js → genesearch-a4e19f0d.js} +1 -1
- package/dist/geneset-108a39d2.js +1 -0
- package/dist/genomeBrowser-12f86a36.js +1 -0
- package/dist/genomeBrowser.controls-d5067811.js +1 -0
- package/dist/{groupsetting-20ffef77.js → groupsetting-b4416a96.js} +1 -1
- package/dist/gsea-543dab25.js +1 -0
- package/dist/hierCluster-26e14090.js +1 -0
- package/dist/hierCluster.config-98e82dff.js +1 -0
- package/dist/{hierCluster.interactivity-9b433033.js → hierCluster.interactivity-e56f6542.js} +1 -1
- package/dist/hierCluster.renderers-74a64cf5.js +1 -0
- package/dist/{html.legend-abb5452e.js → html.legend-a3f4ebfe.js} +1 -1
- package/dist/imagePlot-b9eae4ae.js +1 -0
- package/dist/{lasso-55cf4057.js → lasso-f767f634.js} +1 -1
- package/dist/launch.adhoc-abca6af3.js +1 -0
- package/dist/leftlabel.sample-24c2388d.js +1 -0
- package/dist/legacyDataset-e0e201ab.js +1 -0
- package/dist/{log-cf45fcf2.js → log-99af3443.js} +1 -1
- package/dist/{lollipop-c5b6e615.js → lollipop-806f8fa4.js} +1 -1
- package/dist/{maf-7535f1f9.js → maf-b06579e4.js} +1 -1
- package/dist/{maftimeline-1292ab62.js → maftimeline-4840a380.js} +1 -1
- package/dist/matrix-00bb50ff.js +1 -0
- package/dist/matrix.cells-914dd0c6.js +1 -0
- package/dist/{matrix.cluster-168bc96b.js → matrix.cluster-783ceab0.js} +1 -1
- package/dist/matrix.config-6ce74dfe.js +1 -0
- package/dist/matrix.controls-7b2a6f95.js +1 -0
- package/dist/{matrix.data-b1d0febe.js → matrix.data-dac4f1b7.js} +1 -1
- package/dist/{matrix.dom-00defa30.js → matrix.dom-4e10bbe9.js} +1 -1
- package/dist/matrix.groups-b9fca14a.js +1 -0
- package/dist/matrix.interactivity-84169b43.js +1 -0
- package/dist/{matrix.layout-c2345231.js → matrix.layout-dd5a44fd.js} +1 -1
- package/dist/matrix.legend-ac6d45e6.js +1 -0
- package/dist/matrix.renderers-78010275.js +1 -0
- package/dist/matrix.serieses-9b4fd744.js +1 -0
- package/dist/matrix.sort-014d798d.js +1 -0
- package/dist/{matrix.sorterUi-a741ba2e.js → matrix.sorterUi-9bf7e6f9.js} +1 -1
- package/dist/{mavb-92136d17.js → mavb-c6be46fc.js} +1 -1
- package/dist/{mds.fimo-c03115b4.js → mds.fimo-bff6a1ed.js} +1 -1
- package/dist/mds.samplescatterplot-9a02b9fb.js +1 -0
- package/dist/{mds.survivalplot-366db380.js → mds.survivalplot-055549f4.js} +1 -1
- package/dist/{metaboliteIntensity-ddb6e480.js → metaboliteIntensity-fac92f8b.js} +1 -1
- package/dist/niceNumLabels-238aabce.js +1 -0
- package/dist/{nodrag-2c046d31.js → nodrag-16ad4b03.js} +1 -1
- package/dist/{notify-44ebc0df.js → notify-224cccbd.js} +1 -1
- package/dist/{numeric-918d4686.js → numeric-b0b17185.js} +1 -1
- package/dist/numeric.binary-1f9e93f2.js +1 -0
- package/dist/numeric.continuous-ebcd0567.js +1 -0
- package/dist/numeric.discrete-7b97044a.js +1 -0
- package/dist/numeric.spline-1be88f3d.js +1 -0
- package/dist/numeric.toggle-7fa2a770.js +1 -0
- package/dist/oncomatrix-351af2a0.js +1 -0
- package/dist/{parseData-e66308cd.js → parseData-21fe9822.js} +1 -1
- package/dist/partjson.esm-b3f1fc21.js +1 -0
- package/dist/{plot.2dvaf-73dbfbd1.js → plot.2dvaf-18a35e4b.js} +1 -1
- package/dist/plot.app-30c4b8e5.js +1 -0
- package/dist/plot.barplot-7c4865a2.js +1 -0
- package/dist/{plot.boxplot-641da058.js → plot.boxplot-fe3046c6.js} +1 -1
- package/dist/plot.brainImaging-2ceb6023.js +1 -0
- package/dist/plot.disco-6011f87f.js +1 -0
- package/dist/{plot.dzi-41ea26e5.js → plot.dzi-6728a7c8.js} +1 -1
- package/dist/plot.ssgq-5581dc56.js +1 -0
- package/dist/{plot.vaf2cov-80e58833.js → plot.vaf2cov-b2284c64.js} +1 -1
- package/dist/{plot.wsi-51cc48ef.js → plot.wsi-9a9d4034.js} +1 -1
- package/dist/profileBarchart-0476f1f8.js +1 -0
- package/dist/profileHome-32eb9b50.js +1 -0
- package/dist/profilePlot-c7e099e8.js +1 -0
- package/dist/profilePolar-6b981e63.js +1 -0
- package/dist/profileRadar-bca1cc03.js +1 -0
- package/dist/profileRadarFacility-bbb1ecd8.js +1 -0
- package/dist/profileSummary-b114204f.js +1 -0
- package/dist/recover-49e09de0.js +1 -0
- package/dist/regression.inputs-a761f40d.js +1 -0
- package/dist/regression.inputs.values.table-5929d25a.js +1 -0
- package/dist/regression.results-69bc42d0.js +1 -0
- package/dist/{renderPvalueTable-895a72c2.js → renderPvalueTable-dc5d15f2.js} +1 -1
- package/dist/sampleScatter-2d0ed680.js +1 -0
- package/dist/{sampleScatter.rendererThree-5e686004.js → sampleScatter.rendererThree-0b12ac61.js} +2 -2
- package/dist/sampleView-484ab133.js +1 -0
- package/dist/samplelst-689796e6.js +1 -0
- package/dist/{samplematrix-2a1d7d82.js → samplematrix-2b137a05.js} +1 -1
- package/dist/scatter-205e013f.js +1 -0
- package/dist/{select2Terms-b4fffc50.js → select2Terms-b21e184a.js} +1 -1
- package/dist/{selectGenomeWithTklst-acf7e568.js → selectGenomeWithTklst-466995b4.js} +1 -1
- package/dist/singleCellCellType-5db730bb.js +1 -0
- package/dist/{singleCellGeneExpression-6de17162.js → singleCellGeneExpression-7147a2d0.js} +1 -1
- package/dist/singleCellPlot-73b2738f.js +1 -0
- package/dist/{singlecell-f76c856a.js → singlecell-24409b72.js} +1 -1
- package/dist/singlecell-bca774ed.js +1 -0
- package/dist/{snp-9590a1b4.js → snp-37d06246.js} +1 -1
- package/dist/snp-a8388ce4.js +1 -0
- package/dist/snplocus-7a1ea8c9.js +1 -0
- package/dist/{snplst-007a1926.js → snplst-6865d7c7.js} +1 -1
- package/dist/{spliceevent.a53ss.diagram-63dfef69.js → spliceevent.a53ss.diagram-e2eab72b.js} +1 -1
- package/dist/{spliceevent.exonskip.diagram-76fa9af8.js → spliceevent.exonskip.diagram-4d5df3a1.js} +1 -1
- package/dist/spliceevent.exonskip.getdefault-a94aad6e.js +1 -0
- package/dist/{spliceevent.noeventdiagram-64a099e0.js → spliceevent.noeventdiagram-ea97b0fb.js} +1 -1
- package/dist/{spliceevent.phrase-770c8cac.js → spliceevent.phrase-c5832470.js} +1 -1
- package/dist/{stattable-f1189f0f.js → stattable-7c5ecc2f.js} +1 -1
- package/dist/{style.gdc-89cfdb0f.js → style.gdc-131f3c77.js} +1 -1
- package/dist/summary-5ec455d3.js +1 -0
- package/dist/{sunburst-d5379952.js → sunburst-533902a7.js} +1 -1
- package/dist/survival-92250664.js +1 -0
- package/dist/survival-e16e068f.js +1 -0
- package/dist/{svg.download-86850940.js → svg.download-35926549.js} +1 -1
- package/dist/{svg.legend-a94b0697.js → svg.legend-8d490df2.js} +1 -1
- package/dist/{svgraph-c57b9ae3.js → svgraph-6fac8cbc.js} +1 -1
- package/dist/{svmr-cf6f1b27.js → svmr-d07ff695.js} +1 -1
- package/dist/table-29d5a973.js +1 -0
- package/dist/table-ad744310.js +1 -0
- package/dist/termInfo-bf99a37e.js +1 -0
- package/dist/{termdb.bins-9faa5170.js → termdb.bins-8b656cc3.js} +1 -1
- package/dist/termsetting-33ea66f1.js +1 -0
- package/dist/tk-071a7550.js +1 -0
- package/dist/{toggleButtons-002aeda1.js → toggleButtons-dbdbad01.js} +1 -1
- package/dist/tp.ui-9c2e9fc5.js +1 -0
- package/dist/tslib.es6-c3c2d88f.js +1 -0
- package/dist/tvs.density-f6128793.js +1 -0
- package/dist/{tvs.geneVariant-3a65ad94.js → tvs.geneVariant-ca4bdbb1.js} +1 -1
- package/dist/tvs.numeric-0260a825.js +1 -0
- package/dist/{tvs.samplelst-1eeb586b.js → tvs.samplelst-cb71b3bf.js} +1 -1
- package/dist/{uiUtils-1336bad7.js → uiUtils-f1bd2bcc.js} +1 -1
- package/dist/{variantBrowser-f0c812c1.js → variantBrowser-7c540224.js} +1 -1
- package/dist/{vcf-c4a23924.js → vcf-5cc55588.js} +1 -1
- package/dist/violin-2ba509eb.js +1 -0
- package/dist/violin.interactivity-4da6d7a9.js +1 -0
- package/dist/{violin.renderer-dafd89fa.js → violin.renderer-ce024265.js} +1 -1
- package/dist/{violinRenderer-8215f40d.js → violinRenderer-f7c96a60.js} +1 -1
- package/dist/{viridis-ffd14c4d.js → viridis-01ab20c5.js} +1 -1
- package/dist/{y-dd197cc9.js → y-67939f83.js} +1 -1
- package/dist/{zoom-9c63e74c.js → zoom-25dce8b9.js} +1 -1
- package/package.json +6 -4
- package/dist/AppHeader-a2a7e518.js +0 -1
- package/dist/DEanalysis-a6b50e49.js +0 -1
- package/dist/Disco-1c71b7dd.js +0 -1
- package/dist/Disco.UI-4c16ee50.js +0 -1
- package/dist/FilterRxComp-242f4615.js +0 -1
- package/dist/WSIViewer-d90032d7.js +0 -1
- package/dist/adSandbox-3528c372.js +0 -1
- package/dist/app-07dee349.js +0 -1
- package/dist/app-a8c4854a.js +0 -1
- package/dist/app-ade9c62a.js +0 -1
- package/dist/bam-92483a98.js +0 -1
- package/dist/barchart-3e69d094.js +0 -1
- package/dist/barchart.events-9b11d97e.js +0 -1
- package/dist/block-dcb130fb.js +0 -1
- package/dist/block.lazyload-9f031cac.js +0 -1
- package/dist/block.legend-b2987cd9.js +0 -1
- package/dist/block.mds2-de6e0986.js +0 -1
- package/dist/boxplot-1178fffc.js +0 -1
- package/dist/brainImaging-98ed7aa2.js +0 -1
- package/dist/categorical-26528ce8.js +0 -1
- package/dist/condition-b0d74550.js +0 -1
- package/dist/controls-0bacec22.js +0 -1
- package/dist/controls.config-0ccc9d79.js +0 -1
- package/dist/controls.divide-a9fe9466.js +0 -1
- package/dist/controls.overlay-fe20d41d.js +0 -1
- package/dist/controls.term1-faa2efcf.js +0 -1
- package/dist/cuminc-7e2cac2d.js +0 -1
- package/dist/dataDownload-ade8d840.js +0 -1
- package/dist/databrowser.ui-716f0519.js +0 -1
- package/dist/dictionary-3f83ce63.js +0 -1
- package/dist/facet-6850cfed.js +0 -1
- package/dist/geneExpClustering-7fd3c87e.js +0 -1
- package/dist/geneExpression-6462537d.js +0 -1
- package/dist/geneORA-7eb818c4.js +0 -1
- package/dist/geneVariant-b58e924a.js +0 -1
- package/dist/geneset-9f69ad3f.js +0 -1
- package/dist/genomeBrowser-1b2b83f7.js +0 -1
- package/dist/genomeBrowser.controls-cd8ddeb1.js +0 -1
- package/dist/gsea-36376589.js +0 -1
- package/dist/hierCluster-f1e30c19.js +0 -1
- package/dist/hierCluster.config-da3510b1.js +0 -1
- package/dist/hierCluster.renderers-610d8860.js +0 -1
- package/dist/imagePlot-7089bdff.js +0 -1
- package/dist/launch.adhoc-d229fd55.js +0 -1
- package/dist/leftlabel.sample-a919168c.js +0 -1
- package/dist/legacyDataset-1cbcb67d.js +0 -1
- package/dist/matrix-0614794d.js +0 -1
- package/dist/matrix.cells-819d4991.js +0 -1
- package/dist/matrix.config-c54ca273.js +0 -1
- package/dist/matrix.controls-5eca7822.js +0 -1
- package/dist/matrix.groups-4660dd70.js +0 -1
- package/dist/matrix.interactivity-23d83183.js +0 -1
- package/dist/matrix.legend-2e647224.js +0 -1
- package/dist/matrix.renderers-43445f4f.js +0 -1
- package/dist/matrix.serieses-972fbe5d.js +0 -1
- package/dist/matrix.sort-80d9b788.js +0 -1
- package/dist/mds.samplescatterplot-1623e6d0.js +0 -1
- package/dist/niceNumLabels-6cfc1508.js +0 -1
- package/dist/numeric.binary-80467e8b.js +0 -1
- package/dist/numeric.continuous-69a62a15.js +0 -1
- package/dist/numeric.discrete-86181905.js +0 -1
- package/dist/numeric.spline-1b07fd13.js +0 -1
- package/dist/numeric.toggle-37c4bee8.js +0 -1
- package/dist/oncomatrix-475271da.js +0 -1
- package/dist/plot.app-aa916e0e.js +0 -1
- package/dist/plot.barplot-8b440a2b.js +0 -1
- package/dist/plot.brainImaging-2f796b0c.js +0 -1
- package/dist/plot.disco-43e18d2f.js +0 -1
- package/dist/plot.ssgq-e49cb70b.js +0 -1
- package/dist/profileBarchart-91463ab6.js +0 -1
- package/dist/profileHome-d37a6821.js +0 -1
- package/dist/profilePlot-9ca577cb.js +0 -1
- package/dist/profilePolar-19c7da5b.js +0 -1
- package/dist/profileRadar-8bf094e3.js +0 -1
- package/dist/profileRadarFacility-f9fd8971.js +0 -1
- package/dist/profileSummary-93999c14.js +0 -1
- package/dist/recover-36ada47f.js +0 -1
- package/dist/regression.inputs-cb57ece6.js +0 -1
- package/dist/regression.inputs.values.table-908bb37a.js +0 -1
- package/dist/regression.results-c186a8dc.js +0 -1
- package/dist/roundValue-b0d0517c.js +0 -1
- package/dist/sampleScatter-9d5b3630.js +0 -1
- package/dist/sampleView-2d895023.js +0 -1
- package/dist/samplelst-9f8343ff.js +0 -1
- package/dist/scatter-b4992f64.js +0 -1
- package/dist/singleCellCellType-84a0c2cf.js +0 -1
- package/dist/singleCellPlot-2f2b8619.js +0 -1
- package/dist/singlecell-90567dde.js +0 -1
- package/dist/snp-79ec95ba.js +0 -1
- package/dist/snplocus-cb629be1.js +0 -1
- package/dist/spliceevent.exonskip.getdefault-31d2950c.js +0 -1
- package/dist/summary-b77bef3c.js +0 -1
- package/dist/survival-61ab375a.js +0 -1
- package/dist/survival-80a0ade9.js +0 -1
- package/dist/table-79e3e776.js +0 -1
- package/dist/table-eee91e14.js +0 -1
- package/dist/termInfo-f851b415.js +0 -1
- package/dist/tk-75566002.js +0 -1
- package/dist/tp.ui-02911b56.js +0 -1
- package/dist/tslib.es6-1f85f553.js +0 -1
- package/dist/tvs.density-026fca97.js +0 -1
- package/dist/tvs.numeric-3f3d9919.js +0 -1
- package/dist/violin-1515c3e6.js +0 -1
- package/dist/violin.interactivity-8e2f480d.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as e,n as t,b as n,j as s,p as i,q as o,M as a,v as r}from"./app-b369b169.js";import{a as c}from"./genesearch-a4e19f0d.js";import{T as l}from"./toggleButtons-dbdbad01.js";function d(e){const t=e.div.append("button").attr("type","submit").style("background-color",e.backgroundColor?e.backgroundColor:"#cfe2f3").style("margin",e.margin?e.margin:"20px 20px 0px 20px").style("padding","8px").style("border","none").style("border-radius","3px").style("display","inline-block").text(e.text);return t}class u{constructor(e){this.opts=e;this.dom={holder:e.holder,trailDiv:e.trailDiv||e.holder.append("div")};p(this)}async main(e={}){try{return await this.render()}catch(e){if(e.stack)console.log(e.stack);else throw e}}}function p(t){t.render=async()=>{t.crumbs=t.opts.crumbs;for(const e of t.crumbs){e.label=e.label||e.name;if(!e.inTrail)e.inTrail=false}const n=t.crumbs.find((e=>e.inTrail));if(!n)t.crumbs[0].inTrail=true;await t.dom.trailDiv.style("margin-left","5px").style("font-size",".75em").style("display","inline-block").classed("sjpp-breadcrumb-trail",true).selectAll("span").data(t.crumbs).enter().append("span").classed("sjpp-breadcrumb",true).html((e=>e.link?` > <a href="${e.link}">${e.label}</a>`:` > ${e.label}`)).style("display",(e=>e.inTrail?"inline-block":"none")).each((async function(t){t.div=e(this)}));const s=t.crumbs.findIndex((e=>e.inTrail));t.update(s)};t.update=(e=0)=>{t.crumbs.forEach(((t,n)=>{t.inTrail=e===n}));t.dom.trailDiv.selectAll("span").data(t.crumbs).each((async e=>{e.div.style("display",e.inTrail?"inline-block":"none")}))}}var g={exports:{}};function f(e){if(e instanceof Map){e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}}else if(e instanceof Set){e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}}Object.freeze(e);Object.getOwnPropertyNames(e).forEach((function(t){var n=e[t];if(typeof n=="object"&&!Object.isFrozen(n)){f(n)}}));return e}g.exports=f;g.exports.default=f;var h=g.exports;class b{constructor(e){if(e.data===undefined)e.data={};this.data=e.data;this.isMatchIgnored=false}ignoreMatch(){this.isMatchIgnored=true}}function m(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function y(e,...t){const n=Object.create(null);for(const t in e){n[t]=e[t]}t.forEach((function(e){for(const t in e){n[t]=e[t]}}));return n}const x="</span>";const w=e=>!!e.kind;const v=(e,{prefix:t})=>{if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")}return`${t}${e}`};class E{constructor(e,t){this.buffer="";this.classPrefix=t.classPrefix;e.walk(this)}addText(e){this.buffer+=m(e)}openNode(e){if(!w(e))return;let t=e.kind;if(e.sublanguage){t=`language-${t}`}else{t=v(t,{prefix:this.classPrefix})}this.span(t)}closeNode(e){if(!w(e))return;this.buffer+=x}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}}class k{constructor(){this.rootNode={children:[]};this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t={kind:e,children:[]};this.add(t);this.stack.push(t)}closeNode(){if(this.stack.length>1){return this.stack.pop()}return undefined}closeAllNodes(){while(this.closeNode());}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){if(typeof t==="string"){e.addText(t)}else if(t.children){e.openNode(t);t.children.forEach((t=>this._walk(e,t)));e.closeNode(t)}return e}static _collapse(e){if(typeof e==="string")return;if(!e.children)return;if(e.children.every((e=>typeof e==="string"))){e.children=[e.children.join("")]}else{e.children.forEach((e=>{k._collapse(e)}))}}}class _ extends k{constructor(e){super();this.options=e}addKeyword(e,t){if(e===""){return}this.openNode(t);this.addText(e);this.closeNode()}addText(e){if(e===""){return}this.add(e)}addSublanguage(e,t){const n=e.root;n.kind=t;n.sublanguage=true;this.add(n)}toHTML(){const e=new E(this,this.options);return e.value()}finalize(){return true}}function N(e){if(!e)return null;if(typeof e==="string")return e;return e.source}function S(e){return O("(?=",e,")")}function O(...e){const t=e.map((e=>N(e))).join("");return t}function $(e){const t=e[e.length-1];if(typeof t==="object"&&t.constructor===Object){e.splice(e.length-1,1);return t}else{return{}}}function R(...e){const t=$(e);const n="("+(t.capture?"":"?:")+e.map((e=>N(e))).join("|")+")";return n}function A(e){return new RegExp(e.toString()+"|").exec("").length-1}function j(e,t){const n=e&&e.exec(t);return n&&n.index===0}const I=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function M(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n;let s=N(e);let i="";while(s.length>0){const e=I.exec(s);if(!e){i+=s;break}i+=s.substring(0,e.index);s=s.substring(e.index+e[0].length);if(e[0][0]==="\\"&&e[1]){i+="\\"+String(Number(e[1])+t)}else{i+=e[0];if(e[0]==="("){n++}}}return i})).map((e=>`(${e})`)).join(t)}const T=/\b\B/;const B="[a-zA-Z]\\w*";const L="[a-zA-Z_]\\w*";const D="\\b\\d+(\\.\\d+)?";const C="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";const U="\\b(0b[01]+)";const P="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";const H=(e={})=>{const t=/^#![ ]*\//;if(e.binary){e.begin=O(t,/.*\b/,e.binary,/\b.*/)}return y({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{if(e.index!==0)t.ignoreMatch()}},e)};const z={begin:"\\\\[\\s\\S]",relevance:0};const G={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[z]};const J={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[z]};const K={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/};const Z=function(e,t,n={}){const s=y({scope:"comment",begin:e,end:t,contains:[]},n);s.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:true,relevance:0});const i=R("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);s.contains.push({begin:O(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")});return s};const F=Z("//","$");const W=Z("/\\*","\\*/");const X=Z("#","$");const q={scope:"number",begin:D,relevance:0};const V={scope:"number",begin:C,relevance:0};const Q={scope:"number",begin:U,relevance:0};const Y={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[z,{begin:/\[/,end:/\]/,relevance:0,contains:[z]}]}]};const ee={scope:"title",begin:B,relevance:0};const te={scope:"title",begin:L,relevance:0};const ne={begin:"\\.\\s*"+L,relevance:0};const se=function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{if(t.data._beginMatch!==e[1])t.ignoreMatch()}})};var ie=Object.freeze({__proto__:null,MATCH_NOTHING_RE:T,IDENT_RE:B,UNDERSCORE_IDENT_RE:L,NUMBER_RE:D,C_NUMBER_RE:C,BINARY_NUMBER_RE:U,RE_STARTERS_RE:P,SHEBANG:H,BACKSLASH_ESCAPE:z,APOS_STRING_MODE:G,QUOTE_STRING_MODE:J,PHRASAL_WORDS_MODE:K,COMMENT:Z,C_LINE_COMMENT_MODE:F,C_BLOCK_COMMENT_MODE:W,HASH_COMMENT_MODE:X,NUMBER_MODE:q,C_NUMBER_MODE:V,BINARY_NUMBER_MODE:Q,REGEXP_MODE:Y,TITLE_MODE:ee,UNDERSCORE_TITLE_MODE:te,METHOD_GUARD:ne,END_SAME_AS_BEGIN:se});function oe(e,t){const n=e.input[e.index-1];if(n==="."){t.ignoreMatch()}}function ae(e,t){if(e.className!==undefined){e.scope=e.className;delete e.className}}function re(e,t){if(!t)return;if(!e.beginKeywords)return;e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)";e.__beforeBegin=oe;e.keywords=e.keywords||e.beginKeywords;delete e.beginKeywords;if(e.relevance===undefined)e.relevance=0}function ce(e,t){if(!Array.isArray(e.illegal))return;e.illegal=R(...e.illegal)}function le(e,t){if(!e.match)return;if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match;delete e.match}function de(e,t){if(e.relevance===undefined)e.relevance=1}const ue=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]}));e.keywords=n.keywords;e.begin=O(n.beforeMatch,S(n.begin));e.starts={relevance:0,contains:[Object.assign(n,{endsParent:true})]};e.relevance=0;delete n.beforeMatch};const pe=["of","and","for","in","not","or","if","then","parent","list","value"];const ge="keyword";function fe(e,t,n=ge){const s=Object.create(null);if(typeof e==="string"){i(n,e.split(" "))}else if(Array.isArray(e)){i(n,e)}else{Object.keys(e).forEach((function(n){Object.assign(s,fe(e[n],t,n))}))}return s;function i(e,n){if(t){n=n.map((e=>e.toLowerCase()))}n.forEach((function(t){const n=t.split("|");s[n[0]]=[e,he(n[0],n[1])]}))}}function he(e,t){if(t){return Number(t)}return be(e)?0:1}function be(e){return pe.includes(e.toLowerCase())}const me={};const ye=e=>{console.error(e)};const xe=(e,...t)=>{console.log(`WARN: ${e}`,...t)};const we=(e,t)=>{if(me[`${e}/${t}`])return;console.log(`Deprecated as of ${e}. ${t}`);me[`${e}/${t}`]=true};const ve=new Error;function Ee(e,t,{key:n}){let s=0;const i=e[n];const o={};const a={};for(let e=1;e<=t.length;e++){a[e+s]=i[e];o[e+s]=true;s+=A(t[e-1])}e[n]=a;e[n]._emit=o;e[n]._multi=true}function ke(e){if(!Array.isArray(e.begin))return;if(e.skip||e.excludeBegin||e.returnBegin){ye("skip, excludeBegin, returnBegin not compatible with beginScope: {}");throw ve}if(typeof e.beginScope!=="object"||e.beginScope===null){ye("beginScope must be object");throw ve}Ee(e,e.begin,{key:"beginScope"});e.begin=M(e.begin,{joinWith:""})}function _e(e){if(!Array.isArray(e.end))return;if(e.skip||e.excludeEnd||e.returnEnd){ye("skip, excludeEnd, returnEnd not compatible with endScope: {}");throw ve}if(typeof e.endScope!=="object"||e.endScope===null){ye("endScope must be object");throw ve}Ee(e,e.end,{key:"endScope"});e.end=M(e.end,{joinWith:""})}function Ne(e){if(e.scope&&typeof e.scope==="object"&&e.scope!==null){e.beginScope=e.scope;delete e.scope}}function Se(e){Ne(e);if(typeof e.beginScope==="string"){e.beginScope={_wrap:e.beginScope}}if(typeof e.endScope==="string"){e.endScope={_wrap:e.endScope}}ke(e);_e(e)}function Oe(e){function t(t,n){return new RegExp(N(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}class n{constructor(){this.matchIndexes={};this.regexes=[];this.matchAt=1;this.position=0}addRule(e,t){t.position=this.position++;this.matchIndexes[this.matchAt]=t;this.regexes.push([t,e]);this.matchAt+=A(e)+1}compile(){if(this.regexes.length===0){this.exec=()=>null}const e=this.regexes.map((e=>e[1]));this.matcherRe=t(M(e,{joinWith:"|"}),true);this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t){return null}const n=t.findIndex(((e,t)=>t>0&&e!==undefined));const s=this.matchIndexes[n];t.splice(0,n);return Object.assign(t,s)}}class s{constructor(){this.rules=[];this.multiRegexes=[];this.count=0;this.lastIndex=0;this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n;this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n)));t.compile();this.multiRegexes[e]=t;return t}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]);if(t.type==="begin")this.count++}exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition()){if(n&&n.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1;n=t.exec(e)}}if(n){this.regexIndex+=n.position+1;if(this.regexIndex===this.count){this.considerAll()}}return n}}function i(e){const t=new s;e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"})));if(e.terminatorEnd){t.addRule(e.terminatorEnd,{type:"end"})}if(e.illegal){t.addRule(e.illegal,{type:"illegal"})}return t}function o(n,s){const a=n;if(n.isCompiled)return a;[ae,le,Se,ue].forEach((e=>e(n,s)));e.compilerExtensions.forEach((e=>e(n,s)));n.__beforeBegin=null;[re,ce,de].forEach((e=>e(n,s)));n.isCompiled=true;let r=null;if(typeof n.keywords==="object"&&n.keywords.$pattern){n.keywords=Object.assign({},n.keywords);r=n.keywords.$pattern;delete n.keywords.$pattern}r=r||/\w+/;if(n.keywords){n.keywords=fe(n.keywords,e.case_insensitive)}a.keywordPatternRe=t(r,true);if(s){if(!n.begin)n.begin=/\B|\b/;a.beginRe=t(n.begin);if(!n.end&&!n.endsWithParent)n.end=/\B|\b/;if(n.end)a.endRe=t(n.end);a.terminatorEnd=N(n.end)||"";if(n.endsWithParent&&s.terminatorEnd){a.terminatorEnd+=(n.end?"|":"")+s.terminatorEnd}}if(n.illegal)a.illegalRe=t(n.illegal);if(!n.contains)n.contains=[];n.contains=[].concat(...n.contains.map((function(e){return Re(e==="self"?n:e)})));n.contains.forEach((function(e){o(e,a)}));if(n.starts){o(n.starts,s)}a.matcher=i(a);return a}if(!e.compilerExtensions)e.compilerExtensions=[];if(e.contains&&e.contains.includes("self")){throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.")}e.classNameAliases=y(e.classNameAliases||{});return o(e)}function $e(e){if(!e)return false;return e.endsWithParent||$e(e.starts)}function Re(e){if(e.variants&&!e.cachedVariants){e.cachedVariants=e.variants.map((function(t){return y(e,{variants:null},t)}))}if(e.cachedVariants){return e.cachedVariants}if($e(e)){return y(e,{starts:e.starts?y(e.starts):null})}if(Object.isFrozen(e)){return y(e)}return e}var Ae="11.2.0";const je=m;const Ie=y;const Me=Symbol("nomatch");const Te=7;const Be=function(e){const t=Object.create(null);const n=Object.create(null);const s=[];let i=true;const o="Could not find the language '{}', did you forget to load/include a language module?";const a={disableAutodetect:true,name:"Plain text",contains:[]};let r={ignoreUnescapedHTML:false,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:_};function c(e){return r.noHighlightRe.test(e)}function l(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const n=r.languageDetectRe.exec(t);if(n){const t=$(n[1]);if(!t){xe(o.replace("{}",n[1]));xe("Falling back to no-highlight mode for this block.",e)}return t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>c(e)||$(e)))}function d(e,t,n){let s="";let i="";if(typeof t==="object"){s=e;n=t.ignoreIllegals;i=t.language}else{we("10.7.0","highlight(lang, code, ...args) has been deprecated.");we("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277");i=e;s=t}if(n===undefined){n=true}const o={code:s,language:i};T("before:highlight",o);const a=o.result?o.result:u(o.language,o.code,n);a.code=o.code;T("after:highlight",a);return a}function u(e,n,s,a){const c=Object.create(null);function l(e,t){return e.keywords[t]}function d(){if(!R.keywords){I.addText(M);return}let e=0;R.keywordPatternRe.lastIndex=0;let t=R.keywordPatternRe.exec(M);let n="";while(t){n+=M.substring(e,t.index);const s=N.case_insensitive?t[0].toLowerCase():t[0];const i=l(R,s);if(i){const[e,o]=i;I.addText(n);n="";c[s]=(c[s]||0)+1;if(c[s]<=Te)T+=o;if(e.startsWith("_")){n+=t[0]}else{const n=N.classNameAliases[e]||e;I.addKeyword(t[0],n)}}else{n+=t[0]}e=R.keywordPatternRe.lastIndex;t=R.keywordPatternRe.exec(M)}n+=M.substr(e);I.addText(n)}function p(){if(M==="")return;let e=null;if(typeof R.subLanguage==="string"){if(!t[R.subLanguage]){I.addText(M);return}e=u(R.subLanguage,M,true,A[R.subLanguage]);A[R.subLanguage]=e._top}else{e=g(M,R.subLanguage.length?R.subLanguage:null)}if(R.relevance>0){T+=e.relevance}I.addSublanguage(e._emitter,e.language)}function f(){if(R.subLanguage!=null){p()}else{d()}M=""}function h(e,t){let n=1;while(t[n]!==undefined){if(!e._emit[n]){n++;continue}const s=N.classNameAliases[e[n]]||e[n];const i=t[n];if(s){I.addKeyword(i,s)}else{M=i;d();M=""}n++}}function m(e,t){if(e.scope&&typeof e.scope==="string"){I.openNode(N.classNameAliases[e.scope]||e.scope)}if(e.beginScope){if(e.beginScope._wrap){I.addKeyword(M,N.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap);M=""}else if(e.beginScope._multi){h(e.beginScope,t);M=""}}R=Object.create(e,{parent:{value:R}});return R}function y(e,t,n){let s=j(e.endRe,n);if(s){if(e["on:end"]){const n=new b(e);e["on:end"](t,n);if(n.isMatchIgnored)s=false}if(s){while(e.endsParent&&e.parent){e=e.parent}return e}}if(e.endsWithParent){return y(e.parent,t,n)}}function x(e){if(R.matcher.regexIndex===0){M+=e[0];return 1}else{D=true;return 0}}function w(e){const t=e[0];const n=e.rule;const s=new b(n);const i=[n.__beforeBegin,n["on:begin"]];for(const n of i){if(!n)continue;n(e,s);if(s.isMatchIgnored)return x(t)}if(n.skip){M+=t}else{if(n.excludeBegin){M+=t}f();if(!n.returnBegin&&!n.excludeBegin){M=t}}m(n,e);return n.returnBegin?0:t.length}function v(e){const t=e[0];const s=n.substr(e.index);const i=y(R,e,s);if(!i){return Me}const o=R;if(R.endScope&&R.endScope._wrap){f();I.addKeyword(t,R.endScope._wrap)}else if(R.endScope&&R.endScope._multi){f();h(R.endScope,e)}else if(o.skip){M+=t}else{if(!(o.returnEnd||o.excludeEnd)){M+=t}f();if(o.excludeEnd){M=t}}do{if(R.scope){I.closeNode()}if(!R.skip&&!R.subLanguage){T+=R.relevance}R=R.parent}while(R!==i.parent);if(i.starts){m(i.starts,e)}return o.returnEnd?0:t.length}function E(){const e=[];for(let t=R;t!==N;t=t.parent){if(t.scope){e.unshift(t.scope)}}e.forEach((e=>I.openNode(e)))}let k={};function _(t,o){const a=o&&o[0];M+=t;if(a==null){f();return 0}if(k.type==="begin"&&o.type==="end"&&k.index===o.index&&a===""){M+=n.slice(o.index,o.index+1);if(!i){const t=new Error(`0 width match regex (${e})`);t.languageName=e;t.badRule=k.rule;throw t}return 1}k=o;if(o.type==="begin"){return w(o)}else if(o.type==="illegal"&&!s){const e=new Error('Illegal lexeme "'+a+'" for mode "'+(R.scope||"<unnamed>")+'"');e.mode=R;throw e}else if(o.type==="end"){const e=v(o);if(e!==Me){return e}}if(o.type==="illegal"&&a===""){return 1}if(L>1e5&&L>o.index*3){const e=new Error("potential infinite loop, way more iterations than matches");throw e}M+=a;return a.length}const N=$(e);if(!N){ye(o.replace("{}",e));throw new Error('Unknown language: "'+e+'"')}const S=Oe(N);let O="";let R=a||S;const A={};const I=new r.__emitter(r);E();let M="";let T=0;let B=0;let L=0;let D=false;try{R.matcher.considerAll();for(;;){L++;if(D){D=false}else{R.matcher.considerAll()}R.matcher.lastIndex=B;const e=R.matcher.exec(n);if(!e)break;const t=n.substring(B,e.index);const s=_(t,e);B=e.index+s}_(n.substr(B));I.closeAllNodes();I.finalize();O=I.toHTML();return{language:e,value:O,relevance:T,illegal:false,_emitter:I,_top:R}}catch(t){if(t.message&&t.message.includes("Illegal")){return{language:e,value:je(n),illegal:true,relevance:0,_illegalBy:{message:t.message,index:B,context:n.slice(B-100,B+100),mode:t.mode,resultSoFar:O},_emitter:I}}else if(i){return{language:e,value:je(n),illegal:false,relevance:0,errorRaised:t,_emitter:I,_top:R}}else{throw t}}}function p(e){const t={value:je(e),illegal:false,relevance:0,_top:a,_emitter:new r.__emitter(r)};t._emitter.addText(e);return t}function g(e,n){n=n||r.languages||Object.keys(t);const s=p(e);const i=n.filter($).filter(A).map((t=>u(t,e,false)));i.unshift(s);const o=i.sort(((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if($(e.language).supersetOf===t.language){return 1}else if($(t.language).supersetOf===e.language){return-1}}return 0}));const[a,c]=o;const l=a;l.secondBest=c;return l}function f(e,t,s){const i=t&&n[t]||s;e.classList.add("hljs");e.classList.add(`language-${i}`)}function m(e){let t=null;const n=l(e);if(c(n))return;T("before:highlightElement",{el:e,language:n});if(!r.ignoreUnescapedHTML&&e.children.length>0){console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk.");console.warn("https://github.com/highlightjs/highlight.js/issues/2886");console.warn(e)}t=e;const s=t.textContent;const i=n?d(s,{language:n,ignoreIllegals:true}):g(s);e.innerHTML=i.value;f(e,n,i.language);e.result={language:i.language,re:i.relevance,relevance:i.relevance};if(i.secondBest){e.secondBest={language:i.secondBest.language,relevance:i.secondBest.relevance}}T("after:highlightElement",{el:e,result:i,text:s})}function y(e){r=Ie(r,e)}const x=()=>{E();we("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function w(){E();we("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let v=false;function E(){if(document.readyState==="loading"){v=true;return}const e=document.querySelectorAll(r.cssSelector);e.forEach(m)}function k(){if(v)E()}if(typeof window!=="undefined"&&window.addEventListener){window.addEventListener("DOMContentLoaded",k,false)}function N(n,s){let o=null;try{o=s(e)}catch(e){ye("Language definition for '{}' could not be registered.".replace("{}",n));if(!i){throw e}else{ye(e)}o=a}if(!o.name)o.name=n;t[n]=o;o.rawDefinition=s.bind(null,e);if(o.aliases){R(o.aliases,{languageName:n})}}function S(e){delete t[e];for(const t of Object.keys(n)){if(n[t]===e){delete n[t]}}}function O(){return Object.keys(t)}function $(e){e=(e||"").toLowerCase();return t[e]||t[n[e]]}function R(e,{languageName:t}){if(typeof e==="string"){e=[e]}e.forEach((e=>{n[e.toLowerCase()]=t}))}function A(e){const t=$(e);return t&&!t.disableAutodetect}function I(e){if(e["before:highlightBlock"]&&!e["before:highlightElement"]){e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t))}}if(e["after:highlightBlock"]&&!e["after:highlightElement"]){e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t))}}}function M(e){I(e);s.push(e)}function T(e,t){const n=e;s.forEach((function(e){if(e[n]){e[n](t)}}))}function B(e){we("10.7.0","highlightBlock will be removed entirely in v12.0");we("10.7.0","Please use highlightElement now.");return m(e)}Object.assign(e,{highlight:d,highlightAuto:g,highlightAll:E,highlightElement:m,highlightBlock:B,configure:y,initHighlighting:x,initHighlightingOnLoad:w,registerLanguage:N,unregisterLanguage:S,listLanguages:O,getLanguage:$,registerAliases:R,autoDetection:A,inherit:Ie,addPlugin:M});e.debugMode=function(){i=false};e.safeMode=function(){i=true};e.versionString=Ae;for(const e in ie){if(typeof ie[e]==="object"){h(ie[e])}}Object.assign(e,ie);return e};var Le=Be({});var De=Le;const Ce="[A-Za-z$_][0-9A-Za-z$_]*";const Ue=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"];const Pe=["true","false","null","undefined","NaN","Infinity"];const He=["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"];const ze=["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"];const Ge=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"];const Je=["arguments","this","super","console","window","document","localStorage","module","global"];const Ke=[].concat(Ge,He,ze);function Ze(e){if(!e)return null;if(typeof e==="string")return e;return e.source}function Fe(e){return We("(?=",e,")")}function We(...e){const t=e.map((e=>Ze(e))).join("");return t}function Xe(e){const t=(e,{after:t})=>{const n="</"+e[0].slice(1);const s=e.input.indexOf(n,t);return s!==-1};const n=Ce;const s={begin:"<>",end:"</>"};const i={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{const s=e[0].length+e.index;const i=e.input[s];if(i==="<"){n.ignoreMatch();return}if(i===">"){if(!t(e,{after:s})){n.ignoreMatch()}}}};const o={$pattern:Ce,keyword:Ue,literal:Pe,built_in:Ke,"variable.language":Je};const a="[0-9](_?[0-9])*";const r=`\\.(${a})`;const c=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;const l={className:"number",variants:[{begin:`(\\b(${c})((${r})|\\.)?|(${r}))`+`[eE][+-]?(${a})\\b`},{begin:`\\b(${c})\\b((${r})\\b|\\.)?|(${r})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0};const d={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]};const u={begin:"html`",end:"",starts:{end:"`",returnEnd:false,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:"xml"}};const p={begin:"css`",end:"",starts:{end:"`",returnEnd:false,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:"css"}};const g={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,d]};const f=e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:true,excludeBegin:true,relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:true,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]});const h={className:"comment",variants:[f,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]};const b=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,u,p,g,l,e.REGEXP_MODE];d.contains=b.concat({begin:/\{/,end:/\}/,keywords:o,contains:["self"].concat(b)});const m=[].concat(h,d.contains);const y=m.concat([{begin:/\(/,end:/\)/,keywords:o,contains:["self"].concat(m)}]);const x={className:"params",begin:/\(/,end:/\)/,excludeBegin:true,excludeEnd:true,keywords:o,contains:y};const w={variants:[{match:[/class/,/\s+/,n],scope:{1:"keyword",3:"title.class"}},{match:[/extends/,/\s+/,We(n,"(",We(/\./,n),")*")],scope:{1:"keyword",3:"title.class.inherited"}}]};const v={relevance:0,match:/\b[A-Z][a-z]+([A-Z][a-z]+)*/,className:"title.class",keywords:{_:[...He,...ze]}};const E={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/};const k={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[x],illegal:/%/};const _={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function N(e){return We("(?!",e.join("|"),")")}const S={match:We(/\b/,N([...Ge,"super"]),n,Fe(/\(/)),className:"title.function",relevance:0};const O={begin:We(/\./,Fe(We(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:true,keywords:"prototype",className:"property",relevance:0};const $={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]};const R="(\\("+"[^()]*(\\("+"[^()]*(\\("+"[^()]*"+"\\)[^()]*)*"+"\\)[^()]*)*"+"\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>";const A={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,Fe(R)],className:{1:"keyword",3:"title.function"},contains:[x]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:y},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),E,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,u,p,g,h,l,v,{className:"attr",begin:n+Fe(":"),relevance:0},A,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[h,e.REGEXP_MODE,{className:"function",begin:R,returnBegin:true,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:true},{begin:/\(/,end:/\)/,excludeBegin:true,excludeEnd:true,keywords:o,contains:y}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{begin:i.begin,"on:begin":i.isTrulyOpeningTag,end:i.end}],subLanguage:"xml",contains:[{begin:i.begin,end:i.end,skip:true,contains:["self"]}]}]},k,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\("+"[^()]*(\\("+"[^()]*(\\("+"[^()]*"+"\\)[^()]*)*"+"\\)[^()]*)*"+"\\)\\s*\\{",returnBegin:true,label:"func.def",contains:[x,e.inherit(e.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[x]},S,_,w,$,{match:/\$[(.]/}]}}function qe(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01};const n={match:/[{}[\],:]/,className:"punctuation",relevance:0};const s={beginKeywords:["true","false","null"].join(" ")};return{name:"JSON",contains:[t,n,e.QUOTE_STRING_MODE,s,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}De.registerLanguage("javascript",Xe);De.registerLanguage("json",qe);async function Ve(e,i){const o=t(i.sandboxDiv);o.header_row;o.header.append("span").html(e.type!="nestedCard"?`<a href="${sessionStorage.getItem("hostURL")}/?appcard=${e.name}">${e.name}</a>`:e.name);o.body.style("overflow","hidden").style("background-color","white");if(e.type=="nestedCard")return Qe(e,o,i);const a=e.sandboxJson?await n(`${i.app.cardsPath}/${e.sandboxJson}.json`):await n(`${i.app.cardsPath}/${e.sandboxHtml}.txt`);if(a.error){s(o.body.insert("div","div"),a.error);return}if(e.type=="card")return Ye(e,a,o,i);if(e.type=="dsButton")return ht(i,a,o)}async function Qe(e,t,i){t.body.style("justify-content","center").style("background-color","#f2ebdc");const o=t.body.append("ul").style("list-style","none").style("display","grid").style("grid-template-columns","40vw 40vw").style("grid-template-rows","repeat(1, auto)").style("gap","5px");const a=e.children.filter((e=>!e.hidden));t.header.trail=new u({holder:t.header,crumbs:a});a.forEach((e=>{const r=o.append("li");r.attr("class","sjpp-app-drawer-card").style("padding","10px").style("margin","5px").html(`<p style="margin-left: 12px; font-size:14.5px;font-weight:500; display: block;">${e.name}</p>\n\t\t\t<p style="display: block; font-size: 13px; font-weight: 300; margin-left: 20px; justify-content: center; font-style:oblique; color: #403f3f;">${e.description}</p>`).on("click",(async r=>{r.stopPropagation();o.selectAll("*").remove();const c=e.sandboxJson?await n(`${i.app.cardsPath}/${e.sandboxJson}.json`):await n(`${i.app.cardsPath}/${e.sandboxHtml}.txt`);if(c.error){s(t.body.insert("div","div"),c.error);return}if(e.type=="card"){t.header.trail.main();Ye(e,c,t,i);const n=a.findIndex((t=>t==e));t.header.trail.update(n)}if(e.type=="dsButton")return ht(i.app.opts,c,t)}));return JSON.stringify(r)}))}async function Ye(e,t,n,s){if(e.sandboxHtml){const e=await t.text();return n.body.append("div").style("padding","0vw 0vw 2vw 0vw").append("div").style("background-color","white").style("margin","0vw 10vw").style("padding","10px").append("div").style("margin","0vw 5vw").html(e)}n.body.style("background-color","white");const i={intro:t.intro,ppcalls:t.ppcalls.filter((e=>!e.hidden)),buttons:t.buttons,arrowButtons:t.arrowButtons,ribbonMessage:t.ribbonMessage,citation:t.citation_id};it(i.intro,n.body);if(e.ribbon)it(i.ribbonMessage,n.body,e.ribbon);const o=n.body.append("div");const a=n.body.append("div");ot(i.buttons,o);rt(i,"main",o,a,s);if(e.disableTopTabs)et(i.ppcalls[0],n.body,e,s);else{const t=n.body.append("div").style("display","flex").style("align-content","end").style("justify-content","center").style("border","none").style("border-bottom","1px solid lightgray").style("width","100%").style("font-size","20px");const o=n.body.append("div");nt(i.ppcalls,e,t,o,n,s)}}function et(e,t,n,s){it(e.message,t);const i=t.append("div").style("margin-bottom","20px");const o=t.append("div");ot(e.buttons,i);lt(e.download,i,n.section);ct(e.urlparam,i,n.section);rt(e,"call",i,o,s);if(!n.disableTopTabs){t.append("hr").style("border","0").style("border-top","1px dashed #e3e3e6").style("width","100%")}const a={holder:t.append("div").style("margin","20px").node(),host:sessionStorage.getItem("hostURL")};const r=JSON.parse(JSON.stringify(e.runargs));runproteinpaint(Object.assign(a,r))}function tt(e,t,n,s){const i=[];const o=e.findIndex((e=>e.isUi==true));const a=e.findIndex((e=>e.isUi==undefined));const r=o!=-1?true:false;if(r==true){i.push({label:"Add Your Data",active:false,callback:async(t,n)=>{try{const t={holder:n.contentHolder.append("div").style("margin","20px").node(),sandbox_header:n.contentHolder,host:sessionStorage.getItem("hostURL")};const s=JSON.parse(JSON.stringify(e[o].runargs));runproteinpaint(Object.assign(t,s));delete n.callback}catch(e){if(e.stack)console.error(e.stack);else throw e}}})}if(e.length==1&&r!=true||e.length==2&&r==true){i.push({label:"Example",active:false,callback:async(n,i)=>{try{et(e[a],i.contentHolder,t,s);delete i.callback}catch(e){if(e.stack)console.error(e.stack);else throw e}}})}if(e.length>1&&r==false||e.length>2&&r==true){i.push({label:"Examples",active:s?.example?true:false,callback:async(i,o)=>{try{const i=e.filter((e=>e.isUi!=true));st(t,o.contentHolder,i,n,s);delete o.callback}catch(e){if(e.stack)console.error(e.stack);else throw e}}})}return i}function nt(e,t,n,s,i,o){const a=tt(e,t,i,o);new l({holder:n,contentHolder:s,tabs:a}).main()}async function st(e,t,n,s,o){const a=n.map(((t,n)=>c(t,n,e.section)));s.header.trail=await new u({holder:s.header,crumbs:a});function c(t,n,c){const l=o?.example?o.example.toUpperCase()==t.label.toUpperCase():n===0;return{active:l,inTrail:l,link:`${sessionStorage.getItem("hostURL")}/?appcard=${e.name}&example=${t.label}`,label:t.label,callback:async(e,n)=>{const l=r(n.contentHolder);try{if(!n.rendered){i(n.contentHolder);et(t,n.contentHolder,c,o);l.remove()}n.rendered=true;const e=a.findIndex((e=>e==n));s.header.trail.update(e)}catch(e){l.text("Error: "+(e.message||e))}}}}s.header.trail.main();const d=t.append("div").style("display","grid").style("grid-template-columns","minmax(min-content, 10vw) minmax(60vw, 1fr)").classed("sjpp-vertical-tab-menu",true).style("word-break","break-word");const p=d.append("div").classed("sjpp-tabs-div",true).style("border-right","1px solid lightgray");const g=d.append("div").classed("sjpp-content-div",true);new l({holder:p,contentHolder:g,tabs:a,linePosition:"right",tabsPosition:"vertical",gap:"10px"}).main()}function it(e,t,n){if(n&&n.expireDate){const s=new Date;const i=new Date(n.expireDate);if(i>s&&e!=undefined&&e){function o(){const e=n.text.toLowerCase();return e[0].toUpperCase()+e.slice(1)}t.append("div").style("margin","20px").html(`<p style="display:inline-block;font-weight:bold">${o()}:  </p>${e}`)}}else if(e!=undefined&&e){t.append("div").style("margin","20px").html(e)}}function ot(e,t){if(e){e.forEach((e=>{const n=d({div:t,text:e.name});n.on("click",(t=>{t.stopPropagation();if(e.download)window.open(`${e.download}`,"_self","download");else window.open(`${e.link}`,`${e.name}`)}))}))}}function at(e,t){if(e){e.forEach((e=>{const n=`<div style="margin:10px;" class="sjpp-arrow-content">\n\t\t\t\t${e.message?`<div style="margin: 1vw;">${e.message}</div>`:""}\n\t\t\t\t${e.links?e.links.map((e=>{if(!e)return"";if(e.download){return`<a style="cursor:pointer; margin-left:20px;" onclick="event.stopPropagation();" href="${e.download}", target="_self" download>${e.name}</a>`}if(e.link){return`<a style="cursor:pointer; margin-left:20px;" onclick="event.stopPropagation();" href="${e.link}", target="_blank">${e.name}</a>`}})).join(""):""}</div>`;t.push({name:e.name,callback:async e=>{try{e.append("div").html(n)}catch(e){alert("Error: "+e)}}})}))}}async function rt(e,t,s,o,a){let r=[];if(t=="call")dt(e,r);if(e.datapreview)ft(r,e.datapreview);if(e.citation||e.data_source){const t=await n(`/${a.app.cardsPath}/citations.json`);if(t.error){console.error(`Error: ${t.error}`);return}for(const n of t.publications){if(e.citation==n.id||e.data_source==n.id){const t=e.data_source?"Data Source":"Citation";pt(r,n,t)}}}at(e.arrowButtons,r);const c=r.findIndex((e=>e.active))==-1?false:true;for(let e=0;e<r.length;e++){const t=r[e];t.btn=d({div:s,text:t.name+" ▼"});t.c=o.append("div").style("margin","20px 0px 10px 20px").style("display",c&&e==0||t.active?"block":"none");if(c&&e==0&&t.callback||t.active){t.callback(t.c);delete t.callback}t.btn.on("click",(()=>{if(t.c.style("display")!="none"){t.btn.text(t.name+" ▼").style("color","black").style("background-color","#cfe2f3");t.c.style("display","none")}else{t.btn.text(t.name+" ▲").style("color","whitesmoke").style("background-color","#487ba8");i(t.c);for(let t=0;t<r.length;t++){if(e!=t){r[t].btn.text(r[t].name+" ▼").style("color","black").style("background-color","#cfe2f3");r[t].c.style("display","none")}}}if(t.callback){t.callback(t.c);delete t.callback}}))}}function ct(e,t,n){if(e){const s=d({div:t,text:n=="apps"?"Run app from URL":"Run track from URL"});s.on("click",(t=>{const n=mt();t.stopPropagation();window.open(`${n}${e}`,"_blank")}))}}function lt(e,t,n){if(e){const s=d({div:t,text:n=="apps"?"Download App File(s)":"Download Track File(s)"});s.on("click",(t=>{t.stopPropagation();window.open(`${e}`,"_self","download")}))}}async function dt(e,t){if(e.isUi==true)return;const n=De.highlight(`runproteinpaint({\n host: "${sessionStorage.getItem("hostURL")}",\n holder: document.getElementById('a'),\n `+JSON.stringify(e.runargs,"",4).replaceAll(/"(.+)"\s*:/g,"$1:").replaceAll(/\\t/g,"\t").replaceAll(/\\n/g,"\r\t").slice(1,-1).trim()+`\r})`,{language:"javascript"}).value;const s=`<pre style="border: 1px solid #d7d7d9; align-items: center; justify-content: center; margin: 0px 10px 5px 30px; overflow:auto; max-height:400px; ${e.jsonpath?`min-height:400px;`:`min-height: auto;`}">\n\t<code style="font-size:14px; display:block;">${n}</code></pre>`;t.push({name:"Code",callback:async t=>{try{if(e.jsonpath){const n=await ut(e);const i="<p style='margin:20px 5px 20px 25px;'>ProteinPaint JS code</p>";const o=t.append("div").style("display","grid").style("grid-template-columns","repeat(auto-fit, minmax(100px, 1fr))").style("gap","5px");o.append("div").style("display","block").html(i+s);o.append("div").style("display","block").html(n)}else{t.append("div").html(s)}}catch(e){alert("Error: "+e)}}})}async function ut(e){const t=await o("textfile",{file:e.jsonpath});const n=JSON.parse(t.text);const s=e.jsonpath.split("/");const i=s[s.length-1];let a=JSON.stringify(n,"",4).split("\n");let r;if(a.length>120){a=a.slice(0,100);r=true}const c=De.highlight(a.join("\n"),{language:"json"}).value;const l=`<div>\n\t\t\t<p style="margin: 20px 5px 20px 25px; display: inline-block;">JSON code </p>\n\t\t\t<p style="display: inline-block; color: #696969; font-style:oblique;"> (contents of ${i})</p>\n\t\t</div> \n\t\t<pre style="border: 1px solid #d7d7d9; align-items: center; justify-content: center; margin: 0px 10px 5px 10px; max-height:400px; min-height:400px; overflow:auto;">\n\t\t\t<code class="sjpp-json-code" style="font-size:14px; display:block;">${r==true?`${c} ...<br><p style='margin:20px 25px; justify-content:center;'>Showing first 100 lines. To see the entire JSON, download ${i} from the button above.</p>`:`${c}`}\n\t\t\t</code>\n\t\t</pre>`;return l}function pt(e,t,n){e.push({name:n,callback:async e=>{try{e.append("div").style("margin-left","5w").html(`<span style="display: inline-block;">${t.title}. <em>${t.journal}</em>, ${t.year}.\n\t\t\t\t\t\t${t.pmid?` PMID: <a href="${t.pmidURL}" target="${t.pmid}">${t.pmid}</a>`:` doi: <a href="${t.doi}" target="${t.doi}">${t.doi}</a>`}</span>`)}catch(e){alert("Error: "+e)}}})}function gt(e,t,n,s,i){n.append("div").html(`\n\t\t${i?`<p style="display:block;">${i}<p>`:""}\n\t\t<p style="display: inline-block;">Data preview <span style="color: #696969; font-style:oblique;"> \n\t\t${t>10?`(first ${e.length} rows of ${s})</span></p>`:`(content of ${s})</span></p>`} \n\t`);const o=n.append("div").style("display","grid").style("grid-template-columns","1fr").style("max-width","80%").style("margin-left","10px").style("border","1px solid rgb(227, 227, 230)").style("white-space","pre").style("overflow-x","scroll").style("opacity","0.65").style("padding","1vw");e.forEach((e=>{o.append("code").html(e)}))}async function ft(e,t,s){e.push({name:"View Data",callback:async e=>{try{for(const s of t){const t=await n(`/cardsjson?datafile=${s.file}&tabixCoord=${s.tabixQueryCoord}`);if(t.error){console.error(`Error: ${t.error}`);return}const i=t.file;const o=i.length;const a=i.slice(0,10);const r=s.file.split("/");const c=r[r.length-1];gt(a,o,e,c,s.message)}}catch(e){alert("Error: "+e)}}})}async function ht(e,t,n){const s=e?.fromApp?e.genomes[t.button.availableGenomes[0]]:e.app.opts.genomes[t.button.availableGenomes[0]];const i=e?.fromApp?e.genomes:e.app.opts.genomes;const o={availableGenomes:t.button.availableGenomes,genome:s,intro:t.button.intro,name:t.button.name,runargs:t.button.runargs,searchBar:t.button.searchBar,dsURLparam:t.button.dsURLparam,citation:t.citation_id};const r=n.body.append("div").style("padding","1em").style("border-bottom","1px solid #d0e3ff");if(o.citation){const t=r.append("div").style("margin-bottom","20px");const n=r.append("div");await rt(o,"main",t,n,e)}if(o.intro){r.append("div").style("line-height","1.5em").style("padding","0.5em 0.5em 1em 0.5em").html(o.intro)}if(o.searchBar=="none"){const e=sessionStorage.getItem("hostURL");const t={holder:n.body.append("div").style("margin","20px").style("overflow-x","auto").node(),host:o.runargs.host||e};const s=JSON.parse(JSON.stringify(o.runargs));runproteinpaint(Object.assign(t,s));if(e!=sessionStorage.getItem("hostURL"))sessionStorage.setItem("hostURL",e);return}if(o.availableGenomes.length>1)g(r,i);else{r.append("div").style("display","inline-block").style("margin-left","20px").style("color","rgb(117, 115, 115)").text(o.availableGenomes[0])}const d=r.append("div").style("display","inline-block").style("padding","0.5em");const u=n.body.append("div").style("max-width","90vw");const p=c({genome:o.genome,tip:new a({padding:""}),row:d,searchOnly:o.searchBar=="gene"?"gene":"",focusOff:true,callback:async e=>{const t=u.insert("div",":first-child").style("max-width","90vw").style("margin","1vw");t.append("div").style("display","inline-block").style("cursor","default").style("margin","0px").style("font-size","1.5em").html("×").on("click",(()=>{t.selectAll("*").remove()}));bt(t,p,o);const n={holder:t.append("div").style("margin","20px").node(),host:sessionStorage.getItem("hostURL"),genome:o.genome.name};o.runargs.block==true?(n.position=`${p.chr}:${p.start}-${p.stop}`)&&(n.nativetracks="Refgene"):n.gene=p.geneSymbol;const s=JSON.parse(JSON.stringify(o.runargs));runproteinpaint(Object.assign(n,s))}});function g(e,t){e.append("div").style("display","inline-block").style("padding","10px 10px 0px 20px");const n=[];o.availableGenomes.forEach((e=>{n.push({label:e,callback:(n,s)=>{o.genome=t[e]}})}));new l({holder:e,tabs:n,noContent:true}).main()}}function bt(e,t,n){const s=d({div:e,text:"Run Result from URL"});const i=n.runargs.block==true?`position=${t.chr}:${t.start}-${t.stop}`:`gene=${t.geneSymbol}`;s.on("click",(e=>{e.stopPropagation();const t=mt();window.open(`${t}/?genome=${n.genome.name}&${i}&${n.dsURLparam}`,"_blank")}))}function mt(){const e=sessionStorage.getItem("hostURL");if(e.startsWith("http://localhost")||e.startsWith("https://pp")){return e}else return"https://proteinpaint.stjude.org"}var yt=Object.freeze({__proto__:null,openSandbox:Ve});export{yt as a,d as m,Ve as o};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as e,T as t,d as s,Y as i,i as r,a,k as o,y as l,o as n,M as p,b as d,K as c}from"./app-b369b169.js";import{T as m,n as h,t as u,e as f,d as y}from"./termsetting-33ea66f1.js";import{g as b,i as v,a as _,f as g,s as T,v as x}from"./FilterRxComp-701a1480.js";import{termInfoInit as S}from"./termInfo-bf99a37e.js";import{_ as I}from"./tslib.es6-c3c2d88f.js";import{T as k}from"./toggleButtons-dbdbad01.js";import"path";import"./table-29d5a973.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-8b656cc3.js";const C="25px";const A="root";const w=20;const N="400px";const D="termdiv",E="termchilddiv",O="termbtn",j="termlabel",L="termloading",B="termcheck";class V{constructor(e){this.type="tree";G(this);R(this);this.loadingTermSet=new Set;this.termsByCohort={};this.expandAll="expandAll"in e?e.expandAll:false}init(){this.dom={holder:this.opts.holder.append("div")}}reactsTo(e){if(e.type.startsWith("tree_"))return true;if(e.type.startsWith("filter_"))return true;if(e.type.startsWith("cohort_"))return true;if(e.type.startsWith("info_"))return true;if(e.type.startsWith("submenu_"))return true;if(e.type=="app_refresh")return true;if(e.type=="set_term_type_group")return true}getState(e){const t=b(e.termfilter.filter);const s={isVisible:!e.submenu.term,activeCohort:e.activeCohort,expandedTermIds:e.tree.expandedTermIds,selectedTerms:e.selectedTerms,termfilter:{filter:t},usecase:e.tree.usecase,termTypeGroup:e.termTypeGroup};if(e.termdbConfig.selectCohort){s.toSelectCohort=true;const t=e.termdbConfig.selectCohort.values[e.activeCohort];if(t){s.cohortValuelst=t.keys}}return s}async main(){if(this.state.termTypeGroup!=t.DICTIONARY_VARIABLES){this.dom.holder.style("display","none");return}if(!this.state.isVisible){this.dom.holder.style("display","none");return}if(this.state.toSelectCohort){if(!this.state.cohortValuelst){return}}this.termsById=this.getTermsById();const e=this.termsById[A];e.terms=await this.requestTermRecursive(e);this.dom.holder.style("display","block");await this.renderBranch(e,this.dom.holder);this.dom.holder.selectAll(".termbtn, .sja_tree_click_term").attr("tabindex",0).attr("data-testid","sjpp_termdbbutton").on("keyup",(e=>{if(e.key=="Enter")e.target.click()}))}getTermsById(){if(!(this.state.activeCohort in this.termsByCohort)){this.termsByCohort[this.state.activeCohort]={[A]:{id:A,__tree_isroot:true}}}return this.termsByCohort[this.state.activeCohort]}async requestTermRecursive(e){const t=await this.app.vocabApi.getTermChildren(e,this.state.toSelectCohort?this.state.cohortValuelst:null);if(t.error)throw t.error;if(!t.lst||t.lst.length==0){return[]}const s=[];for(const e of t.lst){const t=Object.assign({},e);s.push(t);if(this.state.expandedTermIds.includes(t.id)){t.terms=await this.requestTermRecursive(t)}else{const e=this.termsById[t.id];if(e&&e.terms){t.terms=e.terms}}this.termsById[t.id]=t}return s}bindKey(e){return e.id}}const P=e(V);function R(e){e.renderBranch=(t,s,i)=>{if(!t||!t.terms)return;if(t.terms.length>=w){if(s.classed("sjpp_show_scrollbar"));else{s.style("max-height",N).style("padding","10px").style("resize","vertical").classed("sjpp_show_scrollbar",true)}}if(e.opts.disable_terms){t.terms.forEach((t=>{if(t.disabled)e.opts.disable_terms.push(t)}))}e.included_terms=[];if(e.state.usecase){for(const s of t.terms){if(v(s,e.state.usecase,e.app.vocabApi.termdbConfig).size){e.included_terms.push(s)}}}else{e.included_terms.push(...t.terms)}if(!(t.id in e.termsById)||!e.included_terms.length){s.style("display","none");return}if(e.loadingTermSet.has(t.id)){e.loadingTermSet.delete(t.id);s.select("."+L).remove()}const r=e.state.expandedTermIds;if(!r.includes(t.id)){s.style("display","none");if(i)i.text("+");return}s.style("display","block");if(i)i.text("-");const a=s.selectAll("."+D).data(e.included_terms,e.bindKey);a.exit().each(e.hideTerm);a.each(e.updateTerm);a.enter().append("div").each(e.addTerm);for(const i of t.terms){if(r.includes(i.id)){e.renderBranch(i,s.selectAll("."+E).filter((e=>e.id==i.id)),s.selectAll("."+O).filter((e=>e.id==i.id)))}}};e.hideTerm=function(t){if(t.id in e.termsById&&e.state.expandedTermIds.includes(t.id))return;s(this).style("display","none")};e.updateTerm=function(t){const i=s(this);if(!(t.id in e.termsById)){i.style("display","none");return}const r=e.opts.disable_terms?.includes(t.id);const a=v(t,e.state.usecase,e.app.vocabApi.termdbConfig);i.style("display","");const o=e.state.expandedTermIds.includes(t.id);i.select("."+O).text(o?"-":"+");i.select("."+E).style("display",o?"block":"none");const l=e.state.selectedTerms.find((e=>e.name===t.name&&e.type===t.type));i.select("."+j).style("background-color",!a.has("plot")||r?"":l?"rgba(255, 194, 10,0.5)":"#cfe2f3");i.select("."+B).style("display",a.has("plot")&&l&&!r?"inline-block":"none")};e.addTerm=async function(t){const i=e.opts.disable_terms?.includes(t.id);const r=v(t,e.state.usecase,e.app.vocabApi.termdbConfig);const a=s(this).attr("class",D).style("margin",t.isleaf?"":"2px").style("padding","0px 5px");if(r.has("branch")){a.append("div").attr("class","sja_menuoption "+O).style("display","inline-block").style("padding","4px 9px").style("font-family","courier").text("+").on("click",(s=>{s.stopPropagation();e.toggleBranch(t)}));if(e.expandAll)e.toggleBranch(t)}const o=e.state.selectedTerms.find((e=>e.name===t.name&&e.type===t.type));const l=a.append("div").attr("class",j).style("display","inline-block").style("padding","5px").style("opacity",i?.4:null).text(t.name);let n;if(t.hashtmldetail){n=a.append("div").style("display","inline-block")}if(r.size>0){if(i){l.attr("class","sja_tree_click_term_disabled "+j).style("padding","5px 8px").style("margin","1px 0px").style("opacity",.7)}else if(r.has("plot")){l.attr("class","ts_pill sja_filter_tag_btn sja_tree_click_term "+j).style("color","black").style("padding","5px 8px").style("border-radius","6px").style("background-color",o?"rgba(255, 194, 10,0.5)":"#cfe2f3").style("margin","1px 0px").style("cursor","default").on("click",(()=>e.clickTerm(t)))}if(t.samplecount!==undefined){a.append("div").style("font-size",".8em").style("display","inline-block").style("margin-left","5px").style("color",t.samplecount?"#777":"#ddd").text("n="+t.samplecount)}}if(t.hashtmldetail){S({vocabApi:e.app.vocabApi,icon_holder:n,content_holder:a.append("div"),id:t.id,state:{term:t}})}if(e.opts.submit_lst){a.append("div").attr("class",B).style("color","#008000").style("display",o?"inline-block":"none").html("✓")}if(!t.isleaf){a.append("div").attr("class",E).style("padding-left",C)}}}function G(e){e.toggleBranch=function(t){if(t.isleaf)return;const i=e.termsById[t.id];if(!i)throw"invalid term id";if(!i.terms){if(e.loadingTermSet.has(i.id))return;e.loadingTermSet.add(i.id);s(this.parentNode).selectAll("."+E).filter((e=>e.id===i.id)).style("display","block").append("div").text("Loading...").attr("class",L).style("opacity",.5).style("padding","5px")}const r=e.state.expandedTermIds.includes(t.id);const a=r?"tree_collapse":"tree_expand";e.app.dispatch({type:a,termId:t.id})};e.clickTerm=async t=>{if(e.opts.click_term2select_tvs){e.app.dispatch({type:"submenu_set",submenu:{term:t,type:"tvs"}});return}if(e.opts.click_term_wrapper){e.opts.click_term_wrapper(t);return}if(e.opts.submit_lst){const s=e.state.selectedTerms.findIndex((e=>e.name===t.name));if(s==-1){e.app.dispatch({type:"app_refresh",state:{selectedTerms:[...e.state.selectedTerms,t]}})}else{const t=e.state.selectedTerms.slice(0);t.splice(s,1);e.app.dispatch({type:"app_refresh",state:{selectedTerms:t}})}return}throw"missing term click callback"}}const U={header_mode:"search_only",activeCohort:0,tree:{usecase:{},expandedTermIds:[]},submenu:{},search:{isVisible:true},selectedTerms:[],termfilter:{filter:{type:"tvslst",in:true,join:"",lst:[]}}};class M{constructor(e){this.type="store";this.defaultState=U;i(this,e);this.prevGeneratedId=0}validateOpts(e){if(!e.state)throw".state{} missing";const t=e.state;if(t.vocab){if(t.vocab.dslabel){if(!t.vocab.genome)throw".state[.vocab].genome missing"}else if(t.vocab.genome){if(!t.vocab.dslabel)throw".state[.vocab].dslabel missing"}else{if(!Array.isArray(t.vocab.terms))throw"vocab.terms must be an array of objects"}}}validateState(){const e=this.state;if(e.tree.expandedTermIds.length==0){e.tree.expandedTermIds.push(A)}else{if(e.tree.expandedTermIds[0]!=A){e.tree.expandedTermIds.unshift(A)}}}async init(){this.state.termdbConfig=await this.app.vocabApi.getTermdbConfig();let e=_(this.state.termfilter.filter,"filterUiRoot");if(!e){this.state.termfilter.filter.tag="filterUiRoot";e=this.state.termfilter.filter}if(this.state.termdbConfig.selectCohort){let t=_(this.state.termfilter.filter,"cohortFilter");if(!t){t={tag:"cohortFilter",type:"tvs",tvs:{term:JSON.parse(JSON.stringify(this.state.termdbConfig.selectCohort.term)),values:this.state.activeCohort==-1?[]:this.state.termdbConfig.selectCohort.values[this.state.activeCohort].keys.map((e=>({key:e,label:e})))}};this.state.termfilter.filter={type:"tvslst",in:true,join:"and",lst:[t,e]}}else{const e=(e,t)=>e<t?-1:1;t.tvs.values.sort(((e,t)=>e.key<t.key?-1:1));const s=JSON.stringify(t.tvs.values.map((e=>e.key)).sort(e));const i=this.state.termdbConfig.selectCohort.values.findIndex((t=>s==JSON.stringify(t.keys.sort(e))));if(this.state.activeCohort!==-1&&this.state.activeCohort!==0&&i!==this.state.activeCohort){console.log("Warning: cohortFilter will override the state.activeCohort due to mismatch")}this.state.activeCohort=i}}else{this.state.activeCohort=-1;if(this.state.header_mode==="with_cohortHtmlSelect"){console.warn(`no termdbConfig.selectCohort to use for state.header_mode = 'with_cohortHtmlSelect'`);this.state.header_mode="search_only"}}}fromJson(e){const t=JSON.parse(e);return t}setId(e){e.$id=this.prevGeneratedId++;if(e.$lst){for(const t of e.$lst){this.setId(t)}}}}M.prototype.actions={app_refresh(e={}){this.state=this.copyMerge(this.toJson(this.state),e.state?e.state:{},this.replaceKeyVals)},cohort_set(e){this.state.activeCohort=e.activeCohort;const t=this.state.termdbConfig.selectCohort.values[e.activeCohort];const s=_(this.state.termfilter.filter,"cohortFilter");if(!s)throw`No item tagged with 'cohortFilter'`;s.tvs.values=t.keys.map((e=>({key:e,label:e})))},tree_expand(e){if(this.state.tree.expandedTermIds.includes(e.termId))return;this.state.tree.expandedTermIds.push(e.termId)},tree_collapse(e){const t=this.state.tree.expandedTermIds.indexOf(e.termId);if(t==-1)return;this.state.tree.expandedTermIds.splice(t,1)},filter_replace(e){const t=e.filter?e.filter:{type:"tvslst",join:"",in:1,lst:[]};if(!e.filter.tag){this.state.termfilter.filter=t}else{const s=_(this.state.termfilter.filter,e.filter.tag);if(!s)throw`cannot replace missing filter with tag '${e.filter.tag}'`;const i=g(this.state.termfilter.filter,s.$id);if(i==s){this.state.termfilter.filter=t}else{const e=i.lst.indexOf(s);i.lst[e]=t}}},submenu_set(e){const t=e.submenu&&e.submenu.term;if(!t){this.state.submenu={};this.state.tree.expandedTermIds=[A]}else{const s=[A];if(t.__ancestors){s.push(...t.__ancestors)}if(v(t,{},this.state.termdbConfig).has("plot")){Object.assign(this.state.submenu,e.submenu)}else{s.push(t.id);delete this.state.submenu.term}this.state.tree.expandedTermIds=s}},set_term_type_group({value:e}){this.state.termTypeGroup=e}};const Y=r(M);function F(e){switch(e){case"./handlers/geneExpression.ts":return import("./geneExpression-0d1b7244.js");case"./handlers/geneVariant.ts":return import("./geneVariant-89601b34.js");case"./handlers/snp.ts":return import("./snp-37d06246.js");case"./handlers/snplocus.ts":return import("./snplocus-90e52cf4.js");case"./handlers/snplst.ts":return import("./snplst-7c59f059.js");default:return new Promise((function(t,s){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+e)))}))}}const $={matrix:[t.SNP_LOCUS,t.SNP_LIST],filter:[t.SNP_LOCUS,t.SNP_LIST],dictionary:[t.SNP_LOCUS,t.SNP_LIST],summary:[t.SNP_LOCUS,t.SNP_LIST],barchart:[t.SNP_LOCUS,t.SNP_LIST],violin:[t.SNP_LOCUS,t.SNP_LIST],sampleScatter:[t.SNP_LOCUS,t.SNP_LIST],cuminc:[t.SNP_LOCUS,t.SNP_LIST,t.MUTATION_CNV_FUSION,t.METABOLITE_INTENSITY],dataDownload:[t.MUTATION_CNV_FUSION],survival:[t.SNP_LOCUS,t.SNP_LIST],default:[t.SNP_LOCUS,t.SNP_LIST],regression:[t.SNP_LIST,t.SNP_LOCUS,t.GENE_EXPRESSION,t.METABOLITE_INTENSITY],metaboliteIntensity:[t.SNP_LOCUS,t.SNP_LIST,t.MUTATION_CNV_FUSION,t.DICTIONARY_VARIABLES,t.GENE_EXPRESSION],geneExpression:[t.SNP_LOCUS,t.SNP_LIST,t.MUTATION_CNV_FUSION,t.DICTIONARY_VARIABLES,t.METABOLITE_INTENSITY]};class q{constructor(e){this.type="termTypeSearch";this.genomeObj=e.genome;this.click_term=e.click_term;this.submit_lst=e.submit_lst;const t=e.topbar.append("div").append("div").style("width","99%").style("display","flex").style("flex-wrap","wrap").style("gap","5px").style("min-height","20px").style("border","solid 1px #aaa").style("margin","10px 0px").style("padding","6px 2px").style("min-height","30px");this.types=[];this.tabs=[];this.handlerByType={};this.dom={holder:e.holder,topbar:e.topbar,selectedTermsDiv:t,submitDiv:e.submitDiv};this.useCasesExcluded=structuredClone($)}init(e){var s,i,r;return I(this,void 0,void 0,(function*(){this.types=((s=this.app.vocabApi.termdbConfig)===null||s===void 0?void 0:s.allowedTermTypes)||["categorical"];if(!this.types)return;if((i=this.app.vocabApi.termdbConfig)===null||i===void 0?void 0:i.useCasesExcluded)Object.assign(this.useCasesExcluded,(r=this.app.vocabApi.termdbConfig)===null||r===void 0?void 0:r.useCasesExcluded);const a=this.getState(e);yield this.addTabsAllowed(a);if(this.submit_lst)this.dom.clearbt=this.dom.submitDiv.append("button").style("margin-left","5px").text("Clear").on("click",(()=>this.selectTerms([])));if(this.tabs.length==0)throw"No term types allowed for this use case";this.app.dispatch({type:"set_term_type_group",value:this.tabs[0].termTypeGroup});if(this.tabs.length==1&&this.tabs[0].termTypeGroup==t.DICTIONARY_VARIABLES)return;new k({holder:this.dom.holder,tabsPosition:"vertical",linePosition:"right",tabs:this.tabs}).main();for(const[e]of this.tabs.entries()){const t=this.tabs[e].contentHolder.style("padding-left","20px");t.append("div")}}))}reactsTo(e){if(e.type.startsWith("submenu_"))return true;if(e.type=="set_term_type_group")return true;if(e.type=="app_refresh")return true}main(){this.dom.holder.style("display",this.state.isVisible?"inline-block":"none");this.dom.topbar.style("display",this.state.isVisible?"inline-block":"none");if(this.submit_lst){this.renderTermsSelected();this.dom.selectedTermsDiv.style("display",this.state.selectedTerms.length>0?"inline-block":"none")}else this.dom.selectedTermsDiv.style("display","none");this.renderTermsSelected();if(this.dom.clearbt)this.dom.clearbt.property("disabled",this.state.selectedTerms.length==0)}renderTermsSelected(){this.dom.selectedTermsDiv.selectAll("*").remove();this.dom.selectedTermsDiv.selectAll("div").data(this.state.selectedTerms).enter().append("div").attr("aria-label","Click to delete").attr("class","sja_menuoption").attr("tabindex",0).style("position","relative").style("display","inline-block").style("padding","5px 16px 5px 9px").style("margin-left","5px").each(e).on("click",((e,t)=>this.deleteTerm(e,t))).on("mouseover",(function(e){const t=`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#000" class="bi bi-x-lg" viewBox="0 0 16 16">\n\t\t\t\t<path stroke='#f00' d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"/>\n\t\t\t\t</svg>`;const i=s(e.target);i.append("div").style("margin-left","4px").classed("sjpp_deletebt",true).style("display","inline-block").style("position","absolute").style("right","0px").style("top","0px").style("transform","scale(0.6)").style("pointer-events","none").html(t)})).on("mouseout",(function(e){s(e.target).select(".sjpp_deletebt").remove()}));function e(e){const t=s(this).style("border-radius","5px");t.insert("div").style("display","inline-block").html(e.name)}}deleteTerm(e,t){const s=this.state.selectedTerms.findIndex((e=>e.name===t.name));if(s!=-1){const e=[...this.state.selectedTerms];e.splice(s,1);this.app.dispatch({type:"app_refresh",state:{selectedTerms:e}})}}getState(e){return{dslabel:e.dslabel,termTypeGroup:e.termTypeGroup,usecase:e.tree.usecase,isVisible:!e.submenu.term,selectedTerms:e.selectedTerms,termfilter:e.termfilter}}addTabsAllowed(e){var s;return I(this,void 0,void 0,(function*(){for(const i of this.types){const r=u[i];let a=r;if(i==m.GENE_VARIANT){const e=[];if(this.app.vocabApi.termdbConfig.queries.snvindel)e.push("Mutation");if(this.app.vocabApi.termdbConfig.queries.cnv)e.push("CNV");if(this.app.vocabApi.termdbConfig.queries.svfusion)e.push("Fusion");if(e.length==0)continue;a=e.join("/")}if(i==m.SNP_LIST||i==m.SNP_LOCUS){continue}if(r&&!this.tabs.some((e=>e.label==r))){if(e.usecase.target=="regression"){if(i==m.SNP)continue;if(i==m.GENE_VARIANT&&e.usecase.detail!="independent")continue}if(e.usecase.target=="sampleScatter"){if(e.usecase.detail=="numeric"&&!h.has(i))continue}if((e.usecase.target=="survival"||e.usecase.target=="cuminc")&&r!=t.DICTIONARY_VARIABLES){if(e.usecase.detail=="term")continue}if(e.usecase.target=="dataDownload"){if(i==m.SNP)continue}if(e.usecase.target&&((s=this.useCasesExcluded[e.usecase.target])===null||s===void 0?void 0:s.includes(r)))continue;try{if(!this.usesDefaultSearch(r)){const e=yield F(`./handlers/${i}.ts`);this.handlerByType[i]=yield new e.SearchHandler;if(!this.handlerByType[i].init)throw"init not implemented"}this.addLoadTopTerms(i)}catch(e){throw`error with handler='./handlers/${i}.ts': ${e}`}this.tabs.push({label:a,callback:()=>this.setTermTypeGroup(i,r),termTypeGroup:r})}}}))}usesDefaultSearch(e){return e==t.DICTIONARY_VARIABLES||e==t.METABOLITE_INTENSITY}addLoadTopTerms(e){return I(this,void 0,void 0,(function*(){if(e==m.METABOLITE_INTENSITY)this.dom.submitDiv.append("button").style("margin-left","5px").text("Load top terms").on("click",(()=>I(this,void 0,void 0,(function*(){const t={filter0:this.state.termfilter.filter0,filter:this.state.termfilter.filter,type:e};const s=yield this.app.vocabApi.getTopTermsByType(t);this.selectTerms(s.terms)}))))}))}selectTerms(e){this.app.dispatch({type:"app_refresh",state:{selectedTerms:e}})}setTermTypeGroup(e,s){return I(this,void 0,void 0,(function*(){yield this.app.dispatch({type:"set_term_type_group",value:s});const i=this.tabs.find((e=>e.termTypeGroup==s));if(!i)return;const r=i.contentHolder;r.selectAll("*").remove();if(i.termTypeGroup!=t.DICTIONARY_VARIABLES&&i.termTypeGroup!=t.METABOLITE_INTENSITY){const t=this.handlerByType[e];yield t.init({holder:r,app:this.app,genomeObj:this.genomeObj,callback:e=>this.selectTerm(e)})}}))}selectTerm(e){if(this.click_term)this.click_term(e);else if(this.submit_lst){this.app.dispatch({type:"app_refresh",state:{selectedTerms:[...this.state.selectedTerms,e]}})}else this.app.dispatch({type:"submenu_set",submenu:{term:e,type:"tvs"}})}}const z=e(q);class K{constructor(e){this.type="submenu";this.dom={holder:e.holder};H(this)}reactsTo(e){if(e.type.startsWith("submenu_"))return true;if(e.type=="app_refresh")return true}getState(e){return{type:e.submenu.type,term:e.submenu.term,termfilter:e.termfilter}}main(){if(!this.state.term){this.dom.holder.style("display","none");return}if(this.state.type=="tvs")this.showTvsMenu(this.state.term);else throw`unsupported submenu.type='${this.state.type}'`}}const W=e(K);function H(e){e.showTvsMenu=function(t){e.dom.holder.selectAll("*").remove();e.dom.holder.style("display","block").append("div").style("margin","10px").append("span").html("« Back to variable selection").attr("class","sja_clbtext").on("click",(()=>e.app.dispatch({type:"submenu_set",submenu:{}})));e.dom.holder.style("display","block").append("div").style("margin","15px 0px 5px 10px").style("font-weight","bold").style("font-size",".9em").text(t.name);T({term:t,filter:e.state.termfilter.filter,holder:e.dom.holder.append("div"),vocabApi:e.app.vocabApi,debug:e.app.debug,getCategoriesArguments:e.app.opts.getCategoriesArguments,callback:e.app.opts.tree.click_term2select_tvs})}}class J{constructor(e){this.type="search";this.customEvents=["postSearch"];Z(this);Q(this);this.dom={holder:e.holder};this.isVisible="isVisible"in e?e.isVisible:true}async init(e){this.initUI(this.getState(e))}reactsTo(e){if(e.type=="set_term_type_group")return true;if(e.type=="app_refresh")return true;const t=e.type.split("_")[0];return["search","cohort","submenu"].includes(t)}getState(e){return{isVisible:!e.submenu.term&&this.isVisible,cohortStr:e.activeCohort==-1||!e.termdbConfig.selectCohort?"":e.termdbConfig.selectCohort.values[e.activeCohort].keys.slice().sort().join(","),allowedTermTypes:e.termdbConfig?.allowedTermTypes||[],expandedTermIds:e.tree.expandedTermIds,selectedTerms:e.selectedTerms,usecase:e.tree.usecase,search:e.search,isGeneSetTermdb:e.termdbConfig.isGeneSetTermdb,termTypeGroup:e.termTypeGroup}}isTermTypeSupported(){const e=this.state.termTypeGroup;if(e==t.DICTIONARY_VARIABLES)return true;if(e==t.METABOLITE_INTENSITY)return true;return false}async main(){if(!this.isTermTypeSupported()){this.dom.holder.style("display","none");return}this.dom.input.node().value="";this.dom.input.attr("placeholder","Search "+this.state.termTypeGroup);this.clear();this.dom.holder.style("display",this.state.isVisible?"block":"none")}async doSearch(e){if(!e||e.length<3){this.clear();this.bus.emit("postSearch",[]);return}const t=await this.app.vocabApi.findTerm(e,this.state.cohortStr,this.state.usecase,this.state.termTypeGroup);this.currData=t;if(!t.lst||t.lst.length==0){this.noResult()}else{this.showTerms(t)}this.bus.emit("postSearch",t)}}const X=e(J);function Z(e){e.initUI=t=>{e.dom.holder.style("display",e.search&&e.search.isVisible==false?"none":"block");const s=e.dom.holder.append("div").style("text-align","left");e.dom.input=s.append("input").attr("type","search").attr("class","tree_search").style("width","250px").style("margin","10px").style("display","inline-block").on("input",a.debounce(e.onInput,300)).on("keyup",e.onKeyup);e.dom.resultCntDiv=s.append("div").style("display","none");if(e.opts.focus!="off")e.dom.input.node().focus();e.dom.resultDiv=(e.opts.resultsHolder||e.dom.holder).append("div").attr("class","sjpp_show_scrollbar").style("max-height","35vh").style("display","none").style("grid-template-columns","auto auto");const i=e.dom.resultDiv.append("div");const r=e.dom.resultDiv.append("div");e.dom.resultDiv_genes=i.append("div").style("border-left","solid 1px rgb(133,182,225)").style("margin","0px 0px 10px 10px").style("padding-left","5px");e.dom.resultDiv_terms=r.append("div").style("border-left",e.opts.resultsHolder?"":"solid 1px rgb(133,182,225)").style("margin","0px 0px 10px 10px").style("padding-left","5px")};e.getPrompt=e=>{const t=e.allowedTermTypes.includes("geneVariant")&&v({type:"geneVariant"},e.usecase).has("plot");if(t)return" variables or genes";if(e.isGeneSetTermdb)return" gene sets";return" variables"};e.noResult=()=>{e.clear();e.dom.resultDiv.style("display","inline-grid");e.dom.resultDiv_terms.append("div").style("padding","3px 3px 3px 0px").style("opacity",.5).text("No match"+(e.app.vocabApi.termdbConfig?.queries?.snvindel?.allowSNPs?". Press ENTER to search SNP":""))};e.showTerms=t=>{if(e.opts.disable_terms){t.lst.forEach((t=>{if(t.disabled)e.opts.disable_terms.push(t)}))}e.clear();e.dom.resultDiv.style("display","inline-grid");const s=[],i=[];for(const e of t.lst){if(e.type=="geneVariant"){s.push(e)}else{i.push(e)}}if(s.length){e.dom.resultDiv_genes.append("table").selectAll().data(s).enter().append("tr").each(e.showTerm)}if(i.length){e.dom.resultDiv_terms.append("table").selectAll().data(i).enter().append("tr").each(e.showTerm)}if(t.lst.length>1)e.dom.resultCntDiv.style("display","inline-block").text(`${t.lst.length} results`);e.focusableResults=[...e.dom.resultDiv.node().querySelectorAll(".sja_tree_click_term, .sja_menuoption")]};e.showTerm=function(t){const i=s(this);const r=i.append("td").text(t.name);const a=v(t,e.state.usecase,e.app.vocabApi.termdbConfig);if((e.opts.click_term||e.app.opts?.tree?.click_term_wrapper)&&a.has("plot")){if(t&&e.opts.disable_terms?.find((e=>f(t,e)))){r.attr("class","sja_tree_click_term_disabled").style("display","block").style("padding","5px 8px").style("margin","1px 0px").style("opacity",.4)}else{r.attr("class","ts_pill sja_filter_tag_btn sja_tree_click_term").attr("tabindex",0).style("display","block").style("color","black").style("padding","5px 8px").style("border-radius","6px").style("background-color",t.type=="geneVariant"?"rgba(251,171,96,0.5)":"#cfe2f3").style("margin","1px 0px").style("cursor","default").on("click",(()=>{if(e.opts.click_term){e.opts.click_term(t)}else{e.app.opts.tree.click_term_wrapper(t)}e.clear();e.dom.input.property("value","")})).on("keyup",e.navInputValueByKeyboard)}if(t.samplecount!==undefined){i.append("td").append("div").style("font-size",".8em").style("display","inline-block").style("margin-left","5px").style("color",t.samplecount?"#777":"#ddd").text("n="+t.samplecount)}}else{r.attr("class","sja_menuoption").attr("tabindex",0).on("click",(()=>{e.clear();e.dom.input.property("value","");const s=[A];if(t.type=="geneVariant"&&e.opts.handleGeneVariant){e.opts.handleGeneVariant(t)}else if(y(t.type)){e.app.dispatch({type:"app_refresh",state:{selectedTerms:[...e.state.selectedTerms,t]}})}else{if(t.__ancestors){s.push(...t.__ancestors)}if(!e.app.vocabApi.graphable(t))s.push(t.id);e.app.dispatch({type:"app_refresh",state:{tree:{expandedTermIds:s}}})}})).on("keyup",e.navInputValueByKeyboard)}i.append("td").text(t.type=="geneVariant"?"gene variant":(t.__ancestorNames||[]).join(" > ")).style("opacity",.5).style("font-size",".7em")};e.clear=()=>{e.dom.resultDiv_genes.selectAll("*").remove();e.dom.resultDiv_terms.selectAll("*").remove();e.dom.resultDiv.style("display","none");e.dom.resultCntDiv.style("display","none")}}function Q(e){e.onKeyup=t=>{if(t.key=="ArrowDown"&&e.currData?.lst?.length){e.dom.resultDiv.select(".sja_tree_click_term, .sja_menuoption").node().focus();return}if(!o(t))return;e.onInput(t)};e.onInput=async t=>{const s=e.dom.input.property("value");try{await e.doSearch(s)}catch(t){e.clear();e.dom.resultDiv.style("display","inline-grid");l(e.dom.resultDiv_terms,"Error: "+(t.message||t));if(t.stack)console.log(t.stack)}};e.navInputValueByKeyboard=t=>{if(t.key=="Enter")t.target.click();else if(t.key.startsWith("Arrow")){const s=e.focusableResults.findIndex((e=>e===t.target));if(t.key=="ArrowDown"){if(s<e.focusableResults.length-1)e.focusableResults[s+1].focus();else e.focusableResults[0].focus()}else if(t.key=="ArrowUp"){if(s!=0)e.focusableResults[s-1].focus();else e.focusableResults[e.focusableResults.length-1].focus()}}}}class ee{constructor(e){this.type="app";if(!e.holder)s("body").append("div");const t=e.holder.append("div").style("display",e.tree?.submit_lst?"":"none").style("text-align","center").style("margin","10px 5px");const i=t.append("button").property("disabled",true).text(this.noSelectionPrompt).on("click",(()=>this.opts.tree?.submit_lst(this.state.selectedTerms)));const r=e.holder.append("div");const a=r.append("div").style("display","inline-block");const o=r.append("div").style("display","inline-block").style("vertical-align","top");this.dom={topbar:r,holder:e.holder,termTypeSearchDiv:a,searchDiv:o.append("div"),treeDiv:o.append("div"),customTermDiv:o.append("div").style("margin","10px"),submitDiv:t,submitBtn:i,filterDiv:r.append("div").style("display","none"),errdiv:e.holder.append("div"),tip:new p({padding:"5px"})}}validateOpts(e){if(e.vocabApi);else if(e.state&&e.state.vocab){if(typeof e.state.vocab!="object")throw"opts.state.vocab{} is not an object"}else if(e.state&&e.state.genome){const t=e.state;if(!t.vocab)t.vocab={};t.vocab.genome=t.genome;delete t.genome;if(t.dslabel){t.vocab.dslabel=t.dslabel;delete t.dslabel}}else{throw"neither state.vocab{} or opts.vocabApi provided"}if(e.tree){if(e.tree.disable_terms&&!e.tree.click_term&&!e.tree.click_term2select_tvs&&(!e.barchart||!e.barchart.bar_click_override)){throw`opts.tree.disable_terms is used only when opts.tree.click_term, opts.tree.click_term2select_tvs, or opts.barchart.bar_click_override is set`}if(!e.search)e.search={};if(e.tree.click_term2select_tvs){e.search.click_term=e=>this.api.dispatch({type:"submenu_set",submenu:{term:e,type:"tvs"}})}if(e.tree.click_term){e.tree.click_term_wrapper=async t=>{if(this.state.termdbConfig.termMatch2geneSet){const e=await d("termdb",{body:{genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel,genesetByTermId:t.id}});t._geneset=e}e.tree.click_term(t)}}if(e.tree.disable_terms)e.search.disable_terms=e.tree.disable_terms}return e}async preApiFreeze(e){try{if(this.opts.vocabApi){e.vocabApi=this.opts.vocabApi}else{const t={vocab:this.opts.state.vocab||{genome:this.opts.state.genome,dslabel:this.opts.state.dslabel}};e.vocabApi=await x({app:this.api,state:t,fetchOpts:this.opts.fetchOpts})}e.appInit=te}catch(e){console.log(e);throw e}}async init(){try{this.store=await Y({app:this.api,state:this.opts.state});this.state=await this.store.copyState();await this.setComponents();await this.api.dispatch()}catch(e){this.printError(e)}}async setComponents(){try{const e=this.state.nav?.header_mode;const t={search:X({app:this.api,holder:this.dom.searchDiv,isVisible:e!=="hide_search"}),termTypeSearch:z({app:this.api,holder:this.dom.termTypeSearchDiv,topbar:this.dom.topbar,genome:this.opts.vocabApi?.app?.opts?.genome,click_term:this.opts.tree?.click_term,submit_lst:this.opts.tree?.submit_lst,submitDiv:this.dom.submitDiv}),tree:P({app:this.api,holder:this.dom.treeDiv,headerDiv:this.dom.headerDiv,expandAll:e=="hide_search"})};if(this.opts.tree&&this.opts.tree.click_term2select_tvs){t.submenu=W({app:this.api,holder:this.dom.holder.append("div").style("display","none")})}this.components=await c(t)}catch(e){throw e}}async main(){this.api.vocabApi.main();const e=this.state.selectedTerms.length;this.dom.submitBtn.property("disabled",!e).text(!e?"Search or click term(s)":`Submit ${e} term${e>1?"s":""}`);await this.mayShowCustomTerms();this.dom.holder.selectAll("search, .termbtn, button").attr("tabindex",0);this.dom.holder.selectAll(".termbtn").on("keyup",(e=>{if(e.key=="Enter")e.target.click()}))}printError(e){l(this.dom.errdiv,"Error: "+(e.message||e));if(e.stack)console.log(e.stack)}async mayShowCustomTerms(){if(Object.keys(this.state.submenu).length)return this.dom.customTermDiv.style("display","none");const e=await this.api.vocabApi.getCustomTerms();if(!Array.isArray(e)||e.length==0)return this.dom.customTermDiv.style("display","none");const t=[];for(const s of e){const e=v(s.term,this.state.tree.usecase,this.state.termdbConfig);if(e.has("plot"))t.push(s)}if(t.length==0)return this.dom.customTermDiv.style("display","none");this.dom.customTermDiv.selectAll("*").remove();this.dom.customTermDiv.append("div").text("CUSTOM VARIABLES").style("font-size",".7em");for(const e of t){this.dom.customTermDiv.append("div").style("margin-bottom","3px").append("div").text(e.term.name).attr("class","sja_filter_tag_btn").style("padding","3px 6px").style("border-radius","6px").on("click",(()=>{if(!this.opts.tree)return;if(this.opts.tree.click_term){this.opts.tree.click_term(e);return}if(this.opts.tree.click_term2select_tvs){this.api.dispatch({type:"submenu_set",submenu:{term:e.term,type:"tvs"}});return}}))}}}const te=n(ee);export{te as appInit};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as t,d as e,M as s,o as r,n as o,y as i}from"./app-b369b169.js";import{r as a,s as n}from"./recover-49e09de0.js";import{v as p}from"./FilterRxComp-701a1480.js";import{n as c}from"./sampleScatter-2d0ed680.js";import{summaryInit as l}from"./summary-5ec455d3.js";import"./termsetting-33ea66f1.js";import"./tslib.es6-c3c2d88f.js";import"path";import"./FilterStateless-54c0b763.js";import"./app-3320ab6f.js";import"./termInfo-bf99a37e.js";import"./toggleButtons-dbdbad01.js";import"./table-29d5a973.js";import"./genesearch-a4e19f0d.js";import"./checkbox-96437f4d.js";import"./rehydrateFilter-12d118cb.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-8b656cc3.js";import"./controls-287e6efa.js";import"./controls.btns-79b805dd.js";import"./controls.config-28d6d6a8.js";import"./zoom-25dce8b9.js";import"./pointer-c7475677.js";import"./nodrag-16ad4b03.js";import"./lasso-f767f634.js";import"./drag-7b30ba17.js";import"./downloadTextfile-5723af95.js";import"./sampleView-484ab133.js";import"./select2Terms-b21e184a.js";import"./svg.download-35926549.js";import"./sampleScatter.rendererThree-0b12ac61.js";import"./axis-747c801e.js";import"./line-264f8f9e.js";import"./constant-426a1483.js";import"./violin-2ba509eb.js";import"./violin.renderer-ce024265.js";import"./brush-aa175142.js";import"./basis-3870f5ba.js";import"./log-99af3443.js";import"./html.legend-a3f4ebfe.js";import"./violin.interactivity-4da6d7a9.js";import"./niceNumLabels-238aabce.js";import"./barchart-8277ed43.js";import"./bars.settings-64bb4642.js";import"./bars.renderer-dcfdd59b.js";import"./svg.legend-8d490df2.js";import"./barchart.events-da29c90d.js";function d(t){switch(t){case"../plots/DEanalysis.js":return import("./DEanalysis-95bad59a.js");case"../plots/Disco.js":return import("./Disco-a6e921a0.js");case"../plots/DziViewer.js":return import("./DziViewer-354a790d.js");case"../plots/WSIViewer.js":return import("./WSIViewer-dc7f8eb0.js");case"../plots/barchart.data.js":return import("./FilterRxComp-701a1480.js").then((function(t){return t.j}));case"../plots/barchart.events.js":return import("./barchart.events-da29c90d.js");case"../plots/barchart.js":return import("./barchart-8277ed43.js");case"../plots/bars.renderer.js":return import("./bars.renderer-dcfdd59b.js");case"../plots/bars.settings.js":return import("./bars.settings-64bb4642.js");case"../plots/boxplot.js":return import("./boxplot-e17a17b7.js");case"../plots/brainImaging.js":return import("./brainImaging-bf2ceee9.js");case"../plots/controls.btns.js":return import("./controls.btns-79b805dd.js");case"../plots/controls.config.js":return import("./controls.config-28d6d6a8.js");case"../plots/controls.js":return import("./controls-287e6efa.js");case"../plots/cuminc.js":return import("./cuminc-9e275854.js");case"../plots/dataDownload.js":return import("./dataDownload-3a3d4f33.js");case"../plots/dictionary.js":return import("./dictionary-c5a19d90.js");case"../plots/facet.js":return import("./facet-a9b44ef3.js");case"../plots/geneExpression.js":return import("./geneExpression-589f485b.js");case"../plots/geneORA.js":return import("./geneORA-903a780f.js");case"../plots/geneset.js":return import("./geneset-108a39d2.js");case"../plots/genomeBrowser.controls.js":return import("./genomeBrowser.controls-d5067811.js");case"../plots/genomeBrowser.js":return import("./genomeBrowser-12f86a36.js");case"../plots/gsea.js":return import("./gsea-543dab25.js");case"../plots/hierCluster.config.js":return import("./hierCluster.config-98e82dff.js");case"../plots/hierCluster.interactivity.js":return import("./hierCluster.interactivity-e56f6542.js").then((function(t){return t.i}));case"../plots/hierCluster.js":return import("./hierCluster-26e14090.js");case"../plots/hierCluster.renderers.js":return import("./hierCluster.renderers-74a64cf5.js").then((function(t){return t.r}));case"../plots/imagePlot.js":return import("./imagePlot-b9eae4ae.js");case"../plots/matrix.cells.js":return import("./matrix.cells-914dd0c6.js");case"../plots/matrix.cluster.js":return import("./matrix.cluster-783ceab0.js");case"../plots/matrix.config.js":return import("./matrix.config-6ce74dfe.js");case"../plots/matrix.controls.js":return import("./matrix.controls-7b2a6f95.js");case"../plots/matrix.data.js":return import("./matrix.data-dac4f1b7.js").then((function(t){return t.m}));case"../plots/matrix.dom.js":return import("./matrix.dom-4e10bbe9.js");case"../plots/matrix.groups.js":return import("./matrix.groups-b9fca14a.js").then((function(t){return t.m}));case"../plots/matrix.interactivity.js":return import("./matrix.interactivity-84169b43.js");case"../plots/matrix.js":return import("./matrix-00bb50ff.js");case"../plots/matrix.layout.js":return import("./matrix.layout-dd5a44fd.js").then((function(t){return t.m}));case"../plots/matrix.legend.js":return import("./matrix.legend-ac6d45e6.js").then((function(t){return t.m}));case"../plots/matrix.renderers.js":return import("./matrix.renderers-78010275.js");case"../plots/matrix.serieses.js":return import("./matrix.serieses-9b4fd744.js").then((function(t){return t.m}));case"../plots/matrix.sort.js":return import("./matrix.sort-014d798d.js");case"../plots/matrix.sorterUi.js":return import("./matrix.sorterUi-9bf7e6f9.js");case"../plots/plot.app.js":return import("./plot.app-30c4b8e5.js");case"../plots/plot.brainImaging.js":return import("./plot.brainImaging-2ceb6023.js");case"../plots/plot.disco.js":return import("./plot.disco-6011f87f.js");case"../plots/plot.ssgq.js":return import("./plot.ssgq-5581dc56.js");case"../plots/profileBarchart.js":return import("./profileBarchart-0476f1f8.js");case"../plots/profilePlot.js":return import("./profilePlot-c7e099e8.js");case"../plots/profilePolar.js":return import("./profilePolar-6b981e63.js");case"../plots/profileRadar.js":return import("./profileRadar-bca1cc03.js");case"../plots/profileRadarFacility.js":return import("./profileRadarFacility-bbb1ecd8.js");case"../plots/profileSummary.js":return import("./profileSummary-b114204f.js");case"../plots/regression.inputs.js":return import("./regression.inputs-a761f40d.js").then((function(t){return t.b}));case"../plots/regression.inputs.term.js":return import("./regression.inputs-a761f40d.js").then((function(t){return t.a}));case"../plots/regression.inputs.values.table.js":return import("./regression.inputs.values.table-5929d25a.js");case"../plots/regression.js":return import("./regression.inputs-a761f40d.js").then((function(t){return t.r}));case"../plots/regression.results.js":return import("./regression.results-69bc42d0.js").then((function(t){return t.r}));case"../plots/sampleScatter.interactivity.js":return import("./sampleScatter-2d0ed680.js").then((function(t){return t.a}));case"../plots/sampleScatter.js":return import("./sampleScatter-2d0ed680.js").then((function(t){return t.b}));case"../plots/sampleScatter.renderer.js":return import("./sampleScatter-2d0ed680.js").then((function(t){return t.s}));case"../plots/sampleScatter.rendererThree.js":return import("./sampleScatter.rendererThree-0b12ac61.js").then((function(t){return t.c}));case"../plots/sampleView.js":return import("./sampleView-484ab133.js");case"../plots/scatter.js":return import("./scatter-205e013f.js");case"../plots/singleCellPlot.js":return import("./singleCellPlot-73b2738f.js");case"../plots/stattable.js":return import("./stattable-7c5ecc2f.js");case"../plots/summary.js":return import("./summary-5ec455d3.js");case"../plots/survival.js":return import("./survival-92250664.js");case"../plots/table.js":return import("./table-ad744310.js");case"../plots/variantBrowser.js":return import("./variantBrowser-7c540224.js");case"../plots/violin.interactivity.js":return import("./violin.interactivity-4da6d7a9.js");case"../plots/violin.js":return import("./violin-2ba509eb.js");case"../plots/violin.renderer.js":return import("./violin.renderer-ce024265.js");default:return new Promise((function(e,s){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}class m{constructor(t){this.type="plot";u(this);this.initUi(t)}reactsTo(t){if(t.type.includes("cache_termq"))return true;if(t.type.endsWith("_group"))return true;if(t.type.startsWith("plot_"))return t.id===this.id;if(t.type.startsWith("filter"))return true;if(t.type.startsWith("cohort"))return true;if(t.type=="app_refresh")return true;if(t.type.endsWith("customTerm"))return true}getState(t){const e=t.plots.find((t=>t.id===this.id));if(!e){throw`No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`}return{config:e,groups:t.groups,_scope_:t._scope_}}async main(){this.dom.errdiv.style("display","none");if(!this.components)await this.setComponents(this.opts)}async setComponents(t){this.components={recover:await a({app:this.app,holder:this.dom.localRecoverDiv,getState:t=>this.getState(t),reactsTo:t=>t.id==this.id&&(t.type=="plot_edit"||t.type=="plot_nestedEdits")&&t._track_!="none",plot_id:this.id,maxHistoryLen:10})};const s=await d(`../plots/${t.chartType}.js`);this.components.chart=await s.componentInit({app:this.app,holder:this.dom.viz,header:this.dom.paneTitleDiv,id:this.id,plotDiv:e(this.dom.holder.app_div.node().parentNode)})}destroy(){this.dom.holder.app_div.selectAll("*").remove();this.dom.holder.app_div.remove();for(const t in this.dom){delete this.dom[t]}}}const j=t(m);function u(t){t.initUi=function(e){const r=e.holder;r.header.style("padding",0);try{t.dom={tip:new s({padding:"0px"}),holder:r,paneTitleDiv:r.header.append("div").style("display","inline-block").style("color","#555").style("padding-left","7px").style("vertical-align","sub"),localRecoverDiv:r.header.append("div").style("display","inline-block"),body:r.body.style("white-space","nowrap").style("overflow-x","auto"),errdiv:r.body.append("div").style("display","none").style("padding","5px").style("background-color","rgba(255,100,100,0.2)"),viz:r.body.append("div")}}catch(e){t.dom.errdiv.style("display","none").text(e)}}}class h{constructor(t){if(t.addLoginCallback){t.addLoginCallback((()=>this.api.dispatch({type:"app_refresh"})))}this.type="app";this.dom={holder:t.holder,topbar:t.holder.append("div"),errdiv:t.holder.append("div"),plotDiv:t.holder.append("div")};this.plotIdToSandboxId={}}validateOpts(t={}){if(!t.holder)throw`missing opts.holder in the MassApp constructor argument`;if(!t.callbacks)t.callbacks={};if(!t.state.vocab)t.state.vocab={};if(typeof t.state.vocab!="object")throw"opts.state.vocab{} is not an object";if(t.state.genome){t.state.vocab.genome=t.state.genome;delete t.state.genome}if(t.state.dslabel){t.state.vocab.dslabel=t.state.dslabel;delete t.state.dslabel}return t}async preApiFreeze(t){try{t.tip=new s({padding:"5px"});t.tip.d.on("keyup",(e=>{if(e.key=="Escape")t.tip.hide()}));t.printError=t=>this.printError(t);const e=this.opts.state.vocab;t.vocabApi=await p({app:t,state:{vocab:this.opts.state.vocab},fetchOpts:this.opts.fetchOpts,getDatasetAccessToken:this.opts.getDatasetAccessToken});t.hasWebGL=function(){try{var t=document.createElement("canvas");return!!(window.WebGLRenderingContext&&(t.getContext("webgl")||t.getContext("experimental-webgl")))}catch(t){return false}};this.opts.state.vocab=t.vocabApi.vocab}catch(t){throw t}}async init(){try{const t="debounceInterval"in this.opts?this.opts.debounceInterval:0;if(this.opts.embeddedSessionState){Object.assign(this.opts.state,this.opts.embeddedSessionState)}this.store=await n({app:this.api,state:this.opts.state,debounceInterval:t});this.state=await this.store.copyState();this.components={};if(this.state.nav.header_mode!="hidden"){this.components.nav=await c({app:this.api,holder:this.dom.topbar,header_mode:this.state&&this.state.nav&&this.state.nav.header_mode,vocab:this.state.vocab,massSessionDuration:this.state.termdbConfig.massSessionDuration})}this.components.plots={};await this.api.dispatch()}catch(t){this.printError(t);throw t}}async main(){await this.api.vocabApi.main();const t={};let e;for(const s of this.state.plots){if(this.components.plots&&!(s.id in this.components.plots)){e=o(this.dom.plotDiv,{close:()=>{this.api.dispatch({type:"plot_delete",id:s.id})},plotId:s.id,beforePlotId:s.insertBefore||null,style:{width:"98.5%"}});if(s.chartType=="summary")t[s.id]=l(Object.assign({app:this.api,holder:e},s));else t[s.id]=j(Object.assign({app:this.api,holder:e},s))}}const s=Object.keys(t).length;if(s){await Promise.all(Object.values(t));for(const e in t){this.components.plots[e]=await t[e]}}for(const t in this.components.plots){if(!this.state.plots.find((e=>e.id===t))){this.components.plots[t].destroy();delete this.components.plots[t]}}}printError(t){i(this.dom.errdiv||this.opts.holder,"Error: "+(t.message||t));if(t.stack)console.log(t.stack);this.bus.emit("error")}}const b=r(h);export{b as appInit};
|