@sjcrh/proteinpaint-client 2.76.2 → 2.77.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{2dmaf-f240211f.js → 2dmaf-dbeff225.js} +1 -1
- package/dist/{AppHeader-c9432a24.js → AppHeader-1fc7f7bd.js} +1 -1
- package/dist/{ColorScale-b991fc9e.js → ColorScale-23c17654.js} +1 -1
- package/dist/{DEanalysis-bbfad00d.js → DEanalysis-a3cf1900.js} +1 -1
- package/dist/{Disco-b7c9bf72.js → Disco-b26a0556.js} +1 -1
- package/dist/{Disco.UI-a5296c36.js → Disco.UI-891c4c35.js} +1 -1
- package/dist/{DragControls-ca3fa0cf.js → DragControls-2fabac26.js} +1 -1
- package/dist/{DziViewer-28915c11.js → DziViewer-5b830c31.js} +1 -1
- package/dist/FilterRxComp-fb608459.js +1 -0
- package/dist/FilterStateless-fc4e4e1b.js +1 -0
- package/dist/{HicApp-e713aa40.js → HicApp-5ed85d49.js} +1 -1
- package/dist/{OrbitControls-2466d420.js → OrbitControls-604f40af.js} +1 -1
- package/dist/{WSIViewer-957695a8.js → WSIViewer-dcce2a10.js} +1 -1
- package/dist/{adSandbox-27d93bc0.js → adSandbox-5fa90964.js} +1 -1
- package/dist/app-0de0ae35.js +1 -0
- package/dist/{app-d215327f.js → app-7f695ce7.js} +1 -1
- package/dist/app-977b083f.js +1 -0
- package/dist/app.js +1 -1
- package/dist/{bam-d67e5315.js → bam-06a5a6a2.js} +1 -1
- package/dist/{barchart-2898d229.js → barchart-978fb21a.js} +1 -1
- package/dist/{barchart.events-426d737a.js → barchart.events-9b482604.js} +1 -1
- package/dist/{bars.renderer-71935d34.js → bars.renderer-d7461d5d.js} +1 -1
- package/dist/{block-75d4ff92.js → block-3db9c74c.js} +1 -1
- package/dist/block.lazyload-19a55cac.js +1 -0
- package/dist/{block.legend-93d85a6e.js → block.legend-97401467.js} +1 -1
- package/dist/{block.mds-84b9d1c1.js → block.mds-dc409568.js} +1 -1
- package/dist/{block.mds.cnv-a991ed79.js → block.mds.cnv-cdabd3f6.js} +1 -1
- package/dist/{block.mds.expressionrank-33b858de.js → block.mds.expressionrank-d768640f.js} +1 -1
- package/dist/{block.mds.expressionstat-3093599f.js → block.mds.expressionstat-7e40426f.js} +1 -1
- package/dist/{block.mds.geneboxplot-b8391d18.js → block.mds.geneboxplot-dae9cfa3.js} +1 -1
- package/dist/{block.mds.junction-69708c7f.js → block.mds.junction-3bc8baea.js} +1 -1
- package/dist/{block.mds.svcnv-322baea6.js → block.mds.svcnv-456dc845.js} +1 -1
- package/dist/{block.mds.svcnv.share-c5c38237.js → block.mds.svcnv.share-4776459b.js} +1 -1
- package/dist/{block.mds2-de4811dd.js → block.mds2-cc586d9d.js} +1 -1
- package/dist/{block.svg-ac9fec2d.js → block.svg-adf47e3a.js} +1 -1
- package/dist/{block.tk.aicheck-ac4b8d4d.js → block.tk.aicheck-f284f080.js} +1 -1
- package/dist/{block.tk.ase-6dc0f9f1.js → block.tk.ase-0477c9f4.js} +1 -1
- package/dist/{block.tk.bam-8f68b41d.js → block.tk.bam-d4c998d4.js} +1 -1
- package/dist/{block.tk.bedgraphdot-d8878860.js → block.tk.bedgraphdot-0177d836.js} +1 -1
- package/dist/{block.tk.bigwig.ui-f6ed051c.js → block.tk.bigwig.ui-95531269.js} +1 -1
- package/dist/{block.tk.hicstraw-725bdc8a.js → block.tk.hicstraw-06e97317.js} +1 -1
- package/dist/{block.tk.junction-f8b0b51d.js → block.tk.junction-18b6b825.js} +1 -1
- package/dist/{block.tk.junction.textmatrixui-252e7d7e.js → block.tk.junction.textmatrixui-ffdbdf81.js} +1 -1
- package/dist/{block.tk.ld-11acf730.js → block.tk.ld-2b56500f.js} +1 -1
- package/dist/{block.tk.menu-5e04436d.js → block.tk.menu-707a4226.js} +1 -1
- package/dist/{block.tk.pgv-fef17dc4.js → block.tk.pgv-63c956c4.js} +1 -1
- package/dist/{boxplot-4c9a5479.js → boxplot-1f229616.js} +1 -1
- package/dist/{brainImaging-7716bc66.js → brainImaging-a0c72fad.js} +1 -1
- package/dist/{brush-9faa7ae7.js → brush-4c775f74.js} +1 -1
- package/dist/{categorical-1dea48ba.js → categorical-25b06bc5.js} +1 -1
- package/dist/{condition-ebac4f75.js → condition-70084a85.js} +1 -1
- package/dist/{controls-268e40e6.js → controls-1f3ac9d0.js} +1 -1
- package/dist/controls.btns-5b44e5d0.js +1 -0
- package/dist/{controls.config-2f0fa061.js → controls.config-b0339f96.js} +1 -1
- package/dist/{cuminc-8dffb765.js → cuminc-6d1de932.js} +1 -1
- package/dist/{customdata.inputui-b229d3a0.js → customdata.inputui-5ad0f25c.js} +1 -1
- package/dist/{dataDownload-452ae3cd.js → dataDownload-a60d80e4.js} +1 -1
- package/dist/databrowser.ui-a5c8194c.js +1 -0
- package/dist/{density-09feb0c9.js → density-30dbad8b.js} +1 -1
- package/dist/{dictionary-a132a3cc.js → dictionary-d8435ddc.js} +1 -1
- package/dist/{drag-2e9c80bb.js → drag-ad04f964.js} +1 -1
- package/dist/{e2pca-4f1648e3.js → e2pca-02adebbd.js} +1 -1
- package/dist/{ep-1d4c58b4.js → ep-b2e464fe.js} +1 -1
- package/dist/{facet-fa4fe49c.js → facet-e7612200.js} +1 -1
- package/dist/{filter-b3d3964e.js → filter-67d51c09.js} +1 -1
- package/dist/{fusion.parse-7dfd6988.js → fusion.parse-68670e99.js} +1 -1
- package/dist/{geneExpClustering-ed9121b8.js → geneExpClustering-d96c27ef.js} +1 -1
- package/dist/geneExpression-072e0be1.js +1 -0
- package/dist/{geneExpression-394672ff.js → geneExpression-4901955e.js} +1 -1
- package/dist/{geneExpression-66208299.js → geneExpression-65346c08.js} +1 -1
- package/dist/{geneORA-9456872c.js → geneORA-e3d6619e.js} +1 -1
- package/dist/geneVariant-9fc29f37.js +1 -0
- package/dist/{geneVariant-beaf9adb.js → geneVariant-f6bbc247.js} +1 -1
- package/dist/{genefusion.ui-9238ec7f.js → genefusion.ui-a5a08183.js} +1 -1
- package/dist/{genesearch-ffd88bf2.js → genesearch-5fa13afa.js} +1 -1
- package/dist/{geneset-0315daf8.js → geneset-c36036bd.js} +1 -1
- package/dist/genomeBrowser-d4515002.js +1 -0
- package/dist/{genomeBrowser.controls-2601cab5.js → genomeBrowser.controls-b89629b0.js} +1 -1
- package/dist/{groupsetting-e3a4ecd5.js → groupsetting-a3de9ec7.js} +1 -1
- package/dist/{gsea-0c0cf8de.js → gsea-af1a7cec.js} +1 -1
- package/dist/{hierCluster-7ab62ca5.js → hierCluster-8aa2265a.js} +1 -1
- package/dist/hierCluster.config-11a176e2.js +1 -0
- package/dist/{hierCluster.interactivity-7f475259.js → hierCluster.interactivity-103b2f0f.js} +1 -1
- package/dist/{hierCluster.renderers-19b79639.js → hierCluster.renderers-48bdf7a6.js} +1 -1
- package/dist/{html.legend-80b2b3ec.js → html.legend-455f7881.js} +1 -1
- package/dist/{imagePlot-1ef24562.js → imagePlot-862c7baf.js} +1 -1
- package/dist/{lasso-1a02a545.js → lasso-e12204af.js} +1 -1
- package/dist/launch.adhoc-b8af0ace.js +1 -0
- package/dist/leftlabel.sample-784c5aeb.js +1 -0
- package/dist/{legacyDataset-fbaa5ebb.js → legacyDataset-501a0298.js} +1 -1
- package/dist/{log-c26b6cfd.js → log-d560d2a5.js} +1 -1
- package/dist/{lollipop-3aebe5d3.js → lollipop-aa25084e.js} +1 -1
- package/dist/{maf-c439c851.js → maf-13befc91.js} +1 -1
- package/dist/{maftimeline-0da64e54.js → maftimeline-f9ee156e.js} +1 -1
- package/dist/{matrix-38cd47c3.js → matrix-971b44da.js} +1 -1
- package/dist/{matrix.cells-a018d731.js → matrix.cells-92037b17.js} +1 -1
- package/dist/{matrix.cluster-a6e713e8.js → matrix.cluster-0bca59fd.js} +1 -1
- package/dist/{matrix.config-2c550b5d.js → matrix.config-b8d8faef.js} +1 -1
- package/dist/matrix.controls-07c6128c.js +1 -0
- package/dist/{matrix.data-2b814c9f.js → matrix.data-1090f6c7.js} +1 -1
- package/dist/{matrix.dom-1e0da5b3.js → matrix.dom-1154156c.js} +1 -1
- package/dist/{matrix.groups-824a7244.js → matrix.groups-f10a8c05.js} +1 -1
- package/dist/{matrix.interactivity-1cb56534.js → matrix.interactivity-99de0399.js} +1 -1
- package/dist/{matrix.layout-47e44357.js → matrix.layout-405db70f.js} +1 -1
- package/dist/{matrix.legend-9af0c757.js → matrix.legend-d06de359.js} +1 -1
- package/dist/{matrix.renderers-337ce240.js → matrix.renderers-2211c4b2.js} +1 -1
- package/dist/{matrix.serieses-7b7184c9.js → matrix.serieses-f0803a76.js} +1 -1
- package/dist/{matrix.sort-1ac05842.js → matrix.sort-3d376f1a.js} +1 -1
- package/dist/{matrix.sorterUi-1c60c145.js → matrix.sorterUi-469ed804.js} +1 -1
- package/dist/{mavb-da8d1a0a.js → mavb-e5cbd894.js} +1 -1
- package/dist/{mds.fimo-8604c3f8.js → mds.fimo-f9215ef6.js} +1 -1
- package/dist/{mds.samplescatterplot-3f09ae0e.js → mds.samplescatterplot-6fce6594.js} +1 -1
- package/dist/{mds.survivalplot-1d8f2b7e.js → mds.survivalplot-16e9e8c5.js} +1 -1
- package/dist/{metaboliteIntensity-bbb23c76.js → metaboliteIntensity-b47fb792.js} +1 -1
- package/dist/{niceNumLabels-29a7c6ca.js → niceNumLabels-1bd7a93b.js} +1 -1
- package/dist/{nodrag-b2737073.js → nodrag-0fa60f70.js} +1 -1
- package/dist/{notify-0cb8904f.js → notify-42149e65.js} +1 -1
- package/dist/{numeric-24dacbee.js → numeric-5b626171.js} +1 -1
- package/dist/{numeric.binary-f382cc98.js → numeric.binary-07e15211.js} +1 -1
- package/dist/numeric.continuous-76dd29ba.js +1 -0
- package/dist/numeric.discrete-6d697c68.js +1 -0
- package/dist/{numeric.spline-a35cfbf0.js → numeric.spline-cf331bad.js} +1 -1
- package/dist/{numeric.toggle-2f98d6e5.js → numeric.toggle-332c2578.js} +1 -1
- package/dist/oncomatrix-7c84c94b.js +1 -0
- package/dist/{parseData-292648dd.js → parseData-05ab5f81.js} +1 -1
- package/dist/{plot.2dvaf-6ae22dc1.js → plot.2dvaf-1debbf12.js} +1 -1
- package/dist/plot.app-0b02df66.js +1 -0
- package/dist/{plot.barplot-34841e70.js → plot.barplot-45b57df9.js} +1 -1
- package/dist/{plot.boxplot-87ac2ce9.js → plot.boxplot-06cef6e2.js} +1 -1
- package/dist/{plot.brainImaging-32a484b6.js → plot.brainImaging-07795744.js} +1 -1
- package/dist/{plot.disco-1fdfee3c.js → plot.disco-9c631d77.js} +1 -1
- package/dist/{plot.dzi-e3d0f610.js → plot.dzi-a9a81de5.js} +1 -1
- package/dist/{plot.ssgq-d33113d5.js → plot.ssgq-02ffde06.js} +1 -1
- package/dist/{plot.vaf2cov-9f4f1776.js → plot.vaf2cov-c111c5fb.js} +1 -1
- package/dist/{plot.wsi-dea124a7.js → plot.wsi-6ccc7bb2.js} +1 -1
- package/dist/{profileBarchart-58f0a8c0.js → profileBarchart-0c97e8c9.js} +1 -1
- package/dist/{profileHome-7f404152.js → profileHome-2255d66d.js} +1 -1
- package/dist/profilePlot-ba7e03ab.js +1 -0
- package/dist/{profilePolar-50b8e40e.js → profilePolar-d38d502f.js} +1 -1
- package/dist/{profileRadar-fff0b004.js → profileRadar-f95cfa87.js} +1 -1
- package/dist/{profileRadarFacility-d6d34c15.js → profileRadarFacility-7e200a91.js} +1 -1
- package/dist/profileSummary-8c41a731.js +1 -0
- package/dist/{recover-299ffdb3.js → recover-6f2f3379.js} +1 -1
- package/dist/{regression.inputs-14df7c31.js → regression.inputs-b515101d.js} +1 -1
- package/dist/{regression.inputs.values.table-d79efa9e.js → regression.inputs.values.table-f8a0cad9.js} +1 -1
- package/dist/{regression.results-4767144e.js → regression.results-91a486f0.js} +1 -1
- package/dist/{renderPvalueTable-002cc8ff.js → renderPvalueTable-d4d2624c.js} +1 -1
- package/dist/sampleScatter-7c2773de.js +1 -0
- package/dist/{sampleScatter.rendererThree-ef289434.js → sampleScatter.rendererThree-b6db5a09.js} +2 -2
- package/dist/{sampleView-1dff3fca.js → sampleView-8885e86b.js} +1 -1
- package/dist/{samplelst-d2db0f24.js → samplelst-83e593da.js} +1 -1
- package/dist/{samplematrix-0841387f.js → samplematrix-a8b3f845.js} +1 -1
- package/dist/{scatter-f8285107.js → scatter-34d52e2d.js} +1 -1
- package/dist/{select2Terms-d48d037e.js → select2Terms-d9320d21.js} +1 -1
- package/dist/{selectGenomeWithTklst-9af86d31.js → selectGenomeWithTklst-fed6a2ea.js} +1 -1
- package/dist/shapes-21ebfec4.js +1 -0
- package/dist/singleCellCellType-e6848f45.js +1 -0
- package/dist/{singleCellGeneExpression-537f1157.js → singleCellGeneExpression-d3a5394e.js} +1 -1
- package/dist/singleCellPlot-3cad6bd8.js +1 -0
- package/dist/{singlecell-38336cbc.js → singlecell-0754aab0.js} +1 -1
- package/dist/{singlecell-87b4b9a9.js → singlecell-7c57cd77.js} +1 -1
- package/dist/{snp-b81ef740.js → snp-6b23e7a6.js} +1 -1
- package/dist/snp-a0cdd2a5.js +1 -0
- package/dist/snplocus-c60eab56.js +1 -0
- package/dist/{spliceevent.a53ss.diagram-5f8352eb.js → spliceevent.a53ss.diagram-8714f740.js} +1 -1
- package/dist/{spliceevent.exonskip.diagram-0d30a735.js → spliceevent.exonskip.diagram-40c1e363.js} +1 -1
- package/dist/spliceevent.exonskip.getdefault-4bb6f19f.js +1 -0
- package/dist/{spliceevent.noeventdiagram-df9ce4bc.js → spliceevent.noeventdiagram-41a56db9.js} +1 -1
- package/dist/{spliceevent.phrase-a8401d53.js → spliceevent.phrase-7f34e3b1.js} +1 -1
- package/dist/{stattable-46cde32c.js → stattable-78dc5c34.js} +1 -1
- package/dist/{style.gdc-72d730f2.js → style.gdc-cd49882c.js} +1 -1
- package/dist/summary-45c56298.js +1 -0
- package/dist/{sunburst-fe95832e.js → sunburst-2140e468.js} +1 -1
- package/dist/{survival-57ff3c03.js → survival-db972025.js} +1 -1
- package/dist/{survival-52714cd3.js → survival-ed4bdad2.js} +1 -1
- package/dist/{svg.download-f4aa48e4.js → svg.download-a5e20a92.js} +1 -1
- package/dist/{svg.legend-749348e0.js → svg.legend-8d21872d.js} +1 -1
- package/dist/{svgraph-b46f1f92.js → svgraph-f6a28b78.js} +1 -1
- package/dist/{svmr-9a76c6d4.js → svmr-8b4b4c59.js} +1 -1
- package/dist/{table-bf40249b.js → table-1cbe3a36.js} +1 -1
- package/dist/{table-0daf2b89.js → table-e2a307e6.js} +1 -1
- package/dist/{termInfo-491b10af.js → termInfo-5477ba96.js} +1 -1
- package/dist/termdb.bins-7ecc48db.js +1 -0
- package/dist/{termsetting-492eefa7.js → termsetting-2e75e729.js} +1 -1
- package/dist/tk-a8a4481a.js +1 -0
- package/dist/{toggleButtons-c4d6f260.js → toggleButtons-7ce58d97.js} +1 -1
- package/dist/{tp.ui-0a476325.js → tp.ui-be14f635.js} +1 -1
- package/dist/{tvs.density-034b506d.js → tvs.density-8b953cef.js} +1 -1
- package/dist/{tvs.geneVariant-c59c8b54.js → tvs.geneVariant-ecad287d.js} +1 -1
- package/dist/{tvs.numeric-aa1f892f.js → tvs.numeric-b56a5aba.js} +1 -1
- package/dist/{tvs.samplelst-515f27b9.js → tvs.samplelst-3150e0b7.js} +1 -1
- package/dist/{uiUtils-ea7dfea2.js → uiUtils-71cc22de.js} +1 -1
- package/dist/{variantBrowser-14d5c3f6.js → variantBrowser-df2f9c22.js} +1 -1
- package/dist/{vcf-d357ce08.js → vcf-3e370c9b.js} +1 -1
- package/dist/{violin-74d26b75.js → violin-4595cef4.js} +1 -1
- package/dist/{violin.interactivity-bf40ddde.js → violin.interactivity-8b63e000.js} +1 -1
- package/dist/{violin.renderer-469fa0ff.js → violin.renderer-0b7431a2.js} +1 -1
- package/dist/{violinRenderer-14fa200d.js → violinRenderer-7b0a4e98.js} +1 -1
- package/dist/{viridis-cc59f478.js → viridis-725f66e0.js} +1 -1
- package/dist/{y-59cbff5e.js → y-300bac24.js} +1 -1
- package/dist/{zoom-f445cfef.js → zoom-d3d38b3b.js} +1 -1
- package/package.json +2 -4
- package/dist/FilterRxComp-02e68f1b.js +0 -1
- package/dist/FilterStateless-16a33070.js +0 -1
- package/dist/app-42f69951.js +0 -1
- package/dist/app-6fb77603.js +0 -1
- package/dist/block.lazyload-d2951c91.js +0 -1
- package/dist/controls.btns-5bf9e7d7.js +0 -1
- package/dist/databrowser.ui-2197fc73.js +0 -1
- package/dist/downloadTextfile-5723af95.js +0 -1
- package/dist/geneExpression-c61e8f1c.js +0 -1
- package/dist/geneVariant-f17cda85.js +0 -1
- package/dist/genomeBrowser-608b924e.js +0 -1
- package/dist/hierCluster.config-f4daaf92.js +0 -1
- package/dist/launch.adhoc-e124c993.js +0 -1
- package/dist/leftlabel.sample-59f99ef5.js +0 -1
- package/dist/matrix.controls-42ad4912.js +0 -1
- package/dist/numeric.continuous-6feb34a7.js +0 -1
- package/dist/numeric.discrete-ed10bbc1.js +0 -1
- package/dist/oncomatrix-c0b2d635.js +0 -1
- package/dist/plot.app-2a805759.js +0 -1
- package/dist/profilePlot-4db8ca78.js +0 -1
- package/dist/profileSummary-04b8b15b.js +0 -1
- package/dist/sampleScatter-55d9eb74.js +0 -1
- package/dist/singleCellCellType-fd1606b8.js +0 -1
- package/dist/singleCellPlot-eff5760b.js +0 -1
- package/dist/snp-f6123244.js +0 -1
- package/dist/snplocus-acafb1ba.js +0 -1
- package/dist/spliceevent.exonskip.getdefault-237c481c.js +0 -1
- package/dist/summary-a6c15c9e.js +0 -1
- package/dist/termdb.bins-39d11f24.js +0 -1
- package/dist/tk-ac524564.js +0 -1
package/dist/tk-ac524564.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{M as t,B as e,ap as s,aq as a,ar as n,z as i,an as o,as as r,at as l,bL as c,I as d,V as f,u as m,b as u,ak as p,D as h,n as g,r as w,aN as b,d as k,be as x,aG as v,W as y,aQ as _,aR as j,aP as M,bE as A,bD as S}from"./app-6fb77603.js";import{l as q}from"./block.legend-93d85a6e.js";import{s as C,m as z}from"./regression.results-4767144e.js";import{a as L}from"./axisstyle-fac7f76b.js";import{c as $,b as N}from"./axis-747c801e.js";import{r as R}from"./table-0daf2b89.js";import{d as O}from"./arc-3d6751aa.js";import{m as I}from"./block-75d4ff92.js";import{t as D}from"./downloadTextfile-5723af95.js";import{T}from"./toggleButtons-c4d6f260.js";import{m as B}from"./radiobutton-09bff425.js";import{v as F}from"./vcf-d357ce08.js";import{n as U}from"./niceNumLabels-29a7c6ca.js";import{f as G}from"./termsetting-492eefa7.js";import{r as P}from"./rehydrateFilter-12d118cb.js";const E="white",H="black";const V="Unannotated";function W(e,s){if(!e.legend)e.legend={};e.legend.tip=new t({padding:"0px"});const[a,n,i]=q(s,e.name);e.legend.headTd=i;e.tr_legend=a;const o=n.append("table").style("border-spacing","5px").style("border-collapse","separate");e.legend.table=o;K(e,s);Q(e);X(e);J(e);nt(e);lt(e);dt(e)}function K(t,e){if(!t.legend.mclass)t.legend.mclass={};if(!t.legend.mclass.hiddenvalues)t.legend.mclass.hiddenvalues=new Set;t.legend.mclass.row=t.legend.table.append("tr");t.legend.mclass.row.append("td").style("text-align","right").style("opacity",.7).text(e.mclassOverride?e.mclassOverride.className||"Mutation":"Mutation");t.legend.mclass.holder=t.legend.mclass.row.append("td")}function Q(t){if(!t.variantShapeName)return;const e=t.legend.table.append("tr").append("td").attr("colspan",2);const s=t.legend.variantShapeName={};{const a=e.append("div");a.append("span").html(`<svg style="display:inline-block" width=12 height=12>\n\t\t\t<circle cx=6 cy=6 r=6 fill=gray></circle></svg> n=`);s.dotCount=a.append("span");if(t.variantShapeName.dot)a.append("span").text(", "+t.variantShapeName.dot);s.dotDiv=a}{const a=e.append("div");a.append("span").html(`<svg style="display:inline-block" width=12 height=12>\n\t\t\t<path d="M 6 0 L 0 12 h 12 Z" fill=gray></path></svg> n=`);s.triangleCount=a.append("span");if(t.variantShapeName.triangle)a.append("span").text(", "+t.variantShapeName.triangle);s.triangleDiv=a}{const a=e.append("div");a.append("span").html(`<svg style="display:inline-block" width=13 height=13>\n\t\t\t<circle cx=6.5 cy=6.5 r=6 stroke=gray fill=none></circle></svg> n=`);s.circleCount=a.append("span");if(t.variantShapeName.circle)a.append("span").text(", "+t.variantShapeName.circle);s.circleDiv=a}}function X(t){if(!t.mds.bcf?.info)return;const e=[];for(const s in t.mds.bcf.info){const a=t.mds.bcf.info[s];if(a.categories){e.push(s)}}if(!e.length)return;if(!t.legend.bcfInfo)t.legend.bcfInfo={};for(const s of e){const e=t.legend.table.append("tr");e.append("td").style("text-align","right").style("opacity",.7).text(t.mds.bcf.info[s].name||s);t.legend.bcfInfo[s]={hiddenvalues:new Set,row:e,holder:e.append("td")}}}function J(t){if(!t.mds.bcf?.format)return;const e=[];for(const s in t.mds.bcf.format){if(t.mds.bcf.format[s].isFilter)e.push(s)}if(!e.length)return;if(!t.legend.formatFilter)t.legend.formatFilter={};for(const s of e){const e=t.legend.table.append("tr");e.append("td").style("text-align","right").style("opacity",.7).text(t.mds.bcf.format[s].Description);t.legend.formatFilter[s]={hiddenvalues:new Set,row:e,holder:e.append("td")}}}function Y(t,e){if(!e.legend.formatFilter)return;if(!t.skewer){console.log("data.skewer[] is not present and cannot show INFO legend");return}for(const s in e.legend.formatFilter){e.legend.formatFilter[s].holder.selectAll("*").remove();const a=new Map;let n=0;for(const e of t.skewer){if(!e.formatK2count?.[s])continue;for(const t in e.formatK2count[s].v2c){a.set(t,e.formatK2count[s].v2c[t]+(a.get(t)||0))}n+=e.formatK2count[s].unannotatedCount||0}const i=[...a];i.sort(((t,e)=>e[1]-t[1]));if(n){i.push([V,n])}for(const[t,a]of i){const n=e.legend.formatFilter[s].holder.append("div").attr("class","sja_clb").style("display","inline-block").on("click",(()=>{e.legend.tip.clear().showunder(n.node()).d.append("div").attr("class","sja_menuoption").text("Hide").on("click",(()=>{e.legend.formatFilter[s].hiddenvalues.add(t);Z(e)}));e.legend.tip.d.append("div").attr("class","sja_menuoption").text("Show only").on("click",(()=>{for(const t of i){e.legend.formatFilter[s].hiddenvalues.add(t[0])}e.legend.formatFilter[s].hiddenvalues.delete(t);Z(e)}));if(e.legend.formatFilter[s].hiddenvalues.size){e.legend.tip.d.append("div").attr("class","sja_menuoption").text("Show all").on("click",(()=>{e.legend.formatFilter[s].hiddenvalues.clear();Z(e)}))}}));n.append("div").style("display","inline-block").attr("class","sja_mcdot").style("background","#aaa").style("margin-right","5px").html(a>1?a:" ");n.append("div").style("display","inline-block").text(t)}for(const t of e.legend.formatFilter[s].hiddenvalues){let a=false;e.legend.formatFilter[s].holder.append("div").style("display","inline-block").attr("class","sja_clb").style("text-decoration","line-through").style("opacity",.7).text(t).on("click",(async()=>{if(a)return;a=true;e.legend.formatFilter[s].hiddenvalues.delete(t);Z(e)}))}}}function Z(t){t.legend.tip.hide();t.load()}function tt(t,e,s){if(!e.legend){return}e.legend.mclass.currentData=t.mclass2variantcount;at(e);et(t,e);st(t,e);Y(t,e);ot(t,e);ct(e);ft(e)}function et(t,e){if(!e.variantShapeName)return;let s=0,a=0,n=0;for(const e of t.skewer){if(e.shapeTriangle)a++;else if(e.shapeCircle)n++;else s++}const i=e.legend.variantShapeName;i.dotDiv.style("display",s?"block":"none");i.triangleDiv.style("display",a?"block":"none");i.circleDiv.style("display",n?"block":"none");i.dotCount.text(s);i.triangleCount.text(a);i.circleCount.text(n)}function st(t,e){if(!e.legend.bcfInfo)return;if(!t.skewer){console.log("data.skewer[] is not present and cannot show INFO legend");return}for(const s in e.legend.bcfInfo){e.legend.bcfInfo[s].holder.selectAll("*").remove();if(e.mds.bcf.info[s].Type=="String"){const a=new Map;for(const e of t.skewer){const t=s in e.info?e.info[s]:V;if(Array.isArray(t)){for(const e of t){a.set(e,1+(a.get(e)||0))}}else{a.set(t,1+(a.get(t)||0))}}const n=[...a].sort(((t,e)=>e[1]-t[1]));for(const[t,a]of n){const i=e.legend.bcfInfo[s].holder.append("div").attr("class","sja_clb").style("display","inline-block").on("click",(()=>{e.legend.tip.clear().showunder(i.node()).d.append("div").attr("class","sja_menuoption").text("Hide").on("click",(()=>{e.legend.bcfInfo[s].hiddenvalues.add(t);Z(e)}));e.legend.tip.d.append("div").attr("class","sja_menuoption").text("Show only").on("click",(()=>{for(const t of n){e.legend.bcfInfo[s].hiddenvalues.add(t[0])}e.legend.bcfInfo[s].hiddenvalues.delete(t);Z(e)}));if(e.legend.bcfInfo[s].hiddenvalues.size){e.legend.tip.d.append("div").attr("class","sja_menuoption").text("Show all").on("click",(()=>{e.legend.bcfInfo[s].hiddenvalues.clear();Z(e)}))}const a=e.mds.bcf.info[s].categories?.[t]?.desc;if(a){e.legend.tip.d.append("div").style("padding","10px").style("font-size",".8em").style("width","150px").html(a)}}));i.append("div").style("display","inline-block").attr("class","sja_mcdot").style("background",e.mds.bcf.info[s].categories?.[t]?.color||E).html(a>1?a:" ");i.append("div").style("display","inline-block").style("color",e.mds.bcf.info[s].categories?.[t]?.color||H).style("padding-left","5px").text(e.mds.bcf.info[s].categories?.[t]?.label||t)}for(const t of e.legend.bcfInfo[s].hiddenvalues){let a=false;e.legend.bcfInfo[s].holder.append("div").style("display","inline-block").attr("class","sja_clb").style("text-decoration","line-through").text(t).on("click",(async()=>{if(a)return;a=true;e.legend.bcfInfo[s].hiddenvalues.delete(t);Z(e)}))}}}}function at(t){if(!t.legend.mclass.currentData||t.legend.mclass.currentData.length==0)return;t.legend.mclass.holder.selectAll("*").remove();const c=[],d=[];for(const[e,s]of t.legend.mclass.currentData){const a={k:e,count:s};if(t.legend.mclass.hiddenvalues.has(e)){d.push(a)}else{c.push(a)}}c.sort(((t,e)=>e.count-t.count));d.sort(((t,e)=>e.count-t.count));for(const e of t.legend.mclass.hiddenvalues){if(!d.find((t=>t.k==e))){d.push({k:e})}}for(const f of c){let m,u,p="#858585";if(Number.isInteger(f.k)){m=e[f.k];if(f.k==s){u="Copy number variation."}else if(f.k==a){u="Loss of heterozygosity."}else if(f.k==n){p=i[o].color;u="Internal tandem duplication."}else if(f.k==r){u="Structural variation of DNA."}else if(f.k==l){u="Fusion gene from RNA-seq."}}else{m=i[f.k].label;p=i[f.k].color;u=i[f.k].desc}const h=t.legend.mclass.holder.append("div").attr("class","sja_clb").style("display","inline-block").on("click",(e=>{t.legend.tip.clear().showunder(e.target).d.append("div").attr("class","sja_menuoption").text("Hide").on("click",(()=>{t.legend.mclass.hiddenvalues.add(f.k);Z(t)}));t.legend.tip.d.append("div").attr("class","sja_menuoption").text("Show only").on("click",(()=>{for(const e of c){t.legend.mclass.hiddenvalues.add(e.k)}t.legend.mclass.hiddenvalues.delete(f.k);Z(t)}));if(d.length){t.legend.tip.d.append("div").attr("class","sja_menuoption").text("Show all").on("click",(()=>{t.legend.mclass.hiddenvalues.clear();Z(t)}))}t.legend.tip.d.append("div").style("padding","10px").style("font-size",".8em").style("width","150px").html(u)}));h.append("div").style("display","inline-block").attr("class","sja_mcdot").style("background",p).html(f.count>1?f.count:" ");h.append("div").style("display","inline-block").style("color",p).html(" "+m)}for(const s of d){let a=false;t.legend.mclass.holder.append("div").style("display","inline-block").attr("class","sja_clb").style("text-decoration","line-through").style("opacity",.7).text((s.count?"("+s.count+") ":"")+(Number.isInteger(s.k)?e[s.k]:i[s.k].label)).on("click",(async e=>{if(a)return;a=true;t.legend.mclass.hiddenvalues.delete(s.k);e.target.innerHTML="Updating...";await t.load()}))}}function nt(t,e){if(!t.mds.queries?.snvindel?.skewerRim)return;const s=t.legend.skewerRim={};if(!t.mds.queries.snvindel.skewerRim.hiddenvaluelst)t.mds.queries.snvindel.skewerRim.hiddenvaluelst=[];s.row=t.legend.table.append("tr");s.headerTd=s.row.append("td").style("text-align","right").style("opacity",.7);s.holder=s.row.append("td")}function it(t){const e=t.mds.queries.snvindel.skewerRim;if(e.type=="format"){if(!e.formatKey)throw"skewerRim.formatKey missing";return t.mds.bcf?.format?.[e.formatKey]?.Description||e.formatKey}return"unknown skewerRim.type"}function ot(t,e){const s=e.mds.queries?.snvindel?.skewerRim;if(!s)return;let a=0,n=0;for(const e of t.skewer){const t=e.rim1count||0;a+=t;n+=e.occurrence-t}const i=e.legend.skewerRim;i.headerTd.text(it(e));i.holder.selectAll("*").remove();if(a>0){i.holder.append("div").attr("class","sja_clb").style("display","inline-block").html(`${rt(1)}${s.rim1value}, n=${a}`).on("click",(t=>{e.legend.tip.clear().showunder(t.target).d.append("div").attr("class","sja_menuoption").text("Hide").on("click",(()=>{s.hiddenvaluelst.push(s.rim1value);Z(e)}))}))}if(n>0){i.holder.append("div").attr("class","sja_clb").style("display","inline-block").html(`${rt()}${s.noRimValue}, n=${n}`).on("click",(t=>{e.legend.tip.clear().showunder(t.target).d.append("div").attr("class","sja_menuoption").text("Hide").on("click",(()=>{s.hiddenvaluelst.push(s.noRimValue);Z(e)}))}))}for(const t of s.hiddenvaluelst){let a=false;i.holder.append("div").style("display","inline-block").attr("class","sja_clb").style("text-decoration","line-through").style("opacity",.7).text(t).on("click",(async n=>{if(a)return;a=true;s.hiddenvaluelst.splice(s.hiddenvaluelst.indexOf(t),1);n.target.innerHTML="Updating...";await e.load()}))}}function rt(t){return'<svg width="19" height="19" style="margin-right: 5px;">'+'<circle cx="7" cy="12" r="7" fill="#b1b1b1"></circle>'+(t==1?'<path d="M6.735557395310443e-16,-11A11,11 0 0,1 11,0L9,0A9,9 0 0,0 5.51091059616309e-16,-9Z" transform="translate(7,12)" fill="#858585" stroke="none"></path>':t==2?"":"")+"</svg>"}function lt(t,e){if(!t.mds.queries?.ld)return;t.mds.queries.ld.colorScale=c(t.mds.queries.ld.overlay.color_0,t.mds.queries.ld.overlay.color_1);const s=t.legend.ld={};s.row=t.legend.table.append("tr");s.headerTd=s.row.append("td").style("text-align","right").style("opacity",.7);s.holder=s.row.append("td");s.showHolder=s.holder.append("div").style("display","none");C(s.showHolder,t.mds.queries.ld.colorScale);s.showHolder.append("span").text("Cancel overlay").style("font-size",".7em").attr("class","sja_clbtext").on("click",(()=>{delete t.mds.queries.ld.mOverlay;if(t.skewer?.hlssmid)delete t.skewer.hlssmid;t.load()}))}function ct(t){if(!t.mds.queries?.ld?.mOverlay){if(t.legend.ld){t.legend.ld.headerTd.html("");t.legend.ld.showHolder.style("display","none")}return}t.legend.ld.headerTd.html(t.mds.queries.ld.mOverlay.ldtkname+" LD r<sup>2</sup>");t.legend.ld.showHolder.style("display","block")}function dt(t,e){if(!t.cnv)return;const s=t.legend.cnv={};s.row=t.legend.table.append("tr");s.headerTd=s.row.append("td").style("text-align","right").style("opacity",.7).text("CNV");s.holder=s.row.append("td");s.showHolder=s.holder.append("div").style("display","none")}function ft(t){if(!t.cnv)return;t.legend.cnv.holder.selectAll("*").remove();const e=t.legend.cnv.holder.append("svg");const s=20;const a=15;const n=10;const i=150;L({axis:e.append("g").attr("transform","translate("+n+","+s+")").call($().scale(d().domain([-t.cnv.absoluteMax,t.cnv.absoluteMax]).range([0,i])).ticks(4)),fontsize:12});const o="grad"+Math.random();const r=e.append("defs").append("linearGradient").attr("id",o);r.append("stop").attr("offset","0%").attr("stop-color",t.cnv.lossColor);r.append("stop").attr("offset","50%").attr("stop-color","white");r.append("stop").attr("offset","100%").attr("stop-color",t.cnv.gainColor);e.append("rect").attr("x",n).attr("y",s).attr("width",i).attr("height",a).attr("fill",`url(#${o})`);e.attr("width",n*2+i).attr("height",s+a)}function mt(t){if(t.lst.length==0){return"No filter"}if(t.lst.length==1&&t.lst[0].type=="tvs"){const e=t.lst[0].tvs;if(!e)throw"f.lst[0].tvs{} missing";const s=e?.term?.type;if(s=="categorical"){if(!Array.isArray(e.values))throw"f.lst[0].tvs.values not array";const t=e.values[0]?.key;if(t==undefined)throw"f.lst[0].tvs.values[0].key missing";const s=e.term.values?.[t]?.label||t;if(e.values.length==1){if((e.term.name+s).length<20){return e.term.name+(e.isnot?"!=":": ")+s}return(e.isnot?"!":"")+(s.length<15?s:s.substring(0,13)+"...")}return`${e.isnot?"!":""}${s.length<12?s:s.substring(0,10)+"..."} (${e.values.length})`}if(s=="integer"||s=="float"||s=="geneExpression"||s=="metaboliteIntensity"){return ut(e)}throw"unknown tvs term type"}return"Filter ("+t.lst.length+")"}function ut(t){if(!Array.isArray(t.ranges))throw"tvs.ranges not array";if(!t.ranges[0])throw"tvs.ranges[] blank array";const e=t.ranges[0];let s,a;const n=t.term.valueConversion;if(n){if("start"in e)s=f(e.start,n.fromUnit,n.toUnit,n.scaleFactor,true);if("stop"in e)a=f(e.stop,n.fromUnit,n.toUnit,n.scaleFactor,true)}else{if(t.term.type=="integer"){if("start"in e)s=Math.round(e.start);if("stop"in e)a=Math.round(e.stop)}else{if("start"in e)s=e.start;if("stop"in e)a=e.stop;if("start"in e&&"stop"in e){[s,a]=U([s,a])}}}let i;if(t.isnot){if(e.startunbounded)i=`x ${e.stopinclusive?">":">="} ${a}`;else if(e.stopunbounded)i=`x ${e.startinclusive?"<":"<="} ${s}`;else i=`!(${s} ${a})`}else{if(e.startunbounded)i=`x ${e.stopinclusive?"<=":"<"} ${a}`;else if(e.stopunbounded)i=`x ${e.startinclusive?">=":">"} ${s}`;else i=`${s}${e.startinclusive?"<=":"<"}x${e.stopinclusive?"<=":"<"}${a}`}if(t.ranges.length>1)i+="...";return i}async function pt(e,s){e.subtk2height={};e.leftlabels={g:e.gleft.append("g"),doms:{},laby:0,xoff:0,maxwidth:0};e._finish=ht(e,s);e.cache={};e.itemtip=new t;e.menutip=new t({padding:""});e.load=Ct(e,s);e.mnamegetter=t=>{if(e.mds.queries?.snvindel?.vcfid4skewerName&&t.vcf_id)return t.vcf_id;const s=t.mname;if(!s)return"";if(s.length>25){return s.substr(0,20)+"..."}return s};await vt(e,s);await _t(e,s);await At(e,s);jt(e,s);Mt(e,s);wt(e);bt(e);if(e.filterObj)await Promise.all(P(e.filterObj,e.mds.termdb.vocabApi));e.tklabel.text(e.mds.label||e.name);e.clear=()=>{if(e.skewer)e.skewer.g.selectAll("*").remove()};W(e,s);xt(e);e.color4disc=t=>{if(e.mutationColorBy){if(e.mutationColorBy=="hardcode"){if(t.color)return t.color}}if(e.mds.queries?.ld?.mOverlay?.data){const s=e.mds.queries.ld.mOverlay.m;if(t.chr==s.chr&&t.pos==s.pos&&t.ref==s.ref&&t.alt==s.alt){return e.mds.queries.ld.overlay.color_1}for(const s of e.mds.queries.ld.mOverlay.data){if(s.pos==t.pos&&s.alleles==t.ref+"."+t.alt){return e.mds.queries.ld.colorScale(s.r2)}}return e.mds.queries.ld.overlay.color_0}if(e.vcfinfofilter&&e.vcfinfofilter.setidx4mclass!=undefined){const s=e.vcfinfofilter.lst[e.vcfinfofilter.setidx4mclass];const[a,n]=zt(s,t);if(a||n==undefined)return"black";for(const t of n){if(s.categories[t]){return s.categories[t].color}else{return"black"}}}if(i[t.class]){return i[t.class].color}return"black"};gt(e);if(e.hlssmid){e.skewer.hlssmid=new Set(e.hlssmid.split(","));delete e.hlssmid}try{It(e)}catch(t){console.error(t)}}function ht(t,e){return s=>{t.legend?.headTd.text(t.name+(t.filterObj?" - "+mt(t.filterObj):""));if(t.cnv){t.cnv.g.transition().attr("transform",`translate(0,${t.subtk2height.skewer||0})`)}if(s){if(s.error){t.subtk2height.skewer=40}else{let a=0;if(s.skewer)a=s.skewer.length;if(s.cnv)a+=s.cnv.length;if(a==0){let s="view range";if(e.usegm&&e.gmmode!="genomic")s=e.usegm.name||e.usegm.isoform;t.skewer.g.append("text").text("No mutation in "+s).attr("y",25).attr("x",e.width/2).attr("text-anchor","middle").attr("dominant-baseline","center");t.subtk2height.skewer=40}}}t.height_main=Math.max(t.subtk2height.leftlabels||0,t.subtk2height.skewer+(t.subtk2height.cnv||0))+t.toppad+t.bottompad;if(s){tt(s,t)}t.leftLabelMaxwidth=Math.max(t.leftlabels.maxwidth+t.leftlabels.xoff,t.skewer?t.skewer.maxwidth:0);e.tkcloakoff(t,{error:s?s.error:null});e.block_setheight();e.setllabel();if(typeof t.callbackOnRender=="function"){t.callbackOnRender(t,e)}}}function gt(t){const e=m();if(t.skewer){if(e.has("hlaachange")){t.hlaachange=e.get("hlaachange")}if(e.has("hlssmid")){t.hlssmid=e.get("hlssmid").split(",")}}}function wt(t){if(!t.mds.has_skewer)return;t.skewer={g:t.glider.append("g"),hlBoxColor:t.mds.hlBoxColor||"red",hideDotLabels:false,pointup:true};kt(t)}function bt(t){let e=t.mds.termdbConfig?.queries?.cnv;if(!e){if(t.mds.has_cnv){e={}}}if(!e)return;t.cnv={g:t.glider.append("g"),cnvMaxLength:e.cnvMaxLength,cnvGainCutoff:e.cnvGainCutoff,cnvLossCutoff:e.cnvLossCutoff,absoluteValueRenderMax:e.absoluteValueRenderMax||5,gainColor:e.gainColor||"#D6683C",lossColor:e.lossColor||"#67a9cf"}}function kt(t){t.skewer.viewModes=t.skewerModes;delete t.skewerModes;if(!t.skewer.viewModes)t.skewer.viewModes=[];const e=t.skewer.viewModes;if(!Array.isArray(e))throw"skewerModes[] is not array";if(t.mds.skewerModes){for(const s of t.mds.skewerModes)e.push(s)}if(!e.find((t=>t.type=="skewer")))e.push({type:"skewer"});for(const t of e){if(typeof t!="object")throw"one of skewerModes[] is not object";if(t.type=="skewer"){if(!t.label)t.label="lollipops"}else if(t.type=="numeric"){if(t.byAttribute){if(!t.label)t.label=t.byAttribute}else if(t.byInfo);else{throw"unknown data method for a type=numeric mode"}}else{throw"unknown type from a skewerModes[]"}}if(!e.find((t=>t.inuse)))e[0].inuse=true}function xt(t){if(t.mds.hiddenmclass){for(const e of t.mds.hiddenmclass)t.legend.mclass.hiddenvalues.add(e)}}async function vt(t,e){if(t.dslabel){const s=await u("getDataset",{body:{genome:e.genome.name,dsname:t.dslabel}});if(s.error)throw"Error: "+s.error;if(!s.ds)throw"data.ds{} missing";t.mds=s.ds;t.name=s.ds.label;return}if(!t.name)t.name="Custom data";t.mds={};if(t.bcf){if(!t.bcf.file&&!t.bcf.url)throw"file or url missing for tk.bcf{}";t.mds.has_skewer=true;await Ot(t,e.genome)}else if(t.custom_variants){Lt(t,e);Rt(t)}else{throw"unknown data source for custom track"}yt(t)}function yt(t){if(!t.sampleAnnotation)return;if(!Array.isArray(t.sampleAnnotation.terms))throw"sampleAnnotation.terms is not array";if(!t.mds.termdb)t.mds.termdb={};t.mds.termdb.terms=t.sampleAnnotation.terms;t.mds.termdb.annotations=t.sampleAnnotation.annotations}async function _t(t,e){const s=t.mds.termdb;if(!s)return;{const a={};if(t.mds.label){a.vocab={genome:e.genome.name,dslabel:t.mds.label}}else if(s.terms){a.vocab={terms:s.terms,sampleannotation:s.annotations}}else{throw"do not know how to init vocab"}const n=await import("./FilterRxComp-02e68f1b.js").then((function(t){return t.k}));s.vocabApi=n.vocabInit(a);if(!s.vocabApi.app){s.vocabApi.app={opts:{genome:e.genome}}}}t.mds.termdbConfig=await s.vocabApi.getTermdbConfig();if(t.mds.termdb.allowCaseDetails){t.mds.termdb.allowCaseDetails.get=async t=>{}}}function jt(t,e){if(!t.mds.queries?.snvindel?.m2csq)return;t.mds.queries.snvindel.m2csq.get=async s=>{const a={genome:e.genome.name,dslabel:t.mds.label,m2csq:1};if(t.mds.queries.snvindel.m2csq.by=="ssm_id"){a.ssm_id=s.ssm_id}else{return{error:"unknown query method"}}const n={"Content-Type":"application/json",Accept:"application/json"};if(t.token)n["X-Auth-Token"]=t.token;return await u("mds3",{body:a,headers:n},{serverData:t.cache})}}function Mt(t,e){if(!t.mds.queries?.singleSampleMutation)return;t.mds.queries.singleSampleMutation.get=async s=>{const a={genome:e.genome.name,dslabel:t.mds.label,sample:s};const n={"Content-Type":"application/json",Accept:"application/json"};if(t.token)n["X-Auth-Token"]=t.token;const i=await u("termdb/singleSampleMutation",{body:a,headers:n});if(i.error)throw i.error;if(!Array.isArray(i.mlst))throw"data.mlst is not array";return i.mlst}}async function At(t,e){if(!t.mds.variant2samples)return;if(t.custom_variants){St(t)}else{qt(t,e)}if(t.mds.variant2samples.twLst){if(!Array.isArray(t.mds.variant2samples.twLst))throw"v2s.twLst[] not array";if(!t.mds.termdb?.vocabApi)throw"mds.termdb.vocabApi should be present for initiating v2s.twLst";for(const e of t.mds.variant2samples.twLst)await G(e,t.mds.termdb.vocabApi)}}function St(t,e){t.mds.variant2samples.get=e=>{if(e.querytype==t.mds.variant2samples.type_samples){const t=[];for(const s of e.mlst){if(!s.samples)continue;for(const e of s.samples){const a=JSON.parse(JSON.stringify(e));a.ssm_id=s.ssm_id;t.push(a)}}return{samples:t}}if(e.querytype==t.mds.variant2samples.type_summary){throw"todo: summary"}if(e.querytype==t.mds.variant2samples.type_sunburst){throw"todo: sunburst"}throw"unknown querytype"};t.mds.getSamples=()=>{const e=new Map;for(const s of t.custom_variants){if(!s.samples)continue;for(const t of s.samples){if(e.has(t.sample_id)){e.get(t.sample_id).ssm_id_lst.push(s.ssm_id)}else{const a=JSON.parse(JSON.stringify(t));a.ssm_id_lst=[s.ssm_id];e.set(t.sample_id,a)}}}return{samples:[...e.values()]}}}function qt(t,e){t.mds.variant2samples.get=async s=>{const a={genome:e.genome.name,variant2samples:1,get:s.querytype};if(t.mds.label){a.dslabel=t.mds.label}else if(t.bcf){if(t.bcf.file)a.bcffile=t.bcf.file;else if(t.bcf.url)a.bcfurl=t.bcf.url;else throw"tk.bcf{}: file/url missing"}else{throw"no dslabel or tk.bcf"}if(s.groupSsmBySample){a.groupSsmBySample=1}if(s.mlst){if(t.mds.variant2samples.variantkey=="ssm_id"){a.ssm_id_lst=s.mlst.map((t=>t.ssm_id)).join(",")}else{throw"unknown variantkey for variant2samples"}}if(s.isoform){a.isoform=s.isoform}if(s.rglst){a.rglst=s.rglst}const n={"Content-Type":"application/json",Accept:"application/json"};if(t.set_id)a.set_id=t.set_id;if(t.token)n["X-Auth-Token"]=t.token;if(t.filter0)a.filter0=t.filter0;if(t.filterObj)a.filterObj=t.filterObj;if(s.tid2value)a.tid2value=s.tid2value;if(s.querytype==t.mds.variant2samples.type_sunburst){if(t.mds.variant2samples.sunburst_twLst){a.twLst=t.mds.variant2samples.sunburst_twLst}}else if(s.querytype==t.mds.variant2samples.type_samples){if(t.mds.variant2samples.twLst)a.twLst=t.mds.variant2samples.twLst}else if(s.querytype==t.mds.variant2samples.type_summary){if(t.mds.variant2samples.twLst)a.twLst=t.mds.variant2samples.twLst}else{throw"unknown querytype"}a.skewerRim=t.mds.queries.snvindel?.skewerRim;if(t.legend.formatFilter){const e={};for(const s in t.legend.formatFilter){if(t.legend.formatFilter[s].hiddenvalues.size){e[s]=[...t.legend.formatFilter[s].hiddenvalues]}}if(Object.keys(e).length){a.formatFilter=e}}if(t.legend.mclass?.hiddenvalues?.size){a.hiddenmclasslst=[...t.legend.mclass.hiddenvalues].join(",")}const i=await u("mds3",{body:a,headers:n},{serverData:t.cache});if(i.error)throw i.error;const o=i.variant2samples;if(!o)throw"result error";if(s.querytype==t.mds.variant2samples.type_sunburst){if(!Array.isArray(o.nodes))throw"nodes[] not array from return"}else if(s.querytype==t.mds.variant2samples.type_samples){if(!Array.isArray(o.samples))throw"samples[] not array from return"}else if(s.querytype==t.mds.variant2samples.type_summary){if(!Array.isArray(o.summary))throw"summary[] not array from return"}else{throw"unknown querytype"}return o};t.mds.getSamples=async(s={})=>{if(s.isSummary){s.querytype=t.mds.variant2samples.type_summary}else{s.querytype=t.mds.variant2samples.type_samples;s.groupSsmBySample=1}Cs(t,e,s);return await t.mds.variant2samples.get(s)}}function Ct(t,e){return async()=>await As(t,e)}function zt(t,e){if(t.altalleleinfo){if(!e.altinfo)return["no .altinfo"];const s=e.altinfo[t.altalleleinfo.key];if(s==undefined){if(t.numericfilter){return[null,[0]]}return[null,undefined]}let a=Array.isArray(s)?s:[s];if(t.altalleleinfo.separator){a=a[0].split(t.altalleleinfo.separator)}return[null,a]}if(t.locusinfo){if(!e.info)return["no .info"];const s=e.info[t.locusinfo.key];if(s==undefined){if(t.numericfilter){return[null,[0]]}return[null,undefined]}let a=Array.isArray(s)?s:[s];if(t.locusinfo.separator){a=a[0].split(t.locusinfo.separator)}return[null,a]}return["no trigger"]}function Lt(t,e){for(const a of t.custom_variants){if(a.dt==p){t.mds.has_skewer=true;$t(a);continue}if(a.dt==l||a.dt==r){t.mds.has_skewer=true;Nt(a,e);continue}if(a.dt==s){t.mds.has_cnv=true;a.ssm_id=a.chr+"."+a.start+"."+a.stop+"."+a.class;continue}throw"unknown dt for a custom variant"}}function $t(t){if(!t.chr)throw".chr missing for custom snvindel";if(!Number.isInteger(t.pos))throw".pos not integer for custom snvindel";if(!t.ssm_id){t.ssm_id=t.chr+"."+t.pos+"."+(t.ref&&t.alt?t.ref+"."+t.alt:t.mname)}}function Nt(t,e){if(t.pairlst);else{if(!t.chr1)throw".chr1 missing for custom sv/fusion";if(!Number.isInteger(t.pos1))throw".pos1 not integer for custom svfusion";if(t.strand1!="+"&&t.strand1!="-")throw".strand1 not +/- for custom svfusion";if(!t.chr2)throw".chr1 missing for custom sv/fusion";if(!Number.isInteger(t.pos2))throw".pos1 not integer for custom svfusion";if(t.strand2!="+"&&t.strand2!="-")throw".strand1 not +/- for custom svfusion";t.pairlst=[{a:{chr:t.chr1,pos:t.pos1,strand:t.strand1,name:t.gene1||""},b:{chr:t.chr2,pos:t.pos2,strand:t.strand2,name:t.gene2||""}}];delete t.chr1;delete t.pos1;delete t.strand1;delete t.gene1;delete t.chr2;delete t.pos2;delete t.strand2;delete t.gene2}const s=[t.dt];const a=e.seekcoord(t.pairlst[0].a.chr,t.pairlst[0].a.pos);if(a.length&&a[0].x>0&&a[0].x<e.width){s.push(...[t.pairlst[0].a.chr,t.pairlst[0].a.pos,t.pairlst[0].a.strand,0,t.pairlst[0].a.name]);t.mname=t.pairlst[0].b.name||"";t.chr=t.pairlst[0].a.chr;t.pos=t.pairlst[0].a.pos;t.pairlstIdx=0}else{const a=e.seekcoord(t.pairlst[0].b.chr,t.pairlst[0].b.pos);if(a.length&&a[0].x>0&&a[0].x<e.width){s.push(...[t.pairlst[0].b.chr,t.pairlst[0].b.pos,t.pairlst[0].b.strand,1,t.pairlst[0].b.name]);t.mname=t.pairlst[0].a.name||"";t.chr=t.pairlst[0].b.chr;t.pos=t.pairlst[0].b.pos;t.pairlstIdx=1}}t.ssm_id=s.join(".")}function Rt(t){if(t.custom_variants.find((t=>t.occurrence!=undefined))){return}for(const e of t.custom_variants){if(e.sample){e.sample_id=e.sample;delete e.sample}}if(!t.custom_variants.find((t=>t.sample_id))){return}const e=[];const s=new Map;for(const a of t.custom_variants){if(a.dt!=p){a.occurrence=1;a.samples=[{sample_id:a.sample_id}];delete a.sample_id;e.push(a);continue}const t=a.mname+"."+a.chr+"."+a.pos+"."+a.ref+"."+a.alt;const n=s.get(t);if(n){n.occurrence++;n.samples.push({sample_id:a.sample_id})}else{a.occurrence=1;a.samples=[{sample_id:a.sample_id}];delete a.sample_id;s.set(t,a)}}t.custom_variants=e;for(const e of s.values())t.custom_variants.push(e);if(!t.mds.variant2samples)t.mds.variant2samples={};const a=t.mds.variant2samples;a.type_samples="samples";a.type_summary="summary";a.type_sunburst="sunburst"}async function Ot(t,e){const s={genome:e.name};if(t.bcf.file){s.file=t.bcf.file}else{s.url=t.bcf.url;if(t.bcf.indexURL)s.indexURL=t.bcf.indexURL}const a=await u("vcfheader",{body:s});if(a.error)throw a.error;const[n,i,o,r]=F(a.metastr.split("\n"));if(r)throw"Error parsing VCF meta lines: "+r.join("; ");t.mds.bcf={info:n,format:i};if(o?.length){t.mds.bcf.samples=o;t.mds.variant2samples={type_samples:"samples",variantkey:"ssm_id"}}if(!t.mds.queries)t.mds.queries={};t.mds.queries.snvindel={forTrack:true}}function It(t){const e=t.allow2selectSamples;if(!e)return;if(!e.buttonText)e.buttonText="Select samples";if(typeof e.buttonText!="string")throw"allow2selectSamples.buttonText value is not string";if(!e.attributes)e.attributes=[{from:"sample_id",to:"sample_id"}];if(!Array.isArray(e.attributes))throw"allow2selectSamples.attributes[] is not array";if(e.attributes.length==0)throw"allow2selectSamples.attributes[] blank array";for(const t of e.attributes){if(typeof t.from!="string"||!t.from)throw"allow2selectSamples.attributes.from is not string";if(typeof t.to!="string"||!t.to)throw"allow2selectSamples.attributes.to is not string"}if(typeof e.callback!="function")throw"allow2selectSamples.callback() is not function";e._cart=[]}async function Dt(t){for(const e of t.mlst){if(e.dt!=p&&e.dt!=l&&e.dt!=r&&e.dt!=s)throw"mlst[] contains unknown dt"}if(t.mlst.length==1){await Bt(t)}else{await Ft(t)}Tt(t)}function Tt(t){if(!t.tipDiv){return}const e=[];for(const s of t.div.selectAll("div").selectAll("table")){if(s)e.push(s)}if(!e.length)return;let s=0;for(const t of e){const e=t.firstChild;if(e.tagName!="THEAD")continue;const a=e.firstChild;if(a.tagName!="TR")continue;s=Math.max(s,a.childNodes?.length)}if(s>5){t.tipDiv.style("left","50px")}}async function Bt(t){const e=h({holder:t.div});const a=t.mlst[0];if(a.dt==p){Ut(t,e)}else if(a.dt==r||a.dt==l){await Wt(t,e)}else if(a.dt==s){Kt(t,e)}else{throw"oneItem: unknown dt"}t.singleSampleDiv=e;if(t.tk.mds.variant2samples){if(a.occurrence){await Zt(t)}}}async function Ft(t){const e=t.div.append("div").style("margin-bottom","10px").style("display","none");e.append("span").html("≪ Back to list").attr("class","sja_clbtext").on("click",(()=>{m.style("display","");e.style("display","none");a.style("display","none")}));const a=t.div.append("div").style("display","none");const n=[{label:"Click a variant to see details"}];const o=t.mlst.some((t=>t.occurrence));if(o){n.push({label:"Occurrence"})}let c=null;if(t.tk.mds.bcf?.info){c=[];for(const e in t.tk.mds.bcf.info){if(t.tk.mds.bcf.info[e].categories){c.push(e);n.push({label:t.tk.mds.bcf.info[e].name||e})}}if(c.length==0)c=null}let d;if(t.tk.skewer){d=t.tk.skewer.viewModes.find((t=>t.inuse&&t.type=="numeric"&&t.byAttribute!="occurrence"));if(d){n.push({label:d.label})}}t.mlst.sort(((t,e)=>t.__x-e.__x));const f=[];for(const e of t.mlst){const s=[{}];if(o){s.push({value:"occurrence"in e?e.occurrence:""})}if(c){for(const a of c){const n=e.info[a];if(n==undefined){s.push({})}else{const e=t.tk.mds.bcf.info[a].categories[n];if(e?.color){s.push({html:`<span style="background:${e.color}"> </span> ${e.label||n}`})}else{s.push({value:n})}}}}if(d){s.push({value:e[d.byAttribute]})}f.push(s)}const m=t.div.append("div");R({div:m,columns:n,rows:f,striped:false,resize:true});for(const[n,o]of t.mlst.entries()){const c=f[n][0].__td.append("div").attr("class","sja_menuoption").on("click",(()=>{m.style("display","none");e.style("display","");a.style("display","").selectAll("*").remove();const s=Object.assign({},t);s.mlst=[o];s.div=a;Dt(s)}));if(o.dt==p){c.append("span").text(t.tk.mnamegetter(o));c.append("span").text(i[o.class].label).style("font-size",".8em").style("margin-left","10px").style("color",i[o.class].color);c.append("span").text(`${o.chr}:${o.pos+1}${o.ref?", "+o.ref+">"+o.alt:""}`).style("font-size",".8em").style("margin-left","10px")}else if(o.dt==r||o.dt==l){c.append("span").text(i[o.class].label).style("font-size",".7em").style("margin-right","8px");Qt(o.pairlst[0],c)}else if(o.dt==s){c.append("span").style("background",t.tk.cnv.colorScale(o.value)).text(o.value).style("font-size",".8em").style("padding","0px 3px");c.append("span").style("margin-left","10px").text(`${o.chr}:${o.start}-${o.stop}`)}else{c.text("error: unknown m.dt")}}if(!t.doNotListSample4multim&&t.tk.mds.variant2samples){const e=t.mlst.reduce(((t,e)=>t+(e.occurrence||0)),0);if(e){t.div.append("div").style("margin-top","10px").append("span").attr("class","sja_clbtext").text("List all samples").on("click",(async e=>{e.target.remove();m.remove();await Zt(t);Tt(t)}))}}}function Ut({mlst:t,tk:e,block:s},a){const n=t[0];{const[t,e]=a.addRow();t.text(s.mclassOverride?s.mclassOverride.className:"Consequence");Ht(e,n)}{const[t,i]=a.addRow();t.text(n.ref&&n.alt?"Mutation":"Position");Vt(i,n,e,s)}if(n.occurrence>1){const[t,e]=a.addRow();t.text("Occurrence");e.text(n.occurrence)}Gt(n,e,a);Pt(n,e,a);Yt(n,e,a);if(n.info){for(const t in n.info){if(t=="CSQ"){continue}const[s,i]=a.addRow();s.text(t);const o=n.info[t];const r=e.mds?.bcf?.info?.[t];if(Array.isArray(o)){for(const t of o){Et(n,r,t,i)}}else{Et(n,r,o,i)}if(r?.Description){i.append("span").style("margin-left","10px").style("font-size",".8em").style("opacity",.6).text(r.Description)}}}}function Gt(t,e,s){const a=e.skewer.viewModes.find((t=>t.inuse));if(a.type!="numeric"||a.byAttribute=="occurrence")return;if(a.tooltipPrintValue){const e=a.tooltipPrintValue(t);if(Array.isArray(e)){for(const t of e){const[e,a]=s.addRow();e.text(t.k);a.text(t.v)}}else{console.log("unknown return value")}return}const[n,i]=s.addRow();n.text(a.label);i.text(t.__value_missing?"NA":t.__value_use)}function Pt(t,e,s){if(!t.htmlSections)return;if(!Array.isArray(t.htmlSections))throw"htmlSections[] is not array";for(const e of t.htmlSections){const[t,a]=s.addRow();if(e.key&&e.html){t.text(e.key);a.html(e.html)}}}function Et(t,e,s,a,n){if(!e){a.append("span").text(s);return}if(e.urlBase){a.append("a").text(s).attr("href",e.urlBase+s).attr("target","_blank");return}const i=a.append("span").text(s);if(e&&e.categories){const t=e.categories[s];if(t){i.style("padding","1px 4px").style("background",t.color);if(t.textcolor){i.style("color",t.textcolor)}}}}function Ht(t,e){t.append("span").text(e.mname);t.append("span").style("margin-left","5px").style("color",i[e.class].color).style("font-size",".8em").text(i[e.class].label.toUpperCase())}function Vt(t,e,s,a){const n=t.append("span").text(`${e.chr}:${e.pos+1} ${e.ref&&e.alt?e.ref+">"+e.alt:""}`);const i=s.mds.termdbConfig?.urlTemplates?.ssm||s.mds.queries?.snvindel?.ssmUrl;if(i){const s=z(i,e,n,a.genome.name);if(s?.length){t.append("span").style("margin-left","10px").html(s.join(" "))}}}async function Wt(t,e){await Xt(t.mlst[0],e.scrollDiv.insert("div",":first-child"),t.block);{const[s,a]=e.addRow();s.text("Data type");a.text(i[t.mlst[0].class].label)}{const[s,a]=e.addRow();s.text("Break points");for(const e of t.mlst[0].pairlst){Qt(e,a.append("div"))}}}function Kt(t,e){const s=t.mlst[0];{const[a,n]=e.addRow();a.text("Copy number change");n.html(`<span style="background:${t.tk.cnv.colorScale(s.value)}"> </span> ${s.value}`)}{const[t,a]=e.addRow();t.text("Position");a.text(s.chr+":"+s.start+"-"+s.stop)}if(s.samples){const[t,a]=e.addRow();t.text("Sample");for(const t of s.samples){a.append("div").text(t.sample_id)}}}function Qt(t,e){if(t.a.name)e.append("span").text(t.a.name).style("font-weight","bold").style("margin-right","5px");e.append("span").text(`${t.a.chr}:${t.a.pos} ${t.a.strand=="+"?"forward":"reverse"} > ${t.b.chr}:${t.b.pos} ${t.b.strand=="+"?"forward":"reverse"}`);if(t.b.name)e.append("span").text(t.b.name).style("font-weight","bold").style("margin-left","5px")}async function Xt(t,e,s){const a=e.append("div").text("Loading...");try{if(!t.pairlst)throw".pairlst[] missing";const n={a:{chr:t.pairlst[0].a.chr,position:t.pairlst[0].a.pos,strand:t.pairlst[0].a.strand},b:{chr:t.pairlst[0].b.chr,position:t.pairlst[0].b.pos,strand:t.pairlst[0].b.strand}};await Jt(n.a,s);await Jt(n.b,s);a.remove();const i=await import("./svgraph-b46f1f92.js");i.default({pairlst:[n],genome:s.genome,holder:e})}catch(t){a.text(t.message||t)}}async function Jt(t,e){const s=await u("isoformbycoord",{body:{genome:e.genome.name,chr:t.chr,pos:t.position}});if(s.error)throw s.error;const a=s.lst.find((t=>t.isdefault))||s.lst[0];if(a){t.name=a.name;t.gm={isoform:a.isoform}}}function Yt(t,e,s){if(!e.mds.queries?.ld)return;const[a,n]=s.addRow();a.text("LD overlay");const i=e.mds.queries.ld.mOverlay?.m;if(i){const s=n.append("div").style("margin-bottom","5px");if(t.ssm_id==i.ssm_id){s.html(e.mds.queries.ld.mOverlay.ldtkname+" r<sup>2</sup> values against this variant are displayed on all the other variants.")}else{let a=null;for(const s of e.mds.queries.ld.mOverlay.data||[]){if(s.pos==t.pos&&s.alleles==t.ref+"."+t.alt){a=s.r2;break}}if(a==null){s.html("No r<sup>2</sup> value is found.")}else{s.html(e.mds.queries.ld.mOverlay.ldtkname+" r<sup>2</sup> = "+a)}}}n.append("div").html("Click a button to overlay LD r<sup>2</sup> values against this variant:").style("font-size",".8em").style("opacity",.5);for(const s of e.mds.queries.ld.tracks){const a=n.append("button").text(s.name);if(i&&i.ssm_id==t.ssm_id){if(s.name==e.mds.queries.ld.mOverlay.ldtkname){a.property("disabled",true);continue}}a.on("click",(()=>{e.itemtip.hide();e.mds.queries.ld.mOverlay={ldtkname:s.name,m:{chr:t.chr,pos:t.pos,ref:t.ref,alt:t.alt,ssm_id:t.ssm_id}};e.load()}))}}async function Zt(t){const e=t.div.append("div").text("Loading...").style("padding","10px").style("color","#8AB1D4").style("font-size","1.25em").style("font-weight","bold");t.tid2value_orig=new Set;if(t.tid2value)Object.keys(t.tid2value).forEach(t.tid2value_orig.add,t.tid2value_orig);try{t.querytype=t.tk.mds.variant2samples.type_samples;const s=await t.tk.mds.variant2samples.get(t);await te(s.samples,t);e.remove()}catch(t){e.text("Error: "+(t.message||t));if(t.stack)console.log(t.stack)}}async function te(t,e){if(t.length==1){return await se(t[0],e)}const[s,a]=await oe(t,e.tk);const n={rows:a,columns:s,div:e.div,resize:a.length>10,dataTestId:"sjpp_mds3tk_sampletable"};n.columnButtons=[];if(e.tk.mds.queries?.singleSampleMutation){const s={text:"Disco",dataTestId:"sja_sample_table_disco_button",callback:async(s,a)=>{e.tk.itemtip.hide();e.tk.menutip.hide();let n;if(t[a].ssm_id_lst?.[0]){n=(e.tk.skewer.rawmlst||e.tk.custom_variants).find((e=>e.ssm_id==t[a].ssm_id_lst[0]))}await ie(e.tk,e.block,t[a],n)}};n.columnButtons.push(s)}if(e.tk.mds.queries?.singleSampleGenomeQuantification){for(const s in e.tk.mds.queries.singleSampleGenomeQuantification){const a={text:s,dataTestId:`${s}_button`,callback:async(a,n)=>{const i=g(e.tk.newChartHolder||e.block.holder0);i.header.text(t[n].sample_id);await(await import("./plot.ssgq-d33113d5.js")).plotSingleSampleGenomeQuantification(e.tk.mds,e.tk.mds.label,s,t[n],i.body.append("div").style("margin","20px"),e.block.genome,e.block.usegm?.name)}};n.columnButtons.push(a)}}if(e.tk.allow2selectSamples){n.buttons=[{text:e.tk.allow2selectSamples.buttonText,class:e.tk.allow2selectSamples.class,callback:s=>{ee(e.tk,e.block,t,s);e.tk.itemtip.hide();e.tk.menutip.hide()}}]}return R(n)}async function ee(t,e,s,a){const n=[...s];const i=a.map((t=>n[t]));t.allow2selectSamples.callback({samples:await t.mds.termdb.vocabApi.convertSampleId(i,t.allow2selectSamples.attributes),source:"Samples with "+le(e)})}async function se(t,e){const s=e.singleSampleDiv||h({holder:e.div});if(t.sample_id){const[a,n]=s.addRow();a.text(e.tk.mds.termdbConfig?.lollipop?.sample||"Sample");let i;if(t.ssm_id_lst?.[0]){i=e.tk.skewer.rawmlst.find((e=>e.ssm_id==t.ssm_id_lst[0]))}ne(t,e.tk,n,e.block,i)}if("caseIsOpenAccess"in t){const[e,a]=s.addRow();e.text("Access");a.text(t.caseIsOpenAccess?"Open":"Controlled")}if(e.tk.mds.variant2samples.twLst){for(const a of e.tk.mds.variant2samples.twLst){const[e,n]=s.addRow();e.text(a.term.name).style("text-overflow","ellipsis");n.style("text-overflow","ellipsis");if(a.term.id in t){if(Array.isArray(t[a.term.id])){if(a.baseURL){n.html(t[a.term.id].map((t=>`<a href=${a.baseURL+t} target=_blank>${t}</a>`)).join("<br>"))}else{n.html(t[a.term.id].join("<br>"))}}else{const e=ae(t,a);if(a.baseURL){n.html(`<a href=${a.baseURL+e} target=_blank>${e}</a>`)}else{n.text(e)}}}}}if(t.ssmid2format){for(const a of t.ssm_id_lst){if(t.ssm_id_lst.length>1){const[t,n]=s.addRow();n.style("padding-top","20px");const i=e.tk.skewer.rawmlst.find((t=>t.ssm_id==a));if(i){if(i.dt==p){Vt(n,i,e.tk,e.block)}else if(i.dt==r||i.dt==l){Qt(i.pairlst[0],n)}else{n.text(a)}}else{n.text(a)}}for(const n in t.ssmid2format[a]){const i=t.ssmid2format[a][n];const[o,r]=s.addRow();const l=e.tk.mds?.bcf?.format?.[n];o.text(l&&l.Description||n);r.html(re(l,i))}}}}function ae(t,e){if(!(e.term.id in t))return"";const s=t[e.term.id];if(e.term.values?.[s]?.label)return e.term.values[s].label;const a=e.term.valueConversion;if(a)return f(s,a.fromUnit,a.toUnit,a.scaleFactor);return s}function ne(t,e,s,a,n){const i=e.mds.termdbConfig?.urlTemplates?.sample;if(i){const e=s.append("a");e.attr("href",i.base+(t[i.namekey]||t.sample_id));e.attr("target","_blank");e.text(t.sample_id);e.style("word-break","break-word")}else{s.append("span").attr("class","pp_mds3_singleSampleNameSpan").text(t.sample_id)}const o=s.append("div");if(e.allow2selectSamples){const s=e.allow2selectSamples.buttonText;const n=o.append("button").style("margin-right","10px").text(s.endsWith("s")?s.substring(0,s.length-1):s).on("click",(()=>{ee(e,a,[t],[0]);e.itemtip.hide();e.menutip.hide()}));if(e.allow2selectSamples.class)n.attr("class",e.allow2selectSamples.class)}if(e.mds.queries?.singleSampleMutation){o.append("button").style("margin-right","10px").text("Disco plot").attr("data-testid","proteinpaint_disc_table_disco_button").on("click",(async()=>{e.itemtip.hide();await ie(e,a,t,n)}))}if(e.mds.queries?.singleSampleGenomeQuantification){for(const s in e.mds.queries.singleSampleGenomeQuantification){o.append("button").text(s).on("click",(async()=>{const n=g(e.newChartHolder||a.holder0);n.header.text(t.sample_id);await(await import("./plot.ssgq-d33113d5.js")).plotSingleSampleGenomeQuantification(e.mds,e.mds.label,s,t,n.body.append("div").style("margin","20px"),a.genome,a.usegm?.name)}))}}}async function ie(t,e,s,a){const n=g(t.newChartHolder||e.holder0);const i=[s.sample_id];if(a){i.push(", with ");if(e.usegm){i.push(e.usegm.name)}else{i.push(a.isoform)}i.push(" "+a.mname)}n.header.text(i.join(""));try{(await import("./plot.disco-1fdfee3c.js")).default(t.mds,t.mds.label,s,n.body,e.genome,{downloadImgName:i.join("")+" Disco",Disco:{prioritizeGeneLabelsByGeneSets:true}})}catch(t){n.body.append("div").text("Error: "+(t.message||t));if(t.stack)console.log(t.stack)}}async function oe(t,e){const s=t.some((t=>"caseIsOpenAccess"in t)),a=t.some((t=>t.ssm_id))||t.some((t=>t.ssm_id_lst)),n=t.some((t=>t.ssmid2format))&&e.mds?.bcf?.format;const o=new Set;const c=[{label:e.mds.termdbConfig?.lollipop?.sample||"Sample"}],d=[];if(s){c.push({label:"Access"})}if(e.mds.variant2samples.twLst){for(const t of e.mds.variant2samples.twLst){const e={label:t.term.name};c.push(e)}}if(a){c.push({label:"Mutations",isSsm:true})}if(n){for(const e of t){if(!e.ssmid2format)continue;for(const t in e.ssmid2format){for(const s in e.ssmid2format[t])o.add(s)}}for(const t in e.mds.bcf.format){if(!o.has(t))continue;const s=e.mds.bcf.format[t];c.push({label:s.Description||t})}}for(const c of t){const t=[{value:c.sample_id}];let f=c.ssm_id_lst;if(!f&&c.ssm_id)f=[c.ssm_id];{const s=e.mds.termdbConfig?.urlTemplates?.sample;if(s){t[0].url=s.base+(c[s.namekey]||c.sample_id)}}if(s){t.push({value:c.caseIsOpenAccess?"Open":"Controlled"})}if(e.mds.variant2samples.twLst){for(const s of e.mds.variant2samples.twLst){const e=ae(c,s);if(s.baseURL){t.push({html:`<a href=${s.baseURL+e} target=_blank>${e}</a>`})}else{t.push({value:e})}}}if(a){if(f){const s=[];for(const t of f){const a=[];const n=(e.skewer.rawmlst||e.custom_variants).find((e=>e.ssm_id==t));if(n){if(n.dt==p){if(e.mds.queries&&e.mds.queries.snvindel&&e.mds.queries.snvindel.url){a.push(`<a href=${e.mds.queries.snvindel.url.base+n.ssm_id} target=_blank>${n.mname}</a>`)}else{a.push(n.mname)}}else if(n.dt==r||n.dt==l){const t=n.pairlst[0];a.push(`${t.a.name||""} ${t.a.chr}:${t.a.pos} ${t.a.strand=="+"?"forward":"reverse"} > ${t.b.name||""} ${t.b.chr}:${t.b.pos} ${t.b.strand=="+"?"forward":"reverse"}`)}else{throw"unknown dt"}a.push(`<span style="color:${w(i[n.class].color).darker()};font-size:0.8em;">${i[n.class].label}</span>`);s.push(a.join(" "))}else{s.push(t)}}t.push({html:s.join("<br>")})}else{t.push({value:""})}}if(n){if(!f)throw"ssm_id_lst missing, cannot show format";for(const s in e.mds.bcf.format){if(!o.has(s))continue;if(!c.ssmid2format){t.push({value:""});continue}const a=e.mds.bcf.format[s];const n=[];for(const t of f){const e=c.ssmid2format?.[t]?.[s];n.push(re(a,e))}t.push({html:n.join("<br>")})}}d.push(t)}return[c,d]}function re(t,e){if(t&&e&&t.Number=="R"&&t.Type=="Integer"){const t=e.split(",").map(Number);if(t.length==2){const[e,s]=t;if(e>=0&&s>=0&&e+s>0){return`${b(null,{f:s/(s+e)})} <span style="font-size:.8em">${s}/${s+e}</span>`}}}return e}function le(t){if(t.gmmode=="genomic"){const e=t.rglst[0];return"mutations from "+e.chr+":"+e.start+"-"+e.stop}if(t.usegm)return"mutations in "+t.usegm.name;return"mutations"}const ce=10;async function de(t,e,s,a,n){try{if(e.click_snvindel){e.skewer.hlssmid=new Set(t.mlst.map((t=>t.ssm_id)));qe(e);e.click_snvindel(t.mlst[0]);return}if("occurrence"in t&&t.occurrence>=ce&&e.mds.variant2samples&&e.mds.variant2samples.sunburst_twLst){await fe(t,e,s,a);return}await me({mlst:t.mlst,tk:e,block:s,tippos:a})}catch(t){s.error(t.message||t);if(t.stack)console.log(t.stack)}}async function fe(t,e,s,a){e.glider.style("cursor","wait");const n=await e.mds.variant2samples.get({mlst:t.mlst,querytype:e.mds.variant2samples.type_sunburst});e.glider.style("cursor","auto");const i={nodes:n.nodes,occurrence:t.occurrence,boxyoff:e.yoff,boxheight:Math.min(800,e.height),boxwidth:s.width,svgheight:Number.parseFloat(s.svg.attr("height")),g:e.skewer.g.append("g"),pica:e.pica,click_listbutton:(n,i)=>{me({mlst:t.mlst,tk:e,block:s,tippos:a})},click_ring:async(a,n)=>{e.itemtip.clear();const i={mlst:t.mlst,tk:e,block:s,div:e.itemtip.d,tid2value:{}};i.tid2value[n.data.id0]=n.data.v0;if(n.data.id1)i.tid2value[n.data.id1]=n.data.v1;if(n.data.id2)i.tid2value[n.data.id2]=n.data.v2;i.mlst=t.mlst.map((t=>{if(e.mds.variant2samples.variantkey=="ssm_id"){return{ssm_id:t.ssm_id,occurrence:0}}throw"unknown variant2samples.variantkey"}));i.mlst[0].occurrence=n.value;const o=a.clientX;const r=a.clientY;await Zt(i);e.itemtip.show2(o,r)}};if(t.aa){i.cx=t.aa.x;i.cy=xe(t,e)+t.yoffset*(e.skewer.pointup?-1:1)}else{i.cx=t.x;i.cy=t.y+(e.skewer.pointup?1:-1)*e.skewer.stem1/2}if(t.mlst.length==1){i.chartlabel=t.mlst[0].mname}else{const e=new Set(t.mlst.map((t=>t.mname)));if(e.size==1){i.chartlabel=[...e][0]}else{i.chartlabel=t.mlst.reduce(((t,e)=>e.occurrence>t.occurrence?e:t)).mname+" etc"}}const o=await import("./sunburst-fe95832e.js");o.default(i)}async function me(t){t.tk.itemtip.clear().show(t.tippos.left-10,t.tippos.top-10);t.div=t.tk.itemtip.d;t.tipDiv=t.tk.itemtip.d;await Dt(t)}const ue=0;const pe=1;const he=.3;const ge=1;const we=.6;const be="Arial";function ke(t,e){const s=t.skewer;for(const t of s.data){t.x0=t.x;if(t.xoffset!=undefined){t.x=t.x0+t.xoffset}for(const e of t.groups){e.aa=t}}const a=Math.max(14,e.width/110);let n=0;for(const t of s.data){for(const e of t.groups){n=Math.max(n,e.occurrence)}}let i=0;const o=Math.pow(a/2,2)*Math.PI;if(n<=10)i=o*n*.9;else if(n<=100)i=o*10;else if(n<=1e3)i=o*14;else i=o*20;const c=d().domain([1,n*.5,n*.6,n*.7,n*.8,n]).range([o,o+(i-o)*.8,o+(i-o)*.85,o+(i-o)*.9,o+(i-o)*.95,i]);let f=a/2;s.maxheight=0;for(const t of s.data){if(t.showmode==undefined)t.showmode=ue;if(t.slabelrotate==undefined)t.slabelrotate=false;t.maxradius=0;t.maxrimwidth=0;t.width=0;t.slabelwidth=0;for(const e of t.groups){if(e.occurrence<=1){e.radius=a/2}else{const t=e.occurrence.toString().length;e.radius=Math.max(Math.sqrt(c(e.occurrence)/Math.PI),t*5)}t.maxradius=Math.max(t.maxradius,e.radius);f=Math.max(f,e.radius);e.rimwidth=e.rim1count+e.rim2count==0?0:Math.max(2,e.radius/6);t.maxrimwidth=Math.max(t.maxrimwidth,e.rimwidth)}let e=0;for(const s of t.groups){s.yoffset=e+s.radius+s.rimwidth;e+=(s.radius+s.rimwidth)*2}s.maxheight=Math.max(s.maxheight,e)}s.selection=s.g.selectAll().data(s.data).enter().append("g").attr("class","sja_skg").each((function(t){t.skewer=this}));const m=s.selection.selectAll().data((t=>t.groups)).enter().append("g").attr("transform",(e=>"translate(0,"+(e.aa.showmode==ue?0:e.yoffset*(t.skewer.pointup?-1:1))+")")).attr("class","sja_aa_discg").each((function(t){t.g=this}));const u=m.append("circle");u.filter((t=>t.dt==p||t.dt==r||t.dt==l)).attr("fill",(e=>t.color4disc(e.mlst[0]))).attr("stroke","white").attr("r",(t=>t.radius-.5));m.filter((t=>t.dt==l||t.dt==r)).append("path").attr("fill","white").attr("stroke","none").attr("d",(t=>O()({innerRadius:0,outerRadius:t.radius-2,startAngle:t.useNterm?0:Math.PI,endAngle:t.useNterm?Math.PI:Math.PI*2})));const h=m.filter((t=>t.occurrence>1)).append("text").text((t=>t.occurrence)).attr("font-family",be).attr("class","sja_aa_discnum").attr("fill-opacity",(t=>t.aa.showmode==ue?0:1)).attr("stroke-opacity",(t=>t.aa.showmode==ue?0:1)).attr("text-anchor","middle").each((t=>{const e=t.radius*1.5;t.discnumfontsize=Math.min(e/(t.occurrence.toString().length*we),e)})).attr("font-size",(t=>t.discnumfontsize)).attr("y",(t=>t.discnumfontsize*he));h.filter((t=>t.dt==p)).attr("fill","white");h.filter((t=>t.dt==r||t.dt==l)).attr("stroke",(e=>t.color4disc(e.mlst[0]))).attr("stroke-width",.8).attr("font-weight","bold").attr("fill","white");m.append("text").text((e=>e.mnameCompact||t.mnamegetter(e.mlst[0]))).attr("font-size",(t=>{t._labfontsize=Math.max(12,t.radius*1.2);return t._labfontsize})).each((function(t){const e=this.getBBox().width;t._label_width=e;if(t.aa.groups.length==1){t.aa.slabelrotate=true;t.aa.slabelwidth=e;s.maxheight=Math.max(s.maxheight,(t.radius+t.rimwidth)*2+2+e)}})).attr("fill",(e=>t.color4disc(e.mlst[0]))).attr("x",(t=>t.radius+t.rimwidth+1)).attr("y",(t=>t._labfontsize*he)).attr("font-family",be).classed("sja_aa_disclabel",true).attr("fill-opacity",(t=>t.aa.showmode==ue?0:1)).attr("transform","scale(1) rotate(0)").on("mousedown",(t=>{t.stopPropagation()})).on("click",((s,a)=>{Se([a.aa],t);je(t,e)}));s.hlBoxG=m.append("g");for(const t of s.data){let e=0,s=0;for(const a of t.groups){e=Math.max(e,a.radius+a.rimwidth);s=Math.max(s,a.radius+a.rimwidth+ge+a._label_width)}t.width=e+s}m.append("circle").attr("r",(t=>t.radius-.5)).attr("stroke",(e=>t.color4disc(e.mlst[0]))).attr("class","sja_aa_disckick").attr("fill","white").attr("fill-opacity",0).attr("stroke-opacity",0).on("mousedown",(t=>{t.stopPropagation()})).on("mouseover",((e,s)=>{if(t.disc_mouseover){t.disc_mouseover(s,e.target)}})).on("mouseout",((e,s)=>{if(t.disc_mouseout){t.disc_mouseout(s)}})).on("click",(async(s,a)=>{de(a,t,e,s.target.getBoundingClientRect(),s.target)}));const g=O().innerRadius((t=>t.radius)).outerRadius((t=>t.radius+t.rimwidth)).startAngle(0).endAngle((t=>{t.rim1_startangle=Math.PI*2*t.rim1count/t.occurrence;return t.rim1_startangle}));m.filter((t=>t.rim1count>0)).append("path").attr("d",g).attr("fill",(e=>t.color4disc(e.mlst[0]))).attr("class","sja_aa_discrim").attr("fill-opacity",0);const w=O().innerRadius((t=>t.radius+.5)).outerRadius((t=>t.radius+.5+t.rimwidth)).startAngle((t=>t.rim1_startangle)).endAngle((t=>t.rim1_startangle+Math.PI*2*t.rim2count/t.occurrence));m.filter((t=>t.rim2count>0)).append("path").attr("d",w).attr("stroke",(e=>t.color4disc(e.mlst[0]))).attr("fill","none").attr("class","sja_aa_discrim").attr("stroke-opacity",0);{let t=0;let e=0;for(const a of s.data){if(a.x-a.maxradius-a.maxrimwidth<e){t++}e=Math.max(e,a.x+a.width-a.maxradius-a.maxrimwidth)}s.stem1=t==0?0:a;s.stem2=d().domain([0,1,s.data.length]).range([0,a,a*3])(t)}const b=a*.7;let x=0;for(const t of s.data){for(const e of t.groups){x=Math.max(x,e.occurrence)}}s.stem3=Math.max(2,b+a*Math.min(5,x));s.selection.append("circle").attr("class","sja_aa_skkick").attr("fill","white").attr("fill-opacity",0).attr("stroke","none").attr("r",(t=>t.maxradius+1)).attr("cy",(e=>(t.skewer.pointup?-1:1)*e.maxradius)).attr("transform",(t=>`scale(${t.showmode==ue?"1,1":"0.01,0.01"})`)).on("mouseover",((e,s)=>{let a=0;let n=0;const i=5;const o=t.skewer.pointup?7:14;for(const e of s.groups){e.pica_fontsize=Math.max(11,e.radius);a+=e.pica_fontsize+1;t.pica.g.append("text").text((e.mnameCompact||e.mlst[0].mname)+(e.occurrence>1?" x"+e.occurrence:"")).attr("font-size",e.pica_fontsize).each((function(){n=Math.max(n,this.getBBox().width)})).remove()}n+=i*2;const r=a+5;t.pica.g.append("rect").attr("y",t.skewer.pointup?-r:0).attr("width",n).attr("height",r).attr("fill","white").attr("fill-opacity",.8).attr("stroke","#ccc").attr("shape-rendering","crispEdges");a=0;const l=t.pica.g.selectAll().data(s.groups).enter().append("g").attr("transform",((e,s)=>{a+=e.pica_fontsize+1;return"translate("+i+","+a*(t.skewer.pointup?-1:1)+")"}));l.append("text").text((t=>t.mnameCompact||t.mlst[0].mname)).attr("font-size",(t=>t.pica_fontsize)).each((function(t){t.pica_mlabelwidth=this.getBBox().width})).attr("fill",(e=>t.color4disc(e.mlst[0]))).attr("dominant-baseline",t.skewer.pointup?"hanging":"auto");const c=s.groups[0].pica_mlabelwidth;t.pica.x=s.x-i-c/2;t.pica.y=s.y+(t.skewer.pointup?-1:1)*(s.maxradius*2+o+2);t.pica.g.attr("transform","translate("+t.pica.x+","+t.pica.y+")");l.filter((t=>t.occurrence>1)).append("text").text((t=>"x"+t.occurrence)).attr("x",(t=>t.pica_mlabelwidth+5)).attr("font-size",(t=>t.pica_fontsize)).attr("dominant-baseline",t.skewer.pointup?"hanging":"auto").attr("fill","#9e9e9e");const d=t.pica.g.append("g").attr("transform","translate("+(i+c/2)+","+(t.skewer.pointup?1:-1)+")");d.append("line").attr("y2",(t.skewer.pointup?1:-1)*o).attr("stroke","#858585").attr("shape-rendering","crispEdges");d.append("line").attr("x1",-1).attr("x2",-1).attr("y2",(t.skewer.pointup?1:-1)*o).attr("stroke","white").attr("shape-rendering","crispEdges");d.append("line").attr("x1",1).attr("x2",1).attr("y2",(t.skewer.pointup?1:-1)*o).attr("stroke","white").attr("shape-rendering","crispEdges")})).on("mouseout",((e,s)=>{t.pica.g.selectAll("*").remove()})).on("click",((s,a)=>{t.pica.g.selectAll("*").remove();_e([a],t,e)}));let v=0;for(const t of s.data){v=Math.max(v,t.occurrence)}const y=d().domain([1,v]).range([b,s.stem3-f]);s.selection.attr("transform",(e=>{e.foldyoffset=y(e.occurrence);e.y=xe(e,t);return"translate("+e.x+","+e.y+")"}));s.selection.append("path").attr("class","sja_aa_stem").attr("d",(e=>ve(e,t))).attr("stroke",(e=>t.color4disc(e.groups[0].mlst[0]))).attr("fill","none");const _=s.selection.filter((t=>t.groups.length>1));_.append("rect").attr("class","sja_aa_ssk_bg").attr("shape-rendering","crispEdges").attr("fill-opacity",0).attr("height",s.stem1).attr("fill",(e=>t.color4disc(e.groups[0].mlst[0]))).attr("width",(t=>{t.ssk_width=Math.max(t.occurrence.toString().length*8+6,2*(t.maxradius+t.maxrimwidth));return t.ssk_width})).attr("x",(t=>-t.ssk_width/2));_.append("text").attr("class","sja_aa_ssk_text").attr("fill","white").attr("fill-opacity",0).attr("font-weight","bold").attr("text-anchor","middle").attr("dominant-baseline","central").text((t=>t.occurrence)).each((t=>{t.ssk_fontsize=Math.min(s.stem1,t.ssk_width/(t.occurrence.toString().length*we))})).attr("font-size",(t=>t.ssk_fontsize));_.append("rect").attr("class","sja_aa_ssk_kick").attr("fill","white").attr("fill-opacity",0).attr("stroke","none").attr("height",s.stem1).attr("x",(t=>-t.ssk_width/2)).attr("width",(t=>t.ssk_width)).on("mouseover",((t,e)=>{const s=k(t.target.parentNode);s.selectAll(".sja_aa_disckick").transition().attr("stroke-opacity",1);s.select(".sja_aa_ssk_bg").transition().attr("fill-opacity",1).attr("stroke-opacity",1);s.select(".sja_aa_ssk_text").transition().attr("fill-opacity",1)})).on("mouseout",(function(t,e){const s=k(t.target.parentNode);s.selectAll(".sja_aa_disckick").transition().attr("stroke-opacity",0);s.select(".sja_aa_ssk_bg").transition().attr("fill-opacity",0).attr("stroke-opacity",0);s.select(".sja_aa_ssk_text").transition().attr("fill-opacity",0)})).on("click",(async(s,a)=>{de(a,t,e,s.target.getBoundingClientRect(),null,s.target)}))}function xe(t,e){if(e.skewer.pointup){if(t.showmode==ue){return e.skewer.maxheight+e.skewer.stem1+e.skewer.stem2+e.skewer.stem3-t.foldyoffset}return e.skewer.maxheight}if(t.showmode==ue)return t.foldyoffset;return e.skewer.stem1+e.skewer.stem2+e.skewer.stem3}function ve(t,e){if(e.skewer.pointup){if(t.showmode==ue){return"M0,0v0l0,0v"+t.foldyoffset}return"M0,0v"+e.skewer.stem1+"l"+(t.x0-t.x)+","+e.skewer.stem2+"v"+e.skewer.stem3}if(t.showmode==ue){return"M0,0v0l0,0v-"+t.foldyoffset}return"M0,0v-"+e.skewer.stem1+"l"+(t.x0-t.x)+",-"+e.skewer.stem2+"v-"+e.skewer.stem3}function ye(t,e){if(t.skewer.data.length==0)return;const s=0;const a=e.width;let n=0;const i=[];const o=[];for(const e of t.skewer.data){if(e.x0<s||e.x0>a){delete e.xoffset;o.push(e)}else{n+=e.slabelrotate?(e.groups[0].radius+e.groups[0].rimwidth)*2:e.width;i.push(e)}}Se(o,t);let r=[];const l=[];if(n<a-s){r=i}else{i.sort(((t,e)=>{if(e.occurrence==t.occurrence){if(e.groups.length==t.groups.length){return Math.abs(t.x0*2-s-a)-Math.abs(e.x0*2-s-a)}else{return e.groups.length-t.groups.length}}return e.occurrence-t.occurrence}));let t=0;let e=(a-s)*.8;let n=false;for(const s of i){if(n){delete s.xoffset;l.push(s);s.showmode=ue}else{if(t+s.width<e){r.push(s);t+=s.width}else{n=true;delete s.xoffset;l.push(s);s.showmode=ue}}}}Se(l,t);_e(r,t,e)}function _e(t,e,s){const a=1e3;const n=new Set;const i=new Set;let o=false;for(const s of t){if(s.showmode==pe){n.add(s.x0)}else{s.showmode=pe;i.add(s.x0);o=true;s.y=xe(s,e)}}if(o){const t=e.skewer.selection.filter((t=>i.has(t.x0)));t.transition().duration(a).attr("transform",(t=>"translate("+t.x+","+t.y+")"));t.selectAll(".sja_aa_discg").transition().duration(a).attr("transform",(t=>{t.y=t.yoffset*(e.skewer.pointup?-1:1);return"translate(0,"+t.y+")"}));setTimeout((function(){t.selectAll(".sja_aa_disckick").attr("transform","scale(1)").attr("data-testid","scale(1)")}),a);t.selectAll(".sja_aa_discnum").transition().duration(a).attr("fill-opacity",1).attr("stroke-opacity",1);t.filter((t=>t.groups.length>1)).selectAll(".sja_aa_disclabel").transition().duration(a).attr("fill-opacity",1).attr("transform","scale(1)");t.selectAll(".sja_aa_discrim").transition().duration(a).attr("fill-opacity",1).attr("stroke-opacity",1);t.selectAll(".sja_aa_ssk_kick").attr("transform","scale(1)").attr("y",e.skewer.pointup?0:-e.skewer.stem1);t.selectAll(".sja_aa_ssk_bg").attr("transform","scale(1)").attr("y",e.skewer.pointup?0:-e.skewer.stem1);t.selectAll(".sja_aa_ssk_text").attr("transform","scale(1)").attr("y",(e.skewer.pointup?1:-1)*e.skewer.stem1/2);t.selectAll(".sja_aa_skkick").attr("transform","scale(0.01,0.01)");let n=0;t.selectAll(".sja_aa_stem").transition().duration(a).attr("d",(t=>ve(t,e))).each((()=>++n)).on("end",(()=>{if(! --n){je(e,s)}}))}else{je(e,s)}}function je(t,e){const s=1e3;const a=[];const n=new Set;const i=0;const o=e.width;for(const e of t.skewer.data){if(e.x0<i||e.x0>o)continue;if(e.showmode==pe){e.x=e.x0;a.push(e);n.add(e.x0)}}if(a.length==0){return}Me(a,t,e);for(const t of a){t.xoffset=t.x-t.x0}for(let e=0;e<a.length;e++){const s=a[e];if(s.groups.length>1)continue;const n=s.groups[0];if(t.slabel_forcerotate){s.slabelrotate=true}else{const t=a[e+1];const i=t?t.x-t.maxradius-t.maxrimwidth:o;s.slabelrotate=i-s.x-n.radius-n.rimwidth-1<s.slabelwidth}s.width=(n.radius+n.rimwidth)*2+(s.slabelrotate?0:2+s.slabelwidth)}const r=t.skewer.selection.filter((t=>n.has(t.x0)));r.transition().duration(s).attr("transform",(t=>"translate("+t.x+","+t.y+")"));r.selectAll(".sja_aa_stem").transition().duration(s).attr("d",(e=>ve(e,t)));r.filter((t=>t.groups.length==1)).selectAll(".sja_aa_disclabel").transition().duration(s).attr("fill-opacity",1).attr("transform",(e=>"scale(1) rotate("+(e.aa.slabelrotate?(t.skewer.pointup?"-":"")+"90":"0")+")"));t.slabel_forcerotate=false}function Me(t,e,s){const a=0;const n=s.width;let i=a;let o=false;for(const e of t){if(e.x0<a||e.x0>n)continue;if(e.groups.length==1){e.slabelrotate=true;const t=e.groups[0];e.width=(t.radius+t.rimwidth)*2}const t=e.x-e.maxradius-e.maxrimwidth;if(t<i){o=true}if(t+e.width>n){o=true}i=Math.max(i,t+e.width)}if(!o){return false}i=a;for(const e of t){if(e.x0<a||e.x0>n)continue;e.x=i+e.maxradius+e.maxrimwidth;i+=e.width}Ae(t,s.width)}function Ae(t,e){for(let s=0;s<t.length;s++){if(t[s].x0<0)continue;if(t[s].x0>e)break;while(1){let a=0,n=0;for(let i=s;i<t.length;i++){const s=t[i];if(s.x0>e){return}a+=Math.abs(s.x-s.x0);s.x++;n+=Math.abs(s.x-s.x0)}if(t[s].x>=t[s].x0){for(let e=s;e<t.length;e++){t[e].x--}break}const i=t[t.length-1];if(i.x+i.width/2>=e){return}if(n<=a);else{for(let a=s;a<t.length;a++){if(t[a].x0>e){break}t[a].x--}break}}}}function Se(t,e){if(t.length==0)return;const s=1e3;const a=new Set;for(const s of t){s.x=s.x0;a.add(s.x0);s.showmode=ue;s.y=xe(s,e)}const n=e.skewer.selection.filter((t=>a.has(t.x0)));n.transition().duration(s).attr("transform",(t=>"translate("+t.x+","+t.y+")"));n.selectAll(".sja_aa_stem").transition().duration(s).attr("d",(t=>ve(t,e)));n.selectAll(".sja_aa_discg").transition().duration(s).attr("transform",(t=>"translate(0,"+(e.skewer.pointup?"-":"")+t.aa.maxradius+")"));n.selectAll(".sja_aa_disckick").attr("transform","scale(0)");n.selectAll(".sja_aa_discnum").transition().duration(s).attr("fill-opacity",0).attr("stroke-opacity",0);n.selectAll(".sja_aa_disclabel").transition().duration(s).attr("fill-opacity",0).attr("transform","scale(0)");n.selectAll(".sja_aa_discrim").transition().duration(s).attr("fill-opacity",0).attr("stroke-opacity",0);n.selectAll(".sja_aa_ssk_kick").attr("transform","scale(0)");n.selectAll(".sja_aa_ssk_bg").attr("transform","scale(0)");n.selectAll(".sja_aa_ssk_text").attr("transform","scale(0)");n.selectAll(".sja_aa_skkick").transition().duration(s).attr("transform","scale(1)")}function qe(t){t.skewer.hlBoxG.selectAll("*").remove();if(!t.skewer.hlssmid)return;t.skewer.hlBoxG.filter((e=>{if(e.mlst){return e.mlst.find((e=>t.skewer.hlssmid.has(e.ssm_id)))}return t.skewer.hlssmid.has(e.ssm_id)})).append("rect").attr("x",(t=>-t.radius)).attr("y",(t=>-t.radius)).attr("width",(t=>t.radius*2)).attr("height",(t=>t.radius*2)).attr("stroke",t.skewer.hlBoxColor).attr("stroke-width",(t=>t.radius>10?1.5:1)).attr("fill","none").attr("class","sja_mds3_skewer_ssmhlbox")}const Ce=4;function ze(t,e,s){Le(e,t,s);const a=new Map;for(const t of e){if(t.__x==undefined)continue;if(!a.has(t.__x)){a.set(t.__x,[])}a.get(t.__x).push(t)}const n=[];if(s.exonsf>=Ce){for(const[t,e]of a){n.push({chr:e[0].chr,pos:e[0].pos,mlst:e,x:t})}}else{if(s.usegm&&s.usegm.coding&&s.gmmode!=x.genomic){const t=new Map;for(const[e,n]of a){if(n[0].chr!=s.usegm.chr){continue}let i=undefined;for(const t of n){if(Number.isFinite(t.aapos))i=t.aapos}if(i==undefined){i=v(n[0].pos,s.usegm).aapos}if(i==undefined){console.error("data item cannot map to aaposition");console.log(n[0]);continue}a.delete(e);if(!t.has(i)){t.set(i,[])}let o=true;for(const e of t.get(i)){if(Math.abs(e[0].__x-n[0].__x)<=s.exonsf*3){for(const t of n){e.push(t)}o=false;break}}if(o){t.get(i).push(n)}}for(const e of t.values()){for(const t of e){let e=null;for(const s of t){if(Number.isFinite(s.rnapos))e=s}if(e==null){console.log("trying to map mlst to codon, but no rnapos found");for(const e of t){console.log(e)}continue}n.push({chr:t[0].chr,pos:e.pos,mlst:t,x:t[0].__x})}}}const t=[];const e=2;for(const[s,n]of a){const a=Math.floor(s/e);if(!t[a]){t[a]=[]}t[a]=[...t[a],...n]}for(const e of t){if(!e)continue;const t=e.reduce(((t,e)=>t+e.__x),0);n.push({isbin:true,chr:e[0].chr,pos:e[0].pos,mlst:e,x:t/e.length})}}n.sort(((t,e)=>t.x-e.x));return n}function Le(t,e,s){let a=0,n=0;const i=[];const o=[];for(const e of t){delete e.__x;if(s.gmmode==x.protein&&s.usegm.codingstart&&s.usegm.codingstop){if(e.pos<s.usegm.codingstart||e.pos>s.usegm.codingstop){continue}}if(!e.chr){n++;continue}if(!Number.isInteger(e.pos)){a++;continue}const t=s.seekcoord(e.chr,e.pos);if(t.length==0){i.push(e);continue}if(t.length==1){e.__x=t[0].x}else{e.__x=t[0].x}if(e.__x<-1||e.__x>s.width+1){continue}o.push(e)}if(a+n>0){s.tkerror(e,a+n+" items have no chromosome or genomic position")}if(i.length){console.error(i.length+" items not mapped to any region");for(const t of i)console.log(t)}$e(o,e,s)}function $e(t,e,s){for(const e of t){if(s.usegm){const t=v(e.pos,s.usegm);e.rnapos=t.rnapos;e.aapos=t.aapos}if(e.dt==p){continue}if(e.dt==r||e.dt==l){if(e.pairlstIdx==0){e.useNterm=true}else{e.useNterm=false}continue}throw"unknown dt: "+e.dt}}function Ne(t,e,s,a){if(!e.skewer&&!e.cnv)return;if(!e.leftlabels.doms.variants){e.leftlabels.doms.variants=Ee(e,s,a);e.leftlabels.doms.variants.attr("data-testid","sja_variants_label")}let n,i;if(e.custom_variants){n=e.custom_variants.length}else{n=e.skewer.rawmlst.length+(t.cnv?.length||0)}if(n==0){e.leftlabels.doms.variants.text("No variants").attr("class","").style("opacity",.5).on("click",null);return}i=0;if(e.skewer){const t=e.skewer.viewModes.find((t=>t.inuse));if(t.type=="skewer"){i=e.skewer.data.filter((t=>t.x>=0&&t.x<=s.width)).reduce(((t,e)=>t+e.mlst.length),0)}else if(t.type=="numeric"){i=t.data.filter((t=>t.x>=0&&t.x<=s.width)).reduce(((t,e)=>t+e.mlst.length),0)}else{throw"unknown mode type"}}if(t.cnv)i+=t.cnv.length;if(i==0){e.leftlabels.doms.variants.text("0 out of "+n+" variant"+(n>1?"s":"")).attr("class","").style("opacity",.5).on("click",null);return}e.leftlabels.doms.variants.style("opacity",1).attr("class","sja_clbtext2").text(i<n?i+" of "+n+" variants":i+" variant"+(i>1?"s":"")).on("click",(t=>{e.menutip.clear().showunder(t.target);Re(e,s)}));return}function Re(t,e){t.menutip.d.append("div").text("List").attr("class","sja_menuoption").attr("data-testid","sja_list_menuoption").style("border-radius","0px").on("click",(()=>{Oe(t,e)}));if(t.skewer){if(t.skewer.hlssmid){t.menutip.d.append("div").text("Cancel highlight").style("border-radius","0px").attr("class","sja_menuoption").on("click",(()=>{delete t.skewer.hlssmid;t.skewer.hlBoxG.selectAll("*").remove();const s=t.skewer.viewModes.find((t=>t.inuse));if(s.type=="skewer"){ye(t,e)}else if(s.type=="numeric");else{throw"unknown mode type"}t.menutip.hide()}))}const s=t.skewer.viewModes.find((t=>t.inuse));if(s.type=="skewer"){const s=t.skewer.data.reduce(((t,e)=>t+e.showmode),0);if(s>0){t.menutip.d.append("div").text("Collapse").attr("class","sja_menuoption").attr("data-testid","sja_collapse_menuoption").style("border-radius","0px").on("click",(()=>{Se(t.skewer.data,t);t.menutip.hide()}))}else if(s==0){t.menutip.d.append("div").text("Expand").attr("class","sja_menuoption").attr("data-testid","sja_expand_menuoption").style("border-radius","0px").on("click",(()=>{ye(t,e);t.menutip.hide()}))}t.menutip.d.append("div").text(t.skewer.pointup?"Point down":"Point up").attr("class","sja_menuoption").style("border-radius","0px").on("click",(()=>{t.skewer.pointup=!t.skewer.pointup;t.load();t.menutip.hide()}))}else if(s.type=="numeric"){t.menutip.d.append("div").text(t.skewer.hideDotLabels?"Show all variant labels":"Hide all variant labels").attr("class","sja_menuoption").style("border-radius","0px").on("click",(()=>{t.skewer.hideDotLabels=!t.skewer.hideDotLabels;t.load();t.menutip.hide()}))}}if(!t.custom_variants){t.menutip.d.append("div").text("Download").attr("class","sja_menuoption").attr("data-testid","sjpp_mds3tk_variantdownload_menuoption").style("border-radius","0px").on("click",(()=>{Te(t,e);t.menutip.hide()}))}Ie(t,e)}async function Oe(t,a){t.menutip.clear();const n=new Map;if(t.skewer){const e=t.skewer.viewModes.find((t=>t.inuse));let s;if(e.type=="skewer"){s=t.skewer.data.filter((t=>t.x>=0&&t.x<=a.width))}else if(e.type=="numeric"){s=e.data}else{throw"unknown mode type"}for(const t of s){for(const e of t.mlst){if(!n.has(e.dt))n.set(e.dt,[]);n.get(e.dt).push(e)}}}if(t.cnv?.cnvLst){n.set(s,t.cnv.cnvLst)}if(n.size==1){const e=t.menutip.d.append("div").style("margin","10px");await Dt({div:e,mlst:n.get([...n.keys()][0]),tk:t,block:a,doNotListSample4multim:true});return}const i=[];for(const[t,s]of n){i.push({label:s.length+" "+e[t]})}new T({holder:t.menutip.d.append("div").attr("class","sja_pp_vlb_dttabdiv").style("margin","10px"),tabs:i}).main();let o=0;for(const[e,s]of n){Dt({div:i[o++].contentHolder.append("div").style("margin-left","10px"),mlst:s,tk:t,block:a,doNotListSample4multim:true})}}function Ie(t,e){if(!t.skewer)return;if(t.skewer.viewModes.length<=1){return}const s=[];for(const[e,a]of t.skewer.viewModes.entries()){const t={label:De(a),value:e};if(a.inuse)t.checked=true;s.push(t)}B({holder:t.menutip.d.append("div").attr("class","sja_pp_vlb_viewmoderadiodiv").style("margin","10px"),options:s,callback:async s=>{for(const e of t.skewer.viewModes)e.inuse=false;t.skewer.viewModes[s].inuse=true;us({skewer:t.skewer.rawmlst},t,e);Pe(t,e);t._finish()}})}function De(t){if(!t)return"MISSING!!";if(t.type=="skewer")return"As lollipops";if(t.type=="numeric")return t.label+" as Y axis";return"unknown mode"}async function Te(t,e){if(!t.mds.variant2samples){console.log("TODO: variant-only");return}const s={querytype:"samples"};Cs(t,e,s);const a=(await t.mds.variant2samples.get(s)).samples;const[n,o]=await oe(a,t);const c=[];for(const t of n){if(t.isSsm){c.push("AAchange");c.push("Consequence");c.push("Mutation");continue}if(t.isMaf){c.push("Alternative allele depth in tumor");c.push("Total depth in tumor");continue}c.push(t.label)}const d=[];for(const[e,s]of a.entries()){let a;if(Array.isArray(s.ssm_id_lst)){a=s.ssm_id_lst}else if(s.ssm_id){a=[s.ssm_id]}else{console.log("sample obj lacks ssm_id and ssm_id_lst");continue}for(const s of a){const a=t.skewer.rawmlst.find((t=>t.ssm_id==s));if(!a){console.log("ssm not found by id: "+s);continue}const c=[];for(const[t,d]of n.entries()){if(d.isSsm){if(a.dt==p){c.push(a.mname);c.push(i[a.class].label);c.push(a.chr+":"+(a.pos+1)+" "+a.ref+">"+a.alt)}else if(a.dt==r||a.dt==l){c.push("");c.push(i[a.class].label);c.push(a.pairlst[0].a.chr+":"+a.pairlst[0].a.pos+">"+a.pairlst[0].b.chr+":"+a.pairlst[0].b.pos)}continue}const n=o[e][t];if(n.bySsmid){if(s in n.bySsmid){const t=n.bySsmid[s];if(d.isMaf){c.push(t.altTumor);c.push(t.totalTumor)}else{c.push(t)}}else{c.push("")}continue}if(d.isMaf){c.push(n.altTumor);c.push(n.totalTumor);continue}c.push(n.value)}d.push(c.join("\t"))}}D(le(e)+" "+(new Date).toLocaleDateString()+".txt",c.join("\t")+"\n"+d.join("\n"))}const Be=5;const Fe="Arial";async function Ue(t,e,s){let a=0;Ne(t,e,s,a);if(e.leftlabels.doms.variants){a+=Be+s.labelfontsize}if("sampleTotalNumber"in t||e.leftlabels.doms.samples){const n=await import("./leftlabel.sample-59f99ef5.js");n.makeSampleLabel(t,e,s,a);a+=Be+s.labelfontsize;if(e.filterObj){n.makeSampleFilterLabel(t,e,s,a)}if(e.leftlabels.doms.filterObj){a+=Be+s.labelfontsize}}if(e.showCloseLeftlabel){if(!e.leftlabels.doms.close){e.leftlabels.doms.close=Ee(e,s,a).text("Close").on("click",(()=>{for(const[t,a]of s.tklst.entries()){if(a.tkid==e.tkid){s.tk_remove(t)}}}))}a+=Be+s.labelfontsize}e.leftlabels.laby=a;Pe(e,s);Ge(e);e.subtk2height.leftlabels=a+20}function Ge(t){t.leftlabels.maxwidth=t.tklabel.node().getBBox().width;for(const e in t.leftlabels.doms){t.leftlabels.maxwidth=Math.max(t.leftlabels.maxwidth,t.leftlabels.doms[e].node().getBBox().width)}}function Pe(t,e){if(t.leftlabels.laby==0){return}t.leftlabels.xoff=0;if(t.skewer){const s=t.skewer.viewModes.find((t=>t.inuse));if(s.type=="numeric"){const a=t.leftlabels.laby+Be+e.labelfontsize;if(a>s.toplabelheight+5){t.leftlabels.xoff=s.axisWidth}}}t.leftlabels.g.transition().attr("transform",`translate(-${t.leftlabels.xoff},${Be+e.labelfontsize})`)}function Ee(t,e,s){return t.leftlabels.g.append("text").attr("font-size",e.labelfontsize).attr("font-family",Fe).attr("y",e.labelfontsize/2+s).attr("text-anchor","end").attr("dominant-baseline","central").attr("class","sja_clbtext2").attr("fill","black").attr("x",e.tkleftlabel_xshift)}const He="Arial";const Ve=1;const We=.3;const Ke=5;const Qe=7;const Xe=100;const Je="#ededed";const Ye="Numeric value";function Ze(t,e,s,a){const n=ze(s,e.skewer||s.skewer.rawmlst,a).filter((t=>t.x>=0&&t.x<=a.width));t.data=n;if(!t.axisg)t.axisg=s.gleft.append("g");if(!t.axisheight)t.axisheight=150;ts(s);es(t,s,a);fs(s);return t.toplabelheight+t.maxradius+t.axisheight+t.maxradius+t.stem1+t.stem2+t.stem3+t.bottomlabelheight}function ts(t){t.skewer.g.selectAll("*").remove();if(t.skewer.nmg)t.skewer.nmg.selectAll("*").remove()}function es(t,e,s){if(!t.axisSetting){t.axisSetting={auto:1}}const a=t.data;for(const t of a){t.x0=t.x;if(t.xoffset!=undefined){t.x=t.x0+t.xoffset}}const n=Math.max(14,s.width/110);t.dotwidth=n;t.maxradius=0;for(const e of a){for(const s of e.mlst){s.radius=n/2;t.maxradius=Math.max(s.radius,t.maxradius);s.rimwidth=0;s.aa=e}}const i=ss(a,t,e,s);ls(a,t);const o=d().domain([t.minvalue,t.maxvalue]).range([0,t.axisheight]);for(const e of a){for(const s of e.mlst){if(s.__value_missing){s._y=0}else{if(s.__value_use<t.minvalue){s._y=0}else if(s.__value_use>t.maxvalue){s._y=t.axisheight}else{s._y=o(s.__value_use)}}}}if(i){t.stem1=5;t.stem2=20;t.stem3=10}else{t.stem1=0;t.stem2=0;t.stem3=0}for(const t of a){for(const s of t.mlst){e.glider.append("text").text(e.mnamegetter(s)).attr("font-family",He).attr("font-size",s.radius*2-2).each((function(){s.labwidth=this.getBBox().width})).remove()}}for(const t of a){for(const e of t.mlst){delete e.labattop;delete e.labatbottom}}if(!e.skewer.hideDotLabels){if(i){for(const t of a){if(t.mlst.length==1){const e=t.mlst[0];e.labattop=true}else{if((t.width-t.fixedgew)/(t.mlst.length-1)<Qe);else{for(const e of t.mlst){e.labattop=true}}}}}else{ns(a)}}t.toplabelheight=0;t.bottomlabelheight=0;if(t.showsamplebar||t.showgenotypebyvalue){for(const e of a){for(const s of e.mlst){t.toplabelheight=Math.max(t.toplabelheight,s.labwidth)}}}else{for(const e of a){for(const s of e.mlst){if(s.labattop){t.toplabelheight=Math.max(t.toplabelheight,s._y+s.labwidth-t.axisheight)}else if(s.labatbottom){t.bottomlabelheight=Math.max(t.bottomlabelheight,s.labwidth-s._y)}}}}{let a=s.labelfontsize+Ke+s.labelfontsize;if(e.label_stratify){a+=e.label_stratify.length*(Ke+s.labelfontsize)}t.toplabelheight=Math.max(t.toplabelheight,a)}cs(e,t,s);e.skewer.g.append("line").attr("y1",t.toplabelheight+t.maxradius).attr("y2",t.toplabelheight+t.maxradius).attr("x2",s.width).attr("stroke",Je).attr("shape-rendering","crispEdges");e.skewer.g.append("line").attr("y1",t.toplabelheight+t.maxradius+t.axisheight).attr("y2",t.toplabelheight+t.maxradius+t.axisheight).attr("x2",s.width).attr("stroke",Je).attr("shape-rendering","crispEdges");e.skewer.nmg=e.skewer.g.selectAll().data(a).enter().append("g").attr("class","sja_skg2").each((function(t){t.g=this}));e.skewer.nmg.attr("transform",(e=>"translate("+e.x+","+(t.toplabelheight+Ve+t.maxradius+t.axisheight+t.maxradius)+")"));if(i){e.skewer.nmg.append("path").attr("class","sja_aa_stem").attr("d",(e=>is(e,t))).attr("stroke",(t=>e.color4disc(t.mlst[0]))).attr("fill",(t=>t.mlst.length==1?"none":Je))}const r=e.skewer.nmg.selectAll().data((t=>t.mlst)).enter().append("g").attr("class","sja_aa_discg").each((function(t){t.g=this}));r.attr("transform",(e=>"translate("+e.xoff+","+(e._y+t.maxradius)*-1+")"));r.filter((t=>t.shapeTriangle)).append("path").attr("d",(t=>ds(t.radius))).attr("fill",(t=>e.color4disc(t))).attr("stroke","white").attr("class","sja_aa_disk_fill");r.filter((t=>t.shapeCircle)).append("circle").attr("stroke",(t=>e.color4disc(t))).attr("fill","none").attr("r",(t=>t.radius-.5)).attr("class","sja_aa_disk_fill");r.filter((t=>!t.shapeTriangle&&!t.shapeCircle)).append("circle").attr("fill",(t=>e.color4disc(t))).attr("stroke","white").attr("r",(t=>t.radius-.5)).attr("class","sja_aa_disk_fill");e.skewer.hlBoxG=r.append("g");r.filter((t=>t.shapeTriangle)).append("path").attr("d",(t=>ds(t.radius))).attr("stroke",(t=>e.color4disc(t))).attr("fill","white").attr("class","sja_aa_disckick").attr("fill-opacity",0).attr("stroke-opacity",0).on("mousedown",(t=>{t.preventDefault()})).on("mouseover",((s,a)=>{os(a,t,e)})).on("mouseout",((t,s)=>{rs(s,e)})).on("click",((t,a)=>{de({mlst:[a]},e,s,t.target.getBoundingClientRect(),t.target)}));r.filter((t=>!t.shapeTriangle)).append("circle").attr("r",(t=>t.radius-.5)).attr("stroke",(t=>e.color4disc(t))).attr("class","sja_aa_disckick").attr("fill","white").attr("fill-opacity",0).attr("stroke-opacity",0).on("mousedown",(t=>{t.preventDefault()})).on("mouseover",((s,a)=>{os(a,t,e)})).on("mouseout",((t,s)=>{rs(s,e)})).on("click",((t,a)=>{de({mlst:[a]},e,s,t.target.getBoundingClientRect(),t.target)}));r.filter((t=>t.labattop||t.labatbottom)).append("text").each((function(t){t.__svg_textlabel=this})).text((t=>e.mnamegetter(t))).attr("font-family",He).attr("font-size",(t=>{t._labfontsize=Math.max(12,t.radius*1.2);return t._labfontsize})).attr("fill",(t=>e.color4disc(t))).attr("x",(e=>t.showsamplebar||t.showgenotypebyvalue?t.axisheight+t.maxradius+4:e.radius+e.rimwidth+Ve)).attr("y",(t=>t._labfontsize*We)).attr("class","sja_aa_disclabel").attr("transform",(t=>"rotate("+(t.labattop?"-":"")+"90)")).on("mousedown",(t=>{t.preventDefault()})).on("mouseover",((s,a)=>os(a,t,e))).on("mouseout",((t,s)=>rs(s,e))).on("click",((t,a)=>{de({mlst:[a]},e,s,t.target.getBoundingClientRect(),t.target.previousSibling)}))}function ss(t,e,s,a){let n=0;for(const e of t){let t=0;for(const s of e.mlst){t+=2*(s.radius+s.rimwidth)}if(e.mlst.length==1){e.width=t}else{e.width=Math.min(Xe,t);const s=e.mlst[0];const a=e.mlst[e.mlst.length-1];e.fixedgew=s.radius+s.rimwidth+a.radius+a.rimwidth}n+=e.width}if(n<=a.width){let e=0;for(const s of t){s.x=e+s.mlst[0].radius+s.mlst[0].rimwidth;e+=s.width;if(s.mlst.length==1){s.stemw=0}else{s.stemw=s.width-s.fixedgew}}as(t,a.width);for(const e of t){e.xoffset=e.x-e.x0;if(e.mlst.length==1){e.mlst[0].xoff=0;e.stemw=0}else{e.stemw=e.width-e.fixedgew;const t=e.stemw/(e.mlst.length-1);for(let s=0;s<e.mlst.length;s++){e.mlst[s].xoff=t*s}}}return true}for(const e of t){e.x=e.x0;e.xoffset=0;for(const t of e.mlst){t.xoff=0}}return false}function as(t,e){for(let s=0;s<t.length;s++){if(t[s].x0<0)continue;if(t[s].x0>e)break;while(1){let a=0,n=0;for(let i=s;i<t.length;i++){const s=t[i];if(s.x0>e){return}a+=Math.abs(s.x-s.x0-s.stemw/2);s.x++;n+=Math.abs(s.x-s.x0-s.stemw/2)}if(t[s].x>t[s].x0-t[s].stemw/2){for(let e=s;e<t.length;e++){t[e].x--}break}const i=t[t.length-1];if(i.x+i.width/2>=e){return}if(n<=a);else{for(let a=s;a<t.length;a++){if(t[a].x0>e){break}t[a].x--}break}}}}function ns(t){const e=[];for(const s of t){for(const t of s.mlst){e.push({m:t,w:2*(t.radius+t.rimwidth),x:s.x0,y:t._y})}}e.sort(((t,e)=>e.y-t.y));for(let t=0;t<e.length;t++){const s=e[t];let a=false;for(let n=0;n<t;n++){const t=e[n];if(Math.abs(s.x-t.x)<(s.w+t.w)/2-2){a=true;break}}if(!a){s.m.labattop=true}}for(let t=e.length-1;t>=0;t--){const s=e[t];if(s.m.labattop)continue;let a=false;for(let n=e.length-1;n>t;n--){const t=e[n];if(t.m.labatbottom&&Math.abs(t.x-s.x)<(t.w+s.w)/2-2){a=true;break}}if(!a){s.m.labatbottom=true}}}function is(t,e){if(t.mlst.length==1){return"M0,0v"+e.stem1+"l"+-t.xoffset+","+e.stem2+"v"+e.stem3}return"M0,0"+"v"+e.stem1+"l"+-t.xoffset+","+e.stem2+"v"+e.stem3+"v-"+e.stem3+"l"+(t.stemw+t.xoffset-1)+",-"+e.stem2+"v-"+e.stem1}function os(t,e,s){if(t.__svg_textlabel){k(t.__svg_textlabel).attr("font-size",t._labfontsize*1.1)}s.pica.g.attr("transform","translate("+(t.aa.x+t.xoff)+","+(e.toplabelheight+e.maxradius+e.axisheight-t._y)+")");const a=10;const n=4;const i=t._labfontsize||13;const o=s.color4disc(t);const r=[];if(e.tooltipPrintValue){const s=e.tooltipPrintValue(t);if(Array.isArray(s)){r.push(...s.map((t=>`${t.k} = ${t.v}`)))}}else{r.push(e.label+" = "+(t.__value_missing?"NA":t.__value_use))}if(s.mds.queries?.ld?.mOverlay?.data){if(t.ssm_id==s.mds.queries.ld.mOverlay.m.ssm_id);else{let e="?";for(const a of s.mds.queries.ld.mOverlay.data){if(a.pos==t.pos&&a.alleles==t.ref+"."+t.alt){e=a.r2;break}}r.push("r2 = "+e)}}if(!t.labattop&&!t.labatbottom){r.push(s.mnamegetter(t))}let l=0;for(const t of r){s.pica.g.append("text").attr("font-size",i).attr("font-family",He).text(t).each((function(){l=Math.max(l,this.getBBox().width)})).remove()}const c=n*2+l;let d,f,m=true;if(c+a>t.aa.x+t.xoff){m=false;f=t.radius+t.rimwidth;d=f+a}else{f=-t.radius-t.rimwidth-a;d=f-c}const u=i*r.length;s.pica.g.append("rect").attr("x",d-2).attr("y",-2-n-u/2).attr("width",4+c).attr("height",4+n*2+u).attr("fill","white");s.pica.g.append("line").attr("x1",f).attr("x2",f+a).attr("stroke","white").attr("stroke-width",3).attr("shape-rendering","crispEdges");s.pica.g.append("line").attr("x1",f).attr("x2",f+a).attr("stroke",o).attr("shape-rendering","crispEdges");s.pica.g.append("rect").attr("x",d).attr("y",-n-u/2).attr("width",c).attr("height",n*2+u).attr("fill","none").attr("stroke",o).attr("shape-rendering","crispEdges");let p=(i-u)/2;for(const t of r){s.pica.g.append("text").text(t).attr("text-anchor",m?"end":"start").attr("font-size",i).attr("font-family",He).attr("x",m?f-n:d+n).attr("y",p).attr("fill",o).attr("dominant-baseline","central");p+=i}}function rs(t,e){if(t.__svg_textlabel){k(t.__svg_textlabel).attr("font-size",t._labfontsize)}e.pica.g.selectAll("*").remove()}function ls(t,e,s){for(const e of t){for(const t of e.mlst){delete t.__value_use;delete t.__value_missing}}if(e.byAttribute){for(const s of t){for(const t of s.mlst){const s=t[e.byAttribute];if(Number.isFinite(s)){t.__value_use=s}else{t.__value_missing=true}}}}else if(e.byInfo){for(const s of t){for(const t of s.mlst){const s=t?.info?.[e.byInfo];if(Number.isFinite(s)){t.__value_use=s}else{t.__value_missing=true}}}}else{throw"unknown method of getting value"}if(e.axisSetting.auto){e.minvalue=null;e.maxvalue=null;for(const s of t){for(const t of s.mlst){if("__value_use"in t){if(e.minvalue==null){e.minvalue=t.__value_use;e.maxvalue=t.__value_use}else{e.minvalue=Math.min(e.minvalue,t.__value_use);e.maxvalue=Math.max(e.maxvalue,t.__value_use)}}}}}else if(e.axisSetting.fixed){e.minvalue=e.axisSetting.fixed.min;e.maxvalue=e.axisSetting.fixed.max}else{throw"unknown axisSetting"}}function cs(t,e,s){e.axisg.attr("transform","translate(0,"+(e.toplabelheight+e.maxradius)+")").selectAll("*").remove();const a=d().domain([e.minvalue,e.maxvalue]).range([e.axisheight,0]);const n=N().scale(a).ticks(4);if(e.isinteger){n.tickFormat(y("d"));if(e.maxvalue-e.minvalue<3){n.ticks(e.maxvalue-e.minvalue)}}L({axis:e.axisg.call(n),showline:true,fontsize:e.dotwidth});e.axisWidth=0;e.axisg.selectAll("text").each((function(){e.axisWidth=Math.max(e.axisWidth,this.getBBox().width)}));e.axisWidth+=15;let i;e.axisg.append("text").attr("fill","black").attr("font-size",e.dotwidth).attr("dominant-baseline","central").attr("text-anchor","end").attr("class","sjpp-mds3-nm-axislabel sja_clbtext2").attr("y",e.axisheight/2).attr("x",-e.axisWidth).text(e.label||Ye).each((function(){i=this.getBBox().width})).on("click",(a=>{t.menutip.clear().showunder(a.target).d.append("div").text("Cancel").attr("class","sja_menuoption").style("border-radius","0px").on("click",(()=>{t.menutip.hide();e.inuse=false;t.skewer.viewModes.find((t=>t.type=="skewer")).inuse=true;us({skewer:t.skewer.rawmlst},t,s);Pe(t,s);t._finish()}));I({holder:t.menutip.d.append("div").style("margin","10px"),noPercentile:true,callback:a=>{e.axisSetting=a;ts(t);es(e,t,s)},setting:e.axisSetting})}));t.skewer.maxwidth=e.axisWidth+i}function ds(t){return`M 0 -${t} L ${t} ${t*.7} h -${t*2} Z`}function fs(t){const e=t.mds.queries?.ld?.mOverlay?.m;if(!e)return;t.skewer.hlssmid=new Set([e.ssm_id]);qe(t)}const ms=10;function us(t,e,s){if(!e.skewer){e.subtk2height.skewer=0;return}e.skewer.maxwidth=0;bs(e,t.skewer);ps(e,t.skewer);const a=e.skewer.viewModes.find((t=>t.inuse));if(!a)throw"no mode!!";if(t.skewer){e.skewer.rawmlst=t.skewer}if(a.type=="numeric"){e.subtk2height.skewer=Ze(a,t,e,s);qe(e);return}if(a.type!="skewer")throw'mode.type is not "skewer"';if(t&&!t.skewer&&s.usegm&&s.gmmode!="genomic"&&s.pannedpx!=undefined){hs(e,s);e.skewer.selection.attr("transform",(t=>"translate("+t.x+","+t.y+")"));ye(e,s)}else{e.skewer.g.selectAll("*").remove();e.skewer.data=gs(e,s);ke(e,s)}if(!e.skewer.data||e.skewer.data.length==0){e.subtk2height.skewer=0;e.skewer.g.selectAll("*").remove();return}if(e.skewer.hlssmid){const t=[];const a=[];for(const s of e.skewer.data){let n=false;for(const t of s.groups){for(const s of t.mlst){if(e.skewer.hlssmid.has(s.ssm_id)){n=true;break}}}if(n){a.push(s)}else{t.push(s)}}Se(t,e);_e(a,e,s);qe(e)}else{ye(e,s)}e.subtk2height.skewer=e.skewer.maxheight+e.skewer.stem1+e.skewer.stem2+e.skewer.stem3}function ps(t,e){if(!t.hlaachange||!e)return;const s=new Set(t.hlaachange.split(","));delete t.hlaachange;t.skewer.hlssmid=new Set;for(const a of e){if(s.has(a.mname))t.skewer.hlssmid.add(a.ssm_id)}}function hs(t,e){for(const s of t.skewer.data){if(s.isbin){let t=0;for(const a of s.mlst){const s=e.seekcoord(a.chr,a.pos);if(a.usehitidx!=undefined&&s[a.usehitidx]){t+=s[a.usehitidx].x}else if(s.length==1){t+=s[0].x}else{console.log("cannot map item");console.log(a)}}s.x0=t/s.mlst.length;s.x=s.x0+(s.xoffset!=undefined?s.xoffset:0)}else{const t=e.seekcoord(s.chr,s.pos);if(t.length>0){s.x0=t[0].x;s.x=s.x0+(s.xoffset!=undefined?s.xoffset:0)}else{console.log("cannot map group of item");console.log(s)}}}}function gs(t,e){const s=ze(t,t.skewer.rawmlst,e);for(const t of s){t.groups=ws(t.mlst)}if(t.skewer.data&&e.pannedpx!=undefined){const e={};for(const s of t.skewer.data){e[s.chr+"."+s.pos]={mode:s.showmode,xoffset:s.xoffset,slabelrotate:s.slabelrotate}}for(const t of s){const s=t.chr+"."+t.pos;if(e[s]){t.showmode=e[s].mode;t.xoffset=e[s].xoffset;t.slabelrotate=e[s].slabelrotate}}}for(const t of s){t.occurrence=t.groups.reduce(((t,e)=>t+e.occurrence),0)}return s}function ws(t,e){const s=new Map;for(const e of t){if(!Number.isInteger(e.dt))continue;if(!s.has(e.dt))s.set(e.dt,new Map);switch(e.dt){case p:if(!s.get(e.dt).has(e.class))s.get(e.dt).set(e.class,new Map);const t=e.mname||"";if(!s.get(e.dt).get(e.class).has(t)){s.get(e.dt).get(e.class).set(t,[])}s.get(e.dt).get(e.class).get(t).push(e);break;case r:case l:if(!s.get(e.dt).has(e.class)){s.get(e.dt).set(e.class,{use5:new Map,use3:new Map})}if(e.useNterm){if(!s.get(e.dt).get(e.class).use5.has(e.mname)){s.get(e.dt).get(e.class).use5.set(e.mname,[])}s.get(e.dt).get(e.class).use5.get(e.mname).push(e)}else{if(!s.get(e.dt).get(e.class).use3.has(e.mname)){s.get(e.dt).get(e.class).use3.set(e.mname,[])}s.get(e.dt).get(e.class).use3.get(e.mname).push(e)}break;case n:case M:case j:case _:if(!s.has(e.dt)){s.set(e.dt,[])}s.get(e.dt).push(e);break;default:console.log("unknown datatype: "+e.dt);console.log(e);return}}const a=[];for(const[t,e]of s){switch(t){case p:for(const[s,n]of e){if(n.size>ms){const e=[];for(const t of n.values())e.push(...t);a.push({dt:t,mlst:e,mnameCompact:i[s].label})}else{for(const e of n.values()){a.push({dt:t,mlst:e})}}}break;case r:case l:for(const s of e.values()){if(s.use5.size>ms){const e=[];for(const t of s.use5.values())e.push(...t);a.push({dt:t,mlst:e,useNterm:true,mnameCompact:t==r?"SV":"fusion"})}else{for(const e of s.use5.values()){a.push({dt:t,mlst:e,useNterm:true})}}if(s.use3.size>ms){const e=[];for(const t of s.use3.values())e.push(...t);a.push({dt:t,mlst:e,useNterm:false,mnameCompact:t==r?"SV":"fusion"})}else{for(const e of s.use3.values()){a.push({dt:t,mlst:e,useNterm:false})}}}break;case n:case M:case j:case _:a.push({dt:t,mlst:e})}}for(const t of a){let e=0,s=0;for(const a of t.mlst){e+=a.rim1count||0;s+=a.rim2count||0}t.rim1count=e;t.rim2count=s}if(t.some((t=>Number.isFinite(t.occurrence)))){for(const t of a)t.occurrence=t.mlst.reduce(((t,e)=>t+e.occurrence),0)}else{for(const t of a)t.occurrence=t.mlst.length}a.sort(((t,e)=>e.occurrence-t.occurrence));return a}function bs(t,e){ks(t,e);for(const e of t.skewer.viewModes){if(e.type=="numeric"&&!e.inuse&&e.axisg){e.axisg.remove();delete e.axisg}}}function ks(t,e){if(e&&e.find((t=>Number.isFinite(t.occurrence)))){if(!t.skewer.viewModes.find((t=>t.type=="numeric"&&t.byAttribute=="occurrence"))){t.skewer.viewModes.push({type:"numeric",byAttribute:"occurrence",label:"Occurrence",isinteger:true})}}}function xs(t,e,s){e.cnv?.g.selectAll("*").remove();if(!t.cnv){delete e.subtk2height.cnv;return}const[a,n,i]=vs(t,e,s);e.cnv.cnvLst=n;e.cnv.absoluteMax=i;e.cnv.colorScale=d([-i,0,i],[e.cnv.lossColor,"white",e.cnv.gainColor]).clamp(true);const[o,r]=_s(a||n);if(a){for(const t of a){for(const a of t.cnvs){js(a,t.y*(o+r),o,e,s,t)}}}else{for(const t of n){js(t,t.y*(o+r),o,e,s)}}const l=(a||n).length;e.subtk2height.cnv=l*o+(l-1)*r}function vs(t,e,s){let a=0;const n=new Map;const i=[];for(const e of t.cnv){if(!e.chr)continue;if(!Number.isFinite(e.value)){if(typeof e.class=="string"){if(e.class==A){e.value=1}else if(e.class==S){e.value=-1}else{continue}}else{continue}}if(!Number.isInteger(e.start)||!Number.isInteger(e.stop))continue;const t=s.seekcoord(e.chr,e.start)[0];if(!t)continue;const o=s.seekcoord(e.chr,e.stop)[0];if(!o)continue;const r=structuredClone(e);if(t.x>o.x){r.x1=o.x;r.x2=t.x}else{r.x1=t.x;r.x2=o.x}a=Math.max(a,Math.abs(e.value));i.push(r);if(Array.isArray(e.samples)){for(const t of e.samples){if(!n.has(t.sample_id))n.set(t.sample_id,[]);n.get(t.sample_id).push(structuredClone(r))}}}let o;if(n.size){o=[];for(const[t,e]of n){e.sort(((t,e)=>t.x1-e.x1));o.push({sample_id:t,cnvs:e,x1:Math.min(...e.map((t=>t.x1))),x2:Math.max(...e.map((t=>t.x2)))})}o.sort(((t,e)=>t.x1-e.x1));for(let t=0;t<o.length;t++)o[t].y=t}else{i.sort(((t,e)=>t.x1-e.x1));Ms(i,0)}return[o,i,Math.min(e.cnv.absoluteValueRenderMax,a)]}const ys=d([40,120],[10,1]);function _s(t){if(t.length>120)return[1,0];if(t.length<40)return[10,1];return[Math.ceil(ys(t.length)),1]}function js(t,e,s,a,n,i){const o=Math.max(0,t.x1),r=Math.min(t.x2,n.width);a.cnv.g.append("rect").attr("x",o).attr("y",e).attr("width",r-o).attr("height",s).attr("fill",a.cnv.colorScale(t.value)).on("mouseover",(e=>{e.target.setAttribute("stroke","black");a.itemtip.clear().show(e.clientX,e.clientY);const s=h({holder:a.itemtip.d});const n=structuredClone(t);if(i){n.samples=[{sample_id:i.sample_id}]}Kt({mlst:[n],tk:a},s)})).on("mouseout",(t=>{t.target.setAttribute("stroke","");a.itemtip.hide()}))}function Ms(t,e){const s=[];for(const a of t){for(let t=0;t<s.length;t++){if(s[t]+e<a.x1){s[t]=a.x2;a.y=t;break}}if(!("y"in a)){a.y=s.length;s.push(a.x2)}}}async function As(t,e){e.tkcloakon(t);e.block_setheight();try{if(!t.mds||t.uninitialized){await pt(t,e)}const s=await qs(t,e);if(t.uninitialized){t.clear();delete t.uninitialized}us(s,t,e);xs(s,t,e);await Ue(s,t,e);t._finish(s)}catch(e){if(t.clear)t.clear();if(t.subtk2height)t.subtk2height.skewer=50;if(t._finish)t._finish({error:e.message||e});if(e.stack)console.log(e.stack);return}}function Ss(t,e){const s={genome:e.genome.name,forTrack:1,skewerRim:t.mds.queries?.snvindel?.skewerRim};const a={"Content-Type":"application/json",Accept:"application/json"};if(t.mds.has_skewer){s.skewer=1}if(t.set_id){s.set_id=t.set_id}if(t.filter0){s.filter0=t.filter0}if(t.filterObj){if(t.filterObj?.lst.length){s.filterObj=t.filterObj}}if(t.token){a["X-Auth-Token"]=t.token}if(t.mds.label){s.dslabel=t.mds.label}else{if(t.bcf){if(t.bcf.file){s.bcffile=t.bcf.file}else if(t.bcf.url){s.bcfurl=t.bcf.url;if(t.bcf.indexURL)s.bcfindexURL=t.bcf.indexURL}else{throw".file and .url missing for tk.bcf{}"}}}Cs(t,e,s);if(t.legend.mclass.hiddenvalues.size){s.hiddenmclasslst=[...t.legend.mclass.hiddenvalues].join(",")}if(t.legend.bcfInfo){const e={};for(const s in t.legend.bcfInfo){if(t.legend.bcfInfo[s].hiddenvalues.size){e[s]=[...t.legend.bcfInfo[s].hiddenvalues]}}if(Object.keys(e).length){s.infoFilter=e}}if(t.legend.formatFilter){const e={};for(const s in t.legend.formatFilter){if(t.legend.formatFilter[s].hiddenvalues.size){e[s]=[...t.legend.formatFilter[s].hiddenvalues]}}if(Object.keys(e).length){s.formatFilter=e}}if(t.cnv){if(t.cnv.cnvMaxLength)s.cnvMaxLength=t.cnv.cnvMaxLength;if(t.cnv.cnvGainCutoff)s.cnvGainCutoff=t.cnv.cnvGainCutoff;if(t.cnv.cnvLossCutoff)s.cnvLossCutoff=t.cnv.cnvLossCutoff}return[s,a]}async function qs(t,e){let s;if(t.custom_variants){s=await zs(t,e)}else{const[a,n]=Ss(t,e);s=await u("mds3",{body:a,headers:n})}if(s.error)throw s.error;return s}function Cs(t,e,s){if(typeof s!="object")throw"par{} is not object";let a=[];if(e.usegm){const t={chr:e.rglst[0].chr,reverse:e.rglst[0].reverse,width:0,start:null,stop:null};for(let s=e.startidx;s<=e.stopidx;s++){const a=e.rglst[s];t.width+=a.width+e.regionspace;t.start=t.start==null?a.start:Math.min(t.start,a.start);t.stop=t.stop==null?a.stop:Math.max(t.stop,a.stop)}a.push(t);if(e.gmmode=="genomic");else{s.isoform=e.usegm.isoform;s.gene=e.usegm.name}}else{a=e.tkarg_rglst(t)}let n=0;for(const t of a){t.xoff=0;n+=t.width+e.regionspace}if(e.subpanels.length==t.subpanels.length){for(const t of e.subpanels){a.push({chr:t.chr,start:t.start,stop:t.stop,width:t.width,exonsf:t.exonsf,xoff:n});n+=t.width+t.leftpad}}s.rglst=a}async function zs(t,e){const a={skewer:[],cnv:[]};let n=null,o;for(let t=e.startidx;t<=e.stopidx;t++){if(n==null){n=e.rglst[t].start;o=e.rglst[t].stop}else{n=Math.min(n,e.rglst[t].start);o=Math.max(o,e.rglst[t].stop)}}const c=new Map;for(const d of t.custom_variants){if(d.dt==s){if(d.chr!=e.rglst[0].chr)continue;if(Math.max(d.start,n)>Math.min(d.stop,o))continue;a.cnv.push(d)}else if(d.dt==p||d.dt==r||d.dt==l){if(d.chr!=e.rglst[0].chr)continue;if(d.pos<=n||d.pos>=o)continue;if(!d.class)d.class="X";if(!i[d.class])d.class="X";if(t.legend.mclass.hiddenvalues.has(d.class))continue;a.skewer.push(d)}else{throw"unknown custom data dt"}c.set(d.class,1+(c.get(d.class)||0))}if(a.cnv.length==0)delete a.cnv;const d=new Set;if(a.skewer?.some((t=>t.samples))){for(const t of a.skewer){if(t.samples){for(const e of t.samples)d.add(e.sample_id)}}}if(a.cnv?.some((t=>t.samples))){for(const t of a.cnv){if(t.samples){for(const e of t.samples)d.add(e.sample_id)}}}if(d.size)a.sampleTotalNumber=d.size;a.mclass2variantcount=[...c];await Ls(t,a.skewer);return a}async function Ls(t){if(!t.mds.queries?.ld?.mOverlay)return;if(!t.mds.termdb?.vocabApi)return;delete t.mds.queries.ld.mOverlay.data;const e=await t.mds.termdb.vocabApi.getLDdata(t.mds.queries.ld.mOverlay.ldtkname,t.mds.queries.ld.mOverlay.m);if(e.error||!Array.isArray(e.lst))return;t.mds.queries.ld.mOverlay.data=e.lst}var $s=Object.freeze({__proto__:null,loadTk:As,rangequery_rglst:Cs});export{te as d,mt as g,Ee as m,$s as t};
|