@sjcrh/proteinpaint-client 2.77.0 → 2.78.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 (237) hide show
  1. package/dist/{2dmaf-acb8cfdd.js → 2dmaf-7dddba15.js} +1 -1
  2. package/dist/{AppHeader-315dbd3a.js → AppHeader-67cea623.js} +1 -1
  3. package/dist/{ColorScale-4b4ea8a2.js → ColorScale-7a36cc17.js} +1 -1
  4. package/dist/{DEanalysis-28ddd620.js → DEanalysis-417e1f88.js} +1 -1
  5. package/dist/{Disco-3c427131.js → Disco-30abd4cb.js} +1 -1
  6. package/dist/{Disco.UI-b071cf7a.js → Disco.UI-ea58ee03.js} +1 -1
  7. package/dist/{DragControls-7961799c.js → DragControls-a5072cfd.js} +1 -1
  8. package/dist/{DziViewer-aa5b5706.js → DziViewer-af3c5a76.js} +1 -1
  9. package/dist/FilterRxComp-cb149666.js +1 -0
  10. package/dist/FilterStateless-bdd1416d.js +1 -0
  11. package/dist/{HicApp-674a148d.js → HicApp-fe8682af.js} +1 -1
  12. package/dist/{OrbitControls-58ca2292.js → OrbitControls-0d20d46b.js} +1 -1
  13. package/dist/{WSIViewer-afe97e2e.js → WSIViewer-64e55fb8.js} +1 -1
  14. package/dist/{adSandbox-791d704e.js → adSandbox-5753745b.js} +1 -1
  15. package/dist/app-488d9fd6.js +1 -0
  16. package/dist/{app-bd9f016b.js → app-5aa892cb.js} +1 -1
  17. package/dist/app-d9433820.js +1 -0
  18. package/dist/app.js +1 -1
  19. package/dist/bam-4e0df8b6.js +1 -0
  20. package/dist/{barchart-e3dcfc5f.js → barchart-687ae584.js} +1 -1
  21. package/dist/{barchart.events-cecb7bf5.js → barchart.events-9e2c1acf.js} +1 -1
  22. package/dist/{bars.renderer-58e38632.js → bars.renderer-95f7250f.js} +1 -1
  23. package/dist/{block-944afb9f.js → block-2f22e7fd.js} +1 -1
  24. package/dist/block.lazyload-143ae987.js +1 -0
  25. package/dist/{block.legend-3dbc41a8.js → block.legend-aa831169.js} +1 -1
  26. package/dist/{block.mds-b3967ce5.js → block.mds-64d95cf9.js} +1 -1
  27. package/dist/{block.mds.cnv-6de3115e.js → block.mds.cnv-2520897d.js} +1 -1
  28. package/dist/{block.mds.expressionrank-553613e8.js → block.mds.expressionrank-582ed7bc.js} +1 -1
  29. package/dist/{block.mds.expressionstat-2c396bb9.js → block.mds.expressionstat-483c9bc9.js} +1 -1
  30. package/dist/{block.mds.geneboxplot-552fe571.js → block.mds.geneboxplot-c1276cba.js} +1 -1
  31. package/dist/{block.mds.junction-1e25c13d.js → block.mds.junction-4a132819.js} +1 -1
  32. package/dist/{block.mds.svcnv-462d762d.js → block.mds.svcnv-a532eca7.js} +1 -1
  33. package/dist/{block.mds.svcnv.share-766e4b22.js → block.mds.svcnv.share-6575b7cf.js} +1 -1
  34. package/dist/{block.mds2-6e04432d.js → block.mds2-9ce41a23.js} +1 -1
  35. package/dist/{block.svg-40b47da8.js → block.svg-adb13c76.js} +1 -1
  36. package/dist/{block.tk.aicheck-cc42cbaf.js → block.tk.aicheck-ef6b634b.js} +1 -1
  37. package/dist/{block.tk.ase-da848c5f.js → block.tk.ase-1b119031.js} +1 -1
  38. package/dist/{block.tk.bam-8053c97e.js → block.tk.bam-2aa824aa.js} +1 -1
  39. package/dist/{block.tk.bedgraphdot-79cb0faf.js → block.tk.bedgraphdot-983fe4b3.js} +1 -1
  40. package/dist/{block.tk.bigwig.ui-a8decec7.js → block.tk.bigwig.ui-fb6401ee.js} +1 -1
  41. package/dist/{block.tk.hicstraw-3d1e9d41.js → block.tk.hicstraw-c6732591.js} +1 -1
  42. package/dist/{block.tk.junction-81eae755.js → block.tk.junction-429b654c.js} +1 -1
  43. package/dist/{block.tk.junction.textmatrixui-4c45b69a.js → block.tk.junction.textmatrixui-15bd752c.js} +1 -1
  44. package/dist/{block.tk.ld-997fca31.js → block.tk.ld-fba14536.js} +1 -1
  45. package/dist/{block.tk.menu-d3e7ccbb.js → block.tk.menu-1299ae5e.js} +1 -1
  46. package/dist/{block.tk.pgv-ae1d1f59.js → block.tk.pgv-c946527f.js} +1 -1
  47. package/dist/{boxplot-fed0a86b.js → boxplot-dbf30a19.js} +1 -1
  48. package/dist/{brainImaging-b455fd0c.js → brainImaging-b2865ba3.js} +1 -1
  49. package/dist/{brush-06989a5e.js → brush-1a123226.js} +1 -1
  50. package/dist/{categorical-82722704.js → categorical-f67752ed.js} +1 -1
  51. package/dist/{condition-f68cc8d1.js → condition-dcc70001.js} +1 -1
  52. package/dist/{controls-1d99916a.js → controls-f4648f7f.js} +1 -1
  53. package/dist/controls.btns-26bb6ef1.js +1 -0
  54. package/dist/{controls.config-00ce9f0b.js → controls.config-9870bdea.js} +1 -1
  55. package/dist/{cuminc-879690b0.js → cuminc-2273cdd3.js} +1 -1
  56. package/dist/{customdata.inputui-c563c695.js → customdata.inputui-fb1b24dc.js} +1 -1
  57. package/dist/{dataDownload-087ac205.js → dataDownload-b94871d0.js} +1 -1
  58. package/dist/{databrowser.ui-9f98f6b3.js → databrowser.ui-8ace51c3.js} +1 -1
  59. package/dist/{density-e0aff1d0.js → density-e023c28f.js} +1 -1
  60. package/dist/{dictionary-fe0ea1d6.js → dictionary-321e19f9.js} +1 -1
  61. package/dist/{drag-e11d6644.js → drag-1b98e43e.js} +1 -1
  62. package/dist/{e2pca-b3250d5c.js → e2pca-00e78fdc.js} +1 -1
  63. package/dist/{ep-9ca01df0.js → ep-b0d6177c.js} +1 -1
  64. package/dist/{facet-397afad5.js → facet-26292a3d.js} +1 -1
  65. package/dist/{filter-b3d3964e.js → filter-67d51c09.js} +1 -1
  66. package/dist/{fusion.parse-e5312047.js → fusion.parse-7e3a6071.js} +1 -1
  67. package/dist/{geneExpClustering-4383ff2c.js → geneExpClustering-a2cf1bb9.js} +1 -1
  68. package/dist/{geneExpression-52678025.js → geneExpression-d1d5a7ca.js} +1 -1
  69. package/dist/{geneExpression-cfb86b5d.js → geneExpression-dc10af2c.js} +1 -1
  70. package/dist/{geneExpression-2422f66b.js → geneExpression-e4a5a2cd.js} +1 -1
  71. package/dist/{geneORA-81220ec0.js → geneORA-248baba7.js} +1 -1
  72. package/dist/{geneVariant-18f9591a.js → geneVariant-447d6af9.js} +1 -1
  73. package/dist/{geneVariant-4d22b146.js → geneVariant-7366f3d1.js} +1 -1
  74. package/dist/{genefusion.ui-e38778dd.js → genefusion.ui-e219424a.js} +1 -1
  75. package/dist/{genesearch-0587c713.js → genesearch-d8780180.js} +1 -1
  76. package/dist/{geneset-604d0529.js → geneset-1f67d4c9.js} +1 -1
  77. package/dist/genomeBrowser-52c639b4.js +1 -0
  78. package/dist/{genomeBrowser.controls-204f007e.js → genomeBrowser.controls-3a7a1c94.js} +1 -1
  79. package/dist/{groupsetting-53dfd5e5.js → groupsetting-697a1503.js} +1 -1
  80. package/dist/{gsea-a1b04406.js → gsea-d3286c53.js} +1 -1
  81. package/dist/hierCluster-00268175.js +1 -0
  82. package/dist/{html.legend-6807e9ad.js → html.legend-0abd27ff.js} +1 -1
  83. package/dist/{imagePlot-f96cdc61.js → imagePlot-f6398b6e.js} +1 -1
  84. package/dist/{lasso-845446b8.js → lasso-48317f42.js} +1 -1
  85. package/dist/launch.adhoc-98dc0421.js +1 -0
  86. package/dist/{leftlabel.sample-3a6037c2.js → leftlabel.sample-591bc38d.js} +1 -1
  87. package/dist/legacyDataset-354f1a29.js +1 -0
  88. package/dist/{log-0ea548ec.js → log-1001ca83.js} +1 -1
  89. package/dist/{lollipop-75e11e9a.js → lollipop-40c4c5cb.js} +1 -1
  90. package/dist/{maf-e4af10d7.js → maf-10526648.js} +1 -1
  91. package/dist/{maftimeline-cc2e866c.js → maftimeline-a77349ad.js} +1 -1
  92. package/dist/matrix-1190d4b3.js +1 -0
  93. package/dist/matrix-bc0ccf83.js +1 -0
  94. package/dist/{mavb-b2dd74f6.js → mavb-0d28dd97.js} +1 -1
  95. package/dist/{mds.fimo-f19840cd.js → mds.fimo-929b9e65.js} +1 -1
  96. package/dist/{mds.samplescatterplot-254f1de6.js → mds.samplescatterplot-5a4ee6b6.js} +1 -1
  97. package/dist/{mds.survivalplot-f440db10.js → mds.survivalplot-b04947ee.js} +1 -1
  98. package/dist/metaboliteIntensity-f407ad0c.js +1 -0
  99. package/dist/niceNumLabels-621ef5c3.js +1 -0
  100. package/dist/{nodrag-f6c0801c.js → nodrag-b2866dd8.js} +1 -1
  101. package/dist/{notify-da3afe99.js → notify-91f0bc5d.js} +1 -1
  102. package/dist/{numeric-1d0318e8.js → numeric-eb1d29b3.js} +1 -1
  103. package/dist/{numeric.binary-88bf9e0d.js → numeric.binary-da92d665.js} +1 -1
  104. package/dist/numeric.continuous-92d1dea8.js +1 -0
  105. package/dist/numeric.discrete-cd8f09b1.js +1 -0
  106. package/dist/{numeric.spline-b3968b77.js → numeric.spline-9a9987b6.js} +1 -1
  107. package/dist/{numeric.toggle-ab8b79be.js → numeric.toggle-8f68f077.js} +1 -1
  108. package/dist/{oncomatrix-5f4326a8.js → oncomatrix-c29e6de9.js} +1 -1
  109. package/dist/{parseData-62083461.js → parseData-3bf0ef9f.js} +1 -1
  110. package/dist/{plot.2dvaf-eccd8ef3.js → plot.2dvaf-9e59c7d1.js} +1 -1
  111. package/dist/plot.app-fc3608a9.js +1 -0
  112. package/dist/plot.barplot-122296f7.js +1 -0
  113. package/dist/{plot.boxplot-0c538ebe.js → plot.boxplot-99c5aac5.js} +1 -1
  114. package/dist/{plot.brainImaging-ee3a0272.js → plot.brainImaging-a7bb79d6.js} +1 -1
  115. package/dist/{plot.disco-c9249cbd.js → plot.disco-ccdf741c.js} +1 -1
  116. package/dist/{plot.dzi-dfd72ddf.js → plot.dzi-aafdf56b.js} +1 -1
  117. package/dist/plot.ssgq-146075f5.js +1 -0
  118. package/dist/{plot.vaf2cov-4081decd.js → plot.vaf2cov-41e13dd9.js} +1 -1
  119. package/dist/{plot.wsi-f6325d95.js → plot.wsi-2327ad63.js} +1 -1
  120. package/dist/{profileBarchart-f4da0483.js → profileBarchart-46616916.js} +1 -1
  121. package/dist/profileHome-121aaddb.js +1 -0
  122. package/dist/profilePlot-a2591a28.js +1 -0
  123. package/dist/{profilePolar-996784ad.js → profilePolar-006a56b1.js} +1 -1
  124. package/dist/{profileRadar-79299186.js → profileRadar-3320d932.js} +1 -1
  125. package/dist/{profileRadarFacility-00e31213.js → profileRadarFacility-7a9cea80.js} +1 -1
  126. package/dist/{profileSummary-df75e6ff.js → profileSummary-7a747b4e.js} +1 -1
  127. package/dist/recover-edcdde38.js +1 -0
  128. package/dist/{regression.inputs-e647b716.js → regression.inputs-d5d44e49.js} +1 -1
  129. package/dist/{regression.inputs.values.table-b283619d.js → regression.inputs.values.table-daf7bcda.js} +1 -1
  130. package/dist/regression.results-31a8884d.js +1 -0
  131. package/dist/{renderPvalueTable-0ed37e90.js → renderPvalueTable-05c29ccf.js} +1 -1
  132. package/dist/sampleScatter-f6c04130.js +1 -0
  133. package/dist/{sampleScatter.rendererThree-aa51e3c8.js → sampleScatter.rendererThree-448689c6.js} +2 -2
  134. package/dist/{sampleView-e4819da2.js → sampleView-0931e571.js} +1 -1
  135. package/dist/{samplelst-9d9ff205.js → samplelst-27115b0e.js} +1 -1
  136. package/dist/{samplematrix-3556e5c0.js → samplematrix-2bb2480b.js} +1 -1
  137. package/dist/{scatter-ff17f653.js → scatter-a8d7c2a0.js} +1 -1
  138. package/dist/select2Terms-480025f5.js +1 -0
  139. package/dist/{selectGenomeWithTklst-84f4ff79.js → selectGenomeWithTklst-71344af2.js} +1 -1
  140. package/dist/{singleCellCellType-a2ce9bfa.js → singleCellCellType-b4061c59.js} +1 -1
  141. package/dist/{singleCellGeneExpression-a2b45c7a.js → singleCellGeneExpression-547149f2.js} +1 -1
  142. package/dist/singleCellPlot-2f5ad46a.js +1 -0
  143. package/dist/{singlecell-a5b8a39b.js → singlecell-1c3bee25.js} +1 -1
  144. package/dist/{singlecell-63cb06d8.js → singlecell-281a74a6.js} +1 -1
  145. package/dist/snp-32b8cbd8.js +1 -0
  146. package/dist/{snp-6e312b4c.js → snp-6bbefa83.js} +1 -1
  147. package/dist/snplocus-84450f3d.js +1 -0
  148. package/dist/{spliceevent.a53ss.diagram-aa2df5d7.js → spliceevent.a53ss.diagram-c04f46f1.js} +1 -1
  149. package/dist/{spliceevent.exonskip.diagram-0b792984.js → spliceevent.exonskip.diagram-a514c12e.js} +1 -1
  150. package/dist/spliceevent.exonskip.getdefault-a9a45dfc.js +1 -0
  151. package/dist/{spliceevent.noeventdiagram-e6e29a6e.js → spliceevent.noeventdiagram-b1be922c.js} +1 -1
  152. package/dist/{spliceevent.phrase-5f65a5f4.js → spliceevent.phrase-57659f7c.js} +1 -1
  153. package/dist/{stattable-775a5af5.js → stattable-7fa50fd2.js} +1 -1
  154. package/dist/{style.gdc-519a42d8.js → style.gdc-6b6a2e0c.js} +1 -1
  155. package/dist/{summary-5866c75f.js → summary-54587ccf.js} +1 -1
  156. package/dist/{sunburst-f928bfd2.js → sunburst-c24faf27.js} +1 -1
  157. package/dist/{survival-405514f6.js → survival-21e6637b.js} +1 -1
  158. package/dist/survival-538cddc2.js +1 -0
  159. package/dist/{svg.download-cd895635.js → svg.download-0dd56dfd.js} +1 -1
  160. package/dist/{svg.legend-812ea603.js → svg.legend-21629769.js} +1 -1
  161. package/dist/{svgraph-037fd7b6.js → svgraph-76e34d5e.js} +1 -1
  162. package/dist/{svmr-3bd143c3.js → svmr-89b80ea2.js} +1 -1
  163. package/dist/table-10183501.js +1 -0
  164. package/dist/{table-e013d8fc.js → table-bb97b5c9.js} +1 -1
  165. package/dist/{termInfo-e16f90f2.js → termInfo-4d954045.js} +1 -1
  166. package/dist/termdb.bins-06fd21c1.js +1 -0
  167. package/dist/termsetting-c12f1c69.js +1 -0
  168. package/dist/{tk-25ae65c4.js → tk-b96367f7.js} +1 -1
  169. package/dist/{toggleButtons-2144daab.js → toggleButtons-bb9aca2f.js} +1 -1
  170. package/dist/{tp.ui-38bc5890.js → tp.ui-f01b186b.js} +1 -1
  171. package/dist/tvs.density-064e5767.js +1 -0
  172. package/dist/{tvs.geneVariant-f99fe353.js → tvs.geneVariant-3fac6bed.js} +1 -1
  173. package/dist/{tvs.numeric-d9108473.js → tvs.numeric-86aacc82.js} +1 -1
  174. package/dist/{tvs.samplelst-3b8ee998.js → tvs.samplelst-1b00d7b6.js} +1 -1
  175. package/dist/{uiUtils-57f4b1ba.js → uiUtils-5aad7e13.js} +1 -1
  176. package/dist/{variantBrowser-56ebc7e1.js → variantBrowser-2c465d02.js} +1 -1
  177. package/dist/{vcf-e43b533a.js → vcf-55bf2c83.js} +1 -1
  178. package/dist/{violin-1352dab2.js → violin-edbe9a63.js} +1 -1
  179. package/dist/violin.interactivity-57637244.js +1 -0
  180. package/dist/{violin.renderer-4273257d.js → violin.renderer-4cab7448.js} +1 -1
  181. package/dist/{violinRenderer-7f46e468.js → violinRenderer-24abe5fd.js} +1 -1
  182. package/dist/{viridis-87a8b605.js → viridis-8a8f3e12.js} +1 -1
  183. package/dist/{y-cac91178.js → y-6fe1bb7b.js} +1 -1
  184. package/dist/{zoom-001c2f01.js → zoom-6a36fb2b.js} +1 -1
  185. package/package.json +6 -5
  186. package/dist/FilterRxComp-e8de560c.js +0 -1
  187. package/dist/FilterStateless-75514d37.js +0 -1
  188. package/dist/app-3d14cbe4.js +0 -1
  189. package/dist/app-8b5b982a.js +0 -1
  190. package/dist/bam-fa90bae8.js +0 -1
  191. package/dist/block.lazyload-4c4e81ff.js +0 -1
  192. package/dist/controls.btns-237b3154.js +0 -1
  193. package/dist/genomeBrowser-9f0e8a60.js +0 -1
  194. package/dist/hierCluster-edaaacc5.js +0 -1
  195. package/dist/hierCluster.config-a84f69a3.js +0 -1
  196. package/dist/hierCluster.interactivity-dd917fd3.js +0 -1
  197. package/dist/hierCluster.renderers-4d33e96a.js +0 -1
  198. package/dist/launch.adhoc-cb00917b.js +0 -1
  199. package/dist/legacyDataset-c9bab1e6.js +0 -1
  200. package/dist/matrix-8b3341c4.js +0 -1
  201. package/dist/matrix.cells-4dd055e7.js +0 -1
  202. package/dist/matrix.cluster-7ab94fb5.js +0 -1
  203. package/dist/matrix.config-b3b56456.js +0 -1
  204. package/dist/matrix.controls-6e0e9692.js +0 -1
  205. package/dist/matrix.data-baabaf57.js +0 -1
  206. package/dist/matrix.dom-cb1f4872.js +0 -1
  207. package/dist/matrix.groups-9990aade.js +0 -1
  208. package/dist/matrix.interactivity-3f3cf44d.js +0 -1
  209. package/dist/matrix.layout-50bc2ea5.js +0 -1
  210. package/dist/matrix.legend-024e2d50.js +0 -1
  211. package/dist/matrix.renderers-1aed44e5.js +0 -1
  212. package/dist/matrix.serieses-dc18fcc2.js +0 -1
  213. package/dist/matrix.sort-89b98e83.js +0 -1
  214. package/dist/matrix.sorterUi-0ad98ef0.js +0 -1
  215. package/dist/metaboliteIntensity-4d905d93.js +0 -1
  216. package/dist/niceNumLabels-ef07b7ad.js +0 -1
  217. package/dist/numeric.continuous-d27197cf.js +0 -1
  218. package/dist/numeric.discrete-b826f33b.js +0 -1
  219. package/dist/plot.app-4dc30ebc.js +0 -1
  220. package/dist/plot.barplot-331715f6.js +0 -1
  221. package/dist/plot.ssgq-b5f68395.js +0 -1
  222. package/dist/profileHome-11b7d146.js +0 -1
  223. package/dist/profilePlot-5dd1fe71.js +0 -1
  224. package/dist/recover-4888c2a9.js +0 -1
  225. package/dist/regression.results-f61b4a25.js +0 -1
  226. package/dist/sampleScatter-b96546e9.js +0 -1
  227. package/dist/select2Terms-eb437c2a.js +0 -1
  228. package/dist/singleCellPlot-e7e57b0f.js +0 -1
  229. package/dist/snp-41aa88d1.js +0 -1
  230. package/dist/snplocus-0653ba82.js +0 -1
  231. package/dist/spliceevent.exonskip.getdefault-af1943e3.js +0 -1
  232. package/dist/survival-10dd3d28.js +0 -1
  233. package/dist/table-be2a9975.js +0 -1
  234. package/dist/termdb.bins-a60aaa77.js +0 -1
  235. package/dist/termsetting-7467350f.js +0 -1
  236. package/dist/tvs.density-060d3006.js +0 -1
  237. package/dist/violin.interactivity-2502dcd8.js +0 -1
