@sjcrh/proteinpaint-client 2.76.1 → 2.76.2
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-593951c7.js → 2dmaf-f240211f.js} +1 -1
- package/dist/{AppHeader-29b88e14.js → AppHeader-c9432a24.js} +1 -1
- package/dist/{ColorScale-3d3c42dc.js → ColorScale-b991fc9e.js} +1 -1
- package/dist/{DEanalysis-f81e0f19.js → DEanalysis-bbfad00d.js} +1 -1
- package/dist/{Disco-db386f7a.js → Disco-b7c9bf72.js} +1 -1
- package/dist/{Disco.UI-8ed9cb39.js → Disco.UI-a5296c36.js} +1 -1
- package/dist/{DragControls-d6250d18.js → DragControls-ca3fa0cf.js} +1 -1
- package/dist/{DziViewer-9352e224.js → DziViewer-28915c11.js} +1 -1
- package/dist/{FilterRxComp-0f35b322.js → FilterRxComp-02e68f1b.js} +1 -1
- package/dist/{FilterStateless-b1c6ee04.js → FilterStateless-16a33070.js} +1 -1
- package/dist/{HicApp-14b94b20.js → HicApp-e713aa40.js} +1 -1
- package/dist/{OrbitControls-45f56ed4.js → OrbitControls-2466d420.js} +1 -1
- package/dist/{WSIViewer-80f60272.js → WSIViewer-957695a8.js} +1 -1
- package/dist/{adSandbox-94424b88.js → adSandbox-27d93bc0.js} +1 -1
- package/dist/app-42f69951.js +1 -0
- package/dist/{app-2cd97738.js → app-6fb77603.js} +1 -1
- package/dist/{app-686b9547.js → app-d215327f.js} +1 -1
- package/dist/app.js +1 -1
- package/dist/{bam-6631640f.js → bam-d67e5315.js} +1 -1
- package/dist/{barchart-3c5d734c.js → barchart-2898d229.js} +1 -1
- package/dist/{barchart.events-df44e666.js → barchart.events-426d737a.js} +1 -1
- package/dist/{bars.renderer-b232d882.js → bars.renderer-71935d34.js} +1 -1
- package/dist/{block-4134e823.js → block-75d4ff92.js} +1 -1
- package/dist/block.lazyload-d2951c91.js +1 -0
- package/dist/{block.legend-d2b7f1cb.js → block.legend-93d85a6e.js} +1 -1
- package/dist/{block.mds-ebe7b58d.js → block.mds-84b9d1c1.js} +1 -1
- package/dist/{block.mds.cnv-99f0a414.js → block.mds.cnv-a991ed79.js} +1 -1
- package/dist/{block.mds.expressionrank-96bf864b.js → block.mds.expressionrank-33b858de.js} +1 -1
- package/dist/{block.mds.expressionstat-dcab3fd1.js → block.mds.expressionstat-3093599f.js} +1 -1
- package/dist/{block.mds.geneboxplot-e5b2a4ce.js → block.mds.geneboxplot-b8391d18.js} +1 -1
- package/dist/{block.mds.junction-534eef9b.js → block.mds.junction-69708c7f.js} +1 -1
- package/dist/{block.mds.svcnv-de6a3c7d.js → block.mds.svcnv-322baea6.js} +1 -1
- package/dist/{block.mds.svcnv.share-2c2c16db.js → block.mds.svcnv.share-c5c38237.js} +1 -1
- package/dist/{block.mds2-373fcb4d.js → block.mds2-de4811dd.js} +1 -1
- package/dist/{block.svg-be5d741d.js → block.svg-ac9fec2d.js} +1 -1
- package/dist/{block.tk.aicheck-f2da5e81.js → block.tk.aicheck-ac4b8d4d.js} +1 -1
- package/dist/{block.tk.ase-ef848944.js → block.tk.ase-6dc0f9f1.js} +1 -1
- package/dist/{block.tk.bam-11fcba17.js → block.tk.bam-8f68b41d.js} +1 -1
- package/dist/{block.tk.bedgraphdot-a81b0709.js → block.tk.bedgraphdot-d8878860.js} +1 -1
- package/dist/{block.tk.bigwig.ui-f8e5ba71.js → block.tk.bigwig.ui-f6ed051c.js} +1 -1
- package/dist/{block.tk.hicstraw-e7072b25.js → block.tk.hicstraw-725bdc8a.js} +1 -1
- package/dist/{block.tk.junction-1c9a7854.js → block.tk.junction-f8b0b51d.js} +1 -1
- package/dist/{block.tk.junction.textmatrixui-ffecbb16.js → block.tk.junction.textmatrixui-252e7d7e.js} +1 -1
- package/dist/{block.tk.ld-274c3a82.js → block.tk.ld-11acf730.js} +1 -1
- package/dist/{block.tk.menu-e970cd4a.js → block.tk.menu-5e04436d.js} +1 -1
- package/dist/{block.tk.pgv-f4d4dbf7.js → block.tk.pgv-fef17dc4.js} +1 -1
- package/dist/{boxplot-44d3b48f.js → boxplot-4c9a5479.js} +1 -1
- package/dist/{brainImaging-2eaa419d.js → brainImaging-7716bc66.js} +1 -1
- package/dist/{brush-bb4ae2fb.js → brush-9faa7ae7.js} +1 -1
- package/dist/{categorical-db9b0175.js → categorical-1dea48ba.js} +1 -1
- package/dist/{condition-4e788f7d.js → condition-ebac4f75.js} +1 -1
- package/dist/{controls-3c1691d7.js → controls-268e40e6.js} +1 -1
- package/dist/{controls.btns-5b1240c8.js → controls.btns-5bf9e7d7.js} +1 -1
- package/dist/controls.config-2f0fa061.js +1 -0
- package/dist/{cuminc-c4db28f0.js → cuminc-8dffb765.js} +1 -1
- package/dist/{customdata.inputui-f9234d1f.js → customdata.inputui-b229d3a0.js} +1 -1
- package/dist/{dataDownload-a4dfa2d0.js → dataDownload-452ae3cd.js} +1 -1
- package/dist/{databrowser.ui-a64bab0c.js → databrowser.ui-2197fc73.js} +1 -1
- package/dist/{density-69a732f6.js → density-09feb0c9.js} +1 -1
- package/dist/{dictionary-e2232e84.js → dictionary-a132a3cc.js} +1 -1
- package/dist/{drag-d8daa62f.js → drag-2e9c80bb.js} +1 -1
- package/dist/{e2pca-f9324654.js → e2pca-4f1648e3.js} +1 -1
- package/dist/{ep-a5c1ee3a.js → ep-1d4c58b4.js} +1 -1
- package/dist/{facet-98971c68.js → facet-fa4fe49c.js} +1 -1
- package/dist/{fusion.parse-466ded6d.js → fusion.parse-7dfd6988.js} +1 -1
- package/dist/{geneExpClustering-66c05fb1.js → geneExpClustering-ed9121b8.js} +1 -1
- package/dist/{geneExpression-ff46a389.js → geneExpression-394672ff.js} +1 -1
- package/dist/{geneExpression-b5d0261f.js → geneExpression-66208299.js} +1 -1
- package/dist/geneExpression-c61e8f1c.js +1 -0
- package/dist/{geneORA-f1a90d02.js → geneORA-9456872c.js} +1 -1
- package/dist/{geneVariant-1cf17b3b.js → geneVariant-beaf9adb.js} +1 -1
- package/dist/{geneVariant-d0b9e1cb.js → geneVariant-f17cda85.js} +1 -1
- package/dist/{genefusion.ui-89a727ea.js → genefusion.ui-9238ec7f.js} +1 -1
- package/dist/{genesearch-41cb55ce.js → genesearch-ffd88bf2.js} +1 -1
- package/dist/{geneset-b63496eb.js → geneset-0315daf8.js} +1 -1
- package/dist/{genomeBrowser-ec8fbddc.js → genomeBrowser-608b924e.js} +1 -1
- package/dist/{genomeBrowser.controls-2dcaf4f5.js → genomeBrowser.controls-2601cab5.js} +1 -1
- package/dist/{groupsetting-3fef59f9.js → groupsetting-e3a4ecd5.js} +1 -1
- package/dist/{gsea-3075c82c.js → gsea-0c0cf8de.js} +1 -1
- package/dist/{hierCluster-33a828a1.js → hierCluster-7ab62ca5.js} +1 -1
- package/dist/hierCluster.config-f4daaf92.js +1 -0
- package/dist/{hierCluster.interactivity-6d453881.js → hierCluster.interactivity-7f475259.js} +1 -1
- package/dist/{hierCluster.renderers-6279d7fb.js → hierCluster.renderers-19b79639.js} +1 -1
- package/dist/{html.legend-fac5cb07.js → html.legend-80b2b3ec.js} +1 -1
- package/dist/{imagePlot-38254245.js → imagePlot-1ef24562.js} +1 -1
- package/dist/{lasso-e8b9500e.js → lasso-1a02a545.js} +1 -1
- package/dist/launch.adhoc-e124c993.js +1 -0
- package/dist/{leftlabel.sample-afcdcefd.js → leftlabel.sample-59f99ef5.js} +1 -1
- package/dist/{legacyDataset-3b08c91a.js → legacyDataset-fbaa5ebb.js} +1 -1
- package/dist/{log-4d84c357.js → log-c26b6cfd.js} +1 -1
- package/dist/{lollipop-64c5cdfc.js → lollipop-3aebe5d3.js} +1 -1
- package/dist/{maf-fd4ffbd0.js → maf-c439c851.js} +1 -1
- package/dist/{maftimeline-3e892da7.js → maftimeline-0da64e54.js} +1 -1
- package/dist/{matrix-e371888a.js → matrix-38cd47c3.js} +1 -1
- package/dist/{matrix.cells-eb4110a7.js → matrix.cells-a018d731.js} +1 -1
- package/dist/{matrix.cluster-0df274ed.js → matrix.cluster-a6e713e8.js} +1 -1
- package/dist/{matrix.config-3ef822b9.js → matrix.config-2c550b5d.js} +1 -1
- package/dist/matrix.controls-42ad4912.js +1 -0
- package/dist/{matrix.data-27b8e3a9.js → matrix.data-2b814c9f.js} +1 -1
- package/dist/{matrix.dom-1bbe1f39.js → matrix.dom-1e0da5b3.js} +1 -1
- package/dist/{matrix.groups-67606700.js → matrix.groups-824a7244.js} +1 -1
- package/dist/{matrix.interactivity-cdcc56c9.js → matrix.interactivity-1cb56534.js} +1 -1
- package/dist/{matrix.layout-857cd336.js → matrix.layout-47e44357.js} +1 -1
- package/dist/{matrix.legend-09f6dc57.js → matrix.legend-9af0c757.js} +1 -1
- package/dist/{matrix.renderers-d392fb69.js → matrix.renderers-337ce240.js} +1 -1
- package/dist/{matrix.serieses-b03b62aa.js → matrix.serieses-7b7184c9.js} +1 -1
- package/dist/{matrix.sort-9440c86a.js → matrix.sort-1ac05842.js} +1 -1
- package/dist/{matrix.sorterUi-2c5eb35f.js → matrix.sorterUi-1c60c145.js} +1 -1
- package/dist/{mavb-9d86df89.js → mavb-da8d1a0a.js} +1 -1
- package/dist/{mds.fimo-bffccb9f.js → mds.fimo-8604c3f8.js} +1 -1
- package/dist/{mds.samplescatterplot-b3908cc7.js → mds.samplescatterplot-3f09ae0e.js} +1 -1
- package/dist/{mds.survivalplot-9ad7dabc.js → mds.survivalplot-1d8f2b7e.js} +1 -1
- package/dist/{metaboliteIntensity-ec3176f4.js → metaboliteIntensity-bbb23c76.js} +1 -1
- package/dist/niceNumLabels-29a7c6ca.js +1 -0
- package/dist/{nodrag-ab7d5a9f.js → nodrag-b2737073.js} +1 -1
- package/dist/{notify-59f61230.js → notify-0cb8904f.js} +1 -1
- package/dist/{numeric-4853b665.js → numeric-24dacbee.js} +1 -1
- package/dist/{numeric.binary-1dd9a2b4.js → numeric.binary-f382cc98.js} +1 -1
- package/dist/{numeric.continuous-ed132eea.js → numeric.continuous-6feb34a7.js} +1 -1
- package/dist/{numeric.discrete-d780d076.js → numeric.discrete-ed10bbc1.js} +1 -1
- package/dist/{numeric.spline-abe07708.js → numeric.spline-a35cfbf0.js} +1 -1
- package/dist/{numeric.toggle-647423dd.js → numeric.toggle-2f98d6e5.js} +1 -1
- package/dist/oncomatrix-c0b2d635.js +1 -0
- package/dist/{parseData-567f3d70.js → parseData-292648dd.js} +1 -1
- package/dist/{plot.2dvaf-4016e75e.js → plot.2dvaf-6ae22dc1.js} +1 -1
- package/dist/plot.app-2a805759.js +1 -0
- package/dist/plot.barplot-34841e70.js +1 -0
- package/dist/{plot.boxplot-76229491.js → plot.boxplot-87ac2ce9.js} +1 -1
- package/dist/{plot.brainImaging-39b80a1c.js → plot.brainImaging-32a484b6.js} +1 -1
- package/dist/{plot.disco-9a544f9a.js → plot.disco-1fdfee3c.js} +1 -1
- package/dist/{plot.dzi-f1658ebf.js → plot.dzi-e3d0f610.js} +1 -1
- package/dist/{plot.ssgq-aeb2dabc.js → plot.ssgq-d33113d5.js} +1 -1
- package/dist/{plot.vaf2cov-ba8332ed.js → plot.vaf2cov-9f4f1776.js} +1 -1
- package/dist/{plot.wsi-2d802557.js → plot.wsi-dea124a7.js} +1 -1
- package/dist/{profileBarchart-72adc533.js → profileBarchart-58f0a8c0.js} +1 -1
- package/dist/{profileHome-37fd52e5.js → profileHome-7f404152.js} +1 -1
- package/dist/{profilePlot-0b897a05.js → profilePlot-4db8ca78.js} +1 -1
- package/dist/{profilePolar-a7248d48.js → profilePolar-50b8e40e.js} +1 -1
- package/dist/{profileRadar-1ba5d8fd.js → profileRadar-fff0b004.js} +1 -1
- package/dist/{profileRadarFacility-452e76ef.js → profileRadarFacility-d6d34c15.js} +1 -1
- package/dist/{profileSummary-7f0eacf0.js → profileSummary-04b8b15b.js} +1 -1
- package/dist/{recover-74f2e965.js → recover-299ffdb3.js} +1 -1
- package/dist/{regression.inputs-ff00f74e.js → regression.inputs-14df7c31.js} +1 -1
- package/dist/{regression.inputs.values.table-1753d56b.js → regression.inputs.values.table-d79efa9e.js} +1 -1
- package/dist/{regression.results-6f85a5dc.js → regression.results-4767144e.js} +1 -1
- package/dist/{renderPvalueTable-17558d6a.js → renderPvalueTable-002cc8ff.js} +1 -1
- package/dist/{sampleScatter-97917406.js → sampleScatter-55d9eb74.js} +1 -1
- package/dist/{sampleScatter.rendererThree-4649d1ec.js → sampleScatter.rendererThree-ef289434.js} +2 -2
- package/dist/{sampleView-f86dc5ea.js → sampleView-1dff3fca.js} +1 -1
- package/dist/{samplelst-4a5512df.js → samplelst-d2db0f24.js} +1 -1
- package/dist/{samplematrix-1192e5e2.js → samplematrix-0841387f.js} +1 -1
- package/dist/{scatter-cc1b0d07.js → scatter-f8285107.js} +1 -1
- package/dist/{select2Terms-d4f6ed9e.js → select2Terms-d48d037e.js} +1 -1
- package/dist/{selectGenomeWithTklst-b5cfd153.js → selectGenomeWithTklst-9af86d31.js} +1 -1
- package/dist/{singleCellCellType-d8c58253.js → singleCellCellType-fd1606b8.js} +1 -1
- package/dist/{singleCellGeneExpression-b7209531.js → singleCellGeneExpression-537f1157.js} +1 -1
- package/dist/{singleCellPlot-e6f83b2a.js → singleCellPlot-eff5760b.js} +1 -1
- package/dist/{singlecell-321dd973.js → singlecell-38336cbc.js} +1 -1
- package/dist/{singlecell-879235b3.js → singlecell-87b4b9a9.js} +1 -1
- package/dist/{snp-b046b7e6.js → snp-b81ef740.js} +1 -1
- package/dist/snp-f6123244.js +1 -0
- package/dist/{snplocus-61ff1c10.js → snplocus-acafb1ba.js} +1 -1
- package/dist/{spliceevent.a53ss.diagram-1a84db58.js → spliceevent.a53ss.diagram-5f8352eb.js} +1 -1
- package/dist/{spliceevent.exonskip.diagram-da10648b.js → spliceevent.exonskip.diagram-0d30a735.js} +1 -1
- package/dist/spliceevent.exonskip.getdefault-237c481c.js +1 -0
- package/dist/{spliceevent.noeventdiagram-1d6d790d.js → spliceevent.noeventdiagram-df9ce4bc.js} +1 -1
- package/dist/{spliceevent.phrase-2ca0ce59.js → spliceevent.phrase-a8401d53.js} +1 -1
- package/dist/{stattable-c5f12d9c.js → stattable-46cde32c.js} +1 -1
- package/dist/{style.gdc-5b7d90c6.js → style.gdc-72d730f2.js} +1 -1
- package/dist/{summary-0624f5e6.js → summary-a6c15c9e.js} +1 -1
- package/dist/{sunburst-30295714.js → sunburst-fe95832e.js} +1 -1
- package/dist/{survival-fcc7719f.js → survival-52714cd3.js} +1 -1
- package/dist/survival-57ff3c03.js +1 -0
- package/dist/{svg.download-e89a7369.js → svg.download-f4aa48e4.js} +1 -1
- package/dist/{svg.legend-c93f2980.js → svg.legend-749348e0.js} +1 -1
- package/dist/{svgraph-6ab3011b.js → svgraph-b46f1f92.js} +1 -1
- package/dist/{svmr-3ad3d600.js → svmr-9a76c6d4.js} +1 -1
- package/dist/{table-f50a9344.js → table-0daf2b89.js} +1 -1
- package/dist/{table-4d3a771e.js → table-bf40249b.js} +1 -1
- package/dist/{termInfo-d0a9e65f.js → termInfo-491b10af.js} +1 -1
- package/dist/{termdb.bins-01e8cce6.js → termdb.bins-39d11f24.js} +1 -1
- package/dist/termsetting-492eefa7.js +1 -0
- package/dist/{tk-e74c9beb.js → tk-ac524564.js} +1 -1
- package/dist/{toggleButtons-04c5ad7c.js → toggleButtons-c4d6f260.js} +1 -1
- package/dist/{tp.ui-7b24f0ef.js → tp.ui-0a476325.js} +1 -1
- package/dist/tvs.density-034b506d.js +1 -0
- package/dist/{tvs.geneVariant-418ed4ff.js → tvs.geneVariant-c59c8b54.js} +1 -1
- package/dist/{tvs.numeric-de14101f.js → tvs.numeric-aa1f892f.js} +1 -1
- package/dist/{tvs.samplelst-15bb62f1.js → tvs.samplelst-515f27b9.js} +1 -1
- package/dist/{uiUtils-ff2d4a6a.js → uiUtils-ea7dfea2.js} +1 -1
- package/dist/{variantBrowser-261373bf.js → variantBrowser-14d5c3f6.js} +1 -1
- package/dist/{vcf-145bf5dd.js → vcf-d357ce08.js} +1 -1
- package/dist/{violin-e647aac9.js → violin-74d26b75.js} +1 -1
- package/dist/{violin.interactivity-30a239fe.js → violin.interactivity-bf40ddde.js} +1 -1
- package/dist/{violin.renderer-e29d2700.js → violin.renderer-469fa0ff.js} +1 -1
- package/dist/{violinRenderer-08b3b58c.js → violinRenderer-14fa200d.js} +1 -1
- package/dist/{viridis-d86ad99b.js → viridis-cc59f478.js} +1 -1
- package/dist/{y-06b0d47c.js → y-59cbff5e.js} +1 -1
- package/dist/{zoom-d6ef6f3f.js → zoom-f445cfef.js} +1 -1
- package/package.json +1 -1
- package/dist/app-f031940d.js +0 -1
- package/dist/block.lazyload-eda77d9b.js +0 -1
- package/dist/controls.config-81cd5749.js +0 -1
- package/dist/geneExpression-5685eae2.js +0 -1
- package/dist/hierCluster.config-fa799d06.js +0 -1
- package/dist/launch.adhoc-2799109b.js +0 -1
- package/dist/matrix.controls-42bb2063.js +0 -1
- package/dist/niceNumLabels-5f45218a.js +0 -1
- package/dist/oncomatrix-7ac995a2.js +0 -1
- package/dist/plot.app-d6fe76e2.js +0 -1
- package/dist/plot.barplot-d2fc5020.js +0 -1
- package/dist/snp-541ec14d.js +0 -1
- package/dist/spliceevent.exonskip.getdefault-8028e522.js +0 -1
- package/dist/survival-816e055a.js +0 -1
- package/dist/termsetting-ad8c4f3a.js +0 -1
- package/dist/tvs.density-b2790080.js +0 -1
|
@@ -1 +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-2cd97738.js";import{a as c}from"./genesearch-41cb55ce.js";import{T as l}from"./toggleButtons-04c5ad7c.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};
|
|
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-6fb77603.js";import{a as c}from"./genesearch-ffd88bf2.js";import{T as l}from"./toggleButtons-c4d6f260.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:e.runargs.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]];let i;if(t.button.runargs.host){i=await yt(t.button.runargs.host)}else 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"}async function yt(e){const t=`${e}/genomes?embedder=${sessionStorage.getItem("hostURL").replace(/^https?:\/\//,"")}`;try{const e=await fetch(t);if(!e.ok)throw new Error(`HTTP Response error for genomes url ${e.status}`);const n=await e.json();return n}catch(e){console.error(`Error fetching genomes: ${e} from ${t}`);return null}}var xt=Object.freeze({__proto__:null,openSandbox:Ve});export{xt as a,d as m,Ve as o};
|
|
@@ -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-6fb77603.js";import{r as a,s as n}from"./recover-299ffdb3.js";import{v as p}from"./FilterRxComp-02e68f1b.js";import{n as c}from"./sampleScatter-55d9eb74.js";import{summaryInit as l}from"./summary-a6c15c9e.js";import"./termsetting-492eefa7.js";import"./tslib.es6-c3c2d88f.js";import"path";import"./FilterStateless-16a33070.js";import"./app-d215327f.js";import"./termInfo-491b10af.js";import"./toggleButtons-c4d6f260.js";import"./table-0daf2b89.js";import"./genesearch-ffd88bf2.js";import"./checkbox-96437f4d.js";import"./rehydrateFilter-12d118cb.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-39d11f24.js";import"./controls-268e40e6.js";import"./controls.btns-5bf9e7d7.js";import"./controls.config-2f0fa061.js";import"./zoom-f445cfef.js";import"./pointer-c7475677.js";import"./nodrag-b2737073.js";import"./lasso-1a02a545.js";import"./drag-2e9c80bb.js";import"./downloadTextfile-5723af95.js";import"./sampleView-1dff3fca.js";import"./select2Terms-d48d037e.js";import"./svg.download-f4aa48e4.js";import"./sampleScatter.rendererThree-ef289434.js";import"./axis-747c801e.js";import"./line-264f8f9e.js";import"./constant-426a1483.js";import"./violin-74d26b75.js";import"./violin.renderer-469fa0ff.js";import"./brush-9faa7ae7.js";import"./basis-3870f5ba.js";import"./log-c26b6cfd.js";import"./html.legend-80b2b3ec.js";import"./violin.interactivity-bf40ddde.js";import"./niceNumLabels-29a7c6ca.js";import"./barchart-2898d229.js";import"./bars.settings-64bb4642.js";import"./bars.renderer-71935d34.js";import"./svg.legend-749348e0.js";import"./barchart.events-426d737a.js";function m(t){switch(t){case"../plots/DEanalysis.js":return import("./DEanalysis-bbfad00d.js");case"../plots/Disco.js":return import("./Disco-b7c9bf72.js");case"../plots/DziViewer.js":return import("./DziViewer-28915c11.js");case"../plots/WSIViewer.js":return import("./WSIViewer-957695a8.js");case"../plots/barchart.data.js":return import("./FilterRxComp-02e68f1b.js").then((function(t){return t.j}));case"../plots/barchart.events.js":return import("./barchart.events-426d737a.js");case"../plots/barchart.js":return import("./barchart-2898d229.js");case"../plots/bars.renderer.js":return import("./bars.renderer-71935d34.js");case"../plots/bars.settings.js":return import("./bars.settings-64bb4642.js");case"../plots/boxplot.js":return import("./boxplot-4c9a5479.js");case"../plots/brainImaging.js":return import("./brainImaging-7716bc66.js");case"../plots/controls.btns.js":return import("./controls.btns-5bf9e7d7.js");case"../plots/controls.config.js":return import("./controls.config-2f0fa061.js");case"../plots/controls.js":return import("./controls-268e40e6.js");case"../plots/cuminc.js":return import("./cuminc-8dffb765.js");case"../plots/dataDownload.js":return import("./dataDownload-452ae3cd.js");case"../plots/dictionary.js":return import("./dictionary-a132a3cc.js");case"../plots/facet.js":return import("./facet-fa4fe49c.js");case"../plots/geneExpression.js":return import("./geneExpression-66208299.js");case"../plots/geneORA.js":return import("./geneORA-9456872c.js");case"../plots/geneset.js":return import("./geneset-0315daf8.js");case"../plots/genomeBrowser.controls.js":return import("./genomeBrowser.controls-2601cab5.js");case"../plots/genomeBrowser.js":return import("./genomeBrowser-608b924e.js");case"../plots/gsea.js":return import("./gsea-0c0cf8de.js");case"../plots/hierCluster.config.js":return import("./hierCluster.config-f4daaf92.js");case"../plots/hierCluster.interactivity.js":return import("./hierCluster.interactivity-7f475259.js").then((function(t){return t.i}));case"../plots/hierCluster.js":return import("./hierCluster-7ab62ca5.js");case"../plots/hierCluster.renderers.js":return import("./hierCluster.renderers-19b79639.js").then((function(t){return t.r}));case"../plots/imagePlot.js":return import("./imagePlot-1ef24562.js");case"../plots/matrix.cells.js":return import("./matrix.cells-a018d731.js");case"../plots/matrix.cluster.js":return import("./matrix.cluster-a6e713e8.js");case"../plots/matrix.config.js":return import("./matrix.config-2c550b5d.js");case"../plots/matrix.controls.js":return import("./matrix.controls-42ad4912.js");case"../plots/matrix.data.js":return import("./matrix.data-2b814c9f.js").then((function(t){return t.m}));case"../plots/matrix.dom.js":return import("./matrix.dom-1e0da5b3.js");case"../plots/matrix.groups.js":return import("./matrix.groups-824a7244.js").then((function(t){return t.m}));case"../plots/matrix.interactivity.js":return import("./matrix.interactivity-1cb56534.js");case"../plots/matrix.js":return import("./matrix-38cd47c3.js");case"../plots/matrix.layout.js":return import("./matrix.layout-47e44357.js").then((function(t){return t.m}));case"../plots/matrix.legend.js":return import("./matrix.legend-9af0c757.js").then((function(t){return t.m}));case"../plots/matrix.renderers.js":return import("./matrix.renderers-337ce240.js");case"../plots/matrix.serieses.js":return import("./matrix.serieses-7b7184c9.js").then((function(t){return t.m}));case"../plots/matrix.sort.js":return import("./matrix.sort-1ac05842.js");case"../plots/matrix.sorterUi.js":return import("./matrix.sorterUi-1c60c145.js");case"../plots/plot.app.js":return import("./plot.app-2a805759.js");case"../plots/plot.brainImaging.js":return import("./plot.brainImaging-32a484b6.js");case"../plots/plot.disco.js":return import("./plot.disco-1fdfee3c.js");case"../plots/plot.ssgq.js":return import("./plot.ssgq-d33113d5.js");case"../plots/profileBarchart.js":return import("./profileBarchart-58f0a8c0.js");case"../plots/profilePlot.js":return import("./profilePlot-4db8ca78.js");case"../plots/profilePolar.js":return import("./profilePolar-50b8e40e.js");case"../plots/profileRadar.js":return import("./profileRadar-fff0b004.js");case"../plots/profileRadarFacility.js":return import("./profileRadarFacility-d6d34c15.js");case"../plots/profileSummary.js":return import("./profileSummary-04b8b15b.js");case"../plots/regression.inputs.js":return import("./regression.inputs-14df7c31.js").then((function(t){return t.b}));case"../plots/regression.inputs.term.js":return import("./regression.inputs-14df7c31.js").then((function(t){return t.a}));case"../plots/regression.inputs.values.table.js":return import("./regression.inputs.values.table-d79efa9e.js");case"../plots/regression.js":return import("./regression.inputs-14df7c31.js").then((function(t){return t.r}));case"../plots/regression.results.js":return import("./regression.results-4767144e.js").then((function(t){return t.r}));case"../plots/sampleScatter.interactivity.js":return import("./sampleScatter-55d9eb74.js").then((function(t){return t.a}));case"../plots/sampleScatter.js":return import("./sampleScatter-55d9eb74.js").then((function(t){return t.b}));case"../plots/sampleScatter.renderer.js":return import("./sampleScatter-55d9eb74.js").then((function(t){return t.s}));case"../plots/sampleScatter.rendererThree.js":return import("./sampleScatter.rendererThree-ef289434.js").then((function(t){return t.c}));case"../plots/sampleView.js":return import("./sampleView-1dff3fca.js");case"../plots/scatter.js":return import("./scatter-f8285107.js");case"../plots/singleCellPlot.js":return import("./singleCellPlot-eff5760b.js");case"../plots/stattable.js":return import("./stattable-46cde32c.js");case"../plots/summary.js":return import("./summary-a6c15c9e.js");case"../plots/survival.js":return import("./survival-52714cd3.js");case"../plots/table.js":return import("./table-bf40249b.js");case"../plots/variantBrowser.js":return import("./variantBrowser-14d5c3f6.js");case"../plots/violin.interactivity.js":return import("./violin.interactivity-bf40ddde.js");case"../plots/violin.js":return import("./violin-74d26b75.js");case"../plots/violin.renderer.js":return import("./violin.renderer-469fa0ff.js");default:return new Promise((function(e,s){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}class d{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 m(`../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(d);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 f=r(h);export{f as appInit};
|