@sjcrh/proteinpaint-client 2.74.2 → 2.76.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/dist/{2dmaf-b2d78c57.js → 2dmaf-74b99126.js} +1 -1
  2. package/dist/AppHeader-cecb39c2.js +1 -0
  3. package/dist/{ColorScale-9c76aef3.js → ColorScale-21cab8d2.js} +1 -1
  4. package/dist/DEanalysis-95bad59a.js +1 -0
  5. package/dist/Disco-a6e921a0.js +1 -0
  6. package/dist/Disco.UI-9ad999ed.js +1 -0
  7. package/dist/{DragControls-586f72db.js → DragControls-e3b6a937.js} +1 -1
  8. package/dist/{DziViewer-6311327c.js → DziViewer-354a790d.js} +1 -1
  9. package/dist/FilterRxComp-701a1480.js +1 -0
  10. package/dist/{FilterStateless-046081c2.js → FilterStateless-54c0b763.js} +1 -1
  11. package/dist/{HicApp-40e44cba.js → HicApp-d5a946bf.js} +1 -1
  12. package/dist/{OrbitControls-0cda1772.js → OrbitControls-694652cd.js} +1 -1
  13. package/dist/WSIViewer-dc7f8eb0.js +1 -0
  14. package/dist/adSandbox-f438e388.js +1 -0
  15. package/dist/app-3320ab6f.js +1 -0
  16. package/dist/app-649f8357.js +1 -0
  17. package/dist/app-b369b169.js +1 -0
  18. package/dist/app.js +1 -1
  19. package/dist/bam-431875ef.js +1 -0
  20. package/dist/barchart-8277ed43.js +1 -0
  21. package/dist/barchart.events-da29c90d.js +1 -0
  22. package/dist/{bars.renderer-5f7a4174.js → bars.renderer-dcfdd59b.js} +1 -1
  23. package/dist/block-6aedd569.js +1 -0
  24. package/dist/block.lazyload-87b12654.js +1 -0
  25. package/dist/block.legend-d3f61ef7.js +1 -0
  26. package/dist/{block.mds-effc078d.js → block.mds-3ad17dfa.js} +1 -1
  27. package/dist/{block.mds.cnv-ec861a26.js → block.mds.cnv-857ba868.js} +1 -1
  28. package/dist/{block.mds.expressionrank-a2ad7c80.js → block.mds.expressionrank-7e3b208c.js} +1 -1
  29. package/dist/{block.mds.expressionstat-31dc5595.js → block.mds.expressionstat-f2d31c86.js} +1 -1
  30. package/dist/{block.mds.geneboxplot-3ca857ce.js → block.mds.geneboxplot-f0fbaf12.js} +1 -1
  31. package/dist/{block.mds.junction-debba938.js → block.mds.junction-7f87f48f.js} +1 -1
  32. package/dist/{block.mds.svcnv-8dc5abdf.js → block.mds.svcnv-ac035c12.js} +1 -1
  33. package/dist/{block.mds.svcnv.share-81e62600.js → block.mds.svcnv.share-886d9479.js} +1 -1
  34. package/dist/block.mds2-7852c1ee.js +1 -0
  35. package/dist/{block.svg-9121e8e7.js → block.svg-9b916fa6.js} +1 -1
  36. package/dist/{block.tk.aicheck-c1b478e9.js → block.tk.aicheck-6770e333.js} +1 -1
  37. package/dist/{block.tk.ase-0f6ded48.js → block.tk.ase-ee807e59.js} +1 -1
  38. package/dist/{block.tk.bam-7cd06aee.js → block.tk.bam-00fba6e8.js} +1 -1
  39. package/dist/{block.tk.bedgraphdot-3ef8b94e.js → block.tk.bedgraphdot-7fda78e9.js} +1 -1
  40. package/dist/{block.tk.bigwig.ui-d1248810.js → block.tk.bigwig.ui-cc1a42f3.js} +1 -1
  41. package/dist/{block.tk.hicstraw-ee731e55.js → block.tk.hicstraw-526470e3.js} +1 -1
  42. package/dist/{block.tk.junction-4d8cab4d.js → block.tk.junction-b43a4cda.js} +1 -1
  43. package/dist/{block.tk.junction.textmatrixui-a6430b27.js → block.tk.junction.textmatrixui-a60ed78a.js} +1 -1
  44. package/dist/{block.tk.ld-8429a18b.js → block.tk.ld-d15bde41.js} +1 -1
  45. package/dist/{block.tk.menu-3f31f958.js → block.tk.menu-3aeb93c6.js} +1 -1
  46. package/dist/{block.tk.pgv-07e46705.js → block.tk.pgv-9af2bd64.js} +1 -1
  47. package/dist/boxplot-e17a17b7.js +1 -0
  48. package/dist/brainImaging-bf2ceee9.js +1 -0
  49. package/dist/{brush-c386fe3d.js → brush-aa175142.js} +1 -1
  50. package/dist/categorical-a52014a1.js +1 -0
  51. package/dist/condition-c646e357.js +1 -0
  52. package/dist/controls-287e6efa.js +1 -0
  53. package/dist/{controls.btns-1cb2bfab.js → controls.btns-79b805dd.js} +1 -1
  54. package/dist/controls.config-28d6d6a8.js +1 -0
  55. package/dist/cuminc-9e275854.js +1 -0
  56. package/dist/{customdata.inputui-cbd712ea.js → customdata.inputui-dc49d94b.js} +1 -1
  57. package/dist/dataDownload-3a3d4f33.js +1 -0
  58. package/dist/databrowser.ui-d8d3f8fd.js +1 -0
  59. package/dist/{density-19266ebf.js → density-a82a8b1c.js} +1 -1
  60. package/dist/dictionary-c5a19d90.js +1 -0
  61. package/dist/{drag-0b968811.js → drag-7b30ba17.js} +1 -1
  62. package/dist/{e2pca-b8752945.js → e2pca-82765817.js} +1 -1
  63. package/dist/{ep-a86b185a.js → ep-d017ec2f.js} +1 -1
  64. package/dist/facet-a9b44ef3.js +1 -0
  65. package/dist/{fusion.parse-244b2b97.js → fusion.parse-d40d0b9d.js} +1 -1
  66. package/dist/geneExpClustering-34c3f518.js +1 -0
  67. package/dist/geneExpression-0d1b7244.js +1 -0
  68. package/dist/{geneExpression-e0430f2e.js → geneExpression-589f485b.js} +1 -1
  69. package/dist/{geneExpression-387205bf.js → geneExpression-7d14983f.js} +1 -1
  70. package/dist/geneORA-903a780f.js +1 -0
  71. package/dist/{geneVariant-7de021b6.js → geneVariant-89601b34.js} +1 -1
  72. package/dist/geneVariant-92c4e870.js +1 -0
  73. package/dist/{genefusion.ui-a331de19.js → genefusion.ui-7e22e811.js} +1 -1
  74. package/dist/{genesearch-ea59f5d4.js → genesearch-a4e19f0d.js} +1 -1
  75. package/dist/geneset-108a39d2.js +1 -0
  76. package/dist/genomeBrowser-12f86a36.js +1 -0
  77. package/dist/genomeBrowser.controls-d5067811.js +1 -0
  78. package/dist/{groupsetting-20ffef77.js → groupsetting-b4416a96.js} +1 -1
  79. package/dist/gsea-543dab25.js +1 -0
  80. package/dist/hierCluster-26e14090.js +1 -0
  81. package/dist/hierCluster.config-98e82dff.js +1 -0
  82. package/dist/{hierCluster.interactivity-9b433033.js → hierCluster.interactivity-e56f6542.js} +1 -1
  83. package/dist/hierCluster.renderers-74a64cf5.js +1 -0
  84. package/dist/{html.legend-abb5452e.js → html.legend-a3f4ebfe.js} +1 -1
  85. package/dist/imagePlot-b9eae4ae.js +1 -0
  86. package/dist/{lasso-55cf4057.js → lasso-f767f634.js} +1 -1
  87. package/dist/launch.adhoc-abca6af3.js +1 -0
  88. package/dist/leftlabel.sample-24c2388d.js +1 -0
  89. package/dist/legacyDataset-e0e201ab.js +1 -0
  90. package/dist/{log-cf45fcf2.js → log-99af3443.js} +1 -1
  91. package/dist/{lollipop-c5b6e615.js → lollipop-806f8fa4.js} +1 -1
  92. package/dist/{maf-7535f1f9.js → maf-b06579e4.js} +1 -1
  93. package/dist/{maftimeline-1292ab62.js → maftimeline-4840a380.js} +1 -1
  94. package/dist/matrix-00bb50ff.js +1 -0
  95. package/dist/matrix.cells-914dd0c6.js +1 -0
  96. package/dist/{matrix.cluster-168bc96b.js → matrix.cluster-783ceab0.js} +1 -1
  97. package/dist/matrix.config-6ce74dfe.js +1 -0
  98. package/dist/matrix.controls-7b2a6f95.js +1 -0
  99. package/dist/{matrix.data-b1d0febe.js → matrix.data-dac4f1b7.js} +1 -1
  100. package/dist/{matrix.dom-00defa30.js → matrix.dom-4e10bbe9.js} +1 -1
  101. package/dist/matrix.groups-b9fca14a.js +1 -0
  102. package/dist/matrix.interactivity-84169b43.js +1 -0
  103. package/dist/{matrix.layout-c2345231.js → matrix.layout-dd5a44fd.js} +1 -1
  104. package/dist/matrix.legend-ac6d45e6.js +1 -0
  105. package/dist/matrix.renderers-78010275.js +1 -0
  106. package/dist/matrix.serieses-9b4fd744.js +1 -0
  107. package/dist/matrix.sort-014d798d.js +1 -0
  108. package/dist/{matrix.sorterUi-a741ba2e.js → matrix.sorterUi-9bf7e6f9.js} +1 -1
  109. package/dist/{mavb-92136d17.js → mavb-c6be46fc.js} +1 -1
  110. package/dist/{mds.fimo-c03115b4.js → mds.fimo-bff6a1ed.js} +1 -1
  111. package/dist/mds.samplescatterplot-9a02b9fb.js +1 -0
  112. package/dist/{mds.survivalplot-366db380.js → mds.survivalplot-055549f4.js} +1 -1
  113. package/dist/{metaboliteIntensity-ddb6e480.js → metaboliteIntensity-fac92f8b.js} +1 -1
  114. package/dist/niceNumLabels-238aabce.js +1 -0
  115. package/dist/{nodrag-2c046d31.js → nodrag-16ad4b03.js} +1 -1
  116. package/dist/{notify-44ebc0df.js → notify-224cccbd.js} +1 -1
  117. package/dist/{numeric-918d4686.js → numeric-b0b17185.js} +1 -1
  118. package/dist/numeric.binary-1f9e93f2.js +1 -0
  119. package/dist/numeric.continuous-ebcd0567.js +1 -0
  120. package/dist/numeric.discrete-7b97044a.js +1 -0
  121. package/dist/numeric.spline-1be88f3d.js +1 -0
  122. package/dist/numeric.toggle-7fa2a770.js +1 -0
  123. package/dist/oncomatrix-351af2a0.js +1 -0
  124. package/dist/{parseData-e66308cd.js → parseData-21fe9822.js} +1 -1
  125. package/dist/partjson.esm-b3f1fc21.js +1 -0
  126. package/dist/{plot.2dvaf-73dbfbd1.js → plot.2dvaf-18a35e4b.js} +1 -1
  127. package/dist/plot.app-30c4b8e5.js +1 -0
  128. package/dist/plot.barplot-7c4865a2.js +1 -0
  129. package/dist/{plot.boxplot-641da058.js → plot.boxplot-fe3046c6.js} +1 -1
  130. package/dist/plot.brainImaging-2ceb6023.js +1 -0
  131. package/dist/plot.disco-6011f87f.js +1 -0
  132. package/dist/{plot.dzi-41ea26e5.js → plot.dzi-6728a7c8.js} +1 -1
  133. package/dist/plot.ssgq-5581dc56.js +1 -0
  134. package/dist/{plot.vaf2cov-80e58833.js → plot.vaf2cov-b2284c64.js} +1 -1
  135. package/dist/{plot.wsi-51cc48ef.js → plot.wsi-9a9d4034.js} +1 -1
  136. package/dist/profileBarchart-0476f1f8.js +1 -0
  137. package/dist/profileHome-32eb9b50.js +1 -0
  138. package/dist/profilePlot-c7e099e8.js +1 -0
  139. package/dist/profilePolar-6b981e63.js +1 -0
  140. package/dist/profileRadar-bca1cc03.js +1 -0
  141. package/dist/profileRadarFacility-bbb1ecd8.js +1 -0
  142. package/dist/profileSummary-b114204f.js +1 -0
  143. package/dist/recover-49e09de0.js +1 -0
  144. package/dist/regression.inputs-a761f40d.js +1 -0
  145. package/dist/regression.inputs.values.table-5929d25a.js +1 -0
  146. package/dist/regression.results-69bc42d0.js +1 -0
  147. package/dist/{renderPvalueTable-895a72c2.js → renderPvalueTable-dc5d15f2.js} +1 -1
  148. package/dist/sampleScatter-2d0ed680.js +1 -0
  149. package/dist/{sampleScatter.rendererThree-5e686004.js → sampleScatter.rendererThree-0b12ac61.js} +2 -2
  150. package/dist/sampleView-484ab133.js +1 -0
  151. package/dist/samplelst-689796e6.js +1 -0
  152. package/dist/{samplematrix-2a1d7d82.js → samplematrix-2b137a05.js} +1 -1
  153. package/dist/scatter-205e013f.js +1 -0
  154. package/dist/{select2Terms-b4fffc50.js → select2Terms-b21e184a.js} +1 -1
  155. package/dist/{selectGenomeWithTklst-acf7e568.js → selectGenomeWithTklst-466995b4.js} +1 -1
  156. package/dist/singleCellCellType-5db730bb.js +1 -0
  157. package/dist/{singleCellGeneExpression-6de17162.js → singleCellGeneExpression-7147a2d0.js} +1 -1
  158. package/dist/singleCellPlot-73b2738f.js +1 -0
  159. package/dist/{singlecell-f76c856a.js → singlecell-24409b72.js} +1 -1
  160. package/dist/singlecell-bca774ed.js +1 -0
  161. package/dist/{snp-9590a1b4.js → snp-37d06246.js} +1 -1
  162. package/dist/snp-a8388ce4.js +1 -0
  163. package/dist/snplocus-7a1ea8c9.js +1 -0
  164. package/dist/{snplst-007a1926.js → snplst-6865d7c7.js} +1 -1
  165. package/dist/{spliceevent.a53ss.diagram-63dfef69.js → spliceevent.a53ss.diagram-e2eab72b.js} +1 -1
  166. package/dist/{spliceevent.exonskip.diagram-76fa9af8.js → spliceevent.exonskip.diagram-4d5df3a1.js} +1 -1
  167. package/dist/spliceevent.exonskip.getdefault-a94aad6e.js +1 -0
  168. package/dist/{spliceevent.noeventdiagram-64a099e0.js → spliceevent.noeventdiagram-ea97b0fb.js} +1 -1
  169. package/dist/{spliceevent.phrase-770c8cac.js → spliceevent.phrase-c5832470.js} +1 -1
  170. package/dist/{stattable-f1189f0f.js → stattable-7c5ecc2f.js} +1 -1
  171. package/dist/{style.gdc-89cfdb0f.js → style.gdc-131f3c77.js} +1 -1
  172. package/dist/summary-5ec455d3.js +1 -0
  173. package/dist/{sunburst-d5379952.js → sunburst-533902a7.js} +1 -1
  174. package/dist/survival-92250664.js +1 -0
  175. package/dist/survival-e16e068f.js +1 -0
  176. package/dist/{svg.download-86850940.js → svg.download-35926549.js} +1 -1
  177. package/dist/{svg.legend-a94b0697.js → svg.legend-8d490df2.js} +1 -1
  178. package/dist/{svgraph-c57b9ae3.js → svgraph-6fac8cbc.js} +1 -1
  179. package/dist/{svmr-cf6f1b27.js → svmr-d07ff695.js} +1 -1
  180. package/dist/table-29d5a973.js +1 -0
  181. package/dist/table-ad744310.js +1 -0
  182. package/dist/termInfo-bf99a37e.js +1 -0
  183. package/dist/{termdb.bins-9faa5170.js → termdb.bins-8b656cc3.js} +1 -1
  184. package/dist/termsetting-33ea66f1.js +1 -0
  185. package/dist/tk-071a7550.js +1 -0
  186. package/dist/{toggleButtons-002aeda1.js → toggleButtons-dbdbad01.js} +1 -1
  187. package/dist/tp.ui-9c2e9fc5.js +1 -0
  188. package/dist/tslib.es6-c3c2d88f.js +1 -0
  189. package/dist/tvs.density-f6128793.js +1 -0
  190. package/dist/{tvs.geneVariant-3a65ad94.js → tvs.geneVariant-ca4bdbb1.js} +1 -1
  191. package/dist/tvs.numeric-0260a825.js +1 -0
  192. package/dist/{tvs.samplelst-1eeb586b.js → tvs.samplelst-cb71b3bf.js} +1 -1
  193. package/dist/{uiUtils-1336bad7.js → uiUtils-f1bd2bcc.js} +1 -1
  194. package/dist/{variantBrowser-f0c812c1.js → variantBrowser-7c540224.js} +1 -1
  195. package/dist/{vcf-c4a23924.js → vcf-5cc55588.js} +1 -1
  196. package/dist/violin-2ba509eb.js +1 -0
  197. package/dist/violin.interactivity-4da6d7a9.js +1 -0
  198. package/dist/{violin.renderer-dafd89fa.js → violin.renderer-ce024265.js} +1 -1
  199. package/dist/{violinRenderer-8215f40d.js → violinRenderer-f7c96a60.js} +1 -1
  200. package/dist/{viridis-ffd14c4d.js → viridis-01ab20c5.js} +1 -1
  201. package/dist/{y-dd197cc9.js → y-67939f83.js} +1 -1
  202. package/dist/{zoom-9c63e74c.js → zoom-25dce8b9.js} +1 -1
  203. package/package.json +6 -4
  204. package/dist/AppHeader-a2a7e518.js +0 -1
  205. package/dist/DEanalysis-a6b50e49.js +0 -1
  206. package/dist/Disco-1c71b7dd.js +0 -1
  207. package/dist/Disco.UI-4c16ee50.js +0 -1
  208. package/dist/FilterRxComp-242f4615.js +0 -1
  209. package/dist/WSIViewer-d90032d7.js +0 -1
  210. package/dist/adSandbox-3528c372.js +0 -1
  211. package/dist/app-07dee349.js +0 -1
  212. package/dist/app-a8c4854a.js +0 -1
  213. package/dist/app-ade9c62a.js +0 -1
  214. package/dist/bam-92483a98.js +0 -1
  215. package/dist/barchart-3e69d094.js +0 -1
  216. package/dist/barchart.events-9b11d97e.js +0 -1
  217. package/dist/block-dcb130fb.js +0 -1
  218. package/dist/block.lazyload-9f031cac.js +0 -1
  219. package/dist/block.legend-b2987cd9.js +0 -1
  220. package/dist/block.mds2-de6e0986.js +0 -1
  221. package/dist/boxplot-1178fffc.js +0 -1
  222. package/dist/brainImaging-98ed7aa2.js +0 -1
  223. package/dist/categorical-26528ce8.js +0 -1
  224. package/dist/condition-b0d74550.js +0 -1
  225. package/dist/controls-0bacec22.js +0 -1
  226. package/dist/controls.config-0ccc9d79.js +0 -1
  227. package/dist/controls.divide-a9fe9466.js +0 -1
  228. package/dist/controls.overlay-fe20d41d.js +0 -1
  229. package/dist/controls.term1-faa2efcf.js +0 -1
  230. package/dist/cuminc-7e2cac2d.js +0 -1
  231. package/dist/dataDownload-ade8d840.js +0 -1
  232. package/dist/databrowser.ui-716f0519.js +0 -1
  233. package/dist/dictionary-3f83ce63.js +0 -1
  234. package/dist/facet-6850cfed.js +0 -1
  235. package/dist/geneExpClustering-7fd3c87e.js +0 -1
  236. package/dist/geneExpression-6462537d.js +0 -1
  237. package/dist/geneORA-7eb818c4.js +0 -1
  238. package/dist/geneVariant-b58e924a.js +0 -1
  239. package/dist/geneset-9f69ad3f.js +0 -1
  240. package/dist/genomeBrowser-1b2b83f7.js +0 -1
  241. package/dist/genomeBrowser.controls-cd8ddeb1.js +0 -1
  242. package/dist/gsea-36376589.js +0 -1
  243. package/dist/hierCluster-f1e30c19.js +0 -1
  244. package/dist/hierCluster.config-da3510b1.js +0 -1
  245. package/dist/hierCluster.renderers-610d8860.js +0 -1
  246. package/dist/imagePlot-7089bdff.js +0 -1
  247. package/dist/launch.adhoc-d229fd55.js +0 -1
  248. package/dist/leftlabel.sample-a919168c.js +0 -1
  249. package/dist/legacyDataset-1cbcb67d.js +0 -1
  250. package/dist/matrix-0614794d.js +0 -1
  251. package/dist/matrix.cells-819d4991.js +0 -1
  252. package/dist/matrix.config-c54ca273.js +0 -1
  253. package/dist/matrix.controls-5eca7822.js +0 -1
  254. package/dist/matrix.groups-4660dd70.js +0 -1
  255. package/dist/matrix.interactivity-23d83183.js +0 -1
  256. package/dist/matrix.legend-2e647224.js +0 -1
  257. package/dist/matrix.renderers-43445f4f.js +0 -1
  258. package/dist/matrix.serieses-972fbe5d.js +0 -1
  259. package/dist/matrix.sort-80d9b788.js +0 -1
  260. package/dist/mds.samplescatterplot-1623e6d0.js +0 -1
  261. package/dist/niceNumLabels-6cfc1508.js +0 -1
  262. package/dist/numeric.binary-80467e8b.js +0 -1
  263. package/dist/numeric.continuous-69a62a15.js +0 -1
  264. package/dist/numeric.discrete-86181905.js +0 -1
  265. package/dist/numeric.spline-1b07fd13.js +0 -1
  266. package/dist/numeric.toggle-37c4bee8.js +0 -1
  267. package/dist/oncomatrix-475271da.js +0 -1
  268. package/dist/plot.app-aa916e0e.js +0 -1
  269. package/dist/plot.barplot-8b440a2b.js +0 -1
  270. package/dist/plot.brainImaging-2f796b0c.js +0 -1
  271. package/dist/plot.disco-43e18d2f.js +0 -1
  272. package/dist/plot.ssgq-e49cb70b.js +0 -1
  273. package/dist/profileBarchart-91463ab6.js +0 -1
  274. package/dist/profileHome-d37a6821.js +0 -1
  275. package/dist/profilePlot-9ca577cb.js +0 -1
  276. package/dist/profilePolar-19c7da5b.js +0 -1
  277. package/dist/profileRadar-8bf094e3.js +0 -1
  278. package/dist/profileRadarFacility-f9fd8971.js +0 -1
  279. package/dist/profileSummary-93999c14.js +0 -1
  280. package/dist/recover-36ada47f.js +0 -1
  281. package/dist/regression.inputs-cb57ece6.js +0 -1
  282. package/dist/regression.inputs.values.table-908bb37a.js +0 -1
  283. package/dist/regression.results-c186a8dc.js +0 -1
  284. package/dist/roundValue-b0d0517c.js +0 -1
  285. package/dist/sampleScatter-9d5b3630.js +0 -1
  286. package/dist/sampleView-2d895023.js +0 -1
  287. package/dist/samplelst-9f8343ff.js +0 -1
  288. package/dist/scatter-b4992f64.js +0 -1
  289. package/dist/singleCellCellType-84a0c2cf.js +0 -1
  290. package/dist/singleCellPlot-2f2b8619.js +0 -1
  291. package/dist/singlecell-90567dde.js +0 -1
  292. package/dist/snp-79ec95ba.js +0 -1
  293. package/dist/snplocus-cb629be1.js +0 -1
  294. package/dist/spliceevent.exonskip.getdefault-31d2950c.js +0 -1
  295. package/dist/summary-b77bef3c.js +0 -1
  296. package/dist/survival-61ab375a.js +0 -1
  297. package/dist/survival-80a0ade9.js +0 -1
  298. package/dist/table-79e3e776.js +0 -1
  299. package/dist/table-eee91e14.js +0 -1
  300. package/dist/termInfo-f851b415.js +0 -1
  301. package/dist/tk-75566002.js +0 -1
  302. package/dist/tp.ui-02911b56.js +0 -1
  303. package/dist/tslib.es6-1f85f553.js +0 -1
  304. package/dist/tvs.density-026fca97.js +0 -1
  305. package/dist/tvs.numeric-3f3d9919.js +0 -1
  306. package/dist/violin-1515c3e6.js +0 -1
  307. package/dist/violin.interactivity-8e2f480d.js +0 -1