@@ -1 +0,0 @@
1
- import{b as t,y as e,F as s,h as o,P as i,M as n,d as l,C as a,I as r,r as p,Q as c}from"./app-3d14cbe4.js";import{d}from"./zoom-001c2f01.js";import{r as h}from"./table-be2a9975.js";import{controlsInit as g}from"./controls-1d99916a.js";import{d as m}from"./svg.download-cd895635.js";import{a as f}from"./genesearch-0587c713.js";import{T as y,c as u}from"./termsetting-7467350f.js";import{a as b,b as v,c as x}from"./axis-747c801e.js";import"./pointer-c7475677.js";import"./nodrag-f6c0801c.js";import"./tslib.es6-c3c2d88f.js";import"./controls.btns-237b3154.js";import"./controls.config-00ce9f0b.js";import"path";class C{constructor(){this.type="singleCellPlot";this.tip=new n({padding:"4px",offsetX:10,offsetY:0});this.tip.d.style("max-height","300px").style("overflow","scroll").style("font-size","0.9em");this.startGradient={};this.stopGradient={}}async init(e){const s=this.getState(e);const o=s.termdbConfig.queries;this.tableOnPlot=e.nav?.header_mode=="hidden";this.opts.holder.style("position","relative");this.showDivId=`${this.id}-sandbox`;const i=this.opts.holder.insert("div").style("display","inline-block").style("vertical-align","top");const a=i.append("div").style("padding","10px");const r=i.append("div");const p=a.append("div").attr("id",this.showDivId);const c=a.append("div").style("padding-top","10px").style("display","inline-block");if(this.tableOnPlot){p.append("input").attr("id",`showSamples`).attr("type","checkbox").property("checked",true).on("change",(t=>{this.app.dispatch({type:"plot_edit",id:this.id,config:{settings:{singleCellPlot:{showSamples:t.target.checked}}}})}));p.append("label").text("Show samples").attr("for",`showSamples`)}for(const t of s.config.plots){const e=t.name.replace(/\s+/g,"");p.append("input").attr("id",`show${e}`).attr("type","checkbox").property("checked",true).on("change",(t=>{this.app.dispatch({type:"plot_edit",id:this.id,config:{settings:{singleCellPlot:{[`show${e}`]:t.target.checked}}}})}));p.append("label").text(t.name).attr("for",`show${e}`)}if(o.singleCell?.geneExpression){c.append("label").html("Gene expression:");const t=f({tip:new n({padding:"0px"}),genome:this.app.opts.genome,row:c,searchOnly:"gene",placeholder:s.config.gene||"Gene",callback:()=>{o?.style("display","inline-block");e?.style("display","inline-block");const s=t.geneSymbol;this.app.dispatch({type:"plot_edit",id:this.id,config:{gene:s}})},emptyInputCallback:()=>{o.style("display","none");e.style("display","none");this.app.dispatch({type:"plot_edit",id:this.id,config:{gene:null}})},hideHelp:true,focusOff:true});const e=c.append("select").style("display",s.config.gene?"inline-block":"none");for(const t of s.termdbConfig?.queries.singleCell.data.plots){e.append("option").text(t.colorColumn)}e.on("change",(async()=>{const t=s.termdbConfig?.queries.singleCell.data.plots[0];const o=t.columnName;const i={sample:s.config.sample.sampleName,columnName:o,category:e.node().value};await this.app.vocabApi.getTopTermsByType(i)}));const o=c.append("button").text("Open violin").style("margin-left","2px").style("display",s.config.gene?"inline-block":"none");o.on("click",(()=>{const o=t.geneSymbol||s.config.gene;const i=this.state.config.plots.find((t=>t.colorColumn==e.node().value)).name;const n=this.plots.find((t=>t.name==i));const l={};for(const t of n.clusters){l[t]={key:t,value:t}}this.app.dispatch({type:"plot_create",config:{chartType:"violin",settings:{violin:{plotThickness:50}},term:{term:{type:y.SINGLECELL_GENE_EXPRESSION,id:o,gene:o,name:o,sample:s.config.sample}},term2:{term:{type:y.SINGLECELL_CELLTYPE,id:y.SINGLECELL_CELLTYPE,name:"Cell type",sample:s.config.sample,plot:n.name,values:l}}}})}))}const d=a.append("div").style("padding","10px").style("display","inline-block");const g=i.append("div").style("display","inline-block").attr("class","pp-termdb-plot-controls");const m=i.append("div").style("display","inline-block");const b=m.append("div").style("display","flex").style("flex-wrap","wrap").style("justify-content","flex-start").style("width","92vw");const v=this.opts.holder.append("div").style("position","absolute").style("top",0).style("left",0).style("width","100%").style("height","100%").style("background-color","rgba(255, 255, 255, 0.8)").style("text-align","center");v.append("div").attr("class","sjpp-spinner");this.dom={header:this.opts.header,mainDiv:i,loadingDiv:v,tip:new n({padding:"0px"}),tooltip:new n({padding:"2px",offsetX:10,offsetY:0}),controlsHolder:g,tableDiv:r,deDiv:d,plotsDiv:b,plotsDivParent:m};const x=80;this.axisOffset={x:x,y:30};if(o.singleCell?.DEgenes){this.dom.deDiv.append("label").html("View differentially expresed genes of a cluster vs rest of cells:&nbsp;");this.dom.deselect=this.dom.deDiv.append("select");if(this.app.opts.genome.termdbs)this.dom.GSEAbt=this.dom.deDiv.append("button").style("margin-left","5px").property("disabled",true).text("Gene set enrichment analysis").on("click",(t=>{const e={genes:this.genes,fold_change:this.fold_changes,genome:this.app.vocabApi.opts.state.vocab.genome};const s={chartType:"gsea",gsea_params:e,insertBefore:this.app.opts?.app?.getPlotHolder&&this.showDivId};this.app.dispatch({type:"plot_create",config:s})}));const e=this.dom.deDiv.append("div");this.dom.DETableDiv=e;this.dom.deselect.append("option").text("");this.dom.deselect.on("change",(async o=>{e.selectAll("*").remove();const i=this.dom.deselect.node().value.split(" ")?.[1];if(this.dom.GSEAbt)this.dom.GSEAbt.property("disabled",!i);if(!i)return;const n=s.termdbConfig.queries.singleCell.DEgenes.columnName;const l=this.state.config.experimentID||this.state.config.sample||this.samples[0]?.experiments[0]?.experimentID;const a={genome:s.genome,dslabel:s.dslabel,categoryName:i,sample:l,columnName:n};const r=await t("termdb/singlecellDEgenes",{body:a});const p=[{label:"Gene"},{label:"Log2FC"},{label:"Adjusted P-value"}];const c=[];this.genes=[];this.fold_changes=[];r.genes.sort(((t,e)=>e.avg_log2FC-t.avg_log2FC));for(const t of r.genes){const e=[{value:t.name},{value:u(t.avg_log2FC)},{value:u(t.p_val_adj)}];c.push(e);this.genes.push(t.name);this.fold_changes.push(t.avg_log2FC)}h({rows:c,columns:p,resize:true,div:e})}))}this.settings={};document.addEventListener("scroll",(t=>this?.tip?.hide()));l(".sjpp-output-sandbox-content").on("scroll",(t=>this.tip.hide()));await this.setControls(s)}async setControls(t){const e=[{label:"Chart width",type:"number",chartType:"singleCellPlot",settingsKey:"svgw",min:300,max:1e3},{label:"Chart height",type:"number",chartType:"singleCellPlot",settingsKey:"svgh",min:300,max:1e3},{label:"Show borders",type:"checkbox",chartType:"singleCellPlot",settingsKey:"showBorders",boxLabel:""}];if(this.tableOnPlot)e.push({label:"Show samples",type:"checkbox",chartType:"singleCellPlot",settingsKey:"showSamples",boxLabel:""});this.components={controls:await g({app:this.app,id:this.id,holder:this.dom.controlsHolder,inputs:e})};this.components.controls.on("downloadClick.singleCellPlot",(()=>{for(const t of this.plots)m(t.svg,"plot.svg",this.opts.holder.node())}))}getState(t){const e=t.plots.find((t=>t.id===this.id));if(!e){throw`No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`}this.prevFilter0=this.state?.termfilter.filter0;return{config:e,dslabel:t.vocab.dslabel,genome:t.vocab.genome,termdbConfig:t.termdbConfig,termfilter:t.termfilter}}async main(){this.config=structuredClone(this.state.config);i(this.settings,this.config.settings.singleCellPlot);this.dom.tableDiv.style("display",this.settings.showSamples?"block":"none");if(this.tableOnPlot){await D(this.dom.tableDiv,this,this.state);if(!this.samples?.length){this.showNoMatchingDataMessage();return}}this.dom.loadingDiv.selectAll("*").remove();this.dom.loadingDiv.style("display","").append("div").attr("class","sjpp-spinner");this.dom.mainDiv.style("opacity",1).style("display","");this.legendRendered=false;const t=await this.getData();this.dom.plotsDivParent.style("display","inline-block");this.renderPlots(t);this.dom.loadingDiv.style("display","none");if(this.dom.header)this.dom.header.html(`Single Cell Data`)}async getData(){const s=[];for(const t of this.config.plots){const e=t.name.replace(/\s+/g,"");const o=this.settings[`show${e}`];if(o)s.push(t.name)}const o={genome:this.state.genome,dslabel:this.state.dslabel,plots:s,filter0:this.state.termfilter.filter0};if(this.state.config.sample){this.state.config.sample;o.sample=this.state.config.experimentID||this.state.config.sample}else{this.samples[0].sample;o.sample=this.samples[0].experiments?.[0]?.experimentID||this.samples[0].sample}if(this.state.config.gene)o.gene=this.state.config.gene;try{const e=await t("termdb/singlecellData",{body:o});if(e.error)throw e.error;this.refName=e.refName;return e}catch(t){if(t.stack)console.log(t.stack);e(this.dom.plotsDiv,t);return}}showNoMatchingDataMessage(){this.dom.mainDiv.style("opacity",.001).style("display","none");this.dom.loadingDiv.style("display","").html("");this.dom.loadingDiv.append("div").style("display","inline-block").style("text-align","center").style("position","relative").style("left","-150px").style("font-size","1.2em").style("margin","2em 1em").html("No matching cohort data.")}renderPlots(t){this.dom.plotsDiv.selectAll("*").remove();this.plots=[];for(const e of t.plots){e.id=e.name.replace(/\s+/g,"");this.renderPlot(e)}}renderPlot(t){const e={};let s=new Set(t.cells.map((t=>t.category)));t.clusters=Array.from(s).sort(((t,e)=>{const s=parseInt(t.split(" ")[1]);const o=parseInt(e.split(" ")[1]);return s-o}));if(this.dom.deselect&&!this.legendRendered){this.dom.deselect.selectAll("*").remove();this.dom.deselect.append("option").text("");for(const e of t.clusters)this.dom.deselect.append("option").text(e)}const o=a(t.clusters.length+2);for(const s of t.clusters)e[s]=s=="ref"||s=="No"?"#F2F2F2":t.colorMap?.[s]?t.colorMap[s]:o(s);t.colorMap=e;this.plots.push(t);this.initAxes(t);t.plotDiv=this.dom.plotsDiv.append("div").style("overflow","hidden").style("display","inline-block").style("padding","10px").style("flex-grow",1);if(this.state.config.settings.singleCellPlot.showBorders)t.plotDiv.style("border","1px solid #aaa");this.renderLegend(t);const i=t.plotDiv.append("svg").attr("width",this.settings.svgw).attr("height",this.settings.svgh+40).on("mouseover",(e=>{if(this.state.config.gene&&!this.onClick)this.showTooltip(e,t)})).on("click",(e=>this.showTooltip(e,t)));i.append("text").attr("transform",`translate(20, 30)`).style("font-weight","bold").text(`${t.name}`);t.svg=i;const n=d().scaleExtent([.5,5]).on("zoom",(e=>this.handleZoom(e,t))).filter((t=>{if(t.type==="wheel")return t.ctrlKey;return true}));i.call(n);const l=i.selectAll("g").data(t.cells);l.enter().append("g").attr("transform",(e=>`translate(${t.xAxisScale(e.x)}, ${t.yAxisScale(e.y)+40})`)).append("circle").attr("r",1.5).attr("fill",(e=>this.getColor(e,t))).style("fill-opacity",(t=>this.getOpacity(t)))}getOpacity(t){if(this.config.hiddenClusters.includes(t.category))return 0;return.7}getColor(t,e){const s="#FAFAFA";if(this.state.config.gene){if(!t.geneExp)return s;if(e.colorGenerator)return e.colorGenerator(t.geneExp);return s}return e.colorMap[t.category]}handleZoom(t,e){e.svg.attr("transform",t.transform);e.zoom=t.transform.scale(1).k}initAxes(t){if(!t.cells.length)return;const e=t.cells[0];const[s,o,i,n]=t.cells.reduce(((t,e)=>[e.x<t[0]?e.x:t[0],e.x>t[1]?e.x:t[1],e.y<t[2]?e.y:t[2],e.y>t[3]?e.y:t[3]]),[e.x,e.x,e.y,e.y]);const l=5;t.xAxisScale=r().domain([s,o]).range([0+l,this.settings.svgh+l]);t.axisBottom=b(t.xAxisScale);t.yAxisScale=r().domain([n,i]).range([0+l,this.settings.svgh+l]);t.axisLeft=v(t.yAxisScale);t.zoom=1}renderLegend(t){const e=t.colorMap;let s=t.legendSVG;if(!t.legendSVG){s=t.plotDiv.append("svg").attr("width",250).attr("height",this.settings.svgh).style("vertical-align","top");t.legendSVG=s}s.selectAll("*").remove();if(this.state.termdbConfig.queries.singleCell.data.sameLegend&&this.legendRendered)return;this.legendRendered=true;const o=s.append("g").attr("transform",`translate(25, 50)`).style("font-size","0.8em");if(this.state.config.gene){this.renderColorGradient(t,o);return}o.append("text").attr("transform",`translate(${0}, ${25})`).style("font-weight","bold").text(`${t.colorBy}`);const i=20;let n=50;let l=0;for(const s in e){const r=t.cells.filter((t=>t.category==s));const p=this.config.hiddenClusters.includes(s);const c=r.length;const d=e[s];const h=o.append("g").attr("transform",(t=>`translate(${l}, ${n})`));h.append("circle").attr("r",3).attr("fill",d);h.append("g").attr("transform",`translate(${l+10}, ${5})`).append("text").text(`${s=="ref"?this.state.termdbConfig.queries.singleCell.data.refName:s=="query"?this.state.config.sample:s} n=${c}`).style("text-decoration",p?"line-through":"none").on("click",(t=>a(this,t,s)));n+=i}function a(t,e,s,o){const i=e.target;const n=i.style["text-decoration"]=="line-through";i.style["text-decoration"]=n?"none":"line-through";let l=t.config.hiddenClusters;if(!n)l.push(s);else l.splice(l.indexOf(s),1);t.app.dispatch({type:"plot_edit",id:t.id,config:{hiddenClusters:l}})}}renderColorGradient(t,e){if(t.cells.length==0)return;const s=p(c);if(!this.config.startColor[t.name])this.config.startColor[t.name]=s.brighter(1).toString();if(!this.config.stopColor[t.name])this.config.stopColor[t.name]=s.darker(3).toString();const o=this.config.startColor[t.name];const i=this.config.stopColor[t.name];const n=e.append("defs").append("linearGradient").attr("id",`linear-gradient-${t.id}`).attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");this.startGradient[t.name]=n.append("stop").attr("offset","0%").attr("stop-color",o);this.stopGradient[t.name]=n.append("stop").attr("offset","100%").attr("stop-color",i);let l,a;const d=t.cells[0]?.geneExp==undefined?[]:t.cells.map((t=>t.geneExp));if(d.length==0){t.colorGenerator=null;return}else[l,a]=d.reduce(((t,e)=>[e<t[0]?e:t[0],e>t[1]?e:t[1]]),[d[0],d[0]]);t.colorGenerator=r().domain([l,a]).range([o,i]);const h=100;const g=r().domain([l,a]).range([0,h]);const m=(a-l)/4;const f=[l,l+m,l+2*m,l+3*m,a];const y=x(g).tickValues(f);e.append("g").attr("transform",`translate(0, 100)`).call(y);t.startRect=e.append("rect").attr("x",-25).attr("y",100).attr("width",20).attr("height",20).style("fill",o).on("click",(e=>this.editColor(t,"startColor",t.startRect)));t.stopRect=e.append("rect").attr("x",h+5).attr("y",100).attr("width",20).attr("height",20).style("fill",i).on("click",(e=>this.editColor(t,"stopColor",t.stopRect)));e.append("rect").attr("x",0).attr("y",100).attr("width",h).attr("height",20).style("fill",`url(#linear-gradient-${t.id})`)}editColor(t,e,s){const o=this.config[e][t.name];const i=new n({padding:"3px"});const l=i.clear().d.append("Label").text("Color:").append("input").attr("type","color").attr("value",p(o).formatHex()).on("change",(()=>{const o=l.node().value;this.changeGradientColor(t,e,s,o);i.hide()}));i.showunder(s.node(),false)}changeGradientColor=function(t,e,s,o){this.config[e][t.name]=o;this.app.dispatch({type:"plot_edit",id:this.id,config:this.config})};distance(t,e,s,o,i){const n=i.xAxisScale(s)-i.xAxisScale(t);const l=i.yAxisScale(o)-i.yAxisScale(e);const a=Math.sqrt(Math.pow(n,2)+Math.pow(l,2));return a}showTooltip(t,e){if(this.onClick&&t.type=="click"){this.onClick=false;this.tip.hide();return}if(t.target.tagName=="circle"){this.onClick=t.type=="click";const s=t.target.__data__;const o=this.tip.clear();const i=o.d.append("table");let n=i.append("tr");n.append("td").style("color","#aaa").text(e.colorBy);const l=n.append("td");const a=l.append("svg").attr("width",150).attr("height",20);const r=10;const p=12;const c=a.append("g").attr("transform",`translate(${r}, ${p})`);c.append("circle").attr("fill",this.getColor(s,e)).attr("r",4);a.append("g").attr("transform",`translate(${r+15}, ${p+4})`).append("text").text(s.category);if("geneExp"in s){n=i.append("tr");n.append("td").style("color","#aaa").text("Gene expression");n.append("td").text(u(s.geneExp))}o.show(t.clientX,t.clientY,true,true)}else this.onMouseOut(t)}onMouseOut(t){this.tip.hide()}}async function w(t,e){const s=t.append("div").style("padding","5px");D(s,e,e.state)}async function D(o,i,n){const l={genome:n.genome,dslabel:n.dslabel,filter0:n.termfilter.filter0||null};let a;try{a=await t("termdb/singlecellSamples",{body:l});if(a.error)throw a.error}catch(t){e(o,t);return}const r=a.samples;i.samples=r;if(i.tableOnPlot){if(r.length==0){i.dom.plotsDiv.selectAll("*").remove();return}if(i.table&&s(i.state.termfilter.filter0,i.prevFilter0))return}o.selectAll("*").remove();r.sort(((t,e)=>{const s=t.primarySite?.localeCompare(e.primarySite);if(s==1||s==-1)return s;else return t.sample.localeCompare(e.sample)}));const[p,c]=await k(i,r,n);const d=[];let g="40vh";if(i.tableOnPlot){const t=i.config.sample;const e=i.samples.findIndex((e=>e.sample==t));const s=e==-1?0:e;d.push(s);g="30vh"}i.table=h({rows:p,columns:c,resize:true,singleMode:true,div:o,maxHeight:g,noButtonCallback:t=>{if(i.dom.DETableDiv){i.dom.deselect.node().value="";i.dom.DETableDiv.selectAll("*").remove();if(i.dom.GSEAbt)i.dom.GSEAbt.property("disabled",true)}const e=p[t][0].value;const s={chartType:"singleCellPlot",sample:e};if(p[t][0].__experimentID){s.experimentID=p[t][0].__experimentID}if(i.tableOnPlot){i.app.dispatch({type:"plot_edit",id:i.id,config:s})}else{i.dom.tip.hide();i.app.dispatch({type:"plot_create",config:s})}},selectedRows:d})}async function k(t,e,s){const o=[];for(const t of e){if(t.experiments)for(const e of t.experiments){const i=[{value:t.sample,__experimentID:e.experimentID}];for(const e of s.termdbConfig.queries.singleCell.samples.sampleColumns||[]){i.push({value:t[e.termid]})}for(const e of s.termdbConfig.queries.singleCell.samples.experimentColumns||[]){i.push({value:t[e.label]})}i.push({value:e.experimentID});o.push(i)}else{const e=[{value:t.sample}];for(const o of s.termdbConfig.queries.singleCell.samples.sampleColumns||[]){e.push({value:t[o.termid]})}o.push(e)}}const i=[{label:s.termdbConfig.queries.singleCell.samples.firstColumnName||"Sample"}];for(const e of s.termdbConfig.queries.singleCell.samples.sampleColumns||[]){i.push({label:(await t.app.vocabApi.getterm(e.termid)).name,width:"15vw"})}for(const t of s.termdbConfig.queries.singleCell.samples.experimentColumns||[]){i.push({label:t.label,width:"20vw"})}if(e.some((t=>t.experiments))){i.push({label:"Experiment"})}return[o,i]}const S=o(C);const A=S;async function _(t,e){try{const s=e.vocabApi.termdbConfig?.queries?.singleCell.data.plots;const o=E();for(const t of s){const e=t.name.replace(/\s+/g,"");const s=`show${e}`;o[s]=true}const n={hiddenClusters:[],settings:{singleCellPlot:o},startColor:{},stopColor:{},plots:s};const l=i(n,t);return l}catch(t){console.log(t);throw`${t} [singleCellPlot getPlotConfig()]`}}function E(){return{svgw:420,svgh:420,showBorders:false,showSamples:true}}export{A as componentInit,E as getDefaultSingleCellSettings,_ as getPlotConfig,w as makeChartBtnMenu,S as scatterInit};
@@ -1 +0,0 @@
1
- import{_ as s}from"./tslib.es6-c3c2d88f.js";import{M as t}from"./app-3d14cbe4.js";import{a as o}from"./genesearch-0587c713.js";class e{init(s){this.callback=s.callback;const e=o({tip:new t({padding:"0px"}),genome:s.genomeObj,row:s.holder,searchOnly:"snp",allowVariant:true,callback:()=>this.selectSnp(e)})}selectSnp(t){return s(this,void 0,void 0,(function*(){const{chr:s,ref:o,alt:e,fromWhat:r}=t;if(!s||!o||!e||!r)throw"missing chr, ref, alt, or fromWhat of snp";let a,i;if(!t.start&&!t.stop){if(t.pos){a=t.pos-1;i=t.pos}else{throw"missing coordinate of snp"}}else{a=t.start;i=t.stop}const c={id:r,chr:s,start:a,stop:i,name:r,ref:o,alt:typeof e=="string"?[e]:e,type:"snp"};this.callback(c)}))}}export{e as SearchHandler};
@@ -1 +0,0 @@
1
- import{_ as t}from"./tslib.es6-c3c2d88f.js";import{mayRestrictAncestry as e,makeSnpSelect as i}from"./snplst-6865d7c7.js";import{f as r}from"./FilterStateless-75514d37.js";import{g as n}from"./FilterRxComp-e8de560c.js";import"./termsetting-7467350f.js";import"./app-3d14cbe4.js";import{a}from"./genesearch-0587c713.js";import"./snplst.sampleSum-e47d05f0.js";import"./table-be2a9975.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-a60aaa77.js";import"path";const s="Variants in a locus";function o(e){return{getPillName(){return e.term.name},getPillStatus(){if(!e.term||!e.q)return;if(!e.term.snps)throw`Missing term.snps [snplocs.ts getPillStatus()]`;let t=`${e.q.chr}:${e.q.start}-${e.q.stop}, ${e.term.snps.length} variant${e.term.snps.length>1?"s":""}`;if(e.term.reachedVariantLimit){t+='<span style="margin-left: 6px; background:#aaa; font-size:1em;font-style: normal; border-radius: 7px;color:white;padding:0px 5px;">&#9888;<span>'}return{text:t}},validateQ(t){d(t)},showEditMenu(i){return t(this,void 0,void 0,(function*(){yield l(e,i)}))}}}function l(r,o){var l;return t(this,void 0,void 0,(function*(){const d=o.append("div").style("margin","15px");const c=yield e(r,d);const u=a({genome:r.opts.genomeObj,tip:r.dom.tip2,row:d.append("div").style("margin-top","20px"),defaultCoord:r.q&&r.q.chr?{chr:r.q.chr,start:r.q.start,stop:r.q.stop}:undefined});d.select(".sja_genesearchinput").style("margin","0px");d.append("span").style("margin","5px 0px").style("display","inline-block").style("opacity",.4).style("font-size",".7em").html('"Gene": Gene name (e.g. AKT1)</br>"Position": chr:start-stop (e.g. chr1:5000-6000)</br>"dbSNP": dbSNP accession (e.g. rs1042522)');yield f(r,(l=r.q)===null||l===void 0?void 0:l.variant_filter,d);const[v,h,y]=i(d.append("div").attr("class","sjpp-snp-select").style("margin-top","15px"),r,"snplocus");if(r.usecase.target=="dataDownload")d.select(".sjpp-snp-select").style("display","none");const g=d.append("div").style("margin-top","15px");g.append("button").style("margin-top","15px").text("Submit").on("click",(e=>t(this,void 0,void 0,(function*(){if(!u.chr)return window.alert("Invalid coordinate");e.target.disabled=true;e.target.innerHTML="Validating input...";if(r.term);else{r.term={id:m()}}if(!r.q)r.q={};r.term.type="snplocus";r.q.chr=u.chr;r.q.start=u.start;r.q.stop=u.stop;r.term.name=s;delete r.term.snps;r.q.variant_filter=n(r.variantFilter.active);yield p(r);{const t=Number(v.property("value"));r.q.AFcutoff=t<0||t>=100?5:t}r.q.alleleType=h.property("selectedIndex");r.q.geneticModel=y.property("selectedIndex");if(c){r.q.restrictAncestry=c.node().options[c.property("selectedIndex")].__ancestry_obj}r.runCallback()}))));g.append("span").style("padding-left","15px").style("opacity",.8).style("font-size",".8em").text(r.usecase.target=="dataDownload"?"":"Variants will be treated individually in separate regression models")}))}function p(e){return t(this,void 0,void 0,(function*(){const t=yield e.vocabApi.validateSnps(e.q);if(t.error)throw t.error;e.q.cacheid=t.cacheid;e.term.snps=t.snps;e.term.reachedVariantLimit=t.reachedVariantLimit}))}function d(t){const e=t.q;if(!Number.isFinite(e.AFcutoff))throw"AFcutoff is not number";if(e.AFcutoff<0||e.AFcutoff>100)throw"AFcutoff is not within 0 to 100";if(![0,1].includes(e.alleleType))throw"alleleType value is not one of 0/1";if(![0,1,2,3].includes(e.geneticModel))throw"geneticModel value is not one of 0/1";if(!e.chr)throw"chr missing";if(!Number.isInteger(e.start))throw"start coordinate is not integer";if(!Number.isInteger(e.stop))throw"stop coordinate is not integer";if(e.start<0)throw"start < 0";if(e.stop<=e.start)throw"stop <= start"}function c(e,i){return t(this,void 0,void 0,(function*(){try{d(e)}catch(t){throw"snplocus validateQ(): "+t}if(!e.term.name)e.term.name=s;if(e.id==undefined||e.id==""){if(e.term.id==undefined||e.term.id==""){e.term.id=m()}e.id=e.term.id}else{if(e.term.id==undefined||e.term.id==""){e.term.id=e.id}}yield p({term:e.term,q:e.q,vocabApi:i})}))}function m(){return"snplocus"+Math.random()}function f(e,i,n,a){return t(this,void 0,void 0,(function*(){if(!e.variantFilter){e.variantFilter=yield e.vocabApi.get_variantFilter()}if(!e.variantFilter.terms){return}if(!e.variantFilter.opts)throw"variantFilter.opts{} missing";if(!e.variantFilter.filter)throw".filter missing from variantFilter{}";if(!Array.isArray(e.variantFilter.terms)||e.variantFilter.terms.length==0)throw"variantFilter.terms[] is not non-empty array";if(i){e.variantFilter.active=JSON.parse(JSON.stringify(i))}else{e.variantFilter.active=JSON.parse(JSON.stringify(e.variantFilter.filter))}const s=n.append("div").style("margin-top","15px");s.append("span").text("VARIANT FILTERS").style("font-size",".8em").style("opacity",.5);const o=s.append("div");r({joinWith:e.variantFilter.opts.joinWith,emptyLabel:"+Variant Filter",holder:o,vocab:{terms:e.variantFilter.terms},callback:i=>t(this,void 0,void 0,(function*(){e.variantFilter.active=i;if(a)yield a()}))}).main(e.variantFilter.active)}))}export{c as fillTW,o as getHandler};
@@ -1 +0,0 @@
1
- import{bX as e,bV as n}from"./app-3d14cbe4.js";function o(o){let t=0;for(let i=1;i<o.length;i++){const f=o[i];const r=o[t];if(f.isskipexon&&r.isaltexon){t=i;continue}if(f.frame==e&&r.framenocheck){t=i;continue}if(f.frame==n&&r.frame!=n){t=i;continue}}return t}export{o as e};
@@ -1 +0,0 @@
1
- import{_ as t}from"./tslib.es6-c3c2d88f.js";import{o}from"./termsetting-7467350f.js";import{getHandler as e}from"./numeric.toggle-ab8b79be.js";import"./app-3d14cbe4.js";import"path";import"./toggleButtons-2144daab.js";function i(i){return{showEditMenu(o){return t(this,void 0,void 0,(function*(){const t=yield e(i);yield t.showEditMenu(o)}))},getPillStatus(){},getPillName(t){return o(i,t)}}}function r(t,o){}export{r as fillTW,i as getHandler};
@@ -1 +0,0 @@
1
- import{_ as t}from"./tslib.es6-c3c2d88f.js";import{d as e}from"./app-3d14cbe4.js";function n({columns:t,rows:n,div:o,columnButtons:s,buttons:l,noButtonCallback:a,singleMode:i=false,noRadioBtn:c=false,showLines:d=true,striped:r=true,showHeader:p=true,maxWidth:f="90vw",maxHeight:h="40vh",selectedRows:u=[],selectAll:b=false,resize:y=false,selectedRowStyle:g={},inputName:w=null,dataTestId:m=null}){v();let k=g;function v(){if(!t||(t===null||t===void 0?void 0:t.length)==0)throw`Missing columns data`;if(!n)throw`Missing rows data`;if(!o)throw`Missing div argument`;const e=[];for(const[o,s]of n.entries()){if(s.length!=t.length)e.push(o+1)}if(e.length>0)throw`Num of row objects != num of cols. Line num(s) = ${e}`;if(l){for(const[t,e]of l.entries()){if(!e.text)throw`Missing button.text in buttons, line #${t+1}`;if(!e.callback)throw`Missing button.callback in buttons, line #${t+1}`}}}const x=w||"select"+Math.random();const _=o.append("div").style("background-color","white");if(y){if(n.length>10)_.style("height",h);_.style("max-width",f);_.style("resize","both")}else{_.style("max-height",h).style("max-width",f);if(t.length>2)_.style("resize","horizontal")}_.attr("class","sjpp_show_scrollbar");const j=_.append("table").style("width","100%");if(m){j.attr("data-testid",m)}const C=j.append("thead").style("position","sticky").style("top","0").style("background-color","white").style("padding","5px");const A=C.append("tr");if(d)A.append("td").style("width","1vw");if(l||a){const t=A.append("td").attr("class","sjpp_table_header").style("width","1.5vw");if(!i){const e=t.append("input").attr("id","checkboxHeader").attr("type","checkbox").on("change",(()=>{const t=M.selectAll("input").nodes();M.selectAll("input").property("checked",e.node().checked);if(l)I();if(a)for(const[e,n]of t.entries())a(e,n)}));e.node().checked=b;if(!p)A.append("th").text("Check/Uncheck All").attr("class","sjpp_table_header sjpp_table_item")}}if(s&&s.length>0){A.append("th").text("Actions").attr("class","sjpp_table_item sjpp_table_header")}if(p)for(const e of t){const t=A.append("th").text(e.label).attr("class","sjpp_table_item sjpp_table_header");if(e.width)t.style("width",e.width)}const M=j.append("tbody");for(const[e,o]of n.entries()){let n;const p=M.append("tr").attr("class","sjpp_row_wrapper");if(r&&e%2==1)p.style("background-color","rgb(245,245,245)");if(l||a)p.on("click",(t=>{if(t.target!==n.node()){if(i)n.node().checked=true;else n.node().checked=!n.node().checked;n.dispatch("change")}}));if(d){p.append("td").text(e+1).style("text-align","center").style("width","1vw").style("font-size","0.8rem")}if(l||a){const t=p.append("td").style("width","1.5vw").style("float","center");if(c){t.style("display","none")}n=t.append("input").attr("type",i?"radio":"checkbox").attr("name",x).attr("value",e).property("checked",b||u.includes(e)).on("change",(()=>{if(l)I();else a(e,n.node());const t=n.property("checked");for(const e in k){p.style(e,t?k[e]:"")}}));const o=n.property("checked");for(const t in g){p.style(t,o?g[t]:"")}}if(s&&s.length>0){const t=p.append("td").attr("class","sjpp_table_item");for(const n of s){n.button=t.append("button").style("white-space","normal").text(n.text).on("click",(t=>n.callback(t,e)));if(n.dataTestId){n.button.attr("data-testid",n.dataTestId)}if("disabled"in n)n.button.node().disabled=n.disabled(e)}}for(const[n,s]of o.entries()){const o=p.append("td").attr("class","sjpp_table_item");s.__td=o;const l=t[n];if(l.editCallback&&s.value){o.on("click",(t=>{t.stopImmediatePropagation();const n=o.select("input").empty();if(!n)return;o.html("");const a=o.append("input").attr("value",s.value).on("change",(()=>{const t=a.node().value;s.value=t;o.text(s.value);l.editCallback(e,s)}));a.node().focus();a.node().select()}))}if(l.width)o.style("width",l.width);if(l.align)o.style("text-align",l.align);if(l.nowrap)o.style("white-space","nowrap");if(s.url){o.append("a").text(s.value||s.value==0?s.value:s.url).attr("href",s.url).attr("target","_blank")}else if(s.html)o.html(s.html);else if("value"in s){o.text(s.value);if(s.color)o.style("color",s.color)}else if(s.color){if(s.disabled){o.style("background-color",s.color)}else{const t=o.append("input").attr("type","color").attr("value",s.color).on("change",(()=>{const n=t.node().value;s.color=n;if(l.editCallback)l.editCallback(e,s)}))}}}}if(l){const t=o.append("div").insert("div").style("display","inline-block").style("float","right").style("padding-bottom","5px");for(const e of l){e.button=t.append("button").text(e.text).style("margin","10px 10px 0 0").on("click",(()=>{e.callback(R(),e.button.node())}));if(e.class)e.button.attr("class",e.class);e.button.node().disabled=u.length==0&&!b}I()}function I(){if(!l)return;const t=R();for(const e of l){e.button.node().disabled=t.length==0;if(e.onChange)e.onChange(t,e.button.node())}}function R(){const t=M.selectAll("input:checked");const e=[];if(!t.empty()){t.each(((t,n,o)=>{const s=o[n];e.push(Number.parseInt(s.value))}))}return e}const z={update(t){if(t.selectedRowStyle){k=t.selectedRowStyle;const n=M.selectAll("tr");for(const t in k){n.style(t,(function(){return e(this).select("td input").property("checked")?k[t]:""}))}}}};return z}function o(e,n){return t(this,void 0,void 0,(function*(){const t=`table.tsv`;let o="";for(const t of n){o+=`${t.label}\t`}o+="\n";for(const t of e){for(const e of t){let t="";if(e.value)t=e.value;else if(e.url)t=e.url;else if(e.color)t=e.color;o+=`${t}\t`}o+="\n"}const s="data:text/tsv;charset=utf-8,"+encodeURIComponent(o);const l=document.createElement("a");l.setAttribute("href",s);l.setAttribute("download",t);document.body.appendChild(l);l.click();l.remove()}))}export{o as d,n as r};
@@ -1 +0,0 @@
1
- import{V as t,C as e,H as s,W as n}from"./app-3d14cbe4.js";function i(t){const e=t;if(!e||typeof e!=="object")throw"bin schema must be an object";if(!("type"in e))e.type="regular-bin";if(e.type=="custom-bin"){if(!Array.isArray(e.lst))throw"binconfig.lst must be an array";if(!e.lst.length)throw"binconfig.lst must have entries";const t=e.lst[0];const n=e.lst[e.lst.length-1];for(const i of e.lst){if(!("startinclusive"in i)&&!("stopinclusive"in i)){throw"custom bin.startinclusive and/or bin.stopinclusive must be defined"}if(i==t){if("startunbounded"in i&&!i.startunbounded){throw`a custom first bin must not set bin.startunbounded to false`}i.startunbounded=true;if("start"in i){throw"a custom first bin must not set a bin.start value"}if("start_percentile"in i){throw"the first bin must not set a bin.start_percentile value"}if(!("stop"in i)){throw`a custom first bin must define a bin.stop value`}if(!s(i.stop)){throw`a custom first bin.stop value should be numeric`}}else if(i==n){if(!("start"in i)){throw`a custom last bin must define a bin.start value`}if(!s(i.start)){throw`a custom last bin.start must be numeric`}if("stopunbounded"in i&&!i.stopunbounded){throw"a custom last bin must not set bin.stopunbounded to false"}i.stopunbounded=true;if("stop"in i){throw"a custom last bin must not set a bin.stop value"}}else{if(!s(i.start))throw"bin.start must be numeric for a non-first bin";if(!s(i.stop))throw"bin.stop must be numeric for a non-last bin"}}}else if(e.type=="regular-bin"){if(!Number.isFinite(e.bin_size))throw"non-numeric bin_size";if(e.bin_size<=0)throw"bin_size must be greater than 0";if(!e.startinclusive&&!e.stopinclusive){e.startinclusive=1;e.stopinclusive=0}if(!e.first_bin)throw"first_bin{} missing";if(typeof e.first_bin!="object")throw"first_bin{} is not an object";if(!Object.keys(e.first_bin).length)throw"first_bin is an empty object";{const t=e.first_bin;t.startunbounded=true;if(t.stop_percentile){if(!Number.isInteger(t.stop_percentile))throw"first_bin.stop_percentile should be integer";if(t.stop_percentile<=0||t.stop_percentile>=100)throw"first_bin.stop_percentile out of bound (0-100)"}else if(!Number.isFinite(t.stop)){throw"first_bin.stop not a number when stop_percentile is not set"}}if(e.last_bin){const t=e.last_bin;if(t.start_percentile){if(!Number.isInteger(t.start_percentile))throw"last_bin.start_percentile should be integer";if(t.start_percentile<=0||t.start_percentile>=100)throw"last_bin.start_percentile out of bound (0-100)"}else if(!Number.isFinite(t.start)){throw"last_bin.start not a number when start_percentile is not set"}t.stopunbounded=true;if("stop"in t){throw"a regular last bin must not set a bin.stop value"}}}else{throw`invalid binconfig.type="${e.type}"`}}function o(t,n,o){const l=t;i(l);if(l.lst){const t=e(l.lst.length);for(const e of l.lst)e.color=t(e.label)}if(l.type=="custom-bin")return JSON.parse(JSON.stringify(l.lst));if(typeof n!="function")throw"summaryfxn required for modules/termdb.bins.js compute_bins()";const b=u(l);const c=n(b);if(!c||typeof c!=="object")throw"invalid returned value by summaryfxn";l.results={summary:c};if(!l.binLabelFormatter)l.binLabelFormatter=r(l);const f=Math.floor(c.min*100)/100;const p=Math.ceil(c.max*100)/100;const _=l.first_bin.startunbounded?f:l.first_bin.start_percentile?c["p"+l.first_bin.start_percentile]:l.first_bin.start;let d=p,m,h;if(l.last_bin){d=l.last_bin.stopunbounded?p:l.last_bin.stop_percentile?c["p"+l.last_bin.stop_percentile]:s(l.last_bin.stop)&&l.last_bin.stop<=c.max?l.last_bin.stop:p;m=s(l.last_bin.start_percentile)?c["p"+l.last_bin.start_percentile]:s(l.last_bin.start)?l.last_bin.start:undefined;h=l.last_bin.stopunbounded?null:l.last_bin.stop_percentile?c["p"+l.last_bin.stop_percentile]:s(l.last_bin.stop)?l.last_bin.stop:null}else if(l.lst){const t=l.lst[l.lst.length-1];m=t.start;h="stop"in t&&!t.stopunbounded?t.stop:p;d=h}else{m=p;h=p}const v=s(d);const g=s(m);const w=s(h);if(!v&&!g)return[];const y=[];let F={startunbounded:l.first_bin.startunbounded,start:l.first_bin.startunbounded?undefined:_,stop:s(l.first_bin.stop_percentile)?+c["p"+l.first_bin.stop_percentile]:s(l.first_bin.stop)?+l.first_bin.stop:_+l.bin_size,startinclusive:l.startinclusive,stopinclusive:l.stopinclusive};if(!s(F.stop))throw"the computed first_bin.stop is non-numeric"+F.stop;const U=100;while(v&&F.stop<=d||F.startunbounded&&!y.length||F.stopunbounded){y.push(F);if(F.stop>=d){F.stopunbounded=true;if(y.length>1){delete F.stop}}F.label=a(F,l,o);if(F.stopunbounded)break;const t=F.stop+l.bin_size;const e=F.stop;F={startinclusive:l.startinclusive,stopinclusive:l.stopinclusive,start:e,stop:w&&(e==m||t>h)?h:g&&t>m&&e!=m?m:t};if(F.stop>=d){F.stop=d;if(l.last_bin&&l.last_bin.stopunbounded)F.stopunbounded=1;if(l.last_bin&&l.last_bin.stopinclusive)F.stopinclusive=1}if(g&&F.start==m){if(l.last_bin&&l.last_bin.stopunbounded)F.stopunbounded=1}if(F.start>F.stop){if(g&&F.stop==m&&l.last_bin&&l.last_bin.stopunbounded)F.stopunbounded=true;else break}if(y.length+1>=U){l.error="max_num_bins_reached";break}}delete l.binLabelFormatter;if(y.length>1){delete y[y.length-1].stop}const L=e(y.length);for(const t of y)t.color=L(t.label);return y}function r(t){return"rounding"in t?n(t.rounding):t=>t}function a(e,s,n){const i=s;if(!i.binLabelFormatter)i.binLabelFormatter=r(i);if(!e.startunbounded&&!e.stopunbounded&&!("startinclusive"in e)&&!("stopinclusive"in e)){if(i.startinclusive)e.startinclusive=true;else if(i.stopinclusive)e.stopinclusive=true}const o=i.use_as=="bins"||e.start;const a=i.use_as=="bins"||e.stop;let l=0;if("label_offset"in i){i.label_offset_ignored="bin_size"in i&&i.bin_size<i.label_offset;if(!i.label_offset_ignored)l=i.label_offset}else if(i.bin_size===1&&i.termtype=="integer"){l=1}if(e.startunbounded){const s=e.stopinclusive?"≤":"<";const o=n?t(a,n.fromUnit,n.toUnit,n.scaleFactor,true):i.binLabelFormatter(a);return s+o}if(e.stopunbounded||o===a){const s=e.startinclusive?"≥":">";const r=n?t(o,n.fromUnit,n.toUnit,n.scaleFactor,true):i.binLabelFormatter(o);return s+r}if(l&&e.startinclusive&&!e.stopinclusive){if(Number.isInteger(i.bin_size)&&Math.abs(o-a)===l){return""+(n?t(o,n.fromUnit,n.toUnit,n.scaleFactor,true):i.binLabelFormatter(o))}else{const e=n?t(o,n.fromUnit,n.toUnit,n.scaleFactor,true):i.binLabelFormatter(o);const s=n?t(a-l,n.fromUnit,n.toUnit,n.scaleFactor,true):i.binLabelFormatter(a-l);return+e>=+s?e.toString():e+" to "+s}}else{const s=e.startinclusive?"":">";const r=e.stopinclusive?"":"<";const l=n?t(o,n.fromUnit,n.toUnit,n.scaleFactor,true):Number.isInteger(o)?o:i.binLabelFormatter(o);const u=n?t(a,n.fromUnit,n.toUnit,n.scaleFactor,true):Number.isInteger(a)?a:i.binLabelFormatter(a);if(+l>=+u){const t=e.startinclusive?"≥":">";return t+l}else{return s+l+" to "+r+u}}}function l(t,e){const s='<span style="font-family:Times;font-style:italic;">x</span>';let n;const i=a(t,e);if(t.startunbounded||t.stopunbounded){n=s+"&nbsp;"+i}else if(t.startinclusive){n=i.replace("to <","≤ "+s+" <")}else if(t.stopinclusive){n=i.replace(">","").replace("to","< "+s+" ≤")}return n}function u(t){const e=[];const n=t.first_bin;if(n&&s(n.start_percentile))e.push(n.start_percentile);if(n&&s(n.stop_percentile))e.push(n.stop_percentile);const i=t.last_bin;if(i&&s(i.start_percentile))e.push(i.start_percentile);if(i&&s(i.stop_percentile))e.push(i.stop_percentile);return e}export{l as a,o as c,a as g};
@@ -1 +0,0 @@
1
- import{a as e,b as t,_ as i}from"./tslib.es6-c3c2d88f.js";import{R as n,S as r,T as s,P as o,H as a,i as l,M as d,F as p,d as u}from"./app-3d14cbe4.js";import c from"path";const f=1;const h={continuous:"continuous",discrete:"discrete"};const m={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 y={[m.GENE_EXPRESSION]:n,[m.METABOLITE_INTENSITY]:r};const g={[m.CATEGORICAL]:s.DICTIONARY_VARIABLES,[m.CONDITION]:s.DICTIONARY_VARIABLES,[m.FLOAT]:s.DICTIONARY_VARIABLES,[m.INTEGER]:s.DICTIONARY_VARIABLES,[m.SAMPLELST]:s.DICTIONARY_VARIABLES,[m.SURVIVAL]:s.DICTIONARY_VARIABLES,[m.GENE_VARIANT]:s.MUTATION_CNV_FUSION,[m.SNP]:s.SNP,[m.SNP_LIST]:s.SNP_LIST,[m.SNP_LOCUS]:s.SNP_LOCUS,[m.GENE_EXPRESSION]:s.GENE_EXPRESSION,[m.METABOLITE_INTENSITY]:s.METABOLITE_INTENSITY};const v=new Set([m.SNP,m.SNP_LIST,m.SNP_LOCUS,m.GENE_EXPRESSION,m.GENE_VARIANT,m.METABOLITE_INTENSITY,m.SINGLECELL_GENE_EXPRESSION,m.SINGLECELL_CELLTYPE]);const b=new Set([m.INTEGER,m.FLOAT,m.GENE_EXPRESSION,m.METABOLITE_INTENSITY,m.SINGLECELL_GENE_EXPRESSION]);const w=new Set([m.CATEGORICAL,m.SNP]);function q(e){if(!e)return false;return b.has(e.type)}function T(e){if(!e)return false;return w.has(e.type)}function x(e){return!E(e)}function E(e){if(!e)throw new Error("Type is not defined");return v.has(e)}function S(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(x(e.type)&&x(t.type)&&e.type!=m.SAMPLELST)return e.id===t.id;switch(e.type){case m.GENE_EXPRESSION:return e.gene==t.gene;case m.METABOLITE_INTENSITY:return e.name==t.name;case m.GENE_VARIANT:return e.gene==t.gene||e.chr==t.chr&&e.start==t.start&&e.stop==t.stop;default:return false}}var _=function(e,t){var i=[];for(var n=0;n<e.length;n++){var r=t(e[n],n);if(N(r))i.push.apply(i,r);else i.push(r)}return i};var N=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};var A=I;function I(e,t,i){if(e instanceof RegExp)e=C(e,i);if(t instanceof RegExp)t=C(t,i);var n=O(e,t,i);return n&&{start:n[0],end:n[1],pre:i.slice(0,n[0]),body:i.slice(n[0]+e.length,n[1]),post:i.slice(n[1]+t.length)}}function C(e,t){var i=t.match(e);return i?i[0]:null}I.range=O;function O(e,t,i){var n,r,s,o,a;var l=i.indexOf(e);var d=i.indexOf(t,l+1);var p=l;if(l>=0&&d>0){if(e===t){return[l,d]}n=[];s=i.length;while(p>=0&&!a){if(p==l){n.push(p);l=i.indexOf(e,p+1)}else if(n.length==1){a=[n.pop(),d]}else{r=n.pop();if(r<s){s=r;o=d}d=i.indexOf(t,p+1)}p=l<d&&l>=0?l:d}if(n.length){a=[s,o]}}return a}var j=V;var k="\0SLASH"+Math.random()+"\0";var P="\0OPEN"+Math.random()+"\0";var $="\0CLOSE"+Math.random()+"\0";var M="\0COMMA"+Math.random()+"\0";var L="\0PERIOD"+Math.random()+"\0";function R(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function W(e){return e.split("\\\\").join(k).split("\\{").join(P).split("\\}").join($).split("\\,").join(M).split("\\.").join(L)}function B(e){return e.split(k).join("\\").split(P).join("{").split($).join("}").split(M).join(",").split(L).join(".")}function G(e){if(!e)return[""];var t=[];var i=A("{","}",e);if(!i)return e.split(",");var n=i.pre;var r=i.body;var s=i.post;var o=n.split(",");o[o.length-1]+="{"+r+"}";var a=G(s);if(s.length){o[o.length-1]+=a.shift();o.push.apply(o,a)}t.push.apply(t,o);return t}function V(e){if(!e)return[];if(e.substr(0,2)==="{}"){e="\\{\\}"+e.substr(2)}return H(W(e),true).map(B)}function D(e){return"{"+e+"}"}function Q(e){return/^-?0\d/.test(e)}function Y(e,t){return e<=t}function U(e,t){return e>=t}function H(e,t){var i=[];var n=A("{","}",e);if(!n||/\$$/.test(n.pre))return[e];var r=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(n.body);var s=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(n.body);var o=r||s;var a=n.body.indexOf(",")>=0;if(!o&&!a){if(n.post.match(/,.*\}/)){e=n.pre+"{"+n.body+$+n.post;return H(e)}return[e]}var l;if(o){l=n.body.split(/\.\./)}else{l=G(n.body);if(l.length===1){l=H(l[0],false).map(D);if(l.length===1){var d=n.post.length?H(n.post,false):[""];return d.map((function(e){return n.pre+l[0]+e}))}}}var p=n.pre;var d=n.post.length?H(n.post,false):[""];var u;if(o){var c=R(l[0]);var f=R(l[1]);var h=Math.max(l[0].length,l[1].length);var m=l.length==3?Math.abs(R(l[2])):1;var y=Y;var g=f<c;if(g){m*=-1;y=U}var v=l.some(Q);u=[];for(var b=c;y(b,f);b+=m){var w;if(s){w=String.fromCharCode(b);if(w==="\\")w=""}else{w=String(b);if(v){var q=h-w.length;if(q>0){var T=new Array(q+1).join("0");if(b<0)w="-"+T+w.slice(1);else w=T+w}}}u.push(w)}}else{u=_(l,(function(e){return H(e,false)}))}for(var x=0;x<u.length;x++){for(var E=0;E<d.length;E++){var S=p+u[x]+d[E];if(!t||o||S)i.push(S)}}return i}var X=ae;ae.Minimatch=le;var F=function(){try{return c}catch(e){}}()||{sep:"/"};ae.sep=F.sep;var z=ae.GLOBSTAR=le.GLOBSTAR={};var J={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}};var Z="[^/]";var K=Z+"*?";var ee="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";var te="(?:(?!(?:\\/|^)\\.).)*?";var ie=ne("().*{}+?[]^$\\!");function ne(e){return e.split("").reduce((function(e,t){e[t]=true;return e}),{})}var re=/\/+/;ae.filter=se;function se(e,t){t=t||{};return function(i,n,r){return ae(i,e,t)}}function oe(e,t){t=t||{};var i={};Object.keys(e).forEach((function(t){i[t]=e[t]}));Object.keys(t).forEach((function(e){i[e]=t[e]}));return i}ae.defaults=function(e){if(!e||typeof e!=="object"||!Object.keys(e).length){return ae}var t=ae;var i=function i(n,r,s){return t(n,r,oe(e,s))};i.Minimatch=function i(n,r){return new t.Minimatch(n,oe(e,r))};i.Minimatch.defaults=function i(n){return t.defaults(oe(e,n)).Minimatch};i.filter=function i(n,r){return t.filter(n,oe(e,r))};i.defaults=function i(n){return t.defaults(oe(e,n))};i.makeRe=function i(n,r){return t.makeRe(n,oe(e,r))};i.braceExpand=function i(n,r){return t.braceExpand(n,oe(e,r))};i.match=function(i,n,r){return t.match(i,n,oe(e,r))};return i};le.defaults=function(e){return ae.defaults(e).Minimatch};function ae(e,t,i){fe(t);if(!i)i={};if(!i.nocomment&&t.charAt(0)==="#"){return false}return new le(t,i).match(e)}function le(e,t){if(!(this instanceof le)){return new le(e,t)}fe(e);if(!t)t={};e=e.trim();if(!t.allowWindowsEscape&&F.sep!=="/"){e=e.split(F.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()}le.prototype.debug=function(){};le.prototype.make=de;function de(){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 i=this.globSet=this.braceExpand();if(t.debug)this.debug=function e(){console.error.apply(console,arguments)};this.debug(this.pattern,i);i=this.globParts=i.map((function(e){return e.split(re)}));this.debug(this.pattern,i);i=i.map((function(e,t,i){return e.map(this.parse,this)}),this);this.debug(this.pattern,i);i=i.filter((function(e){return e.indexOf(false)===-1}));this.debug(this.pattern,i);this.set=i}le.prototype.parseNegate=pe;function pe(){var e=this.pattern;var t=false;var i=this.options;var n=0;if(i.nonegate)return;for(var r=0,s=e.length;r<s&&e.charAt(r)==="!";r++){t=!t;n++}if(n)this.pattern=e.substr(n);this.negate=t}ae.braceExpand=function(e,t){return ue(e,t)};le.prototype.braceExpand=ue;function ue(e,t){if(!t){if(this instanceof le){t=this.options}else{t={}}}e=typeof e==="undefined"?this.pattern:e;fe(e);if(t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)){return[e]}return j(e)}var ce=1024*64;var fe=function(e){if(typeof e!=="string"){throw new TypeError("invalid pattern")}if(e.length>ce){throw new TypeError("pattern is too long")}};le.prototype.parse=me;var he={};function me(e,t){fe(e);var i=this.options;if(e==="**"){if(!i.noglobstar)return z;else e="*"}if(e==="")return"";var n="";var r=!!i.nocase;var s=false;var o=[];var a=[];var l;var d=false;var p=-1;var u=-1;var c=e.charAt(0)==="."?"":i.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)";var f=this;function h(){if(l){switch(l){case"*":n+=K;r=true;break;case"?":n+=Z;r=true;break;default:n+="\\"+l;break}f.debug("clearStateChar %j %j",l,n);l=false}}for(var m=0,y=e.length,g;m<y&&(g=e.charAt(m));m++){this.debug("%s\t%s %s %j",e,m,n,g);if(s&&ie[g]){n+="\\"+g;s=false;continue}switch(g){case"/":{return false}case"\\":h();s=true;continue;case"?":case"*":case"+":case"@":case"!":this.debug("%s\t%s %s %j <-- stateChar",e,m,n,g);if(d){this.debug(" in class");if(g==="!"&&m===u+1)g="^";n+=g;continue}f.debug("call clearStateChar %j",l);h();l=g;if(i.noext)h();continue;case"(":if(d){n+="(";continue}if(!l){n+="\\(";continue}o.push({type:l,start:m-1,reStart:n.length,open:J[l].open,close:J[l].close});n+=l==="!"?"(?:(?!(?:":"(?:";this.debug("plType %j %j",l,n);l=false;continue;case")":if(d||!o.length){n+="\\)";continue}h();r=true;var v=o.pop();n+=v.close;if(v.type==="!"){a.push(v)}v.reEnd=n.length;continue;case"|":if(d||!o.length||s){n+="\\|";s=false;continue}h();n+="|";continue;case"[":h();if(d){n+="\\"+g;continue}d=true;u=m;p=n.length;n+=g;continue;case"]":if(m===u+1||!d){n+="\\"+g;s=false;continue}var b=e.substring(u+1,m);try{RegExp("["+b+"]")}catch(e){var w=this.parse(b,he);n=n.substr(0,p)+"\\["+w[0]+"\\]";r=r||w[1];d=false;continue}r=true;d=false;n+=g;continue;default:h();if(s){s=false}else if(ie[g]&&!(g==="^"&&d)){n+="\\"}n+=g}}if(d){b=e.substr(u+1);w=this.parse(b,he);n=n.substr(0,p)+"\\["+w[0];r=r||w[1]}for(v=o.pop();v;v=o.pop()){var q=n.slice(v.reStart+v.open.length);this.debug("setting tail",n,v);q=q.replace(/((?:\\{2}){0,64})(\\?)\|/g,(function(e,t,i){if(!i){i="\\"}return t+t+i+"|"}));this.debug("tail=%j\n %s",q,q,v,n);var T=v.type==="*"?K:v.type==="?"?Z:"\\"+v.type;r=true;n=n.slice(0,v.reStart)+T+"\\("+q}h();if(s){n+="\\\\"}var x=false;switch(n.charAt(0)){case"[":case".":case"(":x=true}for(var E=a.length-1;E>-1;E--){var S=a[E];var _=n.slice(0,S.reStart);var N=n.slice(S.reStart,S.reEnd-8);var A=n.slice(S.reEnd-8,S.reEnd);var I=n.slice(S.reEnd);A+=I;var C=_.split("(").length-1;var O=I;for(m=0;m<C;m++){O=O.replace(/\)[+*?]?/,"")}I=O;var j="";if(I===""&&t!==he){j="$"}var k=_+N+I+j+A;n=k}if(n!==""&&r){n="(?=.)"+n}if(x){n=c+n}if(t===he){return[n,r]}if(!r){return ge(e)}var P=i.nocase?"i":"";try{var $=new RegExp("^"+n+"$",P)}catch(e){return new RegExp("$.")}$._glob=e;$._src=n;return $}ae.makeRe=function(e,t){return new le(e,t||{}).makeRe()};le.prototype.makeRe=ye;function ye(){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 i=t.noglobstar?K:t.dot?ee:te;var n=t.nocase?"i":"";var r=e.map((function(e){return e.map((function(e){return e===z?i:typeof e==="string"?ve(e):e._src})).join("\\/")})).join("|");r="^(?:"+r+")$";if(this.negate)r="^(?!"+r+").*$";try{this.regexp=new RegExp(r,n)}catch(e){this.regexp=false}return this.regexp}ae.match=function(e,t,i){i=i||{};var n=new le(t,i);e=e.filter((function(e){return n.match(e)}));if(n.options.nonull&&!e.length){e.push(t)}return e};le.prototype.match=function e(t,i){if(typeof i==="undefined")i=this.partial;this.debug("match",t,this.pattern);if(this.comment)return false;if(this.empty)return t==="";if(t==="/"&&i)return true;var n=this.options;if(F.sep!=="/"){t=t.split(F.sep).join("/")}t=t.split(re);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(n.matchBase&&a.length===1){l=[s]}var d=this.matchOne(l,a,i);if(d){if(n.flipNegate)return true;return!this.negate}}if(n.flipNegate)return false;return this.negate};le.prototype.matchOne=function(e,t,i){var n=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 d=e[r];this.debug(t,l,d);if(l===false)return false;if(l===z){this.debug("GLOBSTAR",[t,l,d]);var p=r;var u=s+1;if(u===a){this.debug("** at the end");for(;r<o;r++){if(e[r]==="."||e[r]===".."||!n.dot&&e[r].charAt(0)===".")return false}return true}while(p<o){var c=e[p];this.debug("\nglobstar while",e,p,t,u,c);if(this.matchOne(e.slice(p),t.slice(u),i)){this.debug("globstar found match!",p,o,c);return true}else{if(c==="."||c===".."||!n.dot&&c.charAt(0)==="."){this.debug("dot detected!",e,p,t,u);break}this.debug("globstar swallow a segment, and continue");p++}}if(i){this.debug("\n>>> no match, partial?",e,p,t,u);if(p===o)return true}return false}var f;if(typeof l==="string"){f=d===l;this.debug("string match",l,d,f)}else{f=d.match(l);this.debug("pattern match",l,d,f)}if(!f)return false}if(r===o&&s===a){return true}else if(r===o){return i}else if(s===a){return r===o-1&&e[r]===""}throw new Error("wtf?")};function ge(e){return e.replace(/\\(.)/g,"$1")}function ve(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}class be{constructor(e,t){var i;this.isAtomic=true;this.type=e.type;this.isAtomic=true;if(e.$id)this.$id=e.$id;if((i=t.addons)===null||i===void 0?void 0:i[this.type]){Object.defineProperties(this,t.addons[this.type])}}static setHiddenValues(e,t){if(e.hiddenValues)return;e.hiddenValues={};if(t.values){for(const i in t.values){if(t.values[i].uncomputable)e.hiddenValues[i]=1}}}render(e){console.log(e);throw`should implement this method in subclass code, as needed`}}var we,qe,Te,xe,Ee,Se;class _e extends be{constructor(e,t){super(e,t);this.term=e.term}static fill(e,t={}){var i;if(!e.term)throw`missing tw.term, must already be filled in`;if(e.term.type!="categorical")throw`incorrect term.type='${(i=e.term)===null||i===void 0?void 0:i.type}', expecting 'categorical'`;if(t.defaultQ!=null){t.defaultQ.isAtomic=true;o(e.q,t.defaultQ)}if(!e.q.mode)e.q.mode="discrete";if(!e.q)e.q={type:"values",isAtomic:true};if(!e.type)e.type=!e.q.type||e.q.type=="values"?"CatTWValues":e.q.type=="predefined-groupset"?"CatTWPredefinedGS":e.q.type=="custom-groupset"?"CatTWCustomGS":undefined;switch(e.type){case"CatTWValues":return Ne.fill(e);case"CatTWPredefinedGS":return Ae.fill(e);case"CatTWCustomGS":return Ie.fill(e);default:throw`tw.type='${e.type} (q.mode:q.type=${e.q.mode}:${e.q.type}' is not supported by CategoricalBase.fill()`}}}class Ne extends _e{constructor(t,i={}){super(t,i);we.set(this,void 0);qe.set(this,void 0);this.q=t.q;e(this,we,t,"f");e(this,qe,i,"f")}getTw(){return t(this,we,"f")}static fill(e){if(!e.type)e.type="CatTWValues";else if(e.type!="CatTWValues")throw`expecting tw.type='CatTWValues', got '${e.type}'`;if(e.term.type!="categorical")throw`expecting tw.term.type='categorical', got '${e.term.type}'`;const{term:t,q:i}=e;if(!i.type)i.type="values";else if(i.type!="values")throw`expecting tw.q.type='values', got ${e.q.type}`;if(!t.values)t.values={};if(i.mode=="binary"){if(Object.keys(e.term.values).length!=2)throw"term.values must have exactly two keys"}vt(i,t);return e}}we=new WeakMap,qe=new WeakMap;class Ae extends _e{constructor(i,n={}){super(i,n);Te.set(this,void 0);xe.set(this,void 0);this.q=i.q;e(this,Te,i,"f");Object.defineProperty(this,"groupset",{value:this.term.groupsetting[t(this,Te,"f").q.predefined_groupset_idx]});e(this,xe,n,"f")}getTw(){return t(this,Te,"f")}static fill(e){var t,i;if(!e.type)e.type="CatTWPredefinedGS";else if(e.type!="CatTWPredefinedGS")throw`expecting tw.type='CatTWPredefinedGS', got '${e.type}'`;if(e.term.type!="categorical")throw`expecting tw.term.type='categorical', got '${e.term.type}'`;if(e.q.type!="predefined-groupset")throw`expecting tw.q.type='predefined-groupset', got '${e.q.type}'`;const{term:n,q:r}=e;const s=r.predefined_groupset_idx;if(s!==undefined&&!Number.isInteger(s))throw`missing or invalid tw.q.predefined_groupset_idx='${s}'`;r.predefined_groupset_idx=s||0;const o=e.term.groupsetting;if(!o)throw"no term.groupsetting";if(!((t=o.lst)===null||t===void 0?void 0:t.length))throw"term.groupsetting.lst is empty";const a=(i=o.lst)===null||i===void 0?void 0:i[r.predefined_groupset_idx];if(!a)throw`no groupset entry for groupsetting.lst?.[predefined_groupset_idx=${s}]`;if(r.mode=="binary"){if(a.groups.length!=2)throw"there must be exactly two groups"}vt(r,n);return e}}Te=new WeakMap,xe=new WeakMap;class Ie extends _e{constructor(t,i={}){super(t,i);Ee.set(this,void 0);Se.set(this,void 0);this.q=t.q;Object.defineProperty(this,"groupset",{value:this.q.customset});e(this,Ee,t,"f");e(this,Se,i,"f")}getTw(){return t(this,Ee,"f")}static fill(e){if(!e.type)e.type="CatTWCustomGS";else if(e.type!="CatTWCustomGS")throw`expecting tw.type='CatTWCustomGS', got '${e.type}'`;if(e.term.type!="categorical")throw`expecting tw.term.type='categorical', got '${e.term.type}'`;if(e.q.type!="custom-groupset")throw`expecting tw.q.type='custom-groupset', got '${e.q.type}'`;const{term:t,q:i}=e;if(!i.customset)throw`missing tw.q.customset`;if(i.mode=="binary"){if(i.customset.groups.length!=2)throw"there must be exactly two groups"}vt(i,t);return e}}Ee=new WeakMap,Se=new WeakMap;function Ce(e,t){const i=Number(e);if(Number.isInteger(i))return i;if(Math.abs(i)<1)return Number(i.toPrecision(t));return Number(i.toFixed(t))}function Oe(e){const t=je(e);let i=Math.abs(e)>1?2:t>0?t+1:2;return Ce(e,i)}function je(e){const t=e.toString();const i=t.indexOf(".");if(i===-1||i===t.length-1){return 0}let n=0;for(let e=i+1;e<t.length;e++){if(t[e]==="0"){n++}else if(t[e]>="1"&&t[e]<="9"){break}}return n}var ke,Pe,$e,Me,Le,Re,We,Be;class Ge extends be{constructor(e,t){super(e,t);this.term=e.term}static fill(e,t={}){return i(this,void 0,void 0,(function*(){if(!e.term)throw`missing tw.term, must already be filled in`;if(!Ge.termTypes.has(e.term.type))throw`non-numeric term.type='${e.term.type}'`;if(t.defaultQ){t.defaultQ.isAtomic=true;e.q.isAtomic=true;if(t.defaultQ.preferredBins=="median"){if(!t.defaultQ.type)t.defaultQ.type="custom-bin";else if(t.defaultQ.type!="custom-bin")throw".type must be custom-bin when .preferredBins=median"}o(e.q,t.defaultQ)}if(!e.q.mode)e.q.mode="discrete";if(!e.q.type){if(e.q.mode=="binary")e.q.type="custom-bin";else if(e.q.mode=="discrete")He(e)}e.type=e.q.type=="regular-bin"?"NumTWRegularBin":e.q.type=="custom-bin"||e.q.mode=="binary"?"NumTWCustomBin":e.q.mode=="continuous"?"NumTWCont":e.q.mode=="spline"?"NumTWSpline":e.type;switch(e.type){case"NumTWRegularBin":return yield Ve.fill(e);case"NumTWCustomBin":return yield De.fill(e,t);case"NumTWCont":return yield Qe.fill(e);case"NumTWSpline":return yield Ye.fill(e);default:throw`tw.type='${e.type} (q.mode:q.type=${e.q.mode}:${e.q.type}' is not supported by NumericBase.fill()`}}))}}Ge.termTypes=new Set(["integer","float","geneExpression","metaboliteIntensity"]);class Ve extends Ge{constructor(t,i={}){super(t,i);ke.set(this,void 0);Pe.set(this,void 0);this.q=t.q;e(this,ke,t,"f");e(this,Pe,i,"f")}getTw(){return t(this,ke,"f")}static fill(e){var t;return i(this,void 0,void 0,(function*(){if(!e.type)e.type="NumTWRegularBin";else if(e.type!="NumTWRegularBin")throw`expecting tw.type='NumTWRegularBin', got '${e.type}'`;if(!e.q.mode)e.q.mode="discrete";else if(e.q.mode!="discrete"&&e.q.mode!="binary"&&e.q.mode!="continuous")throw`expecting tw.q.mode='discrete'|'binary'|'continous', got '${e.q.mode}'`;if(e.q.type&&e.q.type!="regular-bin")throw`expecting tw.q.type='regular-bin', got '${e.q.type}'`;if(!e.q.first_bin||!a(e.q.bin_size))He(e);if(!a(e.q.bin_size))throw`tw.q.bin_size=${e.q.bin_size} is not numeric`;if(!e.q.first_bin)throw`missing tw.q.first_bin`;if(!a((t=e.q.first_bin)===null||t===void 0?void 0:t.stop))throw`tw.q.first_bin.stop is not numeric`;be.setHiddenValues(e.q,e.term);return e}))}}ke=new WeakMap,Pe=new WeakMap;class De extends Ge{constructor(t,i={}){super(t,i);$e.set(this,void 0);Me.set(this,void 0);this.q=t.q;e(this,$e,t,"f");e(this,Me,i,"f")}getTw(){return t(this,$e,"f")}static fill(e,t={}){return i(this,void 0,void 0,(function*(){if(!e.type)e.type="NumTWCustomBin";else if(e.type!="NumTWCustomBin")throw`expecting tw.type='NumTWCustomBin', got '${e.type}'`;if(!e.q.mode)e.q.mode="discrete";else if(e.q.mode!="discrete"&&e.q.mode!="binary"&&e.q.mode!="continuous")throw`expecting tw.q.mode='discrete'|binary|continuous', got '${e.q.mode}'`;if(e.q.mode=="binary"&&!e.q.preferredBins)e.q.preferredBins="median";if(e.q.preferredBins=="median"){const i=yield t.vocabApi.getPercentile(e.term.id,[50]);if(!i.values)throw".values[] missing from vocab.getPercentile()";const n=Oe(i.values[0]);if(!a(n))throw"median value not a number";e.q.type="custom-bin";e.q.lst=[{startunbounded:true,stop:n,stopinclusive:false,label:"<"+n},{start:n,startinclusive:true,stopunbounded:true,label:"≥"+n}];delete e.q.preferredBins}else if(e.q.type!="custom-bin")throw`expecting tw.q.type='custom-bin', got '${e.q.type}'`;if(!Array.isArray(e.q.lst))He(e);if(!e.q.lst||!e.q.lst.length)throw`missing or empty q.lst[] for custom-bin`;if(e.q.mode=="binary"&&e.q.lst.length!=2)throw`numeric q.mode='binary' requires exactly 2 bins`;be.setHiddenValues(e.q,e.term);e.type="NumTWCustomBin";return e}))}}$e=new WeakMap,Me=new WeakMap;class Qe extends Ge{constructor(t,i={}){super(t,i);Le.set(this,void 0);Re.set(this,void 0);this.q=t.q;e(this,Le,t,"f");e(this,Re,i,"f")}getTw(){return t(this,Le,"f")}static fill(e){return i(this,void 0,void 0,(function*(){if(!e.type)e.type="NumTWCont";else if(e.type!="NumTWCont")throw`expecting tw.type='NumTWCont', got '${e.type}'`;if(e.q.mode!="continuous")throw`tw.q.mode='${e.q.mode}', expecting 'continuous'`;be.setHiddenValues(e.q,e.term);e.type="NumTWCont";return e}))}}Le=new WeakMap,Re=new WeakMap;class Ye extends Ge{constructor(t,i={}){super(t,i);We.set(this,void 0);Be.set(this,void 0);this.q=t.q;e(this,We,t,"f");e(this,Be,i,"f")}static fill(e){return i(this,void 0,void 0,(function*(){if(!e.type)e.type="NumTWSpline";else if(e.type!="NumTWSpline")throw`expecting tw.type='NumTWSpline', got '${e.type}'`;if(e.q.mode!="spline")throw`tw.q.mode='${e.q.mode}', expecting 'spline'`;if(!e.q.knots)throw`missing tw.q.knots`;if(!e.q.knots.length)throw`empty tw.q.knots[]`;be.setHiddenValues(e.q,e.term);e.type="NumTWSpline";return e}))}}We=new WeakMap,Be=new WeakMap;const Ue=new Set(["default","less","median"]);function He(e){if(!e.term.bins)throw`missing tw.term.bins`;const t=e.q.preferredBins||"default";if(!Ue.has(t))throw`invalid preferredBins='${t}'`;if(t!="median"){if(!Object.keys(e.term.bins).includes(t));const i=e.term.bins[t];if(e.q.type&&e.q.type!=i.type)throw`mismatched tw.q.type and term.bins[preferredBins].type`;const n=Object.keys(e.q);for(const[t,r]of Object.entries(i)){if(!n.includes(t))e.q[t]=r}delete e.q.preferredBins}}class Xe{constructor(e){this.opts=e}static init(e,t={}){switch(e.type){case"CatTWValues":return new Ne(e,t);case"CatTWPredefinedGS":return new Ae(e,t);case"CatTWCustomGS":return new Ie(e,t);case"NumTWRegularBin":return new Ve(e,t);case"NumTWCustomBin":return new De(e,t);case"NumTWCont":return new Qe(e,t);default:throw`unable to init(tw)`}}static initRaw(e,t={}){return i(this,void 0,void 0,(function*(){const i=yield Xe.fill(e,t);return Xe.init(i,t)}))}static fill(e,t={}){var n,r;return i(this,void 0,void 0,(function*(){yield Xe.preprocess(e,t===null||t===void 0?void 0:t.vocabApi);const i=e.term.type=="float"||e.term.type=="integer"?"numeric":e.term.type;t.defaultQ=((n=t.defaultQByTsHandler)===null||n===void 0?void 0:n[i])||null;switch(e.term.type){case"categorical":{return yield _e.fill(e,t)}case"integer":case"float":return yield Ge.fill(e,t);default:throw`unrecognized tw.term?.type='${(r=e.term)===null||r===void 0?void 0:r.type}'`}}))}static preprocess(e,t){return i(this,void 0,void 0,(function*(){const i=Object.keys(e);if(!i.length)throw`empty tw object`;if(e.id&&!e.term){yield ct([e],t);delete e.id}if(!e.q)e.q={};e.q.isAtomic=true;Xe.reshapeLegacyTw(e)}))}static reshapeLegacyTw(e){if(Object.keys(e.q).includes("groupsetting")){if(!e.q.groupsetting.inuse){e.q.type="values"}else 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"}delete e.q["groupsetting"]}}}function Fe(e){switch(e){case"./handlers/categorical.ts":return import("./categorical-82722704.js");case"./handlers/condition.ts":return import("./condition-f68cc8d1.js");case"./handlers/density.ts":return import("./density-e0aff1d0.js");case"./handlers/geneExpression.ts":return import("./geneExpression-2422f66b.js");case"./handlers/geneVariant.ts":return import("./geneVariant-18f9591a.js");case"./handlers/groupsetting.ts":return import("./groupsetting-53dfd5e5.js");case"./handlers/metaboliteIntensity.ts":return import("./metaboliteIntensity-4d905d93.js");case"./handlers/numeric.binary.ts":return import("./numeric.binary-88bf9e0d.js");case"./handlers/numeric.continuous.ts":return import("./numeric.continuous-d27197cf.js");case"./handlers/numeric.discrete.ts":return import("./numeric.discrete-b826f33b.js");case"./handlers/numeric.spline.ts":return import("./numeric.spline-b3968b77.js");case"./handlers/numeric.toggle.ts":return import("./numeric.toggle-ab8b79be.js");case"./handlers/numeric.ts":return import("./numeric-1d0318e8.js");case"./handlers/samplelst.ts":return import("./samplelst-9d9ff205.js");case"./handlers/singleCellCellType.ts":return import("./singleCellCellType-a2ce9bfa.js");case"./handlers/singleCellGeneExpression.ts":return import("./singleCellGeneExpression-a2b45c7a.js");case"./handlers/snp.ts":return import("./snp-6e312b4c.js");case"./handlers/snplocus.ts":return import("./snplocus-0653ba82.js");case"./handlers/snplst.sampleSum.ts":return import("./snplst.sampleSum-e47d05f0.js");case"./handlers/snplst.ts":return import("./snplst-6865d7c7.js");case"./handlers/survival.ts":return import("./survival-10dd3d28.js");default:return new Promise((function(t,i){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(i.bind(null,new Error("Unknown variable dynamic import: "+e)))}))}}function ze(e){switch(e){case"./handlers/categorical.ts":return import("./categorical-82722704.js");case"./handlers/condition.ts":return import("./condition-f68cc8d1.js");case"./handlers/density.ts":return import("./density-e0aff1d0.js");case"./handlers/geneExpression.ts":return import("./geneExpression-2422f66b.js");case"./handlers/geneVariant.ts":return import("./geneVariant-18f9591a.js");case"./handlers/groupsetting.ts":return import("./groupsetting-53dfd5e5.js");case"./handlers/metaboliteIntensity.ts":return import("./metaboliteIntensity-4d905d93.js");case"./handlers/numeric.binary.ts":return import("./numeric.binary-88bf9e0d.js");case"./handlers/numeric.continuous.ts":return import("./numeric.continuous-d27197cf.js");case"./handlers/numeric.discrete.ts":return import("./numeric.discrete-b826f33b.js");case"./handlers/numeric.spline.ts":return import("./numeric.spline-b3968b77.js");case"./handlers/numeric.toggle.ts":return import("./numeric.toggle-ab8b79be.js");case"./handlers/numeric.ts":return import("./numeric-1d0318e8.js");case"./handlers/samplelst.ts":return import("./samplelst-9d9ff205.js");case"./handlers/singleCellCellType.ts":return import("./singleCellCellType-a2ce9bfa.js");case"./handlers/singleCellGeneExpression.ts":return import("./singleCellGeneExpression-a2b45c7a.js");case"./handlers/snp.ts":return import("./snp-6e312b4c.js");case"./handlers/snplocus.ts":return import("./snplocus-0653ba82.js");case"./handlers/snplst.sampleSum.ts":return import("./snplst.sampleSum-e47d05f0.js");case"./handlers/snplst.ts":return import("./snplst-6865d7c7.js");case"./handlers/survival.ts":return import("./survival-10dd3d28.js");default:return new Promise((function(t,i){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(i.bind(null,new Error("Unknown variable dynamic import: "+e)))}))}}const Je=`_ts_${(+new Date).toString().slice(-8)}`;let Ze=0;function Ke(e){return i(this,void 0,void 0,(function*(){if(!e)return`${Ze++}${Je}`;delete e.$id;return yield tt(JSON.stringify(e))}))}const et=new TextEncoder;function tt(e){return i(this,void 0,void 0,(function*(){const t=et.encode(e);const i=yield crypto.subtle.digest("SHA-1",t);const n=Array.from(new Uint8Array(i));const r=n.map((e=>e.toString(16).padStart(2,"0"))).join("");return it(r).replace("=","-")}))}function it(e){return btoa([...e].reduce(((t,i,n)=>t+=!(n-1&1)?String.fromCharCode(parseInt(e.substring(n-1,n+1),16)):""),""))}const nt={menuOptions:"edit",menuLayout:"vertical"};class rt{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 d({padding:"0px",parent_menu:this.opts.holder&&this.opts.holder.node()&&this.opts.holder.node().closest(".sja_menu_div")})};this.dom.tip2=new d({padding:"0px",parent_menu:this.dom.tip.d.node()});at(this);ot(this);this.initUI();const t=dt(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,i;const n=this.term?{term:this.term,q:this.q,isAtomic:true}:{};if("$id"in this)n.$id=this.$id;if(((t=n.q)===null||t===void 0?void 0:t.reuseId)&&n.q.reuseId===((i=this.data.q)===null||i===void 0?void 0:i.reuseId)){if(!p(n.q,this.data.q)){delete n.q.reuseId;delete n.q.name}}const r=e?JSON.parse(JSON.stringify(e)):{};if(this.opts.callback)this.opts.callback(e?o(JSON.stringify(n),r):n)}validateOpts(e){const t=Object.assign({},nt,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(e={}){return i(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(e);this.data=e;this.term=e.term;this.q=JSON.parse(JSON.stringify(e.q));if("$id"in e)this.$id=e.$id;if("disable_terms"in e)this.disable_terms=e.disable_terms;if("filter"in e)this.filter=e.filter;if("activeCohort"in e)this.activeCohort=e.activeCohort;if("sampleCounts"in e)this.sampleCounts=e.sampleCounts;if("menuOptions"in e)this.opts.menuOptions=e.menuOptions;yield this.setHandler(this.term?this.term.type:null);if(e.term&&this.handler&&this.handler.validateQ)this.handler.validateQ(e);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(x(e.term.type)){if(!e.term.id&&e.term.type!=m.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=nt.menuOptions;if(e.menuOptions=="all")e.menuOptions="*";for(const t of["edit","replace","remove"]){if(X(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(e){return i(this,void 0,void 0,(function*(){if(!e){this.handler=this.handlerByType.default;return}const t=e=="integer"||e=="float"?"numeric":e;if(!this.handlerByType[t]){try{const e=yield ze(`./handlers/${t}.ts`);this.handlerByType[t]=yield e.getHandler(this)}catch(e){throw`error with handler='./handlers/${t}.ts': ${e}`}}this.handler=this.handlerByType[t]}))}}const st=l(rt);function ot(e){e.initUI=()=>{if(e.opts.$id){e.dom.tip.d.attr("id",e.opts.$id+"-ts-tip")}if(!e.dom.holder)return;e.dom.nopilldiv=e.dom.holder.append("div").style("cursor","pointer").on("click",e.clickNoPillDiv).on(`keyup.sjpp-termdb`,(t=>{if(t.key=="Enter")e.showTree(t)}));e.dom.pilldiv=e.dom.holder.append("div");if(e.opts.placeholder){e.dom.nopilldiv.append("div").html(e.placeholder).attr("class","sja_clbtext2").style("padding","3px 6px 3px 6px").style("display","inline-block")}if(e.opts.placeholderIcon){e.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(e.opts.placeholderIcon)}e.dom.btnDiv=e.dom.holder.append("div");e.dom.content_holder=u(e.dom.holder.node().parentNode).append("div")};e.updateUI=()=>i(this,void 0,void 0,(function*(){e.dom.btnDiv.selectAll("*").remove();e.dom.content_holder.selectAll("*").remove();if(!e.term){e.dom.nopilldiv.style("display","block");e.dom.pilldiv.style("display","none");e.dom.btnDiv.style("display","none");return}if(e.term.hashtmldetail){if(e.opts.buttons&&!e.opts.buttons.includes("info"))e.opts.buttons.unshift("info");else e.opts.buttons=["info"]}else{e.opts.buttons=[]}if(e.opts.buttons.length){e.dom.btnDiv.selectAll("div").data(e.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",((t,i)=>{if(i=="delete")e.removeTerm();else if(i=="replace"){e.showTree(t.target)}else throw"unknown button"}));if(e.term.hashtmldetail){const t=e.dom.btnDiv.selectAll("div").filter((function(){return u(this).text()==="INFO"}));const i=yield import("./termInfo-e16f90f2.js");i.termInfoInit({vocabApi:e.opts.vocabApi,icon_holder:t,content_holder:e.dom.content_holder,id:e.term.id,state:{term:e.term}})}}e.dom.nopilldiv.style("display","none");e.dom.pilldiv.style("display",e.opts.buttons?"inline-block":"block");e.dom.btnDiv.style("display",e.opts.buttons?"inline-block":"none");const t=e.dom.pilldiv.selectAll(".ts_pill").data([e.term],(e=>e.id));t.exit().each(e.exitPill);t.transition().duration(200).each(e.updatePill);t.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",e.showMenu).transition().duration(200).each(e.enterPill)}));e.enterPill=function(){return i(this,void 0,void 0,(function*(){const t=u(this);e.dom.pill_termname=t.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(e.handler.getPillName).on(`keyup.sjpp-termdb`,(e=>{if(e.key=="Enter")e.target.click()}));e.updatePill.call(this)}))};e.updatePill=function(){return i(this,void 0,void 0,(function*(){const t=u(this);const i=e.handler.getPillStatus()||{};e.dom.pill_termname.style("border-radius",i.text?"6px 0 0 6px":"6px").html(e.handler.getPillName);const n=t.selectAll(".ts_summary_btn").data(i.text?[{txt:i.text}]:[],(e=>e.txt));n.exit().remove();const r=n.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(i.bgcolor){r.transition().duration(200).style("background-color",i.bgcolor)}}))};e.exitPill=function(){u(this).style("opacity",1).transition().duration(e.durations.exit).style("opacity",0).remove()}}function at(e){e.removeTerm=()=>{e.opts.callback(null)};e.cancelGroupsetting=()=>{e.opts.callback({id:e.term.id,term:e.term,q:{mode:"discrete",type:"values",isAtomic:true}})};e.clickNoPillDiv=()=>i(this,void 0,void 0,(function*(){if(!e.noTermPromptOptions||e.noTermPromptOptions.length==0){yield e.showTree(e.dom.nopilldiv.node());return}e.dom.tip.clear().showunder(e.dom.nopilldiv.node());for(const t of e.noTermPromptOptions){const n=e.dom.tip.d.append("div").attr("class","sja_menuoption sja_sharp_border").on("click",(()=>i(this,void 0,void 0,(function*(){e.dom.tip.clear();if(t.isDictionary){yield e.showTree(e.dom.tip.d.node())}else if(t.termtype){if(t.q)e.q=structuredClone(t.q);yield e.setHandler(t.termtype);if(q(e.term)&&!e.term.bins&&e.term.type!="survival"){yield e.vocabApi.setTermBins({term:e.term,q:e.q})}e.handler.showEditMenu(e.dom.tip.d)}else{throw"termtype missing"}}))));if(t.text)n.text(t.text);else if(t.html)n.html(t.html)}}));e.showTree=function(t,n){return i(this,void 0,void 0,(function*(){e.dom.tip.clear();if(t)e.dom.tip.showunder(t instanceof Element?t:this instanceof Element?this:e.dom.holder.node());else e.dom.tip.show(n.clientX,n.clientY);if(!e.usecase)e.usecase={target:"default"};const r=yield import("./app-bd9f016b.js");r.appInit({holder:e.dom.tip.d,vocabApi:e.vocabApi,state:{activeCohort:e.activeCohort,tree:{usecase:e.usecase}},tree:{disable_terms:e.disable_terms,click_term:t=>i(this,void 0,void 0,(function*(){e.dom.tip.hide();let i;if(t.term)i=t;else{const e=t;i={term:e,q:{isAtomic:true},isAtomic:true}}if(e.opts.customFillTw)e.opts.customFillTw(i);yield yt(i,e.vocabApi,e.opts.defaultQ4fillTW);e.opts.callback(i)}))}})}))};e.showMenu=(t,n=null,r=null)=>{var s,o,a;const l=e.dom.tip;l.clear();if(e.opts.renderAs=="none"&&n)e.dom.holder=u(n);if(e.dom.holder){const i=(s=e.dom.holder)===null||s===void 0?void 0:s.node();if(i)l.showunder(i);else l.show(t.clientX,t.clientY)}const d=[];if(e.q.type=="predefined-groupset"||e.q.type=="custom-groupset"){if(e.q.mode!="binary"&&e.term.type!="geneVariant"){d.push({label:"Cancel grouping",callback:e.cancelGroupsetting})}}if(e.q&&!((o=e.term.groupsetting)===null||o===void 0?void 0:o.disabled)&&X("edit",e.opts.menuOptions)){d.push({label:"Edit",callback:t=>i(this,void 0,void 0,(function*(){if(e.term&&q(e.term)&&!e.term.bins&&e.term.type!="survival"){yield e.vocabApi.setTermBins({term:e.term,q:e.q})}e.handler.showEditMenu(t)}))})}if(X("replace",e.opts.menuOptions)){d.push({label:"Replace",callback:e.showTree})}if(X("remove",e.opts.menuOptions)){d.push({label:"Remove",callback:e.removeTerm})}if(e.opts.customMenuOptions)d.push(...e.opts.customMenuOptions);e.openMenu=r||l.d;e.openMenu.selectAll("div").data(d).enter().append("div").attr("class","sja_menuoption sja_sharp_border").attr("tabindex",((e,t)=>t+1)).style("display",e.opts.menuLayout=="horizontal"?"inline-block":"block").text((e=>e.label)).on("click",((t,i)=>{e.dom.tip.clear();i.callback(e.dom.tip.d)})).on("keyup",(e=>{if(e.key=="Enter")e.target.click()}));(a=e.openMenu.select(".sja_menuoption").node())===null||a===void 0?void 0:a.focus()};e.showReuseMenu=function(t){return i(this,void 0,void 0,(function*(){const n=t.append("div");n.style("display","block").style("padding","10px").append("span").style("color","#aaa").html("Save current setting as ");const r=e.vocabApi.getCustomTermQLst(e.term);const s=n.append("input").attr("type","text").attr("placeholder",r.nextReuseId).attr("value",e.q.reuseId||r.nextReuseId);n.append("button").style("margin-left","5px").html("Save").on("click",(()=>{const t=s.property("value").trim()||r.nextReuseId;e.q.reuseId=t;e.vocabApi.cacheTermQ(e.term,e.q);e.runCallback();e.dom.tip.hide()}));const o=t.append("div").style("margin","10px");const a={term:e.term,q:{}};yield ht(a,e.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(t){const n=u(this);const r=lt(e.q,t);const s=t.name||t.reuseId;n.append("td").style("min-width","180px").style("text-align","center").html(s);const o=n.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(t.reuseId==="Default"){delete t.reuseId;delete t.name}e.q=t;e.dom.tip.hide();e.runCallback()}))}const a=n.append("td").style("text-align","center");if(!r&&t.reuseId!="Default"){a.append("button").style("min-width","80px").html("Delete").on("click",(()=>i(this,void 0,void 0,(function*(){yield e.vocabApi.uncacheTermQ(e.term,t);e.dom.tip.hide();e.runCallback()}))))}}));t.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.`)}))};e.showGeneSearch=function(t,n){e.dom.tip.clear();if(t)e.dom.tip.showunder(t instanceof Element?t:this instanceof Element?this:e.dom.holder.node());else e.dom.tip.show(n.clientX,n.clientY);const r=new Set;const s=e.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",(()=>i(this,void 0,void 0,(function*(){const t=a.property("value");try{const i=!t?{lst:[]}:yield e.vocabApi.findTerm(t,e.activeCohort,e.usecase,"gene");l.selectAll("*").remove();l.selectAll("div").data(i.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",(t=>{e.dom.tip.hide();e.runCallback({term:{name:t.name,type:"geneVariant"},q:{exclude:[]}})}))}catch(e){alert("Search error: "+e)}}))));const l=e.dom.tip.d.append("div").style("margin","5px").style("padding-left","5px").style("border-left","2px solid #ccc")}}function lt(e,t){const i=[e,t].map((e=>JSON.parse(JSON.stringify(e))));for(const e of i){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 p(...i)}function dt(e){return{showEditMenu(){},getPillStatus(){},getPillName(t){return pt(e,t)}}}function pt(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 ut(e,t,n){return i(this,void 0,void 0,(function*(){yield ct(e,t);const i=[];for(const r of e){i.push(ht(r,t,n))}yield Promise.all(i)}))}function ct(e,t){return i(this,void 0,void 0,(function*(){const i=[];for(const t of e){if(t.term)continue;if(t.id===undefined||t.id==="")throw".id is required";i.push(t.id)}const n=i.length?yield t.getTerms(i):{};for(const t of i){if(!n[t])throw`missing dictionary term for id=${t}`;for(const t of e){if(t.id&&t.id in n)t.term=n[t.id]}}}))}const ft=new Set(["categorical","integer","float"]);function ht(e,t,n){var r;return i(this,void 0,void 0,(function*(){e.isAtomic=true;if(!e.term&&e.id){yield ct([e],t)}if(ft.has((r=e.term)===null||r===void 0?void 0:r.type)){const i=yield Xe.fill(e,{vocabApi:t,defaultQByTsHandler:n});Object.assign(e,i);gt(e);if(!e.$id)e.$id=yield Ke(t.getTwMinCopy(e));if(e.q)e.q.isAtomic=true;return e}delete e.id;if(!e.q)e.q={};e.q.isAtomic=true;mt(e);yield yt(e,t,n);gt(e);if(!e.$id)e.$id=yield Ke(t.getTwMinCopy(e));return e}))}function mt(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 yt(e,t,n){return i(this,void 0,void 0,(function*(){if(!e.$id)e.$id=yield Ke(t.getTwMinCopy(e));const i=e.term.type;const r=i=="float"||i=="integer"?"numeric":i;let s;if(e.term.type){try{s=yield Fe(`./handlers/${r}.ts`)}catch(e){throw`Type ${r} does not exist`}}else throw`Type not defined for ${JSON.stringify(e)}`;yield s.fillTW(e,t,n?n[r]:null)}))}function gt(e){if(!("mode"in e.q)){return}if(typeof e.q.mode!="string")throw"q.mode not string"}function vt(e,t){if(!e.hiddenValues){e.hiddenValues={};if(t.values){for(const i in t.values){if(t.values[i].uncomputable)e.hiddenValues[i]=1}}}}export{h as N,f as R,m as T,T as a,x as b,Oe as c,E as d,S as e,ht as f,Ke as g,st as h,q as i,je as j,y as k,Xe as l,ut as m,b as n,pt as o,Ce as r,vt as s,g as t};
@@ -1 +0,0 @@
1
- import{b as t}from"./brush-06989a5e.js";import{c as e}from"./termsetting-7467350f.js";import{d as n}from"./app-3d14cbe4.js";import"./pointer-c7475677.js";import"./nodrag-f6c0801c.js";import"./tslib.es6-c3c2d88f.js";import"path";function s(t,e){const s=t.num_obj.brushes;const r=t.num_obj.density_data.maxvalue;const a=t.num_obj.density_data.minvalue;const i=(r-a)/10;const u=t.tvs.term.type=="integer"?Math.floor(i):i;for(const[n,o]of t.num_obj.ranges.entries()){const t=s.find((t=>t.orig===o));let n;if(!t){n={orig:o,range:JSON.parse(JSON.stringify(o))};s.push(n)}else{n=t}if(o.start===""){if(e=="center")n.range.start=a+u*4;else n.range.start=a+u*8}if(o.stop===""){if(e=="center")n.range.stop=a+u*6;else n.range.stop=Math.floor(r)}}const c=t.num_obj.brush_g.selectAll(".range_brush").data(s,(t=>s.indexOf(t)));c.exit().remove();c.each((function(t,e){n(this).selectAll(".overlay").style("pointer-events","all")}));c.enter().append("g").attr("class","range_brush").each((function(e,n){o(t,this,e)}))}function o(e,s,o){if(!o.elem)o.elem=n(s);const a=o.range;const i=e.num_obj.plot_size;const u=e.num_obj.xscale;const c=e.num_obj.density_data.maxvalue;const d=e.num_obj.density_data.minvalue;o.d3brush=t().extent([[0,0],[i.width,i.height]]).on("brush",(function(t,n){const s=t.selection;if(!s)return;const i=o.rangeInput.getRange();if(i.value!=undefined){o.range=i;return}r(u,s,a,i,d,c,e.tvs.term.type);const l=a.startunbounded?"":i.startinclusive?`${a.start} <=`:`${a.start} <`;const p=a.stopunbounded?"":i.stopinclusive?`<= ${a.stop}`:`< ${a.stop}`;o.rangeInput.getInput().node().value=`${l} x ${p}`})).on("end",(function(){o.elem.selectAll(".overlay").style("pointer-events","none")}));const l=a.startunbounded?d:a.start;const p=a.stopunbounded?c:a.stop;o.init=()=>{if(a.value==undefined)o.elem.call(o.d3brush).call(o.d3brush.move,[l,p].map(u))};if(a.startunbounded)delete a.start;if(a.stopunbounded)delete a.stop;o.elem.selectAll(".selection").style("fill",o.orig.start===""&&o.orig.stop===""||JSON.stringify(a)!=JSON.stringify(o.orig)?"#23cba7":"#777777")}function r(t,n,s,o,r,i,u){s.start=a(t,n[0]);s.stop=a(t,n[1]);const c=e(Number(r));const d=e(Number(i));s.startunbounded=c==s.start&&o.startunbounded;s.stopunbounded=d==s.stop&&o.stopunbounded;if(u=="integer"){s.start=s.startunbounded?"":Math.round(s.start);s.stop=s.stopunbounded?"":Math.round(s.stop)}}function a(t,n){let s=Number(t.invert(n));return e(s)}function i(t,e="end",n){const o={start:"",stop:"",index:t.tvs.ranges.length};t.num_obj.ranges.push(o);const r={orig:o,range:JSON.parse(JSON.stringify(o))};t.num_obj.brushes.push(r);s(t,e);if(n)n();r.init()}export{s as addBrushes,i as addNewBrush,r as updateTempRanges};
@@ -1 +0,0 @@
1
- import{r as t}from"./table-be2a9975.js";import{c as e}from"./termsetting-7467350f.js";import{a as s,c as i}from"./FilterRxComp-e8de560c.js";import{U as n,r as a}from"./app-3d14cbe4.js";import{n as l}from"./niceNumLabels-ef07b7ad.js";import"./tslib.es6-c3c2d88f.js";import"path";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-a60aaa77.js";function o(s){s.download=()=>{if(!s.state)return;s.dom.violinDiv.selectAll(".sjpp-violin-plot").each((function(){n(this,"violin",{apply_dom_styles:true})}))};s.displayLabelClickMenu=function(t,e,i,n){if(!e||s.data.plots.length===1){return}const a=t.q.mode==="continuous"?"term2":"term";const l=[{label:`Add filter: ${i.label.split(",")[0]}`,callback:d(t,e,s,i,a,false)},{label:`Hide: ${i.label}`,callback:()=>{const t=s.config[a];const e=true;s.app.dispatch({type:"plot_edit",id:s.id,config:{[a]:{isAtomic:true,term:t.term,q:r(i,t,e)}}})}}];if(s.state.displaySampleIds&&s.state.hasVerifiedToken){l.push({label:`List samples`,callback:async()=>{const[a,l]=[s.data.min,s.data.max*2];await s.listSamples(n,t,e,i,a,l)}})}s.displayMenu(n,l,i)};s.displayBrushMenu=function(t,e,s,i,n,a,l){const[o,r]=l?[a.invert(n[0]),a.invert(n[1])]:[a.invert(n[1]),a.invert(n[0])];const p=[{label:`Add filter`,callback:d(t,e,s,i,o,r,true)}];if(s.state.displaySampleIds&&s.state.hasVerifiedToken){p.push({label:`List samples`,callback:async()=>s.listSamples(event,t,e,i,o,r)})}s.displayMenu(event,p,i,o,r)};s.displayMenu=function(t,e,i,n,a){s.app.tip.d.selectAll("*").remove();s.app.tip.d.classed("sjpp-violin-brush-tip",true);const o=n!=null&&a!=null;if(o){const[t,e]=s.config.term.term.type=="integer"?[Math.round(n),Math.round(a)]:l([n,a]);s.app.tip.d.append("div").text(`From ${t} to ${e}`)}s.app.tip.d.append("div").selectAll("div").data(e).enter().append("div").attr("class","sja_menuoption").text((t=>t.label)).on("click",((t,e)=>{s.app.tip.hide();e.callback();s.dom.tableHolder.style("display","none")}));s.app.tip.show(t.clientX,t.clientY)};s.addEditColorToMenu=function(t){const e=a(t.color).formatHex();const i=s.app.tip.d.append("div").attr("class","sja_sharp_border").style("padding","0px 10px").text("Color:").append("input").attr("type","color").attr("value",e).on("change",(()=>{const e=i.node().value;const n=s.config.term2;let a;for(const s in n.term.values)if(n.term.values[s].label==t.label){n.term.values[s].color=e;a=s}if(!a)n.term.values={[t.label]:{label:t.label,color:e}};s.app.dispatch({type:"plot_edit",id:s.id,config:{term2:{isAtomic:true,term:s.config.term2.term,q:r(t,s.config.term2,false)}}});s.app.tip.hide()}))};s.listSamples=async function(t,e,i,n,a,l){const o=s.getTvsLst(e,i,n,a,l);const d=e.q?.mode==="continuous"?e:i;const r={type:"tvslst",join:"and",lst:[s.state.termfilter.filter,o],in:true};const p={terms:[d],filter:r};const c=await s.app.vocabApi.getAnnotatedSampleData(p);s.displaySampleIds(t,d,c)};s.displaySampleIds=function(i,n,a){s.app.tip.clear();if(!a?.samples)return;const l=[];for(const[t,s]of Object.entries(a.samples))l.push([{value:a.refs.bySampleId[t].label},{value:e(s[n.$id].value)}]);const o=s.app.tip.d.append("div");const d=[{label:"Sample"},{label:"Value"}];const r=l;t({rows:r,columns:d,div:o,maxWidth:"30vw",maxHeight:"25vh",resize:true,showLines:true});s.app.tip.show(i.clientX,i.clientY)};s.labelHideLegendClicking=function(t,e){s.dom.legendDiv.selectAll(".sjpp-htmlLegend").on("click",(i=>{i.stopPropagation();const n=i.target.__data__;const a=t?.term.type==="condition"||t?.term.type==="samplelst"||t?.term.type==="categorical"||(t?.term.type==="float"||t?.term.type==="integer")&&s.config.term?.q.mode==="continuous"?"term2":"term";const l=s.config[a];if(t){for(const t of Object.keys(l?.q?.hiddenValues)){if(n.text===t){delete l.q.hiddenValues[t]}}const t=false;s.app.dispatch({type:"plot_edit",id:s.id,config:{[a]:{isAtomic:true,term:l.term,q:r(e,l,t)}}})}})).on("mouseover",(t=>{const e=t.target.__data__;if(e===undefined)return;if(e.isHidden===true){s.dom.tip.d.html("Click to unhide plot");s.dom.tip.show(t.clientX,t.clientY)}})).on("mouseout",(function(){s.dom.tip.hide()}))};s.createTvsLstRanges=function(t,e,s,i,n){c(t,e);e.lst[n].tvs.ranges=[{start:t.term.type=="integer"?Math.round(s):s,stop:t.term.type=="integer"?Math.round(i):i,startinclusive:true,stopinclusive:true,startunbounded:false,stopunbounded:false}]};s.getTvsLst=function(t,e,i,n,a){const l={type:"tvslst",in:true,join:"and",lst:[]};if(e){if(t.term.type==="categorical"||t.term.type==="condition"){p(t,i,l,0);s.createTvsLstRanges(e,l,n,a,1)}else if(e.q?.mode==="continuous"||(e.term?.type==="float"||e.term?.type==="integer")&&i.divideTwBins!=null){c(e,l);l.lst[0].tvs.ranges=[{start:i.divideTwBins?.start||null,stop:i.divideTwBins?.stop||null,startinclusive:i.divideTwBins?.startinclusive||true,stopinclusive:i.divideTwBins?.stopinclusive||false,startunbounded:i.divideTwBins?.startunbounded?i.divideTwBins?.startunbounded:null,stopunbounded:i.divideTwBins?.stopunbounded?i.divideTwBins?.stopunbounded:null}];s.createTvsLstRanges(t,l,n,a,1)}else{p(e,i,l,0);s.createTvsLstRanges(t,l,n,a,1)}}else s.createTvsLstRanges(t,l,n,a,0);return l}}function d(t,e,n,a,l,o,d){const r={type:"tvslst",in:true,join:"and",lst:[]};if(e){if(t.term.type==="categorical"||t.term.type==="condition"){p(t,a,r,0);if(d){n.createTvsLstRanges(e,r,l,o,1)}}else if(e.q?.mode==="continuous"||(e.term?.type==="float"||e.term?.type==="integer")&&a.divideTwBins!=null){c(e,r);r.lst[0].tvs.ranges=[{start:a.divideTwBins?.start||null,stop:a.divideTwBins?.stop||null,startinclusive:a.divideTwBins?.startinclusive||true,stopinclusive:a.divideTwBins?.stopinclusive||false,startunbounded:a.divideTwBins?.startunbounded?a.divideTwBins?.startunbounded:null,stopunbounded:a.divideTwBins?.stopunbounded?a.divideTwBins?.stopunbounded:null}];if(d){n.createTvsLstRanges(t,r,l,o,1)}}else{p(e,a,r,0);if(d){n.createTvsLstRanges(t,r,l,o,1)}}}else{if(d){n.createTvsLstRanges(t,r,l,o,0)}}return()=>{const t=s(n.state.termfilter.filter,"filterUiRoot");const e=i([t,r]);e.tag="filterUiRoot";n.app.dispatch({type:"filter_replace",filter:e})}}function r(t,e,s=false){const i=t.label;const n=e?.term?.values?e?.term?.values?.[i]?.label:i;const a=!n?i:n;const l=e.q;if(!l.hiddenValues)l.hiddenValues={};if(s)l.hiddenValues[a]=1;else delete l.hiddenValues[a];return l}function p(t,e,s,i){c(t,s);s.lst[i].tvs.values=[{key:e.seriesId,label:e.label}];if(t.term.type==="condition"){s.lst[i].tvs.bar_by_grade=t.q.bar_by_grade;s.lst[i].tvs.value_by_max_grade=t.q.value_by_max_grade}if(t.term.type==="samplelst"){s.lst[i].tvs.values=t.term.values[e.label].list}}function c(t,e){e.lst.push({type:"tvs",tvs:{term:t.term}})}export{o as setInteractivity};