@sjcrh/proteinpaint-client 2.63.0 → 2.63.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -7
- package/dist/{2dmaf-70c0b6bb.js → 2dmaf-0cabb4a4.js} +1 -1
- package/dist/{ColorScale-b44d51ef.js → ColorScale-9800a609.js} +1 -1
- package/dist/{DEanalysis-b86d0874.js → DEanalysis-567989ff.js} +1 -1
- package/dist/{Disco-16cd51c0.js → Disco-5d1404ce.js} +1 -1
- package/dist/{Disco.UI-a38a12e6.js → Disco.UI-54228bb6.js} +1 -1
- package/dist/{DragControls-0c173a20.js → DragControls-a05737c2.js} +1 -1
- package/dist/{DziViewer-5c2d68e7.js → DziViewer-3f466d90.js} +2 -2
- package/dist/{FilterRxComp-0e75dd8d.js → FilterRxComp-fc769f34.js} +1 -1
- package/dist/{FilterStateless-ad3df967.js → FilterStateless-8f30f856.js} +1 -1
- package/dist/{HicApp-bcf8330c.js → HicApp-aac413df.js} +1 -1
- package/dist/{OrbitControls-c33cf781.js → OrbitControls-8b7f91ca.js} +1 -1
- package/dist/app-59194db0.js +1 -0
- package/dist/{app-f91922b4.js → app-71453429.js} +1 -1
- package/dist/{app-bfce9bf5.js → app-fb676934.js} +1 -1
- package/dist/app.js +1 -1
- package/dist/{bam-95f36008.js → bam-e7f6baea.js} +1 -1
- package/dist/{barchart-e2af00a8.js → barchart-ef4874c8.js} +1 -1
- package/dist/{barchart.events-272fd122.js → barchart.events-e24facf7.js} +1 -1
- package/dist/{bars.renderer-f0e5af5a.js → bars.renderer-c46d3f44.js} +1 -1
- package/dist/{block-ec76524e.js → block-4f585abe.js} +1 -1
- package/dist/block.lazyload-6f83d057.js +1 -0
- package/dist/{block.legend-f8cad7e4.js → block.legend-cec87c6f.js} +1 -1
- package/dist/{block.mds-20655637.js → block.mds-f5a11c42.js} +1 -1
- package/dist/{block.mds.cnv-5feb86a0.js → block.mds.cnv-25423c1e.js} +1 -1
- package/dist/{block.mds.expressionrank-c7043f35.js → block.mds.expressionrank-fc1996d5.js} +1 -1
- package/dist/{block.mds.expressionstat-4bf457f3.js → block.mds.expressionstat-45b6bf47.js} +1 -1
- package/dist/{block.mds.geneboxplot-132e5fe6.js → block.mds.geneboxplot-037df46d.js} +1 -1
- package/dist/{block.mds.junction-1f9810df.js → block.mds.junction-00161de6.js} +1 -1
- package/dist/{block.mds.svcnv-094c416f.js → block.mds.svcnv-0c257af4.js} +1 -1
- package/dist/{block.mds.svcnv.share-bb976e02.js → block.mds.svcnv.share-c0b9dfad.js} +1 -1
- package/dist/{block.mds2-7045e32c.js → block.mds2-9009f8d8.js} +1 -1
- package/dist/{block.svg-d8d76ba7.js → block.svg-86bbfcb0.js} +1 -1
- package/dist/{block.tk.aicheck-317d04bd.js → block.tk.aicheck-a5697794.js} +1 -1
- package/dist/{block.tk.ase-d1577ec1.js → block.tk.ase-ad1be47c.js} +1 -1
- package/dist/{block.tk.bam-3cdc13a0.js → block.tk.bam-14339d16.js} +1 -1
- package/dist/{block.tk.bedgraphdot-5304e06c.js → block.tk.bedgraphdot-efe19e56.js} +1 -1
- package/dist/{block.tk.bigwig.ui-0c96dce5.js → block.tk.bigwig.ui-a92f286b.js} +1 -1
- package/dist/{block.tk.hicstraw-39d89269.js → block.tk.hicstraw-57fbbe61.js} +1 -1
- package/dist/{block.tk.junction-b45b3a95.js → block.tk.junction-64c39cd5.js} +1 -1
- package/dist/{block.tk.junction.textmatrixui-6ec019e1.js → block.tk.junction.textmatrixui-09e5e02f.js} +1 -1
- package/dist/{block.tk.ld-5c54e58b.js → block.tk.ld-f681d099.js} +1 -1
- package/dist/{block.tk.menu-30a2c3a5.js → block.tk.menu-2563364c.js} +1 -1
- package/dist/{block.tk.pgv-7ff2dfaf.js → block.tk.pgv-9dfc00c0.js} +1 -1
- package/dist/{boxplot-7de25274.js → boxplot-a2e1ace0.js} +1 -1
- package/dist/brainImaging-21701238.js +1 -0
- package/dist/{brush-db0ed33a.js → brush-bb4566a3.js} +1 -1
- package/dist/{categorical-bc309399.js → categorical-a00f4ffc.js} +1 -1
- package/dist/{condition-f0eb2343.js → condition-2034db37.js} +1 -1
- package/dist/{controls-8d4972c8.js → controls-0467d2ec.js} +1 -1
- package/dist/{controls.btns-bad9e4cf.js → controls.btns-ad7b28a2.js} +1 -1
- package/dist/{controls.config-e0f394cb.js → controls.config-6cf816fb.js} +1 -1
- package/dist/{controls.divide-d8ac5a9b.js → controls.divide-3c0d52d7.js} +1 -1
- package/dist/{controls.overlay-3ac8773d.js → controls.overlay-3a55c2ec.js} +1 -1
- package/dist/{controls.term1-008f4be4.js → controls.term1-59f4cd60.js} +1 -1
- package/dist/cuminc-8d21132b.js +1 -0
- package/dist/{customdata.inputui-58cd9b32.js → customdata.inputui-40ba6d7f.js} +1 -1
- package/dist/{dataDownload-91da6dd6.js → dataDownload-bfa92dad.js} +1 -1
- package/dist/{databrowser.ui-c50862e4.js → databrowser.ui-4799f04d.js} +1 -1
- package/dist/{density-7c3f91eb.js → density-4c2b53f6.js} +1 -1
- package/dist/{dictionary-48a38837.js → dictionary-89e860ee.js} +1 -1
- package/dist/{drag-c354e2c6.js → drag-88d451b4.js} +1 -1
- package/dist/{e2pca-3bba91fa.js → e2pca-8a3f2566.js} +1 -1
- package/dist/{ep-144d8973.js → ep-5399c5cc.js} +1 -1
- package/dist/{fusion.parse-ae1253f4.js → fusion.parse-fc25e5bd.js} +1 -1
- package/dist/{geneExpClustering-96d09008.js → geneExpClustering-a916ebda.js} +1 -1
- package/dist/{geneExpression-d6494fd3.js → geneExpression-501e95c0.js} +1 -1
- package/dist/{geneExpression-9ca2da4f.js → geneExpression-9047481a.js} +1 -1
- package/dist/{geneExpression-be9b5da2.js → geneExpression-da4b50f0.js} +1 -1
- package/dist/{geneORA-85850143.js → geneORA-ffb2497e.js} +1 -1
- package/dist/{geneVariant-3df05e0c.js → geneVariant-7ab521d6.js} +1 -1
- package/dist/{geneVariant-3d674865.js → geneVariant-d79431a2.js} +1 -1
- package/dist/{genefusion.ui-3e2a3a73.js → genefusion.ui-3ce190c7.js} +1 -1
- package/dist/{geneset-3b761b2c.js → geneset-3522bcda.js} +1 -1
- package/dist/{genomeBrowser-2105a98f.js → genomeBrowser-9b72eb22.js} +1 -1
- package/dist/{genomeBrowser.controls-f9b9bf42.js → genomeBrowser.controls-bef8bf99.js} +1 -1
- package/dist/{groupsetting-4901d033.js → groupsetting-574ad150.js} +1 -1
- package/dist/{hierCluster-a7ff7f5a.js → hierCluster-3b14b2b3.js} +1 -1
- package/dist/{hierCluster.config-3d124abf.js → hierCluster.config-f8686a30.js} +1 -1
- package/dist/{hierCluster.interactivity-3463cc0b.js → hierCluster.interactivity-3b5f1e81.js} +1 -1
- package/dist/{hierCluster.renderers-668d0075.js → hierCluster.renderers-9f9a7cad.js} +1 -1
- package/dist/{html.legend-3e428f9e.js → html.legend-ef8066dd.js} +1 -1
- package/dist/{imagePlot-6d89200c.js → imagePlot-095b9a92.js} +1 -1
- package/dist/{lasso-393c1570.js → lasso-ef63631b.js} +1 -1
- package/dist/{launch.adhoc-9c59874e.js → launch.adhoc-1b356f97.js} +1 -1
- package/dist/{legacyDataset-26ead9cc.js → legacyDataset-056e9d4c.js} +1 -1
- package/dist/{log-4d74231e.js → log-ca1e2a74.js} +1 -1
- package/dist/{lollipop-59f65024.js → lollipop-6ad9ec3c.js} +1 -1
- package/dist/{maf-72e5b7da.js → maf-dfada1c8.js} +1 -1
- package/dist/{maftimeline-ed8aaae8.js → maftimeline-1b715a01.js} +1 -1
- package/dist/{matrix-3d09a31f.js → matrix-3fae58f8.js} +1 -1
- package/dist/matrix.cells-3620eb3a.js +1 -0
- package/dist/{matrix.cluster-acdfc6a7.js → matrix.cluster-15b8a865.js} +1 -1
- package/dist/{matrix.config-cd01ebbd.js → matrix.config-8247bea5.js} +1 -1
- package/dist/{matrix.controls-86eb8d5c.js → matrix.controls-dea65894.js} +1 -1
- package/dist/{matrix.data-e2d7ac16.js → matrix.data-121a1a8c.js} +1 -1
- package/dist/{matrix.dom-e5f91cc0.js → matrix.dom-83c5fa39.js} +1 -1
- package/dist/{matrix.groups-f1969b5c.js → matrix.groups-2e1202ef.js} +1 -1
- package/dist/{matrix.interactivity-92bc8332.js → matrix.interactivity-2b076155.js} +1 -1
- package/dist/{matrix.layout-29a8f334.js → matrix.layout-8dc54c05.js} +1 -1
- package/dist/{matrix.legend-8c28039e.js → matrix.legend-e0078739.js} +1 -1
- package/dist/matrix.renderers-0c8eddc9.js +1 -0
- package/dist/{matrix.serieses-e079f04a.js → matrix.serieses-2898da6b.js} +1 -1
- package/dist/{matrix.sort-e1f83454.js → matrix.sort-249d4a35.js} +1 -1
- package/dist/{matrix.sorterUi-2025f39d.js → matrix.sorterUi-d26208c8.js} +1 -1
- package/dist/{mavb-37fffd68.js → mavb-9a6fa2e9.js} +1 -1
- package/dist/{mds.fimo-68f0eaf5.js → mds.fimo-ce97371c.js} +1 -1
- package/dist/{mds.samplescatterplot-362f3591.js → mds.samplescatterplot-a54b9e93.js} +1 -1
- package/dist/{mds.survivalplot-f5bda05a.js → mds.survivalplot-c5093f73.js} +1 -1
- package/dist/{mdsjsonform-7f0b6cc7.js → mdsjsonform-09b4e1cb.js} +1 -1
- package/dist/metaboliteIntensity-eeb5ad12.js +1 -0
- package/dist/niceNumLabels-ddb76164.js +1 -0
- package/dist/{nodrag-777a34a5.js → nodrag-bed2488c.js} +1 -1
- package/dist/{numeric-2eb8c25b.js → numeric-d5536b1c.js} +1 -1
- package/dist/numeric.binary-d67da945.js +1 -0
- package/dist/numeric.continuous-9a0c88bc.js +1 -0
- package/dist/numeric.discrete-921f7097.js +1 -0
- package/dist/numeric.spline-649308d5.js +1 -0
- package/dist/{numeric.toggle-5316211b.js → numeric.toggle-52789fd2.js} +1 -1
- package/dist/{oncomatrix-cd9fa01b.js → oncomatrix-6950c48c.js} +1 -1
- package/dist/{parseData-1bfa9946.js → parseData-480d1ff3.js} +1 -1
- package/dist/{plot.2dvaf-1ed153c1.js → plot.2dvaf-1ecc4bbc.js} +1 -1
- package/dist/plot.app-c841507a.js +1 -0
- package/dist/{plot.barplot-61742e94.js → plot.barplot-24140b0f.js} +1 -1
- package/dist/{plot.boxplot-fe966ac3.js → plot.boxplot-87fe8ab2.js} +1 -1
- package/dist/{plot.brainImaging-d2c23bb7.js → plot.brainImaging-325ebded.js} +1 -1
- package/dist/{plot.disco-70d493f4.js → plot.disco-621d1b8e.js} +1 -1
- package/dist/{plot.dzi-14e6fdc4.js → plot.dzi-3a7e478e.js} +1 -1
- package/dist/{plot.ssgq-9d364d41.js → plot.ssgq-1949c207.js} +1 -1
- package/dist/{plot.vaf2cov-4d28015b.js → plot.vaf2cov-d03c6409.js} +1 -1
- package/dist/{profileBarchart-c104f8e2.js → profileBarchart-11755d7c.js} +1 -1
- package/dist/{profileHome-a555583d.js → profileHome-9c5e266b.js} +1 -1
- package/dist/{profilePlot-5ce5b6a0.js → profilePlot-8ee3034a.js} +1 -1
- package/dist/{profilePolar-610213d4.js → profilePolar-9fe70c32.js} +1 -1
- package/dist/{profileRadar-fddb18f7.js → profileRadar-0e744181.js} +1 -1
- package/dist/{profileRadarFacility-2c2db1dd.js → profileRadarFacility-102544c5.js} +1 -1
- package/dist/{recover-a08c8d01.js → recover-b1ec4fed.js} +1 -1
- package/dist/{regression.inputs-5718cf72.js → regression.inputs-ad548745.js} +1 -1
- package/dist/{regression.inputs.values.table-d587c1cf.js → regression.inputs.values.table-1618447a.js} +1 -1
- package/dist/{regression.results-748024be.js → regression.results-25008028.js} +1 -1
- package/dist/{renderPvalueTable-c435aefd.js → renderPvalueTable-46056189.js} +1 -1
- package/dist/sampleScatter-47dd82cb.js +1 -0
- package/dist/{sampleScatter.interactivity-e9c30652.js → sampleScatter.interactivity-cfa3451d.js} +1 -1
- package/dist/{sampleScatter.rendererThree-3e6c032e.js → sampleScatter.rendererThree-c5321d24.js} +2 -2
- package/dist/{sampleView-d6a91293.js → sampleView-30b97c7d.js} +1 -1
- package/dist/{samplelst-821ec148.js → samplelst-2bdc1b9d.js} +1 -1
- package/dist/{samplematrix-7aa0a780.js → samplematrix-4f0ec523.js} +1 -1
- package/dist/{scatter-2e2c76f4.js → scatter-8a337eeb.js} +1 -1
- package/dist/{selectGenomeWithTklst-51cd21a4.js → selectGenomeWithTklst-895106fb.js} +1 -1
- package/dist/{singleCellPlot-c7347a27.js → singleCellPlot-360eaec6.js} +1 -1
- package/dist/{singlecell-a668bb17.js → singlecell-29c1cbb1.js} +1 -1
- package/dist/{singlecell-7c851ef8.js → singlecell-75f8af89.js} +1 -1
- package/dist/{snplocus-fe6f4ba1.js → snplocus-0cafa73c.js} +1 -1
- package/dist/{snplst-751cea95.js → snplst-2284d5ce.js} +1 -1
- package/dist/{spliceevent.a53ss.diagram-b157f95d.js → spliceevent.a53ss.diagram-44ccabf9.js} +1 -1
- package/dist/{spliceevent.exonskip.diagram-071a3467.js → spliceevent.exonskip.diagram-c8d1bdf0.js} +1 -1
- package/dist/spliceevent.exonskip.getdefault-9fe16119.js +1 -0
- package/dist/{spliceevent.noeventdiagram-1c731f35.js → spliceevent.noeventdiagram-5e244090.js} +1 -1
- package/dist/{spliceevent.phrase-7a3bfb00.js → spliceevent.phrase-186eb050.js} +1 -1
- package/dist/{stattable-a7713026.js → stattable-886f7dad.js} +1 -1
- package/dist/{style.gdc-40ec2784.js → style.gdc-4ac9b96b.js} +1 -1
- package/dist/{summary-592d8f81.js → summary-ee2045a5.js} +1 -1
- package/dist/{sunburst-452df940.js → sunburst-bbff8818.js} +1 -1
- package/dist/survival-04e279f8.js +1 -0
- package/dist/{survival-450b6df4.js → survival-d7bd3c6b.js} +1 -1
- package/dist/{svg.download-56529955.js → svg.download-54c99186.js} +1 -1
- package/dist/{svg.legend-c82b153f.js → svg.legend-28652faa.js} +1 -1
- package/dist/{svgraph-3c5cd8d2.js → svgraph-a12d89da.js} +1 -1
- package/dist/{svmr-3dd531ef.js → svmr-248055c8.js} +1 -1
- package/dist/{table-d6c411fd.js → table-1dae543a.js} +1 -1
- package/dist/{table-bf604c50.js → table-b4a61573.js} +1 -1
- package/dist/{termInfo-96285f4a.js → termInfo-4c759483.js} +1 -1
- package/dist/{termsetting-9a7511e6.js → termsetting-636d2271.js} +1 -1
- package/dist/{tk-6a8e5bb0.js → tk-741d4674.js} +1 -1
- package/dist/{tp.ui-221efed6.js → tp.ui-23151bb1.js} +1 -1
- package/dist/{tvs.density-9fdae0cc.js → tvs.density-9fe0c7fd.js} +1 -1
- package/dist/{tvs.geneVariant-149e25b7.js → tvs.geneVariant-1b179327.js} +1 -1
- package/dist/tvs.numeric-b4cfc975.js +1 -0
- package/dist/{tvs.samplelst-a38e9c2b.js → tvs.samplelst-681358bc.js} +1 -1
- package/dist/{uiUtils-a6de7f14.js → uiUtils-74700a01.js} +1 -1
- package/dist/{variantBrowser-05375469.js → variantBrowser-910b4bcd.js} +1 -1
- package/dist/{vcf-58904308.js → vcf-16ba1e06.js} +1 -1
- package/dist/{violin-c1b78717.js → violin-a41b2e2b.js} +1 -1
- package/dist/{violin.interactivity-534d6993.js → violin.interactivity-bcf0ccc2.js} +1 -1
- package/dist/{violin.renderer-16540fb8.js → violin.renderer-149310eb.js} +1 -1
- package/dist/{violinRenderer-688abcb2.js → violinRenderer-71c9f3ab.js} +1 -1
- package/dist/{viridis-d3cf2713.js → viridis-81de7bcd.js} +1 -1
- package/dist/{y-2d48b9e4.js → y-76c7da8c.js} +1 -1
- package/dist/{zoom-2d4ede33.js → zoom-a40839cf.js} +1 -1
- package/package.json +7 -7
- package/dist/app-de19f41c.js +0 -1
- package/dist/block.lazyload-ebd949e4.js +0 -1
- package/dist/brainImaging-007edaa3.js +0 -1
- package/dist/cuminc-72257faf.js +0 -1
- package/dist/matrix.cells-a5157233.js +0 -1
- package/dist/matrix.renderers-3b8dfd04.js +0 -1
- package/dist/metaboliteIntensity-512257f3.js +0 -1
- package/dist/niceNumLabels-8fdc6507.js +0 -1
- package/dist/numeric.binary-0a3b17d2.js +0 -1
- package/dist/numeric.continuous-f77038de.js +0 -1
- package/dist/numeric.discrete-b977e88f.js +0 -1
- package/dist/numeric.spline-d64b1abe.js +0 -1
- package/dist/plot.app-91a1d78d.js +0 -1
- package/dist/sampleScatter-031f47de.js +0 -1
- package/dist/spliceevent.exonskip.getdefault-93feb627.js +0 -1
- package/dist/survival-6a4c4f12.js +0 -1
- package/dist/tvs.numeric-f9ce58bc.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{az as t,aS as i,aQ as a,S as n}from"./app-71453429.js";import{topBarInit as e}from"./controls.btns-ad7b28a2.js";import{configUiInit as s}from"./controls.config-6cf816fb.js";import"./controls.overlay-3a55c2ec.js";import"./termsetting-636d2271.js";import"path";import"./FilterRxComp-fc769f34.js";import"./table-1dae543a.js";import"./controls.term1-59f4cd60.js";import"./controls.divide-3c0d52d7.js";class o{constructor(t){this.opts=t;this.type="brainImaging";this.isOpen=true}async init(){const t=this.opts.holder;const i=t.append("div").style("display","inline-block").style("vertical-align","top");const n=i.append("div");const o=i.append("div");const r=this.getConfigInputsOptions();this.features=await a({topbar:e({app:this.app,id:this.id,downloadHandler:()=>{const i=t.select('div[id="sjpp_brainImaging_holder_div"] img').node();const a="brainImaging";const n=document.createElement("a");document.body.appendChild(n);n.addEventListener("click",(()=>{n.download=a+".png";n.href=i.src;document.body.removeChild(n)}),false);n.click()},callback:()=>this.toggleVisibility(this.isOpen),isOpen:()=>this.isOpen,holder:n}),config:s({app:this.app,id:this.id,holder:o,isOpen:()=>this.isOpen,inputs:r})})}getConfigInputsOptions(){const t=[];const i=[{label:"Sagittal",type:"number",chartType:"brainImaging",settingsKey:"brainImageL",title:"Sagittal",min:0,max:192},{label:"Coronal",type:"number",chartType:"brainImaging",settingsKey:"brainImageF",title:"Coronal",min:0,max:228},{label:"Axial",type:"number",chartType:"brainImaging",settingsKey:"brainImageT",title:"Axial",min:0,max:192}];t.push(...i);return t}async main(){const t=this.state.settings;this.isOpen=t.brainImaging.isOpen;const i=this.opts.holder;i.select('div[id="sjpp_brainImaging_holder_div"]').remove();const a=i.append("div").attr("id","sjpp_brainImaging_holder_div").style("display","inline-block");const e=this.app.getState();for(const t in this.features){this.features[t].update({state:this.state,appState:e})}const s={genome:e.genome,dslabel:e.dslabel,NIdata:{dataType:e.args.queryKey,sample:e.args.sampleName+".nii"},l:t.brainImaging.brainImageL,f:t.brainImaging.brainImageF,t:t.brainImaging.brainImageT};const o=await n("mds3",{body:s});if(o.error)throw o.error;const r=await o.text();const p=new Image;p.onload=()=>{a.append("img").attr("width",p.width*2).attr("height",p.height*2).attr("src",r)};p.src=r}getState(t){return t.plots.find((t=>t.id===this.id))}toggleVisibility(t){this.app.dispatch({type:"plot_edit",id:this.opts.id,config:{settings:{brainImaging:{isOpen:!t}}}})}}const r=t(o);const p=r;async function g(t){const a={brainImaging:{brainImageL:76,brainImageF:116,brainImageT:80}};const n={chartType:"brainImaging",settings:a};return i(n,t)}export{r as brainImaging,p as componentInit,g as getPlotConfig};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aZ as e,a_ as t,a$ as n,q as r}from"./app-
|
|
1
|
+
import{aZ as e,a_ as t,a$ as n,q as r}from"./app-71453429.js";import{p as i}from"./pointer-c7475677.js";import{d as s,y as u}from"./nodrag-bed2488c.js";var a=e=>()=>e;function o(e,{sourceEvent:t,target:n,selection:r,mode:i,dispatch:s}){Object.defineProperties(this,{type:{value:e,enumerable:true,configurable:true},sourceEvent:{value:t,enumerable:true,configurable:true},target:{value:n,enumerable:true,configurable:true},selection:{value:r,enumerable:true,configurable:true},mode:{value:i,enumerable:true,configurable:true},_:{value:s}})}function l(e){e.stopImmediatePropagation()}function c(e){e.preventDefault();e.stopImmediatePropagation()}var f={name:"drag"},h={name:"space"},p={name:"handle"},v={name:"center"};const{abs:d,max:b,min:y}=Math;function m(e){return[+e[0],+e[1]]}function w(e){return[m(e[0]),m(e[1])]}var g={name:"x",handles:["w","e"].map(K),input:function(e,t){return e==null?null:[[+e[0],t[0][1]],[+e[1],t[1][1]]]},output:function(e){return e&&[e[0][0],e[1][0]]}};var _={name:"y",handles:["n","s"].map(K),input:function(e,t){return e==null?null:[[t[0][0],+e[0]],[t[1][0],+e[1]]]},output:function(e){return e&&[e[0][1],e[1][1]]}};var x={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"};var k={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"};var z={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"};var A={overlay:+1,selection:+1,n:null,e:+1,s:null,w:-1,nw:-1,ne:+1,se:+1,sw:-1};var E={overlay:+1,selection:+1,n:-1,e:null,s:+1,w:null,nw:-1,ne:-1,se:+1,sw:+1};function K(e){return{type:e}}function j(e){return!e.ctrlKey&&!e.button}function P(){var e=this.ownerSVGElement||this;if(e.hasAttribute("viewBox")){e=e.viewBox.baseVal;return[[e.x,e.y],[e.x+e.width,e.y+e.height]]}return[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]}function T(){return navigator.maxTouchPoints||"ontouchstart"in this}function V(e){while(!e.__brush)if(!(e=e.parentNode))return;return e.__brush}function B(e){return e[0][0]===e[1][0]||e[0][1]===e[1][1]}function C(){return M(g)}function I(){return M(_)}function M(m){var C=P,I=j,M=T,S=true,q=e("start","brush","end"),D=6,G;function N(e){var t=e.property("__brush",L).selectAll(".overlay").data([K("overlay")]);t.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",x.overlay).merge(t).each((function(){var e=V(this).extent;r(this).attr("x",e[0][0]).attr("y",e[0][1]).attr("width",e[1][0]-e[0][0]).attr("height",e[1][1]-e[0][1])}));e.selectAll(".selection").data([K("selection")]).enter().append("rect").attr("class","selection").attr("cursor",x.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var n=e.selectAll(".handle").data(m.handles,(function(e){return e.type}));n.exit().remove();n.enter().append("rect").attr("class",(function(e){return"handle handle--"+e.type})).attr("cursor",(function(e){return x[e.type]}));e.each(O).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",F).filter(M).on("touchstart.brush",F).on("touchmove.brush",H).on("touchend.brush touchcancel.brush",J).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}N.move=function(e,r,i){if(e.tween){e.on("start.brush",(function(e){Z(this,arguments).beforestart().start(e)})).on("interrupt.brush end.brush",(function(e){Z(this,arguments).end(e)})).tween("brush",(function(){var e=this,n=e.__brush,i=Z(e,arguments),s=n.selection,u=m.input(typeof r==="function"?r.apply(this,arguments):r,n.extent),a=t(s,u);function o(t){n.selection=t===1&&u===null?null:a(t);O.call(e);i.brush()}return s!==null&&u!==null?o:o(1)}))}else{e.each((function(){var e=this,t=arguments,s=e.__brush,u=m.input(typeof r==="function"?r.apply(e,t):r,s.extent),a=Z(e,t).beforestart();n(e);s.selection=u===null?null:u;O.call(e);a.start(i).brush(i).end(i)}))}};N.clear=function(e,t){N.move(e,null,t)};function O(){var e=r(this),t=V(this).selection;if(t){e.selectAll(".selection").style("display",null).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1]);e.selectAll(".handle").style("display",null).attr("x",(function(e){return e.type[e.type.length-1]==="e"?t[1][0]-D/2:t[0][0]-D/2})).attr("y",(function(e){return e.type[0]==="s"?t[1][1]-D/2:t[0][1]-D/2})).attr("width",(function(e){return e.type==="n"||e.type==="s"?t[1][0]-t[0][0]+D:D})).attr("height",(function(e){return e.type==="e"||e.type==="w"?t[1][1]-t[0][1]+D:D}))}else{e.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}}function Z(e,t,n){var r=e.__brush.emitter;return r&&(!n||!r.clean)?r:new $(e,t,n)}function $(e,t,n){this.that=e;this.args=t;this.state=e.__brush;this.active=0;this.clean=n}$.prototype={beforestart:function(){if(++this.active===1)this.state.emitter=this,this.starting=true;return this},start:function(e,t){if(this.starting)this.starting=false,this.emit("start",e,t);else this.emit("brush",e);return this},brush:function(e,t){this.emit("brush",e,t);return this},end:function(e,t){if(--this.active===0)delete this.state.emitter,this.emit("end",e,t);return this},emit:function(e,t,n){var i=r(this.that).datum();q.call(e,this.that,new o(e,{sourceEvent:t,target:N,selection:m.output(this.state.selection),mode:n,dispatch:q}),i)}};function F(e){if(G&&!e.touches)return;if(!I.apply(this,arguments))return;var t=this,a=e.target.__data__.type,o=(S&&e.metaKey?a="overlay":a)==="selection"?f:S&&e.altKey?v:p,w=m===_?null:A[a],K=m===g?null:E[a],j=V(t),P=j.extent,T=j.selection,C=P[0][0],M,q,D=P[0][1],N,$,F=P[1][0],H,J,L=P[1][1],Q,R,U=0,W=0,X,Y=w&&K&&S&&e.shiftKey,ee,te,ne=Array.from(e.touches||[e],(e=>{const n=e.identifier;e=i(e,t);e.point0=e.slice();e.identifier=n;return e}));n(t);var re=Z(t,arguments,true).beforestart();if(a==="overlay"){if(T)X=true;const t=[ne[0],ne[1]||ne[0]];j.selection=T=[[M=m===_?C:y(t[0][0],t[1][0]),N=m===g?D:y(t[0][1],t[1][1])],[H=m===_?F:b(t[0][0],t[1][0]),Q=m===g?L:b(t[0][1],t[1][1])]];if(ne.length>1)oe(e)}else{M=T[0][0];N=T[0][1];H=T[1][0];Q=T[1][1]}q=M;$=N;J=H;R=Q;var ie=r(t).attr("pointer-events","none");var se=ie.selectAll(".overlay").attr("cursor",x[a]);if(e.touches){re.moved=ae;re.ended=le}else{var ue=r(e.view).on("mousemove.brush",ae,true).on("mouseup.brush",le,true);if(S)ue.on("keydown.brush",ce,true).on("keyup.brush",fe,true);s(e.view)}O.call(t);re.start(e,o.name);function ae(e){for(const n of e.changedTouches||[e]){for(const e of ne)if(e.identifier===n.identifier)e.cur=i(n,t)}if(Y&&!ee&&!te&&ne.length===1){const e=ne[0];if(d(e.cur[0]-e[0])>d(e.cur[1]-e[1]))te=true;else ee=true}for(const e of ne)if(e.cur)e[0]=e.cur[0],e[1]=e.cur[1];X=true;c(e);oe(e)}function oe(e){const n=ne[0],r=n.point0;var i;U=n[0]-r[0];W=n[1]-r[1];switch(o){case h:case f:{if(w)U=b(C-M,y(F-H,U)),q=M+U,J=H+U;if(K)W=b(D-N,y(L-Q,W)),$=N+W,R=Q+W;break}case p:{if(ne[1]){if(w)q=b(C,y(F,ne[0][0])),J=b(C,y(F,ne[1][0])),w=1;if(K)$=b(D,y(L,ne[0][1])),R=b(D,y(L,ne[1][1])),K=1}else{if(w<0)U=b(C-M,y(F-M,U)),q=M+U,J=H;else if(w>0)U=b(C-H,y(F-H,U)),q=M,J=H+U;if(K<0)W=b(D-N,y(L-N,W)),$=N+W,R=Q;else if(K>0)W=b(D-Q,y(L-Q,W)),$=N,R=Q+W}break}case v:{if(w)q=b(C,y(F,M-U*w)),J=b(C,y(F,H+U*w));if(K)$=b(D,y(L,N-W*K)),R=b(D,y(L,Q+W*K));break}}if(J<q){w*=-1;i=M,M=H,H=i;i=q,q=J,J=i;if(a in k)se.attr("cursor",x[a=k[a]])}if(R<$){K*=-1;i=N,N=Q,Q=i;i=$,$=R,R=i;if(a in z)se.attr("cursor",x[a=z[a]])}if(j.selection)T=j.selection;if(ee)q=T[0][0],J=T[1][0];if(te)$=T[0][1],R=T[1][1];if(T[0][0]!==q||T[0][1]!==$||T[1][0]!==J||T[1][1]!==R){j.selection=[[q,$],[J,R]];O.call(t);re.brush(e,o.name)}}function le(e){l(e);if(e.touches){if(e.touches.length)return;if(G)clearTimeout(G);G=setTimeout((function(){G=null}),500)}else{u(e.view,X);ue.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null)}ie.attr("pointer-events","all");se.attr("cursor",x.overlay);if(j.selection)T=j.selection;if(B(T))j.selection=null,O.call(t);re.end(e,o.name)}function ce(e){switch(e.keyCode){case 16:{Y=w&&K;break}case 18:{if(o===p){if(w)H=J-U*w,M=q+U*w;if(K)Q=R-W*K,N=$+W*K;o=v;oe(e)}break}case 32:{if(o===p||o===v){if(w<0)H=J-U;else if(w>0)M=q-U;if(K<0)Q=R-W;else if(K>0)N=$-W;o=h;se.attr("cursor",x.selection);oe(e)}break}default:return}c(e)}function fe(e){switch(e.keyCode){case 16:{if(Y){ee=te=Y=false;oe(e)}break}case 18:{if(o===v){if(w<0)H=J;else if(w>0)M=q;if(K<0)Q=R;else if(K>0)N=$;o=p;oe(e)}break}case 32:{if(o===h){if(e.altKey){if(w)H=J-U*w,M=q+U*w;if(K)Q=R-W*K,N=$+W*K;o=v}else{if(w<0)H=J;else if(w>0)M=q;if(K<0)Q=R;else if(K>0)N=$;o=p}se.attr("cursor",x[a]);oe(e)}break}default:return}c(e)}}function H(e){Z(this,arguments).moved(e)}function J(e){Z(this,arguments).ended(e)}function L(){var e=this.__brush||{selection:null};e.extent=w(C.apply(this,arguments));e.dim=m;return e}N.extent=function(e){return arguments.length?(C=typeof e==="function"?e:a(w(e)),N):C};N.filter=function(e){return arguments.length?(I=typeof e==="function"?e:a(!!e),N):I};N.touchable=function(e){return arguments.length?(M=typeof e==="function"?e:a(!!e),N):M};N.handleSize=function(e){return arguments.length?(D=+e,N):D};N.keyModifiers=function(e){return arguments.length?(S=!!e,N):S};N.on=function(){var e=q.on.apply(q,arguments);return e===q?N:e};return N}export{I as a,C as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aD as e,aS as t}from"./app-
|
|
1
|
+
import{aD as e,aS as t}from"./app-71453429.js";import{GroupSettingMethods as r}from"./groupsetting-574ad150.js";import{b as i,s}from"./termsetting-636d2271.js";import"path";import"./FilterRxComp-fc769f34.js";import"./table-1dae543a.js";function o(t){return e(this,void 0,void 0,(function*(){n(t);return{showEditMenu:t.showGrpOpts,getPillName(e){return i(t,e)},getPillStatus(){var e;if(((e=t.usecase)===null||e===void 0?void 0:e.target)=="regression"){return t.q.mode=="binary"?{text:"binary"}:{text:"categorical"}}return t.validateGroupsetting()},validateQ(e){const r=e.term;const i=e.q;const s=`(${r.type}, mode='${i.mode}', type='${i.type}')`;if(i.type=="values"){if(!r.values)t.error=`no term.values defined ${s}`;if(i.mode=="binary"){if(Object.keys(r.values).length!=2)t.error=`term.values must have exactly two keys ${s}`;if(e.sampleCounts){for(const i in r.values){if(!e.sampleCounts.find((e=>e.key===i)))t.error=`there are no samples for the required binary value=${i} ${s}`}}}return}if(i.type=="predefined-groupset"||i.type=="custom-groupset"){const t=r.groupsetting;if(!t)throw`no term.groupsetting ${s}`;let o;if(i.groupsetting&&i.type=="predefined-groupset"){const e=i.groupsetting;const r=e.predefined_groupset_idx;if(t.lst&&!t.lst[r])throw`no groupsetting[predefined_groupset_idx=${r}] ${s}`;else if(t.lst)o=t.lst[r]}else if(i.groupsetting){const e=i.groupsetting;if(!e.customset)throw`no q.groupsetting.customset defined ${s}`;o=e.customset}if(!o.groups.every((e=>e.name!==undefined)))throw`every group in groupset must have 'name' defined ${s}`;if(i.mode=="binary"){if(o.groups.length!=2)throw`there must be exactly two groups ${s}`;if(e.sampleCounts){for(const t of o.groups){if(!e.sampleCounts.find((e=>e.label===t.name)))throw`there are no samples for the required binary value=${t.name} ${s}`}}}return}throw`unknown xxxx q.type='${i.type}' for categorical q.mode='${i.mode}'`},postMain(){var r,i;return e(this,void 0,void 0,(function*(){const e=((i=(r=t.opts).getBodyParams)===null||i===void 0?void 0:i.call(r))||{};const s=yield t.vocabApi.getCategories(t.term,t.filter,e);t.category2samplecount=s.lst;if(!t.term.values){t.q={}}}))}}}))}function n(t){t.validateGroupsetting=function(){if(!t.q.groupsetting||!t.q.groupsetting.inuse)return;const e=t.q.name||t.q.reuseId;if(e)return{text:e};if(t.q.groupsetting.predefined_groupset_idx&&Number.isInteger(t.q.groupsetting.predefined_groupset_idx)){if(!t.term.groupsetting)return{text:"term.groupsetting missing",bgcolor:"red"};if(!t.term.groupsetting.lst)return{text:"term.groupsetting.lst[] missing",bgcolor:"red"};const e=t.term.groupsetting.lst[t.q.groupsetting.predefined_groupset_idx];if(!e)return{text:"term.groupsetting.lst["+t.q.groupsetting.predefined_groupset_idx+"] missing",bgcolor:"red"};return{text:e.name}}if(t.q.groupsetting.customset){const e=t.q.groupsetting.customset.groups.length;return{text:"Divided into "+e+" groups"}}return{text:"Unknown setting for groupsetting",bgcolor:"red"}};t.showGrpOpts=function(){return e(this,void 0,void 0,(function*(){yield new r(Object.assign(t,{newMenu:true})).main()}))};t.getQlst=()=>{}}function u(e,r,i=null){if(!("type"in e.q))e.q.type="values";if(!e.q.groupsetting)e.q.groupsetting={};if(!e.term.groupsetting)e.term.groupsetting={};if(e.term.groupsetting.disabled){e.q.groupsetting.disabled=true;return}delete e.q.groupsetting.disabled;if(!("inuse"in e.q.groupsetting))e.q.groupsetting.inuse=false;if(e.q.groupsetting.inuse){const t=e.q.groupsetting;if(t.lst&&t.useIndex&&t.useIndex>=0&&t.lst[t.useIndex]){t.predefined_groupset_idx=t.useIndex}}if(i){i.isAtomic=true;t(e.q,i)}s(e.q,e.term)}export{u as fillTW,o as getHandler,n as setCategoryMethods};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aM as e,aD as t,ac as r,aS as a}from"./app-
|
|
1
|
+
import{aM as e,aD as t,ac as r,aS as a}from"./app-71453429.js";import{b as n,s as i}from"./termsetting-636d2271.js";import{m as o}from"./radiobutton-09bff425.js";import"path";import"./FilterRxComp-fc769f34.js";import"./table-1dae543a.js";const s=[1,2,3,4,5];function l(e){return{getPillName(t){return n(e,t)},getPillStatus(){return d(e)},showEditMenu(t){if(e.q.mode=="discrete"){return p(e,t)}if(e.q.mode=="binary"||e.q.mode=="cuminc"||e.q.mode=="cox"){return u(e,t)}console.error("invalid q.mode:",e.q.mode);throw"invalid q.mode"}}}function d(t){var r,a,n,i;const o=((r=t.q)===null||r===void 0?void 0:r.name)||((a=t.q)===null||a===void 0?void 0:a.reuseId);if(o)return{text:o};if(t.q.mode=="discrete"){if((n=t.q.breaks)===null||n===void 0?void 0:n.length){return{text:t.q.breaks.length+1+" groups"}}else{if(t.q.bar_by_grade){if(t.q.value_by_max_grade)return{text:"Max. Grade"};if(t.q.value_by_most_recent)return{text:"Most Recent Grade"};if(t.q.value_by_computable_grade)return{text:"Any Grade"};return{text:"Error: unknown grade setting",bgcolor:"red"}}if(t.q.bar_by_children)return{text:"Sub-condition"}}}if(t.q.mode=="binary"){return{text:((i=t.usecase)===null||i===void 0?void 0:i.target)=="regression"?t.data.q.groups.find((e=>e.name!=t.data.refGrp)).name:"binary"}}if(t.q.mode=="cuminc"||t.q.mode=="cox"){if(!t.q.breaks||t.q.breaks.length==0)e("Missing q.breaks");return{text:`Grades ${t.q.breaks[0]}-5`}}return{}}function p(a,n){var i;return t(this,void 0,void 0,(function*(){const t=n.append("div").style("margin","10px 0px 10px 5px").style("border-left","solid 1px #ededed");t.append("div").style("display","inline-block").style("margin","0px 0px 5px 5px").style("color","rgb(136, 136, 136)").text("Grade type:");const o=t.append("select").style("display","inline").style("margin","0px 10px").on("change",(()=>{const e=o.property("selectedIndex");a.q.bar_by_grade=e!=3;a.q.bar_by_children=e==3;a.q.value_by_max_grade=e==0;a.q.value_by_most_recent=e==1;a.q.value_by_computable_grade=e==2||e==3;a.dom.tip.hide();a.runCallback()}));o.append("option").text("Max grade per patient");o.append("option").text("Most recent grade per patient");o.append("option").text("Any grade per patient");if(a.term.subconditions){o.append("option").text("Sub-conditions")}o.property("selectedIndex",a.q.bar_by_children?3:a.q.value_by_computable_grade?2:a.q.value_by_most_recent?1:0);if(a.q.bar_by_children){return}const s=n.append("div").style("margin","20px 0px 10px 5px").style("border-left","solid 1px #ededed");s.append("div").text("Divide grades into groups (optional):").style("margin","0px 0px 10px 5px").style("color","rgb(136, 136, 136)");const l=s.append("div").style("display","flex").style("align-items","start").style("margin-left","10px").style("width","100%");const d=l.append("div").style("margin-right","20px");const p=l.append("div").style("display","grid").style("grid-template-columns","auto auto").style("column-gap","20px").style("align-items","center").style("margin-right","5px");d.append("div").style("margin-bottom","5px").style("color","rgb(136, 136, 136)").text("Cutoff grades");const u=d.append("textarea").style("width","100px").style("height","70px").on("keyup",m);d.append("div").style("font-size",".6em").style("margin-left","1px").style("color","#858585").html("Enter numeric values </br>seperated by ENTER");if((i=a.q.breaks)===null||i===void 0?void 0:i.length){u.property("value",a.q.breaks.join("\n"))}m();function m(){p.selectAll("*").remove();const t=b();if(!t.length){delete a.q.breaks;delete a.q.groups;return}if(!a.term.values)e(`Missing term values`);const r=Object.keys(a.term.values).filter((e=>{var t;return!((t=a.term.values)===null||t===void 0?void 0:t[e].uncomputable)})).map(Number).sort(((e,t)=>e-t));const n=c(r,t);p.append("div").style("margin-bottom","3px").style("color","rgb(136, 136, 136)").text("Range");p.append("div").style("margin-bottom","3px").style("color","rgb(136, 136, 136)").text("Label");for(const[e,t]of n.entries()){p.append("div").text(t.name.replace(/Grades* /,""));p.append("div").append("input").attr("type","text").property("value",t.name).style("margin","2px 0px").on("change",(function(){n[e].name=this.value}))}a.q.breaks=t;a.q.groups=n}function b(){const e=u.property("value").trim();if(!e)return[];const t=[...new Set(e.split("\n"))];const a=[];for(const e of t){const t=Number(e);if(!Number.isInteger(t)){r(n,"cutoff grade must be an integer value");return[]}if(t<1||t>5){r(n,`cutoff grade must be within grades 1-5`);return[]}a.push(t)}if(!a.length)return[];return a.sort(((e,t)=>e-t))}n.append("button").text("Apply").style("margin","10px").on("click",(e=>{e.target.disabled=true;e.target.innerHTML="Loading...";a.runCallback()}))}))}function u(t,r){var a;const n=r.append("div").style("margin","10px").style("display","grid").style("grid-template-columns","auto auto").style("gap","20px");n.append("div").text("Grade cutoff").style("opacity",.4);const i=n.append("div");const l=i.append("select").on("change",u);for(const e of s){l.append("option").text((a=t.term.values)===null||a===void 0?void 0:a[e].label)}l.property("selectedIndex",t.q.breaks[0]-1);n.append("div").text(t.q.mode=="binary"?"Group 1":"Censored").style("opacity",.4);const d=n.append("div").style("opacity",.4);n.append("div").text(t.q.mode=="binary"?"Group 2":"Event").style("opacity",.4);const p=n.append("div").style("opacity",.4);u();function u(){var e,r;const a=l.property("selectedIndex")+1;d.selectAll("*").remove();p.selectAll("*").remove();const n=Object.keys(t.term.values).map(Number).sort(((e,t)=>e-t));for(const i of n){if(i<a){d.append("div").text((e=t.term.values)===null||e===void 0?void 0:e[i].label)}else{p.append("div").text((r=t.term.values)===null||r===void 0?void 0:r[i].label)}}}const m=t.vocabApi.termdbConfig.timeUnit;let b;if(t.q.mode=="cox"){b=t.q.timeScale;n.append("div").text("Time axis").style("opacity",.4);const e=[{label:m.charAt(0).toUpperCase()+m.slice(1),value:"time"},{label:"Age",value:"age"}];if(t.q.timeScale=="age"){e[1].checked=true}else{e[0].checked=true}o({holder:n.append("div"),options:e,styles:{margin:""},callback:e=>b=e})}r.append("button").text("Apply").style("margin","10px").on("click",(r=>{if(!t.q.breaks||t.q.breaks.length==0)e("Missing q.breaks");const a=l.property("selectedIndex")+1;t.q.breaks[0]=a;if(t.q.mode=="binary"){const e=Object.keys(t.term.values).map(Number).sort(((e,t)=>e-t));t.q.groups=c(e,t.q.breaks);t.refGrp=t.q.groups[0].name}if(t.q.mode=="cox")t.q.timeScale=b;r.target.disabled=true;r.target.innerHTML="Loading...";t.runCallback()}))}function c(e,t){e.sort(((e,t)=>e-t));const r=[];let a={values:[]};let n;for(const i of e){if(t.includes(i)){n=i;const e=Math.max(...a.values);if(!r.length){if(a.values.length==1){if(a.values[0]!==0)throw"unexpected group value";a.name="Grade 0"}else{if(a.values.length==2&&a.values.includes(-1)&&a.values.includes(0)){a.name="Not tested/Grade 0"}else{a.name=a.values.includes(-1)?`Not tested/Grade 0 - Grade ${e}`:`Grades 0-${e}`}}}else{a.name=a.values.length==1?`Grade ${a.values[0]}`:`${a.name}-${e}`}r.push(a);a={name:`Grade ${n}`,values:[i]}}else{a.values.push(i)}}a.name=`Grades ${n}-5`;r.push(a);return r}function m(e,t,r){var n,o;i(e.q,e.term);if(r){a(e.q,r)}if(!e.q.mode)e.q.mode="discrete";if(e.q.value_by_max_grade||e.q.value_by_most_recent||e.q.value_by_computable_grade);else{e.q.value_by_max_grade=true}if(e.q.bar_by_grade||e.q.bar_by_children);else{e.q.bar_by_grade=true}if(e.q.mode=="binary"||e.q.mode=="cox"||e.q.mode=="cuminc"){const t=e.q.mode=="binary"?1:3;if(!((n=e.q.breaks)===null||n===void 0?void 0:n.length))e.q.breaks=[t];if(e.q.breaks.length!=1||![1,2,3,4,5].includes(e.q.breaks[0]))throw"invalid tw.q.breaks"}if((o=e.q.breaks)===null||o===void 0?void 0:o.length){if(!e.term.values)throw"missing term.values";if(e.q.mode=="discrete"||e.q.mode=="binary"){const t=Object.keys(e.term.values).filter((t=>{var r;return e.q.mode=="discrete"?!((r=e.term.values)===null||r===void 0?void 0:r[t].uncomputable):t})).map(Number).sort(((e,t)=>e-t));e.q.groups=c(t,e.q.breaks)}}if(e.q.mode=="cox"){if(!e.q.timeScale)e.q.timeScale="time";if(!["age","time"].includes(e.q.timeScale))throw"invalid q.timeScale"}}export{m as fillTW,l as getHandler};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{az as t,aQ as i}from"./app-
|
|
1
|
+
import{az as t,aQ as i}from"./app-71453429.js";import{topBarInit as s}from"./controls.btns-ad7b28a2.js";import{configUiInit as o}from"./controls.config-6cf816fb.js";import"./controls.overlay-3a55c2ec.js";import"./termsetting-636d2271.js";import"path";import"./FilterRxComp-fc769f34.js";import"./table-1dae543a.js";import"./controls.term1-59f4cd60.js";import"./controls.divide-3c0d52d7.js";const e="#fdfaf4";class n{constructor(t){this.opts=t;this.type="plotControls";this.customEvents=["downloadClick","infoClick","helpClick"];this.isOpen=false;r(this);a(this)}async init(){try{this.setDom();this.features=await i({topbar:s({app:this.app,id:this.id,holder:this.dom.topbar,callback:this.toggleVisibility,isOpen:()=>this.isOpen,downloadHandler:()=>this.bus.emit("downloadClick"),infoHandler:t=>this.app.dispatch({type:"plot_edit",id:this.opts.id,config:{settings:{termInfo:{isVisible:t}}}}),helpHandler:()=>this.bus.emit("helpClick")}),config:o({app:this.app,id:this.id,holder:this.dom.config_div,isOpen:()=>this.isOpen,tip:this.app.tip,inputs:this.opts.inputs})})}catch(t){throw t}}setDom(){const t=this.opts.holder.append("div");const i=this.opts.holder.append("div");this.dom={holder:this.opts.holder.style("vertical-align","top").style("transition","0.5s"),topbar:t,config_div:i}}getState(t){const i=t.plots.find((t=>t.id===this.id));if(!i){throw`No plot with id='${this.id}' found.`}return{genome:t.genome,dslabel:t.dslabel,activeCohort:t.activeCohort,termfilter:t.termfilter,config:i}}main(t=undefined){if(!this.state)return;if(typeof t=="boolean")this.isOpen=t;else{const t=this.state.config.settings.controls;if(t&&"isOpen"in t)this.isOpen=t.isOpen}this.render();const i=this.app.getState();for(const t in this.features){this.features[t].update({state:this.state,appState:i})}}}const p=t(n);function a(t){t.render=function(){t.dom.holder.style("background",t.isOpen?e:"")}}function r(t){t.toggleVisibility=()=>{const i=t.state.config.settings.controls;if(i&&"isOpen"in i){t.app.dispatch({type:"plot_edit",id:t.id,config:{settings:{controls:{isOpen:!i.isOpen}}},_scope_:"none"})}else{t.main(!t.isOpen)}}}export{p as controlsInit};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{az as t,aQ as e,aV as n}from"./app-
|
|
1
|
+
import{az as t,aQ as e,aV as n}from"./app-71453429.js";class o{constructor(t){this.type="controlsTopBar"}async init(){const t=this.opts;this.dom={holder:t.holder,burger_div:t.holder.append("div"),button_bar:t.holder.append("div")};const n=this.opts.debug;this.features=await e({burgerbtn:i({holder:this.dom.burger_div,callback:t.callback,debug:n}),downloadbtn:a({id:t.id,holder:this.dom.holder.insert("div"),callback:t.downloadHandler,debug:n}),helpbtn:s({id:t.id,holder:this.dom.holder.insert("div"),callback:t.helpHandler,debug:n})})}getState(t){return{config:t.plots.find((t=>t.id===this.id)),isOpen:this.opts.isOpen()}}main(){const t=this.state.config;const e=this.opts.isOpen();this.dom.button_bar.style("display",e?"inline-block":"block").style("float",e?"right":"none");for(const n in this.features){this.features[n].main(e,t)}}}const l=t(o);function i(t){const e={dom:{btn:t.holder.style("margin","10px").style("margin-left","20px").style("font-family","verdana").style("font-size","28px").style("cursor","pointer").style("transition","0.5s").html("≡").on("click",t.callback).attr("title","Settings")}};const n={main(t){e.dom.btn.style("display",t?"inline-block":"block")}};if(t.debug)n.Inner=e;return Object.freeze(n)}function s(t){const e=t.holder.style("margin","20px").attr("title","Documentation");n["help"](e,{handler:t.callback});const o={plotTypes:["profilePolar","profileBarchart","profileRadar","profileRadarFacility"],dom:{btn:e}};const l={main(t,e){if(o.plotTypes.includes(e.chartType))o.dom.btn.style("display",t?"inline-block":"block");else o.dom.btn.style("display","none")}};if(t.debug)l.Inner=o;return Object.freeze(l)}function a(t){const e=t.holder.style("margin-left","20px").attr("title","Download plot image");n["download"](e,{handler:t.callback});const o={plotTypes:["summary","boxplot","scatter"],dom:{btn:e}};const l={main(t,e){o.dom.btn.style("display",t?"inline-block":"block")}};if(t.debug)l.Inner=o;return Object.freeze(l)}export{l as topBarInit};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{q as t,az as e,aQ as s,x as i}from"./app-f91922b4.js";import{overlayInit as n}from"./controls.overlay-3ac8773d.js";import{term1uiInit as l}from"./controls.term1-008f4be4.js";import{divideInit as o}from"./controls.divide-d8ac5a9b.js";import{t as a}from"./termsetting-9a7511e6.js";import"./FilterRxComp-0e75dd8d.js";import"./table-d6c411fd.js";import"path";function p(e){const s=e.holder.selectAll("div").data(e.options,(t=>t.value)).style("display","block");s.exit().each((function(e){t(this).on("input",null).on("click",null).remove()}));const i=s.enter().append("div").attr("title",(t=>t.title)).style("display","block").style("padding",e.styles&&"padding"in e.styles?e.styles.padding:"5px").append("label");if(e.styles){for(const t in e.styles){i.style(t,e.styles[t])}}const n=i.append("input").attr("type","radio").attr("name",e.name).attr("value",(t=>t.value)).style("vertical-align","top").style("margin-top","2px").style("margin-right",0).property("checked",e.isCheckedFxn).on("mouseup",e.listeners.input).on("keyup",e.listeners.input);i.append("span").style("vertical-align","top").html((t=>" "+t.label)).on("mouseup",e.listeners.input).on("keyup",e.listeners.input);function l(t){return t.value==o.currValue}const o={main(t){o.currValue=t;n.property("checked",l)},dom:{divs:e.holder.selectAll("div"),labels:e.holder.selectAll("label").select("span"),inputs:i.selectAll("input")}};return o}let r=0;class d{constructor(t){this.type="controlsConfig";this.app=t.app;this.id=t.id;this.instanceNum=r++;u(this)}async init(){try{const t=this.app.dispatch;const e=this.setDom();const i=this.opts.debug;this.inputs={};const n={};for(const e of this.opts.inputs){if(typeof e=="object"){const s=e;if(s.type in k){this.inputs[s.settingsKey||s.configKey]=await k[s.type](Object.assign({},s,{holder:this.dom.table.append("tr"),dispatch:t,id:this.id,instanceNum:this.instanceNum,debug:this.opts.debug,parent:this}))}else if(s.type in K){n[s.type]=await K[s.type]({app:this.app,holder:this.dom.table.append("tr"),id:this.id,usecase:s.usecase,defaultQ4fillTW:s.defaultQ4fillTW,numericEditMenuVersion:s.numericEditMenuVersion,debug:this.opts.debug})}}else if(e in k){this.inputs[e]=await k[e]({holder:this.dom.table.append("tr"),dispatch:t,id:this.id,instanceNum:this.instanceNum,debug:this.opts.debug,parent:this})}else if(e in K){n[e]=await K[e]({app:this.app,holder:this.dom.table.append("tr"),id:this.id,debug:this.opts.debug})}else{throw`unsupported opts.inputs[] entry of '${e}' for controlsInit()`}}this.components=await s(n)}catch(t){throw t}}setDom(){this.dom={holder:this.opts.holder.style("max-width","50px").style("height",0).style("vertical-align","top").style("transition","0.2s ease-in-out").style("overflow","hidden").style("visibility","hidden").style("transition","0.2s")};this.dom.table=this.dom.holder.append("table").attr("cellpadding",0).attr("cellspacing",0);return this.dom.table}getState(t){const e=t.plots.find((t=>t.id===this.id));return{genome:t.genome,dslabel:t.dslabel,activeCohort:t.activeCohort,termfilter:t.termfilter,config:e,isOpen:this.opts.isOpen()}}main(){const t=this.state.config;const e=this.opts.isOpen();this.render(e);for(const e in this.inputs){const s=this.inputs[e];s.main(s.usestate?this.state:t)}}render(t){this.dom.holder.style("visibility",t?"visible":"hidden").style("max-width",t?"660px":"50px").style("height",t?"":0);this.dom.table.selectAll("tr").filter(this.rowIsVisible).selectAll("td").style("border-top","2px solid #FFECDD").style("padding","5px 10px")}}const c=e(d);function u(t){t.rowIsVisible=function(){return this.style.display!="none"}}function y(t){const e={dom:{row:t.holder.style("display","table-row"),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label").attr("title",t.title),inputs:{}},values:{}};if(!t.inputs)t.inputs=[{min:t.min,max:t.max,step:t.step,width:t.width,settingsKey:t.settingsKey}];const s=t.debounceInterval||("debounceInterval"in t.parent?.app.opts?t.parent?.app.opts.debounceInterval:100);for(const n of t.inputs){let l;function o(t=false){if(l)clearTimeout(l);if(!t)l=setTimeout(a,s)}function a(){let s=Number(e.dom.inputs[n.settingsKey].property("value"));if(n.max&&n.max<s)s=n.max;if(n.min&&n.min>s)s=n.min;if(t.callback)t.callback(s);else{t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[n.settingsKey]:t.processInput?t.processInput(s):s}}}})}}const p=t.holder.append("td").style("text-align",t.align||"").attr("colspan",t.colspan||"");if(!n.settingsKey){p.style("color","#999").style("cursor","default").html(n.label)}else{e.dom.inputs[n.settingsKey]=p.append("input").attr("type","number").attr("min","min"in n?n.min:null).attr("max","max"in n?n.max:null).attr("step",n.step||t.step||null).style("width",(n.width||t.width||100)+"px").on("keyup",(s=>{const i=e.values[t.settingsKey]!==Number(e.dom.inputs[n.settingsKey].property("value"));o(s.key!=="Enter"&&i)}))}}const i={main(s){const i=t.getDisplayStyle?.(s)||"table-row";t.holder.style("display",i);for(const i in e.dom.inputs){const n=s.settings[t.chartType][i];e.dom.inputs[i].property("value",n);e.values[i]=n}}};if(t.debug)i.Inner=e;return Object.freeze(i)}function h(t){const e={dom:{row:t.holder.style("display","table-row"),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label").attr("title",t.title),inputTd:t.holder.append("td")}};const s={};e.dom.input=e.dom.inputTd.append("input").attr("type","text").style("width",(t.width||100)+"px").on("change",(()=>{const i=e.dom.input.property("value");const n=Number(i);if(isNaN(n))throw`non-numeric value for ${t.settingsKey}='${i}'`;s[n]=i;t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[t.settingsKey]:n}}}})}));const i={main(i){const n=i.settings[t.chartType][t.settingsKey];const l=typeof n=="number"?n:Number(n);if(typeof n!="number")s[l]=n;e.dom.input.property("value",n in s?s[l]:n)}};if(t.debug)i.Inner=e;return Object.freeze(i)}function m(t){const e={dom:{row:t.holder.style("display","table-row"),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label").attr("title",t.title),inputTd:t.holder.append("td")}};e.dom.input=e.dom.inputTd.append("input").attr("type","text").attr("placeholder",t.placeholder).style("width",(t.width||100)+"px").on("change",(()=>{const s=e.dom.input.property("value");t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[t.settingsKey]:t.processInput?t.processInput(s):s}}}})}));const s={main(s){e.dom.input.property("value",s.settings[t.chartType][t.settingsKey])}};if(t.debug)s.Inner=e;return Object.freeze(s)}function b(t){const e={dom:{row:t.holder.style("display","table-row").attr("title",t.title),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label"),inputTd:t.holder.append("td").attr("colspan",t.colspan||"").style("text-align",t.align||"")}};e.dom.input=e.dom.inputTd.append("input").attr("type","color").on("change",(()=>{const s=e.dom.input.property("value");t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[t.settingsKey]:t.processInput?t.processInput(s):s}}}})}));const s={main(s){const n=s.settings[t.chartType][t.settingsKey];e.dom.input.property("value",i(n).formatHex());t.holder.style("display",t.getDisplayStyle?.(s)||"table-row")}};if(t.debug)s.Inner=e;return Object.freeze(s)}function g(t){const e={dom:{row:t.holder,labelTdb:t.holder.append("td").html(t.label).attr("title",t.title).attr("class","sja-termdb-config-row-label")},inputs:{}};const s=t.inputs?t.inputs:[{settingsKey:t.settingsKey,options:t.options}];if(!("instanceNum"in t))t.instanceNum=`sjpp-${Math.random().toString().slice(-7)}-${Date.now()}`;const i=t.styles||{};for(const n of s){e.inputs[n.settingsKey]=p({name:`pp-control-${n.settingsKey}-${t.instanceNum}`,holder:t.holder.append("td").attr("colspan",t.colspan||"").style("text-align",t.align||""),options:n.options,getDisplayStyle:()=>"block",styles:i,listeners:{input(e,s){if(e.key&&e.key!=="Enter")return;if(t.callback){t.callback(s.value)}else{t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[n.settingsKey]:s.value}}}})}}}})}const n={main(s){const i=t.getDisplayStyle?.(s)||"table-row";e.dom.row.style("display",i);if(i=="none")return;for(const i in e.inputs){const n=e.inputs[i];n.main(s.settings[t.chartType][i]);n.dom.divs.style("display",(e=>e.getDisplayStyle?e.getDisplayStyle(s):t.labelDisplay||"inline-block"));if(t.setRadioLabel)n.dom.labels.html(t.setRadioLabel)}}};if(t.debug)n.Inner=e;return Object.freeze(n)}function f(t){const e={dom:{row:t.holder.style("display","table-row"),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label"),inputTd:t.holder.append("td")}};e.dom.select=e.dom.inputTd.append("select").property("disabled",t.disabled).on("change",(()=>{const s=e.dom.select.property("value");if(t.callback)t.callback(s);else t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[t.settingsKey]:s}}}})}));e.dom.select.style("max-width","300px");e.dom.select.selectAll("option").data(t.options).enter().append("option").property("disabled",(t=>t.disabled)).attr("value",(t=>t.value)).attr("selected",(t=>t.selected)).html((t=>" "+t.label+" "));const s={main(s){t.holder.style("display",t.getDisplayStyle?.(s)||"table-row");e.dom.select.property("value",s.settings[t.chartType][t.settingsKey])}};if(t.debug)s.Inner=e;return Object.freeze(s)}function w(t){const e={dom:{row:t.holder.style("display","table-row").attr("title",t.title),labelTdb:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label"),inputTd:t.holder.append("td").attr("colspan",t.colspan||"").style("text-align",t.align||"")}};const s=e.dom.inputTd.append("label");e.dom.input=s.append("input").attr("type","checkbox").on("change",(()=>{const s=e.dom.input.property("checked");if(t.callback)t.callback(s);t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[t.settingsKey]:t.processInput?t.processInput(s):s}}}})}));s.append("span").html(" "+t.boxLabel);const i={main(s){const i=s.settings[t.chartType][t.settingsKey];e.dom.input.property("checked",t.processInput?t.processInput(i):i);t.holder.style("display",t.getDisplayStyle?.(s)||"table-row")}};if(t.debug)i.Inner=e;return Object.freeze(i)}function v(e){const s={dom:{row:e.holder.style("display","table-row").attr("title",e.title),labelTdb:e.holder.append("td").html(e.label).attr("class","sja-termdb-config-row-label"),inputTd:e.holder.append("td").attr("colspan",e.colspan||"").style("padding","5px").style("text-align",e.align||"")}};s.dom.labels=s.dom.inputTd.selectAll("label").data(e.options).enter().append("label").style("margin-right","8px").each((function(i){const n=t(this);s.dom.input=n.append("input").attr("type","checkbox").attr("value",(t=>t.value)).on("change",(()=>{const t=[];s.dom.labels.selectAll("input").each((function(e){if(this.checked)t.push(e.value)}));e.dispatch({type:"plot_edit",id:e.id,config:{settings:{[e.chartType]:{[e.settingsKey]:t}}}})}));n.append("span").html(i.label)}));s.dom.inputs=s.dom.labels.selectAll("input");const i={main(t){const i=t.settings[e.chartType][e.settingsKey];s.dom.inputs.property("checked",(t=>i.includes(t.value)));s.dom.labels.style("display",(e=>e.getDisplayStyle?.(t)||""));e.holder.style("display",e.getDisplayStyle?.(t)||"table-row")}};if(e.debug)i.Inner=s;return Object.freeze(i)}function T(t){const e={dom:{row:t.holder.style("display","table-row"),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label").attr("title",t.title).style("vertical-align","top"),inputTd:t.holder.append("td")}};e.api=t.init(e);if(t.debug)e.api.Inner=e;return Object.freeze(e.api)}async function x(t){const e={dom:{row:t.holder.style("display","table-row"),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label").attr("title",t.title),inputTd:t.holder.append("td")}};const s=await a({menuOptions:t.menuOptions||"*",numericEditMenuVersion:t.numericEditMenuVersion,vocabApi:t.vocabApi,vocab:t.state?.vocab,activeCohort:t.state?.activeCohort,holder:e.dom.inputTd.append("div"),debug:t.debug,usecase:t.usecase,getBodyParams:t.getBodyParams,callback:e=>{if(e&&!e.q)throw"data.q{} missing from pill callback";if(t.processInput)t.processInput(e);s.main(e?e:{term:null,q:null});const i={[t.configKey]:e};if(t.processConfig)t.processConfig(i);t.dispatch({type:"plot_edit",id:t.id,config:i})}});const i={usestate:true,main(e){const i=t.getDisplayStyle?.(e)||"table-row";t.holder.style("display",i);const{config:n,activeCohort:l,termfilter:o}=JSON.parse(JSON.stringify(e));const a=e[t.configKey]||n&&n[t.configKey]||{};const p={term:a.term||null,q:a.q,activeCohort:l,filter:o&&o.filter};if("$id"in a)p.$id=a.$id;s.main(p)}};if(t.debug)i.Inner=e;return Object.freeze(i)}const k={number:y,math:h,text:m,color:b,radio:g,dropdown:f,checkbox:w,multiCheckbox:v,custom:T,term:x};const K={term1:l,overlay:n,divideBy:o};export{c as configUiInit,k as initByInput};
|
|
1
|
+
import{q as t,az as e,aQ as s,x as i}from"./app-71453429.js";import{overlayInit as n}from"./controls.overlay-3a55c2ec.js";import{term1uiInit as l}from"./controls.term1-59f4cd60.js";import{divideInit as o}from"./controls.divide-3c0d52d7.js";import{t as a}from"./termsetting-636d2271.js";import"./FilterRxComp-fc769f34.js";import"./table-1dae543a.js";import"path";function p(e){const s=e.holder.selectAll("div").data(e.options,(t=>t.value)).style("display","block");s.exit().each((function(e){t(this).on("input",null).on("click",null).remove()}));const i=s.enter().append("div").attr("title",(t=>t.title)).style("display","block").style("padding",e.styles&&"padding"in e.styles?e.styles.padding:"5px").append("label");if(e.styles){for(const t in e.styles){i.style(t,e.styles[t])}}const n=i.append("input").attr("type","radio").attr("name",e.name).attr("value",(t=>t.value)).style("vertical-align","top").style("margin-top","2px").style("margin-right",0).property("checked",e.isCheckedFxn).on("mouseup",e.listeners.input).on("keyup",e.listeners.input);i.append("span").style("vertical-align","top").html((t=>" "+t.label)).on("mouseup",e.listeners.input).on("keyup",e.listeners.input);function l(t){return t.value==o.currValue}const o={main(t){o.currValue=t;n.property("checked",l)},dom:{divs:e.holder.selectAll("div"),labels:e.holder.selectAll("label").select("span"),inputs:i.selectAll("input")}};return o}let r=0;class d{constructor(t){this.type="controlsConfig";this.app=t.app;this.id=t.id;this.instanceNum=r++;u(this)}async init(){try{const t=this.app.dispatch;const e=this.setDom();const i=this.opts.debug;this.inputs={};const n={};for(const e of this.opts.inputs){if(typeof e=="object"){const s=e;if(s.type in k){this.inputs[s.settingsKey||s.configKey]=await k[s.type](Object.assign({},s,{holder:this.dom.table.append("tr"),dispatch:t,id:this.id,instanceNum:this.instanceNum,debug:this.opts.debug,parent:this}))}else if(s.type in K){n[s.type]=await K[s.type]({app:this.app,holder:this.dom.table.append("tr"),id:this.id,usecase:s.usecase,defaultQ4fillTW:s.defaultQ4fillTW,numericEditMenuVersion:s.numericEditMenuVersion,debug:this.opts.debug})}}else if(e in k){this.inputs[e]=await k[e]({holder:this.dom.table.append("tr"),dispatch:t,id:this.id,instanceNum:this.instanceNum,debug:this.opts.debug,parent:this})}else if(e in K){n[e]=await K[e]({app:this.app,holder:this.dom.table.append("tr"),id:this.id,debug:this.opts.debug})}else{throw`unsupported opts.inputs[] entry of '${e}' for controlsInit()`}}this.components=await s(n)}catch(t){throw t}}setDom(){this.dom={holder:this.opts.holder.style("max-width","50px").style("height",0).style("vertical-align","top").style("transition","0.2s ease-in-out").style("overflow","hidden").style("visibility","hidden").style("transition","0.2s")};this.dom.table=this.dom.holder.append("table").attr("cellpadding",0).attr("cellspacing",0);return this.dom.table}getState(t){const e=t.plots.find((t=>t.id===this.id));return{genome:t.genome,dslabel:t.dslabel,activeCohort:t.activeCohort,termfilter:t.termfilter,config:e,isOpen:this.opts.isOpen()}}main(){const t=this.state.config;const e=this.opts.isOpen();this.render(e);for(const e in this.inputs){const s=this.inputs[e];s.main(s.usestate?this.state:t)}}render(t){this.dom.holder.style("visibility",t?"visible":"hidden").style("max-width",t?"660px":"50px").style("height",t?"":0);this.dom.table.selectAll("tr").filter(this.rowIsVisible).selectAll("td").style("border-top","2px solid #FFECDD").style("padding","5px 10px")}}const c=e(d);function u(t){t.rowIsVisible=function(){return this.style.display!="none"}}function y(t){const e={dom:{row:t.holder.style("display","table-row"),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label").attr("title",t.title),inputs:{}},values:{}};if(!t.inputs)t.inputs=[{min:t.min,max:t.max,step:t.step,width:t.width,settingsKey:t.settingsKey}];const s=t.debounceInterval||("debounceInterval"in t.parent?.app.opts?t.parent?.app.opts.debounceInterval:100);for(const n of t.inputs){let l;function o(t=false){if(l)clearTimeout(l);if(!t)l=setTimeout(a,s)}function a(){let s=Number(e.dom.inputs[n.settingsKey].property("value"));if(n.max&&n.max<s)s=n.max;if(n.min&&n.min>s)s=n.min;if(t.callback)t.callback(s);else{t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[n.settingsKey]:t.processInput?t.processInput(s):s}}}})}}const p=t.holder.append("td").style("text-align",t.align||"").attr("colspan",t.colspan||"");if(!n.settingsKey){p.style("color","#999").style("cursor","default").html(n.label)}else{e.dom.inputs[n.settingsKey]=p.append("input").attr("type","number").attr("min","min"in n?n.min:null).attr("max","max"in n?n.max:null).attr("step",n.step||t.step||null).style("width",(n.width||t.width||100)+"px").on("keyup",(s=>{const i=e.values[t.settingsKey]!==Number(e.dom.inputs[n.settingsKey].property("value"));o(s.key!=="Enter"&&i)}))}}const i={main(s){const i=t.getDisplayStyle?.(s)||"table-row";t.holder.style("display",i);for(const i in e.dom.inputs){const n=s.settings[t.chartType][i];e.dom.inputs[i].property("value",n);e.values[i]=n}}};if(t.debug)i.Inner=e;return Object.freeze(i)}function h(t){const e={dom:{row:t.holder.style("display","table-row"),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label").attr("title",t.title),inputTd:t.holder.append("td")}};const s={};e.dom.input=e.dom.inputTd.append("input").attr("type","text").style("width",(t.width||100)+"px").on("change",(()=>{const i=e.dom.input.property("value");const n=Number(i);if(isNaN(n))throw`non-numeric value for ${t.settingsKey}='${i}'`;s[n]=i;t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[t.settingsKey]:n}}}})}));const i={main(i){const n=i.settings[t.chartType][t.settingsKey];const l=typeof n=="number"?n:Number(n);if(typeof n!="number")s[l]=n;e.dom.input.property("value",n in s?s[l]:n)}};if(t.debug)i.Inner=e;return Object.freeze(i)}function m(t){const e={dom:{row:t.holder.style("display","table-row"),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label").attr("title",t.title),inputTd:t.holder.append("td")}};e.dom.input=e.dom.inputTd.append("input").attr("type","text").attr("placeholder",t.placeholder).style("width",(t.width||100)+"px").on("change",(()=>{const s=e.dom.input.property("value");t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[t.settingsKey]:t.processInput?t.processInput(s):s}}}})}));const s={main(s){e.dom.input.property("value",s.settings[t.chartType][t.settingsKey])}};if(t.debug)s.Inner=e;return Object.freeze(s)}function b(t){const e={dom:{row:t.holder.style("display","table-row").attr("title",t.title),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label"),inputTd:t.holder.append("td").attr("colspan",t.colspan||"").style("text-align",t.align||"")}};e.dom.input=e.dom.inputTd.append("input").attr("type","color").on("change",(()=>{const s=e.dom.input.property("value");t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[t.settingsKey]:t.processInput?t.processInput(s):s}}}})}));const s={main(s){const n=s.settings[t.chartType][t.settingsKey];e.dom.input.property("value",i(n).formatHex());t.holder.style("display",t.getDisplayStyle?.(s)||"table-row")}};if(t.debug)s.Inner=e;return Object.freeze(s)}function g(t){const e={dom:{row:t.holder,labelTdb:t.holder.append("td").html(t.label).attr("title",t.title).attr("class","sja-termdb-config-row-label")},inputs:{}};const s=t.inputs?t.inputs:[{settingsKey:t.settingsKey,options:t.options}];if(!("instanceNum"in t))t.instanceNum=`sjpp-${Math.random().toString().slice(-7)}-${Date.now()}`;const i=t.styles||{};for(const n of s){e.inputs[n.settingsKey]=p({name:`pp-control-${n.settingsKey}-${t.instanceNum}`,holder:t.holder.append("td").attr("colspan",t.colspan||"").style("text-align",t.align||""),options:n.options,getDisplayStyle:()=>"block",styles:i,listeners:{input(e,s){if(e.key&&e.key!=="Enter")return;if(t.callback){t.callback(s.value)}else{t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[n.settingsKey]:s.value}}}})}}}})}const n={main(s){const i=t.getDisplayStyle?.(s)||"table-row";e.dom.row.style("display",i);if(i=="none")return;for(const i in e.inputs){const n=e.inputs[i];n.main(s.settings[t.chartType][i]);n.dom.divs.style("display",(e=>e.getDisplayStyle?e.getDisplayStyle(s):t.labelDisplay||"inline-block"));if(t.setRadioLabel)n.dom.labels.html(t.setRadioLabel)}}};if(t.debug)n.Inner=e;return Object.freeze(n)}function f(t){const e={dom:{row:t.holder.style("display","table-row"),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label"),inputTd:t.holder.append("td")}};e.dom.select=e.dom.inputTd.append("select").property("disabled",t.disabled).on("change",(()=>{const s=e.dom.select.property("value");if(t.callback)t.callback(s);else t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[t.settingsKey]:s}}}})}));e.dom.select.style("max-width","300px");e.dom.select.selectAll("option").data(t.options).enter().append("option").property("disabled",(t=>t.disabled)).attr("value",(t=>t.value)).attr("selected",(t=>t.selected)).html((t=>" "+t.label+" "));const s={main(s){t.holder.style("display",t.getDisplayStyle?.(s)||"table-row");e.dom.select.property("value",s.settings[t.chartType][t.settingsKey])}};if(t.debug)s.Inner=e;return Object.freeze(s)}function w(t){const e={dom:{row:t.holder.style("display","table-row").attr("title",t.title),labelTdb:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label"),inputTd:t.holder.append("td").attr("colspan",t.colspan||"").style("text-align",t.align||"")}};const s=e.dom.inputTd.append("label");e.dom.input=s.append("input").attr("type","checkbox").on("change",(()=>{const s=e.dom.input.property("checked");if(t.callback)t.callback(s);t.dispatch({type:"plot_edit",id:t.id,config:{settings:{[t.chartType]:{[t.settingsKey]:t.processInput?t.processInput(s):s}}}})}));s.append("span").html(" "+t.boxLabel);const i={main(s){const i=s.settings[t.chartType][t.settingsKey];e.dom.input.property("checked",t.processInput?t.processInput(i):i);t.holder.style("display",t.getDisplayStyle?.(s)||"table-row")}};if(t.debug)i.Inner=e;return Object.freeze(i)}function v(e){const s={dom:{row:e.holder.style("display","table-row").attr("title",e.title),labelTdb:e.holder.append("td").html(e.label).attr("class","sja-termdb-config-row-label"),inputTd:e.holder.append("td").attr("colspan",e.colspan||"").style("padding","5px").style("text-align",e.align||"")}};s.dom.labels=s.dom.inputTd.selectAll("label").data(e.options).enter().append("label").style("margin-right","8px").each((function(i){const n=t(this);s.dom.input=n.append("input").attr("type","checkbox").attr("value",(t=>t.value)).on("change",(()=>{const t=[];s.dom.labels.selectAll("input").each((function(e){if(this.checked)t.push(e.value)}));e.dispatch({type:"plot_edit",id:e.id,config:{settings:{[e.chartType]:{[e.settingsKey]:t}}}})}));n.append("span").html(i.label)}));s.dom.inputs=s.dom.labels.selectAll("input");const i={main(t){const i=t.settings[e.chartType][e.settingsKey];s.dom.inputs.property("checked",(t=>i.includes(t.value)));s.dom.labels.style("display",(e=>e.getDisplayStyle?.(t)||""));e.holder.style("display",e.getDisplayStyle?.(t)||"table-row")}};if(e.debug)i.Inner=s;return Object.freeze(i)}function T(t){const e={dom:{row:t.holder.style("display","table-row"),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label").attr("title",t.title).style("vertical-align","top"),inputTd:t.holder.append("td")}};e.api=t.init(e);if(t.debug)e.api.Inner=e;return Object.freeze(e.api)}async function x(t){const e={dom:{row:t.holder.style("display","table-row"),labelTd:t.holder.append("td").html(t.label).attr("class","sja-termdb-config-row-label").attr("title",t.title),inputTd:t.holder.append("td")}};const s=await a({menuOptions:t.menuOptions||"*",numericEditMenuVersion:t.numericEditMenuVersion,vocabApi:t.vocabApi,vocab:t.state?.vocab,activeCohort:t.state?.activeCohort,holder:e.dom.inputTd.append("div"),debug:t.debug,usecase:t.usecase,getBodyParams:t.getBodyParams,callback:e=>{if(e&&!e.q)throw"data.q{} missing from pill callback";if(t.processInput)t.processInput(e);s.main(e?e:{term:null,q:null});const i={[t.configKey]:e};if(t.processConfig)t.processConfig(i);t.dispatch({type:"plot_edit",id:t.id,config:i})}});const i={usestate:true,main(e){const i=t.getDisplayStyle?.(e)||"table-row";t.holder.style("display",i);const{config:n,activeCohort:l,termfilter:o}=JSON.parse(JSON.stringify(e));const a=e[t.configKey]||n&&n[t.configKey]||{};const p={term:a.term||null,q:a.q,activeCohort:l,filter:o&&o.filter};if("$id"in a)p.$id=a.$id;s.main(p)}};if(t.debug)i.Inner=e;return Object.freeze(i)}const k={number:y,math:h,text:m,color:b,radio:g,dropdown:f,checkbox:w,multiCheckbox:v,custom:T,term:x};const K={term1:l,overlay:n,divideBy:o};export{c as configUiInit,k as initByInput};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{az as t,M as i}from"./app-
|
|
1
|
+
import{az as t,M as i}from"./app-71453429.js";import{t as e}from"./termsetting-636d2271.js";import{T as s,g as r}from"./FilterRxComp-fc769f34.js";import"path";import"./table-1dae543a.js";class o{constructor(t){this.type="divideByInput";this.dom={tr:t.holder};a(this);this.initUI();this.usedTerms=[]}validateOpts(t){if(!("id"in t))throw"opts.id missing";if(!t.holder)throw"opts.holder missing"}initPill(){if(!this.opts.defaultQ4fillTW)this.opts.defaultQ4fillTW={};this.opts.defaultQ4fillTW[s.GENE_VARIANT]={groupsetting:{inuse:true}};this.opts.defaultQ4fillTW[s.GENE_EXPRESSION]={mode:"discrete"};this.pill=e({vocabApi:this.app.vocabApi,vocab:this.state.vocab,usecase:this.opts.usecase,activeCohort:this.state.activeCohort,holder:this.dom.pilldiv,use_bins_less:true,debug:this.opts.debug,menuOptions:"all",defaultQ4fillTW:this.opts.defaultQ4fillTW,getBodyParams:this.opts.getBodyParams,callback:t=>{this.app.dispatch({type:"plot_edit",id:this.opts.id,config:{term0:t}})}})}getState(t){const i={vocab:t.vocab,activeCohort:t.activeCohort,termfilter:t.termfilter,config:t.plots.find((t=>t.id===this.id))};if(t.termfilter&&t.termfilter.filter){i.filter=r(t.termfilter.filter)}return i}main(){this.dom.tip.hide();this.mayRegisterTerm(this.state.config.term0);this.updateUI()}mayRegisterTerm(t){if(!t||!t.term)return;if(t.term.id==this.state.config.term.id)return;if(this.usedTerms.find((i=>i.term.id==t.term.id)))return;this.usedTerms.push({term:t.term,q:t.q})}updatePill(){const t=this.state.config;const i={activeCohort:this.state.activeCohort,filter:this.state.filter,disable_terms:[t.term]};if(t.term0){i.term=t.term0.term;i.q=t.term0.q;i.disable_terms.push(t.term0)}if(t.term2)i.disable_terms.push(t.term2);if(!this.pill)this.initPill();this.pill.main(i)}}const l=t(o);function a(t){t.initUI=function(){t.dom.tr.append("td").text("Divide by").attr("class","sja-termdb-config-row-label");const e=t.dom.tr.append("td");t.dom.menuBtn=e.append("div").attr("class","sja_clbtext2").on("click",t.showMenu);t.dom.pilldiv=e.append("div");t.dom.tip=new i({padding:"0px"})};t.updateUI=function(){const i=this.state.config;t.dom.tr.style("display","");if(i?.term?.term?.type=="geneVariant"||i?.term2?.term?.type=="geneVariant"){t.dom.tr.style("display","none")}if(!i.term0){t.dom.pilldiv.style("display","none");t.dom.menuBtn.style("display","inline-block");t.updatePill();return t.dom.menuBtn.html("None ▼")}t.dom.menuBtn.style("display","none");t.dom.pilldiv.style("display","inline-block");t.updatePill()};t.showMenu=function(){t.pill.showTree(t.dom.menuBtn.node())}}export{l as divideInit};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{az as t,M as e}from"./app-
|
|
1
|
+
import{az as t,M as e}from"./app-71453429.js";import{t as i}from"./termsetting-636d2271.js";import{g as s}from"./FilterRxComp-fc769f34.js";import"path";import"./table-1dae543a.js";class o{constructor(t){this.type="overlayInput";this.dom={tr:t.holder};n(this);this.initUI();this.usedTerms=[]}validateOpts(t){if(!("id"in t))throw"opts.id missing";if(!t.holder)throw"opts.holder missing"}initPill(){if(!this.opts.defaultQ4fillTW)this.opts.defaultQ4fillTW={};this.opts.defaultQ4fillTW["geneVariant"]={groupsetting:{inuse:true}};this.pill=i({vocabApi:this.app.vocabApi,vocab:this.state.vocab,usecase:this.opts.usecase,activeCohort:this.state.activeCohort,holder:this.dom.pilldiv,use_bins_less:true,debug:this.opts.debug,menuOptions:"all",defaultQ4fillTW:this.opts.defaultQ4fillTW,numericEditMenuVersion:this.opts.numericEditMenuVersion||["continuous","discrete"],callback:t=>{this.app.dispatch({type:"plot_edit",id:this.opts.id,config:{term2:t},usecase:this.opts.usecase})}})}getState(t){const e=t.plots.find((t=>t.id===this.id));if(!e){throw`No plot with id='${this.id}' found.`}const i={allowedTermTypes:t.termdbConfig.allowedTermTypes,vocab:t.vocab,activeCohort:t.activeCohort,config:e,ssid:t.ssid};if(t.termfilter&&t.termfilter.filter){i.filter=s(t.termfilter.filter)}return i}main(){this.dom.tip.hide();this.mayRegisterTerm(this.state.config.term2);this.dom.tr.style("display","table-row");this.updateUI()}mayRegisterTerm(t){if(!t||!t.term)return;if(t.term.id==this.state.config.term.id)return;if(this.usedTerms.find((e=>e.term.id==t.term.id)))return;this.usedTerms.push({term:t.term,q:t.q})}updatePill(){const t=this.state.config;const e={activeCohort:this.state.activeCohort,filter:this.state.filter,disable_terms:[t.term]};{const t=this.app.getState();if(t.activeCohort!=undefined){e.activeCohort=t.activeCohort}}if(t.term2){e.term=t.term2.term;e.q=t.term2.q;e.disable_terms.push(t.term2)}if(t.term0)e.disable_terms.push(t.term0);if(!this.pill)this.initPill();this.pill.main(e)}}const r=t(o);function n(t){t.initUI=function(){t.dom.tr.append("td").text("Overlay").attr("class","sja-termdb-config-row-label");const i=t.dom.tr.append("td");t.dom.menuBtn=i.append("div").attr("class","sja_clbtext2").on("click",t.showMenu);t.dom.pilldiv=i.append("div");t.dom.tip=new e({padding:"0px"})};t.updateUI=function(){if(this.state.ssid){t.dom.menuBtn.style("display","none");t.dom.pilldiv.style("display","inline-block");t.dom.pilldiv.text(this.state.ssid.mutation_name);return}const e=this.state.config;if(!e.term2||e.term2&&e.term2.term.iscondition&&e.term2.id==e.term.id){t.dom.pilldiv.style("display","none");t.dom.menuBtn.style("display","inline-block");if(!e.term2){t.updatePill();return t.dom.menuBtn.html("None ▼")}if(e.term2.q.bar_by_grade){return t.dom.menuBtn.html('Max grade <span style="font-size:.7em;text-transform:uppercase;opacity:.6">'+e.term.term.name+"</span> ▼")}if(e.term2.q.bar_by_children){return t.dom.menuBtn.html('Sub-conditions <span style="font-size:.7em;text-transform:uppercase;opacity:.6">'+e.term.term.name+"</span> ▼")}return t.dom.menuBtn.html("ERROR: unknown type of overlay ▼")}t.dom.menuBtn.style("display","none");t.dom.pilldiv.style("display","inline-block");t.updatePill()};t.showMenu=function(){t.pill.showTree(t.dom.menuBtn.node())}}export{r as overlayInit};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{az as t}from"./app-
|
|
1
|
+
import{az as t}from"./app-71453429.js";import{t as i}from"./termsetting-636d2271.js";import{g as e,T as s}from"./FilterRxComp-fc769f34.js";import"path";import"./table-1dae543a.js";class r{constructor(t){this.type="term1Input";this.dom={tr:t.holder};a(this);this.initUI()}validateOpts(t){if(!("id"in t))throw"opts.id missing";if(!t.holder)throw"opts.holder missing"}getState(t){const i=t.plots.find((t=>t.id===this.id));if(!i){throw`No plot with id='${this.id}' found.`}const s={vocab:t.vocab,activeCohort:t.activeCohort,plot:i};if(t.termfilter&&t.termfilter.filter){s.filter=e(t.termfilter.filter)}return s}async main(){this.dom.tr.style("display","table-row");await this.render()}setPill(){this.pill=i({vocabApi:this.app.vocabApi,vocab:this.state.vocab,usecase:this.opts.usecase,activeCohort:this.state.activeCohort,holder:this.dom.td2.append("div").style("display","inline-block"),debug:this.opts.debug,numericEditMenuVersion:["continuous","discrete"],callback:t=>{if(!t.q)throw"data.q{} missing from pill callback";this.app.dispatch({type:"plot_edit",id:this.opts.id,config:{term:{isAtomic:true,term:JSON.parse(JSON.stringify(this.state.plot.term.term)),q:t.q}}})}})}}const o=t(r);function a(t){t.initUI=function(){t.dom.td1=t.dom.tr.append("td").attr("class","sja-termdb-config-row-label");t.dom.td2=t.dom.tr.append("td")};t.render=async function(){const i=this.state.plot;if(!i.term)throw"state.plot.term{} is missing";if(!i.term.q)throw"state.plot.term.q{} is missing";if(i.term.q.groupsetting&&i.term.q.groupsetting.disabled){this.dom.tr.style("display","none");return}switch(i.term.term.type){case"categorical":t.dom.td1.text("Group categories");break;case"condition":t.dom.td1.text("Customize");break;case"integer":case"float":t.dom.td1.text("Customize bins");break;case"survival":break;case"geneVariant":t.dom.td1.text("Group variants");break;case"samplelst":break;case s.GENE_EXPRESSION:break;case s.METABOLITE_INTENSITY:break;default:throw"unknown term type"}if(!t.pill)t.setPill();await t.pill.main({term:i.term.term,q:i.term.q,activeCohort:this.state.activeCohort,filter:this.state.filter})}}export{o as term1uiInit};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{aS as t,M as e,am as s,an as i,x as n,az as a,q as r,l as o}from"./app-71453429.js";import{controlsInit as c}from"./controls-0467d2ec.js";import{f as l}from"./termsetting-636d2271.js";import{s as d}from"./legacy-d3-polyfill-bdb2d792.js";import{h as p}from"./html.legend-ef8066dd.js";import{o as h}from"./FilterRxComp-fc769f34.js";import{s as m,r as u,a as g,g as f}from"./renderPvalueTable-46056189.js";import{l as y}from"./line-264f8f9e.js";import{a as v}from"./area-f56e50f9.js";import{c as x,b}from"./axis-6cb4f314.js";import"./controls.btns-ad7b28a2.js";import"./controls.config-6cf816fb.js";import"./controls.overlay-3a55c2ec.js";import"path";import"./table-1dae543a.js";import"./controls.term1-59f4cd60.js";import"./controls.divide-3c0d52d7.js";import"./pointer-c7475677.js";import"./constant-426a1483.js";class I{constructor(s){this.type="cuminc";this.pj=_(this);this.state={config:t({settings:JSON.parse(C)},s.config)};const i=s.holder;this.dom={holder:i,chartsDiv:i.append("div").style("margin","10px"),legendDiv:i.append("div").style("margin","5px"),hiddenDiv:i.append("div").style("margin","5px 5px 15px 5px")};this.tip=new e({padding:"5px"});this.lineFxn=y().curve(m).x((t=>t.scaledX)).y((t=>t.scaledY));this.hidePlotTitle=true;j(this);this.legendRenderer=p(this.dom.legendDiv,{settings:{legendOrientation:"vertical"},handlers:{legend:{click:t=>this.legendClick(t.target.__data__,t.clientX,t.clientY)}}})}main(t){this.config=structuredClone(this.state.config);if(this.config.term.term.type!="condition")throw"cuminc term is not a condition term";this.settings=this.config.settings.cuminc;this.settings.xTitleLabel="Years since entry into the cohort";this.settings.atRiskVisible=false;this.processResults(t);this.pj.refresh({data:this.currData});this.setTerm2Color(this.pj.tree.charts);this.render()}processResults(t){const e=Object.keys(t);if(e.length!=1)throw"must be a single chart";const s=e[0];const i=t[s];this.currData=[];this.uniqueSeriesIds=new Set;for(const t in i.estimates){const e=i.estimates[t];for(const i of e){const{time:e,est:n,low:a,up:r,nrisk:o,nevent:c,ncensor:l}=i;const d={chartId:s,seriesId:t,time:e,cuminc:n*100,low:a*100,high:r*100,nrisk:o,nevent:c,ncensor:l};this.currData.push(d);this.uniqueSeriesIds.add(d.seriesId)}}this.tests={};if(i.tests?.length!=1)throw"must have a single test";const n=i.tests[0];this.tests[s]=[{pvalue:{id:"pvalue",text:n.permutation?n.pvalue+"*":n.pvalue},series1:{id:n.series1},series2:{id:n.series2},permutation:n.permutation}];this.refs={}}setTerm2Color(t){if(!t)return;if(t.length!=1)throw"should be a single chart";const e=t[0];this.term2toColor={};this.colorScale=this.uniqueSeriesIds.size<11?s(i):s(d);const a=[];for(const t of e.serieses){const e=this.config.term2?.term.values?.[t.seriesId]?.color;const s={orig:e||(t.seriesId==""?this.settings.defaultColor:this.colorScale(t.seriesId))};s.rgb=n(s.orig);s.adjusted=s.rgb.toString();this.term2toColor[t.seriesId]=s;if(!a.find((e=>e.seriesId==t.seriesId))){a.push({seriesId:t.seriesId,text:t.seriesLabel,color:this.term2toColor[t.seriesId].adjusted})}}if(this.config.term2&&a.length){this.legendData=[{name:this.config.term2.term.name,items:a}]}else{this.legendData=[]}const r=this.tests[e.chartId];if(r.length!=1)throw"should have one test";const o=r[0];for(const t in o){if(t=="pvalue"){o[t].color="#000"}else if(t.startsWith("series")){const e=a.find((e=>e.seriesId==o[t].id));o[t].color=e.color;o[t].text=e.text}else{continue}}}}class k{constructor(t){this.type="cuminc";this.chartIncrement=0}async init(t){const s=this.opts;const i=this.opts.controls?null:s.holder.append("div");const n=s.controls?s.holder:s.holder.append("div");this.dom={loadingDiv:n.append("div").style("position","absolute").style("display","none").style("padding","20px").html("Loading ..."),header:s.header,controls:i,holder:n,chartsDiv:n.append("div").style("margin","10px"),legendDiv:n.append("div").style("margin","5px"),hiddenDiv:n.append("div").style("margin","5px 5px 15px 5px")};this.tip=new e({padding:"5px"});if(this.dom.header)this.dom.header.html("Cumulative Incidence Plot");this.settings=Object.assign({},this.opts.settings);this.pj=_(this);this.lineFxn=y().curve(m).x((t=>t.scaledX)).y((t=>t.scaledY));T(this);j(this);this.legendRenderer=p(this.dom.legendDiv,{settings:{legendOrientation:"vertical"},handlers:{legend:{click:t=>this.legendClick(t.target.__data__,t.clientX,t.clientY)}}});this.hiddenRenderer=p(this.dom.hiddenDiv,{settings:{legendOrientation:"vertical"},handlers:{legend:{click:t=>this.hideLegendItem(t.target.__data__)}}});await this.setControls(t)}async setControls(t){const e=t.plots.find((t=>t.id===this.id));if(this.opts.controls){this.opts.controls.on("downloadClick.boxplot",this.download)}else{this.dom.holder.attr("class","pp-termdb-plot-viz").style("display","inline-block").style("min-width","300px").style("margin-left","50px");const t=[];for(const s in e.term.term.values){const i=e.term.term.values[s];if(i.uncomputable)continue;t.push({label:i.label,value:s})}this.components={controls:await c({app:this.app,id:this.id,holder:this.dom.controls.attr("class","pp-termdb-plot-controls").style("display","inline-block"),inputs:["term1",{label:"Overlay",title:"Overlay",type:"overlay",numericEditMenuVersion:["discrete"],defaultQ4fillTW:{numeric:{isAtomic:true,mode:"discrete",type:"custom-bin",preferredBins:"median"}}},{label:"Divide by",title:"Divide by",type:"divideBy",defaultQ4fillTW:{numeric:{isAtomic:true,mode:"discrete",type:"custom-bin",preferredBins:"median"}}},{label:"Minimum sample size of series",type:"number",chartType:"cuminc",settingsKey:"minSampleSize"},{label:"Minimum at-risk count of event",type:"number",chartType:"cuminc",settingsKey:"minAtRisk"},{label:"Chart width",type:"number",chartType:"cuminc",settingsKey:"svgw",title:"The internal width of the chart plot"},{label:"Chart height",type:"number",chartType:"cuminc",settingsKey:"svgh",title:"The internal height of the chart plot"},{label:"X-axis ticks",type:"text",chartType:"cuminc",settingsKey:"xTickValues",placeholder:"tick,tick,...",processInput:t=>t?t.split(",").map(Number):[]},{label:"Y-axis ticks",type:"text",chartType:"cuminc",settingsKey:"yTickValues",placeholder:"tick,tick,...",processInput:t=>t?t.split(",").map(Number):[]},{label:"At-risk counts",boxLabel:"Visible",type:"checkbox",chartType:"cuminc",settingsKey:"atRiskVisible",title:"Display the at-risk counts"},{label:"95% confidence interval",boxLabel:"Visible",type:"checkbox",chartType:"cuminc",settingsKey:"ciVisible"},{label:"Default color",type:"color",chartType:"cuminc",settingsKey:"defaultColor"}]})};this.components.controls.on("downloadClick.boxplot",this.download)}}getState(t){const e=t.plots.find((t=>t.id===this.id));if(!e){throw`No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`}return{genome:this.app.vocabApi.vocab.genome,dslabel:this.app.vocabApi.vocab.dslabel,activeCohort:t.activeCohort,termfilter:t.termfilter,config:{term:JSON.parse(JSON.stringify(e.term)),term0:e.term0?JSON.parse(JSON.stringify(e.term0)):null,term2:e.term2?JSON.parse(JSON.stringify(e.term2)):null,settings:e.settings.cuminc}}}async main(){try{this.config=structuredClone(this.state.config);if(this.dom.header)this.dom.header.html(this.state.config.term.term.name+' <span style="opacity:.6;font-size:.7em;margin-left:10px;">CUMULATIVE INCIDENCE</span>');if(this.config.term.term.type!="condition")throw"cuminc term is not a condition term";this.toggleLoadingDiv();Object.assign(this.settings,this.config.settings);this.settings.defaultHidden=this.getDefaultHidden();this.settings.hidden=this.settings.customHidden||this.settings.defaultHidden;this.settings.xTitleLabel="Years since diagnosis";const t=this.getDataRequestOpts();const e=await this.app.vocabApi.getNestedChartSeriesData(t);if(e.error)throw e.error;this.toggleLoadingDiv("none");this.app.vocabApi.syncTermData(this.config,e);this.processResults(e);this.pj.refresh({data:this.currData});this.sortSerieses(this.pj.tree.charts);this.setTerm2Color(this.pj.tree.charts);this.render()}catch(t){console.error(t)}}getDataRequestOpts(){const t=this.config;const e={chartType:"cuminc",term:t.term,filter:this.state.termfilter.filter,minSampleSize:t.settings.minSampleSize};if(t.term2)e.term2=t.term2;if(t.term0)e.term0=t.term0;if(this.state.ssid)e.ssid=this.state.ssid;return e}getDefaultHidden(){const t=[];const e=this.config.term2;if(!e)return t;const s=e.q.hiddenValues;if(s&&Object.keys(s).length){for(const i in s){t.push(e.term.values[i].label)}}return t}processResults(t){const e=this.settings;const s=this.config;const i={};const n={};const a=t.lowSampleSize;const r=t.noEvents;this.currData=[];this.uniqueSeriesIds=new Set;this.tests={};this.noData=[];this.refs=t.refs;for(const s in t.data){const a=t.data[s];if(a.estimates){for(const t in a.estimates){const n=a.estimates[t];if(!n.filter((t=>t.nrisk>=e.minAtRisk&&t.est>0)).length){s in r?r[s].push(t):r[s]=[t];continue}s in i?i[s][t]=n:i[s]={[t]:n}}if(!(s in i))this.noData.push(s)}else{this.noData.push(s)}if(a.tests){n[s]=a.tests.filter((t=>t.series1 in i[s]&&t.series2 in i[s]&&!e.hidden.includes(t.series1)&&!e.hidden.includes(t.series2)))}}for(const t in i){const s=i[t];for(const i in s){const n=s[i];for(const s of n){const{time:n,est:a,low:r,up:o,nrisk:c,nevent:l,ncensor:d}=s;const p={chartId:t,seriesId:i,time:n,cuminc:a*100,low:r*100,high:o*100,nrisk:c,nevent:l,ncensor:d};if(p.nrisk<e.minAtRisk){this.currData.push(p);break}this.currData.push(p);this.uniqueSeriesIds.add(p.seriesId)}}}for(const t in n){for(const e of n[t]){const s={pvalue:{id:"pvalue",text:e.permutation?e.pvalue+"*":e.pvalue},series1:{id:e.series1},series2:{id:e.series2},permutation:e.permutation};t in this.tests?this.tests[t].push(s):this.tests[t]=[s]}}this.lowSampleSize={};for(const t in a){this.lowSampleSize[t]=a[t].map((t=>s.term2?.term.values?.[t]?.label||t))}this.noEvents={};for(const t in r){this.noEvents[t]=r[t].map((t=>s.term2?.term.values?.[t]?.label||t))}}sortSerieses(t){if(!t)return;for(const e of t){const t=e.serieses.map((t=>t.seriesId));const s=[...t.filter((t=>!this.settings.defaultHidden.includes(t))),...t.filter((t=>this.settings.defaultHidden.includes(t)))];e.serieses.sort(((t,e)=>s.indexOf(t.seriesId)-s.indexOf(e.seriesId)))}}setTerm2Color(t){if(!t){this.legendData=[];return}this.term2toColor={};this.colorScale=this.uniqueSeriesIds.size<11?s(i):s(d);const e=[];for(const s of t){for(const t of s.serieses){const s=this.config.term2?.term.values?.[t.seriesId]?.color;const i={orig:s||(t.seriesId==""?this.settings.defaultColor:this.colorScale(t.seriesId))};i.rgb=n(i.orig);i.adjusted=i.rgb.toString();this.term2toColor[t.seriesId]=i;if(!e.find((e=>e.seriesId==t.seriesId))){e.push({seriesId:t.seriesId,text:t.seriesLabel,color:this.term2toColor[t.seriesId].adjusted,isHidden:this.settings.hidden.includes(t.seriesId)})}}}if(this.config.term2&&e.length){this.legendData=[{name:this.config.term2.term.name,items:e.filter((t=>!t.isHidden))}];this.hiddenData=[{name:`<span style='color:#aaa; font-weight:400'><span>Hidden categories</span><span style='font-size:0.8rem'> CLICK TO SHOW</span></span>`,items:e.filter((t=>t.isHidden)).map((t=>Object.assign({},t,{isHidden:false})))}]}else{this.legendData=[]}for(const t in this.tests){const s=this.tests[t];for(const t of s){for(const s in t){if(s=="pvalue"){t[s].color="#000"}else if(s.startsWith("series")){const i=e.find((e=>e.seriesId==t[s].id));t[s].color=i.color;t[s].text=i.text}else{continue}}}}}toggleLoadingDiv(t=""){if(t!="none"){this.dom.loadingDiv.style("opacity",0).style("display",t).transition().duration("loadingWait"in this?this.loadingWait:0).style("opacity",1)}else{this.dom.loadingDiv.style("display",t)}this.loadingWait=1e3}}const S=a(k);const w=S;function j(t){t.render=function(){const e=t.pj.tree.charts||[{}];if(t.noData?.length){e.push(...t.noData.map((e=>{let s=e;const i=t.config.term0;if(i.q&&i.q.groupsetting&&i.q.groupsetting.inuse)return{chartId:e,chartTitle:s};if(i.term.values){const t=i.term.values[e];if(t&&t.label)s=t.label}return{chartId:e,chartTitle:s}})))}const s=t.dom.chartsDiv.selectAll(".pp-cuminc-chart").data(e,(t=>t.chartId));s.exit().remove();s.each(t.updateCharts);s.enter().each(t.addCharts);t.dom.holder.style("display","inline-block");t.dom.chartsDiv.on("mouseover",t.mouseover).on("mouseout",t.mouseout);t.legendRenderer(t.settings.atRiskVisible?[]:t.legendData);if(!t.hiddenData?.[0]?.items.length||!t.config.term2)t.dom.hiddenDiv.style("display","none");else{t.dom.hiddenDiv.style("display","");t.hiddenRenderer(t.hiddenData)}};t.addCharts=function(n){const a=t.settings;const o=r(this).append("div").attr("class","pp-cuminc-chart").style("opacity",n.serieses?0:1).style("display","inline-block").style("margin",a.chartMargin+"px").style("padding","10px").style("top",0).style("left",0).style("text-align","center").style("vertical-align","top").style("background",n.color);o.append("div").attr("class","sjpcb-cuminc-title").style("text-align","center").style("width",`${a.svgw+50}px`).style("height",a.chartTitleDivHt+"px").style("font-weight","600").style("margin","5px").datum(n.chartId).html(n.chartTitle);if(t.hidePlotTitle)o.select(".sjpcb-cuminc-title").style("display","none");o.append("div").attr("class","pp-cuminc-chart-noData").style("display","none").style("width",`${a.svgw+50}px`).style("margin","40px 5px").text("No cumulative incidence data");if(n.serieses){e(n,a);const t=o.append("svg").attr("class","pp-cuminc-svg");s(t,n,a);o.style("opacity",1)}else{o.select(".pp-cuminc-chart-noData").style("display","block")}o.append("div").attr("class","pp-cuminc-chartLegends").style("vertical-align","top").style("text-align",n.serieses?"left":"center").style("margin",n.serieses?"10px 30px 0px 20px":"0px").style("display","none");if(t.tests&&n.chartId in t.tests){const e=o.select(".pp-cuminc-chartLegends").style("display","inline-block").append("div").style("margin-bottom","30px");u({title:"Group comparisons (Gray's test)",holder:e,plot:"cuminc",tests:t.tests[n.chartId],s:a,bins:t.refs.bins})}if(t.noEvents&&n.chartId in t.noEvents){const e=o.select(".pp-cuminc-chartLegends").style("display","inline-block").append("div").style("margin-bottom","30px");const s="Skipped series (no events)";i(e,s,t.noEvents[n.chartId],a)}if(t.lowSampleSize&&n.chartId in t.lowSampleSize){const e=o.select(".pp-cuminc-chartLegends").style("display","inline-block").append("div").style("margin-bottom","30px");const s="Skipped series (low sample size)";i(e,s,t.lowSampleSize[n.chartId],a)}};function e(t,e){t.visibleSerieses=e.hidden?t.serieses.filter((t=>!e.hidden.includes(t.seriesId))):t.serieses}t.updateCharts=function(n){const a=t.settings;const o=r(this);o.style("background",n.color);o.select(".sjpcb-cuminc-title").style("width",`${a.svgw+50}px`).style("height",a.chartTitleDivHt+"px").datum(n.chartId).html(n.chartTitle);if(t.hidePlotTitle)o.select(".sjpcb-cuminc-title").style("display","none");o.selectAll(".sjpcb-lock-icon").style("display",a.scale=="byChart"?"block":"none");o.selectAll(".sjpcb-unlock-icon").style("display",a.scale=="byChart"?"none":"block");if(n.serieses){o.select(".pp-cuminc-chart-noData").style("display","none");e(n,a);s(o.select("svg"),n,a)}else{o.select(".pp-cuminc-chart-noData").style("display","block").style("width",`${a.svgw+50}px`)}o.select(".pp-cuminc-chartLegends").selectAll("*").remove();if(t.tests&&n.chartId in t.tests){const e=o.select(".pp-cuminc-chartLegends").style("display","inline-block").append("div").style("margin-bottom","30px");u({title:"Group comparisons (Gray's test)",holder:e,plot:"cuminc",tests:t.tests[n.chartId],s:a,bins:t.refs.bins})}if(t.noEvents&&n.chartId in t.noEvents){const e=o.select(".pp-cuminc-chartLegends").style("display","inline-block").append("div").style("margin-bottom","30px");const s="Skipped series (no events)";i(e,s,t.noEvents[n.chartId],a)}if(t.lowSampleSize&&n.chartId in t.lowSampleSize){const e=o.select(".pp-cuminc-chartLegends").style("display","inline-block").append("div").style("margin-bottom","30px");const s="Skipped series (low sample size)";i(e,s,t.lowSampleSize[n.chartId],a)}};function s(e,s,i){const c=i.atRiskVisible?i.axisTitleFontSize+4+s.visibleSerieses.length*2*i.axisTitleFontSize:0;e.attr("width",i.svgw).attr("height",i.svgh+c).style("overflow","visible").style("padding-left","20px");const[l,d,p,h,m,u,f,y,v,x,b]=n(e);l.attr("x",0).attr("width",i.svgw-i.svgPadding.left-i.svgPadding.right).attr("y",0).attr("height",i.svgh-i.svgPadding.top-i.svgPadding.bottom+i.xAxisOffset);const I=i.svgPadding.left;p.attr("transform","translate("+I+","+i.svgPadding.top+")");const k=h.selectAll(".sjpcb-cuminc-series").data(s.visibleSerieses,(t=>t&&t[0]?t[0].seriesId:""));k.exit().remove();k.each((function(t,e){a(r(this),t,i)}));k.enter().append("g").attr("class","sjpcb-cuminc-series").each((function(t,e){a(r(this),t,i)}));o(u,y,f,v,i,s);g({g:x,s:i,chart:s,term2values:t.config.term2?.values,term2toColor:t.term2toColor,onSerieClick:t.legendClick});b.attr("x",0).attr("width",i.svgw-i.svgPadding.left-i.svgPadding.right).attr("y",0).attr("height",i.svgh-i.svgPadding.top-i.svgPadding.bottom+i.xAxisOffset);e.seriesTip.update({xScale:s.xScale,xTitleLabel:i.xTitleLabel,decimals:i.seriesTipDecimals,serieses:s.visibleSerieses.map((e=>{const s=e.seriesLabel?`${e.seriesLabel}:`:"Cumulative Incidence:";const i=t.term2toColor[e.seriesId].adjusted;return{data:e.data.map((t=>({x:t.x,html:`<span style='color: ${i}'>`+`${s} ${t.y.toFixed(2)} (${t.low.toFixed(2)} - ${t.high.toFixed(2)})`+`</span>`})))}}))})}function i(t,e,s,i){const n=i.axisTitleFontSize-2;t.selectAll("*").remove();t.append("div").style("padding-bottom","5px").style("font-size",n+"px").style("font-weight","bold").text(e);const a=t.append("div").style("padding-bottom","5px").style("font-size",n+"px");a.selectAll("div").data(s).enter().append("div").attr("class","pp-cuminc-chartLegends-skipped").text((t=>t))}function n(e,s){let i,n,a,r,o,c,l,d,p,h,m,u;if(!e.select(".sjpcb-cuminc-mainG").size()){const s=`${t.id}-${t.chartIncrement++}`;i=e.append("defs").append("clipPath").attr("id",s).append("rect");n=e.append("g").attr("class","sjpcb-cuminc-clipG");a=e.append("g").attr("class","sjpcb-cuminc-mainG").attr("data-testid","sja-cuminc-main-g");r=a.append("g").attr("class","sjpcb-cuminc-seriesesG").attr("clip-path",`url(#${s})`);o=a.append("g").attr("class","sjpcb-cuminc-axis");c=o.append("g").attr("class","sjpcb-cuminc-x-axis");l=o.append("g").attr("class","sjpcb-cuminc-y-axis");d=o.append("g").attr("class","sjpcb-cuminc-x-title");p=o.append("g").attr("class","sjpcb-cuminc-y-title");h=a.append("g").attr("class","sjpp-cuminc-atrisk");u=a.append("line").attr("class","sjpcb-plot-tip-line").attr("stroke","#000").attr("stroke-width","2px");m=a.append("rect").attr("class","sjpcb-plot-tip-rect").style("fill","transparent")}else{i=e.select("defs clipPath rect");n=e.select(".sjpcb-cuminc-clipG");a=e.select(".sjpcb-cuminc-mainG");r=a.select(".sjpcb-cuminc-seriesesG");o=a.select(".sjpcb-cuminc-axis");c=o.select(".sjpcb-cuminc-x-axis");l=o.select(".sjpcb-cuminc-y-axis");d=o.select(".sjpcb-cuminc-x-title");p=o.select(".sjpcb-cuminc-y-title");h=a.select(".sjpp-cuminc-atrisk");m=a.select(".sjpcb-plot-tip-rect");u=a.select(".sjpcb-plot-tip-line")}if(!e.seriesTip){e.seriesTip=f(u,m,t.app?.tip)}return[i,n,a,r,o,c,l,d,p,h,m]}function a(e,s,i){e.selectAll("path").remove();e.append("path").attr("d",t.lineFxn(s.data.map((t=>({scaledX:t.scaledX,scaledY:t.scaledY[0]}))))).style("fill","none").style("stroke",t.term2toColor[s.seriesId].adjusted).style("stroke-width",2).style("stroke-linecap","square").style("opacity",1).style("stroke-opacity",1);e.append("path").attr("d",v().curve(m).x((t=>t.scaledX)).y0((t=>t.scaledY[1])).y1((t=>t.scaledY[2]))(s.data)).style("display",i.ciVisible?"":"none").style("fill",t.term2toColor[s.seriesId].adjusted).style("opacity","0.15").style("stroke","none")}function o(t,e,s,i,n,a){const r=x(a.xScale).tickValues(a.xTickValues);const o=b(a.yScale).tickValues(a.yTickValues);const c=-.5;t.attr("transform",`translate(${c}, ${n.svgh-n.svgPadding.top-n.svgPadding.bottom+n.xAxisOffset+c})`).call(r);s.attr("transform",`translate(${n.yAxisOffset+c}, ${c})`).call(o);e.select("text, title").remove();e.attr("transform","translate("+(n.svgw-n.svgPadding.left-n.svgPadding.right)/2+","+(n.svgh-n.axisTitleFontSize-4)+")").append("text").style("text-anchor","middle").style("font-size",n.axisTitleFontSize+"px").text(n.xTitleLabel);const l="Cumulative Incidence (%)";i.select("text, title").remove();i.attr("transform","translate("+(-n.svgPadding.left/2-n.axisTitleFontSize)+","+(n.svgh-n.svgPadding.top-n.svgPadding.bottom)/2+")rotate(-90)").append("text").style("text-anchor","middle").style("font-size",n.axisTitleFontSize+"px").text(l)}}function T(t){t.mouseover=function(t){t.target.__data__};t.mouseout=function(){t.app.tip.hide()};t.legendClick=function(e,s,i){if(e===undefined)return;const a=t.tip.clear();if(t.config.term2==null){const e=n(t.settings.defaultColor).formatHex();const r=a.d.append("div").attr("class","sja_sharp_border").style("padding","0px 10px").text("Edit color:");const o=r.append("input").attr("type","color").attr("value",e).on("change",(()=>{const e=o.node().value;t.app.dispatch({type:"plot_edit",id:t.id,config:{settings:{cuminc:{defaultColor:e}}}});a.hide()}));a.show(s,i);return}if(!e.seriesId)return;a.d.append("div").attr("class","sja_menuoption sja_sharp_border").text(`Hide`).on("click",(async s=>{a.hide();t.hideLegendItem(e)}));let r=t.term2toColor[e.seriesId]?.adjusted;if(r){r=n(r).formatHex();const s=a.d.append("div").attr("class","sja_sharp_border").style("padding","0px 10px").text("Edit color:");const i=s.append("input").attr("type","color").attr("value",r).on("change",(()=>{const s=t.config.term2;const n=structuredClone(s);if(!n.term.values)n.term.values={[e.seriesId]:{}};else if(!n.term.values[e.seriesId])n.term.values[e.seriesId]={};n.term.values[e.seriesId].color=i.node().value;t.app.dispatch({type:"plot_edit",id:t.id,config:{term2:n}});a.hide()}))}a.show(event.clientX,event.clientY)};t.hideLegendItem=function(e){const s=t.settings.hidden.slice();const i=s.indexOf(e.seriesId);i==-1?s.push(e.seriesId):s.splice(i,1);t.app.dispatch({type:"plot_edit",id:t.id,config:{settings:{cuminc:{customHidden:s}}}})}}const C=JSON.stringify({controls:{term2:null,term0:null},cuminc:{minSampleSize:10,minAtRisk:10,atRiskVisible:true,atRiskLabelOffset:-10,seriesTipDecimals:0,ciVisible:true,radius:5,fill:"#fff",stroke:"#000",fillOpacity:0,chartMargin:10,svgw:400,svgh:300,svgPadding:{top:20,left:55,right:20,bottom:50},axisTitleFontSize:16,xAxisOffset:5,yAxisOffset:-5,defaultColor:"#2077b4"}});async function D(e,s){if(!e.term)throw"cuminc: opts.term{} missing";try{await l(e.term,s.vocabApi,{condition:{mode:"cuminc"}});if(e.term2)await l(e.term2,s.vocabApi);if(e.term0)await l(e.term0,s.vocabApi)}catch(t){throw`${t} [cuminc getPlotConfig()]`}const i={id:e.term.term.id,settings:JSON.parse(C)};return t(i,e)}function _(t){const e=new h({template:{xMin:">=x()",xMax:"<=x()",yMin:">=yMin()",yMax:"<=yMax()",charts:[{chartId:"@key",chartTitle:"=chartTitle()",xMin:">=x()",xMax:"<=x()","__:xTickValues":"=xTickValues()","__:yTickValues":"=yTickValues()","__:xScale":"=xScale()","__:yScale":"=yScale()",yMin:">=yMin()",yMax:"<=yMax()",serieses:[{chartId:"@parent.@parent.@key",seriesId:"@key","__:seriesLabel":"=seriesLabel()",data:[{"__:seriesId":"@parent.@parent.seriesId",x:"$time",y:"$cuminc",low:"$low",high:"$high","_1:scaledX":"=scaledX()","_1:scaledY":"=scaledY()",nrisk:"$nrisk",nevent:"$nevent",ncensor:"$ncensor"},"$time"]},"$seriesId"],"@done()":"=sortSerieses()"},"$chartId"]},"=":{chartTitle(e){if(!t.state?.config?.term)return e.chartId;t.settings;const s=t.config.term.q.breaks[0];if(!e.chartId||e.chartId=="-"){return s==5?"CTCAE grade 5":`CTCAE grade ${s}-5`}const i=t.config.term0;if(!i||!i.term.values)return e.chartId;if(i.q&&i.q.groupsetting&&i.q.groupsetting.inuse){return e.chartId}const n=t.config.term0.term.values[e.chartId];return n&&n.label?n.label:e.chartId},seriesLabel(e,s){const i=t.config?.term2;if(!i)return s.self.seriesId;const n=s.self.seriesId;if(i&&i.q&&i.q.groupsetting&&i.q.groupsetting.inuse)return n;if(i&&i.term.values&&n in i.term.values)return i.term.values[n].label;return n},x(e){if(t.settings.hidden?.includes(e.seriesId))return;return e.time},yMin(e){if(t.settings.hidden?.includes(e.seriesId))return;return t.settings.ciVisible?e.low:e.cuminc},yMax(e){if(t.settings.hidden?.includes(e.seriesId))return;return t.settings.ciVisible?e.high:e.cuminc},xTickValues(e,s){const i=t.settings;if(i.xTickValues?.length){return i.xTickValues}else{const t=s.root.xMin;const e=s.root.xMax;return O(t,e)}},xScale(e,s){const i=t.settings;const n=Math.min(...s.self.xTickValues);const a=Math.max(...s.self.xTickValues);return o().domain([n,a]).range([0,i.svgw-i.svgPadding.left-i.svgPadding.right])},scaledX(t,e){const s=e.context.context.context.parent.xScale.clamp(false);return s(e.self.x)},yTickValues(e,s){const i=t.settings;if(i.yTickValues?.length){return i.yTickValues}else{const t=s.root.yMin;const e=s.root.yMax;return O(t,e)}},yScale(e,s){const i=t.settings;const n=Math.min(...s.self.yTickValues);const a=Math.max(...s.self.yTickValues);return o().domain([a,n]).range([0,i.svgh-i.svgPadding.top-i.svgPadding.bottom])},scaledY(t,e){const s=e.context.context.context.parent.yScale.clamp(false);const i=e.self;return[s(i.y),s(i.low),s(i.high)]},sortSerieses(e){if(!t.refs.bins)return;const s=t.refs.bins.map((t=>t.label));e.serieses.sort(((t,e)=>s.indexOf(t.seriesId)-s.indexOf(e.seriesId)))}}});return e}function O(t,e){const s=(e-t)/5;const i=Math.floor(Math.log10(s));const n=Math.round(s/(5*10**i))*(5*10**i)||1*10**i;const a=[];let r=t;while(r<=Math.min(100,e+n)){a.push(r);r=r+n}if(!a.includes(0))a.unshift(0);return a}export{I as Cuminc,w as componentInit,S as cumincInit,D as getPlotConfig};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bh as t,J as e,S as n,E as o,L as i,ap as s,w as a,bO as l}from"./app-
|
|
1
|
+
import{bh as t,J as e,S as n,E as o,L as i,ap as s,w as a,bO as l}from"./app-71453429.js";function r(s){if(!s.usegm){return}const a=s.tip.d.append("div").style("margin","20px");a.append("p").text(`Add mutation and/or fusion to show over ${s.usegm.name} ${s.usegm.isoform}`);const l=a.append("textarea").attr("cols","50").attr("rows","5").property("placeholder","Enter data");l.node().focus();const r=a.append("div").append("input").attr("type","text").style("width","130px").property("placeholder","Dataset name");const c=a.append("div").style("margin-top","5px");const g=c.append("select");g.append("option").text("Codon position");g.append("option").text("RNA position");g.append("option").text("Genomic position");c.append("button").style("margin-left","5px").text("Submit").on("click",(async()=>{const a=l.property("value");if(a=="")return;f.style("display","none");const d=g.node().selectedIndex,m=[],c=[];for(const l of a.trim().split("\n")){const a=l.trim();if(!a)continue;const r=a.split(a.includes("\t")?"\t":a.includes(" ")?" ":",");try{let a;if(r.length==6||r.length==7){a={class:t,dt:e};if(r[6])a.sample=r[6];const[o,i,l,m,c,g]=r;if(!o)throw"gene1 is missing";if(!m)throw"gene2 is missing";if(!i)throw"isoform1 is missing";if(!c)throw"isoform2 is missing";if(!l)throw"pos1 is missing";if(!g)throw"pos2 is missing";{const t=await n("genelookup",{body:{deep:1,genome:s.genome.name,input:o}});if(t.error)throw"invalid gene1";const e=t.gmlst.find((t=>t.isoform==i));if(!e)throw"invalid isoform1";a.gene1=o;a.chr1=e.chr;const r=p(d,l,e);a.pos1=r[1];a.strand1=e.strand}{const t=await n("genelookup",{body:{deep:1,genome:s.genome.name,input:m}});if(t.error)throw"invalid gene2";const e=t.gmlst.find((t=>t.isoform==c));if(!e)throw"invalid isoform2";a.gene2=m;a.chr2=e.chr;const o=p(d,g,e);a.pos2=o[1];a.strand2=e.strand}}else if(r.length==3||r.length==4){const t=r[2].trim();if(!o[t])throw"invalid mutation class";a={class:t,dt:i,isoform:s.usegm.isoform,mname:r[0].trim()};if(!a.mname)throw"missing mutation name";const e=p(d,r[1].trim(),s.usegm);a.chr=e[0];a.pos=e[1];if(r[3])a.sample=r[3]}else{throw"is not either mutation or fusion"}m.push(a)}catch(t){c.push(a+": "+(t.message||t))}}if(c.length){f.style("display","block").text("Rejected: "+c.join("\n"))}if(m.length==0)return;const u=s.block_addtk_template({type:"mds3",name:r.property("value")||"Custom data",iscustom:true,custom_variants:m});s.tk_load(u)}));c.append("button").text("Clear").style("margin-left","5px").on("click",(()=>{l.property("value","");r.property("value","")}));const f=a.append("div").style("display","none","margin-top","20px");d(a);m(a)}function p(t,e,n){const o=Number(e);if(!Number.isInteger(o))throw"position is not integer";if(t==0){const t=s(o,n);if(t==null)throw"cannot convert codon to genomic position";return[n.chr,t]}if(t==1){const t=a(o,block.usegm);if(t==null)throw"cannot convert RNA position to genomic position";return[n.chr,t]}if(t==2){return[n.chr,o-1]}throw"unknown selection"}function d(t){const e=t.append("p");e.append("span").text("Mutation format: mutation name, position, class, sample").style("opacity",.6);e.append("span").attr("class","sja_clbtext").style("margin-left","10px").text("Show details").on("click",(t=>{const e=n.style("display")=="none";n.style("display",e?"":"none");t.target.innerHTML=e?"Hide details":"Show details"}));const n=t.append("div").style("display","none").style("margin-left","20px").style("padding-left","10px").style("border-left","solid 1px black").style("color","#858585").html(`One mutation per line. Fields are joined by tab, comma or space:\n\t\t<ol>\n\t\t\t<li>Mutation name, can be any string</li>\n\t\t\t<li>Mutation position</li>\n\t\t\t<li>Mutation class code</li>\n\t\t\t<li>Optional sample name</li>\n\t\t</ol>\n\t\tPosition types:\n\t\t<ul><li>Codon position: integer, 1-based (do not use for noncoding gene)</li>\n\t\t<li>RNA position: integer, 1-based, beginning from transcription start site</li>\n\t\t<li>Genomic position: integer, 1-based coordinate</li></ul>`);l(n.append("table").style("margin-top","3px"),true)}function m(t){const e=t.append("p");e.append("span").style("opacity",.6).text("SV/fusion format: gene1, isoform1, position1, gene2, isoform2, position2, sample");e.append("span").attr("class","sja_clbtext").style("margin-left","10px").text("Show details").on("click",(t=>{const e=n.style("display")=="none";n.style("display",e?"":"none");t.target.innerHTML=e?"Hide details":"Show details"}));const n=t.append("div").style("display","none").style("margin-left","20px").style("padding-left","10px").style("border-left","solid 1px black").style("color","#858585").html(`Limited to two-gene fusion products. One product per line.\n\t\t\tFields are joined by tab, comma or space:\n\t\t<ol><li>N-term gene symbol</li>\n\t\t<li>N-term gene isoform</li>\n\t\t<li>N-term gene break-end position</li>\n\t\t<li>C-term gene symbol</li>\n\t\t<li>C-term gene isoform</li>\n\t\t<li>C-term gene break-end position</li>\n\t\t<li>Optional sample name</li>\n\t\t</ol>\n\t\tBreak-end position types:\n\t\t<ul><li>Codon position: integer, 1-based</li>\n\t\t<li>RNA position: integer, 1-based, beginning from transcription start site</li>\n\t\t<li>Genomic position: 1-based coordinate</li></ul>\n\t\tEither one of the isoforms must be already displayed.`)}export{r as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{az as t,aS as e,ac as i,q as s}from"./app-
|
|
1
|
+
import{az as t,aS as e,ac as i,q as s}from"./app-71453429.js";import{f as o,t as a}from"./termsetting-636d2271.js";import"path";import"./FilterRxComp-fc769f34.js";import"./table-1dae543a.js";class n{constructor(t){this.type="dataDownload";this.genomeObj=t.app.opts.genome;this.pillBy$id={}}async init(t){h(this);p(this);this.dom={header:this.opts.header,errordiv:this.opts.holder.append("div"),titleDiv:this.opts.holder.append("div").style("margin","10px"),terms:this.opts.holder.append("div").style("white-space","normal"),submitDiv:this.opts.holder.append("div").style("margin","10px")};this.dom.submitBtn=this.dom.submitDiv.append("button").html("Download").on("click",this.download);this.dom.submitNote=this.dom.submitDiv.append("span").style("margin-left","5px").style("font-style","italic")}getState(t,e){const i=t.plots.find((t=>t.id===this.id));if(!i){throw`No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`}this.termdbConfig=t.termdbConfig;return{vocab:t.vocab,activeCohort:t.activeCohort,termfilter:t.termfilter,config:i,hasVerifiedToken:this.app.vocabApi.hasVerifiedToken(),tokenVerificationPayload:this.app.vocabApi.tokenVerificationPayload}}async main(){try{this.config=structuredClone(this.state.config);this.mayUpdateSandboxHeader();if(this.mayRequireToken())return;const t=await this.getDataRequestOpts();this.data=await this.app.vocabApi.getAnnotatedSampleData(t);this.processData();const e=this.activeSamples.length;this.dom.submitBtn.property("disabled",e<1);this.dom.submitNote.html(e?`${e} samples`:"no sample data");this.render()}catch(t){i(this.dom.errordiv,"Error: "+(t.error||t));if(t.stack)console.log(t.stack)}}mayUpdateSandboxHeader(){if(!this.dom.header)return;this.dom.header.html("<span>Data download</span>")}mayRequireToken(){if(this.state.hasVerifiedToken){this.dom.titleDiv.style("color","").html("Selected terms");this.dom.terms.style("display","");this.dom.submitDiv.style("display","");return false}else{const t=this.state.tokenVerificationPayload;const e=t?.error=="Missing access"&&this.termdbConfig.dataDownloadCatch?.missingAccess;const i=e?.message?.replace("MISSING-ACCESS-LINK",e?.links[t?.linkKey]);const s=this.termdbConfig.dataDownloadCatch?.helpLink;this.dom.titleDiv.style("color","#e44").html(i||(this.state.tokenVerificationMessage||"Requires sign-in")+(s?` <a href='${s}' target=_blank>Tutorial</a>`:""));this.dom.terms.style("display","none");this.dom.submitDiv.style("display","none");return true}}async getDataRequestOpts(){const t=this.config.terms;return{terms:t,filter:this.state.termfilter.filter}}processData(){const{lst:t,bySampleId:e}=this.data;this.activeSamples=[];for(const e of t){for(const t of this.config.terms){if(t.term&&t.$id in e){this.activeSamples.push(e);break}}}}async getNewPill(t,e){const i=await a({placeholder:"+Add variable",holder:t,menuOptions:"all",vocabApi:this.app.vocabApi,activeCohort:this.state.activeCohort,debug:this.app.opts.debug,usecase:{target:"dataDownload"},numericEditMenuVersion:["continuous","discrete"],noTermPromptOptions:this.getNoTermPromptOptions(),genomeObj:this.genomeObj,abbrCutoff:50,defaultQ4fillTW:{condition:{mode:"cuminc"},numeric:{mode:"continuous"}},callback:t=>{const i=this.config.terms.slice(0);const s=this.config.terms.findIndex((t=>t.$id===e.tw.$id));if(!t?.term){i.splice(s,1)}else if(s===-1){t.$id=e.tw.$id;if(!t.q?.mode&&(t.term.type=="integer"||t.term.type=="float")){t.q.mode="continuous"}i.push(t)}else{t.$id=e.tw.$id;i[s]=t}this.app.dispatch({type:"plot_edit",id:this.id,chartType:"dataDownload",config:{terms:i}})}});this.pillBy$id[e.tw.$id]=i;return i}getNoTermPromptOptions(){const t=[];if(this.termdbConfig.allowedTermTypes.includes("snplst")){t.push({termtype:"snplst",text:"A list of variants",q:{doNotRestrictAncestry:1,geneticModel:3,AFcutoff:0}})}if(this.termdbConfig.allowedTermTypes.includes("snplocus")){t.push({termtype:"snplocus",text:"Variants from a locus",q:{doNotRestrictAncestry:1,geneticModel:3,AFcutoff:0}})}if(t.length)t.unshift({isDictionary:true,text:"Dictionary variable"});return t}}const r=t(n);const d=r;const l=`_ts_${(+new Date).toString().slice(-8)}_${Math.random().toString().slice(-6)}`;let c=0;function m(){return`${c++}${l}`}function p(t){t.render=function(){const e=t.config.terms.map((e=>({tw:e,pill:t.pillBy$id[e.$id]})));e.push({tw:{$id:m()}});const i=t.dom.terms.selectAll(":scope>.sja-data-download-term").data(e,(t=>t.tw?.$id));i.exit().remove();i.each(t.renderTerm);i.enter().append("div").attr("class","sja-data-download-term").each(t.addTerm)};t.addTerm=async function(e){const i=s(this).style("display",e.tw?.term?"inline-block":"block").style("width","fit-content").style("margin","10px").style("padding","5px");e.pill=await t.getNewPill(i,e);await e.pill.main({term:e.tw?.term,q:e.tw?.q,filter:t.state.termfilter.filter,activeCohort:t.state.activeCohort,numericEditMenuVersion:["continuous","discrete"]})};t.renderTerm=async function(e){if(!e.pill)throw`no pill on update renderTerm()`;s(this).style("display",e.tw.term?"inline-block":"block");await e.pill.main({term:e.tw?.term,q:e.tw.q,filter:t.state.termfilter.filter,activeCohort:t.state.activeCohort})}}function h(t){t.download=async()=>{const e=["sample"];for(const i of t.config.terms){if(i.term.type=="condition"){e.push(`${i.term.name}_event (0=censored, 1=grade ${i.q.breaks[0]}-5, 2=non-${i.term.name} death)`);e.push(`${i.term.name}_time (years from diagnosis to event)`)}else if(i.term.snps){for(const t of i.term.snps){e.push(t.snpid)}}else{e.push(i.term.name)}}const i=[e];for(const e of t.activeSamples){const s=[e.sampleName||t.data.refs.bySampleId[e.sample]?.label];for(const i of t.config.terms){if(!e[i.$id])s.push("");else{if(i.term.type=="condition"){s.push(e[i.$id].key,e[i.$id].value)}else if(i.term.snps){for(const t of i.term.snps){s.push(e[i.$id]?.[t.snpid]||".")}}else{const t=i.term.values?.[e[i.$id].key]||e[i.$id];s.push(t.label||t.key)}}}i.push(s)}const s=i.map((t=>t.join("\t"))).join("\n");const o=document.createElement("a");document.body.appendChild(o);o.addEventListener("click",(function(){o.download="cohortData.txt";o.href=URL.createObjectURL(new Blob([s],{type:"text/tab-separated-values"}));document.body.removeChild(o)}),false);o.click();t.app.vocabApi.trackDsAction({action:"download",details:{terms:t.config.terms.map((t=>!("id"in t.term)?t.term.name:t.term.id)),filter:t.state.termfilter.filter}})}}let f=1;async function u(t,i){const s="id"in t?t.id:`_DATADOWNLOAD_${f++}`;const a={id:s,terms:[]};e(a,t);for(const t of a.terms){await o(t,i.vocabApi)}return a}export{d as componentInit,r as dataDownloadInit,u as getPlotConfig};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,m as t,c as n,d as i,i as o,f as r,e as s}from"./uiUtils-a6de7f14.js";import{aR as a,o as l,R as c}from"./app-f91922b4.js";import{appInit as d}from"./app-de19f41c.js";import"./recover-a08c8d01.js";import"./FilterRxComp-0e75dd8d.js";import"./table-d6c411fd.js";import"./FilterStateless-ad3df967.js";import"./app-bfce9bf5.js";import"./termInfo-96285f4a.js";import"./termsetting-9a7511e6.js";import"path";import"./sampleScatter.interactivity-e9c30652.js";import"./downloadTextfile-5723af95.js";import"./sampleView-d6a91293.js";import"./controls-8d4972c8.js";import"./controls.btns-bad9e4cf.js";import"./controls.config-e0f394cb.js";import"./controls.overlay-3ac8773d.js";import"./controls.term1-008f4be4.js";import"./controls.divide-d8ac5a9b.js";import"./summary-592d8f81.js";import"./violin-c1b78717.js";import"./violin.renderer-16540fb8.js";import"./brush-db0ed33a.js";import"./pointer-c7475677.js";import"./nodrag-777a34a5.js";import"./axis-6cb4f314.js";import"./line-264f8f9e.js";import"./constant-426a1483.js";import"./basis-3870f5ba.js";import"./log-4d74231e.js";import"./html.legend-3e428f9e.js";import"./violin.interactivity-534d6993.js";import"./niceNumLabels-8fdc6507.js";import"./barchart-e2af00a8.js";import"./bars.settings-64bb4642.js";import"./bars.renderer-f0e5af5a.js";import"./svg.legend-c82b153f.js";import"./barchart.events-272fd122.js";import"./sampleScatter-031f47de.js";import"./zoom-2d4ede33.js";import"./lasso-393c1570.js";import"./drag-c354e2c6.js";import"./svg.download-56529955.js";import"./symbol-fc7cbd41.js";import"./math-2fb199c6.js";import"./sampleScatter.rendererThree-3e6c032e.js";function p(e){const t={};const n=e.trim().split(/\r?\n/);const i=n[0].split("\t");const o=i.findIndex((e=>e.toLowerCase().includes("term_id")));const r=i.findIndex((e=>e.toLowerCase().includes("variable")));if(o!=-1)s(n,i);if(r!=-1)a(n,i);if(r==-1&&o==-1){throw`Unrecognized file format. Please check the header names.`}function s(e,n){const i=n.findIndex((e=>e.toLowerCase().includes("parent_id")));if(i==-1){throw`Missing required 'parent_id' header`}const r=n.findIndex((e=>e.toLowerCase().includes("name")));if(r==-1){throw`Missing required 'Name' header`}const s=n.findIndex((e=>e.toLowerCase().includes("type")));if(s==-1){throw`Missing required 'Type' header`}const a=n.findIndex((e=>e.toLowerCase().includes("values")));if(a==-1){throw`Missing required 'Values' header`}if(i==-1||r==-1||s==-1||a==-1){throw`Missing required header(s)`}const l=new Set;for(const[n,c]of e.entries()){if(n===0)continue;const e=n+1;try{const n=c.split("\t");for(const[t,i]of n.entries()){const n=t+1;let o;if(t==a)continue;if(i==""||i=="-"){o=true;throw`Blank or '-' entered for line ${e}, column ${n}`}if(o==true)throw`Invalid entry for line ${e}, column ${n}`}const d=n[o];const p=n[s];t[d]={id:d,name:n[r].trim().replace(/"/g,""),parent_id:n[i]!="root"?n[i]:null,type:n[s]!="non graphable"?n[s]:null};l.add(t[d].parent_id);if(p=="categorical"){t[d].values={};t[d].groupsetting={inuse:false}}const f=n[a].trim().replace(/"/g,"").split(";");for(const n of f){const i=n.trim();if(i=="")continue;const o=i.split("=");const r=o.shift();const s=o.join("=");if(!s)throw`Values="${i}" in line ${e} not in a key = value format.`;if(!t[d].values)t[d].values={};t[d].values[r]={label:s}}u(t[d])}catch(t){throw`Line ${e} error: ${t}`}}for(const e in t)t[e].isleaf=!l.has(t[e].id)}function a(e,n){if(r==-1){throw`Missing required 'Variable' header`}const i=n.findIndex((e=>e.toLowerCase().includes("type")));if(i==-1){throw`Missing required 'Type' header`}const o=n.findIndex((e=>e.toLowerCase().includes("categories")));const s=n.map(((e,t)=>e.toLowerCase().includes("level_")?t:-1)).filter((e=>e!=-1));if(!s.length)s.push(r);const a=n.findIndex((e=>e.toLowerCase().includes("additional attributes")));const l={};const c=new Set;const d=new Map;d.set(null,[]);for(const[n,p]of e.entries()){if(n===0)continue;const e=n+1;try{const n=p.split("\t");const m=s.map((e=>n[e].trim().replace(/"/g,""))).filter((e=>e!="-"));if(m.length!=new Set(m).size){throw`Non-unique levels in line ${e}: ${JSON.stringify(m)}`}for(const[e,t]of m.entries()){if(e==0){if(d.get(null).indexOf(t)==-1)d.get(null).push(t)}if(e!=m.length-1){if(!d.has(t))d.set(t,[])}for(const n of m){if(e==m.indexOf(n)-1){if(d.get(t).indexOf(n)==-1)d.get(t).push(n)}}}const u=m.pop();const y=n.indexOf("-");if(y!=-1&&y<n.indexOf(u)){throw`Blank or '-' value detected between levels in line ${e}`}const b=f(n[i],n[o],n[a],e,u);const h=n[r]||u;if(h in t){const n=t[h];throw`Error: Multiple config rows for term.id='${h}': lines# ${n.lineNum} and ${e}`}t[h]={id:h,name:u,type:b.type,values:b.values,groupsetting:b.groupsetting,ancestry:m.slice(),parent_name:m.pop()||null,lineNum:e,additionalAttributes:b.attributes};l[u]=h;c.add(t[h].parent_name)}catch(t){throw`Line ${e} error: ${t}`}}m(l,t,c);for(const e in t){const n=t[e];n.child_order=d.get(n.parent_name).indexOf(n.name)+1;n.isleaf=!c.has(n.name);n.parent_id=l[n.parent_name]||null;delete n.parent_name;delete n.lineNum;delete n.ancestry}}return{terms:Object.values(t)}}function f(e,t,n,i,o){if(!e)throw`No type provided for variable: ${o} on line ${i}`;const r={type:e,values:t==""||t==undefined?{}:JSON.parse(t),attributes:n==""||n==undefined?{}:JSON.parse(n)};u(r);if(r.type=="categorical"){r.groupsetting={inuse:false}}return r}function m(e,t,n,i){for(const i in t){const o=t[i];for(const[i,r]of o.ancestry.entries()){if(r in e){const n=e[r];const s=t[n];if(i-1<0&&s.parent_name||s.parent_name!=o.ancestry[i-1]){throw`Different parents for term=${r}, '${o.ancestry[i-1]}' and '${s.parent_name}'`}continue}t[r]={id:r,name:r,isleaf:false,ancestry:o.ancestry.slice(0,i)};t[r].parent_name=t[r].ancestry.slice(-1)[0]||null;e[r]=r;n.add(r)}}}function u(e){if(e.type!="integer"&&e.type!="float")return;if(!e.values)return;if(typeof e.values!="object")throw"numeric .values{} is not object";for(const t in e.values){if(t=="")throw"Cannot use empty string as an uncomputable category";const n=Number(t);if(Number.isNaN(n)){throw`Uncomputable category of a numeric term is required to be a number (here uses non-numeric value of ${t}).`}e.values[t].uncomputable=true}}function y(t,n){const i=t.append("div").style("margin","20px 20px 20px 40px").style("font-family","'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif").style("place-items","center left").style("overflow","hidden").classed("sjpp-app-ui",true);const o={};b(i);h(i,"Data Dictionary");const r=i.append("div").style("margin-left","2vw");g(r,o);const s=i.append("div").style("display","flex").style("align-items","center").style("margin","40px 0px 40px 130px");x(s,o,i,t);e(s,o,".databrowser_input");if(n)window.doms=o;return o}function b(e){e.append("div").style("margin","10px").style("opacity","0.65").html(`\n\t\t\t<ul>\n <li>\n Please see the <a href="https://github.com/stjude/proteinpaint/wiki/Data-Browser" target="_blank">documentation</a> for more information.\n </li>\n\t\t\t\t<li>\n\t\t\t\t\tDownload an example data dictionary <a href="https://proteinpaint.stjude.org/ppdemo/databrowser/dictionaryDemoData.tar.gz" target="_self" "download>here</a>.\n\t\t\t\t</li>\n </ul>`)}function h(e,n){const i=t(e,n);i.style("font-size","1.5em").style("color","#003366").style("margin","20px 10px 40px 10px").classed("sjpp-databrowser-section-header",true);const o=e.append("hr");o.style("color","ligthgrey").style("margin","-30px 0px 15px 0px").style("width","50vw").style("opacity","0.4")}function g(e,n){const i=[{label:"Select File",active:true,width:95,callback:async(e,t)=>{t.contentHolder.style("border","none").style("display","block");c(t.contentHolder);t.contentHolder.append("div").html(`<p style="margin-left: 10px; opacity: 0.65;">Select a file from your computer.</p>`);v(t.contentHolder,n);delete t.callback}},{label:"Paste Data",active:false,width:95,callback:async(e,t)=>{t.contentHolder.style("border","none").style("display","block");c(t.contentHolder);t.contentHolder.append("div").html(`<p style="margin-left: 10px; opacity: 0.65;">Paste data dictionary or phenotree in a tab delimited format.</p>`);j(t.contentHolder,n);delete t.callback}},{label:"File Path",active:false,width:95,callback:async(e,i)=>{i.contentHolder.style("border","none").style("display","block");c(i.contentHolder);i.contentHolder.append("div").html(`<p style="margin-left: 10px; opacity: 0.65;">Provide a URL file path.</p>`);t(i.contentHolder,"URL");w(i.contentHolder,n);delete i.callback}}];new a({holder:e,tabs:i}).main()}function w(e,t){const n=e.append("div").style("display","inline-block");const r=i(n).style("border","1px solid rgb(138, 177, 212)").classed("databrowser_input",true).on("keyup",(async()=>{const e=r.property("value").trim();if(o(e)){await fetch(e).then((e=>e.text())).then((e=>{t.data=p(e)}))}}))}function v(e,t){const n=e.append("div").style("display","inline-block");const i=r(n).classed("databrowser_input",true);i.on("change",(e=>{const n=e.target.files[0];const i=new FileReader;i.onload=e=>{t.data=p(e.target.result)};i.readAsText(n,"utf8")}))}function j(e,t){const n=e.append("div").style("display","block");const i=s({div:n,rows:10}).style("border","1px solid rgb(138, 177, 212)").style("margin","0px 0px 0px 20px").classed("databrowser_input",true).on("keyup",(async()=>{t.data=p(i.property("value").trim())}))}function x(e,t,i,o){const r=n({div:e,text:"Create Data Browser",color:"white",backgroundColor:"#001aff",border:"2px solid #001aff"});const s=e.append("div");r.style("margin-right","10px").style("font-size","16px").classed("sjpp-ui-submitBtn",true).attr("type","submit").on("click",(()=>{if(!t.data||t.data==undefined){const e=s.append("div").style("display","inline-block").style("max-width","20vw");l(e,"Please provide data");setTimeout((()=>e.remove()),3e3)}else{i.remove();d({holder:o,state:{vocab:{terms:t.data.terms},plots:[{chartType:"dictionary"}]}})}}))}export{y as init_databrowserUI};
|
|
1
|
+
import{a as e,m as t,c as n,d as i,i as o,f as r,e as s}from"./uiUtils-74700a01.js";import{aR as a,o as l,R as c}from"./app-71453429.js";import{appInit as d}from"./app-59194db0.js";import"./recover-b1ec4fed.js";import"./FilterRxComp-fc769f34.js";import"./table-1dae543a.js";import"./FilterStateless-8f30f856.js";import"./app-fb676934.js";import"./termInfo-4c759483.js";import"./termsetting-636d2271.js";import"path";import"./sampleScatter.interactivity-cfa3451d.js";import"./downloadTextfile-5723af95.js";import"./sampleView-30b97c7d.js";import"./controls-0467d2ec.js";import"./controls.btns-ad7b28a2.js";import"./controls.config-6cf816fb.js";import"./controls.overlay-3a55c2ec.js";import"./controls.term1-59f4cd60.js";import"./controls.divide-3c0d52d7.js";import"./summary-ee2045a5.js";import"./violin-a41b2e2b.js";import"./violin.renderer-149310eb.js";import"./brush-bb4566a3.js";import"./pointer-c7475677.js";import"./nodrag-bed2488c.js";import"./axis-6cb4f314.js";import"./line-264f8f9e.js";import"./constant-426a1483.js";import"./basis-3870f5ba.js";import"./log-ca1e2a74.js";import"./html.legend-ef8066dd.js";import"./violin.interactivity-bcf0ccc2.js";import"./niceNumLabels-ddb76164.js";import"./barchart-ef4874c8.js";import"./bars.settings-64bb4642.js";import"./bars.renderer-c46d3f44.js";import"./svg.legend-28652faa.js";import"./barchart.events-e24facf7.js";import"./sampleScatter-47dd82cb.js";import"./zoom-a40839cf.js";import"./lasso-ef63631b.js";import"./drag-88d451b4.js";import"./svg.download-54c99186.js";import"./symbol-fc7cbd41.js";import"./math-2fb199c6.js";import"./sampleScatter.rendererThree-c5321d24.js";function p(e){const t={};const n=e.trim().split(/\r?\n/);const i=n[0].split("\t");const o=i.findIndex((e=>e.toLowerCase().includes("term_id")));const r=i.findIndex((e=>e.toLowerCase().includes("variable")));if(o!=-1)s(n,i);if(r!=-1)a(n,i);if(r==-1&&o==-1){throw`Unrecognized file format. Please check the header names.`}function s(e,n){const i=n.findIndex((e=>e.toLowerCase().includes("parent_id")));if(i==-1){throw`Missing required 'parent_id' header`}const r=n.findIndex((e=>e.toLowerCase().includes("name")));if(r==-1){throw`Missing required 'Name' header`}const s=n.findIndex((e=>e.toLowerCase().includes("type")));if(s==-1){throw`Missing required 'Type' header`}const a=n.findIndex((e=>e.toLowerCase().includes("values")));if(a==-1){throw`Missing required 'Values' header`}if(i==-1||r==-1||s==-1||a==-1){throw`Missing required header(s)`}const l=new Set;for(const[n,c]of e.entries()){if(n===0)continue;const e=n+1;try{const n=c.split("\t");for(const[t,i]of n.entries()){const n=t+1;let o;if(t==a)continue;if(i==""||i=="-"){o=true;throw`Blank or '-' entered for line ${e}, column ${n}`}if(o==true)throw`Invalid entry for line ${e}, column ${n}`}const d=n[o];const p=n[s];t[d]={id:d,name:n[r].trim().replace(/"/g,""),parent_id:n[i]!="root"?n[i]:null,type:n[s]!="non graphable"?n[s]:null};l.add(t[d].parent_id);if(p=="categorical"){t[d].values={};t[d].groupsetting={inuse:false}}const f=n[a].trim().replace(/"/g,"").split(";");for(const n of f){const i=n.trim();if(i=="")continue;const o=i.split("=");const r=o.shift();const s=o.join("=");if(!s)throw`Values="${i}" in line ${e} not in a key = value format.`;if(!t[d].values)t[d].values={};t[d].values[r]={label:s}}u(t[d])}catch(t){throw`Line ${e} error: ${t}`}}for(const e in t)t[e].isleaf=!l.has(t[e].id)}function a(e,n){if(r==-1){throw`Missing required 'Variable' header`}const i=n.findIndex((e=>e.toLowerCase().includes("type")));if(i==-1){throw`Missing required 'Type' header`}const o=n.findIndex((e=>e.toLowerCase().includes("categories")));const s=n.map(((e,t)=>e.toLowerCase().includes("level_")?t:-1)).filter((e=>e!=-1));if(!s.length)s.push(r);const a=n.findIndex((e=>e.toLowerCase().includes("additional attributes")));const l={};const c=new Set;const d=new Map;d.set(null,[]);for(const[n,p]of e.entries()){if(n===0)continue;const e=n+1;try{const n=p.split("\t");const m=s.map((e=>n[e].trim().replace(/"/g,""))).filter((e=>e!="-"));if(m.length!=new Set(m).size){throw`Non-unique levels in line ${e}: ${JSON.stringify(m)}`}for(const[e,t]of m.entries()){if(e==0){if(d.get(null).indexOf(t)==-1)d.get(null).push(t)}if(e!=m.length-1){if(!d.has(t))d.set(t,[])}for(const n of m){if(e==m.indexOf(n)-1){if(d.get(t).indexOf(n)==-1)d.get(t).push(n)}}}const u=m.pop();const y=n.indexOf("-");if(y!=-1&&y<n.indexOf(u)){throw`Blank or '-' value detected between levels in line ${e}`}const b=f(n[i],n[o],n[a],e,u);const h=n[r]||u;if(h in t){const n=t[h];throw`Error: Multiple config rows for term.id='${h}': lines# ${n.lineNum} and ${e}`}t[h]={id:h,name:u,type:b.type,values:b.values,groupsetting:b.groupsetting,ancestry:m.slice(),parent_name:m.pop()||null,lineNum:e,additionalAttributes:b.attributes};l[u]=h;c.add(t[h].parent_name)}catch(t){throw`Line ${e} error: ${t}`}}m(l,t,c);for(const e in t){const n=t[e];n.child_order=d.get(n.parent_name).indexOf(n.name)+1;n.isleaf=!c.has(n.name);n.parent_id=l[n.parent_name]||null;delete n.parent_name;delete n.lineNum;delete n.ancestry}}return{terms:Object.values(t)}}function f(e,t,n,i,o){if(!e)throw`No type provided for variable: ${o} on line ${i}`;const r={type:e,values:t==""||t==undefined?{}:JSON.parse(t),attributes:n==""||n==undefined?{}:JSON.parse(n)};u(r);if(r.type=="categorical"){r.groupsetting={inuse:false}}return r}function m(e,t,n,i){for(const i in t){const o=t[i];for(const[i,r]of o.ancestry.entries()){if(r in e){const n=e[r];const s=t[n];if(i-1<0&&s.parent_name||s.parent_name!=o.ancestry[i-1]){throw`Different parents for term=${r}, '${o.ancestry[i-1]}' and '${s.parent_name}'`}continue}t[r]={id:r,name:r,isleaf:false,ancestry:o.ancestry.slice(0,i)};t[r].parent_name=t[r].ancestry.slice(-1)[0]||null;e[r]=r;n.add(r)}}}function u(e){if(e.type!="integer"&&e.type!="float")return;if(!e.values)return;if(typeof e.values!="object")throw"numeric .values{} is not object";for(const t in e.values){if(t=="")throw"Cannot use empty string as an uncomputable category";const n=Number(t);if(Number.isNaN(n)){throw`Uncomputable category of a numeric term is required to be a number (here uses non-numeric value of ${t}).`}e.values[t].uncomputable=true}}function y(t,n){const i=t.append("div").style("margin","20px 20px 20px 40px").style("font-family","'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif").style("place-items","center left").style("overflow","hidden").classed("sjpp-app-ui",true);const o={};b(i);h(i,"Data Dictionary");const r=i.append("div").style("margin-left","2vw");g(r,o);const s=i.append("div").style("display","flex").style("align-items","center").style("margin","40px 0px 40px 130px");x(s,o,i,t);e(s,o,".databrowser_input");if(n)window.doms=o;return o}function b(e){e.append("div").style("margin","10px").style("opacity","0.65").html(`\n\t\t\t<ul>\n <li>\n Please see the <a href="https://github.com/stjude/proteinpaint/wiki/Data-Browser" target="_blank">documentation</a> for more information.\n </li>\n\t\t\t\t<li>\n\t\t\t\t\tDownload an example data dictionary <a href="https://proteinpaint.stjude.org/ppdemo/databrowser/dictionaryDemoData.tar.gz" target="_self" "download>here</a>.\n\t\t\t\t</li>\n </ul>`)}function h(e,n){const i=t(e,n);i.style("font-size","1.5em").style("color","#003366").style("margin","20px 10px 40px 10px").classed("sjpp-databrowser-section-header",true);const o=e.append("hr");o.style("color","ligthgrey").style("margin","-30px 0px 15px 0px").style("width","50vw").style("opacity","0.4")}function g(e,n){const i=[{label:"Select File",active:true,width:95,callback:async(e,t)=>{t.contentHolder.style("border","none").style("display","block");c(t.contentHolder);t.contentHolder.append("div").html(`<p style="margin-left: 10px; opacity: 0.65;">Select a file from your computer.</p>`);v(t.contentHolder,n);delete t.callback}},{label:"Paste Data",active:false,width:95,callback:async(e,t)=>{t.contentHolder.style("border","none").style("display","block");c(t.contentHolder);t.contentHolder.append("div").html(`<p style="margin-left: 10px; opacity: 0.65;">Paste data dictionary or phenotree in a tab delimited format.</p>`);j(t.contentHolder,n);delete t.callback}},{label:"File Path",active:false,width:95,callback:async(e,i)=>{i.contentHolder.style("border","none").style("display","block");c(i.contentHolder);i.contentHolder.append("div").html(`<p style="margin-left: 10px; opacity: 0.65;">Provide a URL file path.</p>`);t(i.contentHolder,"URL");w(i.contentHolder,n);delete i.callback}}];new a({holder:e,tabs:i}).main()}function w(e,t){const n=e.append("div").style("display","inline-block");const r=i(n).style("border","1px solid rgb(138, 177, 212)").classed("databrowser_input",true).on("keyup",(async()=>{const e=r.property("value").trim();if(o(e)){await fetch(e).then((e=>e.text())).then((e=>{t.data=p(e)}))}}))}function v(e,t){const n=e.append("div").style("display","inline-block");const i=r(n).classed("databrowser_input",true);i.on("change",(e=>{const n=e.target.files[0];const i=new FileReader;i.onload=e=>{t.data=p(e.target.result)};i.readAsText(n,"utf8")}))}function j(e,t){const n=e.append("div").style("display","block");const i=s({div:n,rows:10}).style("border","1px solid rgb(138, 177, 212)").style("margin","0px 0px 0px 20px").classed("databrowser_input",true).on("keyup",(async()=>{t.data=p(i.property("value").trim())}))}function x(e,t,i,o){const r=n({div:e,text:"Create Data Browser",color:"white",backgroundColor:"#001aff",border:"2px solid #001aff"});const s=e.append("div");r.style("margin-right","10px").style("font-size","16px").classed("sjpp-ui-submitBtn",true).attr("type","submit").on("click",(()=>{if(!t.data||t.data==undefined){const e=s.append("div").style("display","inline-block").style("max-width","20vw");l(e,"Please provide data");setTimeout((()=>e.remove()),3e3)}else{i.remove();d({holder:o,state:{vocab:{terms:t.data.terms},plots:[{chartType:"dictionary"}]}})}}))}export{y as init_databrowserUI};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aD as e,l as t,q as s}from"./app-
|
|
1
|
+
import{aD as e,l as t,q as s}from"./app-71453429.js";import{u as n,w as i}from"./FilterRxComp-fc769f34.js";import{d as a}from"./drag-88d451b4.js";import{p as o}from"./pointer-c7475677.js";import"./table-1dae543a.js";import"./nodrag-bed2488c.js";function r(s){return e(this,void 0,void 0,(function*(){if(!s.num_obj)throw`Missing density data [density.ts setDensityPlot()]`;const e=s.num_obj;if(e.density_data.maxvalue==e.density_data.minvalue){d(s);e.brushes.forEach((t=>{if(t.range.stop>e.density_data.minvalue)t.init()}))}else{s.q.mode=="spline"?s.dom.knots_div:s.dom.bins_div;s.vr.render();s.num_obj.binsize_g=s.num_obj.svg.append("g").attr("transform",`translate(${e.plot_size.xpad}, ${e.plot_size.ypad})`).attr("class","binsize_g");const n=e.density_data.maxvalue;const i=e.density_data.minvalue;s.num_obj.xscale=t().domain([i,n]).range([e.plot_size.xpad,e.plot_size.width-e.plot_size.xpad]);s.num_obj.ranges=[];if(s.q.first_bin){s.num_obj.ranges.push(s.q.first_bin);s.num_obj.ranges[0].bin="first"}if(s.q.last_bin){s.num_obj.ranges.push(s.q.last_bin);s.num_obj.ranges[1].bin="last"}s.num_obj.brushes=[];l(s,s.q)}s.renderBinLines=l}))}function d(e){e.num_obj.no_density_data=true;e.num_obj.ranges=[];if(e.q.first_bin){e.num_obj.ranges.push(e.q.first_bin);e.num_obj.ranges[0].bin="first"}if(e.q.last_bin){e.num_obj.ranges.push(e.q.last_bin);e.num_obj.ranges[1].bin="last"}e.num_obj.brushes=[];const t=e.num_obj.brushes;if(!e.num_obj.custom_bins_q){return}for(const s of e.num_obj.ranges.values()){const n=t.find((e=>e.orig===s));let i;if(!n){i={orig:s,range:JSON.parse(JSON.stringify(s))};t.push(i)}else{i=n}const a=e.num_obj.custom_bins_q;const o=e.num_obj.density_data.maxvalue;const r=e.num_obj.density_data.minvalue;const d=a.lst||[];if(d.length==0){const t=(o+r)/2;const s={startunbounded:true,stop:t,stopinclusive:true,name:"First bin"};const n={start:t,stopunbounded:true,startinclusive:false,name:"Last bin"};d.push(s);d.push(n);e.num_obj.custom_bins_q.lst=d}}}function l(e,t){const r=e.num_obj;if(!r.density_data)throw`Missing .density_data [density.ts, renderBinLines()]`;const d=Math.round(r.xscale(r.density_data.minvalue));const l=Math.round(r.xscale(r.density_data.maxvalue));const u=[];if(t.mode=="discrete"&&t.type=="regular-bin"){const e=r.density_data.maxvalue+Math.abs(t.first_bin.stop)-Math.min(r.density_data.minvalue,0);let s=0;for(let n=t.first_bin.stop;n<=e;n=n+t.bin_size){u.push({x:n,index:s,scaledX:Math.round(r.xscale(n))});s++}const n=u.slice().reverse().find((e=>e.scaledX<=l));if(t.last_bin&&t.last_bin.start&&t.last_bin.start!==n.x){u.push({x:t.last_bin.start,index:s,scaledX:Math.round(r.xscale(t.last_bin.start))})}}else if(t.mode=="discrete"&&t.type=="custom-bin"||t.mode=="binary"){u.push(...t.lst.slice(1).map(((e,t)=>({x:e.start,index:t,scaledX:Math.round(r.xscale(e.start))}))))}else if(t.mode=="spline"){u.push(...t.knots.map(((e,t)=>({x:e.value,index:t,scaledX:Math.round(r.xscale(e.value))}))))}u.forEach(((t,s)=>{t.isDraggable=e.q.type=="custom-bin"||e.q.mode=="spline"||s===0||e.q.last_bin&&e.q.last_bin.start===t.x&&t.index==u.length-1}));e.num_obj.binsize_g.selectAll("line").remove();const c=u.length==1?u[0]:u.slice().reverse().find((e=>e.scaledX<l));let m=c?Math.min(l,c.scaledX):l;e.num_obj.binsize_g.selectAll("line").data(u).enter().append("line").style("stroke",(e=>e.isDraggable?"#cc0000":"#555")).style("stroke-width",1).attr("x1",(e=>e.scaledX)).attr("y1",0).attr("x2",(e=>e.scaledX)).attr("y2",r.plot_size.height).style("cursor",(e=>e.isDraggable?"ew-resize":"")).style("display",(e=>!e.isDraggable&&e.scaledX>m?"none":"")).on("mouseover",(function(t){if(e.q.type!="regular-bin"||t.isDraggable)s(this).style("stroke-width",3)})).on("mouseout",(function(){s(this).style("stroke-width",1)})).each((function(e){if(e.isDraggable){const e=a().on("drag",g).on("end",p);s(this).call(e)}}));const b=e.num_obj.binsize_g.selectAll("line").filter((e=>!e.isDraggable));function g(t,a){const c=o(t,this)[0];if(c<=d||c>=l)return;const g=e.q.type=="regular-bin"?s(this):a.index>0&&c<=u[a.index-1].scaledX?s(this.previousSibling):a.index<u.length-1&&c>=u[a.index+1].scaledX?s(this.nextSibling):s(this);const p=g.datum();p.draggedX=c;g.attr("x1",p.draggedX).attr("y1",0).attr("x2",p.draggedX).attr("y2",r.plot_size.height);const _=+r.xscale.invert(p.draggedX);const f=e.term.type=="integer"?Math.round(_):_.toFixed(3);if(e.q.mode=="discrete"&&e.q.type=="regular-bin"){if(p.index===0){e.dom.first_stop_input.property("value",f);const t=e.q.last_bin?m:l;const n=p.draggedX-p.scaledX;b.each((function(e){e.draggedX=e.scaledX+n;s(this).attr("x1",e.draggedX).attr("y1",0).attr("x2",e.draggedX).attr("y2",r.plot_size.height).style("display",(e=>e.draggedX>=t?"none":""))}));e.q.first_bin.stop=f}else{e.dom.last_start_input.property("value",f);e.q.last_bin.start=f;b.style("display",(e=>p.draggedX&&e.scaledX>=p.draggedX?"none":""))}}else if(e.q.mode=="discrete"&&e.q.type=="custom-bin"||e.q.mode=="binary"){e.q.lst[p.index+1].start=f;e.q.lst[p.index+1].label=n(e.q.lst[p.index+1],e.q);e.q.lst[p.index+1].range=i(e.q.lst[p.index+1],e.q);e.q.lst[p.index].stop=f;e.q.lst[p.index].label=n(e.q.lst[p.index],e.q);e.q.lst[p.index].range=i(e.q.lst[p.index],e.q);if(e.dom.customBinBoundaryInput){e.q.modeBinaryCutoffType="normal";if(e.dom.customBinBoundaryPercentileCheckbox){e.dom.customBinBoundaryPercentileCheckbox.property("checked",false)}e.dom.customBinBoundaryInput.property("value",e.q.lst.slice(1).map((e=>e.start)).join("\n"))}if(e.dom.customBinLabelInput){e.dom.customBinLabelInput.property("value",(e=>e.label))}if(e.dom.customBinRanges){e.dom.customBinRanges.html((e=>e.range))}}else if(e.q.mode=="spline"){e.q.knots[p.index].value=f;if(e.dom.customKnotsInput){e.dom.customKnotsInput.property("value",e.q.knots.map((e=>e.value)).join("\n"))}}else{throw"Dragging not allowed for this term type"}}function p(t,n){const i=o(t,this)[0];const a=e.q.type=="regular-bin"?s(this):n.index>0&&i<=u[n.index-1].scaledX?s(this.previousSibling):n.index<u.length-1&&i>=u[n.index+1].scaledX?s(this.nextSibling):s(this);const d=a.datum();d.scaledX=d.draggedX;d.x=+r.xscale.invert(d.draggedX).toFixed(e.term.type=="integer"?0:3);if(e.q.mode=="discrete"&&e.q.type=="regular-bin"){if(d.index===0){e.q.first_bin.stop=d.x;b.each((function(t){t.scaledX=t.draggedX;t.x=+r.xscale.invert(t.draggedX).toFixed(e.term.type=="integer"?0:3)}))}else{e.q.last_bin.start=d.x}m=u.slice().reverse().find((e=>e.scaledX<l)).scaledX}else if(e.q.mode=="discrete"&&e.q.type=="custom-bin"){e.q.lst[d.index+1].start=d.x;e.q.lst[d.index].stop=d.x}else if(e.q.mode=="spline"){e.q.knots[d.index].value=d.x}}}export{r as setDensityPlot};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{az as t,aS as e}from"./app-
|
|
1
|
+
import{az as t,aS as e}from"./app-71453429.js";import{appInit as r}from"./app-fb676934.js";import"./FilterRxComp-fc769f34.js";import"./table-1dae543a.js";import"./termInfo-4c759483.js";class s{constructor(t){this.type="tree";this.dom={holder:t.holder.style("padding","20px"),header:t.header}}async init(t){this.tree=await r({vocabApi:this.app.vocabApi,holder:this.dom.holder,state:this.getState(t),tree:{click_term:t=>{const e=t.term||t;this.app.dispatch({type:"plot_create",config:{chartType:e.type=="survival"?"survival":"summary",term:t.term?t:{term:e}}});this.app.dispatch({type:"plot_delete",id:this.id})}}})}getState(t){return{tree:{usecase:{target:"dictionary"}},vocab:t.vocab,activeCohort:t.activeCohort,termfilter:t.termfilter,selectdTerms:t.selectedTerms,customTerms:t.customTerms}}main(){if(this.dom.header)this.dom.header.html("Data Dictionary");this.tree.dispatch({type:"app_refresh",state:this.state})}}const a=t(s);const i=a;function o(t,r){const s={};return e(s,t)}export{i as componentInit,a as dictInit,o as getPlotConfig};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,a as t,d as n,b as r,c as u,y as a}from"./nodrag-
|
|
1
|
+
import{n as e,a as t,d as n,b as r,c as u,y as a}from"./nodrag-bed2488c.js";import{aZ as i,q as o}from"./app-71453429.js";import{p as c}from"./pointer-c7475677.js";var l=e=>()=>e;function f(e,{sourceEvent:t,subject:n,target:r,identifier:u,active:a,x:i,y:o,dx:c,dy:l,dispatch:f}){Object.defineProperties(this,{type:{value:e,enumerable:true,configurable:true},sourceEvent:{value:t,enumerable:true,configurable:true},subject:{value:n,enumerable:true,configurable:true},target:{value:r,enumerable:true,configurable:true},identifier:{value:u,enumerable:true,configurable:true},active:{value:a,enumerable:true,configurable:true},x:{value:i,enumerable:true,configurable:true},y:{value:o,enumerable:true,configurable:true},dx:{value:c,enumerable:true,configurable:true},dy:{value:l,enumerable:true,configurable:true},_:{value:f}})}f.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function s(e){return!e.ctrlKey&&!e.button}function d(){return this.parentNode}function g(e,t){return t==null?{x:e.x,y:e.y}:t}function h(){return navigator.maxTouchPoints||"ontouchstart"in this}function v(){var v=s,b=d,m=g,p=h,y={},x=i("start","drag","end"),w=0,j,T,k,E,_=0;function q(t){t.on("mousedown.drag",P).filter(p).on("touchstart.drag",D).on("touchmove.drag",K,e).on("touchend.drag touchcancel.drag",M).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function P(e,u){if(E||!v.call(this,e,u))return;var a=N(this,b.call(this,e,u),e,u,"mouse");if(!a)return;o(e.view).on("mousemove.drag",X,t).on("mouseup.drag",Y,t);n(e.view);r(e);k=false;j=e.clientX;T=e.clientY;a("start",e)}function X(e){u(e);if(!k){var t=e.clientX-j,n=e.clientY-T;k=t*t+n*n>_}y.mouse("drag",e)}function Y(e){o(e.view).on("mousemove.drag mouseup.drag",null);a(e.view,k);u(e);y.mouse("end",e)}function D(e,t){if(!v.call(this,e,t))return;var n=e.changedTouches,u=b.call(this,e,t),a=n.length,i,o;for(i=0;i<a;++i){if(o=N(this,u,e,t,n[i].identifier,n[i])){r(e);o("start",e,n[i])}}}function K(e){var t=e.changedTouches,n=t.length,r,a;for(r=0;r<n;++r){if(a=y[t[r].identifier]){u(e);a("drag",e,t[r])}}}function M(e){var t=e.changedTouches,n=t.length,u,a;if(E)clearTimeout(E);E=setTimeout((function(){E=null}),500);for(u=0;u<n;++u){if(a=y[t[u].identifier]){r(e);a("end",e,t[u])}}}function N(e,t,n,r,u,a){var i=x.copy(),o=c(a||n,t),l,s,d;if((d=m.call(e,new f("beforestart",{sourceEvent:n,target:q,identifier:u,active:w,x:o[0],y:o[1],dx:0,dy:0,dispatch:i}),r))==null)return;l=d.x-o[0]||0;s=d.y-o[1]||0;return function n(a,g,h){var v=o,b;switch(a){case"start":y[u]=n,b=w++;break;case"end":delete y[u],--w;case"drag":o=c(h||g,t),b=w;break}i.call(a,e,new f(a,{sourceEvent:g,subject:d,target:q,identifier:u,active:b,x:o[0]+l,y:o[1]+s,dx:o[0]-v[0],dy:o[1]-v[1],dispatch:i}),r)}}q.filter=function(e){return arguments.length?(v=typeof e==="function"?e:l(!!e),q):v};q.container=function(e){return arguments.length?(b=typeof e==="function"?e:l(e),q):b};q.subject=function(e){return arguments.length?(m=typeof e==="function"?e:l(e),q):m};q.touchable=function(e){return arguments.length?(p=typeof e==="function"?e:l(!!e),q):p};q.on=function(){var e=x.on.apply(x,arguments);return e===x?q:e};q.clickDistance=function(e){return arguments.length?(_=(e=+e)*e,q):Math.sqrt(_)};return q}export{v as d};
|