@@ -1 +0,0 @@
1
- import{i as t,d as e,M as s,a as r,z as i,A as o,B as a,h as n,C as l,D as p,r as c,m as d,E as m,F as u}from"./app-a8c4854a.js";import{T as h,N as f,g}from"./roundValue-b0d0517c.js";import{F as b,g as j,a as y,f as v}from"./FilterRxComp-242f4615.js";import{f as x}from"./FilterStateless-046081c2.js";import{appInit as w}from"./app-ade9c62a.js";import{r as C}from"./table-79e3e776.js";import{_ as T}from"./tslib.es6-1f85f553.js";import{a as k}from"./genesearch-ea59f5d4.js";import{m as _}from"./checkbox-96437f4d.js";import{r as S}from"./rehydrateFilter-12d118cb.js";class I extends b{constructor(t){super(t);this.api={main:this.main.bind(this),getNormalRoot:()=>j(this.rawFilter),getPromise:t=>this.promises[t]};if(t.debug)this.api.Inner=this}async main(t,e={}){this.dom.controlsTip.hide();this.dom.treeTip.hide();const s="activeCohort"in e?e.activeCohort:this.activeCohort;const r=y(t,"filterUiRoot");if(r)delete r.tag;t.lst.push({tag:"filterUiRoot",type:"tvslst",join:"",lst:[]});t.join=t.lst.length>1?"and":"";const i=JSON.stringify(t);if(this.rawCopy==i&&JSON.stringify(this.activeCohort)==JSON.stringify(s))return;await super.main(i,e)}refresh(t){this.dom.controlsTip.hide();this.dom.treeTip.hide();const e=JSON.parse(JSON.stringify(this.rawFilter));const s=v(e,this.filter.$id);if(!s||this.rawFilter.$id===this.filter.$id){this.opts.callback(e)}else{const r=s.lst.findIndex((t=>t.$id==this.filter.$id));s.lst[r]=t;this.opts.callback(e)}const r=e.lst.findIndex((e=>e.$id===t.$id));e.lst.splice(r,1);this.main(e)}}const A=t(I);function P(t){if(!t.div||!t.text||!t.callback)throw new Error("Missing required parameters");return t.div.append("button").property("disabled",t.disabled||false).style("border","none").style("border-radius","20px").style("padding","10px 15px").text(t.text).on("click",(()=>{t.callback()}))}function D(t,s){const r=s.selectAll().data(t,(t=>t.value)).enter().append("div").style("margin","5px");const i=r.append("label").on("mousedown",(t=>{t.stopPropagation()}));const o=i.append("input").attr("type","radio").attr("name",(t=>t.label)).attr("value",(t=>t.value)).property("checked",(t=>t.checked)).on("input",(function(t,r){return T(this,void 0,void 0,(function*(){t.stopPropagation();o.property("disabled",true);o.property("checked",false);s.selectAll(".contentDiv").style("display","none");const i=e(this.parentNode).append("div").classed("contentDiv",true).style("padding-left","25px").style("display","block");yield r.callback(i);e(this).property("checked",true);o.property("disabled",false)}))}));o.filter((t=>t.checked)).property("checked",true);i.append("span").html((t=>"&nbsp;"+t.label));i.append("span").style("display","block").style("padding-left","25px").style("font-size","0.75em").html((t=>t.sublabel||""))}class L{constructor(t){this.params2Add=[];this.tip=t.tip;this.params=t.params;this.callback=t.callback;this.addOptionalParams=t.addOptionalParams;this.tip.d.style("padding","15px");this.render();for(const t of this.params2Add)this.addOptionalParams(t)}render(){for(const t of this.params){const e=this.addParameter(t.param,this.tip.d.append("div"));t.input=e}const t=P({div:this.tip.d.append("div").style("padding","20px").style("display","inline-block"),text:"Calculate genes",callback:()=>T(this,void 0,void 0,(function*(){t.property("disabled",true).text("Loading...");yield this.callback();this.tip.hide()}))})}addParameter(t,e){var s;let r;if(t.type=="boolean"){if((s=t===null||t===void 0?void 0:t.options)===null||s===void 0?void 0:s.length){const s=e.append("div").style("margin","10px 0px").on("mousedown",(t=>{t.stopPropagation()}));r=s.append("input").attr("type","checkbox").attr("id",t.id);this.addLabels(s,"label",t);const i=e.append("div").style("padding-left","20px");for(const e of t.options){const t=this.addParameter(e,i.append("div"));this.params2Add.push({param:e,input:t})}if(t.value){r.property("checked",t.value);i.style("display","block")}else i.style("display","none");r.on("change",(()=>{i.style("display",r.property("checked")?"block":"none")}))}else{r=e.append("input").style("padding","2px").attr("type","checkbox").attr("id",t.id);if(t.value)r.property("checked",t.value);this.addLabels(e,"label",t)}}else if(t.type=="string"&&t.value){r=_({holder:e,id:t.id,checked:true,labeltext:t.label,callback:()=>{}})}else if(t.type=="number"){r=e.append("input").attr("type","number").style("width","50px").style("padding","5px").attr("id",t.id);if(t.value)r.attr("value",t.value);this.addLabels(e,"span",t)}else if(t.type=="radio"){const s=t.options.find((t=>t.checked));if(!s)t.options[0].checked=true;r=e.append("div").attr("id",t.id);r.append("p").style("font-size","0.8em").style("opacity",.75).text(t.label);D(t.options,r)}return r}addLabels(t,e,s){if(!s.sublabel)t.append(e).html(s.label).attr("for",s.id);else{const r=t.append("div").style("display","inline-block").style("vertical-align","middle");r.append(e).style("display","block").style("padding-top","3px").html(s.label).attr("for",s.id);r.append("span").style("display","block").style("font-size","0.75em").html(s.sublabel)}}}class B{constructor(t){var e,r,i;this.holder=t.holder;this.genome=t.genome;this.callback=t.callback;this.vocabApi=t.vocabApi;this.customInputs=t.customInputs;this.geneList=structuredClone(t.geneList||[]);this.tip2=new s({padding:"0px",parent_menu:t.holder.node(),test:"test"});this.minNumGenes=t.minNumGenes||0;if("mode"in t)this.mode=t.mode;if("titleText"in t)this.titleText=t.titleText;this.origLst=structuredClone(this.geneList);this.origNames=JSON.stringify(this.geneList.map((t=>t.gene)).sort());this.holder.selectAll("*").remove();const o=this.holder.append("div").style("padding","5px");if(this.titleText){o.append("div").style("margin-bottom","10px").html(this.titleText)}const a=o.append("div");const n=a.append("label");n.append("span").html("Search");const l=n.append("div").style("display","inline-flex").style("align-items","center").style("margin","8px 0px -5px 0px");const p=a.append("div").style("display","inline-flex").style("align-items","center").style("float","right").style("gap","5px");const c=this.addGene.bind(this);this.geneSearch=k({tip:this.tip2,genome:this.genome,row:l,searchOnly:"gene",callback:c,hideHelp:true,focusOff:true});this.menuList=[];this.api={dom:{holder:o,textControlDiv:p.append("div"),clearBtn:P({div:p,text:"Clear",disabled:!((e=this.geneList)===null||e===void 0?void 0:e.length),callback:()=>{this.geneList=[];this.renderGenes()}}),restoreBtn:((r=this.geneList)===null||r===void 0?void 0:r.length)?P({div:p,disabled:true,text:"Restore",callback:()=>{this.geneList=this.origLst;this.renderGenes()}}):null,geneHoldingDiv:this.renderGeneHoldingDiv(o),statLegendDiv:o.append("div"),submitBtn:P({div:o.append("div").style("margin-top","10px"),text:"Submit",disabled:!((i=this.geneList)===null||i===void 0?void 0:i.length),callback:()=>{this.callback({geneList:this.geneList})}})},topMutatedGenesParams:[],topVariablyExpressedGenesParams:[],statColor2label:new Map,destroy(){t.holder.remove()}};this.getParams();this.createMenuList();this.renderTextControls(this.api.dom.textControlDiv);this.renderGenes()}getParams(){var t,e,s,i;if(this.mode==h.GENE_VARIANT&&((e=(t=this.vocabApi.termdbConfig)===null||t===void 0?void 0:t.queries)===null||e===void 0?void 0:e.topMutatedGenes)){if(this.vocabApi.termdbConfig.queries.topMutatedGenes.arguments){for(const t of this.vocabApi.termdbConfig.queries.topMutatedGenes.arguments)this.api.topMutatedGenesParams.push({param:t})}}if(this.mode==h.GENE_EXPRESSION&&((i=(s=this.vocabApi.termdbConfig)===null||s===void 0?void 0:s.queries)===null||i===void 0?void 0:i.topVariablyExpressedGenes)){if(this.vocabApi.termdbConfig.queries.topVariablyExpressedGenes.arguments){for(const t of this.vocabApi.termdbConfig.queries.topVariablyExpressedGenes.arguments){if(t.type=="radio"){if(!t.options||t.options.length==0)throw"Radio button must have options";for(const e of t.options){if(e.type=="tree"){e.callback=s=>T(this,void 0,void 0,(function*(){const r=yield import("./app-ade9c62a.js");const i=s.append("div");yield r.appInit({holder:i,state:{dslabel:e.value,genome:this.genome.name,nav:{header_mode:"search_only"}},tree:{click_term:r=>{s.append("div").classed("ts_pill sja_filter_tag_btn sja_tree_click_term termlabel",true).style("margin","5px").text(`${r.id}`);t.value={type:e.value,geneList:r._geneset.map((t=>t.symbol))};i.selectAll("*").remove()}}})}))}if(e.type=="text"){e.callback=s=>T(this,void 0,void 0,(function*(){s.append("span").style("display","block").style("font-size","0.8em").style("opacity",.75).text("Enter genes separated by spaces or commas");s.append("textarea").style("display","block").on("keyup",r.debounce((function(){const s=this.value.split(/[\s,]+/).map((t=>t.trim())).filter((t=>t!==""));t.value={type:e.value,geneList:s}})),500)}))}if(e.type=="boolean"){e.callback=()=>{t.value={type:e.value,geneList:null}}}}}this.api.topVariablyExpressedGenesParams.push({param:t})}}}}baseGeneMenuArgs(t){t=this.removeDuplicates(t);return{tip:this.tip2,params:t,addOptionalParams:({param:e,input:s})=>{t.push({param:e,input:s})}}}removeDuplicates(t){var e;for(const s of t){if((e=s.param)===null||e===void 0?void 0:e.options){s.param.options.forEach((e=>{if(!e.id)return;const s=t.findIndex((t=>t.param.id==e.id));if(s!=-1)t.splice(s,1)}))}}return t}createMenuList(){var t,e,s,r;if(((t=this.api)===null||t===void 0?void 0:t.topMutatedGenesParams.length)>0){this.menuList.push({label:"Top mutated genes",callback:t=>T(this,void 0,void 0,(function*(){this.tip2.clear().showunder(t.target);const e=()=>T(this,void 0,void 0,(function*(){const t={filter0:this.vocabApi.state.termfilter.filter0};for(const{param:e,input:s}of this.api.topMutatedGenesParams){const r=s.attr("id");t[r]=this.getInputValue({param:e,input:s})}const e=yield this.vocabApi.getTopMutatedGenes(t);this.geneList=[];this.geneList.push(...e.genes);this.renderGenes()}));const s=Object.assign(this.baseGeneMenuArgs(this.api.topMutatedGenesParams),{callback:e});new L(s)}))})}if(((e=this.api)===null||e===void 0?void 0:e.topVariablyExpressedGenesParams.length)>0){this.menuList.push({label:"Top variably expressed genes",callback:t=>{this.api.topVariablyExpressedGenesParams.filter((t=>{var e;return t.param.type=="radio"&&((e=t.param)===null||e===void 0?void 0:e.options)})).forEach((t=>{if(typeof t.param.options[0].value==="string"){t.param.value={type:t.param.options[0].value,value:null}}else{console.error(`Unexpected radio button value type: ${typeof t.param.options[0].value}`)}}));this.tip2.clear().showunder(t.target);const e=()=>T(this,void 0,void 0,(function*(){const t={genome:this.vocabApi.state.vocab.genome,dslabel:this.vocabApi.state.vocab.dslabel};if(this.vocabApi.state.termfilter){if(this.vocabApi.state.termfilter.filter)t.filter=this.vocabApi.state.termfilter.filter;if(this.vocabApi.state.termfilter.filter0)t.filter0=this.vocabApi.state.termfilter.filter0}for(const{param:e,input:s}of this.api.topVariablyExpressedGenesParams){const r=s.attr("id");t[r]=this.getInputValue({param:e,input:s})}const e=yield this.vocabApi.getTopVariablyExpressedGenes(t);this.geneList=[];if(e.genes){for(const t of e.genes)this.geneList.push({gene:t})}this.renderGenes()}));const s=Object.assign(this.baseGeneMenuArgs(this.api.topVariablyExpressedGenesParams),{callback:e});new L(s)}})}if((r=(s=this.genome)===null||s===void 0?void 0:s.termdbs)===null||r===void 0?void 0:r.msigdb){for(const t in this.genome.termdbs){const e=this.genome.termdbs[t];this.menuList.push({label:`${e.label} gene set`,callback:()=>T(this,void 0,void 0,(function*(){this.tip2.clear().showunder(this.api.dom.textControlDiv.node());const e=yield import("./app-ade9c62a.js");e.appInit({holder:this.tip2.d,state:{dslabel:t,genome:this.genome.name,nav:{header_mode:"search_only"}},tree:{click_term:t=>{this.geneList=[];const e=t._geneset;if(e){for(const t of e)this.geneList.push({gene:t.symbol});this.renderGenes()}this.tip2.hide();this.api.dom.submitBtn.node().focus()}}})}))})}}if(this.customInputs){for(const t of this.customInputs){this.menuList.push({label:t.label,callback:()=>{t.showInput({callback:({geneList:t})=>{this.geneList=t;this.renderGenes()}})},tagName:"button"})}}}renderTextControls(t){for(const e of this.menuList){if(e.tagName=="button")P({div:t,text:e.label,callback:e.callback});else t.append("a").style("text-decoration","underline").style("padding","0px 10px").style("color","black").html(`${e.label} &#9660;`).on("click",(t=>T(this,void 0,void 0,(function*(){yield e.callback(t)}))))}}getInputValue({param:t,input:e}){if(t.type=="radio")return t.value;const s=e.node().value;if(e.attr("type")=="number")return Number(s);if(e.attr("type")=="checkbox"){if(t.type=="string")return e.node().checked?t.value:"";if(t.type=="boolean")return e.node().checked?1:0}}renderGeneHoldingDiv(t){return t.append("div").append("div").style("display","flex").style("flex-wrap","wrap").style("gap","5px").style("min-height","20px").style("border","solid 1px #aaa").style("margin","15px 0px").style("padding","6px 2px").style("min-height","30px")}renderStatLegend(){if(!this.api.statColor2label||this.api.statColor2label.size==0){this.api.dom.statLegendDiv.style("display","none");return}this.api.dom.statLegendDiv.style("display","block").selectAll("*").remove();for(const[t,e]of this.api.statColor2label){this.api.dom.statLegendDiv.append("div").style("display","inline-block").style("width","12px").style("height","12px").style("background-color",t);this.api.dom.statLegendDiv.append("span").html(` ${e} &nbsp;&nbsp;`)}return this.api.dom.statLegendDiv}addGene(){const t=this.geneSearch.geneSymbol;for(const e of this.geneList){if(e.gene==t){window.alert(`The gene ${t} has already been added`);return}}if(t)this.geneList.push({gene:t});this.renderGenes()}renderGenes(){var t,s,r,i;const o=this.geneList.some((t=>t.mutationStat));if(!o)this.geneList.sort(((t,e)=>{if(t.gene<e.gene)return-1;if(t.gene>e.gene)return 1;return 0}));this.api.dom.geneHoldingDiv.selectAll("*").remove();const a=this.renderGene.bind(this);const n=this.deleteGene.bind(this);this.api.dom.geneHoldingDiv.selectAll("div").data(this.geneList||[]).enter().append("div").attr("title","click to delete").attr("class","sja_menuoption").attr("tabindex",0).style("position","relative").style("display","inline-block").style("padding","5px 16px 5px 9px").style("margin-left","5px").each((function(t){const s=e(this).style("border-radius","5px");a(s,t);s.on("click",(()=>n(t)))})).on("mouseover",(function(t){const s=e(t.target);s.append("div").style("margin-left","4px").classed("sjpp_deletebt",true).style("display","inline-block").style("position","absolute").style("right","0px").style("top","0px").style("transform","scale(0.6)").style("pointer-events","none").html(`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#000" class="bi bi-x-lg" viewBox="0 0 16 16">\n <path stroke='#f00' d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"/>\n </svg>`)})).on("mouseout",(function(t){e(t.target).select(".sjpp_deletebt").remove()})).on("focus",(t=>{t.target.dispatchEvent(new PointerEvent("mouseover"))})).on("blur",(t=>{t.target.dispatchEvent(new PointerEvent("mouseout"))})).on("keyup",(t=>{if(t.key=="Enter")t.target.click()}));this.renderStatLegend();this.api.dom.clearBtn.property("disabled",!((t=this.geneList)===null||t===void 0?void 0:t.length));const l=this.origNames!==JSON.stringify(this.geneList.map((t=>t.gene)).sort());(s=this.api.dom.restoreBtn)===null||s===void 0?void 0:s.property("disabled",!l);this.api.dom.submitBtn.property("disabled",!l||((r=this.geneList)===null||r===void 0?void 0:r.length)<this.minNumGenes||!((i=this.geneList)===null||i===void 0?void 0:i.length));if(l)this.api.dom.submitBtn.node().focus()}renderGene(t,e){if(e.mutationStat){t.html(`${e.gene}&nbsp;&nbsp;`);for(const s of e.mutationStat){let e;let r="black";if("class"in s){if(!i[s.class])throw"invalid stat class";e=i[s.class].color;this.api.statColor2label.set(e,i[s.class].label)}else if("dt"in s){if(!o[s["dt"]])throw"invalid stat dt";e=o[s["dt"]];r="white";this.api.statColor2label.set(e,a[s["dt"]])}else{throw"stat missing dt/class"}t.insert("span").style("font-size",".7em").style("background-color",e).style("padding","1px 2px").style("color",r).text(s.count)}}else{t.insert("div").style("display","inline-block").html(e.gene)}}deleteGene(t){const e=this.geneList.findIndex((e=>e.gene===t.gene));if(e!=-1){this.geneList.splice(e,1);this.renderGenes()}}}function G(t){switch(t){case"../plots/DEanalysis.js":return import("./DEanalysis-a6b50e49.js");case"../plots/Disco.js":return import("./Disco-1c71b7dd.js");case"../plots/DziViewer.js":return import("./DziViewer-6311327c.js");case"../plots/WSIViewer.js":return import("./WSIViewer-d90032d7.js");case"../plots/barchart.data.js":return import("./FilterRxComp-242f4615.js").then((function(t){return t.k}));case"../plots/barchart.events.js":return import("./barchart.events-9b11d97e.js");case"../plots/barchart.js":return import("./barchart-3e69d094.js");case"../plots/bars.renderer.js":return import("./bars.renderer-5f7a4174.js");case"../plots/bars.settings.js":return import("./bars.settings-64bb4642.js");case"../plots/boxplot.js":return import("./boxplot-1178fffc.js");case"../plots/brainImaging.js":return import("./brainImaging-98ed7aa2.js");case"../plots/controls.btns.js":return import("./controls.btns-1cb2bfab.js");case"../plots/controls.config.js":return import("./controls.config-0ccc9d79.js");case"../plots/controls.divide.js":return import("./controls.divide-a9fe9466.js");case"../plots/controls.js":return import("./controls-0bacec22.js");case"../plots/controls.overlay.js":return import("./controls.overlay-fe20d41d.js");case"../plots/controls.term1.js":return import("./controls.term1-faa2efcf.js");case"../plots/cuminc.js":return import("./cuminc-7e2cac2d.js");case"../plots/dataDownload.js":return import("./dataDownload-ade8d840.js");case"../plots/dictionary.js":return import("./dictionary-3f83ce63.js");case"../plots/facet.js":return import("./facet-6850cfed.js");case"../plots/geneExpression.js":return import("./geneExpression-e0430f2e.js");case"../plots/geneORA.js":return import("./geneORA-7eb818c4.js");case"../plots/geneset.js":return import("./geneset-9f69ad3f.js");case"../plots/genomeBrowser.controls.js":return import("./genomeBrowser.controls-cd8ddeb1.js");case"../plots/genomeBrowser.js":return import("./genomeBrowser-1b2b83f7.js");case"../plots/gsea.js":return import("./gsea-36376589.js");case"../plots/hierCluster.config.js":return import("./hierCluster.config-da3510b1.js");case"../plots/hierCluster.interactivity.js":return import("./hierCluster.interactivity-9b433033.js").then((function(t){return t.i}));case"../plots/hierCluster.js":return import("./hierCluster-f1e30c19.js");case"../plots/hierCluster.renderers.js":return import("./hierCluster.renderers-610d8860.js").then((function(t){return t.r}));case"../plots/imagePlot.js":return import("./imagePlot-7089bdff.js");case"../plots/matrix.cells.js":return import("./matrix.cells-819d4991.js");case"../plots/matrix.cluster.js":return import("./matrix.cluster-168bc96b.js");case"../plots/matrix.config.js":return import("./matrix.config-c54ca273.js");case"../plots/matrix.controls.js":return import("./matrix.controls-5eca7822.js");case"../plots/matrix.data.js":return import("./matrix.data-b1d0febe.js").then((function(t){return t.m}));case"../plots/matrix.dom.js":return import("./matrix.dom-00defa30.js");case"../plots/matrix.groups.js":return import("./matrix.groups-4660dd70.js").then((function(t){return t.m}));case"../plots/matrix.interactivity.js":return import("./matrix.interactivity-23d83183.js");case"../plots/matrix.js":return import("./matrix-0614794d.js");case"../plots/matrix.layout.js":return import("./matrix.layout-c2345231.js").then((function(t){return t.m}));case"../plots/matrix.legend.js":return import("./matrix.legend-2e647224.js").then((function(t){return t.m}));case"../plots/matrix.renderers.js":return import("./matrix.renderers-43445f4f.js");case"../plots/matrix.serieses.js":return import("./matrix.serieses-972fbe5d.js").then((function(t){return t.m}));case"../plots/matrix.sort.js":return import("./matrix.sort-80d9b788.js");case"../plots/matrix.sorterUi.js":return import("./matrix.sorterUi-a741ba2e.js");case"../plots/plot.app.js":return import("./plot.app-aa916e0e.js");case"../plots/plot.brainImaging.js":return import("./plot.brainImaging-2f796b0c.js");case"../plots/plot.disco.js":return import("./plot.disco-43e18d2f.js");case"../plots/plot.ssgq.js":return import("./plot.ssgq-e49cb70b.js");case"../plots/profileBarchart.js":return import("./profileBarchart-91463ab6.js");case"../plots/profilePlot.js":return import("./profilePlot-9ca577cb.js");case"../plots/profilePolar.js":return import("./profilePolar-19c7da5b.js");case"../plots/profileRadar.js":return import("./profileRadar-8bf094e3.js");case"../plots/profileRadarFacility.js":return import("./profileRadarFacility-f9fd8971.js");case"../plots/profileSummary.js":return import("./profileSummary-93999c14.js");case"../plots/regression.inputs.js":return import("./regression.inputs-cb57ece6.js").then((function(t){return t.b}));case"../plots/regression.inputs.term.js":return import("./regression.inputs-cb57ece6.js").then((function(t){return t.a}));case"../plots/regression.inputs.values.table.js":return import("./regression.inputs.values.table-908bb37a.js");case"../plots/regression.js":return import("./regression.inputs-cb57ece6.js").then((function(t){return t.r}));case"../plots/regression.results.js":return import("./regression.results-c186a8dc.js").then((function(t){return t.r}));case"../plots/sampleScatter.interactivity.js":return import("./sampleScatter-9d5b3630.js").then((function(t){return t.a}));case"../plots/sampleScatter.js":return import("./sampleScatter-9d5b3630.js").then((function(t){return t.b}));case"../plots/sampleScatter.renderer.js":return import("./sampleScatter-9d5b3630.js").then((function(t){return t.s}));case"../plots/sampleScatter.rendererThree.js":return import("./sampleScatter.rendererThree-5e686004.js").then((function(t){return t.c}));case"../plots/sampleView.js":return import("./sampleView-2d895023.js");case"../plots/scatter.js":return import("./scatter-b4992f64.js");case"../plots/singleCellPlot.js":return import("./singleCellPlot-2f2b8619.js");case"../plots/stattable.js":return import("./stattable-f1189f0f.js");case"../plots/summary.js":return import("./summary-b77bef3c.js");case"../plots/survival.js":return import("./survival-80a0ade9.js");case"../plots/table.js":return import("./table-eee91e14.js");case"../plots/variantBrowser.js":return import("./variantBrowser-f0c812c1.js");case"../plots/violin.interactivity.js":return import("./violin.interactivity-8e2f480d.js");case"../plots/violin.js":return import("./violin-1515c3e6.js");case"../plots/violin.renderer.js":return import("./violin.renderer-dafd89fa.js");default:return new Promise((function(e,s){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}class E{constructor(t={}){this.type="charts";O(this)}async init(t){this.dom={holder:this.opts.holder,tip:new s({padding:"0px"})};this.makeButtons(t)}getState(t){const e=R(t);const s=JSON.parse(JSON.stringify(t.termdbConfig?.supportedChartTypes||{}));const r={vocab:t.vocab,activeCohort:t.activeCohort,termfilter:t.termfilter,supportedChartTypes:s[e]||["summary"],termdbConfig:t.termdbConfig};if(t?.termfilter?.filter){r.filter=j(t.termfilter.filter)}if(!r.supportedChartTypes.includes("dictionary")&&!r.termdbConfig.hiddenChartTypes?.includes("dictionary")){r.supportedChartTypes.push("dictionary");r.supportedChartTypes.push("facet")}return r}main(){this.dom.btns.style("display",(t=>this.state.supportedChartTypes.includes(t.chartType)?"":"none"))}}const N=n(E);function R(t){if(t?.termdbConfig?.selectCohort?.values){if(!Number.isInteger(t.activeCohort))throw"appState.activeCohort is not integer array index";const e=t.termdbConfig.selectCohort.values[t.activeCohort];if(!e)throw"appState.activeCohort array index out of bound";return[...e.keys].sort().join(",")}return""}function M(t,e){const s=[{label:"Data Dictionary",clickTo:t.prepPlot,chartType:"dictionary",config:{chartType:"dictionary"}},{label:"Sample View",clickTo:t.prepPlot,chartType:"sampleView",config:{chartType:"sampleView"}},{label:"Summary Plots",chartType:"summary",clickTo:t.showTree_select1term,usecase:{target:"summary",detail:"term"}},{label:"Scatter Plot",chartType:"sampleScatter",clickTo:t.loadChartSpecificMenu},{label:"Cumulative Incidence",chartType:"cuminc",clickTo:t.showTree_select1term,usecase:{target:"cuminc",detail:"term"}},{label:"Survival",chartType:"survival",clickTo:t.showTree_select1term,usecase:{target:"survival",detail:"term"}},{label:"Regression Analysis",chartType:"regression",clickTo:t.loadChartSpecificMenu},{label:"Sample Matrix",chartType:"matrix",clickTo:t.loadChartSpecificMenu},{label:"Genome Browser",chartType:"genomeBrowser",clickTo:t.loadChartSpecificMenu},{label:"Differential Expression",chartType:"DEanalysis",clickTo:t.loadChartSpecificMenu},{label:"Data Download",clickTo:t.prepPlot,chartType:"dataDownload",config:{chartType:"dataDownload",terms:[]}},{label:"Facet Table",clickTo:t.loadChartSpecificMenu,chartType:"facet",config:{chartType:"facet"}},{label:"Single Cell Plot",clickTo:t.loadChartSpecificMenu,chartType:"singleCellPlot",config:{chartType:"singleCellPlot"}},{label:"Gene Expression",chartType:"geneExpression",clickTo:t.showGenesetEditUI,usecase:{target:"geneExpression"}},{label:"Metabolite Intensity",chartType:"metaboliteIntensity",clickTo:t.showTree_selectlst,usecase:{target:"metaboliteIntensity",detail:"term"},updateActionBySelectedTerms:(t,e)=>{const s=e.map((t=>({term:structuredClone(t),q:{mode:f.continuous}})));if(s.length==1){t.config.chartType="summary";t.config.term=s[0];return}if(s.length==2){t.config.chartType="summary";t.config.term=s[0];t.config.term2=s[1];return}t.config.chartType="hierCluster";t.config.dataType=h.METABOLITE_INTENSITY;t.config.termgroups=[{name:"Metabolite Intensity Cluster",lst:s,type:"hierCluster"}]}}];for(const t in e?.termdbConfig.renamedChartTypes||[]){const r=s.find((e=>e.chartType===t));if(r){r.label=e.termdbConfig.renamedChartTypes[t]}}return s}function O(t){t.makeButtons=function(e){const s=M(t,e);t.dom.btns=t.dom.holder.selectAll("button").data(s).enter().append("button").style("margin","10px").style("padding","10px 15px").style("border-radius","20px").style("border-color","#ededed").html((t=>t.label)).on("click",(function(e,s){t.dom.tip.clear().showunder(this);s.clickTo(s)}))};t.showTree_select1term=async e=>{if(e.usecase.label){t.dom.tip.d.append("div").style("margin","3px 5px").style("padding","3px 5px").style("font-weight",600).html(e.usecase.label)}const s={type:"plot_create",id:$(),config:{chartType:e.chartType}};if(e.parentId)s.parentId=e.parentId;const r=await import("./app-ade9c62a.js");r.appInit({vocabApi:t.app.vocabApi,holder:t.dom.tip.d.append("div"),state:{activeCohort:t.state.activeCohort,nav:{header_mode:"search_only"},tree:{usecase:e.usecase}},tree:{click_term:r=>{const i=r.term?r:{term:r};s.config[e.usecase.detail]=i;t.dom.tip.hide();t.app.dispatch(s)}}})};t.showGenesetEditUI=async e=>{const s=[];const r=t.app;const i=t.dom.tip;const o=t.dom.tip.d;o.selectAll("*").remove();const a=o.append("div").style("padding","5px");const n=a.append("label");n.append("span").text("Create ");let l;const p=n.append("input").style("margin","2px 5px").style("width","210px").attr("placeholder","Group Name").on("input",(()=>{l=p.property("value")}));const c={index:0,name:l,label:l,lst:[],status:"new"};new B({holder:o.append("div"),genome:r.opts.genome,geneList:s,mode:"geneExpression",vocabApi:r.vocabApi,callback:async({geneList:t,groupName:e})=>{if(!c)throw`missing selectedGroup`;i.hide();const s={name:e||l,lst:[],type:"hierCluster"};const a=s.lst.filter((t=>t.term.type!="geneVariant"));const n=await Promise.all(t.map((async t=>{const e={gene:t.symbol||t.gene,name:t.symbol||t.gene,type:"geneExpression"};let r=s.lst.find((e=>e.term.name==t.symbol||e.term.name==t.gene));if(!r){r={term:e,q:{}}}return r})));if(n.length==1){const t=n[0];r.dispatch({type:"plot_create",config:{chartType:"summary",term:t}});return}if(n.length==2){const t=n[0];const e=n[1];r.dispatch({type:"plot_create",config:{chartType:"summary",term:t,term2:e}});return}s.lst=[...a,...n];if(!s.lst.length)tg.splice(c.index,1);o.selectAll("*").remove();r.dispatch({type:"plot_create",config:{chartType:"hierCluster",termgroups:[s],dataType:h.GENE_EXPRESSION}})}})};t.showTree_selectlst=async e=>{t.dom.tip.clear();if(e.usecase?.label){t.dom.tip.d.append("div").style("margin","3px 5px").style("padding","3px 5px").style("font-weight",600).html(e.usecase.label)}const s={type:"plot_create",id:$(),config:{chartType:e.chartType}};const r=await import("./app-ade9c62a.js");t.dom.submenu=t.dom.tip.d.append("div");r.appInit({holder:t.dom.submenu,vocabApi:t.app.vocabApi,state:{activeCohort:t.state.activeCohort,nav:{header_mode:"search_only"},tree:{usecase:e.usecase}},tree:{submit_lst:r=>{const i=e.processSelection?e.processSelection(r):r;s.config[e.usecase.detail]=i;if(e.updateActionBySelectedTerms)e.updateActionBySelectedTerms(s,r);t.dom.tip.hide();t.app.dispatch(s)}}})};t.loadChartSpecificMenu=async e=>{t.dom.tip.clear();const s=await G(`../plots/${e.chartType}.js`);s.makeChartBtnMenu(t.dom.tip.d,t)};t.prepPlot=function(e){const s={type:"plot_prep",config:e.config,id:$()};t.app.dispatch(s)}}const V="_CHART_AUTOID_";let q=Date.now();function $(){return V+q++}const F=l(5);class H{constructor(t={}){this.type="groups";this.selectedGroupsIdx=new Set}async init(){this.dom={holder:this.opts.holder.append("div").style("margin","10px")};J(this);this.tip=new s({padding:"0px"})}getState(t){const e=R(t);const s={termfilter:t.termfilter,groups:Q(t),termdbConfig:t.termdbConfig,customTerms:t.customTerms,supportedChartTypes:t.termdbConfig.supportedChartTypes[e],matrixplots:t.termdbConfig.matrixplots};return s}async main(){await W(this)}getMassFilter(){if(!this.state.termfilter.filter||this.state.termfilter.filter.lst.length==0){return{type:"tvslst",in:true,join:"",lst:[]}}const t=j(structuredClone(this.state.termfilter.filter));return t}async groups2samplelst(t){const e=[];const s=new Set,r=[];for(const i of t){const t=await this.app.vocabApi.getFilteredSampleCount(i.filter,"list");const o=[];for(const i of t){const t={sampleId:i.id};if("name"in i){t.sample=i.name}if(!s.has(i.id))o.push(t);else{for(const t of e){const e=t.items.findIndex((t=>t.sampleId===i.id));if(e!==-1)r.push(...t.items.splice(e,1))}}s.add(t.sampleId)}if(o.length)e.push({name:i.name,items:o,color:i.color})}if(r.length){const t=confirm('Overlap detected: 1 or more samples belong to >1 groups. A new group will be created for these "overlap" samples.');if(!t)return;e.push({name:"Group overlap",items:r})}const i=e.length==1?e[0].name:"Sample groups";const o=nt(e,i);for(const t of o.q.groups){o.term.values[t.name].list=t.values;o.term.values[t.name].inuse=t.inuse}return o}updateLaunchButton(){this.dom.newTermSpan.style("display","none");this.dom.noGroupSelected.style("display","none");if(this.state.groups.length==0)return;if(this.state.groups.length==1){this.dom.newTermSpan.style("display","");this.dom.launchButton.text(`Create variable using "${this.state.groups[0].name}"`);this.dom.newTermNameInput.property("value",this.state.groups[0].name+" vs others");return}const t=[...this.selectedGroupsIdx];if(t.length==0){this.dom.noGroupSelected.style("display","");return}this.dom.newTermSpan.style("display","");if(t.length==1){this.dom.launchButton.text(`Create variable using "${this.state.groups[t[0]]?.name}"`);this.dom.newTermNameInput.property("value",this.state.groups[t[0]].name+" vs others");return}this.dom.launchButton.text(`Create variable using ${t.length} groups`);this.dom.newTermNameInput.property("value",t.map((t=>this.state.groups[t].name)).join(" vs "))}displayCustomTerms(){this.dom.customTermDiv.selectAll("*").remove();if(this.state.customTerms.length==0){this.dom.customTermDiv.append("div").text("No custom variables. Use above controls to create new ones. Custom variables are added to dictionary.").style("font-size",".8em");return}this.dom.customTermDiv.append("div").style("margin-bottom","10px").style("font-size",".8em").text("Following custom variables are available in all charts where variables are used. Click one to delete.");for(const{name:t,tw:e}of this.state.customTerms){const s=this.dom.customTermDiv.append("div");s.text(t).attr("class","sja_filter_tag_btn").style("padding","3px 6px").style("border-radius","6px").style("margin-right","5px").on("click",(s=>{const r=()=>this.app.vocabApi.deleteCustomTerm(t);this.showGroupsMenu(s,e,r)}))}}newId(){this.lastId=g();return this.lastId}showGroupsMenu(t,e,s){const r=structuredClone(e);this.tip.clear();const i=this.tip.d.append("div");const o=this?.lastId;const a=i.append("div");const n=p({holder:a});for(const[t,s]of Object.entries(e.term.values)){const t=s.color?`<span style="display:inline-block; width:12px; height:12px; background-color:${s.color}" ></span>`:`<span style="display:inline-block; width:11px; height:11px; background-color:${"#fff"}; border: 0.1px solid black" ></span>`;const[e,r]=n.addRow();e.html(`${t} ${s.label}:`);r.html(`${s.list.length} samples`)}i.append("div");rt(this.tip,i,r,this.app,o,this.state,(()=>this.newId));if(this.state.supportedChartTypes.includes("DEanalysis")&&r.q.groups.length==2)z(i,this,this.state,r);if(this.state.supportedChartTypes.includes("survival"))et("survival",i,"Compare survival",this.tip,r,o,this,true);if(this.state.supportedChartTypes.includes("geneExpression"))st("geneExpression",i,"Gene expression",this.tip,r,o,this,true);if(this.state.supportedChartTypes.includes("cuminc"))et("cuminc",i,"Compare cumulative incidence",this.tip,r,o,this,true);const l=i.append("div").attr("class","sja_menuoption sja_sharp_border").html("Summarize");l.insert("div").html("›").style("float","right");l.on("click",(async t=>{tt(l,(t=>{K(t,r,this.app,o,(()=>this.newId))}),this.app,this.tip)}));i.append("div").attr("class","sja_menuoption sja_sharp_border").text("Delete variable").on("click",(t=>{s();this.tip.hide()}));if(this.state.termdbConfig.scatterplots)for(const t of this.state.termdbConfig.scatterplots){if(t.colorTW)i.append("div").attr("class","sja_menuoption sja_sharp_border").text(`Open ${t.name}`).on("click",(()=>{let e={chartType:"sampleScatter",name:t.name};if(t.sampleCategory)e.sampleCategory={tw:structuredClone(t.sampleCategory.tw),order:t.sampleCategory.order,defaultValue:t.sampleCategory.defaultValue};if(t.sampleType)e.sampleType=t.sampleType;e.colorTW=structuredClone(r);if(t.settings)e.settings=structuredClone(t.settings);this.app.dispatch({type:"plot_create",config:e});this.tip.hide()}))}this.tip.showunder(t.target)}}const U=n(H);function z(t,e,s,r,i){t.append("div").attr("class","sja_menuoption sja_sharp_border").text("Differential expression").on("click",(t=>{const i=[];for(const t of r.q.groups){if(t.values&&t.values.length>0){i.push(t)}else{throw"group does not contain samples for DE analysis"}}const o={chartType:"DEanalysis",state:s,samplelst:{groups:i}};e.tip.hide();e.app.dispatch({type:"plot_create",config:o})}))}function J(t){t.dom.filterTableDiv=t.dom.holder.append("div").style("margin-bottom","10px");const e=t.dom.holder.append("div");t.dom.addNewGroupBtnHolder=e.append("span").style("margin-right","20px");t.dom.newTermSpan=e.append("span");t.dom.newTermSpan.append("span").style("padding-left","15px").text("Add variable:");t.dom.newTermNameInput=t.dom.newTermSpan.append("input").attr("type","text");t.dom.launchButton=t.dom.newTermSpan.append("span").attr("class","sja_menuoption").on("click",(()=>X(t)));t.dom.noGroupSelected=e.append("span").text("No groups selected").style("opacity",.5);t.dom.customTermDiv=t.dom.holder.append("div").style("margin","20px").style("border-left","solid 1px black").style("padding","10px");t.dom.holder.on("click",(t=>{if(Z)Z.hide()}))}async function W(t){if(!t.filterPrompt)t.filterPrompt=await A({holder:t.dom.addNewGroupBtnHolder,vocabApi:t.app.vocabApi,emptyLabel:"Add group",termdbConfig:t.state.termdbConfig,callback:e=>{it(t.app,e,t.state.groups)},debug:t.opts.debug});t.filterPrompt.main(t.getMassFilter());const e=structuredClone(t.state.groups);if(!e.length){t.updateLaunchButton();t.dom.filterTableDiv.style("display","none");t.displayCustomTerms();return}t.dom.filterTableDiv.style("display","").selectAll("*").remove();const s={div:t.dom.filterTableDiv,columns:[{label:"NAME",editCallback:async(e,s)=>{const r=s.value;const i=t.state.groups.findIndex((t=>t.name==r));if(i!=-1){alert(`Group named ${r} already exists`);W(t)}else await t.app.dispatch({type:"rename_group",index:e,newName:s.value})}},{label:"COLOR",editCallback:async(e,s)=>{await t.app.dispatch({type:"change_color_group",index:e,newColor:s.color})}},{label:"#SAMPLE"},{label:"FILTER"}],columnButtons:[{text:"Delete",callback:(s,r)=>{const i=e[r];t.app.vocabApi.deleteGroup(i.name)}}],rows:[]};for(const r of e){s.rows.push([{value:r.name},{color:r.color},{value:"n="+await t.app.vocabApi.getFilteredSampleCount(r.filter)},{}])}t.selectedGroupsIdx.clear();if(e.length==1){t.selectedGroupsIdx.add(0)}else{s.noButtonCallback=(e,s)=>{if(s.checked)t.selectedGroupsIdx.add(e);else t.selectedGroupsIdx.delete(e);t.updateLaunchButton()};s.selectedRows=[];for(let r=0;r<e.length;r++){s.selectedRows.push(r);t.selectedGroupsIdx.add(r)}}C(s);for(const[r,i]of s.rows.entries()){const s=e[r];x({holder:i[3].__td,vocabApi:t.app.vocabApi,termdbConfig:t.state.termdbConfig,callback:r=>{if(!r||r.lst.length==0){const t=e.findIndex((t=>t.name==s.name));e.splice(t,1)}else{s.filter=r}t.app.dispatch({type:"app_refresh",state:{groups:e}})}}).main(s.filter)}t.updateLaunchButton();t.displayCustomTerms()}async function X(t){const e=[];for(const s of t.selectedGroupsIdx){const r=t.state.groups[s];if(r)e.push(r)}if(e.length==0)throw"No groups, should not happen";const s=t.dom.newTermNameInput.property("value");const r=await t.groups2samplelst(e);if(!r)return;r.term.name=s;t.app.vocabApi.addCustomTerm({name:s,tw:r});t.dom.newTermSpan.style("display","none")}function Q(t){if(!t.termfilter?.filter||t.termfilter.filter.lst.length==0){return t.groups}const e=[];for(const s of t.groups){const r=j(structuredClone(t.termfilter.filter));const i=y(s.filter,"filterUiRoot");if(!i){e.push(s);continue}r.lst.push(i);r.join=r.lst.length>1?"and":"";const o={name:s.name,filter:r,color:s.color};e.push(o)}return e}async function Y(t,e,s,r,i,o){let a={chartType:t,term:e,term2:s};if(i)a.insertBefore=i;if(o)a.id=o();await r.dispatch({type:"plot_create",config:a})}async function K(t,e,s,r,i){const o=t.term?t:{term:t};let a={chartType:"summary",childType:"barchart",term:o,term2:e};if(r)a.insertBefore=r;if(i)a.id=i();await s.dispatch({type:"plot_create",config:a})}let Z;async function tt(t,e,r,i,o={tree:{usecase:{target:"default",detail:"term"}}},a=true,n=true,l=[]){if(!Z)Z=new s({padding:0,offsetX:162,offsetY:-34,parent_menu:i.d.node()});Z.clear();if(n)Z.showunderoffset(t.node());else Z.showunder(t.node());w({holder:Z.d,vocabApi:r.vocabApi,state:o,tree:{disable_terms:l,click_term:t=>{e(t);Z.hide();if(a)i.hide()}}})}function et(t,e,s,r,i,o,a,n=false){const l=e.append("div").attr("class","sja_menuoption sja_sharp_border").html(`${s}&nbsp;&nbsp;›`).on("click",(e=>{const s={tree:{usecase:{target:t,detail:"term"}}};if(t=="survival")s.nav={header_mode:"hide_search"};tt(l,(e=>{Y(t,e,i,a.app,o,n?()=>a.newId:null)}),a.app,r,s)}))}function st(t,e,r,i,o,a,n,l=false){const p=e.append("div").attr("class","sja_menuoption sja_sharp_border").html(`${r}&nbsp;&nbsp;›`).on("click",(()=>{if(!Z)Z=new s({padding:0,offsetX:162,offsetY:-34,parent_menu:i.d.node()});Z.clear();Z.showunderoffset(p.node());new B({holder:Z.d,genome:n.app.opts.genome,geneList:[],vocabApi:n.app.vocabApi,callback:async({geneList:t,groupName:e})=>{i.hide();const s={name:e,lst:[],type:"hierCluster"};const r=s.lst.filter((t=>t.term.type!="geneExpression"));const a=await Promise.all(t.map((async t=>{const e={gene:t.symbol||t.gene,name:t.symbol||t.gene,type:"geneExpression"};let r=s.lst.find((e=>e.term.name==t.symbol||e.term.name==t.gene));if(!r){r={term:e,q:{}}}return r})));Z.d.selectAll("*").remove();if(a.length==1){const t=a[0];n.app.dispatch({type:"plot_create",config:{chartType:"summary",term:t,term2:o}});return}if(a.length==2){const t=a[0];const e=a[1];n.app.dispatch({type:"plot_create",config:{chartType:"summary",term:t,term2:e,colorTW:o}});return}s.lst=[...r,...a];n.app.dispatch({type:"plot_create",config:{chartType:"hierCluster",termgroups:[s],dataType:h.GENE_EXPRESSION,divideBy:o,settings:{hierCluster:{yDendrogramHeight:0,clusterSamples:false}}}})}})}))}function rt(t,e,s,r,i,o,a){if(o.matrixplots){for(const n of o.matrixplots){e.append("div").attr("class","sja_menuoption sja_sharp_border").text(n.name).on("click",(async()=>{const e=await r.vocabApi.getMatrixByName(n.name);e.divideBy=s;e.insertBefore=i;e.settings.matrix.colw=0;if(a)e.id=a();r.dispatch({type:"plot_create",config:e});t.hide()}))}}}function it(t,e,s){s=JSON.parse(JSON.stringify(s));let r="New group";let i=0;while(1){const t=r+(i==0?"":" "+i);if(!s.find((e=>e.name==t)))break;i++}r=r+(i==0?"":" "+i);const o={name:r,filter:e,color:c(F(s.length)).formatHex()};s.push(o);t.dispatch({type:"app_refresh",state:{groups:s}})}function ot(t){let e=0;let s=true;for(const r in t.term.values){const i=t.q.groups[e].values;t.term.values[r].list=i;if(i[0]&&"sample"in i[0])s=false;e++}const r={type:"tvslst",in:true,join:"",lst:[{type:"tvs",tvs:{term:t.term},noEdit:s}]};return r}function at(t){const e={name:"",index:0,items:[{sampleId:t}]};const s=nt([e],"",false);const r=ot(s);return r}function nt(t,e="groups",s=true){const r={};const i=[];let o;for(const e of t){r[e.name]={key:e.name,label:e.name,color:e.color};o=n(e);const t={name:e.name,in:true,values:o};i.push(t)}if(t.length==1&&s){const e="Not in "+t[0].name;r[e]={key:e,label:e,color:"#aaa"};i.push({name:e,in:false,values:o})}const a={isAtomic:true,term:{name:e,type:"samplelst",values:r},q:{groups:i}};return a;function n(t){const e=[];for(const s of t.items){const t={sampleId:s.sampleId};if("sample"in s){t.sample=s.sample}e.push(t)}return e}}function lt(t){switch(t){case"../plots/DEanalysis.js":return import("./DEanalysis-a6b50e49.js");case"../plots/Disco.js":return import("./Disco-1c71b7dd.js");case"../plots/DziViewer.js":return import("./DziViewer-6311327c.js");case"../plots/WSIViewer.js":return import("./WSIViewer-d90032d7.js");case"../plots/barchart.data.js":return import("./FilterRxComp-242f4615.js").then((function(t){return t.k}));case"../plots/barchart.events.js":return import("./barchart.events-9b11d97e.js");case"../plots/barchart.js":return import("./barchart-3e69d094.js");case"../plots/bars.renderer.js":return import("./bars.renderer-5f7a4174.js");case"../plots/bars.settings.js":return import("./bars.settings-64bb4642.js");case"../plots/boxplot.js":return import("./boxplot-1178fffc.js");case"../plots/brainImaging.js":return import("./brainImaging-98ed7aa2.js");case"../plots/controls.btns.js":return import("./controls.btns-1cb2bfab.js");case"../plots/controls.config.js":return import("./controls.config-0ccc9d79.js");case"../plots/controls.divide.js":return import("./controls.divide-a9fe9466.js");case"../plots/controls.js":return import("./controls-0bacec22.js");case"../plots/controls.overlay.js":return import("./controls.overlay-fe20d41d.js");case"../plots/controls.term1.js":return import("./controls.term1-faa2efcf.js");case"../plots/cuminc.js":return import("./cuminc-7e2cac2d.js");case"../plots/dataDownload.js":return import("./dataDownload-ade8d840.js");case"../plots/dictionary.js":return import("./dictionary-3f83ce63.js");case"../plots/facet.js":return import("./facet-6850cfed.js");case"../plots/geneExpression.js":return import("./geneExpression-e0430f2e.js");case"../plots/geneORA.js":return import("./geneORA-7eb818c4.js");case"../plots/geneset.js":return import("./geneset-9f69ad3f.js");case"../plots/genomeBrowser.controls.js":return import("./genomeBrowser.controls-cd8ddeb1.js");case"../plots/genomeBrowser.js":return import("./genomeBrowser-1b2b83f7.js");case"../plots/gsea.js":return import("./gsea-36376589.js");case"../plots/hierCluster.config.js":return import("./hierCluster.config-da3510b1.js");case"../plots/hierCluster.interactivity.js":return import("./hierCluster.interactivity-9b433033.js").then((function(t){return t.i}));case"../plots/hierCluster.js":return import("./hierCluster-f1e30c19.js");case"../plots/hierCluster.renderers.js":return import("./hierCluster.renderers-610d8860.js").then((function(t){return t.r}));case"../plots/imagePlot.js":return import("./imagePlot-7089bdff.js");case"../plots/matrix.cells.js":return import("./matrix.cells-819d4991.js");case"../plots/matrix.cluster.js":return import("./matrix.cluster-168bc96b.js");case"../plots/matrix.config.js":return import("./matrix.config-c54ca273.js");case"../plots/matrix.controls.js":return import("./matrix.controls-5eca7822.js");case"../plots/matrix.data.js":return import("./matrix.data-b1d0febe.js").then((function(t){return t.m}));case"../plots/matrix.dom.js":return import("./matrix.dom-00defa30.js");case"../plots/matrix.groups.js":return import("./matrix.groups-4660dd70.js").then((function(t){return t.m}));case"../plots/matrix.interactivity.js":return import("./matrix.interactivity-23d83183.js");case"../plots/matrix.js":return import("./matrix-0614794d.js");case"../plots/matrix.layout.js":return import("./matrix.layout-c2345231.js").then((function(t){return t.m}));case"../plots/matrix.legend.js":return import("./matrix.legend-2e647224.js").then((function(t){return t.m}));case"../plots/matrix.renderers.js":return import("./matrix.renderers-43445f4f.js");case"../plots/matrix.serieses.js":return import("./matrix.serieses-972fbe5d.js").then((function(t){return t.m}));case"../plots/matrix.sort.js":return import("./matrix.sort-80d9b788.js");case"../plots/matrix.sorterUi.js":return import("./matrix.sorterUi-a741ba2e.js");case"../plots/plot.app.js":return import("./plot.app-aa916e0e.js");case"../plots/plot.brainImaging.js":return import("./plot.brainImaging-2f796b0c.js");case"../plots/plot.disco.js":return import("./plot.disco-43e18d2f.js");case"../plots/plot.ssgq.js":return import("./plot.ssgq-e49cb70b.js");case"../plots/profileBarchart.js":return import("./profileBarchart-91463ab6.js");case"../plots/profilePlot.js":return import("./profilePlot-9ca577cb.js");case"../plots/profilePolar.js":return import("./profilePolar-19c7da5b.js");case"../plots/profileRadar.js":return import("./profileRadar-8bf094e3.js");case"../plots/profileRadarFacility.js":return import("./profileRadarFacility-f9fd8971.js");case"../plots/profileSummary.js":return import("./profileSummary-93999c14.js");case"../plots/regression.inputs.js":return import("./regression.inputs-cb57ece6.js").then((function(t){return t.b}));case"../plots/regression.inputs.term.js":return import("./regression.inputs-cb57ece6.js").then((function(t){return t.a}));case"../plots/regression.inputs.values.table.js":return import("./regression.inputs.values.table-908bb37a.js");case"../plots/regression.js":return import("./regression.inputs-cb57ece6.js").then((function(t){return t.r}));case"../plots/regression.results.js":return import("./regression.results-c186a8dc.js").then((function(t){return t.r}));case"../plots/sampleScatter.interactivity.js":return import("./sampleScatter-9d5b3630.js").then((function(t){return t.a}));case"../plots/sampleScatter.js":return import("./sampleScatter-9d5b3630.js").then((function(t){return t.b}));case"../plots/sampleScatter.renderer.js":return import("./sampleScatter-9d5b3630.js").then((function(t){return t.s}));case"../plots/sampleScatter.rendererThree.js":return import("./sampleScatter.rendererThree-5e686004.js").then((function(t){return t.c}));case"../plots/sampleView.js":return import("./sampleView-2d895023.js");case"../plots/scatter.js":return import("./scatter-b4992f64.js");case"../plots/singleCellPlot.js":return import("./singleCellPlot-2f2b8619.js");case"../plots/stattable.js":return import("./stattable-f1189f0f.js");case"../plots/summary.js":return import("./summary-b77bef3c.js");case"../plots/survival.js":return import("./survival-80a0ade9.js");case"../plots/table.js":return import("./table-eee91e14.js");case"../plots/variantBrowser.js":return import("./variantBrowser-f0c812c1.js");case"../plots/violin.interactivity.js":return import("./violin.interactivity-8e2f480d.js");case"../plots/violin.js":return import("./violin-1515c3e6.js");case"../plots/violin.renderer.js":return import("./violin.renderer-dafd89fa.js");default:return new Promise((function(e,s){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}function pt(t){switch(t){case"../plots/DEanalysis.js":return import("./DEanalysis-a6b50e49.js");case"../plots/Disco.js":return import("./Disco-1c71b7dd.js");case"../plots/DziViewer.js":return import("./DziViewer-6311327c.js");case"../plots/WSIViewer.js":return import("./WSIViewer-d90032d7.js");case"../plots/barchart.data.js":return import("./FilterRxComp-242f4615.js").then((function(t){return t.k}));case"../plots/barchart.events.js":return import("./barchart.events-9b11d97e.js");case"../plots/barchart.js":return import("./barchart-3e69d094.js");case"../plots/bars.renderer.js":return import("./bars.renderer-5f7a4174.js");case"../plots/bars.settings.js":return import("./bars.settings-64bb4642.js");case"../plots/boxplot.js":return import("./boxplot-1178fffc.js");case"../plots/brainImaging.js":return import("./brainImaging-98ed7aa2.js");case"../plots/controls.btns.js":return import("./controls.btns-1cb2bfab.js");case"../plots/controls.config.js":return import("./controls.config-0ccc9d79.js");case"../plots/controls.divide.js":return import("./controls.divide-a9fe9466.js");case"../plots/controls.js":return import("./controls-0bacec22.js");case"../plots/controls.overlay.js":return import("./controls.overlay-fe20d41d.js");case"../plots/controls.term1.js":return import("./controls.term1-faa2efcf.js");case"../plots/cuminc.js":return import("./cuminc-7e2cac2d.js");case"../plots/dataDownload.js":return import("./dataDownload-ade8d840.js");case"../plots/dictionary.js":return import("./dictionary-3f83ce63.js");case"../plots/facet.js":return import("./facet-6850cfed.js");case"../plots/geneExpression.js":return import("./geneExpression-e0430f2e.js");case"../plots/geneORA.js":return import("./geneORA-7eb818c4.js");case"../plots/geneset.js":return import("./geneset-9f69ad3f.js");case"../plots/genomeBrowser.controls.js":return import("./genomeBrowser.controls-cd8ddeb1.js");case"../plots/genomeBrowser.js":return import("./genomeBrowser-1b2b83f7.js");case"../plots/gsea.js":return import("./gsea-36376589.js");case"../plots/hierCluster.config.js":return import("./hierCluster.config-da3510b1.js");case"../plots/hierCluster.interactivity.js":return import("./hierCluster.interactivity-9b433033.js").then((function(t){return t.i}));case"../plots/hierCluster.js":return import("./hierCluster-f1e30c19.js");case"../plots/hierCluster.renderers.js":return import("./hierCluster.renderers-610d8860.js").then((function(t){return t.r}));case"../plots/imagePlot.js":return import("./imagePlot-7089bdff.js");case"../plots/matrix.cells.js":return import("./matrix.cells-819d4991.js");case"../plots/matrix.cluster.js":return import("./matrix.cluster-168bc96b.js");case"../plots/matrix.config.js":return import("./matrix.config-c54ca273.js");case"../plots/matrix.controls.js":return import("./matrix.controls-5eca7822.js");case"../plots/matrix.data.js":return import("./matrix.data-b1d0febe.js").then((function(t){return t.m}));case"../plots/matrix.dom.js":return import("./matrix.dom-00defa30.js");case"../plots/matrix.groups.js":return import("./matrix.groups-4660dd70.js").then((function(t){return t.m}));case"../plots/matrix.interactivity.js":return import("./matrix.interactivity-23d83183.js");case"../plots/matrix.js":return import("./matrix-0614794d.js");case"../plots/matrix.layout.js":return import("./matrix.layout-c2345231.js").then((function(t){return t.m}));case"../plots/matrix.legend.js":return import("./matrix.legend-2e647224.js").then((function(t){return t.m}));case"../plots/matrix.renderers.js":return import("./matrix.renderers-43445f4f.js");case"../plots/matrix.serieses.js":return import("./matrix.serieses-972fbe5d.js").then((function(t){return t.m}));case"../plots/matrix.sort.js":return import("./matrix.sort-80d9b788.js");case"../plots/matrix.sorterUi.js":return import("./matrix.sorterUi-a741ba2e.js");case"../plots/plot.app.js":return import("./plot.app-aa916e0e.js");case"../plots/plot.brainImaging.js":return import("./plot.brainImaging-2f796b0c.js");case"../plots/plot.disco.js":return import("./plot.disco-43e18d2f.js");case"../plots/plot.ssgq.js":return import("./plot.ssgq-e49cb70b.js");case"../plots/profileBarchart.js":return import("./profileBarchart-91463ab6.js");case"../plots/profilePlot.js":return import("./profilePlot-9ca577cb.js");case"../plots/profilePolar.js":return import("./profilePolar-19c7da5b.js");case"../plots/profileRadar.js":return import("./profileRadar-8bf094e3.js");case"../plots/profileRadarFacility.js":return import("./profileRadarFacility-f9fd8971.js");case"../plots/profileSummary.js":return import("./profileSummary-93999c14.js");case"../plots/regression.inputs.js":return import("./regression.inputs-cb57ece6.js").then((function(t){return t.b}));case"../plots/regression.inputs.term.js":return import("./regression.inputs-cb57ece6.js").then((function(t){return t.a}));case"../plots/regression.inputs.values.table.js":return import("./regression.inputs.values.table-908bb37a.js");case"../plots/regression.js":return import("./regression.inputs-cb57ece6.js").then((function(t){return t.r}));case"../plots/regression.results.js":return import("./regression.results-c186a8dc.js").then((function(t){return t.r}));case"../plots/sampleScatter.interactivity.js":return import("./sampleScatter-9d5b3630.js").then((function(t){return t.a}));case"../plots/sampleScatter.js":return import("./sampleScatter-9d5b3630.js").then((function(t){return t.b}));case"../plots/sampleScatter.renderer.js":return import("./sampleScatter-9d5b3630.js").then((function(t){return t.s}));case"../plots/sampleScatter.rendererThree.js":return import("./sampleScatter.rendererThree-5e686004.js").then((function(t){return t.c}));case"../plots/sampleView.js":return import("./sampleView-2d895023.js");case"../plots/scatter.js":return import("./scatter-b4992f64.js");case"../plots/singleCellPlot.js":return import("./singleCellPlot-2f2b8619.js");case"../plots/stattable.js":return import("./stattable-f1189f0f.js");case"../plots/summary.js":return import("./summary-b77bef3c.js");case"../plots/survival.js":return import("./survival-80a0ade9.js");case"../plots/table.js":return import("./table-eee91e14.js");case"../plots/variantBrowser.js":return import("./variantBrowser-f0c812c1.js");case"../plots/violin.interactivity.js":return import("./violin.interactivity-8e2f480d.js");case"../plots/violin.js":return import("./violin-1515c3e6.js");case"../plots/violin.renderer.js":return import("./violin.renderer-dafd89fa.js");default:return new Promise((function(e,s){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}function ct(t){switch(t){case"../plots/DEanalysis.js":return import("./DEanalysis-a6b50e49.js");case"../plots/Disco.js":return import("./Disco-1c71b7dd.js");case"../plots/DziViewer.js":return import("./DziViewer-6311327c.js");case"../plots/WSIViewer.js":return import("./WSIViewer-d90032d7.js");case"../plots/barchart.data.js":return import("./FilterRxComp-242f4615.js").then((function(t){return t.k}));case"../plots/barchart.events.js":return import("./barchart.events-9b11d97e.js");case"../plots/barchart.js":return import("./barchart-3e69d094.js");case"../plots/bars.renderer.js":return import("./bars.renderer-5f7a4174.js");case"../plots/bars.settings.js":return import("./bars.settings-64bb4642.js");case"../plots/boxplot.js":return import("./boxplot-1178fffc.js");case"../plots/brainImaging.js":return import("./brainImaging-98ed7aa2.js");case"../plots/controls.btns.js":return import("./controls.btns-1cb2bfab.js");case"../plots/controls.config.js":return import("./controls.config-0ccc9d79.js");case"../plots/controls.divide.js":return import("./controls.divide-a9fe9466.js");case"../plots/controls.js":return import("./controls-0bacec22.js");case"../plots/controls.overlay.js":return import("./controls.overlay-fe20d41d.js");case"../plots/controls.term1.js":return import("./controls.term1-faa2efcf.js");case"../plots/cuminc.js":return import("./cuminc-7e2cac2d.js");case"../plots/dataDownload.js":return import("./dataDownload-ade8d840.js");case"../plots/dictionary.js":return import("./dictionary-3f83ce63.js");case"../plots/facet.js":return import("./facet-6850cfed.js");case"../plots/geneExpression.js":return import("./geneExpression-e0430f2e.js");case"../plots/geneORA.js":return import("./geneORA-7eb818c4.js");case"../plots/geneset.js":return import("./geneset-9f69ad3f.js");case"../plots/genomeBrowser.controls.js":return import("./genomeBrowser.controls-cd8ddeb1.js");case"../plots/genomeBrowser.js":return import("./genomeBrowser-1b2b83f7.js");case"../plots/gsea.js":return import("./gsea-36376589.js");case"../plots/hierCluster.config.js":return import("./hierCluster.config-da3510b1.js");case"../plots/hierCluster.interactivity.js":return import("./hierCluster.interactivity-9b433033.js").then((function(t){return t.i}));case"../plots/hierCluster.js":return import("./hierCluster-f1e30c19.js");case"../plots/hierCluster.renderers.js":return import("./hierCluster.renderers-610d8860.js").then((function(t){return t.r}));case"../plots/imagePlot.js":return import("./imagePlot-7089bdff.js");case"../plots/matrix.cells.js":return import("./matrix.cells-819d4991.js");case"../plots/matrix.cluster.js":return import("./matrix.cluster-168bc96b.js");case"../plots/matrix.config.js":return import("./matrix.config-c54ca273.js");case"../plots/matrix.controls.js":return import("./matrix.controls-5eca7822.js");case"../plots/matrix.data.js":return import("./matrix.data-b1d0febe.js").then((function(t){return t.m}));case"../plots/matrix.dom.js":return import("./matrix.dom-00defa30.js");case"../plots/matrix.groups.js":return import("./matrix.groups-4660dd70.js").then((function(t){return t.m}));case"../plots/matrix.interactivity.js":return import("./matrix.interactivity-23d83183.js");case"../plots/matrix.js":return import("./matrix-0614794d.js");case"../plots/matrix.layout.js":return import("./matrix.layout-c2345231.js").then((function(t){return t.m}));case"../plots/matrix.legend.js":return import("./matrix.legend-2e647224.js").then((function(t){return t.m}));case"../plots/matrix.renderers.js":return import("./matrix.renderers-43445f4f.js");case"../plots/matrix.serieses.js":return import("./matrix.serieses-972fbe5d.js").then((function(t){return t.m}));case"../plots/matrix.sort.js":return import("./matrix.sort-80d9b788.js");case"../plots/matrix.sorterUi.js":return import("./matrix.sorterUi-a741ba2e.js");case"../plots/plot.app.js":return import("./plot.app-aa916e0e.js");case"../plots/plot.brainImaging.js":return import("./plot.brainImaging-2f796b0c.js");case"../plots/plot.disco.js":return import("./plot.disco-43e18d2f.js");case"../plots/plot.ssgq.js":return import("./plot.ssgq-e49cb70b.js");case"../plots/profileBarchart.js":return import("./profileBarchart-91463ab6.js");case"../plots/profilePlot.js":return import("./profilePlot-9ca577cb.js");case"../plots/profilePolar.js":return import("./profilePolar-19c7da5b.js");case"../plots/profileRadar.js":return import("./profileRadar-8bf094e3.js");case"../plots/profileRadarFacility.js":return import("./profileRadarFacility-f9fd8971.js");case"../plots/profileSummary.js":return import("./profileSummary-93999c14.js");case"../plots/regression.inputs.js":return import("./regression.inputs-cb57ece6.js").then((function(t){return t.b}));case"../plots/regression.inputs.term.js":return import("./regression.inputs-cb57ece6.js").then((function(t){return t.a}));case"../plots/regression.inputs.values.table.js":return import("./regression.inputs.values.table-908bb37a.js");case"../plots/regression.js":return import("./regression.inputs-cb57ece6.js").then((function(t){return t.r}));case"../plots/regression.results.js":return import("./regression.results-c186a8dc.js").then((function(t){return t.r}));case"../plots/sampleScatter.interactivity.js":return import("./sampleScatter-9d5b3630.js").then((function(t){return t.a}));case"../plots/sampleScatter.js":return import("./sampleScatter-9d5b3630.js").then((function(t){return t.b}));case"../plots/sampleScatter.renderer.js":return import("./sampleScatter-9d5b3630.js").then((function(t){return t.s}));case"../plots/sampleScatter.rendererThree.js":return import("./sampleScatter.rendererThree-5e686004.js").then((function(t){return t.c}));case"../plots/sampleView.js":return import("./sampleView-2d895023.js");case"../plots/scatter.js":return import("./scatter-b4992f64.js");case"../plots/singleCellPlot.js":return import("./singleCellPlot-2f2b8619.js");case"../plots/stattable.js":return import("./stattable-f1189f0f.js");case"../plots/summary.js":return import("./summary-b77bef3c.js");case"../plots/survival.js":return import("./survival-80a0ade9.js");case"../plots/table.js":return import("./table-eee91e14.js");case"../plots/variantBrowser.js":return import("./variantBrowser-f0c812c1.js");case"../plots/violin.interactivity.js":return import("./violin.interactivity-8e2f480d.js");case"../plots/violin.js":return import("./violin-1515c3e6.js");case"../plots/violin.renderer.js":return import("./violin.renderer-dafd89fa.js");default:return new Promise((function(e,s){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}const dt="_MASS_AUTOID_"+Math.random().toString().slice(-6);let mt=(+new Date).toString().slice(-8);function ut(){return dt+"_"+mt++}const ht=new Set(["with_tabs","hidden","search_only","hide_search","only_buttons","with_cohortHtmlSelect"]);const ft={nav:{header_mode:"with_tabs",activeTab:0},activeCohort:0,search:{isVisible:true},plots:[],termfilter:{filter:{type:"tvslst",in:true,join:"",lst:[]}},reuse:{customTermQ:{byId:{},byName:{}}},groups:[],customTerms:[],autoSave:true};class gt{constructor(t){this.type="store";this.defaultState=ft;this.prevGeneratedId=0}validateOpts(t){const e=t.state;if(e.vocab.dslabel){if(!e.vocab.genome)throw".state[.vocab].genome missing"}else{if(!Array.isArray(e.vocab.terms))throw"vocab.terms must be an array of objects"}}validateState(){if(!ht.has(this.state.nav.header_mode))throw"invalid state.nav.header_mode"}async init(){try{this.state.termdbConfig=await this.app.vocabApi.getTermdbConfig();await this.setTermfilter();await this.rehydrateGroups();await this.app.vocabApi.main({termfilter:JSON.parse(JSON.stringify(this.state.termfilter)),termdbConfig:this.state.termdbConfig});const t=[];for(const[e,s]of this.state.plots.entries()){let r;try{const t=await ct(`../plots/${s.chartType}.js`);r=await t.getPlotConfig(s,this.app)}catch(t){this.app.errorHandler(t)}if(!r){t.push(e);continue}this.state.plots[e]=r;if(!("id"in r))r.id=`_AUTOID_${mt++}_${e}`;if(r.mayAdjustConfig)r.mayAdjustConfig(r)}if(t.length){for(const e of t){this.state.plots.splice(e,1)}}}catch(t){throw t}}setId(t){t.$id=this.prevGeneratedId++;if(t.$lst){for(const e of t.$lst){this.setId(e)}}}async setTermfilter(){let t=y(this.state.termfilter.filter,"filterUiRoot");if(!t){this.state.termfilter.filter.tag="filterUiRoot";t=this.state.termfilter.filter}await Promise.all(S(this.state.termfilter.filter,this.app.vocabApi));if(!this.state.termdbConfig.selectCohort){this.state.activeCohort=-1;if(this.state.activeTab===0)this.state.activeTab=1;if(this.state.nav.header_mode==="with_cohortHtmlSelect"){console.warn(`no termdbConfig.selectCohort to use for nav.header_mode = 'with_cohortHtmlSelect'`);this.state.nav.header_mode="search_only"}}else{let e=y(this.state.termfilter.filter,"cohortFilter");if(!e){e={tag:"cohortFilter",type:"tvs",tvs:{term:JSON.parse(JSON.stringify(this.state.termdbConfig.selectCohort.term)),values:this.state.activeCohort==-1?[]:this.state.termdbConfig.selectCohort.values[this.state.activeCohort].keys.map((t=>({key:t,label:t})))}};this.state.termfilter.filter={type:"tvslst",in:true,join:"and",lst:[e,t]}}else{const t=(t,e)=>t<e?-1:1;e.tvs.values.sort(((t,e)=>t.key<e.key?-1:1));const s=JSON.stringify(e.tvs.values.map((t=>t.key)).sort(t));const r=this.state.termdbConfig.selectCohort.values.findIndex((e=>s==JSON.stringify(e.keys.sort(t))));if(this.state.activeCohort!==-1&&this.state.activeCohort!==0&&r!==this.state.activeCohort){console.log("Warning: cohortFilter will override the state.activeCohort due to mismatch")}this.state.activeCohort=r}}}async rehydrateGroups(){const t=[];for(const e of this.state.groups){t.push(...S(e.filter,this.app.vocabApi))}await Promise.all(t)}}gt.prototype.actions={app_refresh(t={}){this.state=this.copyMerge(this.toJson(this.state),t.state||{});const e=new Set;if(t.subactions){for(const s of t.subactions){this.actions[s.type].call(this,s);if(s.type.startsWith("plot_"))e.add(s.id)}}for(const s in this.state.plots){if(s.mayAdjustConfig&&!e.has(s.id)){s.mayAdjustConfig(s,t.config)}}},tab_set(t){this.state.nav.activeTab=t.activeTab},cohort_set(t){this.state.activeCohort=t.activeCohort;const e=this.state.termdbConfig.selectCohort.values[t.activeCohort];const s=y(this.state.termfilter.filter,"cohortFilter");if(!s)throw`No item tagged with 'cohortFilter'`;s.tvs.values=e.keys.map((t=>({key:t,label:t})))},async plot_prep(t){const e={id:"id"in t?t.id:ut()};if(!t.config)throw".config{} missing for plot_prep";if(t.config.chartType&&Object.keys(t.config).length==1){const e=await pt(`../plots/${t.config.chartType}.js`);const s=await e.getPlotConfig(t.config,this.app);t.config=Object.assign(s,t.config)}Object.assign(e,t.config);this.state.plots.push(e)},async plot_create(t){const e=await lt(`../plots/${t.config.chartType}.js`);const s=await e.getPlotConfig(t.config,this.app);if(!("id"in t))t.id=ut();s.id=t.id;if(s.mayAdjustConfig){s.mayAdjustConfig(s,t.config)}this.state.plots.push(s)},plot_edit(t){const e=this.state.plots.find((e=>e.id===t.id));if(!e)throw`missing plot id='${t.id}' in store.plot_edit()`;this.copyMerge(e,t.config,t.opts?t.opts:{});if(e.mayAdjustConfig){e.mayAdjustConfig(e,t.config)}if(t.config&&"cutoff"in t.config){e.cutoff=t.config.cutoff}else{delete e.cutoff}},plot_delete(t){const e=this.state.plots.findIndex((e=>e.id===t.id));if(e!==-1)this.state.plots.splice(e,1)},plot_nestedEdits(t){const e=this.state.plots.find((e=>e.id===t.id));if(!e)throw`missing plot id='${t.id}' in store.plot_edit_nested`;for(const s of t.edits){const t=s.nestedKeys.pop();const r=s.nestedKeys.reduce(((t,e)=>t[e]),e);r[t]=s.value}},async plot_splice(t){for(const e of t.subactions){await this.actions[e.type].call(this,e)}},filter_replace(t){if("filter0"in t){this.state.termfilter.filter0=t.filter0;return}const e=t.filter?t.filter:{type:"tvslst",join:"",in:1,lst:[]};if(!t.filter.tag){this.state.termfilter.filter=e}else{const s=y(this.state.termfilter.filter,t.filter.tag);if(!s)throw`cannot replace missing filter with tag '${t.filter.tag}'`;const r=v(this.state.termfilter.filter,s.$id);if(r==s){this.state.termfilter.filter=e}else{const t=r.lst.indexOf(s);r.lst[t]=e}}},cache_termq({termId:t,q:e}){if(!t)throw`missing termId for caching custom term.q`;if(!e?.reuseId)throw`missing or empty tw.q.reuseId as cache identifier for term='${t}'`;const s=this.state.reuse.customTermQ.byId;if(!s[t])s[t]={};s[t][e.reuseId]=e;for(const t of this.state.plots){if(!(t.chartType in jt))continue;const s=jt[t.chartType](t);for(const t of s){if(t?.q?.reuseId===e.reuseId)t.q=e}}},uncache_termq({term:t,q:e}){if(!t.id)throw`missing term.id for uncaching custom term.q`;if(!e.reuseId)throw`missing qname as uncache identifier for term.id='${t.id}'`;const s=this.state.reuse.customTermQ.byId[t.id];if(!s)throw`missing term.q cache for term.id='${t.id}`;if(!(e.reuseId in s))console.warn(`q.reuseId='${e.cacheid}' not cached for term.id='${t.id}'`);else{delete s[e.reuseId];for(const t of this.state.plots){if(!(t.chartType in jt))continue;const s=jt[t.chartType](t);for(const t of s){if(t.q.reuseId===e.reuseId){delete t.q.reuseId;delete t.q.name}}}}},add_customTerm(t){this.state.customTerms.push(t.obj)},delete_customTerm({name:t}){const e=this.state.customTerms.findIndex((e=>e.name==t));if(e!=-1)this.state.customTerms.splice(e,1)},add_group(t){if(this.state.nav.header_mode!="hidden"){const e=t.obj;const s=`Group ${this.state.groups.length+1}`;const r=nt([e]);const i={name:s,filter:ot(r),plotId:e.plotId};this.state.groups.push(i);this.state.nav.activeTab=1}else if("plotId"in t.obj){const e=this.state.plots.find((e=>e.id==t.obj.plotId));if(e.groups){t.obj.index=e.groups.length;t.obj.name=`Group ${e.groups.length+1}`;e.groups.push(t.obj)}}},rename_group(t){const e=t.index;const s=t.newName;if(this.state.nav.header_mode!="hidden"){this.state.groups[e].name=s}else{for(const t of this.state.plots){if(t?.groups){t.groups[e].name=s}}}},change_color_group(t){const e=t.index;const s=t.newColor;if(this.state.nav.header_mode!="hidden"){this.state.groups[e].color=s}else{for(const t of this.state.plots){if(t?.groups){t.groups[e].color=s}}}},delete_group({name:t}){if(this.state.nav.header_mode!="hidden"){const e=this.state.groups.findIndex((e=>e.name==t));if(e!=-1)this.state.groups.splice(e,1)}else{for(const e of this.state.plots){if(e?.groups){const s=e.groups.findIndex((e=>e.name==t));if(s!=-1)e.groups.splice(s,1)}}}}};const bt=t=>[t.term0,t.term,t.term2].filter((t=>!!t));const jt={summary:bt,survival:bt,cuminc:bt,regression:t=>[t.outcome,...t.independent].filter((t=>!!t)),matrix:t=>t.termgroups.reduce(((t,e)=>{t.push(...e.lst);return t}),[])};const yt=d(gt);class vt{constructor(t={}){this.type="recover";this.initialHolderDisplay=t.holder.style("display");this.dom={holder:t.holder,btnDiv:t.holder.append("div").style("position","sticky").style("top","12px").style("right","20px").style("margin",t.margin?t.margin:"10px").style("text-align","right")};this.hasStatePreMain=true;this.reactsTo=t.reactsTo||(()=>true);this.getState=t.getState||(t=>t);this.debouncedTrack=()=>{this.trackPending=true;this.trackState();this.render()};this.wait="wait"in t?t.wait:800;this.maxHistoryLen=t.maxHistoryLen||10}preApiFreeze(t){t.replaceLastState=t=>{if(this.isRecovering)return;this.state=this.getState(t);if(!this.trackPending)this.history[this.currIndex]=this.state}}init(){this.app.register(this.api);this.currIndex=-1;this.history=[];this.isActive=!isNaN(this.maxHistoryLen)&&+this.maxHistoryLen>0;if(this.isActive){wt(this);this.initUi()}this.eventTypes=["postInit","postRender"]}async main(){if(!this.isActive)return;if(this.opts.hide?.(this.state)){this.dom.holder.style("display","none");return}this.dom.holder.style("display",this.initialHolderDisplay||"");if(!this.timedTrack){this.trackState();this.trackPending=true;this.timedTrack=setTimeout((()=>{}),this.wait);return}clearTimeout(this.timedTrack);this.trackPending=true;this.timedTrack=setTimeout(this.debouncedTrack,this.wait)}trackState(){if(this.isRecovering){this.isRecovering=false;return}if(this.state._scope_=="none")return;this.isRecovering=false;const t=this.opts.adjustTrackedState?this.opts.adjustTrackedState(this.state):this.state;if(!t){console.error("no state to track");return}if(!Object.isFrozen(t))m(t);if(this.currIndex==-1)this.origState=t;if(this.currIndex<this.history.length-1){this.history.splice(this.currIndex,this.history.length-(this.currIndex+1))}if(u(t,this.history[this.history.length-1]))return;this.history.push(t);this.currIndex+=1;if(this.history.length>this.maxHistoryLen){this.history.splice(1,1);this.currIndex+=-1}this.trackPending=false}goto(t){if(t<0&&this.currIndex+t>-1)this.currIndex+=t;else if(t>0&&this.currIndex+t<this.history.length)this.currIndex+=t;else return;this.isRecovering=true;const e=this.history[this.currIndex];this.render();if(this.opts.plot_id){const t=structuredClone(e);this.app.dispatch({type:"plot_edit",id:this.opts.plot_id,config:t.config,_scope_:t._scope_})}else{this.app.dispatch({type:"app_refresh",state:e})}}reset(){this.currIndex=0;this.isRecovering=true;const t=this.origState;if(this.opts.plot_id){const e=t.plots.find((t=>t.id===this.opts.plot_id));this.app.dispatch({type:"plot_edit",id:this.opts.plot_id,config:structuredClone(e)})}else this.app.dispatch({type:"app_refresh",state:t})}}const xt=n(vt);function wt(t){t.initUi=function(){t.dom.undoBtn=t.dom.btnDiv.append("button").attr("title","undo the previous action").property("disabled",true).style("margin","0 0 0 4px").style("border","1px solid #ccc").style("vertical-align","middle").html(t.opts.undoHtml||`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#000" class="bi bi-arrow-counterclockwise" viewBox="0 0 16 16" style='vertical-align: middle'>\n\t\t\t <path stroke='#000' stroke-width='0.25' fill-rule="evenodd" d="M8 3a5 5 0 1 1-4.546 2.914.5.5 0 0 0-.908-.417A6 6 0 1 0 8 2v1z"/>\n\t\t\t <path d="M8 4.466V.534a.25.25 0 0 0-.41-.192L5.23 2.308a.25.25 0 0 0 0 .384l2.36 1.966A.25.25 0 0 0 8 4.466z"/>\n\t\t\t</svg>`).on("click",(()=>t.goto(-1)));t.dom.redoBtn=t.dom.btnDiv.append("button").attr("title","redo a subsequent action").property("disabled",true).style("margin",t.opts.resetHtml?"0":"0 4px 0 0").style("border","1px solid #ccc").style("vertical-align","middle").html(t.opts.redoHtml||`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#000" class="bi bi-arrow-clockwise" viewBox="0 0 16 16" style='vertical-align: middle'>\n\t\t\t <path stroke='#000' stroke-width='0.25' fill-rule="evenodd" d="M8 3a5 5 0 1 0 4.546 2.914.5.5 0 0 1 .908-.417A6 6 0 1 1 8 2v1z"/>\n\t\t\t <path d="M8 4.466V.534a.25.25 0 0 1 .41-.192l2.36 1.966c.12.1.12.284 0 .384L8.41 4.658A.25.25 0 0 1 8 4.466z"/>\n\t\t\t</svg>`).on("click",(()=>t.goto(1)));if(t.opts.resetHtml)t.dom.resetBtn=t.dom.btnDiv.append("button").attr("title","Restore the initial rendered state").property("disabled",true).style("margin","0 4px 0 0").style("border","1px solid #ccc").style("vertical-align","middle").html(t.opts.resetHtml).on("click",(()=>t.reset()))};t.render=function(){if(t.dom.undoBtn)t.dom.undoBtn.property("disabled",t.currIndex<1||t.history.length===1);if(t.dom.redoBtn)t.dom.redoBtn.property("disabled",t.history.length<2||t.currIndex>=t.history.length-1);if(t.dom.resetBtn)t.dom.resetBtn.property("disabled",t.currIndex===0)}}export{B as G,nt as a,ot as b,N as c,it as d,rt as e,et as f,U as g,tt as h,R as i,Q as j,at as k,K as o,xt as r,yt as s};
@@ -1 +0,0 @@
1
- import{f as t,h as e,b as i}from"./roundValue-b0d0517c.js";import{h as s,P as n,y as o,M as r,d as a}from"./app-a8c4854a.js";import"./FilterRxComp-242f4615.js";import{g as p}from"./termdb.bins-9faa5170.js";import{InputValuesTable as c}from"./regression.inputs.values.table-908bb37a.js";import{mayRunSnplstTask as d}from"./snplst.sampleSum-e47d05f0.js";import{R as l}from"./regression.results-c186a8dc.js";class m{constructor(t){this.type="regression";this.genomeObj=t.app.opts.genome}async init(t){this.dom={header:this.opts.header,errordiv:this.opts.holder.append("div"),inputs:this.opts.holder.append("div").style("margin","20px 10px"),results:this.opts.holder.append("div").style("margin-left","40px")};const e=t.plots.find((t=>t.id===this.id));this.inputs=new O({app:this.app,parent:this,id:this.id,holder:this.dom.inputs,regressionType:e.regressionType});this.results=new l({app:this.app,parent:this,id:this.id,holder:this.dom.results,regressionType:e.regressionType})}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)?`}if(!i.regressionType)throw"regressionType is required";return{vocab:t.vocab,formIsComplete:i.outcome&&i.independent.length,activeCohort:t.activeCohort,termfilter:t.termfilter,config:i,allowedTermTypes:t.termdbConfig.allowedTermTypes,minTimeSinceDx:t.termdbConfig.minTimeSinceDx}}async main(){try{this.config=JSON.parse(JSON.stringify(this.state.config));this.mayUpdateSandboxHeader();this.getFilter();await this.inputs.main();await this.results.main();this.inputs.resetSubmitButton()}catch(t){if(this.inputs.hasError){this.results.main()}o(this.dom.errordiv,"Error: "+(t.error||t));if(t.stack)console.log(t.stack)}}mayUpdateSandboxHeader(){if(!this.dom.header)return;const t=this.config.outcome;this.dom.header.html((t?t.term.name:"")+'<span style="opacity:.6;font-size:.7em;margin-left:10px;">'+this.config.regressionType.toUpperCase()+" REGRESSION</span>")}getFilter(){const t=[];if(this.state.termfilter?.filter)t.push(this.state.termfilter.filter);const e=[this.config.outcome,...this.config.independent];const i=e.filter((t=>t?.q.restrictAncestry));if(i.length){if(i.length>1){const t=new Set(i.map((t=>t.q.restrictAncestry.name)));if(t.size>1)throw"samples cannot be restricted to more than 1 ancestry"}const e=i[0];t.push({type:"tvs",tvs:e.q.restrictAncestry.tvs});this.inputs.dom.submitMsg.style("display","block").text(`restricting analysis to samples of ${e.q.restrictAncestry.name}`)}else{this.inputs.dom.submitMsg.style("display","none")}this.filter={type:"tvslst",join:"and",lst:t}}}const u=s(m);const f=u;let h=1;async function g(e,i){if(!e.outcome)e.outcome={};{await t(e.outcome,i.vocabApi,y(e.regressionType,"outcome"))}const s="id"in e?e.id:`_REGRESSION_${h++}`;const o={id:s};o.outcome=e.outcome;if(e.independent){if(!Array.isArray(e.independent))throw".independent[] is not array";for(const s of e.independent){const e=!s.q?.mode?{numeric:{mode:"continuous"}}:undefined;await t(s,i.vocabApi,e)}o.independent=e.independent}else{o.independent=[]}return n(o,e)}function y(t,e=""){const i={};i["numeric"]=t=="logistic"&&e=="outcome"?{mode:"binary"}:{mode:"discrete"};i["categorical"]=t=="logistic"&&e=="outcome"?{mode:"binary"}:{mode:"discrete"};if(e=="outcome"){if(t=="cox"){i.condition={mode:"cox"}}if(t=="logistic"){i.condition={mode:"binary"}}}return i}function b(t,e){const i=[{label:"Linear",type:"linear"},{label:"Logistic",type:"logistic"},{label:"Cox",type:"cox"}];for(const{label:s,type:n}of i){t.append("div").attr("class","sja_menuoption sja_sharp_border").text(s).on("click",(()=>{e.dom.tip.hide();e.prepPlot({config:{chartType:"regression",regressionType:n,independent:[]}})}))}}var v=Object.freeze({__proto__:null,regressionInit:u,componentInit:f,getPlotConfig:g,get_defaultQ4fillTW:y,makeChartBtnMenu:b});class x{constructor(t){this.opts=t;this.section=t.section;this.term=t.term;this.parent=t.parent}async init(t){const i=t.append("div");const s=i.append("span").style("display","inline-block");const n=i.append("span").style("margin-left","20px");this.dom={holder:t,termRow:i,pillDiv:s,interactionDiv:n,err_div:t.append("div").style("display","none").style("padding","5px").style("background-color","rgba(255,100,100,0.2)"),infoDiv:t.append("div"),tip:new r};try{const{app:t,config:i,state:s,disable_terms:n}=this.parent;const o={placeholder:this.section.selectPrompt,placeholderIcon:this.section.placeholderIcon,holder:this.dom.pillDiv,vocabApi:t.vocabApi,noTermPromptOptions:this.opts.noTermPromptOptions,activeCohort:s.activeCohort,debug:t.opts.debug,menuOptions:this.section.configKey=="outcome"?"{edit,reuse,replace}":"{edit,reuse,remove}",usecase:{target:"regression",detail:this.section.configKey,regressionType:i.regressionType},disable_terms:n,abbrCutoff:50,genomeObj:this.parent.parent.genomeObj,defaultQ4fillTW:y(i.regressionType,this.section.configKey),callback:t=>{this.parent.editConfig(this,t)}};this.furbishTsConstructorArg(o);this.pill=await e(o);if(this.section.configKey=="outcome"){this.setQ=S(i.regressionType)}this.valuesTable=new c({holder:this.dom.infoDiv,input:this,callback:t=>{this.parent.editConfig(this,t)}})}catch(t){this.displayError([t])}}furbishTsConstructorArg(t){const e=this.parent.config.regressionType;if(this.section.configKey=="outcome"){if(e=="logistic"){t.numericEditMenuVersion=["binary"];return}if(e=="linear"){t.numericEditMenuVersion=["continuous"];return}if(e=="cox"){return}throw"unknown regressionType"}if(this.section.configKey=="independent"){t.numericEditMenuVersion=["continuous","discrete","spline"];t.defaultQ4fillTW["geneVariant"]={type:"predefined-groupset"};t.geneVariantEditMenuOnlyGrp=true;return}throw"unknown section.configKey: "+this.section.configKey}displayError(t){this.hasError=true;this.dom.err_div.selectAll("*").remove();this.dom.err_div.style("display","block").selectAll("div").data(Array.isArray(t)?t:[t]).enter().append("div").text((t=>t));this.parent.handleError();console.error(t)}async main(){const t=this.term;if(t){delete t.error}this.dom.err_div.style("display","none").text("");this.hasError=false;const e=[];try{if(t&&this.setQ){const{app:e,state:i}=this.parent;await this.setQ[t.term.type](t,e.vocabApi,this.parent.parent.filter,i)}try{await this.updateTerm()}catch(t){e.push(t)}await this.pill.main(this.getPillArgs());this.renderInteractionPrompt();await this.valuesTable.main();const i=t&&t.error||this.pill.error;if(i)e.push(i);if(e.length)throw e}catch(e){this.displayError(e)}}async updateTerm(){const t=this.term;if(!t)return;if(!t.q)throw".term.q missing on this input";if(!t.q.mode&&i(t.term.type)){if(t.term.type=="categorical"||t.term.type=="condition"||t.term.type=="survival"||t.term.type=="samplelst")t.q.mode="discrete";else t.q.mode="continuous"}const e=t.term.type=="snplst"||t.term.type=="snplocus"?{cacheid:t.q.cacheid}:{term1_q:t.q};const s=await this.parent.app.vocabApi.getCategories(t.term,this.parent.parent.filter,e);if(!s)throw`no data for term.id='${t.term.id}'`;if(s.error)throw s.error;d(t,s);this.termStatus={topInfoStatus:[],bottomSummaryStatus:undefined,sampleCounts:undefined,excludeCounts:undefined,allowToSelectRefGrp:false};if(t.q.numOfSampleWithAnyValidGT){const e=t.term.snps.reduce(((t,e)=>t+(e.invalid?1:0)),0);this.termStatus.topInfoStatus.push(`${t.q.numOfSampleWithAnyValidGT} samples with valid genotypes`+(e>0?` ${e} invalid SNP${e>1?"s":""}.`:""))}if("geneticModel"in t.q){this.termStatus.topInfoStatus.push("Genetic model: "+(t.q.geneticModel==0?"Additive":t.q.geneticModel==1?"Dominant":t.q.geneticModel==2?"Recessive":"By genotype"))}if(t.q.restrictAncestry){this.termStatus.topInfoStatus.push("Analyzing "+t.q.restrictAncestry.name);if(t.q.restrictAncestry.PCcount){this.termStatus.topInfoStatus.push(`Adjusting for top ${t.q.restrictAncestry.PCcount} ancestry principal components`)}}if(t.term.reachedVariantLimit){this.termStatus.topInfoStatus.push(`<span class=sja_mcdot style="background:#aaa;font-size:1em">\n\t\t\t\t&nbsp;&#9888; Restricted to first ${t.term.snps.length}\n\t\t\t\tvariants of this region.&nbsp;</span> Try zooming in.`)}this.orderedLabels=s.orderedLabels;if(s.lst){this.summarizeSample(t,s.lst);if(t.term.type=="float"||t.term.type=="integer"){if(t.q.mode!="continuous"&&t.q.mode!="spline"){this.termStatus.allowToSelectRefGrp=true}if(t.q.scale&&t.q.scale!=1)this.termStatus.topInfoStatus.push(`Scale: Per ${t.q.scale}`);if(t.q.mode=="discrete"){this.termStatus.topInfoStatus.push(`Discrete variable with ${this.termStatus.sampleCounts.length} bins`)}if(t.q.mode=="spline"){this.termStatus.topInfoStatus.push(`Cubic spline variable with ${t.q.knots.length} knots: ${t.q.knots.map((t=>Number(t.value))).sort(((t,e)=>t-e)).join(", ")}`)}}else if(t.term.type=="categorical"||t.term.type=="geneVariant"||t.term.type=="samplelst"){this.termStatus.allowToSelectRefGrp=true}else if(t.term.type=="condition"){if(this.section.configKey=="outcome"&&this.parent.opts.regressionType=="logistic"){this.termStatus.allowToSelectRefGrp=true}if(this.section.configKey=="outcome"&&this.parent.opts.regressionType=="cox"){if(!["age","time"].includes(t.q.timeScale))throw"invalid q.timeScale";const e=this.parent.app.vocabApi.termdbConfig;this.termStatus.topInfoStatus.push(`Time axis: ${t.q.timeScale=="time"?e.timeUnit:"age"}`);this.termStatus.topInfoStatus.push(`<span style="padding-left: 10px;">-start: ${t.q.timeScale=="time"?" ":"age at "}entry into the cohort (i.e., ${e.cohortStartTimeMsg})</span>`);this.termStatus.topInfoStatus.push(`<span style="padding-left: 10px;">-end: ${t.q.timeScale=="time"?" ":"age at "}event or censoring/death</span>`);const i=Object.keys(t.term.values).map(Number);const s=Math.max(...i);this.termStatus.topInfoStatus.push(`<div style="padding-top: 8px;">Event: first occurrence of grade ${t.q.breaks[0]===s?t.q.breaks[0]:`${t.q.breaks[0]}-${s}</div>`}`)}}this.maySet_refGrp(t)}}summarizeSample(t,e){const i=new Set;if(t.term.values){for(const e in t.term.values){if(t.term.values[e].uncomputable)i.add(t.term.values[e].label)}}if(t.q.mode=="cox"){const t=e.find((t=>t.key==-1));if(t)i.add(t.label)}const s=this.termStatus.sampleCounts=e.filter((t=>!i.has(t.label)));const n=this.termStatus.excludeCounts=e.filter((t=>i.has(t.label)));const o={included:0,excluded:0,total:0};s.forEach((t=>o.included+=t.samplecount));n.forEach((t=>o.excluded+=t.samplecount));o.total=o.included+o.excluded;if(t.term.type=="condition"&&o.total){o.excluded=o.total-o.included}this.termStatus.bottomSummaryStatus=`${o.included} samples included`+(o.excluded?`. ${o.excluded} samples excluded:`:"");if(t&&t.q.mode!=="continuous"&&s.length<2)throw`there should be two or more discrete values with samples for variable='${t.term.name}'`}maySet_refGrp(t){if(this.section.configKey=="outcome"&&this.parent.config.regressionType=="cox"){return}if(t.q.mode=="continuous"){t.refGrp="NA";return}const e=this.termStatus.sampleCounts;if(!("refGrp"in t)||!e.find((e=>e.key==t.refGrp))){const i=this.orderedLabels;if(i&&i.length)e.sort(((t,e)=>i.indexOf(t.key)-i.indexOf(e.key)));else e.sort(((t,e)=>t.samplecount<e.samplecount?1:-1));t.refGrp=e[0].key}}getPillArgs(){const t=this.section;const{config:e,state:i,disable_terms:s}=this.parent;const n=Object.assign({activeCohort:i.activeCohort,disable_terms:s,usecase:{target:"regression",detail:t.configKey,regressionType:e.regressionType}},this.term);n.filter=this.parent.parent.filter;return n}remove(){this.dom.termRow.transition().duration(500).style("opacity",0).remove();for(const t in this.dom){delete this.dom[t]}}renderInteractionPrompt(){this.dom.interactionDiv.style("display","none");if(!this.term)return;if(this.section.configKey!="independent")return;if(this.term.q.mode=="spline")return;{let t=0;for(const e of this.section.inputLst){if(e.term&&e.term.q.mode!="spline"){t++}}if(t<2)return}const t=this.term.interactions.length;this.dom.interactionDiv.style("display","inline").html(t==0?"Add interactions":`${t} interaction${t>1?"s":""}`).style("padding","5px").style("background-color",t==0?null:"#ececec").style("border-radius",t==0?null:"6px").style("color",t==0?"rgb(153, 153, 153)":"#000").style("font-size",t==0?"0.8em":"").style("cursor","pointer").on("click",(()=>this.renderInteractionOptions()))}renderInteractionOptions(){const t=this;t.dom.tip.clear().showunder(t.dom.interactionDiv.node());t.dom.tip.d.append("div").style("padding","5px").style("font-size","0.8em").style("color","rgb(153, 153, 153)").html(`Selected variables will each form pairwise interaction with ${this.term.term.name}`);t.dom.tip.d.append("div").selectAll("div").data(t.parent.config.independent.filter((e=>e&&e.term.id!==t.term.term.id&&e.term.name!==t.term.term.name&&e.q.mode!="spline"))).enter().append("div").style("margin","5px").each((function(e){const i=a(this).append("label");i.append("input").attr("type","checkbox").property("checked",t.term.interactions.includes(e.term.id||e.term.name));i.append("span").text(" "+e.term.name)}));t.dom.tip.d.append("button").text("Apply").style("margin","5px").on("click",(()=>{t.dom.tip.hide();t.term.interactions=[];t.dom.tip.d.selectAll("input").each((function(e){if(a(this).property("checked"))t.term.interactions.push(e.term.id||e.term.name)}));for(const e of t.parent.config.independent){const i=e.interactions.indexOf(t.term.term.id||t.term.term.name);if(t.term.interactions.includes(e.term.id||e.term.name)){if(i==-1)e.interactions.push(t.term.term.id||t.term.term.name)}else if(i!=-1){e.interactions.splice(i,1)}}t.parent.editConfig(t,t.term)}))}}function S(t){return{integer:t=="logistic"?T:k,float:t=="logistic"?T:k,geneExpression:t=="logistic"?T:k,categorical:q,condition:w,survival:w}}async function T(t,e,i,s){if(t.q.mode=="binary"&&t.q.lst&&t.q.lst.length==2){t.q.mode="binary";return}const n=await e.getPercentile(t.term.id,[50],i);if(n.error||!n.values.length||!Number.isFinite(n.values[0]))throw"cannot get median value: "+(n.error||"no data");const o=t.term.type=="integer"?Math.round(n.values[0]):Number(n.values[0].toFixed(2));t.q={mode:"binary",type:"custom-bin",lst:[{startunbounded:true,stopinclusive:true,stop:o},{stopunbounded:true,startinclusive:false,start:o}]};t.q.lst.forEach((e=>{e.label=p(e,t.q)}));t.refGrp=t.q.lst[0].label}function w(t,e,i,s){if(s.config.regressionType=="logistic"){if(!t.refGrp)t.refGrp=t.q.groups[0].name}if(s.config.regressionType=="cox"){if(!t.q.timeScale)t.q.timeScale="time"}}async function q(t,e,i,s){const{term:n,q:o}=t;if(o.mode=="binary"){if(o.type=="values"&&Object.keys(n.values).length==2)return;if(o.type=="predefined-groupset"){const t=o.predefined_groupset_idx;const e=n.groupsetting;if(e[t]&&Object.keys(e[t]).length==2)return}if(o.type=="custom-groupset"){const t=o.customset;if(t.groups.length==2)return}}const r=await e.getCategories(n,i);if(r.error)throw"cannot get categories: "+r.error;const a=new Map;const p=[];for(const t of r.lst){a.set(t.key,t.samplecount);if(n.values&&n.values[t.key]&&n.values[t.key].uncomputable)continue;p.push(t.key)}if(p.length<2){o.type="values";t.error="less than 2 categories/grades - cannot create separate groups";return}if(p.length==2){o.type="values";return}const c=n.groupsetting;if(o.customset&&o.customset.groups&&o.customset.groups.length==2&&_(o.customset,a)){o.type="custom-groupset";return}if(c&&c.lst){if(o.predefined_groupset_idx>=0&&c.lst[o.predefined_groupset_idx]&&c.lst[o.predefined_groupset_idx].groups.length==2&&_(c.lst[o.predefined_groupset_idx],a)){o.type="predefined-groupset";return}const t=c.lst.findIndex((t=>t.groups.length==2));if(t!=-1&&_(c.lst[t],a)){o.predefined_groupset_idx=t;o.type="predefined-groupset";return}}const d={activeCohort:s.activeCohort,groups:[{name:"Group 1",type:"values",values:[]},{name:"Group 2",type:"values",values:[]}]};const l=Math.round(p.length/2);for(const[t,e]of p.entries()){if(t<l)d.groups[0].values.push({key:e});else d.groups[1].values.push({key:e})}o.customset=d;o.type="custom-groupset"}function k(t){if(!t.q.type){console.log("may not happen: why is input.term.q not yet set for numeric term at this point")}t.q.mode="continuous"}function _(t,e){for(const i of t.groups){let t=0;if(i.type=="values"){for(const s of i.values)t+=e.get(s.key)||0;if(t==0)return false}}return true}var A=Object.freeze({__proto__:null,InputTerm:x});const C=[{termtype:"snplst",html:"A list of variants"},{termtype:"snplocus",html:"Variants in a locus"},{termtype:"prs",text:"Polygenic risk score"}];class O{constructor(t){this.opts=t;this.app=t.app;this.parent=t.parent;E(this);I(this);this.createSectionConfigs();this.initUI()}createSectionConfigs(){this.outcome={heading:"Outcome variable",selectPrompt:this.opts.regressionType=="linear"?"Select continuous outcome variable":"Select outcome variable",placeholderIcon:"",configKey:"outcome",limit:1,usecase:{target:"regression",regressionType:this.opts.regressionType,detail:"outcome"},inputLst:[],dom:{}};this.independent={heading:"Independent variable(s)",selectPrompt:"Add independent variable",placeholderIcon:"",configKey:"independent",limit:10,usecase:{target:"regression",regressionType:this.opts.regressionType,detail:"independent"},inputLst:[],dom:{}};this.sections=[this.outcome,this.independent]}async main(){try{this.config=this.parent.config;this.state=this.parent.state;this.hasError=false;this.setDisableTerms();const t=[];for(const e of this.sections){await this.renderSection(e);for(const i of e.inputLst){i.dom.holder.style("border-left",i.term?"1px solid #bbb":"");t.push(i.main())}}await Promise.all(t);for(const t of this.sections){for(const e of t.inputLst){if(e.term&&e.term.error||e.hasError){this.hasError=true}}}}catch(t){this.hasError=true;throw t}}setDisableTerms(){this.disable_terms=[];if(this.config.outcome&&this.config.outcome.term)this.disable_terms.push(this.config.outcome.term);if(this.config.independent){for(const t of this.config.independent){this.disable_terms.push(t.term)}}}handleError(){this.hasError=true;this.dom.submitBtn.property("disabled",true)}getNoTermPromptOptions(t){if(t.configKey!="independent")return;const e=[];for(const i of C){if(!this.state.allowedTermTypes.includes(i.termtype)){continue}if(t.inputLst.find((t=>t.term&&t.term.term.type==i.termtype))){continue}e.push(i)}if(e.length){e.unshift({isDictionary:true,text:"Dictionary variable"})}return e}}function I(t){t.initUI=()=>{const e=t.opts.holder.append("div").style("display","block");t.dom={div:t.opts.holder,controls:e,body:e.append("div"),foot:e.append("div").style("margin","0px 20px").style("display","flex").style("align-items","center").style("gap","20px")};t.dom.submitBtn=t.dom.foot.append("div").append("button").style("display","none").style("padding","5px 15px").style("border-radius","15px").style("cursor","pointer").text("Run analysis").on("click",t.submit);t.dom.submitMsg=t.dom.foot.append("div").style("display","none").style("color","#cc0000").style("font-style","italic").style("font-size","0.8em");for(const e of t.sections){const i=t.dom.body.append("div");t.addSection(e,i)}};t.addSection=function(t,e){e.style("display","none").style("margin","3px 5px").style("padding","3px 5px");t.dom={holder:e,headingDiv:e.append("div").style("margin","3px 5px 20px 5px").style("font-size","17px").style("color","#bbb").text(t.heading),inputsDiv:e.append("div")}};t.renderSection=function(n){n.dom.holder.style("display",n.configKey=="outcome"||t.config.outcome?"block":"none");e(n);const o=n.dom.inputsDiv.selectAll(":scope > div").data(n.inputLst,(t=>t.term&&(t.term.term.id||t.term.term.name)));o.exit().each(s);o.enter().append("div").each(i)};function e(e){const i=t.config[e.configKey];const s=Array.isArray(i)?i:i?[i]:[];for(const n of s){if(e.configKey=="independent"){if(!n.interactions)n.interactions=[];for(const t of n.interactions){const e=i.find((e=>(e.term.id||e.term.name)==t));if(!e)throw"interacting partner not found in independents: "+t;if(!e.interactions)e.interactions=[];if(!e.interactions.includes(n.term.id||n.term.name))e.interactions.push(n.term.id||n.term.name)}}const s=e.inputLst.find((t=>t.term?.term.id==n.term.id||t.term?.term.name==n.term.name));if(!s){e.inputLst.push(new x({section:e,term:n,parent:t}))}else{s.term=n}}$(e,t)}async function i(t){await t.init(a(this).style("width","fit-content").style("margin","0px 15px 35px 25px").style("padding","0px 5px"))}function s(t){t.remove();for(const e in t.dom){delete t.dom[e]}const e=a(this);e.transition().duration(500).style("opacity",0).remove()}t.resetSubmitButton=()=>{t.dom.submitBtn.text("Run analysis").style("display",t.config.outcome&&t.config.independent.length?"block":"none").property("disabled",t.hasError)}}function E(t){t.editConfig=async(e,i)=>{if(!i){const t=e.section.inputLst.findIndex((t=>t===e));if(t==-1)throw`deleting an unknown input`;e.section.inputLst.splice(t,1);if(e.term){for(const t of e.section.inputLst){if(!t.term||!t.term.interactions)continue;const i=t.term.interactions.indexOf(e.term.term.id||e.term.term.name);if(i!=-1)t.term.interactions.splice(i,1)}}}else{const t=e.term;if(t&&i.term.id===t.term.id){for(const e in t){if(!(e in i))i[e]=t[e]}}e.term=i;if(i.q.mode=="spline"&&i.interactions){for(const t of e.section.inputLst){if(!t.term||!t.term.interactions)continue;const i=t.term.interactions.indexOf(e.term.term.id||e.term.term.name);if(i!=-1)t.term.interactions.splice(i,1)}i.interactions=[]}}const s=[];for(const t of e.section.inputLst){if(t.term)s.push(t.term)}const n=e.section.configKey;const o=Array.isArray(t.config[n])?s:s[0];t.app.dispatch({type:"plot_edit",id:t.parent.id,chartType:"regression",config:{hasUnsubmittedEdits:true,[n]:JSON.parse(JSON.stringify(o))}})};t.submit=()=>{t.dom.submitBtn.property("disabled",true);if(t.hasError){alert("Please fix the input variable errors (highlighted in red background).");return}const e=JSON.parse(JSON.stringify(t.config));e.hasUnsubmittedEdits=false;t.app.dispatch({type:"plot_edit",id:t.parent.id,chartType:"regression",config:e})}}function $(t,e){if(t.inputLst.length>=t.limit){return}const i=t.inputLst.find((t=>!t.term));if(i){const s=e.getNoTermPromptOptions(t);if(s){i.pill.main({noTermPromptOptions:s})}return}t.inputLst.push(new x({section:t,parent:e,noTermPromptOptions:e.getNoTermPromptOptions(t)}))}var P=Object.freeze({__proto__:null,RegressionInputs:O});export{A as a,P as b,v as r};
@@ -1 +0,0 @@
1
- import{getDefaultViolinSettings as t}from"./violin-1515c3e6.js";import{appInit as e}from"./plot.app-aa916e0e.js";import{d as o}from"./app-a8c4854a.js";import"./controls-0bacec22.js";import"./controls.btns-1cb2bfab.js";import"./controls.config-0ccc9d79.js";import"./controls.overlay-fe20d41d.js";import"./roundValue-b0d0517c.js";import"./tslib.es6-1f85f553.js";import"path";import"./FilterRxComp-242f4615.js";import"./table-79e3e776.js";import"./termdb.bins-9faa5170.js";import"./controls.term1-faa2efcf.js";import"./controls.divide-a9fe9466.js";import"./violin.renderer-dafd89fa.js";import"./brush-c386fe3d.js";import"./pointer-c7475677.js";import"./nodrag-2c046d31.js";import"./axis-747c801e.js";import"./line-264f8f9e.js";import"./constant-426a1483.js";import"./basis-3870f5ba.js";import"./log-cf45fcf2.js";import"./html.legend-abb5452e.js";import"./violin.interactivity-8e2f480d.js";import"./niceNumLabels-6cfc1508.js";import"./recover-36ada47f.js";import"./FilterStateless-046081c2.js";import"./app-ade9c62a.js";import"./termInfo-f851b415.js";import"./toggleButtons-002aeda1.js";import"./genesearch-ea59f5d4.js";import"./checkbox-96437f4d.js";import"./rehydrateFilter-12d118cb.js";const i="#fff6dc";class l{constructor(t){this.opts=t;this.input=t.input;s(this);this.setDOM(t.holder)}main(){try{const t=this.input.term;if(!t||!this.input.termStatus){this.dom.holder.style("display","none");this.dom.loading_div.style("display","none");return}else if(t){this.dom.holder.style("display","block");this.dom.loading_div.style("display","block");this.updateValueCount();this.dom.loading_div.style("display","none");this.render();return}}catch(t){this.dom.loading_div.style("display","none");throw t}}updateValueCount(){const t=this.input;try{if(t.pill&&t.pill.validateQ){t.pill.validateQ({term:t.term.term,q:t.term.q,sampleCounts:t.termStatus.sampleCounts})}}catch(e){t.term.error=e}}}function s(l){l.setDOM=t=>{l.dom={holder:t.style("margin","10px").style("font-size",".8em").style("text-align","left").style("color","#999"),loading_div:t.append("div").text("Loading..").style("display","none"),top_info_div:t.append("div").style("padding-bottom","5px"),violin_div:t.append("div").style("color","black").style("padding-top","5px"),table_div:t.append("table").style("margin","5px 0px 15px 0px").style("border-collapse","collapse").style("color","black"),bottom_info_div:t.append("div"),excluded_div:t.append("table").style("display","none").style("margin","5px 10px").style("border-collapse","collapse")}};l.render=async()=>{const t=l.input;s(t);await n(t);p(t);a(t)};function s(t){if(t.termStatus.topInfoStatus?.length){l.dom.top_info_div.style("display","block").html(t.termStatus.topInfoStatus.join("<br>"))}else{l.dom.top_info_div.style("display","none")}}async function n(o){if(o.term.q.mode=="continuous"||o.term.q.mode=="spline"){l.dom.violin_div.style("display","block");l.dom.table_div.style("display","none");if(l.plotAppApi){const t={type:"app_refresh",state:{termfilter:{filter:l.input.parent.parent.filter}},subactions:[{type:"plot_edit",id:l.violinApi.id,config:{term:o.term}}]};l.plotAppApi.dispatch(t)}else{const i={holder:l.dom.violin_div,vocabApi:l.input.parent.app.vocabApi,state:{vocab:{genome:l.input.parent.app.vocabApi.genome,dslabel:l.input.parent.app.vocabApi.dslabel},termfilter:{filter:l.input.parent.parent.filter},plots:[{chartType:"violin",term:o.term,settings:{violin:t(null,{svgw:350,axisHeight:25,rightMargin:10,datasymbol:"rug",radius:3,plotThickness:100})}}]},violin:{mode:"minimal"}};l.plotAppApi=await e(i);const s=l.plotAppApi.getState().plots[0].id;l.violinApi=l.plotAppApi.getComponents(`plots.${s}`)}}else{l.dom.violin_div.style("display","none");const t=o.termStatus.sampleCounts;if(!t||!t.length){l.dom.table_div.style("display","none");return}l.dom.table_div.style("display","block");const e=l.input.orderedLabels;const i=e&&e.length?(t,o)=>e.indexOf(t.label)-e.indexOf(o.label):(t,e)=>e.samplecount-t.samplecount;const s=t.sort(i);const n=Math.max(...s.map((t=>t.samplecount)),0);s.forEach((t=>t.bar_width_frac=Number((1-(n-t.samplecount)/n).toFixed(4))));l.dom.table_div.selectAll("tr").remove();const p=l.dom.table_div.selectAll("tr").data(s,(t=>t.key));p.enter().append("tr").each(r)}}function p(t){if(t.termStatus.bottomSummaryStatus){l.dom.bottom_info_div.style("display","block").html(t.termStatus.bottomSummaryStatus)}else{l.dom.bottom_info_div.style("display","none")}}function a(t){const e=t.termStatus.excludeCounts;if(!e||!e.length){l.dom.excluded_div.style("display","none");return}l.dom.excluded_div.style("display","block").selectAll("tr").remove();const o=l.dom.excluded_div.selectAll("tr").data(e,(t=>t.key));o.enter().append("tr").each(r);l.dom.excluded_div.selectAll("td").style("color","#999")}function r(t){const e=o(this);const i=this.parentNode.__data__;i.term;const l=150;e.style("text-align","left").style("cursor",i.termStatus.allowToSelectRefGrp?"pointer":"default");const s="1px 10px 1px 0px";e.append("td").style("padding",s).style("text-align","left").style("color","black").text(t.samplecount!==undefined?"n="+t.samplecount:"");e.append("td").style("padding",s).style("text-align","left").style("color","black").text(t.label);const n=e.append("td").style("padding",s);const p=l*t.bar_width_frac;n.append("div").style("margin",s).style("width",p+"px").style("height","15px").style("background-color","#ddd");d({input:i,item:t,tr:e,rendered:false})}function d({input:t,item:e,tr:s,rendered:n}){if(!e.bar_width_frac)return;const p=t.term;const a=t.termStatus.allowToSelectRefGrp;let r;if(n){s.style("background","white");r=o(s.node().lastChild).select("div").style("display",e.key===p.refGrp&&a?"inline-block":"none").style("border",e.key===p.refGrp&&a?"1px solid #bbb":"")}else if(t.term.q.mode!="cutoff"){const t=s.append("td").style("padding","1px 5px").style("text-align","left");r=t.append("div").style("display",e.key===p.refGrp&&a?"inline-block":"none").style("padding","2px 10px").style("border",e.key===p.refGrp&&a?"1px solid #bbb":"").style("border-radius","10px").style("color","#999").style("font-size",".7em").text("REFERENCE");if(a){s.on("mouseover",(()=>{if(p.refGrp!==e.key){s.style("background",i);r.style("display","inline-block").style("border","").text("Set as reference")}else s.style("background","white")})).on("mouseout",(()=>{s.style("background","white");if(p.refGrp!==e.key)r.style("display","none")})).on("click",(()=>{p.refGrp=e.key;r.style("border","1px solid #bbb").text("REFERENCE");l.opts.callback(p)}))}}}}export{l as InputValuesTable};
@@ -1 +0,0 @@
1
- import{bL as t,y as e,I as n,f as s}from"./app-a8c4854a.js";import{a as r}from"./axisstyle-fac7f76b.js";import{C as o}from"./ColorScale-9c76aef3.js";import{a as i}from"./axis-747c801e.js";import{l as a}from"./log-cf45fcf2.js";function p({bp:t,g:e,color:n,scale:s,rowheight:r,labpad:o}){if(t.label){e.append("text").attr("font-family","Arial").attr("text-anchor","end").attr("dominant-baseline","central").attr("fill",n).attr("x",-o).attr("y",r/2).attr("font-size",Math.min(15,r)).text(t.label)}if(t.w1!=undefined){const o=s(t.w1);const i=s(t.w2);const a=s(t.p25);const p=s(t.p50);const l=s(t.p75);t.hline=e.append("line").attr("stroke",n).attr("shape-rendering","crispEdges").attr("x1",o).attr("x2",i).attr("y1",r/2).attr("y2",r/2);t.linew1=e.append("line").attr("stroke",n).attr("shape-rendering","crispEdges").attr("x1",o).attr("x2",o).attr("y1",0).attr("y2",r);t.linew2=e.append("line").attr("stroke",n).attr("shape-rendering","crispEdges").attr("x1",i).attr("x2",i).attr("y1",0).attr("y2",r);t.box=e.append("rect").attr("fill","white").attr("stroke",n).attr("shape-rendering","crispEdges").attr("x",a).attr("y",0).attr("width",l-a).attr("height",r);t.linep50=e.append("line").attr("stroke",n).attr("shape-rendering","crispEdges").attr("x1",p).attr("x2",p).attr("y1",0).attr("y2",r)}for(const o of t.out){e.append("circle").attr("stroke",n).attr("fill","white").attr("fill-opacity",0).attr("cx",s(o.value)).attr("cy",r/2).attr("r",r/3)}}function l(t,e,n,s){const r=[];if(Array.isArray(t)){for(const o of t){if(o.namekey=="regulomedb"){if(typeof e.chr=="string"&&e.pos!==undefined&&Number.isInteger(e.pos)){const t=`${e.chr}%3A${e.pos}-${e.pos+1}`;r.push(`<a href="${o.base}regions=${t}&genome=${s=="hg38"?"GRCh38":s}" target="_blank">${o.linkText}</a>`)}continue}c(o,e,n,r)}}else{c(t,e,n,r)}return r}function c(t,e,n,s){const r=e[t.namekey];if(r==undefined)return;const o=t.base+r;if(t.shownSeparately){s.push(`<a href="${o}" target="_blank">${t.linkText||r}</a>`);return}n.html(`<a href="${o}" target="_blank">${n.html()}</a>`)}const d="NA";const f="#126e08";const m=f;class u{constructor(t){this.opts=t;this.app=t.app;this.parent=t.parent;this.type="regression";g(this);const e=this.opts.holder;e.append("div").style("margin-top","10px").style("padding-top","20px").style("font-size","1.2em").style("opacity",.3).html("Results");this.dom={holder:e,err_div:e.append("div"),snplocusBlockDiv:e.append("div"),oneSetResultDiv:e.append("div").style("margin","10px")}}async main(){try{this.parent.inputs.dom.submitBtn.text("Running...");this.config=this.parent.config;this.state=this.parent.state;if(!this.state.formIsComplete||this.parent.inputs.hasError||this.config.hasUnsubmittedEdits&&!this.hasUnsubmittedEdits_nullify_singleuse){this.dom.holder.style("display","none");return}delete this.hasUnsubmittedEdits_nullify_singleuse;if(this.snplocusBlock){this.snplocusBlock.cloakOn()}const t=await this.app.vocabApi.getRegressionData(this.getDataRequestOpts());if(t.error)throw t.error;this.dom.err_div.style("display","none");this.dom.oneSetResultDiv.selectAll("*").remove();this.dom.holder.style("display","block");await this.displayResult(t);const e=this.dom.holder.node().getBoundingClientRect().top+window.scrollY;const n=document.querySelector(".sjpp-nav").getBoundingClientRect().height;window.scroll({behavior:"smooth",top:e-n})}catch(t){this.hasError=true;this.dom.holder.style("display","block");this.dom.err_div.style("display","block");e(this.dom.err_div,"Error: "+(t.error||t));this.parent.inputs.dom.submitBtn.property("disabled",true);console.error(t)}}getDataRequestOpts(){const t=this.config;const e={regressionType:t.regressionType,outcome:t.outcome,independent:t.independent};e.filter=this.parent.filter;return e}getIndependentInput(t){for(const e of this.parent.inputs.independent.inputLst){if(!e.term)continue;if(e.term.term.id==t||e.term.term.name==t)return e;if(e.term.term&&e.term.term.snps){for(const n of e.term.term.snps){if(n.snpid==t){const s={id:t,q:{geneticModel:e.term.q.geneticModel},term:{id:t,name:t},effectAllele:e.term.q.snp2effAle[t]};if(e.term.q.snp2refGrp){s.refGrp=e.term.q.snp2refGrp[t]}if(n.mlst){const r=n.mlst.find((n=>n.alt==e.term.q.snp2effAle[t]));if(r){s.term.name=r.mname}else{s.term.name=n.mlst[0].mname}}return{term:s}}}}}return{term:{id:t,q:{},term:{name:t}}}}}function g(t){t.displayResult=async e=>{const n=t.parent.inputs.independent.inputLst.find((t=>t.term&&t.term.term.type=="snplocus"));if(n){if(!t.snplocusBlock){t.dom.snplocusBlockDiv.append("div").style("margin-top","30px").style("opacity",.3).text("Click on a variant within the browser to view its regression results");t.snplocusBlock=await w(t,n,e.resultLst)}else{await v(t,n,e.resultLst)}return}delete t.snplocusBlock;t.dom.snplocusBlockDiv.selectAll("*").remove();if(!e.resultLst[0]||!e.resultLst[0].data)throw"result is not [ {data:{}} ]";t.displayResult_oneset(e.resultLst[0].data)};t.displayResult_oneset=e=>{t.dom.oneSetResultDiv.selectAll("*").remove();t.dom.LDresultDiv=t.dom.oneSetResultDiv.append("div");t.mayshow_warn(e);if(e.sampleSize)t.newDiv("Sample size:",e.sampleSize);if(e.eventCnt)t.newDiv("Number of events:",e.eventCnt);t.mayshow_headerRow(e);t.mayshow_splinePlots(e);t.mayshow_residuals(e);t.mayshow_coefficients(e);t.mayshow_totalSnpEffect(e);t.mayshow_type3(e);t.mayshow_tests(e);t.mayshow_other(e);t.mayshow_fisher(e);t.mayshow_wilcoxon(e);t.mayshow_cuminc(e)};t.newDiv=(e,n,s)=>{const r=t.dom.oneSetResultDiv.append("div").style("margin","20px 0px 10px 0px").attr("name",e);const o=r.append("div");o.append("span").style("text-decoration","underline").text(e);if(n){o.append("span").html(n).style("margin-left","5px")}return s?o:r.append("div").style("margin-left","20px")};t.mayshow_warn=e=>{if(!e.warnings)return;const n=t.newDiv("Warnings");const s=new Set(e.warnings);for(const t of s){n.append("p").style("margin","5px").text(t)}};t.mayshow_headerRow=e=>{if(!e.headerRow)return;const n=e.headerRow.k;const s=e.headerRow.v;const r=t.parent.inputs.independent.inputLst.find((t=>t.term&&t.term.term.type=="snplocus"));if(r){const e=r.term.term.snps.find((t=>t.snpid==s.snpid));const o=e.mlst[0];o.chr=e.chr;const i=t.newDiv(n,null,true);const a=i.append("span").text(`${o.chr}:${o.pos+1} ${o.ref&&o.alt?o.ref+">"+o.alt:""}`).style("margin-left","5px");const p=t.app.vocabApi.termdbConfig.urlTemplates?.ssm||t.app.vocabApi.termdbConfig.queries?.snvindel?.ssmUrl;if(p){const e=l(p,o,a,t.parent.genomeObj.name);if(e?.length){i.append("span").style("margin-left","10px").html(e.join(" "))}}let c;const d=`Genotypes: ${s.gtcounts.join(", ")}`;if(s.monomorphic){c=[d]}else{const t=`Effect allele: ${s.effAle}`;const e=`Allele frequency: ${s.af}`;c=[t,e,d]}i.append("span").html(`&nbsp;&#65372;&nbsp;${c.join("&nbsp;&#65372;&nbsp;")}`)}else{t.newDiv(n,s)}};t.mayshow_splinePlots=e=>{if(!e.splinePlots)return;const n=t.newDiv("Cubic spline plots");for(const t of e.splinePlots){n.append("img").attr("src",t.src).style("width",t.size.width).style("height",t.size.height)}};t.mayshow_residuals=e=>{if(!e.residuals)return;const n=t.newDiv(e.residuals.label);const s=n.append("table").style("border-spacing","8px").attr("name","sjpp-residuals-table");const r=s.append("tr").style("opacity",.4);const o=s.append("tr");for(let t=0;t<e.residuals.header.length;t++){r.append("td").text(e.residuals.header[t]);o.append("td").text(e.residuals.rows[t])}};t.mayshow_cuminc=async e=>{if(!e.cuminc)return;const n=t.newDiv("Cumulative incidence test:");const s=await import("./cuminc-7e2cac2d.js");const r=new s.Cuminc({holder:n,config:{term:t.config.outcome,term2:{term:{name:"Variant",values:{1:{key:1,label:"Has minor allele"},2:{key:2,label:"No minor allele"}}}}}});if(e.cuminc.ci_data){r.main(e.cuminc.ci_data)}else{n.append("div").style("margin","20px").text(e.cuminc.msg)}};t.mayshow_wilcoxon=e=>{if(!e.wilcoxon)return;const s=t.newDiv("Wilcoxon rank sum test:","p-value = "+e.wilcoxon.pvalue);if(e.wilcoxon.boxplots){const o=e.wilcoxon.boxplots;const a=20,l=400,c=160,d=40,f=20,u=10;const g=n().domain([o.minv,o.maxv]).range([0,l]);const h=s.append("svg").style("margin-top","10px").attr("width",c+f+l+10).attr("height",u*3+a*2+d);const y=h.append("g").attr("transform",`translate(${c+f},${u})`);p({g:y.append("g"),bp:o.hasEff,scale:g,rowheight:a,color:m,labpad:f});p({g:y.append("g").attr("transform",`translate(0,${a+u})`),bp:o.noEff,scale:g,rowheight:a,color:m,labpad:f});{const e=y.append("g").attr("transform",`translate(0,${a*2+u*2})`);const n=i().scale(g);r({axis:e.call(n),color:m,showline:true});e.append("text").text(t.config.outcome.term.name).attr("font-size",15).attr("x",l/2).attr("y",d-5).attr("text-anchor","middle").attr("fill",m)}}};t.mayshow_fisher=e=>{if(!e.fisher)return;const n=t.newDiv(e.fisher.isChi?"Chi-square test:":"Fisher's exact test:","p-value = "+e.fisher.pvalue);const s=n.append("table").style("margin","20px").style("border-spacing","5px").style("border-collapse","separate");for(const t of e.fisher.rows){const e=s.append("tr");for(const n of t){e.append("td").text(n)}}};t.mayshow_coefficients=e=>{if(!e.coefficients)return;const n=t.newDiv(e.coefficients.label);const s=n.append("table").style("border-spacing","0px").attr("data-testid","sjpp_regression_resultCoefficientTable");{const t=s.append("tr").style("opacity",.4);e.coefficients.header.forEach(((e,n)=>{t.append("td").text(e).style("padding","8px");if(n===1)t.append("td")}))}if(t.config.regressionType!="cox"){const t=s.append("tr").style("background","#eee");e.coefficients.intercept.forEach(((e,n)=>{t.append("td").text(e).style("padding","8px");if(n===1)t.append("td")}))}const r=t.getForestPlotter(e.coefficients.terms,e.coefficients.interactions);let o=t.config.regressionType=="cox"?1:0;for(const n in e.coefficients.terms){const i=e.coefficients.terms[n];const a=t.getIndependentInput(n).term;let p=s.append("tr").style("background",o++%2?"#eee":"none");const l=p.append("td").style("padding","8px");y(a,l);if(i.fields){{const t=p.append("td").style("padding","8px");N(t,a)}r(p.append("td"),i.fields);for(const t of i.fields){p.append("td").text(t).style("padding","8px")}}else if(i.categories){const e=[];const c=t.getIndependentInput(n);if(c.orderedLabels){for(const t of c.orderedLabels){if(i.categories[t])e.push(t)}}for(const t in i.categories){if(!e.includes(t))e.push(t)}l.attr("rowspan",e.length).style("vertical-align","top");let d=true;for(const t of e){if(d){d=false}else{p=s.append("tr").style("background",o++%2?"#eee":"none")}const e=p.append("td").style("padding","8px");N(e,a,t);r(p.append("td"),i.categories[t]);for(const e of i.categories[t]){p.append("td").text(e).style("padding","8px")}}}else{p.append("td").text("ERROR: no .fields[] or .categories{}")}}for(const n of e.coefficients.interactions){const e=s.append("tr").style("background",o++%2?"#eee":"none");const i=t.getIndependentInput(n.term1).term;const a=t.getIndependentInput(n.term2).term;{const t=e.append("td").style("padding","8px");h(t.append("div"),i?i.term.name+" : ":n.term1+" : ");h(t.append("div"),a?a.term.name:n.term2)}{const t=e.append("td").style("padding","8px");N(t.append("div"),i,n.category1);N(t.append("div"),a,n.category2)}r(e.append("td"),n.lst);for(const t of n.lst){e.append("td").text(t).style("padding","8px")}}const i=s.append("tr");i.append("td");i.append("td");r(i.append("td"));for(const t of e.coefficients.header)i.append("td")};t.mayshow_totalSnpEffect=e=>{if(!e.totalSnpEffect)return;const n=t.newDiv(e.totalSnpEffect.label);const s=n.append("table").style("border-spacing","0px");{const t=s.append("tr").style("opacity",.4);for(const n of e.totalSnpEffect.header){t.append("td").text(n).style("padding","8px")}}const r=s.append("tr").style("background","#eee");for(const t of e.totalSnpEffect.lst){r.append("td").text(t).style("padding","8px")}const o=t.getIndependentInput(e.totalSnpEffect.snp).term;const i=e.totalSnpEffect.interactions.map((e=>({t1:t.getIndependentInput(e.term1).term,t2:t.getIndependentInput(e.term2).term})));const a=`Total: total effect of removing the snp (${o.term.name}) and its interactions (${i.map((t=>t.t1.term.name+" : "+t.t2.term.name)).join(" ; ")}) from the model`;n.append("div").style("margin","20px 0px 20px 10px").style("font-size",".8em").style("text-align","left").style("color","#999").text(a)};t.mayshow_type3=e=>{if(!e.type3)return;const n=t.newDiv(e.type3.label);const s=n.append("table").style("border-spacing","0px");{const t=s.append("tr").style("opacity",.4);for(const n of e.type3.header){t.append("td").text(n).style("padding","8px")}}if(t.config.regressionType!="cox"){const t=s.append("tr").style("background","#eee");for(const n of e.type3.intercept){t.append("td").text(n).style("padding","8px")}}let r=t.config.regressionType=="cox"?1:0;for(const n in e.type3.terms){const o=e.type3.terms[n];const i=t.getIndependentInput(n).term;let a=s.append("tr").style("background",r++%2?"#eee":"none");const p=a.append("td").style("padding","8px");h(p,i.term.name);for(const t of o){a.append("td").text(t).style("padding","8px")}}for(const n of e.type3.interactions){const e=s.append("tr").style("background",r++%2?"#eee":"none");const o=t.getIndependentInput(n.term1).term;const i=t.getIndependentInput(n.term2).term;const a=e.append("td").style("padding","8px");h(a.append("div"),o.term.name+" : ");h(a.append("div"),i.term.name);for(const t of n.lst){e.append("td").text(t).style("padding","8px")}}};t.mayshow_tests=e=>{if(!e.tests)return;const n=t.newDiv(e.tests.label);const s=n.append("table").style("border-spacing","0px");const r=s.append("tr").style("opacity",.4);for(const t of e.tests.header){r.append("td").text(t).style("padding","8px")}let o=0;for(const t of e.tests.rows){const e=s.append("tr").style("background",o++%2?"none":"#eee");for(const n of t){e.append("td").text(n).style("padding","8px")}}};t.mayshow_other=e=>{if(!e.other)return;const n=t.newDiv(e.other.label);const s=n.append("table").style("border-spacing","8px");for(let t=0;t<e.other.header.length;t++){const n=s.append("tr");n.append("td").style("opacity",.4).text(e.other.header[t]);n.append("td").text(e.other.rows[t])}};t.getForestPlotter=(e,s)=>{let o,p,l,c,d,m,u;if(t.config.regressionType=="linear"){o=0;p=1;l=2;c="Beta value";d=0;m=null;u=null}else if(t.config.regressionType=="logistic"){o=0;p=1;l=2;c="Odds ratio";d=1;m=.1;u=10}else if(t.config.regressionType=="cox"){o=0;p=1;l=2;c="Hazard ratio";d=1;m=.1;u=10}else{throw"unknown regressionType"}const g=[];for(const t in e){const n=e[t];if(n.fields){b(n.fields)}else{for(const t in n.categories){b(n.categories[t])}}}for(const t of s){b(t.lst)}if(g.length==0){return()=>{}}g.sort(((t,e)=>t-e));if(m==null){m=g[0];u=g[g.length-1]}const h=150;const y=20;const x=10,w=10;const v=k(g);return(e,n)=>{if(!v){return}const s=e.append("svg").attr("width",h+x+w).attr("height",y);const a=s.append("g").attr("transform","translate("+x+",0)");if(!n){const e=t.config.regressionType=="logistic"?".1r":undefined;const n=i().ticks(4,e).scale(v);r({axis:a.call(n),color:f,showline:true});const o=12;a.append("text").attr("fill",f).text(c).attr("x",h/2).attr("y",y+o);s.attr("height",y+o);return}{const t=v(d);a.append("line").attr("x1",t).attr("y1",0).attr("x2",t).attr("y2",y).attr("stroke","#ccc")}const g=Number(n[o]),b=Number(n[p]),k=Number(n[l]);if(Number.isNaN(g)){return}a.append("circle").attr("cx",v(Math.min(Math.max(g,m),u))).attr("cy",y/2).attr("r",3).attr("fill",f);if(Number.isNaN(b)||Number.isNaN(k)){return}a.append("line").attr("x1",v(Math.min(Math.max(b,m),u))).attr("y1",y/2).attr("x2",v(Math.min(Math.max(k,m),u))).attr("y2",y/2).attr("stroke",f)};function b(t){const e=Number(t[o]);if(!Number.isNaN(e))g.push(e);const n=Number(t[p]),s=Number(t[l]);if(!Number.isNaN(n)&&!Number.isNaN(s)){g.push(n);g.push(s)}}function k(e){if(t.config.regressionType=="logistic"){let t=0;while(e[t]<=0){t++}if(t>=e.length||e[t]<=0){return}const n=e[t];const s=e[e.length-1];return a().domain([Math.max(n,m),Math.min(s,u)]).range([0,h]).nice()}if(t.config.regressionType=="linear"||t.config.regressionType=="cox"){return n().domain([Math.max(e[0],m),Math.min(e[e.length-1],u)]).range([0,h])}throw"unknown type"}}}function h(t,e){if(e.length<40){t.text(e)}else{t.text(e.substring(0,35)+" ...").attr("title",e)}}function y(t,e){h(e,t.term.name||tid);if(t.q.mode!="spline"&&"refGrp"in t&&t.refGrp!=d){e.append("div").style("font-size",".8em").style("opacity",.6).html('<span style="padding:1px 5px;border:1px solid #aaa;border-radius:10px;font-size:.7em">REF</span> '+(t.term.values&&t.term.values[t.refGrp]?t.term.values[t.refGrp].label:t.refGrp)+"</span>")}if(t.effectAllele){e.append("div").style("font-size",".8em").style("opacity",.6).html('<span style="padding:1px 5px;border:1px solid #aaa;border-radius:10px;font-size:.7em">EFFECT ALLELE</span> '+t.effectAllele+"</span>")}}function x(t,e){const n=[];for(const s of t.term.snps){const r={chr:s.chr,pos:s.pos,ssm_id:s.snpid};n.push(r);const o=t.q.snp2effAle[s.snpid];const i=s.mlst.find((t=>t.alt==o));if(i){Object.assign(r,i)}else{Object.assign(r,s.mlst[0])}r.regressionPvalue="NA";r.mlpv=0;const a=e.find((t=>t.id==s.snpid));if(!a){r.regressionResult={data:{err:["No result for this variant at "+s.snpid]}};continue}r.regressionResult=a;const p=a.data;if(!p)throw".data{} missing";if(p.type3){const t=A(p,s.snpid);if(t==undefined);else{r.regressionPvalue=t;r.mlpv=-Math.log10(t)}if(!p.coefficients||!p.coefficients.terms)throw".data.coefficients.terms{} missing";const e=p.coefficients.terms[s.snpid];if(!e)throw"snp missing from data.coefficients.terms{}";if(Array.isArray(e.fields)){r.regressionEstimate=e.fields[0]}else if(e.categories){const t=[];for(const n in e.categories){t.push(n+":"+e.categories[n][0])}r.regressionEstimate=" "+t.join(" ")}else{throw"unknown way to get snp estimates from coefficients table"}}else if(p.fisher){r.regressionPvalue=p.fisher.pvalue;r.mlpv=-Math.log10(p.fisher.pvalue);r.shapeTriangle=true}else if(p.wilcoxon){r.regressionPvalue=p.wilcoxon.pvalue;r.mlpv=-Math.log10(p.wilcoxon.pvalue);r.shapeTriangle=true}else if(p.cuminc){r.regressionPvalue=p.cuminc.pvalue;r.mlpv=-Math.log10(p.cuminc.pvalue);r.shapeTriangle=true}else{r.shapeCircle=true}}return n}async function w(t,e,n){const r={holder:t.dom.snplocusBlockDiv,genome:t.parent.genomeObj,chr:e.term.q.chr,start:e.term.q.start,stop:e.term.q.stop,nobox:true,tklst:[],onCoordinateChange:async n=>{for(const e of t.snplocusBlock.tklst){if(e.type=="mds3")delete e.skewer.hlssmid}const{chr:s,start:r,stop:o}=n[0];const i={term:{id:e.term.term.id,type:"snplocus"},q:JSON.parse(JSON.stringify(e.term.q))};i.q.chr=s;i.q.start=r;i.q.stop=o;const a=await import("./snplocus-cb629be1.js");await a.fillTW(i,t.app.vocabApi);t.hasUnsubmittedEdits_nullify_singleuse=true;e.pill.runCallback(i)}};r.tklst.push({type:"mds3",name:"Variants",skewerModes:[{type:"numeric",byAttribute:"mlpv",label:"-log10 p-value",inuse:true,tooltipPrintValue:e=>D(e,t.config.regressionType)}],custom_variants:x(e.term,n),variantShapeName:{dot:"common variants analyzed by model-fitting",triangle:"rare variants analyzed by "+(t.config.regressionType=="linear"?"Wilcoxon rank sum test":t.config.regressionType=="logistic"?"Fisher's exact test":"Cumulative incidence test"),circle:"monomorphic variants skipped"},click_snvindel:async n=>{t.displayResult_oneset(n.regressionResult.data);await E(n,e,t);const s=t.dom.oneSetResultDiv.node().getBoundingClientRect().top+window.scrollY;const r=document.querySelector(".sjpp-nav").getBoundingClientRect().height;window.scroll({behavior:"smooth",top:s-r})}});s(t.parent.genomeObj,r.tklst);const o=await import("./block-dcb130fb.js").then((function(t){return t.c}));return new o.Block(r)}async function v(t,e,n){const s=t.snplocusBlock.tklst.find((t=>t.type=="mds3"));s.custom_variants=x(e.term,n);const r=t.snplocusBlock.rglst[0];if(r.chr==e.term.q.chr&&r.start==e.term.q.start&&r.stop==e.term.q.stop){s.load()}else{await t.snplocusBlock.jump_1basedcoordinate(e.term.q)}t.snplocusBlock.cloakOff()}const b="#2E6594",k="#ff0000",_=t(b,k);async function E(t,e,n){if(!e.term.q.restrictAncestry){return}const s=n.snplocusBlock.tklst.find((t=>t.type=="mds3"));if(!s||!s.skewer||!s.skewer.nmg)return;for(const t of s.custom_variants)delete t.regressionR2;const r=n.dom.LDresultDiv.append("span").text("Loading LD data...");try{const o=await n.app.vocabApi.getLDdata(e.term.q.restrictAncestry.name,t);if(o.error)throw o.error;if(o.nodata||!o.lst||o.lst.length==0){r.text("No LD data");s.skewer.nmg.selectAll(".sja_aa_disk_fill").attr("fill",(t=>t.shapeCircle?"none":s.color4disc(t)));return}s.skewer.nmg.selectAll(".sja_aa_disk_fill").attr("fill",(e=>{if(e.pos==t.pos&&e.ref==t.ref&&e.alt==t.alt){return k}for(const t of o.lst){if(t.pos==e.pos&&t.alleles==e.ref+"."+e.alt){e.regressionR2=t.r2;return _(t.r2)}}return _(0)}));r.html(e.term.q.restrictAncestry.name+" LD r<sup>2</sup>");R(n.dom.LDresultDiv,_)}catch(t){r.text("Error: "+(t.message||t))}}function R(t,e){const n=t.append("span").style("margin-left","10px");const s=[];for(let t=0;t<=1;t+=.1){s.push(e(t))}const r=20;const i=15;const a=10;const p=150;const l=new o({holder:n,data:[0,1],topTicks:true,width:a*2+p,height:r+i,barheight:i,barwidth:p,fontSize:12,startColor:s[0],midColor:s[s.length-1],endColor:s[s.length-1],position:`${a},${r}`,tickSize:6});l.render()}function D(t,e){const n=[{k:"p-value",v:t.regressionPvalue}];if(t.regressionResult.AFstr){n.push({k:"AF",v:t.regressionResult.AFstr})}if(t.regressionEstimate){if(e=="linear")n.push({k:"beta",v:t.regressionEstimate});else if(e=="logistic")n.push({k:"odds ratio",v:t.regressionEstimate});else if(e=="cox")n.push({k:"hazard ratio",v:t.regressionEstimate});else throw"unknown regression type"}if(t.regressionR2){n.push({k:"LD r2",v:t.regressionR2})}return n}function A(t,e){let n;if(t.totalSnpEffect){n=t.totalSnpEffect.lst[t.totalSnpEffect.lst.length-1]}else{if(!t.type3.terms)throw".data{type3:{terms}} missing";if(!t.type3.terms[e])throw e+" missing in type3.terms{}";if(!Array.isArray(t.type3.terms[e]))throw`type3.terms[${snp.snpid}] not array`;n=t.type3.terms[e][t.type3.terms[e].length-1]}const s=Number(n);if(Number.isFinite(s)){return s}return undefined}function N(t,e,n){if(n){t.text(e&&e.term.values&&e.term.values[n]?e.term.values[n].label:n);return}t.style("opacity",.3);if("geneticModel"in e.q){const n=e.q.geneticModel;t.text(n==0?"(additive)":n==1?"(dominant)":"(recessive)");return}if(e.q.mode){t.text("("+e.q.mode+")");return}}var q=Object.freeze({__proto__:null,RegressionResults:u,showLDlegend:R});export{u as R,l as m,q as r,R as s};
@@ -1 +0,0 @@
1
- import{_ as e}from"./tslib.es6-1f85f553.js";import{R as t,S as n,T as i,i as r,M as s,F as o,P as a,d as l}from"./app-a8c4854a.js";import p from"path";const c={continuous:"continuous",discrete:"discrete"};const d={GENE_VARIANT:"geneVariant",GENE_EXPRESSION:"geneExpression",CATEGORICAL:"categorical",INTEGER:"integer",FLOAT:"float",SNP:"snp",SNP_LIST:"snplst",SNP_LOCUS:"snplocus",CONDITION:"condition",SURVIVAL:"survival",SAMPLELST:"samplelst",METABOLITE_INTENSITY:"metaboliteIntensity",SINGLECELL_GENE_EXPRESSION:"singleCellGeneExpression",SINGLECELL_CELLTYPE:"singleCellCellType"};const u={[d.GENE_EXPRESSION]:t,[d.METABOLITE_INTENSITY]:n};const h={[d.CATEGORICAL]:i.DICTIONARY_VARIABLES,[d.CONDITION]:i.DICTIONARY_VARIABLES,[d.FLOAT]:i.DICTIONARY_VARIABLES,[d.INTEGER]:i.DICTIONARY_VARIABLES,[d.SAMPLELST]:i.DICTIONARY_VARIABLES,[d.SURVIVAL]:i.DICTIONARY_VARIABLES,[d.GENE_VARIANT]:i.MUTATION_CNV_FUSION,[d.SNP]:i.SNP,[d.SNP_LIST]:i.SNP_LIST,[d.SNP_LOCUS]:i.SNP_LOCUS,[d.GENE_EXPRESSION]:i.GENE_EXPRESSION,[d.METABOLITE_INTENSITY]:i.METABOLITE_INTENSITY};const f=new Set([d.SNP,d.SNP_LIST,d.SNP_LOCUS,d.GENE_EXPRESSION,d.GENE_VARIANT,d.METABOLITE_INTENSITY,d.SINGLECELL_GENE_EXPRESSION,d.SINGLECELL_CELLTYPE]);const m=new Set([d.INTEGER,d.FLOAT,d.GENE_EXPRESSION,d.METABOLITE_INTENSITY,d.SINGLECELL_GENE_EXPRESSION]);const v=new Set([d.CATEGORICAL,d.SNP]);function g(e){if(!e)return false;return m.has(e.type)}function y(e){if(!e)return false;return v.has(e.type)}function b(e){return!E(e)}function E(e){if(!e)throw new Error("Type is not defined");return f.has(e)}function x(e,t){if(!e)throw new Error("First term is not defined ");if(!t)throw new Error("Second term is not defined ");if(e.type!==t.type)return false;if(b(e.type)&&b(t.type)&&e.type!=d.SAMPLELST)return e.id===t.id;switch(e.type){case d.GENE_EXPRESSION:return e.gene==t.gene;case d.METABOLITE_INTENSITY:return e.name==t.name;case d.GENE_VARIANT:return e.gene==t.gene||e.chr==t.chr&&e.start==t.start&&e.stop==t.stop;default:return false}}var T=function(e,t){var n=[];for(var i=0;i<e.length;i++){var r=t(e[i],i);if(I(r))n.push.apply(n,r);else n.push(r)}return n};var I=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};var S=w;function w(e,t,n){if(e instanceof RegExp)e=A(e,n);if(t instanceof RegExp)t=A(t,n);var i=_(e,t,n);return i&&{start:i[0],end:i[1],pre:n.slice(0,i[0]),body:n.slice(i[0]+e.length,i[1]),post:n.slice(i[1]+t.length)}}function A(e,t){var n=t.match(e);return n?n[0]:null}w.range=_;function _(e,t,n){var i,r,s,o,a;var l=n.indexOf(e);var p=n.indexOf(t,l+1);var c=l;if(l>=0&&p>0){if(e===t){return[l,p]}i=[];s=n.length;while(c>=0&&!a){if(c==l){i.push(c);l=n.indexOf(e,c+1)}else if(i.length==1){a=[i.pop(),p]}else{r=i.pop();if(r<s){s=r;o=p}p=n.indexOf(t,c+1)}c=l<p&&l>=0?l:p}if(i.length){a=[s,o]}}return a}var O=$;var N="\0SLASH"+Math.random()+"\0";var j="\0OPEN"+Math.random()+"\0";var C="\0CLOSE"+Math.random()+"\0";var k="\0COMMA"+Math.random()+"\0";var P="\0PERIOD"+Math.random()+"\0";function L(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function q(e){return e.split("\\\\").join(N).split("\\{").join(j).split("\\}").join(C).split("\\,").join(k).split("\\.").join(P)}function M(e){return e.split(N).join("\\").split(j).join("{").split(C).join("}").split(k).join(",").split(P).join(".")}function R(e){if(!e)return[""];var t=[];var n=S("{","}",e);if(!n)return e.split(",");var i=n.pre;var r=n.body;var s=n.post;var o=i.split(",");o[o.length-1]+="{"+r+"}";var a=R(s);if(s.length){o[o.length-1]+=a.shift();o.push.apply(o,a)}t.push.apply(t,o);return t}function $(e){if(!e)return[];if(e.substr(0,2)==="{}"){e="\\{\\}"+e.substr(2)}return Y(q(e),true).map(M)}function G(e){return"{"+e+"}"}function V(e){return/^-?0\d/.test(e)}function D(e,t){return e<=t}function B(e,t){return e>=t}function Y(e,t){var n=[];var i=S("{","}",e);if(!i||/\$$/.test(i.pre))return[e];var r=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body);var s=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body);var o=r||s;var a=i.body.indexOf(",")>=0;if(!o&&!a){if(i.post.match(/,.*\}/)){e=i.pre+"{"+i.body+C+i.post;return Y(e)}return[e]}var l;if(o){l=i.body.split(/\.\./)}else{l=R(i.body);if(l.length===1){l=Y(l[0],false).map(G);if(l.length===1){var p=i.post.length?Y(i.post,false):[""];return p.map((function(e){return i.pre+l[0]+e}))}}}var c=i.pre;var p=i.post.length?Y(i.post,false):[""];var d;if(o){var u=L(l[0]);var h=L(l[1]);var f=Math.max(l[0].length,l[1].length);var m=l.length==3?Math.abs(L(l[2])):1;var v=D;var g=h<u;if(g){m*=-1;v=B}var y=l.some(V);d=[];for(var b=u;v(b,h);b+=m){var E;if(s){E=String.fromCharCode(b);if(E==="\\")E=""}else{E=String(b);if(y){var x=f-E.length;if(x>0){var I=new Array(x+1).join("0");if(b<0)E="-"+I+E.slice(1);else E=I+E}}}d.push(E)}}else{d=T(l,(function(e){return Y(e,false)}))}for(var w=0;w<d.length;w++){for(var A=0;A<p.length;A++){var _=c+d[w]+p[A];if(!t||o||_)n.push(_)}}return n}var U=ie;ie.Minimatch=re;var X=function(){try{return p}catch(e){}}()||{sep:"/"};ie.sep=X.sep;var F=ie.GLOBSTAR=re.GLOBSTAR={};var J={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}};var Q="[^/]";var H=Q+"*?";var z="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";var W="(?:(?!(?:\\/|^)\\.).)*?";var Z=K("().*{}+?[]^$\\!");function K(e){return e.split("").reduce((function(e,t){e[t]=true;return e}),{})}var ee=/\/+/;ie.filter=te;function te(e,t){t=t||{};return function(n,i,r){return ie(n,e,t)}}function ne(e,t){t=t||{};var n={};Object.keys(e).forEach((function(t){n[t]=e[t]}));Object.keys(t).forEach((function(e){n[e]=t[e]}));return n}ie.defaults=function(e){if(!e||typeof e!=="object"||!Object.keys(e).length){return ie}var t=ie;var n=function n(i,r,s){return t(i,r,ne(e,s))};n.Minimatch=function n(i,r){return new t.Minimatch(i,ne(e,r))};n.Minimatch.defaults=function n(i){return t.defaults(ne(e,i)).Minimatch};n.filter=function n(i,r){return t.filter(i,ne(e,r))};n.defaults=function n(i){return t.defaults(ne(e,i))};n.makeRe=function n(i,r){return t.makeRe(i,ne(e,r))};n.braceExpand=function n(i,r){return t.braceExpand(i,ne(e,r))};n.match=function(n,i,r){return t.match(n,i,ne(e,r))};return n};re.defaults=function(e){return ie.defaults(e).Minimatch};function ie(e,t,n){pe(t);if(!n)n={};if(!n.nocomment&&t.charAt(0)==="#"){return false}return new re(t,n).match(e)}function re(e,t){if(!(this instanceof re)){return new re(e,t)}pe(e);if(!t)t={};e=e.trim();if(!t.allowWindowsEscape&&X.sep!=="/"){e=e.split(X.sep).join("/")}this.options=t;this.set=[];this.pattern=e;this.regexp=null;this.negate=false;this.comment=false;this.empty=false;this.partial=!!t.partial;this.make()}re.prototype.debug=function(){};re.prototype.make=se;function se(){var e=this.pattern;var t=this.options;if(!t.nocomment&&e.charAt(0)==="#"){this.comment=true;return}if(!e){this.empty=true;return}this.parseNegate();var n=this.globSet=this.braceExpand();if(t.debug)this.debug=function e(){console.error.apply(console,arguments)};this.debug(this.pattern,n);n=this.globParts=n.map((function(e){return e.split(ee)}));this.debug(this.pattern,n);n=n.map((function(e,t,n){return e.map(this.parse,this)}),this);this.debug(this.pattern,n);n=n.filter((function(e){return e.indexOf(false)===-1}));this.debug(this.pattern,n);this.set=n}re.prototype.parseNegate=oe;function oe(){var e=this.pattern;var t=false;var n=this.options;var i=0;if(n.nonegate)return;for(var r=0,s=e.length;r<s&&e.charAt(r)==="!";r++){t=!t;i++}if(i)this.pattern=e.substr(i);this.negate=t}ie.braceExpand=function(e,t){return ae(e,t)};re.prototype.braceExpand=ae;function ae(e,t){if(!t){if(this instanceof re){t=this.options}else{t={}}}e=typeof e==="undefined"?this.pattern:e;pe(e);if(t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)){return[e]}return O(e)}var le=1024*64;var pe=function(e){if(typeof e!=="string"){throw new TypeError("invalid pattern")}if(e.length>le){throw new TypeError("pattern is too long")}};re.prototype.parse=de;var ce={};function de(e,t){pe(e);var n=this.options;if(e==="**"){if(!n.noglobstar)return F;else e="*"}if(e==="")return"";var i="";var r=!!n.nocase;var s=false;var o=[];var a=[];var l;var p=false;var c=-1;var d=-1;var u=e.charAt(0)==="."?"":n.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)";var h=this;function f(){if(l){switch(l){case"*":i+=H;r=true;break;case"?":i+=Q;r=true;break;default:i+="\\"+l;break}h.debug("clearStateChar %j %j",l,i);l=false}}for(var m=0,v=e.length,g;m<v&&(g=e.charAt(m));m++){this.debug("%s\t%s %s %j",e,m,i,g);if(s&&Z[g]){i+="\\"+g;s=false;continue}switch(g){case"/":{return false}case"\\":f();s=true;continue;case"?":case"*":case"+":case"@":case"!":this.debug("%s\t%s %s %j <-- stateChar",e,m,i,g);if(p){this.debug(" in class");if(g==="!"&&m===d+1)g="^";i+=g;continue}h.debug("call clearStateChar %j",l);f();l=g;if(n.noext)f();continue;case"(":if(p){i+="(";continue}if(!l){i+="\\(";continue}o.push({type:l,start:m-1,reStart:i.length,open:J[l].open,close:J[l].close});i+=l==="!"?"(?:(?!(?:":"(?:";this.debug("plType %j %j",l,i);l=false;continue;case")":if(p||!o.length){i+="\\)";continue}f();r=true;var y=o.pop();i+=y.close;if(y.type==="!"){a.push(y)}y.reEnd=i.length;continue;case"|":if(p||!o.length||s){i+="\\|";s=false;continue}f();i+="|";continue;case"[":f();if(p){i+="\\"+g;continue}p=true;d=m;c=i.length;i+=g;continue;case"]":if(m===d+1||!p){i+="\\"+g;s=false;continue}var b=e.substring(d+1,m);try{RegExp("["+b+"]")}catch(e){var E=this.parse(b,ce);i=i.substr(0,c)+"\\["+E[0]+"\\]";r=r||E[1];p=false;continue}r=true;p=false;i+=g;continue;default:f();if(s){s=false}else if(Z[g]&&!(g==="^"&&p)){i+="\\"}i+=g}}if(p){b=e.substr(d+1);E=this.parse(b,ce);i=i.substr(0,c)+"\\["+E[0];r=r||E[1]}for(y=o.pop();y;y=o.pop()){var x=i.slice(y.reStart+y.open.length);this.debug("setting tail",i,y);x=x.replace(/((?:\\{2}){0,64})(\\?)\|/g,(function(e,t,n){if(!n){n="\\"}return t+t+n+"|"}));this.debug("tail=%j\n %s",x,x,y,i);var T=y.type==="*"?H:y.type==="?"?Q:"\\"+y.type;r=true;i=i.slice(0,y.reStart)+T+"\\("+x}f();if(s){i+="\\\\"}var I=false;switch(i.charAt(0)){case"[":case".":case"(":I=true}for(var S=a.length-1;S>-1;S--){var w=a[S];var A=i.slice(0,w.reStart);var _=i.slice(w.reStart,w.reEnd-8);var O=i.slice(w.reEnd-8,w.reEnd);var N=i.slice(w.reEnd);O+=N;var j=A.split("(").length-1;var C=N;for(m=0;m<j;m++){C=C.replace(/\)[+*?]?/,"")}N=C;var k="";if(N===""&&t!==ce){k="$"}var P=A+_+N+k+O;i=P}if(i!==""&&r){i="(?=.)"+i}if(I){i=u+i}if(t===ce){return[i,r]}if(!r){return he(e)}var L=n.nocase?"i":"";try{var q=new RegExp("^"+i+"$",L)}catch(e){return new RegExp("$.")}q._glob=e;q._src=i;return q}ie.makeRe=function(e,t){return new re(e,t||{}).makeRe()};re.prototype.makeRe=ue;function ue(){if(this.regexp||this.regexp===false)return this.regexp;var e=this.set;if(!e.length){this.regexp=false;return this.regexp}var t=this.options;var n=t.noglobstar?H:t.dot?z:W;var i=t.nocase?"i":"";var r=e.map((function(e){return e.map((function(e){return e===F?n:typeof e==="string"?fe(e):e._src})).join("\\/")})).join("|");r="^(?:"+r+")$";if(this.negate)r="^(?!"+r+").*$";try{this.regexp=new RegExp(r,i)}catch(e){this.regexp=false}return this.regexp}ie.match=function(e,t,n){n=n||{};var i=new re(t,n);e=e.filter((function(e){return i.match(e)}));if(i.options.nonull&&!e.length){e.push(t)}return e};re.prototype.match=function e(t,n){if(typeof n==="undefined")n=this.partial;this.debug("match",t,this.pattern);if(this.comment)return false;if(this.empty)return t==="";if(t==="/"&&n)return true;var i=this.options;if(X.sep!=="/"){t=t.split(X.sep).join("/")}t=t.split(ee);this.debug(this.pattern,"split",t);var r=this.set;this.debug(this.pattern,"set",r);var s;var o;for(o=t.length-1;o>=0;o--){s=t[o];if(s)break}for(o=0;o<r.length;o++){var a=r[o];var l=t;if(i.matchBase&&a.length===1){l=[s]}var p=this.matchOne(l,a,n);if(p){if(i.flipNegate)return true;return!this.negate}}if(i.flipNegate)return false;return this.negate};re.prototype.matchOne=function(e,t,n){var i=this.options;this.debug("matchOne",{this:this,file:e,pattern:t});this.debug("matchOne",e.length,t.length);for(var r=0,s=0,o=e.length,a=t.length;r<o&&s<a;r++,s++){this.debug("matchOne loop");var l=t[s];var p=e[r];this.debug(t,l,p);if(l===false)return false;if(l===F){this.debug("GLOBSTAR",[t,l,p]);var c=r;var d=s+1;if(d===a){this.debug("** at the end");for(;r<o;r++){if(e[r]==="."||e[r]===".."||!i.dot&&e[r].charAt(0)===".")return false}return true}while(c<o){var u=e[c];this.debug("\nglobstar while",e,c,t,d,u);if(this.matchOne(e.slice(c),t.slice(d),n)){this.debug("globstar found match!",c,o,u);return true}else{if(u==="."||u===".."||!i.dot&&u.charAt(0)==="."){this.debug("dot detected!",e,c,t,d);break}this.debug("globstar swallow a segment, and continue");c++}}if(n){this.debug("\n>>> no match, partial?",e,c,t,d);if(c===o)return true}return false}var h;if(typeof l==="string"){h=p===l;this.debug("string match",l,p,h)}else{h=p.match(l);this.debug("pattern match",l,p,h)}if(!h)return false}if(r===o&&s===a){return true}else if(r===o){return n}else if(s===a){return r===o-1&&e[r]===""}throw new Error("wtf?")};function he(e){return e.replace(/\\(.)/g,"$1")}function fe(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}function me(e){switch(e){case"./handlers/categorical.ts":return import("./categorical-26528ce8.js");case"./handlers/condition.ts":return import("./condition-b0d74550.js");case"./handlers/density.ts":return import("./density-19266ebf.js");case"./handlers/geneExpression.ts":return import("./geneExpression-387205bf.js");case"./handlers/geneVariant.ts":return import("./geneVariant-b58e924a.js");case"./handlers/groupsetting.ts":return import("./groupsetting-20ffef77.js");case"./handlers/metaboliteIntensity.ts":return import("./metaboliteIntensity-ddb6e480.js");case"./handlers/numeric.binary.ts":return import("./numeric.binary-80467e8b.js");case"./handlers/numeric.continuous.ts":return import("./numeric.continuous-69a62a15.js");case"./handlers/numeric.discrete.ts":return import("./numeric.discrete-86181905.js");case"./handlers/numeric.spline.ts":return import("./numeric.spline-1b07fd13.js");case"./handlers/numeric.toggle.ts":return import("./numeric.toggle-37c4bee8.js");case"./handlers/numeric.ts":return import("./numeric-918d4686.js");case"./handlers/samplelst.ts":return import("./samplelst-9f8343ff.js");case"./handlers/singleCellCellType.ts":return import("./singleCellCellType-84a0c2cf.js");case"./handlers/singleCellGeneExpression.ts":return import("./singleCellGeneExpression-6de17162.js");case"./handlers/snp.ts":return import("./snp-79ec95ba.js");case"./handlers/snplocus.ts":return import("./snplocus-cb629be1.js");case"./handlers/snplst.sampleSum.ts":return import("./snplst.sampleSum-e47d05f0.js");case"./handlers/snplst.ts":return import("./snplst-007a1926.js");case"./handlers/survival.ts":return import("./survival-61ab375a.js");default:return new Promise((function(t,n){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(n.bind(null,new Error("Unknown variable dynamic import: "+e)))}))}}function ve(e){switch(e){case"./handlers/categorical.ts":return import("./categorical-26528ce8.js");case"./handlers/condition.ts":return import("./condition-b0d74550.js");case"./handlers/density.ts":return import("./density-19266ebf.js");case"./handlers/geneExpression.ts":return import("./geneExpression-387205bf.js");case"./handlers/geneVariant.ts":return import("./geneVariant-b58e924a.js");case"./handlers/groupsetting.ts":return import("./groupsetting-20ffef77.js");case"./handlers/metaboliteIntensity.ts":return import("./metaboliteIntensity-ddb6e480.js");case"./handlers/numeric.binary.ts":return import("./numeric.binary-80467e8b.js");case"./handlers/numeric.continuous.ts":return import("./numeric.continuous-69a62a15.js");case"./handlers/numeric.discrete.ts":return import("./numeric.discrete-86181905.js");case"./handlers/numeric.spline.ts":return import("./numeric.spline-1b07fd13.js");case"./handlers/numeric.toggle.ts":return import("./numeric.toggle-37c4bee8.js");case"./handlers/numeric.ts":return import("./numeric-918d4686.js");case"./handlers/samplelst.ts":return import("./samplelst-9f8343ff.js");case"./handlers/singleCellCellType.ts":return import("./singleCellCellType-84a0c2cf.js");case"./handlers/singleCellGeneExpression.ts":return import("./singleCellGeneExpression-6de17162.js");case"./handlers/snp.ts":return import("./snp-79ec95ba.js");case"./handlers/snplocus.ts":return import("./snplocus-cb629be1.js");case"./handlers/snplst.sampleSum.ts":return import("./snplst.sampleSum-e47d05f0.js");case"./handlers/snplst.ts":return import("./snplst-007a1926.js");case"./handlers/survival.ts":return import("./survival-61ab375a.js");default:return new Promise((function(t,n){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(n.bind(null,new Error("Unknown variable dynamic import: "+e)))}))}}const ge=`_ts_${(+new Date).toString().slice(-8)}`;let ye=0;function be(t){return e(this,void 0,void 0,(function*(){if(!t)return`${ye++}${ge}`;delete t.$id;return yield xe(JSON.stringify(t))}))}const Ee=new TextEncoder;function xe(t){return e(this,void 0,void 0,(function*(){const e=Ee.encode(t);const n=yield crypto.subtle.digest("SHA-1",e);const i=Array.from(new Uint8Array(n));const r=i.map((e=>e.toString(16).padStart(2,"0"))).join("");return Te(r).replace("=","-")}))}function Te(e){return btoa([...e].reduce(((t,n,i)=>t+=!(i-1&1)?String.fromCharCode(parseInt(e.substring(i-1,i+1),16)):""),""))}const Ie={menuOptions:"edit",menuLayout:"vertical"};class Se{constructor(e){this.opts=this.validateOpts(e);this.vocabApi=e.vocabApi;this.activeCohort=e.activeCohort;this.placeholder=e.placeholder;this.durations={exit:0};this.disable_terms=e.disable_terms;this.usecase=e.usecase;this.abbrCutoff=e.abbrCutoff;this.numqByTermIdModeType={};this.dom={holder:e.holder,tip:e.tip||new s({padding:"0px",parent_menu:this.opts.holder&&this.opts.holder.node()&&this.opts.holder.node().closest(".sja_menu_div")})};this.dom.tip2=new s({padding:"0px",parent_menu:this.dom.tip.d.node()});_e(this);Ae(this);this.initUI();const t=Ne(this);this.handlerByType={default:t};this.handler=t;this.hasError=false;this.api={main:this.main.bind(this),runCallback:this.runCallback.bind(this),showTree:this.showTree,showMenu:this.showMenu.bind(this),showGeneSearch:this.showGeneSearch,hasError:()=>this.hasError,validateQ:e=>{if(!this.handler||!this.handler.validateQ)return;try{this.handler.validateQ(e)}catch(e){this.hasError=true;throw e}}}}runCallback(e=null){var t,n;const i=this.term?{term:this.term,q:this.q,isAtomic:true}:{};if("$id"in this)i.$id=this.$id;if(((t=i.q)===null||t===void 0?void 0:t.reuseId)&&i.q.reuseId===((n=this.data.q)===null||n===void 0?void 0:n.reuseId)){if(!o(i.q,this.data.q)){delete i.q.reuseId;delete i.q.name}}const r=e?JSON.parse(JSON.stringify(e)):{};if(this.opts.callback)this.opts.callback(e?a(JSON.stringify(i),r):i)}validateOpts(e){const t=Object.assign({},Ie,e);if(!t.holder&&t.renderAs!="none")throw".holder missing";if(typeof t.callback!="function")throw".callback() is not a function";if(!t.vocabApi)throw".vocabApi missing";if(typeof t.vocabApi!="object");if("placeholder"in t&&!t.placeholder&&"placeholderIcon"in t&&!t.placeholderIcon)throw"must specify a non-empty opts.placeholder and/or .placeholderIcon";if(!("placeholder"in t))t.placeholder="Select term&nbsp;";if(!("placeholderIcon"in t))t.placeholderIcon="+";if(!Number.isInteger(t.abbrCutoff))t.abbrCutoff=18;this.validateMenuOptions(t);if(!t.numericEditMenuVersion)t.numericEditMenuVersion=["discrete"];this.mayValidate_noTermPromptOptions(t);return t}main(t={}){return e(this,void 0,void 0,(function*(){try{if(this.doNotHideTipInMain){delete this.doNotHideTipInMain}else{this.dom.tip.hide()}this.hasError=false;delete this.error;this.validateMainData(t);this.data=t;this.term=t.term;this.q=JSON.parse(JSON.stringify(t.q));if("$id"in t)this.$id=t.$id;if("disable_terms"in t)this.disable_terms=t.disable_terms;if("filter"in t)this.filter=t.filter;if("activeCohort"in t)this.activeCohort=t.activeCohort;if("sampleCounts"in t)this.sampleCounts=t.sampleCounts;if("menuOptions"in t)this.opts.menuOptions=t.menuOptions;yield this.setHandler(this.term?this.term.type:null);if(t.term&&this.handler&&this.handler.validateQ)this.handler.validateQ(t);if(this.handler.postMain)yield this.handler.postMain();if(this.opts.renderAs!="none")this.updateUI()}catch(e){this.hasError=true;throw e}}))}validateMainData(e){if(e.term){if(!e.term.type)throw"data.term.type missing";if(b(e.term.type)){if(!e.term.id&&e.term.type!=d.SAMPLELST)throw"data.term.id missing";if(!e.term.name)throw"data.term.name missing"}}if(!e.q)e.q={};if(typeof e.q!="object")throw"data.q{} is not object";if(e.disable_terms){if(!Array.isArray(e.disable_terms))throw"data.disable_terms[] is not array"}this.mayValidate_noTermPromptOptions(e)}validateMenuOptions(e){if(!e.menuOptions)e.menuOptions=Ie.menuOptions;if(e.menuOptions=="all")e.menuOptions="*";for(const t of["edit","replace","remove"]){if(U(t,e.menuOptions))return}throw`no matches found for termsetting opts.menuOptions='${e.menuOptions}'`}mayValidate_noTermPromptOptions(e){if(!e.noTermPromptOptions)return;if(!Array.isArray(e.noTermPromptOptions))throw"noTermPromptOptions[] is not array";for(const t of e.noTermPromptOptions){if(t.isDictionary);else{if(!t.termtype)throw"element of noTermPromptOptions[] missing both isDictionary=true and .termtype"}if(!t.text&&!t.html)throw"element of noTermPromptOptions[] missing both .text and .html";if(t.q&&typeof t.q!="object")throw"type.q{} is not object"}this.noTermPromptOptions=e.noTermPromptOptions}setHandler(t){return e(this,void 0,void 0,(function*(){if(!t){this.handler=this.handlerByType.default;return}const e=t=="integer"||t=="float"?"numeric":t;if(!this.handlerByType[e]){try{const t=yield ve(`./handlers/${e}.ts`);this.handlerByType[e]=yield t.getHandler(this)}catch(t){throw`error with handler='./handlers/${e}.ts': ${t}`}}this.handler=this.handlerByType[e]}))}}const we=r(Se);function Ae(t){t.initUI=()=>{if(t.opts.$id){t.dom.tip.d.attr("id",t.opts.$id+"-ts-tip")}if(!t.dom.holder)return;t.dom.nopilldiv=t.dom.holder.append("div").style("cursor","pointer").on("click",t.clickNoPillDiv).on(`keyup.sjpp-termdb`,(e=>{if(e.key=="Enter")t.showTree(e)}));t.dom.pilldiv=t.dom.holder.append("div");if(t.opts.placeholder){t.dom.nopilldiv.append("div").html(t.placeholder).attr("class","sja_clbtext2").style("padding","3px 6px 3px 6px").style("display","inline-block")}if(t.opts.placeholderIcon){t.dom.nopilldiv.append("div").attr("class","sja_filter_tag_btn add_term_btn").style("padding","3px 6px 3px 6px").style("display","inline-block").style("border-radius","6px").style("background-color","#4888BF").text(t.opts.placeholderIcon)}t.dom.btnDiv=t.dom.holder.append("div");t.dom.content_holder=l(t.dom.holder.node().parentNode).append("div")};t.updateUI=()=>e(this,void 0,void 0,(function*(){t.dom.btnDiv.selectAll("*").remove();t.dom.content_holder.selectAll("*").remove();if(!t.term){t.dom.nopilldiv.style("display","block");t.dom.pilldiv.style("display","none");t.dom.btnDiv.style("display","none");return}if(t.term.hashtmldetail){if(t.opts.buttons&&!t.opts.buttons.includes("info"))t.opts.buttons.unshift("info");else t.opts.buttons=["info"]}else{t.opts.buttons=[]}if(t.opts.buttons.length){t.dom.btnDiv.selectAll("div").data(t.opts.buttons).enter().append("div").style("display","inline-block").style("padding","0px 5px").style("cursor","pointer").style("color","#999").style("font-size",".8em").html((e=>e.toUpperCase())).on("click",((e,n)=>{if(n=="delete")t.removeTerm();else if(n=="replace"){t.showTree(e.target)}else throw"unknown button"}));if(t.term.hashtmldetail){const e=t.dom.btnDiv.selectAll("div").filter((function(){return l(this).text()==="INFO"}));const n=yield import("./termInfo-f851b415.js");n.termInfoInit({vocabApi:t.opts.vocabApi,icon_holder:e,content_holder:t.dom.content_holder,id:t.term.id,state:{term:t.term}})}}t.dom.nopilldiv.style("display","none");t.dom.pilldiv.style("display",t.opts.buttons?"inline-block":"block");t.dom.btnDiv.style("display",t.opts.buttons?"inline-block":"none");const e=t.dom.pilldiv.selectAll(".ts_pill").data([t.term],(e=>e.id));e.exit().each(t.exitPill);e.transition().duration(200).each(t.updatePill);e.enter().append("div").attr("class","ts_pill").style("display","grid").style("grid-template-columns","auto").style("grid-template-areas",'"left right"').style("cursor","pointer").style("margin","2px").on("click",t.showMenu).transition().duration(200).each(t.enterPill)}));t.enterPill=function(){return e(this,void 0,void 0,(function*(){const e=l(this);t.dom.pill_termname=e.append("div").attr("class","term_name_btn sja_filter_tag_btn").attr("tabindex",0).style("display","flex").style("grid-area","left").style("position","relative").style("align-items","center").style("padding","3px 6px 3px 6px").style("border-radius","6px").html(t.handler.getPillName).on(`keyup.sjpp-termdb`,(e=>{if(e.key=="Enter")e.target.click()}));t.updatePill.call(this)}))};t.updatePill=function(){return e(this,void 0,void 0,(function*(){const e=l(this);const n=t.handler.getPillStatus()||{};t.dom.pill_termname.style("border-radius",n.text?"6px 0 0 6px":"6px").html(t.handler.getPillName);const i=e.selectAll(".ts_summary_btn").data(n.text?[{txt:n.text}]:[],(e=>e.txt));i.exit().remove();const r=i.enter().append("div").attr("class","ts_summary_btn sja_filter_tag_btn").style("display","flex").style("grid-area","right").style("position","relative").style("align-items","center").style("padding","3px 6px 3px 6px").style("border-radius","0 6px 6px 0").style("font-style","italic").html((e=>e.txt)).style("opacity",0).transition().duration(200).style("opacity",1);if(n.bgcolor){r.transition().duration(200).style("background-color",n.bgcolor)}}))};t.exitPill=function(){l(this).style("opacity",1).transition().duration(t.durations.exit).style("opacity",0).remove()}}function _e(t){t.removeTerm=()=>{t.opts.callback(null)};t.cancelGroupsetting=()=>{t.opts.callback({id:t.term.id,term:t.term,q:{mode:"discrete",type:"values",isAtomic:true}})};t.clickNoPillDiv=()=>e(this,void 0,void 0,(function*(){if(!t.noTermPromptOptions||t.noTermPromptOptions.length==0){yield t.showTree(t.dom.nopilldiv.node());return}t.dom.tip.clear().showunder(t.dom.nopilldiv.node());for(const n of t.noTermPromptOptions){const i=t.dom.tip.d.append("div").attr("class","sja_menuoption sja_sharp_border").on("click",(()=>e(this,void 0,void 0,(function*(){t.dom.tip.clear();if(n.isDictionary){yield t.showTree(t.dom.tip.d.node())}else if(n.termtype){if(n.q)t.q=structuredClone(n.q);yield t.setHandler(n.termtype);if(g(t.term)&&!t.term.bins&&t.term.type!="survival"){yield t.vocabApi.setTermBins({term:t.term,q:t.q})}t.handler.showEditMenu(t.dom.tip.d)}else{throw"termtype missing"}}))));if(n.text)i.text(n.text);else if(n.html)i.html(n.html)}}));t.showTree=function(n,i){return e(this,void 0,void 0,(function*(){t.dom.tip.clear();if(n)t.dom.tip.showunder(n instanceof Element?n:this instanceof Element?this:t.dom.holder.node());else t.dom.tip.show(i.clientX,i.clientY);if(!t.usecase)t.usecase={target:"default"};const r=yield import("./app-ade9c62a.js");r.appInit({holder:t.dom.tip.d,vocabApi:t.vocabApi,state:{activeCohort:t.activeCohort,tree:{usecase:t.usecase}},tree:{disable_terms:t.disable_terms,click_term:n=>e(this,void 0,void 0,(function*(){t.dom.tip.hide();let e;if(n.term)e=n;else{const t=n;e={term:t,q:{isAtomic:true},isAtomic:true}}if(t.opts.customFillTw)t.opts.customFillTw(e);yield qe(e,t.vocabApi,t.opts.defaultQ4fillTW);t.opts.callback(e)}))}})}))};t.showMenu=(n,i=null,r=null)=>{var s,o,a;const p=t.dom.tip;p.clear();if(t.opts.renderAs=="none"&&i)t.dom.holder=l(i);if(t.dom.holder){const e=(s=t.dom.holder)===null||s===void 0?void 0:s.node();if(e)p.showunder(e);else p.show(n.clientX,n.clientY)}const c=[];if(t.q.type=="predefined-groupset"||t.q.type=="custom-groupset"){if(t.q.mode!="binary"&&t.term.type!="geneVariant"){c.push({label:"Cancel grouping",callback:t.cancelGroupsetting})}}if(t.q&&!((o=t.term.groupsetting)===null||o===void 0?void 0:o.disabled)&&U("edit",t.opts.menuOptions)){c.push({label:"Edit",callback:n=>e(this,void 0,void 0,(function*(){if(t.term&&g(t.term)&&!t.term.bins&&t.term.type!="survival"){yield t.vocabApi.setTermBins({term:t.term,q:t.q})}t.handler.showEditMenu(n)}))})}if(U("replace",t.opts.menuOptions)){c.push({label:"Replace",callback:t.showTree})}if(U("remove",t.opts.menuOptions)){c.push({label:"Remove",callback:t.removeTerm})}if(t.opts.customMenuOptions)c.push(...t.opts.customMenuOptions);t.openMenu=r||p.d;t.openMenu.selectAll("div").data(c).enter().append("div").attr("class","sja_menuoption sja_sharp_border").attr("tabindex",((e,t)=>t+1)).style("display",t.opts.menuLayout=="horizontal"?"inline-block":"block").text((e=>e.label)).on("click",((e,n)=>{t.dom.tip.clear();n.callback(t.dom.tip.d)})).on("keyup",(e=>{if(e.key=="Enter")e.target.click()}));(a=t.openMenu.select(".sja_menuoption").node())===null||a===void 0?void 0:a.focus()};t.showReuseMenu=function(n){return e(this,void 0,void 0,(function*(){const i=n.append("div");i.style("display","block").style("padding","10px").append("span").style("color","#aaa").html("Save current setting as ");const r=t.vocabApi.getCustomTermQLst(t.term);const s=i.append("input").attr("type","text").attr("placeholder",r.nextReuseId).attr("value",t.q.reuseId||r.nextReuseId);i.append("button").style("margin-left","5px").html("Save").on("click",(()=>{const e=s.property("value").trim()||r.nextReuseId;t.q.reuseId=e;t.vocabApi.cacheTermQ(t.term,t.q);t.runCallback();t.dom.tip.hide()}));const o=n.append("div").style("margin","10px");const a={term:t.term,q:{}};yield Pe(a,t.vocabApi);a.q.reuseId="Default";r.push(a.q);if(r.length>1){o.append("div").style("color","#aaa").html("Previously saved settings")}o.append("table").selectAll("tr").data(r).enter().append("tr").style("margin","2px 5px").each((function(n){const i=l(this);const r=Oe(t.q,n);const s=n.name||n.reuseId;i.append("td").style("min-width","180px").style("text-align","center").html(s);const o=i.append("td").style("text-align","center");if(r){o.html(`In use <span style='color:#5a5;font-weight:600'>&check;</span>`)}else{o.append("button").style("min-width","80px").html("Use").on("click",(()=>{if(n.reuseId==="Default"){delete n.reuseId;delete n.name}t.q=n;t.dom.tip.hide();t.runCallback()}))}const a=i.append("td").style("text-align","center");if(!r&&n.reuseId!="Default"){a.append("button").style("min-width","80px").html("Delete").on("click",(()=>e(this,void 0,void 0,(function*(){yield t.vocabApi.uncacheTermQ(t.term,n);t.dom.tip.hide();t.runCallback()}))))}}));n.append("div").style("margin","20px 5px 5px 5px").style("padding","5px").style("font-size","0.8em").style("color","#aaa").html(`Saving the setting will allow it to be reused at another chart.<br/>`+`The setting will be reusable in your current or saved session.`)}))};t.showGeneSearch=function(n,i){t.dom.tip.clear();if(n)t.dom.tip.showunder(n instanceof Element?n:this instanceof Element?this:t.dom.holder.node());else t.dom.tip.show(i.clientX,i.clientY);const r=new Set;const s=t.dom.tip.d.append("div").style("padding","5px");const o=s.append("label");o.append("span").text("Search: ");const a=o.append("input").attr("type","text").on("input",(()=>e(this,void 0,void 0,(function*(){const e=a.property("value");try{const n=!e?{lst:[]}:yield t.vocabApi.findTerm(e,t.activeCohort,t.usecase,"gene");l.selectAll("*").remove();l.selectAll("div").data(n.lst.filter((e=>!r.has(e)))).enter().append("div").attr("class","ts_pill sja_filter_tag_btn sja_tree_click_term").style("display","block").style("margin","2px 3px").style("width","fit-content").text((e=>e.name)).on("click",(e=>{t.dom.tip.hide();t.runCallback({term:{name:e.name,type:"geneVariant"},q:{exclude:[]}})}))}catch(e){alert("Search error: "+e)}}))));const l=t.dom.tip.d.append("div").style("margin","5px").style("padding-left","5px").style("border-left","2px solid #ccc")}}function Oe(e,t){const n=[e,t].map((e=>JSON.parse(JSON.stringify(e))));for(const e of n){delete e.binLabelFormatter;if(e.reuseId==="Default")delete e.reuseId;if(e.mode==="continuous")delete e.mode;if(e.mode==="discrete"&&e.type=="custom-bin"&&e.lst){for(const t of e.lst){delete t.range}}}return o(...n)}function Ne(e){return{showEditMenu(){},getPillStatus(){},getPillName(t){return je(e,t)}}}function je(e,t){if(!e.opts.abbrCutoff)return t.name;return t.name.length<=e.opts.abbrCutoff+2?t.name:'<label title="'+t.name+'">'+t.name.substring(0,e.opts.abbrCutoff)+"..."+"</label>"}function Ce(t,n,i){return e(this,void 0,void 0,(function*(){yield ke(t,n);const e=[];for(const r of t){e.push(Pe(r,n,i))}yield Promise.all(e)}))}function ke(t,n){return e(this,void 0,void 0,(function*(){const e=[];for(const n of t){if(n.term)continue;if(n.id===undefined||n.id==="")throw".id is required";e.push(n.id)}const i=e.length?yield n.getTerms(e):{};for(const n of e){if(!i[n])throw`missing dictionary term for id=${n}`;for(const e of t){if(e.id&&e.id in i)e.term=i[e.id]}}}))}function Pe(t,n,i){return e(this,void 0,void 0,(function*(){t.isAtomic=true;if(!t.term&&t.id){yield ke([t],n)}delete t.id;if(!t.q)t.q={};t.q.isAtomic=true;Le(t);yield qe(t,n,i);Me(t);if(!t.$id)t.$id=yield be(n.getTwMinCopy(t));return t}))}function Le(e){if(Object.keys(e.q).includes("groupsetting")){if(e.q["groupsetting"]["inuse"]){if(e.q.type=="predefined-groupset"){e.q["predefined_groupset_idx"]=e.q["groupsetting"]["predefined_groupset_idx"]}else if(e.q.type=="custom-groupset"){e.q["customset"]=e.q["groupsetting"]["customset"]}else{throw"invalid q.type"}}else{e.q.type="values"}delete e.q["groupsetting"]}}function qe(t,n,i){return e(this,void 0,void 0,(function*(){if(!t.$id)t.$id=yield be(n.getTwMinCopy(t));const e=t.term.type;const r=e=="float"||e=="integer"?"numeric":e;let s;if(t.term.type){try{s=yield me(`./handlers/${r}.ts`)}catch(e){throw`Type ${r} does not exist`}}else throw`Type not defined for ${JSON.stringify(t)}`;yield s.fillTW(t,n,i?i[r]:null)}))}function Me(e){if(!("mode"in e.q)){return}if(typeof e.q.mode!="string")throw"q.mode not string"}function Re(e,t){if(!e.hiddenValues){e.hiddenValues={};if(t.values){for(const n in t.values){if(t.values[n].uncomputable)e.hiddenValues[n]=1}}}}function $e(e,t){const n=Number(e);if(Number.isInteger(n))return n;if(Math.abs(n)<1)return Number(n.toPrecision(t));return Number(n.toFixed(t))}function Ge(e){let t=Math.abs(e)>1?2:Ve(e)+2;return $e(e,t)}function Ve(e){const t=e.toString();const n=t.indexOf(".");if(n===-1||n===t.length-1){return 0}let i=0;for(let e=n+1;e<t.length;e++){if(t[e]==="0"){i++}else if(t[e]>="1"&&t[e]<="9"){break}}return i}export{c as N,d as T,y as a,b,Ge as c,E as d,x as e,Pe as f,be as g,we as h,g as i,Ve as j,u as k,Ce as l,je as m,m as n,$e as r,Re as s,h as t};