@sjcrh/proteinpaint-client 2.73.1-0 → 2.74.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{2dmaf-4cdc6977.js → 2dmaf-d29fe29c.js} +1 -1
- package/dist/AppHeader-2c4e87da.js +1 -0
- package/dist/{ColorScale-ec5e79cc.js → ColorScale-fd44eec5.js} +1 -1
- package/dist/{DEanalysis-9371b5f0.js → DEanalysis-cbf43877.js} +1 -1
- package/dist/{Disco-d34017e3.js → Disco-aeb4de17.js} +1 -1
- package/dist/{Disco.UI-22109108.js → Disco.UI-79d56a43.js} +1 -1
- package/dist/{DragControls-77901b6d.js → DragControls-e29fd3aa.js} +1 -1
- package/dist/{DziViewer-64f27894.js → DziViewer-69c1ccd7.js} +1 -1
- package/dist/FilterRxComp-4627c613.js +1 -0
- package/dist/FilterStateless-7883dd48.js +1 -0
- package/dist/{HicApp-40d8eddb.js → HicApp-8431e801.js} +1 -1
- package/dist/{OrbitControls-705d745f.js → OrbitControls-92eb9f37.js} +1 -1
- package/dist/WSIViewer-441b6ac1.js +1 -0
- package/dist/{adSandbox-cebeee2e.js → adSandbox-8cc4d6ed.js} +1 -1
- package/dist/{app-3ea16a67.js → app-575edb0d.js} +1 -1
- package/dist/app-59173ac6.js +1 -0
- package/dist/app-9a8b9e9d.js +1 -0
- package/dist/app.js +1 -1
- package/dist/{bam-033c7072.js → bam-899fbb77.js} +1 -1
- package/dist/{barchart-cbe3f366.js → barchart-f055e992.js} +1 -1
- package/dist/{barchart.events-bb742af0.js → barchart.events-c7f02713.js} +1 -1
- package/dist/{bars.renderer-bd5f1836.js → bars.renderer-d733cc74.js} +1 -1
- package/dist/{block-9966555f.js → block-93d0557a.js} +1 -1
- package/dist/{block.lazyload-24539567.js → block.lazyload-86764acf.js} +1 -1
- package/dist/{block.legend-5c25bac9.js → block.legend-23040de5.js} +1 -1
- package/dist/{block.mds-d5f9b9b4.js → block.mds-36030638.js} +1 -1
- package/dist/{block.mds.cnv-14e43069.js → block.mds.cnv-7fb8f9dd.js} +1 -1
- package/dist/{block.mds.expressionrank-1687b2b5.js → block.mds.expressionrank-d14f7cf7.js} +1 -1
- package/dist/{block.mds.expressionstat-87071886.js → block.mds.expressionstat-402460c6.js} +1 -1
- package/dist/{block.mds.geneboxplot-c238e29a.js → block.mds.geneboxplot-828a41b5.js} +1 -1
- package/dist/{block.mds.junction-e0894ede.js → block.mds.junction-299c80b7.js} +1 -1
- package/dist/{block.mds.svcnv-be666aed.js → block.mds.svcnv-351c8b69.js} +1 -1
- package/dist/{block.mds.svcnv.share-d2d90073.js → block.mds.svcnv.share-209087e4.js} +1 -1
- package/dist/{block.mds2-96567ebb.js → block.mds2-90069a66.js} +1 -1
- package/dist/{block.svg-fd35a2cb.js → block.svg-445e1779.js} +1 -1
- package/dist/{block.tk.aicheck-eacbe6dc.js → block.tk.aicheck-8b429e02.js} +1 -1
- package/dist/{block.tk.ase-dc14e968.js → block.tk.ase-c81eaf38.js} +1 -1
- package/dist/{block.tk.bam-a4426084.js → block.tk.bam-c8dae99c.js} +1 -1
- package/dist/{block.tk.bedgraphdot-8e4b559f.js → block.tk.bedgraphdot-898d42ed.js} +1 -1
- package/dist/{block.tk.bigwig.ui-21bd6650.js → block.tk.bigwig.ui-a2531164.js} +1 -1
- package/dist/{block.tk.hicstraw-b9f3642d.js → block.tk.hicstraw-909c56fd.js} +1 -1
- package/dist/{block.tk.junction-dc7045e0.js → block.tk.junction-7336d919.js} +1 -1
- package/dist/{block.tk.junction.textmatrixui-b83160db.js → block.tk.junction.textmatrixui-3d3c8b88.js} +1 -1
- package/dist/{block.tk.ld-7afe0948.js → block.tk.ld-78dbfd64.js} +1 -1
- package/dist/{block.tk.menu-fea75cb2.js → block.tk.menu-870d77cc.js} +1 -1
- package/dist/{block.tk.pgv-5e55a191.js → block.tk.pgv-ec03a61b.js} +1 -1
- package/dist/{boxplot-ad176c4b.js → boxplot-239757ff.js} +1 -1
- package/dist/{brainImaging-444bf523.js → brainImaging-fc2fdfcd.js} +1 -1
- package/dist/{brush-cfd2987a.js → brush-ae50cce6.js} +1 -1
- package/dist/{categorical-9951f146.js → categorical-96bd107f.js} +1 -1
- package/dist/{condition-2565246e.js → condition-046949ac.js} +1 -1
- package/dist/{controls-e6fc380a.js → controls-2cf33ce8.js} +1 -1
- package/dist/{controls.btns-a722a029.js → controls.btns-f717181d.js} +1 -1
- package/dist/{controls.config-10237091.js → controls.config-8319dce3.js} +1 -1
- package/dist/{controls.divide-edb453bb.js → controls.divide-447572ff.js} +1 -1
- package/dist/{controls.overlay-3b0d3f46.js → controls.overlay-9d06660f.js} +1 -1
- package/dist/{controls.term1-b89d2147.js → controls.term1-4b291eba.js} +1 -1
- package/dist/cuminc-43a208b2.js +1 -0
- package/dist/{customdata.inputui-d4609c72.js → customdata.inputui-79633fe1.js} +1 -1
- package/dist/{dataDownload-a0660e95.js → dataDownload-fe380709.js} +1 -1
- package/dist/databrowser.ui-e6dc0905.js +1 -0
- package/dist/{density-4097e1df.js → density-64a733cb.js} +1 -1
- package/dist/{dictionary-510df630.js → dictionary-4b6886db.js} +1 -1
- package/dist/{drag-6ef9da71.js → drag-755c0fba.js} +1 -1
- package/dist/{e2pca-c3bf3759.js → e2pca-4d724bb3.js} +1 -1
- package/dist/{ep-969903a3.js → ep-8c882ed5.js} +1 -1
- package/dist/{facet-ed04567e.js → facet-938e97b7.js} +1 -1
- package/dist/{fusion.parse-73169e2c.js → fusion.parse-5e304710.js} +1 -1
- package/dist/{geneExpClustering-44ae8816.js → geneExpClustering-3c5cc36e.js} +1 -1
- package/dist/{geneExpression-a302170a.js → geneExpression-007474c8.js} +1 -1
- package/dist/{geneExpression-39943712.js → geneExpression-59ceb0b7.js} +1 -1
- package/dist/{geneExpression-6101692e.js → geneExpression-8ffa849e.js} +1 -1
- package/dist/geneORA-02ad5fbc.js +1 -0
- package/dist/{geneVariant-e15c9cec.js → geneVariant-6a61d5fc.js} +1 -1
- package/dist/{geneVariant-f15c1d09.js → geneVariant-fe60f395.js} +1 -1
- package/dist/{genefusion.ui-103f9936.js → genefusion.ui-5cefd43e.js} +1 -1
- package/dist/{genesearch-2a475c0b.js → genesearch-50fdc91e.js} +1 -1
- package/dist/{geneset-09624f76.js → geneset-91e1c37a.js} +1 -1
- package/dist/{genomeBrowser-fedae980.js → genomeBrowser-8ac96ccf.js} +1 -1
- package/dist/{genomeBrowser.controls-dd5a9b90.js → genomeBrowser.controls-107942c5.js} +1 -1
- package/dist/{groupsetting-c8809632.js → groupsetting-c285c956.js} +1 -1
- package/dist/{gsea-176c1e64.js → gsea-42d4057b.js} +1 -1
- package/dist/hierCluster-3599e31c.js +1 -0
- package/dist/{hierCluster.config-83c59f25.js → hierCluster.config-f9cc2410.js} +1 -1
- package/dist/hierCluster.interactivity-6ff1055c.js +1 -0
- package/dist/hierCluster.renderers-4f45e240.js +1 -0
- package/dist/{html.legend-e1aab709.js → html.legend-5f6710fd.js} +1 -1
- package/dist/{imagePlot-da4c5d1c.js → imagePlot-e0f2f895.js} +1 -1
- package/dist/{lasso-42b5037d.js → lasso-56b033a9.js} +1 -1
- package/dist/launch.adhoc-94ce0989.js +1 -0
- package/dist/{leftlabel.sample-f2e27fab.js → leftlabel.sample-efc68188.js} +1 -1
- package/dist/legacyDataset-18f7a497.js +1 -0
- package/dist/{log-0857435d.js → log-402d9d73.js} +1 -1
- package/dist/{lollipop-0bc6710d.js → lollipop-6532fc49.js} +1 -1
- package/dist/{maf-fd8d4088.js → maf-c685d83d.js} +1 -1
- package/dist/{maftimeline-e33e386a.js → maftimeline-2e89b6c4.js} +1 -1
- package/dist/{matrix-8f92d55d.js → matrix-b49ef234.js} +1 -1
- package/dist/{matrix.cells-b644f81a.js → matrix.cells-c29b5392.js} +1 -1
- package/dist/{matrix.cluster-3a24edd3.js → matrix.cluster-d03d6ae2.js} +1 -1
- package/dist/{matrix.config-83b00bd7.js → matrix.config-e3c440c7.js} +1 -1
- package/dist/matrix.controls-7c8c09ed.js +1 -0
- package/dist/{matrix.data-764ed482.js → matrix.data-37009799.js} +1 -1
- package/dist/{matrix.dom-aba4550d.js → matrix.dom-5c8ed1ce.js} +1 -1
- package/dist/{matrix.groups-5163da7e.js → matrix.groups-844c1e6b.js} +1 -1
- package/dist/{matrix.interactivity-6a0a9ab6.js → matrix.interactivity-5b36d10f.js} +1 -1
- package/dist/{matrix.layout-72669233.js → matrix.layout-b7a925f1.js} +1 -1
- package/dist/{matrix.legend-be3dd5ff.js → matrix.legend-0e6fa617.js} +1 -1
- package/dist/{matrix.renderers-da468447.js → matrix.renderers-ea7eef78.js} +1 -1
- package/dist/{matrix.serieses-1c08d025.js → matrix.serieses-ea733f5a.js} +1 -1
- package/dist/{matrix.sort-da155ca6.js → matrix.sort-20b6cf50.js} +1 -1
- package/dist/{matrix.sorterUi-dd514e83.js → matrix.sorterUi-16b9988c.js} +1 -1
- package/dist/{mavb-0c92b9d1.js → mavb-58e9e1ce.js} +1 -1
- package/dist/{mds.fimo-7c395bef.js → mds.fimo-cded7b41.js} +1 -1
- package/dist/{mds.samplescatterplot-a11d780e.js → mds.samplescatterplot-4e1efeb4.js} +1 -1
- package/dist/{mds.survivalplot-00a3f298.js → mds.survivalplot-a32d2cc0.js} +1 -1
- package/dist/{metaboliteIntensity-d2f7ae33.js → metaboliteIntensity-3dfbcf61.js} +1 -1
- package/dist/niceNumLabels-cb4af6e1.js +1 -0
- package/dist/{nodrag-b74637eb.js → nodrag-b8cb9ea9.js} +1 -1
- package/dist/{notify-64b340db.js → notify-3c74be1f.js} +1 -1
- package/dist/{numeric-cb267d38.js → numeric-21313d1a.js} +1 -1
- package/dist/{numeric.binary-70b31d96.js → numeric.binary-bc4881f1.js} +1 -1
- package/dist/{numeric.continuous-56882ce8.js → numeric.continuous-99289171.js} +1 -1
- package/dist/{numeric.discrete-6167c07e.js → numeric.discrete-0271d623.js} +1 -1
- package/dist/{numeric.spline-1bfec71f.js → numeric.spline-ae952a17.js} +1 -1
- package/dist/{numeric.toggle-65ceb2c2.js → numeric.toggle-1c4b735e.js} +1 -1
- package/dist/{oncomatrix-7f09140b.js → oncomatrix-ad0d61b8.js} +1 -1
- package/dist/{parseData-0e13bc94.js → parseData-1346b194.js} +1 -1
- package/dist/{plot.2dvaf-8925a412.js → plot.2dvaf-000f8abd.js} +1 -1
- package/dist/plot.app-51a51982.js +1 -0
- package/dist/{plot.barplot-c512c541.js → plot.barplot-f57d9bfc.js} +1 -1
- package/dist/{plot.boxplot-f82f93bd.js → plot.boxplot-6cf3c382.js} +1 -1
- package/dist/{plot.brainImaging-3d040340.js → plot.brainImaging-caee8eca.js} +1 -1
- package/dist/{plot.disco-52261d68.js → plot.disco-23a3587c.js} +1 -1
- package/dist/{plot.dzi-f94ce698.js → plot.dzi-787e4273.js} +1 -1
- package/dist/{plot.ssgq-f355a236.js → plot.ssgq-87a04fe7.js} +1 -1
- package/dist/{plot.vaf2cov-72dde676.js → plot.vaf2cov-d5b83d8a.js} +1 -1
- package/dist/plot.wsi-966346c3.js +1 -0
- package/dist/{profileBarchart-1d2b035e.js → profileBarchart-e02421e3.js} +1 -1
- package/dist/{profileHome-4fe1c5d1.js → profileHome-ec23219f.js} +1 -1
- package/dist/{profilePlot-4c407f7c.js → profilePlot-93297cd8.js} +1 -1
- package/dist/{profilePolar-7b71050a.js → profilePolar-d7294e7e.js} +1 -1
- package/dist/{profileRadar-12615991.js → profileRadar-ad626c9b.js} +1 -1
- package/dist/{profileRadarFacility-1da011da.js → profileRadarFacility-17de091b.js} +1 -1
- package/dist/{profileSummary-f02c4f95.js → profileSummary-a752c3eb.js} +1 -1
- package/dist/{recover-ac9e832f.js → recover-35c1990e.js} +1 -1
- package/dist/regression.inputs-3fb6ba72.js +1 -0
- package/dist/{regression.inputs.values.table-f532166e.js → regression.inputs.values.table-5b1679df.js} +1 -1
- package/dist/regression.results-cd9cc421.js +1 -0
- package/dist/{renderPvalueTable-33797a7c.js → renderPvalueTable-1ecb3a68.js} +1 -1
- package/dist/{roundValue-dbf3e824.js → roundValue-a16bf999.js} +1 -1
- package/dist/{sampleScatter-8c6c9b56.js → sampleScatter-e7fd97c1.js} +1 -1
- package/dist/{sampleScatter.rendererThree-532ab5bb.js → sampleScatter.rendererThree-0e5cb7eb.js} +2 -2
- package/dist/sampleView-498bab21.js +1 -0
- package/dist/{samplelst-276258b4.js → samplelst-e7beabf3.js} +1 -1
- package/dist/{samplematrix-5858641c.js → samplematrix-9185252b.js} +1 -1
- package/dist/{scatter-1394c8fa.js → scatter-2372cb7c.js} +1 -1
- package/dist/{select2Terms-7d06b33b.js → select2Terms-bba1ea3f.js} +1 -1
- package/dist/{selectGenomeWithTklst-6e21026c.js → selectGenomeWithTklst-6904f5c6.js} +1 -1
- package/dist/{singleCellCellType-ae35c7e5.js → singleCellCellType-d941cca1.js} +1 -1
- package/dist/{singleCellGeneExpression-2c3cb729.js → singleCellGeneExpression-e0829c9c.js} +1 -1
- package/dist/{singleCellPlot-86c5ec18.js → singleCellPlot-06ffe26d.js} +1 -1
- package/dist/{singlecell-cd9ce017.js → singlecell-019f1216.js} +1 -1
- package/dist/singlecell-f12f252c.js +1 -0
- package/dist/{snp-3455fbe7.js → snp-12fc3b1a.js} +1 -1
- package/dist/snp-f1eb43c7.js +1 -0
- package/dist/{snplocus-1881e796.js → snplocus-860ed8b0.js} +1 -1
- package/dist/{spliceevent.a53ss.diagram-8547ba50.js → spliceevent.a53ss.diagram-8b58d6a1.js} +1 -1
- package/dist/{spliceevent.exonskip.diagram-1ff1307d.js → spliceevent.exonskip.diagram-af84985f.js} +1 -1
- package/dist/spliceevent.exonskip.getdefault-179fa400.js +1 -0
- package/dist/{spliceevent.noeventdiagram-7c39f909.js → spliceevent.noeventdiagram-38f9b773.js} +1 -1
- package/dist/{spliceevent.phrase-8fa4e476.js → spliceevent.phrase-47badc9e.js} +1 -1
- package/dist/{stattable-9ae813ee.js → stattable-d3a8fdee.js} +1 -1
- package/dist/{style.gdc-9f52f632.js → style.gdc-4c380d29.js} +1 -1
- package/dist/summary-605b87b1.js +1 -0
- package/dist/{sunburst-2a687f29.js → sunburst-d2e9c81b.js} +1 -1
- package/dist/survival-0f52e507.js +1 -0
- package/dist/survival-97bc6800.js +1 -0
- package/dist/svg.download-50a655b5.js +1 -0
- package/dist/{svg.legend-a147d6c4.js → svg.legend-1a64ad93.js} +1 -1
- package/dist/{svgraph-64969b03.js → svgraph-4b70b4dc.js} +1 -1
- package/dist/{svmr-45c6c4a0.js → svmr-7f2b43b9.js} +1 -1
- package/dist/{table-babc4878.js → table-95787ec2.js} +1 -1
- package/dist/{table-c0099b44.js → table-e415e293.js} +1 -1
- package/dist/{termInfo-be7ef34b.js → termInfo-5956cbdf.js} +1 -1
- package/dist/{termdb.bins-411b0490.js → termdb.bins-f35c44f6.js} +1 -1
- package/dist/{tk-640d5a02.js → tk-1ba048e6.js} +1 -1
- package/dist/{toggleButtons-c3a6ac07.js → toggleButtons-ce24e7ff.js} +1 -1
- package/dist/{tp.ui-09f571bb.js → tp.ui-37e78f08.js} +1 -1
- package/dist/{tvs.density-a91ed423.js → tvs.density-f088e6e1.js} +1 -1
- package/dist/{tvs.geneVariant-11b558f6.js → tvs.geneVariant-42c987af.js} +1 -1
- package/dist/{tvs.numeric-ba947952.js → tvs.numeric-ba710545.js} +1 -1
- package/dist/{tvs.samplelst-3bfcf14e.js → tvs.samplelst-e3c78066.js} +1 -1
- package/dist/{uiUtils-d3b0950f.js → uiUtils-79b1d1e5.js} +1 -1
- package/dist/{variantBrowser-dca9e5c8.js → variantBrowser-8d9fc0d1.js} +1 -1
- package/dist/{vcf-3a6386b3.js → vcf-a5a0a6ca.js} +1 -1
- package/dist/{violin-379b09c9.js → violin-bd1d052d.js} +1 -1
- package/dist/{violin.interactivity-6dba4e21.js → violin.interactivity-6216fc08.js} +1 -1
- package/dist/{violin.renderer-3ffde7bf.js → violin.renderer-4cb1b7b0.js} +1 -1
- package/dist/{violinRenderer-acf2b9f1.js → violinRenderer-ec4785a5.js} +1 -1
- package/dist/{viridis-b9e7ef27.js → viridis-602b248a.js} +1 -1
- package/dist/{y-273cca6d.js → y-d734ac3a.js} +1 -1
- package/dist/{zoom-c45c7e63.js → zoom-a3be19b6.js} +1 -1
- package/package.json +1 -3
- package/dist/AppHeader-ac16d72e.js +0 -1
- package/dist/FilterRxComp-40ddbe83.js +0 -1
- package/dist/FilterStateless-577896ef.js +0 -1
- package/dist/WSIViewer-b2a275d3.js +0 -1
- package/dist/app-52e8c706.js +0 -1
- package/dist/app-6e949d90.js +0 -1
- package/dist/cuminc-7f4cc394.js +0 -1
- package/dist/databrowser.ui-aacff6f0.js +0 -1
- package/dist/geneORA-65b44e21.js +0 -1
- package/dist/hierCluster-e4728384.js +0 -1
- package/dist/hierCluster.interactivity-eab42711.js +0 -1
- package/dist/hierCluster.renderers-3531007d.js +0 -1
- package/dist/launch.adhoc-e8803d89.js +0 -1
- package/dist/legacyDataset-af244ca8.js +0 -1
- package/dist/matrix.controls-fe92f561.js +0 -1
- package/dist/niceNumLabels-34d6804f.js +0 -1
- package/dist/plot.app-395953cb.js +0 -1
- package/dist/regression.inputs-7770e2e0.js +0 -1
- package/dist/regression.results-8a02485e.js +0 -1
- package/dist/sampleView-50598352.js +0 -1
- package/dist/singlecell-fd0d46b2.js +0 -1
- package/dist/snp-4df9c10f.js +0 -1
- package/dist/spliceevent.exonskip.getdefault-1f649716.js +0 -1
- package/dist/summary-881bf265.js +0 -1
- package/dist/survival-91c2978c.js +0 -1
- package/dist/survival-9fcd8af7.js +0 -1
- package/dist/svg.download-a3c61a38.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-3ea16a67.js";import{a as c}from"./genesearch-2a475c0b.js";import{T as l}from"./toggleButtons-c3a6ac07.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}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.label}`)).style("display",(e=>e.inTrail?"inline-block":"none")).each((async function(t){if(!t.inTrail)t.inTrail=false;t.crumb=e(this)}));t.update()};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.crumb.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 R(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 A(...e){const t=R(e);const n="("+(t.capture?"":"?:")+e.map((e=>N(e))).join("|")+")";return n}function $(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 M=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function I(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=M.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 P="\\b(0b[01]+)";const U="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";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=A("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:P,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:P,RE_STARTERS_RE:U,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=A(...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+=$(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=I(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=I(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+=$(e)+1}compile(){if(this.regexes.length===0){this.exec=()=>null}const e=this.regexes.map((e=>e[1]));this.matcherRe=t(I(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 Ae(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 Re(e){if(!e)return false;return e.endsWithParent||Re(e.starts)}function Ae(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(Re(e)){return y(e,{starts:e.starts?y(e.starts):null})}if(Object.isFrozen(e)){return y(e)}return e}var $e="11.2.0";const je=m;const Me=y;const Ie=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=R(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)||R(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(!A.keywords){M.addText(I);return}let e=0;A.keywordPatternRe.lastIndex=0;let t=A.keywordPatternRe.exec(I);let n="";while(t){n+=I.substring(e,t.index);const s=N.case_insensitive?t[0].toLowerCase():t[0];const i=l(A,s);if(i){const[e,o]=i;M.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;M.addKeyword(t[0],n)}}else{n+=t[0]}e=A.keywordPatternRe.lastIndex;t=A.keywordPatternRe.exec(I)}n+=I.substr(e);M.addText(n)}function p(){if(I==="")return;let e=null;if(typeof A.subLanguage==="string"){if(!t[A.subLanguage]){M.addText(I);return}e=u(A.subLanguage,I,true,$[A.subLanguage]);$[A.subLanguage]=e._top}else{e=g(I,A.subLanguage.length?A.subLanguage:null)}if(A.relevance>0){T+=e.relevance}M.addSublanguage(e._emitter,e.language)}function f(){if(A.subLanguage!=null){p()}else{d()}I=""}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){M.addKeyword(i,s)}else{I=i;d();I=""}n++}}function m(e,t){if(e.scope&&typeof e.scope==="string"){M.openNode(N.classNameAliases[e.scope]||e.scope)}if(e.beginScope){if(e.beginScope._wrap){M.addKeyword(I,N.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap);I=""}else if(e.beginScope._multi){h(e.beginScope,t);I=""}}A=Object.create(e,{parent:{value:A}});return A}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(A.matcher.regexIndex===0){I+=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){I+=t}else{if(n.excludeBegin){I+=t}f();if(!n.returnBegin&&!n.excludeBegin){I=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(A,e,s);if(!i){return Ie}const o=A;if(A.endScope&&A.endScope._wrap){f();M.addKeyword(t,A.endScope._wrap)}else if(A.endScope&&A.endScope._multi){f();h(A.endScope,e)}else if(o.skip){I+=t}else{if(!(o.returnEnd||o.excludeEnd)){I+=t}f();if(o.excludeEnd){I=t}}do{if(A.scope){M.closeNode()}if(!A.skip&&!A.subLanguage){T+=A.relevance}A=A.parent}while(A!==i.parent);if(i.starts){m(i.starts,e)}return o.returnEnd?0:t.length}function E(){const e=[];for(let t=A;t!==N;t=t.parent){if(t.scope){e.unshift(t.scope)}}e.forEach((e=>M.openNode(e)))}let k={};function _(t,o){const a=o&&o[0];I+=t;if(a==null){f();return 0}if(k.type==="begin"&&o.type==="end"&&k.index===o.index&&a===""){I+=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 "'+(A.scope||"<unnamed>")+'"');e.mode=A;throw e}else if(o.type==="end"){const e=v(o);if(e!==Ie){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}I+=a;return a.length}const N=R(e);if(!N){ye(o.replace("{}",e));throw new Error('Unknown language: "'+e+'"')}const S=Oe(N);let O="";let A=a||S;const $={};const M=new r.__emitter(r);E();let I="";let T=0;let B=0;let L=0;let D=false;try{A.matcher.considerAll();for(;;){L++;if(D){D=false}else{A.matcher.considerAll()}A.matcher.lastIndex=B;const e=A.matcher.exec(n);if(!e)break;const t=n.substring(B,e.index);const s=_(t,e);B=e.index+s}_(n.substr(B));M.closeAllNodes();M.finalize();O=M.toHTML();return{language:e,value:O,relevance:T,illegal:false,_emitter:M,_top:A}}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:M}}else if(i){return{language:e,value:je(n),illegal:false,relevance:0,errorRaised:t,_emitter:M,_top:A}}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(R).filter($).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(R(e.language).supersetOf===t.language){return 1}else if(R(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=Me(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){A(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 R(e){e=(e||"").toLowerCase();return t[e]||t[n[e]]}function A(e,{languageName:t}){if(typeof e==="string"){e=[e]}e.forEach((e=>{n[e.toLowerCase()]=t}))}function $(e){const t=R(e);return t&&!t.disableAutodetect}function M(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 I(e){M(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:R,registerAliases:A,autoDetection:$,inherit:Me,addPlugin:I});e.debugMode=function(){i=false};e.safeMode=function(){i=true};e.versionString=$e;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 Pe=["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 Ue=["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:Pe,literal:Ue,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 R={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]};const A="(\\("+"[^()]*(\\("+"[^()]*(\\("+"[^()]*"+"\\)[^()]*)*"+"\\)[^()]*)*"+"\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>";const $={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,Fe(A)],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},$,{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:A,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,R,{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").text(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();const n=a.findIndex((t=>t==e));t.header.trail.update(n);Ye(e,c,t,i)}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: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(e,t,n){return{active:t===0,label:e.label,callback:async(t,c)=>{const l=r(c.contentHolder);try{if(!c.rendered){i(c.contentHolder);et(e,c.contentHolder,n,o);l.remove()}c.rendered=true;const t=a.findIndex((e=>e==c));s.header.trail.update(t)}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-575edb0d.js";import{a as c}from"./genesearch-50fdc91e.js";import{T as l}from"./toggleButtons-ce24e7ff.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}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.label}`)).style("display",(e=>e.inTrail?"inline-block":"none")).each((async function(t){if(!t.inTrail)t.inTrail=false;t.crumb=e(this)}));t.update()};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.crumb.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 R(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 A(...e){const t=R(e);const n="("+(t.capture?"":"?:")+e.map((e=>N(e))).join("|")+")";return n}function $(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 M=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function I(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=M.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 P="\\b(0b[01]+)";const U="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";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=A("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:P,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:P,RE_STARTERS_RE:U,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=A(...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+=$(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=I(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=I(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+=$(e)+1}compile(){if(this.regexes.length===0){this.exec=()=>null}const e=this.regexes.map((e=>e[1]));this.matcherRe=t(I(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 Ae(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 Re(e){if(!e)return false;return e.endsWithParent||Re(e.starts)}function Ae(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(Re(e)){return y(e,{starts:e.starts?y(e.starts):null})}if(Object.isFrozen(e)){return y(e)}return e}var $e="11.2.0";const je=m;const Me=y;const Ie=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=R(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)||R(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(!A.keywords){M.addText(I);return}let e=0;A.keywordPatternRe.lastIndex=0;let t=A.keywordPatternRe.exec(I);let n="";while(t){n+=I.substring(e,t.index);const s=N.case_insensitive?t[0].toLowerCase():t[0];const i=l(A,s);if(i){const[e,o]=i;M.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;M.addKeyword(t[0],n)}}else{n+=t[0]}e=A.keywordPatternRe.lastIndex;t=A.keywordPatternRe.exec(I)}n+=I.substr(e);M.addText(n)}function p(){if(I==="")return;let e=null;if(typeof A.subLanguage==="string"){if(!t[A.subLanguage]){M.addText(I);return}e=u(A.subLanguage,I,true,$[A.subLanguage]);$[A.subLanguage]=e._top}else{e=g(I,A.subLanguage.length?A.subLanguage:null)}if(A.relevance>0){T+=e.relevance}M.addSublanguage(e._emitter,e.language)}function f(){if(A.subLanguage!=null){p()}else{d()}I=""}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){M.addKeyword(i,s)}else{I=i;d();I=""}n++}}function m(e,t){if(e.scope&&typeof e.scope==="string"){M.openNode(N.classNameAliases[e.scope]||e.scope)}if(e.beginScope){if(e.beginScope._wrap){M.addKeyword(I,N.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap);I=""}else if(e.beginScope._multi){h(e.beginScope,t);I=""}}A=Object.create(e,{parent:{value:A}});return A}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(A.matcher.regexIndex===0){I+=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){I+=t}else{if(n.excludeBegin){I+=t}f();if(!n.returnBegin&&!n.excludeBegin){I=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(A,e,s);if(!i){return Ie}const o=A;if(A.endScope&&A.endScope._wrap){f();M.addKeyword(t,A.endScope._wrap)}else if(A.endScope&&A.endScope._multi){f();h(A.endScope,e)}else if(o.skip){I+=t}else{if(!(o.returnEnd||o.excludeEnd)){I+=t}f();if(o.excludeEnd){I=t}}do{if(A.scope){M.closeNode()}if(!A.skip&&!A.subLanguage){T+=A.relevance}A=A.parent}while(A!==i.parent);if(i.starts){m(i.starts,e)}return o.returnEnd?0:t.length}function E(){const e=[];for(let t=A;t!==N;t=t.parent){if(t.scope){e.unshift(t.scope)}}e.forEach((e=>M.openNode(e)))}let k={};function _(t,o){const a=o&&o[0];I+=t;if(a==null){f();return 0}if(k.type==="begin"&&o.type==="end"&&k.index===o.index&&a===""){I+=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 "'+(A.scope||"<unnamed>")+'"');e.mode=A;throw e}else if(o.type==="end"){const e=v(o);if(e!==Ie){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}I+=a;return a.length}const N=R(e);if(!N){ye(o.replace("{}",e));throw new Error('Unknown language: "'+e+'"')}const S=Oe(N);let O="";let A=a||S;const $={};const M=new r.__emitter(r);E();let I="";let T=0;let B=0;let L=0;let D=false;try{A.matcher.considerAll();for(;;){L++;if(D){D=false}else{A.matcher.considerAll()}A.matcher.lastIndex=B;const e=A.matcher.exec(n);if(!e)break;const t=n.substring(B,e.index);const s=_(t,e);B=e.index+s}_(n.substr(B));M.closeAllNodes();M.finalize();O=M.toHTML();return{language:e,value:O,relevance:T,illegal:false,_emitter:M,_top:A}}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:M}}else if(i){return{language:e,value:je(n),illegal:false,relevance:0,errorRaised:t,_emitter:M,_top:A}}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(R).filter($).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(R(e.language).supersetOf===t.language){return 1}else if(R(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=Me(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){A(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 R(e){e=(e||"").toLowerCase();return t[e]||t[n[e]]}function A(e,{languageName:t}){if(typeof e==="string"){e=[e]}e.forEach((e=>{n[e.toLowerCase()]=t}))}function $(e){const t=R(e);return t&&!t.disableAutodetect}function M(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 I(e){M(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:R,registerAliases:A,autoDetection:$,inherit:Me,addPlugin:I});e.debugMode=function(){i=false};e.safeMode=function(){i=true};e.versionString=$e;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 Pe=["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 Ue=["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:Pe,literal:Ue,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 R={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]};const A="(\\("+"[^()]*(\\("+"[^()]*(\\("+"[^()]*"+"\\)[^()]*)*"+"\\)[^()]*)*"+"\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>";const $={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,Fe(A)],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},$,{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:A,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,R,{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").text(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();const n=a.findIndex((t=>t==e));t.header.trail.update(n);Ye(e,c,t,i)}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: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(e,t,n){return{active:t===0,label:e.label,callback:async(t,c)=>{const l=r(c.contentHolder);try{if(!c.rendered){i(c.contentHolder);et(e,c.contentHolder,n,o);l.remove()}c.rendered=true;const t=a.findIndex((e=>e==c));s.header.trail.update(t)}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};
|