@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{T as e,h as t,f as n,i}from"./termsetting-7467350f.js";import{D as s,B as o,z as l,n as a,d as r,b as d,L as p,W as c,M as m,R as g,S as u,ak as f,ap as y}from"./app-3d14cbe4.js";import{r as b}from"./table-be2a9975.js";import{p as h}from"./pointer-c7475677.js";import"./tslib.es6-c3c2d88f.js";import"path";let v=0;const x={externalLink:""};function w(t){let n;t.delayedMouseoutHandler=()=>{if(n)clearTimeout(n);n=setTimeout(t.mouseout,500)};t.showCellInfo=function(n){if(t.activeLabel||t.zoomArea)return;if(n.target.__data__?.isLegendItem){return}if(!(n.target.tagName=="rect"||n.target.tagName=="image")){const e=n.target.__data__;const i=e?.grp;if(i?.legendData){if(n.target.closest(".sjpp-matrix-series-group-label-g"))t.displaySampleGroupInfo(n,i)}return}if(n.target.tagName!=="rect"&&!t.imgBox)t.imgBox=n.target.getBoundingClientRect();const i=n.target.tagName=="rect"?n.target.__data__:t.getImgCell(n);if(!i||!i.term||!i.sample){t.dom.tip.hide();t.mouseout();return}const a=t.dimensions.xOffset+t.dimensions.seriesXoffset;const r=t.dimensions.yOffset;const d=t.settings.matrix;const p=d.controlLabels;t.dom.rowBeam.attr("x",a).attr("y",r+i.seriesY).attr("height",i.tw.settings?.barh?i.tw.settings.barh+2*i.tw.settings.gap:i.t.grp.type=="hierCluster"?d.clusterRowh:d.rowh).style("display","");t.dom.colBeam.attr("x",a+i.x).attr("y",r).style("display","");t.dom.matrixCellHoverOver.clear();const c=s({holder:t.dom.matrixCellHoverOver.d.append("div")});if(i.term.type=="geneVariant"&&i.tw.q?.type=="values"){{const[e,t]=c.addRow();e.html(p.Sample);t.html(i.row._ref_.label||i.value?.sample)}{const[e,t]=c.addRow();e.html("Gene");t.html(i.term.name)}const e={};if(i.siblingCells)for(const t of i.siblingCells){if(t.$id!=i.$id)continue;const n=t.value;const s=n.pairlst;const a=n.origin?`${n.origin} ${o[n.dt]}`:o[n.dt];const r=t.t.grp.type=="hierCluster"?n.value:s?(s[0].a.name||s[0].a.chr)+"::"+(s[0].b.name||s[0].b.chr):n.mname?`${n.mname} ${l[n.class].label}`:l[n.class].label;const d=t.fill==n.color||n.class=="Blank"?"":t.fill;if(!e[a]){e[a]=[{label:r,color:d}]}else{e[a].push({label:r,color:d})}}for(const[t,n]of Object.entries(e).sort(((e,t)=>t.length-e.length))){const[e,i]=c.addRow();e.html(t);i.html(`<span style="display:inline-block; width:12px; height:12px; background-color:${n[0].color}" ></span>\n\t\t\t\t\t${n[0].label}`);for(const e of n.slice(1)){const[t,n]=c.addRow();t.html("");n.html(`<span style="display:inline-block; width:12px; height:12px; background-color:${e.color}" ></span>\n\t\t\t\t\t\t${e.label}`)}}}else{{const[e,t]=c.addRow();e.html(p.Sample);t.html(i.row._ref_.label)}let t;if(i.term.type==e.SURVIVAL&&i.exitCodeKey){t=i.term.values?.[i.exitCodeKey]?.label||i.exitCodeKey}if(t||i.convertedValueLabel||i.label){if(i.term.type==e.GENE_EXPRESSION){{const[e,t]=c.addRow();e.html("Gene");t.html(i.term.name)}{const e=i.tw?.q?.convert2ZScore&&i.tw.q.mode=="continuous"||i.tw.q.mode!=="continuous"?`<span style="display:inline-block; width:12px; height:12px; background-color:${i.fill=="#fff"||i.fill=="transparent"?"":i.fill}" ></span>`:"";const[t,n]=c.addRow();t.html("Gene Expression");n.html(`${e} ${i.convertedValueLabel||i.label}${i.tw?.q?.convert2ZScore&&i.tw.q.mode=="continuous"&&i.zscoreLabel?i.zscoreLabel:""}`)}}else if(i.term.type==e.METABOLITE_INTENSITY){{const[e,t]=c.addRow();e.html("Metabolite");t.html(i.term.name)}{const e=i.tw?.q?.convert2ZScore&&i.tw.q.mode=="continuous"||i.tw.q.mode!=="continuous"?`<span style="display:inline-block; width:12px; height:12px; background-color:${i.fill=="#fff"||i.fill=="transparent"?"":i.fill}" ></span>`:"";const[t,n]=c.addRow();t.html("Metabolite Intensity");n.html(`${e} ${i.convertedValueLabel||i.label}${i.tw?.q?.convert2ZScore&&i.tw.q.mode=="continuous"&&i.zscoreLabel?i.zscoreLabel:""}`)}}else if(i.term.type==e.SURVIVAL){{const[e,n]=c.addRow();e.html(i.term.name);n.html(`<span style="display:inline-block; width:12px; height:12px; background-color:${i.fill=="#fff"||i.fill=="transparent"?"":i.fill}" ></span>\n\t\t\t\t\t\t\t${t||i.label}`)}const e="Time to Event: "+(i.timeToEventKey?i.timeToEventKey+(i.term.unit?` ${i.term.unit}`:""):(i.convertedValueLabel||i.label)+(i.tw?.q?.convert2ZScore&&i.tw.q.mode=="continuous"&&i.zscoreLabel?i.zscoreLabel:""));{const[t,n]=c.addRow();t.html("");n.html(e)}}else{const e=i.tw?.q?.convert2ZScore&&i.tw.q.mode=="continuous"||i.tw.q.mode!=="continuous"?`<span style="display:inline-block; width:12px; height:12px; background-color:${i.fill=="#fff"||i.fill=="transparent"?"":i.fill}" ></span>`:"";const[t,n]=c.addRow();t.html(i.term.name);n.html(`${e} ${i.convertedValueLabel||i.label}${i.tw?.q?.convert2ZScore&&i.tw.q.mode=="continuous"&&i.zscoreLabel?i.zscoreLabel:""}`)}}}t.dom.matrixCellHoverOver.show2(n.clientX,n.clientY);t.dom.mainG.on("mouseout",t.mouseout)};t.getImgCell=function(e){if(!t.imgBox){if(e.target.tagName=="image")t.imgBox=e.target.getBoundingClientRect();else return}const n=e.clientY-t.imgBox.y-e.target.clientTop;const i=e.target.__data__.find((e=>e.hoverY0<=n&&n<=e.hoverY1));if(!i)return;const{xMin:s,dx:o}=t.dimensions;const l=e.clientX-t.imgBox.x-e.target.clientLeft+s;for(const e of i.cells){const t=e.x;const n=e.x+o;if(t<=l&&l<=n)return e}return null};t.mouseout=function(){if(!t.activeLabel&&t.dom.tip)t.dom.tip.hide();delete t.imgBox;t.dom.colBeam.style("display","none");t.dom.rowBeam.style("display","none");t.dom.matrixCellHoverOver.clear()};t.mouseclick=async function(n,i){const p=t.state.termdbConfig.queries;if(!p)return;if(!(p.singleSampleGenomeQuantification||p.singleSampleMutation||p.NIdata||p.DZImages))return;t.dom.mainG.on("mouseout",null);delete t.imgBox;const c=i||n.target.__data__;if(!c)return;t.config.settings.matrix;const m={sample_id:c.row._ref_.label};const g=c.term?.type=="geneVariant"?c.term.name:null;t.dom.clickMenu.clear();t.dom.dendroClickMenu.clear();t.dom.brushMenu.clear();t.dom.matrixCellHoverOver.clear();if(t.dom.sampleListMenu)t.dom.sampleListMenu.destroy();if(p.singleSampleGenomeQuantification){for(const e in p.singleSampleGenomeQuantification){const n=t.dom.clickMenu.d.append("div").attr("class","sja_menuoption sja_sharp_border").text(e).on("click",(async i=>{const s=a(t.opts.plotDiv||r(t.opts.holder.node().parentNode));s.header.text(m.sample_id);await(await import("./plot.ssgq-b5f68395.js")).plotSingleSampleGenomeQuantification(t.state.termdbConfig,t.state.vocab.dslabel,e,m,s.body.append("div").style("margin","20px"),t.app.opts.genome,g);n.remove();t.dom.clickMenu.d.selectAll("*").remove()}))}}if(p?.singleSampleMutation){const e=t.dom.clickMenu.d.append("div").attr("class","sja_menuoption sja_sharp_border").attr("data-testid","oncoMatrix_termLabel_disco_button").text("Disco plot").on("click",(async n=>{const i=a(t.opts.plotDiv||r(t.opts.holder.node().parentNode));i.header.text(m.sample_id);(await import("./plot.disco-c9249cbd.js")).default(t.state.termdbConfig,t.state.vocab.dslabel,m,i.body,t.app.opts.genome,{Disco:{prioritizeGeneLabelsByGeneSets:true}});e.remove();t.dom.clickMenu.d.selectAll("*").remove()}))}if(p.DZImages){const e=t.dom.clickMenu.d.append("div").attr("class","sja_menuoption sja_sharp_border").attr("data-testid","oncoMatrix_termLabel_dzi_button").style("display","none").text(`${p.DZImages.type} Images (0)`);const n=await d("sampledzimages",{body:{genome:t.app.opts.genome.name,dslabel:t.state.vocab.dslabel,sample_id:m.sample_id}});if(n.sampleDZImages?.length>0){e.style("display","block");e.text(`${p.DZImages.type} Images (${n.sampleDZImages.length})`);e.on("click",(async i=>{const s=a(t.opts.plotDiv||r(t.opts.holder.node().parentNode));s.header.text(m.sample_id);(await import("./plot.dzi-dfd72ddf.js")).default(t.state.vocab.dslabel,s.body,t.app.opts.genome,m.sample_id,n.sampleDZImages);e.remove();t.dom.clickMenu.d.selectAll("*").remove()}))}}if(p.NIdata){for(const[e,n]of Object.entries(p.NIdata)){t.dom.clickMenu.d.append("div").attr("class","sja_menuoption sja_sharp_border").text("Neuro Image: "+e).on("click",(async()=>{t.dom.clickMenu.clear();const i={chartType:"brainImaging",queryKey:e,settings:{brainImaging:{brainImageL:n.parameters.l,brainImageF:n.parameters.f,brainImageT:n.parameters.t}},selectedSampleFileNames:[m.sample_id+".nii"]};t.app.dispatch({type:"plot_create",config:i})}))}}const u=t.settings.matrix.controlLabels;const f=s({holder:t.dom.clickMenu.d.append("div").append("span")});const y=t.state.termdbConfig.urlTemplates;if(y?.sample){const e=c[y.sample.namekey]||c.sample||c.row.sample;const[t,n]=f.addRow();t.html(u.Sample);n.html(`<a href="${y.sample.base}${e}" target="_blank">${c.row._ref_.label} ${x.externalLink}</a>`)}else{const[e,t]=f.addRow();e.html(u.Sample);t.html(c.row._ref_.label||c.value.sample)}if(c.term?.type=="geneVariant"&&c.tw.q?.type=="values"){if(c.value){if(y?.gene){const e=t.data.refs.byTermId[c.tw.$id][y.gene.namekey];const[n,i]=f.addRow();n.html("Gene");i.html(`<a href="${y.gene.base}${e}" target="_blank">${c.tw.term.name} ${x.externalLink}</a>`)}else{const[e,t]=f.addRow();e.html("Gene");t.html(c.term.name)}const e={};for(const t of c.siblingCells){if(t.$id!=c.$id)continue;const n=t.value;const i=n.pairlst;const s=n.origin?`${n.origin} ${o[n.dt]}`:o[n.dt];const a=t.t.grp.type=="hierCluster"?n.value:i?(i[0].a.name||i[0].a.chr)+"::"+(i[0].b.name||i[0].b.chr):n.mname?`${n.mname} ${l[n.class].label}`:l[n.class].label;const r=t.fill==n.color||n.class=="Blank"?"":t.fill;if(!e[s]){e[s]=[{label:a,color:r}]}else{e[s].push({label:a,color:r})}}for(const[t,n]of Object.entries(e).sort(((e,t)=>t.length-e.length))){const[e,i]=f.addRow();e.html(t);i.html(`<span style="display:inline-block; width:12px; height:12px; background-color:${n[0].color}" ></span>\n\t\t\t\t\t\t${n[0].label}`);for(const e of n.slice(1)){const[t,n]=f.addRow();t.html("");n.html(`<span style="display:inline-block; width:12px; height:12px; background-color:${e.color}" ></span>\n\t\t\t\t\t\t\t${e.label}`)}}}}else if(c.term){let t;if(c.term.type==e.SURVIVAL&&c.exitCodeKey){t=c.term.values?.[c.exitCodeKey]?.label||c.exitCodeKey}if(t||c.convertedValueLabel||c.label){if(c.term.type==e.GENE_EXPRESSION){{const[e,t]=f.addRow();e.html("Gene");t.html(c.term.name)}{const e=c.tw?.q?.convert2ZScore&&c.tw.q.mode=="continuous"||c.tw.q.mode!=="continuous"?`<span style="display:inline-block; width:12px; height:12px; background-color:${c.fill=="#fff"||c.fill=="transparent"?"":c.fill}" ></span>`:"";const[t,n]=f.addRow();t.html("Gene Expression");n.html(`${e} ${c.convertedValueLabel||c.label}${c.tw?.q?.convert2ZScore&&c.tw.q.mode=="continuous"&&c.zscoreLabel?c.zscoreLabel:""}`)}}else if(c.term.type==e.METABOLITE_INTENSITY){{const[e,t]=f.addRow();e.html("Metabolite");t.html(c.term.name)}{const e=c.tw?.q?.convert2ZScore&&c.tw.q.mode=="continuous"||c.tw.q.mode!=="continuous"?`<span style="display:inline-block; width:12px; height:12px; background-color:${c.fill=="#fff"||c.fill=="transparent"?"":c.fill}" ></span>`:"";const[t,n]=f.addRow();t.html("Metabolite Intensity");n.html(`${e} ${c.convertedValueLabel||c.label}${c.tw?.q?.convert2ZScore&&c.tw.q.mode=="continuous"&&c.zscoreLabel?c.zscoreLabel:""}`)}}else if(c.term.type==e.SURVIVAL){{const[e,n]=f.addRow();e.html(c.term.name);n.html(`<span style="display:inline-block; width:12px; height:12px; background-color:${c.fill=="#fff"||c.fill=="transparent"?"":c.fill}" ></span>\n\t\t\t\t\t\t\t${t||c.label}`)}const e="Time to Event: "+(c.timeToEventKey?c.timeToEventKey+(c.term.unit?` ${c.term.unit}`:""):(c.convertedValueLabel||c.label)+(c.tw?.q?.convert2ZScore&&c.tw.q.mode=="continuous"&&c.zscoreLabel?c.zscoreLabel:""));{const[t,n]=f.addRow();t.html("");n.html(e)}}else{const e=c.tw?.q?.convert2ZScore&&c.tw.q.mode=="continuous"||c.tw.q.mode!=="continuous"?`<span style="display:inline-block; width:12px; height:12px; background-color:${c.fill=="#fff"||c.fill=="transparent"?"":c.fill}" ></span>`:"";const[t,n]=f.addRow();t.html(c.term.name);n.html(`${e} ${c.convertedValueLabel||c.label}${c.tw?.q?.convert2ZScore&&c.tw.q.mode=="continuous"&&c.zscoreLabel?c.zscoreLabel:""}`)}}}t.dom.clickMenu.show(n.clientX,n.clientY,false,true)};t.legendClick=function(){};t.svgMousemove=function(e){if(!t.dragged)return;const n=t.config.settings.matrix;const i=t.dragged;const s=!n.transpose?i.x:i.x-i.clientX+e.clientX;const o=!n.transpose?i.y-i.clientY+e.clientY:i.y;i.clone.attr("transform",`translate(${s},${o})`)};t.svgMouseup=function(e){if(!t.dragged)return;t.dragged.clone.remove();delete t.dragged;delete t.clicked};t.getVisibleCenterCell=function(e){t.settings.matrix;const n=t.dimensions;const i=Math.round((.5*n.mainw-n.seriesXoffset-e)/n.dx);return t.sampleOrder[i]};$(t);C(t);k(t);I(t);_(t);M(t);N(t)}function _(e){let t;r(window).on(`resize.sjpp-${e.id}`,(()=>{if(t)clearTimeout(t);if(e.dimensions&&e.layout)t=setTimeout(n,200)}));function n(){if(e.dimensions&&e.layout)e.main()}}function $(i){S(i,"term");i.setPill=function(e){i.pill=t({tip:i.customTipApi,menuOptions:"all",menuLayout:"horizontal",vocabApi:i.app.vocabApi,vocab:e.vocab,activeCohort:e.activeCohort,numericEditMenuVersion:["discrete","continuous"],usecase:{target:"matrix"},getBodyParams:()=>{const e=[];for(const t of i.config.termgroups){if(i.chartType=="hierCluster"&&t.type!="hierCluster")continue;for(const n of t.lst){if(n.term.chr){e.push(`${n.term.chr}:${n.term.start}-${n.term.stop}`)}else if(n.term.gene){e.push(n.term.gene)}}}if(e.length)return{currentGeneNames:e};return{}},renderAs:"none",callback:e=>{if(e&&!e.q)throw"data.q{} missing from pill callback";const t=i.activeLabel||i.lastactiveLabel;if(e){e.label=t.tw.label;if(t&&t.tw)e.$id=t.tw.$id;const n=i.mayRemoveTvsEntry(e);i.pill.main(e);i.app.dispatch({type:"plot_nestedEdits",id:i.opts.id,edits:[{nestedKeys:["termgroups",t.grpIndex,"lst",t.lstIndex],value:e},{nestedKeys:["legendValueFilter"],value:n}]})}else{i.removeTerm()}i.dom.tip.hide()}})};i.getMenuOptions=function(e){return i.config.chartType=="hierCluster"&&e.grp.type==="hierCluster"?"{remove,}":e.tw.term.type=="geneVariant"?"{edit,replace,remove}":"*"};i.showTermMenu=async function(t){const n=t.target.__data__;if(!n||!n.tw||!n.grp)return;const s=i.settings.matrix;const o=s.controlLabels;i.activeLabel=n;i.dom.menutop.style("display","").selectAll("*").remove();i.dom.menubody.style("padding",0).selectAll("*").remove();const l=i.dom.menutop.append("div").style("display","block").text("Loading...");i.dom.tip.show(t.clientX-20,t.clientY-20);await i.pill.main(Object.assign({menuOptions:i.getMenuOptions(n)},n.tw?n.tw:{term:null,q:null}));l.remove();i.dom.shortcutDiv=i.dom.menutop.append("div");i.showShortcuts(n,i.dom.shortcutDiv);i.dom.twMenuDiv=i.dom.menutop.append("div");const a=i.dom.twMenuDiv.append("div").style("text-align","center");a.append("span").text(`${o.Term} `);const r=n.tw.label||n.tw.term.name;const d=n.tw.term.type=="geneVariant"||n.tw.term.type==e.GENE_EXPRESSION?"gene":n.tw.term.type==e.METABOLITE_INTENSITY?"metabolite":"variable";i.dom.twLabelInput=a.append("input").attr("type","text").attr("size",r.length+3).attr("aria-label",`Type to edit the ${d} label`).style("padding","1px 5px").style("text-align","center").property("value",r).on("input",(()=>{const e=i.dom.twLabelInput.property("value");i.dom.twLabelInput.attr("size",e.length+3);i.dom.twLabelEditBtn.style("display",e.trim()===r?"none":"inline")}));i.dom.twLabelEditBtn=a.append("button").style("display","none").style("margin-left","5px").html("submit").on("click",(()=>{if(r!=i.dom.twLabelInput.property("value").trim())i.updateTermLabel();i.dom.tip.hide()}));if(d=="gene"){i.dom.gbButton=a.append("button").style("text-align","center").html("Lollipop").attr("data-testid","oncoMatrix_cell_lollipop_button").on("click",(async()=>{await i.launchGB(n);i.dom.tip.hide()}))}if(i.state.termdbConfig.urlTemplates?.gene&&d=="gene"){const e=i.state.termdbConfig.urlTemplates;i.dom.geneSummaryLink=a.append("div").style("display","inline-block").style("margin-left","5px").style("text-align","center").style("color","rgb(0, 0, 238)").style("cursor","pointer").style("text-decoration","underline").html(`${e.gene.defaultText||""}${x.externalLink}`).on("click",(async()=>{const t=i.data.refs.byTermId[n.tw.$id][e.gene.namekey];window.open(`${e.gene.base}${t}`,"_blank");i.dom.tip.hide()}))}if(i.config.settings.matrix.maxSample){i.dom.twMenuDiv.append("div").style("text-align","center").style("margin","5px").text(`#${o.samples}: ${n.counts.samples} rendered, ${n.allCounts.samples-n.counts.samples} not rendered`)}i.dom.twMenuBar=i.dom.twMenuDiv.append("div").style("text-align","center");const p=t.target;i.pill.showMenu(t,p,i.dom.twMenuBar);i.dom.grpMenuDiv=i.dom.menutop.append("div").style("margin-top","10px")};i.launchGB=async e=>{const t=a(i.opts.plotDiv||r(i.opts.holder.node().parentNode));t.header.text(e.tw.term.name);const n={debugmode:i.app.opts.debug,holder:t.body.append("div").style("margin","20px"),genome:i.app.opts.genome,nobox:true,query:e.tw.term.name,tklst:[{type:"mds3",dslabel:i.app.opts.state.vocab.dslabel,filter0:i.state.filter0,filterObj:structuredClone(i.state.filter)}]};const s=await import("./app-3d14cbe4.js").then((function(e){return e.c3}));await s.default(n)};i.updateTermLabel=()=>{const e=i.dom.twLabelInput.property("value").trim();const t=i.activeLabel;if(t.tw.label===e)return;t.tw.label=e;t.grp.lst[t.lstIndex]=t.tw;i.app.dispatch({type:"plot_nestedEdits",id:i.opts.id,edits:[{nestedKeys:["termgroups",t.grpIndex],value:t.grp}]})};i.showShortcuts=(t,n)=>{const s=i.settings.matrix.controlLabels;n.style("text-align","center");const o=t.tw.term.type=="geneVariant"||t.tw.term.type==e.GENE_EXPRESSION?"gene":t.tw.term.type==e.METABOLITE_INTENSITY?"metabolite":"variable";const l=i.type!="hierCluster"&&t.tw.sortSamples?.priority!==undefined;n.append("span").selectAll("div").data([{icon:"corner",title:`Sort ${s.samples} against this ${o}, and position this ${o} at the top left corner`,disabled:t.grp.lst.length<1||t.index===0&&t.tw.sortSamples?.priority===0||i.type=="hierCluster",handler:i.sortSamplesAgainstCornerTerm},{icon:"left",title:`Sort ${s.samples} against this ${o}`,disabled:t.tw.sortSamples?.priority===0&&!i.config.settings.hierCluster?.clusterSamples,fill:l?"rgba(200,100,100,0.5)":"",handler:l?i.unsortSamplesAgainstTerm:i.sortSamplesAgainstTerm},{html:"&nbsp;|&nbsp;"},{icon:"up",title:`Move this ${o} up`,disabled:t.index===0||i.type=="hierCluster",handler:i.moveTermUp},{icon:"down",title:`Move this ${o} down`,disabled:t.index===t.grp.lst.length-1||i.type=="hierCluster",handler:i.moveTermDown}],(e=>e.icon)).enter().append("div").style("display","inline-block").each((function(e){const t=r(this);if(e.icon)p[e.icon](t,e);else t.html(e.html)}))};i.sortSamplesAgainstCornerTerm=e=>{e.stopPropagation();const t=i.activeLabel;const n=JSON.parse(JSON.stringify(i.termGroups));const s=n[t.grpIndex];const[o,l]=i.getSorterTerms(t);s.lst.splice(t.lstIndex,1);s.lst.unshift(o);s.sortTermsBy="asListed";for(const e of n){if(e==s){for(const[t,n]of e.lst.entries()){if(!n.sortSamples)n.sortSamples={priority:t,by:"values"};n.sortSamples.priority=t}}else{for(const t of e.lst){if(!t.sortSamples)continue;t.sortSamples.priority=l.findIndex((e=>e.tw?.$id===t.$id))+s.lst.length}}}i.app.dispatch({type:"plot_edit",id:i.opts.id,config:{termgroups:n,settings:{matrix:{sortTermsBy:"asListed"}}}});i.dom.tip.hide()};i.sortSamplesAgainstTerm=e=>{e?.stopPropagation();const t=i.activeLabel;const[n]=i.getSorterTerms(t);if(t.grp.type=="hierCluster")n.sortSamples.by="values";const s=i.termGroups;s[t.grpIndex].lst[t.lstIndex]=n;for(const e of s){for(const n of e.lst){if(!n.sortSamples)continue;if(n.$id===t.tw.$id){n.sortSamples.priority=0}else n.sortSamples.priority+=1}}if(i.chartType=="hierCluster"){i.config.settings.hierCluster.clusterSamples=false;i.config.settings.hierCluster.yDendrogramHeight=0}i.config.termgroups=s;i.app.dispatch({type:"plot_edit",id:i.opts.id,config:i.config});i.dom.tip.hide()};i.unsortSamplesAgainstTerm=(e,t)=>{e.stopPropagation();const n=i.activeLabel||t.data.t;const[s]=i.getSorterTerms(n);const o=i.termGroups;o[n.grpIndex].lst[n.lstIndex]=s;for(const e of o){for(const t of e.lst){if(!t.sortSamples)continue;if(t.$id===n.tw.$id){delete t.sortSamples}else if("sortSamples"in t&&"priority"in t.sortSamples){if(t.sortSamples.priority>n.sortSamples?.priority)t.sortSamples.priority-=1}}}i.app.dispatch({type:"plot_edit",id:i.opts.id,config:{termgroups:o}});i.dom.tip.hide()};i.moveTermUp=e=>{e.stopPropagation();const t=i.activeLabel;const n=i.termGroups[t.grpIndex];n.lst.splice(t.lstIndex,1);n.lst.splice(t.lstIndex-1,0,t.tw);n.sortTermsBy="asListed";i.app.dispatch({type:"plot_nestedEdits",id:i.opts.id,edits:[{nestedKeys:["termgroups",t.grpIndex],value:n},{nestedKeys:["settings","matrix","sortTermsBy"],value:"asListed"}]});i.dom.tip.hide()};i.moveTermDown=e=>{e.stopPropagation();const t=i.activeLabel;const n=i.termGroups[t.grpIndex];n.lst.splice(t.lstIndex,1);n.lst.splice(t.lstIndex+1,0,t.tw);n.sortTermsBy="asListed";i.app.dispatch({type:"plot_nestedEdits",id:i.opts.id,edits:[{nestedKeys:["termgroups",t.grpIndex],value:n},{nestedKeys:["settings","matrix","sortTermsBy"],value:"asListed"}]});i.dom.tip.hide()};i.showTermEditMenu=async()=>{i.dom.menubody.selectAll("*").remove();const e=i.activeLabel;const t=i.config.settings.matrix;const n=t.controlLabels;if(e.tw.term.type=="geneVariant"){const t=i.dom.menubody.append("div");const s=t.append("label");s.append("span").html(`Minimum # ${n.samples} to be visible`);const o="minNumSamples"in e.tw?e.tw.minNumSamples:"";const l=s.append("input").attr("type","number").style("margin-left","5px").style("width","50px").property("value",o);t.append("div").append("button").html("Submit").on("click",(()=>{const t=l.property("value");if(t===o)return;if(t===""){delete e.tw.minNumSamples}else{e.tw.minNumSamples=Number(t)}i.app.dispatch({type:"plot_nestedEdits",id:i.opts.id,edits:[{nestedKeys:["termgroups",e.grpIndex,"lst",e.lstIndex],value:e.tw}]});i.dom.tip.hide()}))}else{await i.pill.main(Object.assign({menuOptions:i.getMenuOptions(e)},i.activeLabel.tw));i.pill.showMenu()}};i.showMoveMenu=async()=>{i.dom.menubody.selectAll("*").remove();i.termBeingMoved=i.activeLabel;const e=i.dom.menubody.append("div");e.append("span").html("Click on another label");i.makeInsertPosRadios(e)};i.showTermInsertMenu=()=>{i.dom.menubody.selectAll("*").remove();i.dom.editbtns=i.dom.menubody.append("div");i.dom.editbody=i.dom.menubody.append("div");if(i.activeLabel.grp.type=="hierCluster"){i.showDictTermSelection();return}const e=i.dom.editbtns.append("div").style("margin","10px 5px");e.append("label").html(`Insert genes or variables in `);i.dom.grpNameSelect=e.append("select").on("change",(()=>{const e=i.dom.grpNameSelect.property("value");i.dom.grpNameTextInput.property("disabled",e=="current").property("value",e=="current"?i.activeLabel.grp.name:t)}));i.dom.grpNameSelect.selectAll("option").data([{label:"current",value:"current",selected:true},{label:"new",value:"new"}]).enter().append("option").attr("selected",(e=>e.selected)).html((e=>e.label));e.append("span").html("&nbsp;group: &nbsp;");let t="";i.dom.grpNameTextInput=e.append("input").attr("type","text").property("disabled",true).property("value",i.activeLabel.grp.name).on("change",(()=>{const e=i.dom.grpNameTextInput.property("value");if(e==i.activeLabel.grp.name);else{t=i.dom.grpNameTextInput.property("value")}}));i.makeInsertPosRadios(i.dom.editbtns);i.showDictTermSelection()};i.makeInsertPosRadios=function(e){const t=e.append("div").style("margin","10px 5px");t.append("div").style("display","inline-block").style("padding-right","10px").html("Insert&nbsp");const n=t.append("div").style("display","inline-block");i.insertRadioId=`sjpp-matrix-${i.id}-insert-pos`;const s=n.append("label");s.append("input").attr("type","radio").attr("value","above").property("checked",true).attr("name",i.insertRadioId);s.append("span").html("above");n.append("span").html("&nbsp;&nbsp");const o=n.append("label");o.append("input").attr("type","radio").attr("value","below").attr("name",i.insertRadioId);o.append("span").html("&nbsp;below")};i.showDictTermSelection=async()=>{const e={target:"matrix",detail:"termgroups"};if(i.activeLabel.grp.type=="hierCluster"){e.target=i.activeLabel.tw.term.type;e.detail="term"}const t=await import("./app-bd9f016b.js");i.dom.editbody.selectAll("*").remove();t.appInit({holder:i.dom.editbody.append("div"),vocabApi:i.app.vocabApi,state:{vocab:i.state.vocab,activeCohort:i.activeCohort,nav:{header_mode:"search_only"},tree:{usecase:e}},tree:{submit_lst:s},search:{handleGeneVariant:e=>s([e])}})};async function s(e){const t=await Promise.all(e.map((async e=>{const t=structuredClone(e);const s="id"in t?{id:t.id,term:t}:{term:t};await n(s,i.app.vocabApi);return s})));const s=i.insertRadioId&&r(`input[name='${i.insertRadioId}']:checked`)?.property("value");const o=i.activeLabel;const l=i.termGroups;if(o.grp.type=="hierCluster"){const e=l[o.grpIndex];e.lst.splice(o.lstIndex+1,0,...t);i.app.dispatch({type:"plot_nestedEdits",id:i.opts.id,edits:[{nestedKeys:["termgroups",o.grpIndex,"lst"],value:e.lst}]})}else if(i.dom.grpNameSelect.property("value")=="current"){const e=l[o.grpIndex];const n=s=="above"?o.lstIndex:o.lstIndex+1;e.lst.splice(n,0,...t);i.app.dispatch({type:"plot_nestedEdits",id:i.opts.id,edits:[{nestedKeys:["termgroups",o.grpIndex,"lst"],value:e.lst}]})}else{const e=s=="above"?o.grpIndex:o.grpIndex+1;l.splice(e,0,{name:i.dom.grpNameTextInput.property("value"),lst:t});i.app.dispatch({type:"plot_edit",id:i.opts.id,config:{termgroups:l}})}i.dom.tip.hide()}i.showSortMenu=()=>{const e=i.activeLabel;i.dom.menubody.selectAll("*").remove();i.dom.menubody.append("div").style("margin-top","10px").style("text-align","center").html(e.tw.term.name);i.moveInput=undefined;i.showSortOptions(e)};i.showTermMoveOptions=e=>{const t=i.dom.menubody.append("div").style("margin-top","10px");const n=t.append("label");i.moveInput=n.append("input").attr("type","checkbox").style("text-align","center");n.append("span").html(`&nbsp;move this row&nbsp;`);const s=t.append("select");s.selectAll("option").data([{label:"before",value:0},{label:"after",value:1}]).enter().append("option").attr("value",(e=>e.value)).html((e=>e.label));t.append("span").html("&nbsp;");const o=e.grp.lst.filter((t=>t.$id!=e.tw.$id)).map((e=>({label:e.term.name,value:e.$id})));const l=t.append("select");l.selectAll("option").data([{label:"all",value:"*"},...o]).enter().append("option").attr("value",(e=>e.value)).html((e=>e.label))};i.showSortOptions=e=>{const t=i.dom.menubody.append("div").style("margin-top","10px");const n=t.append("label");const s=n.append("input").attr("type","checkbox").property("checked",true).style("text-align","center");const o=i.settings.matrix.controlLabels;n.append("span").html(`&nbsp;sort ${o.samples} against (in order of priority):`);const l=i.showSorterTerms(t,e);i.dom.menubody.append("button").html("Apply").on("click",(()=>{JSON.parse(JSON.stringify(i.config.settings.matrix))||{};delete l.div;delete l.up;delete l.down;delete l.delete;if(s.property("checked")||i.moveInput.property("checked")){i.app.dispatch({type:"plot_nestedEdits",id:i.opts.id,edits:[{nestedKeys:["termgroups",e.grpIndex,"lst",e.lstIndex],value:l}]})}i.dom.tip.hide()}))};i.showSorterTerms=(e,t)=>{const[n,s]=i.getSorterTerms(t);const o=i.settings.matrix;const l=o.controlLabels;e.append("div").style("margin","5px").style("padding","5px 10px").selectAll("div").data(s,(e=>e.$id)).enter().append("div").style("width","fit-content").style("margin","3px").style("cursor","default").style("padding","3px 10px").style("border-radius","5px").style("color","black").style("background-color","rgb(238, 238, 238)").each((function(e,t){e.sortSamples.priority=t;e.div=r(this);const n=e.$id=="sample"?`${l.Sample} name`:e.term.name;e.div.append("span").style("margin-right","10px").html(n);e.up=e.div.append("span").html(" &#9650; ").style("display",t===0?"none":"inline").style("color","#555").on("click",(()=>{this.parentNode.insertBefore(this,this.previousSibling);s.splice(e.priority,1);s.splice(e.priority-1,0,e);a()}));e.down=e.div.append("span").html(" &#9660; ").style("display",t<s.length-1?"inline":"none").style("color","#555").on("click",(()=>{this.parentNode.insertBefore(this,this.nextSibling.nextSibling);s.splice(e.priority,1);s.splice(e.priority+1,0,e);a()}));e.delete=e.div.append("span").html(" &#10005; ").style("display","inline").style("color","rgb(255, 100, 100)").on("click",(()=>{e.div.remove();s.splice(e.priority,1);a()}))}));function a(){for(const[e,t]of s.entries()){t.priority=e;t.up.style("display",t.priority>0?"inline":"none");t.down.style("display",t.priority<s.length-1?"inline":"none")}}return n};i.getSorterTerms=e=>{const t=[...i.termOrder.filter((e=>e.tw.sortSamples)).map((e=>JSON.parse(JSON.stringify(e.tw)))).sort(((e,t)=>e.sortSamples.priority-t.sortSamples.priority)),...i.config.settings.matrix.sortSamplesTieBreakers.map((e=>JSON.parse(JSON.stringify(e))))];const n=i.settings.matrix;const s=n.sortOptions[n.sortSamplesBy];if(!s){throw`unsupported s.sortSamplesBy='${n.sortSamplesBy}'`}const o=s.sortPriority?.find((t=>t.types.includes(e.tw?.term?.type)))?.tiebreakers[0];const l=o?{}:e.tw?.term?.type=="geneVariant"?{by:"class",order:["Fuserna","CNV_loss","CNV_amp","F","N","D","I","M","P","L","Utr3","Utr5","S","Intron","WT","Blank"]}:{by:"values"};const a=t.findIndex((t=>t.$id===e.tw?.$id));const r=JSON.parse(JSON.stringify(e.tw||{}));r.sortSamples=l;if(a==-1){t.unshift(r)}else{if(l.order)r.sortSamples.order=l.order}return[r,t]};i.removeTerm=()=>{const e=i.activeLabel;const t=i.mayRemoveTvsEntry(e.tw);const n=i.termGroups;const s=n[e.grpIndex];s.lst.splice(e.lstIndex,1);if(s.lst.length){i.app.dispatch({type:"plot_nestedEdits",id:i.opts.id,edits:[{nestedKeys:["termgroups",e.grpIndex,"lst"],value:s.lst},{nestedKeys:["legendValueFilter"],value:t}]})}else{n.splice(e.grpIndex,1);i.app.dispatch({type:"plot_edit",id:i.opts.id,config:{termgroups:n,legendValueFilter:t}})}i.dom.tip.hide()};i.removeTermGroup=()=>{const e=i.activeLabel;const t=i.termGroups;t.splice(e.grpIndex,1);i.app.dispatch({type:"plot_edit",id:i.opts.id,config:{termgroups:t}});i.dom.tip.hide()};i.mayRemoveTvsEntry=e=>{if(!i.config.legendValueFilter?.lst.length)return i.config.legendValueFilter;const t=structuredClone(i.config.legendValueFilter.lst);const n=t.filter((t=>t.tvs?.term.type===e?.term.type&&(("id"in t.tvs.term||"id"in e.term)&&t.tvs.term.id===e.term.id||t.tvs.term.name===e.term.name)));if(!n.length)return i.config.legendValueFilter;else{for(const i of n){const n=i.tvs;if(n.term.type!=e.term.type)continue;if(("id"in n.term||"id"in e.term)&&n.term.id!==e.term.id)continue;else if(n.term.name!=e.term.name)continue;const s=t.findIndex((e=>e===n));t.splice(s,1)}}return{in:true,join:"and",type:"tvslst",lst:t}};i.launchBrowser=e=>{e.stopPropagation();const t=i.activeLabel.tw;const n=[];for(const e of i.data.lst){if(e[t.$id]?.values)n.push(...e[t.$id].values)}i.app.dispatch({type:"plot_create",config:{term:t,chartType:"variantBrowser",insertBefore:i.id,custom_variants:n}})}}function k(e){e.showSampleGroupMenu=function(t){const n=t.target.__data__;if(!n)return;e.activeLabel=n;e.dom.menutop.selectAll("*").remove();e.dom.menubody.style("padding",0).selectAll("*").remove();const i=JSON.parse(JSON.stringify(e.config.menuOpts?.sampleGroup||[])).map((t=>{t.callback=e[t.callback];return t}));const s=[...i,{label:"Delete",callback:e.removeSampleGroup}];e.dom.menutop.append("div").selectAll(":scope>.sja_menuoption").data(s).enter().append("div").attr("class","sja_menuoption sja_sharp_border").style("display","block").html((e=>e.label)).on("click",((e,t)=>{e.stopPropagation();t.callback(t)}));e.dom.tip.showunder(t.target)};e.showNewChartMenu=()=>{e.dom.menubody.selectAll("*").remove()};e.launchSurvivalPlot=async t=>{e.dom.menubody.selectAll("*").remove();e.dom.menubody.append("div").style("padding-top","10px").html(`Use "<b>${e.config.divideBy.term.name}</b>" to`);const n=e.dom.menubody.append("div").style("padding","0 10px");const i="sjpp-matrix-surv-termnum-"+v++;const s=n.append("label");s.append("input").attr("type","radio").attr("name",i).attr("value","term2").property("checked",true);s.append("span").html(" overlay");const o=n.append("label").style("margin-left","10px");o.append("input").attr("type","radio").attr("name",i).attr("value","term0");o.append("span").html(" divide");e.dom.menubody.append("div").style("padding-bottom","10px").html(`the selected survival variable below:`);const l=await import("./app-bd9f016b.js");l.appInit({holder:e.dom.menubody.append("div"),vocabApi:e.app.vocabApi,state:{vocab:e.state.vocab,activeCohort:e.state.activeCohort,nav:{header_mode:"search_only"},tree:{usecase:{target:"survival",detail:"term"}}},tree:{click_term:s=>{e.dom.tip.hide();const o=n.select(`input[name='${i}']:checked`).property("value");e.dom.menubody.selectAll("*").remove();const l={chartType:"survival",term:s,[o]:JSON.parse(JSON.stringify(e.config.divideBy)),insertBefore:e.id};if(t.config){Object.assign(l,t.config)}e.app.dispatch({type:"plot_create",config:l})}}})};e.removeSampleGroup=()=>{if(!e.config.divideBy)return;const t=e.activeLabel.grp.tw;const n=t.term;if(n.type=="categorical"||n.type=="survival"){n.$id=t.$id;const i=e.config.legendValueFilter.lst.findIndex((e=>e.legendGrpName==t.term.id));if(i==-1){const i={legendGrpName:t.term.id,type:"tvs",tvs:{isnot:true,term:n,values:[{key:e.activeLabel.grp.id}]}};e.config.legendValueFilter.lst.push(i)}else{e.config.legendValueFilter.lst[i].tvs.values.push({key:e.activeLabel.grp.id})}}else if(i(n)){n.$id=t.$id;const i={legendGrpName:t.term.id||t.term.name,type:"tvs",tvs:{isnot:true,term:n,ranges:[e.data.refs.byTermId[t.$id].bins.find((t=>e.activeLabel.grp.id==t.name))]}};e.config.legendValueFilter.lst.push(i)}e.app.dispatch({type:"plot_edit",id:e.id,config:{legendValueFilter:e.config.legendValueFilter}});e.dom.tip.hide()};e.showDeletedSampleGroups=()=>{if(!e.config.divideBy)return;const t=e.activeLabel?.grp?.tw||e.config.divideBy;e.config.legendValueFilter.lst=e.config.legendValueFilter.lst.filter((e=>e.legendGrpName!==t.term.id&&e.legendGrpName!=t.term.name));e.app.dispatch({type:"plot_edit",id:e.id,config:{legendValueFilter:e.config.legendValueFilter}});e.dom.tip.hide()};e.displaySampleGroupInfo=(t,n)=>{const i=e.settings.matrix.controlLabels;const s=n.lst.length;e.dom.menutop.selectAll("*").remove();e.dom.menubody.selectAll("*").remove();e.dom.menubody.append("div").style("text-align","center").html(`<b>${n.name}</b> (${s} ${s<2?i.sample:i.samples})`);const o=e.dom.menubody.append("div").style("max-width","400px").style("padding","5px");for(const e in t.target.__data__.grp.legendData){const n=t.target.__data__.grp.legendData[e];o.append("div").style("padding-top","10px").html(`<b>${n.name}</b>`);const i=o.append("table");for(const e of n.items){const t=i.append("tr");t.append("td").append("div").style("width","12px").style("height","12px").style("background-color",e.color).style("border",`1px soloid ${e.stroke}`);t.append("td").html(e.text)}}e.dom.tip.show(t.clientX,t.clientY)};e.legendItemSorter=(e,t)=>{if(e.order&&t.order)return e.order-t.order;if(Number.isFinite(e.order)||t.order==-1)return-1;if(Number.isFinite(t.order)||e.order==-1)return 1;if(e.count)return t.count-e.count;if(Number.isFinite(e.count))return-1;if(Number.isFinite(t.count))return 1;return 0};e.handleLegendItemClick=t=>{const n=structuredClone(e.config.divideBy||{});const i="id"in n?n.id:n.name;if(t.termid==i){if(!n.exclude)n.exclude=[];const i=n.exclude?.indexOf(t.key);if(i==-1)n.exclude.push(t.key);else n.exclude.splice(i,1);e.app.dispatch({type:"plot_edit",id:e.id,config:{divideBy:n}})}};e.handleLegendMouseover=(t,n)=>{const i=structuredClone(e.config.divideBy||{});const s="id"in i?i.id:i.name;if(n.termid==s){e.dom.menutop.selectAll("*").remove();e.dom.menubody.selectAll("*").remove();e.dom.menubody.html(`Click to ${n.isExcluded?"show":"hide"}`);e.dom.tip.show(t.clientX,t.clientY)}}}function C(e){S(e,"termGrp");e.showTermGroupMenu=function(t){const n=t.target.tagName.toLowerCase()=="tspan"?t.target.parentNode.__data__:t.target.__data__;if(!n)return;e.activeLabel=n;e.dom.menutop.style("display","").selectAll("*").remove();e.showTermGroupInputs(e.dom.menutop.append("div"));e.dom.tip.showunder(t.target)};e.showTermGroupInputs=function(t){const n=t;const i=n.append("div").style("text-align","center");i.append("span").text("Group ");e.dom.grpNameInput=i.append("input").attr("type","text").attr("size",(e.activeLabel.grp.name?.length||0)+5).style("padding","1px 5px").style("text-align","center").property("value",e.activeLabel.grp.name).on("input",(()=>{const t=e.dom.grpNameInput.property("value");e.dom.grpNameInput.attr("size",t.length+5);e.dom.grpEditBtn.style("display",t===e.activeLabel.grp.name?"none":"")}));e.dom.grpEditBtn=i.append("button").style("display","none").style("margin-left","5px").html("submit").on("click",(()=>{e.updateTermGrpName();e.dom.tip.hide()}));e.dom.menubody.style("padding",0).selectAll("*").remove();const s=[{label:"Edit",callback:e.showTermGroupEditMenu},{label:"Add Rows",callback:e.showTermInsertMenu},{label:"Sort",callback:e.showSortMenu},{label:"Delete",callback:e.removeTermGroup}];if(e.chartType=="hierCluster"){s.splice(0,1);s.splice(1,1)}n.append("div").style("text-align","center").selectAll(":scope>.sja_menuoption").data(s).enter().append("div").attr("class","sja_menuoption sja_sharp_border").style("display","inline-block").html((e=>e.label)).on("click",((t,n)=>{t.stopPropagation();e.dom.menutop.style("display","none");n.callback(n)}))};e.updateTermGrpName=()=>{const t=e.dom.grpNameInput.property("value");const n=e.activeLabel;if(n.grp.name===t)return;n.grp.name=t;e.app.dispatch({type:"plot_nestedEdits",id:e.opts.id,edits:[{nestedKeys:["termgroups",n.grpIndex],value:n.grp}]})};e.showTermGroupEditMenu=async()=>{e.dom.menubody.selectAll("*").remove();const t=e.dom.menubody.append("div").style("padding","5px");t.append("div").style("width","100%").style("font-weight",600).html("Group options");const n=t.append("div").append("label");const i=e.settings.matrix.controlLabels;n.append("span").html(`Minimum # of mutated ${i.samples} for the ${i.term.charAt(0).toLowerCase()+i.term.slice(1)} to be visible `).attr("aria-label",`May be overridden by a row-specific minNumSamples`);const s=n.append("input").attr("type","number").style("margin-left","5px").style("width","50px").property("value",e.activeLabel.grp.settings?.minNumSamples||0);t.append("div").append("button").html("Submit").on("click",(()=>{const t=e.activeLabel.grp.settings||{};t.minNumSamples=s.property("value");e.app.dispatch({type:"plot_nestedEdits",id:e.id,edits:[{nestedKeys:["termgroups",e.activeLabel.grpIndex,"settings"],value:t}]})}))};e.removeTermGroup=()=>{const t=e.termGroups;t.splice(e.activeLabel.grpIndex,1);e.app.dispatch({type:"plot_edit",id:e.id,config:{termgroups:t}});e.dom.tip.hide()};const t=["series","series-group","term","term-group"].map((e=>`.sjpp-matrix-${e}-label-g`)).join(",");e.enableTextHighlight=n=>{r(n.target.closest(t)).selectAll(".sjpp-matrix-label text").style("-webkit-user-select","auto").style("-moz-user-select","auto").style("-ms-user-select","auto").style("user-select","auto");r("body").on("mouseup.sjppMatrixLabelText",e.disableTextHighlight)};e.disableTextHighlight=e=>{r(e.target.closest(t)).selectAll(".sjpp-matrix-label text").style("-webkit-user-select","none").style("-moz-user-select","none").style("-ms-user-select","none").style("user-select","none");r("body").on("mouseup.sjppMatrixLabelText",null)}}function S(e,t){e[`${t}LabelMousedown`]=(t,n)=>{e.clicked={event:t,d:n}};e[`${t}LabelMouseover`]=(n,i)=>{if(t=="term"&&n.target.__data__?.tw&&n.target.__data__.grp){if(n.target.__data__.grp.type=="hierCluster"){return}if(e.activeLabel||e.zoomArea){return}e.dom.menutop.selectAll("*").remove();e.dom.menubody.selectAll("*").remove();const t=n.target.__data__.grp.name;const i=n.target.__data__.tw.term.name;const s=e.dom.menubody.append("div").style("text-align","left").style("font-size","1.1em").html(t?`<b>${t}: ${i}</b>`:`<b>${i}</b>`);const o=e.dom.menubody.append("div").style("max-width","400px");const a=n.target.__data__;if(a.tw.term.type=="geneVariant"&&a.tw.q?.type=="values"){const t=Object.values(a.counts.subGroupCounts).reduce(((e,t)=>e+t.samplesNotTested),0);s.append("div").style("text-align","left").style("font-size","0.9em").html(`(tested ${e.samples.length-t} of ${e.samples.length})`);for(const[t,n]of Object.entries(a.counts.subGroupCounts)){const i=e.sampleGroups.find((e=>e.name==t)).lst.length;const s=i-n.samplesNotTested?n.samplesTotal/(i-n.samplesNotTested):0;o.append("div").style("padding-top","10px").html(t?`<b>${t}</b>: Mutated samples (${n.samplesTotal} of ${i-n.samplesNotTested}, ${c(".1%")(s)})`:`<b>Mutated samples (${n.samplesTotal} of ${i-n.samplesNotTested}, ${c(".1%")(s)})`);const a=o.append("table").style("margin-left","15px");for(const[e,t]of Object.entries(n.classes).sort(((e,t)=>t[1]-e[1]))){const n=a.append("tr");n.append("td").append("div").style("width","12px").style("height","12px").style("background-color",l[e].color);n.append("td").html(`${l[e].label}: ${t}`)}if(n.notTestedClasses){o.append("div").style("margin-left","15px").style("padding-top","12px").html("<b> Not counted:</b>");const e=o.append("table").style("margin-left","15px");for(const[t,i]of Object.entries(n.notTestedClasses).sort(((e,t)=>t[1]-e[1]))){const n=e.append("tr");n.append("td").append("div").style("width","12px").style("height","12px").style("background-color",l[t].color);n.append("td").html(`${l[t].label}: ${i}`)}}}}else if(!e.config.divideBy){const t=e.legendData.find((e=>e.name==a.tw.term.name));if(t&&t.items){const e=o.append("table");for(const n of t.items){const t=e.append("tr");t.append("td").append("div").style("width","12px").style("height","12px").style("background-color",n.color);t.append("td").html(`${n.key}: ${n.count}`)}}else{for(const[t,n]of Object.entries(a.counts.subGroupCounts)){const i=e.sampleGroups.find((e=>e.name==t)).totalCountedValues;o.append("div").style("padding-top","10px").html(t!==""?`<b>${t}</b>: ${n.samplesTotal} of ${i}`:`<b>${n.samplesTotal} of ${i}`);const s=o.append("table").style("margin-left","15px");for(const[e,t]of Object.entries(n.classes).sort(((e,t)=>t[1]-e[1]))){const n=a.tw.term.values?.[e]?.color;if(!n)continue;const i=s.append("tr");i.append("td").append("div").style("width","12px").style("height","12px").style("background-color",n);i.append("td").html(`${e}: ${t}`)}}}}else{for(const[t,n]of Object.entries(a.counts.subGroupCounts)){const i=e.sampleGroups.find((e=>e.name==t)).totalCountedValues;o.append("div").style("padding-top","10px").html(t!==""?`<b>${t}</b>: ${n.samplesTotal} of ${i}`:`<b>${n.samplesTotal} of ${i}`);const s=e.sampleGroups.find((e=>e.name==t));const l=s.legendData.find((e=>e.name==a.tw.term.name));if(l&&l.items){const e=o.append("table").style("margin-left","15px");for(const t of l.items){const n=e.append("tr");n.append("td").append("div").style("width","12px").style("height","12px").style("background-color",t.color);n.append("td").html(`${t.key}: ${t.count}`)}}else{const e=o.append("table").style("margin-left","15px");for(const[t,i]of Object.entries(n.classes).sort(((e,t)=>t[1]-e[1]))){const n=a.tw.term.values?.[t]?.color;if(!n)continue;const s=e.append("tr");s.append("td").append("div").style("width","12px").style("height","12px").style("background-color",n);s.append("td").html(`${t}: ${i}`)}}}}e.dom.tip.show(n.clientX,n.clientY)}if(n.target.innerHTML.includes("grouped by"))return;if(n.target.tagName==="text"){r(n.target).style("fill","blue")}if(!e.dragged)return;e.hovered=n.target.__data__};e[`${t}LabelMouseout`]=e=>{r(e.target).style("fill","")};e[`${t}LabelMousemove`]=(n,i)=>{const s=e.config.settings.matrix;if(e.clicked&&!e.dragged){e.dom[`${t}LabelG`].selectAll("text").style("-webkit-user-select","none").style("-moz-user-select","none").style("-ms-user-select","none").style("user-select","none");const i=e.clicked.event.target.closest(".sjpp-matrix-label");const s=i?.__data__;if(!s)return;if(e.type=="hierCluster"&&s.tw&&s.grp?.name==e.config.settings.hierCluster?.termGroupName)return;const[o,l]=r(i).attr("transform").split("translate(")[1].split(")")[0].split(",").map(Number);const a=i.cloneNode(true);e.dom[`${t}LabelG`].node().prepend(a);e.dragged={orig:i,clone:r(a).style("cursor","move").style("pointer-events","none"),node:a,x:o,y:l,clientX:n.clientX,clientY:n.clientY};e.dragged.clone.selectAll("text").style("fill","red")}if(!e.dragged)return;const o=e.dragged;const l=!s.transpose?o.x:o.x-o.clientX+n.clientX;const a=!s.transpose?o.y-o.clientY+n.clientY:o.y;o.clone.attr("transform",`translate(${l},${a})`)};e[`${t}LabelMouseup`]=n=>{delete e.clicked;e.config.settings.matrix;if(e.dragged){e.dragged.clone.remove();if(e.hovered){const n=e.dragged;const i=n.orig.__data__;const s=e.hovered;if(t=="termGrp"){const t=e.config.termgroups.splice(i.grpIndex,1)[0];e.config.termgroups.splice(s.grpIndex,0,t)}else{for(const t of e.config.termgroups){t.lst.sort(((t,n)=>{const i=e.termOrder.find((e=>e.tw.$id===t.$id));const s=e.termOrder.find((e=>e.tw.$id===n.$id));if(!i&&!s)return 0;if(!i)return 1;if(!s)return-1;return i.totalIndex-s.totalIndex}))}e.config.termgroups[i.grpIndex].lst.splice(i.index,1)[0];e.config.termgroups[s.grpIndex].lst.splice(s.index,0,i.tw);if(!e.config.termgroups[i.grpIndex].lst.length)e.config.termgroups.splice(i.grpIndex,1)}const o=t=="term"?"sortTermsBy":"sortTermGroupsBy";e.app.dispatch({type:"plot_edit",id:e.id,config:{termgroups:e.config.termgroups,settings:{matrix:{[o]:"asListed"}}}})}e.dom[`${t}LabelG`].selectAll("text").style("fill","").style("-webkit-user-select","").style("-moz-user-select","").style("-ms-user-select","").style("user-select","");delete e.dragged}else if(t=="term"){e.showTermMenu(n)}else{e.showTermGroupMenu(n)}}}function I(e){e.resetInteractions=function(){if(e.zoomArea){e.zoomArea.remove();delete e.zoomArea;r("body").on("mouseup.matrixZoom",null)}delete e.clickedSeriesCell};e.seriesesGMousedown=function(t){t.stopPropagation();e.resetInteractions();const n=e.getCellByPos(t);if(!n)return;e.clickedSeriesCell={event:t,startCell:n};if(e.settings.matrix.mouseMode=="pan"){e.seriesesGdragInit()}else{e.zoomPointer=h(t,e.dom.seriesesG.node());e.dom.seriesesG.on("mousemove",e.seriesesGoutlineZoom).on("mouseup",e.seriesesGtriggerZoom).on("contextmenu",e.resetInteractions)}e.dom.mainG.selectAll("text").style("-webkit-user-select","none").style("-moz-user-select","none").style("-ms-user-select","none").style("user-select","none")};e.getCellByPos=function(t){const n=e.settings.matrix;const i=e.dimensions;if(t.target.tagName=="rect"){if(t.target.__data__?.sample)return t.target.__data__;if(t.target.__data__?.xg){const n=t.clientX-t.target.getBoundingClientRect().x+i.seriesXoffset;const s=Math.floor(n/i.dx);return e.sampleOrder[s]}}if(t.target.tagName=="image"&&n.useCanvas){return e.getImgCell(t)}};e.seriesesGdragInit=function(){r("body").on("mousemove.sjppMatrixDrag",e.seriesesGdrag).on("mouseup.sjppMatrixDrag",e.seriesesGcancelDrag);e.settings.matrix;const t=e.dimensions;const n=e.clickedSeriesCell;n.dxPad=20;n.dxMax=-t.seriesXoffset;n.dxMaxPad=n.dxMax+n.dxPad;n.dxMin=t.mainw-t.zoomedMainW-t.seriesXoffset;n.dxMinPad=n.dxMin-n.dxPad;const i=.5*t.mainw;n.center={max:i+(t.zoomedMainW-t.mainw),min:i}};e.seriesesGdrag=function(t){const n=e.settings.matrix;const i=e.clickedSeriesCell;const s=e.dimensions;const o=t.clientX-i.event.clientX;if(Math.abs(o)<1)return;if(o<i.dxMinPad||o>i.dxMaxPad)return;e.clickedSeriesCell.dx=o;e.translateElems(o,s,n,i)};e.translateElems=function(t,n,i,s){e.dom.seriesesG.attr("transform",`translate(${n.xOffset+n.seriesXoffset+t},${n.yOffset})`);e.layout.top.attr.adjustBoxTransform(t);e.layout.btm.attr.adjustBoxTransform(t);const o=i.zoomCenterPct*n.mainw-n.seriesXoffset-t;e.controlsRenderer.svgScrollApi.update({zoomCenter:o})};e.seriesesGcancelDrag=function(t){r("body").on("mousemove.sjppMatrixDrag",null).on("mouseup.sjppMatrixDrag",null);const n=e.settings.matrix;const i=e.dimensions;const s=e.clickedSeriesCell;const o=t.clientX-s.event.clientX;const l=Math.min(s.dxMax,Math.max(o,s.dxMin));if(Math.abs(o)<1||Math.abs(l)<1){e.translateElems(0,i,n,s);return}e.translateElems(l,i,n,s);const a=e.getVisibleCenterCell(l);e.app.dispatch({type:"plot_edit",id:e.id,config:{settings:{matrix:{zoomCenterPct:.5,zoomIndex:a.totalIndex,zoomGrpIndex:a.grpIndex}}}})};e.seriesesGoutlineZoom=function(t){if(!e.clickedSeriesCell)return;e.config.settings.matrix;const n=e.clickedSeriesCell.event;if(e.clickedSeriesCell&&!e.zoomArea){e.zoomArea=e.dom.seriesesG.append("rect").attr("fill","rgba(50, 50, 50, 0.3)");r("body").on("mouseup.matrixZoom",e.mouseup);e.dom.mainG.selectAll("text").style("-webkit-user-select","none").style("-moz-user-select","none").style("-ms-user-select","none").style("user-select","none")}const i=t.clientX-n.clientX;t.clientY-n.clientY;const s=i>0?e.zoomPointer[0]:e.zoomPointer[0]+i+3;e.zoomWidth=Math.abs(i);e.zoomArea.attr("transform",`translate(${s},0)`).attr("width",Math.max(0,e.zoomWidth-2)).attr("height",e.dimensions.mainh);if(!e.clickedSeriesCell.endCell)e.clickedSeriesCell.endCell=e.getCellByPos(t)};e.seriesesGtriggerZoom=function(i){i.stopPropagation();e.dom.seriesesG.on("mousemove",null).on("mouseup",null);r("body").on("mouseup.matrixZoom",null);e.dom.mainG.selectAll("text").style("-webkit-user-select","").style("-moz-user-select","").style("-ms-user-select","").style("user-select","");const s=e.clickedSeriesCell;const o=e.getCellByPos(i);if(!s||!s.startCell){e.dom.mainG.on("mouseout",null);delete e.clickedSeriesCell;return}else if(!s.endCell||o===s.startCell){e.dom.mainG.on("mouseout",null);e.dom.tip.hide();const t=i.target.tagName=="rect"?i.target.__data__:s.startCell;if(t){if(e.opts.cellClick){e.opts.cellClick(structuredClone({sampleData:t.row,term:t.term,value:t.value,s:t.s,t:t.t,siblingCells:t.siblingCells.filter((e=>e!==t)).map((e=>({term:e.term,value:e.value,s:e.s,t:e.t})))}))}else{e.mouseclick(i,t)}}delete e.clickedSeriesCell;delete e.zoomArea;return}const l=e.settings.matrix;const a=l.controlLabels;s.endCell=o;const d=e.opts.allow2selectSamples;const p=s.startCell.totalIndex<s.endCell.totalIndex?s.startCell:s.endCell;const c=s.startCell.totalIndex<s.endCell.totalIndex?s.endCell:s.startCell;const m=new Set;for(let t=p.totalIndex;t<=c.totalIndex;t++){m.add(e.sampleOrder[t].row)}const g=[...m];const u=[{label:"Zoom in",callback:e.triggerZoomArea},{label:`List ${g.length} ${a.samples}`,callback:()=>{e.resetInteractions();e.dom.tip.hide();t(e,g,i.clientX,i.clientY)}}];if(d){u.push({label:d.buttonText||`Select ${a.Samples}`,callback:async()=>{d.callback({samples:g.map((e=>({"cases.case_id":e.sample}))),source:`Selected ${a.samples} from OncoMatrix`});e.zoomArea.remove();delete e.zoomArea;delete e.clickedSeriesCell}})}else{if(e.state.nav&&e.state.nav.header_mode!=="hidden"){for(const e of g){if(!e.sampleId)e.sampleId=e.sample}u.push({label:"Add to a group",callback:async()=>{e.resetInteractions();const t={name:"Group",items:g};n(t)}})}}e.dom.dendroClickMenu.clear();e.dom.clickMenu.clear();e.mouseout();e.dom.tip.hide();e.dom.brushMenu.clear();e.dom.brushMenu.d.selectAll("div").data(u).enter().append("div").attr("class","sja_menuoption").style("border-radius","0px").html((e=>e.label)).on("click",(t=>{e.dom.brushMenu.d.selectAll("*").remove();t.target.__data__.callback()}));e.dom.brushMenu.show(i.clientX,i.clientY)};const t=function(e,t,n,i){delete e.clickedSeriesCell;const s=e.state.termdbConfig.urlTemplates;const o=s?.sample?t.map((e=>[{value:e._ref_.label,url:`${s.sample.base}${e.sample}`}])):t.map((e=>[{value:e._ref_.label}]));const l=[{label:e.settings.matrix.controlLabels.Samples}];if(!e.dom.sampleListMenu)e.dom.sampleListMenu=new m({padding:"5px"});else e.dom.sampleListMenu.clear();const a=e.dom.sampleListMenu.d.append("div");b({rows:o,columns:l,div:a,showLines:true,maxWidth:l.length*"30"+"vw",maxHeight:"35vh",resize:true});e.dom.sampleListMenu.show(n,i)};const n=async function(t){t.plotId=e.id;await e.app.vocabApi.addGroup(t);e.dom.tip.hide()};e.triggerZoomArea=function(){if(e.zoomArea){e.zoomArea.remove();delete e.zoomArea}const t=e.clickedSeriesCell;delete e.clickedSeriesCell;const n=e.settings.matrix;const i=e.dimensions;const s=t.startCell.totalIndex<t.endCell.totalIndex?t.startCell:t.endCell;const o=Math.floor(s.totalIndex+Math.abs(t.endCell.totalIndex-t.startCell.totalIndex)/2);const l=e.sampleOrder[o]||e.getImgCell(event);const a=e.computedSettings.colw||e.settings.matrix.colw;const r=n.colwMax/a;const d=n.colwMin/a;const p=n.zoomLevel*i.mainw/e.zoomWidth;const c=Math.max(d,Math.min(p,r));const m=l.totalIndex*i.dx+(l.grpIndex-1)*n.colgspace+i.seriesXoffset;e.app.dispatch({type:"plot_edit",id:e.id,config:{settings:{matrix:{zoomLevel:c,zoomCenterPct:c<1&&i.mainw>=i.zoomedMainW?.5:m/i.mainw,zoomIndex:o,zoomGrpIndex:l.grpIndex}}}});e.resetInteractions()}}function M(e){e.legendLabelMouseover=t=>{const n=t.target.__data__;if(!n||n.dt==g||n.dt==u){return}if(!n.isLegendItem&&!n.dt){return}const i=e.config.legendGrpFilter.lst.find((e=>e.dt?.includes(n.dt)&&(!e.origin||e.origin==n.origin)))&&true;if(n.isLegendItem&&i){return}const s=e.termOrder.find((e=>e.tw.$id==n.$id));if(s?.tw?.q?.type=="predefined-groupset"||s?.tw?.q?.type=="custom-groupset"){return}if(t.target.nodeName=="rect")r(t.target).style("stroke","blue").style("cursor","pointer");else r(t.target).style("fill","blue").style("cursor","pointer")};e.legendLabelMouseout=e=>{if(e.target.nodeName=="rect")r(e.target).style("stroke","#aaa");else r(e.target).style("fill","")};e.legendLabelMouseup=t=>{const n=t.target.__data__;if(!n||n.dt==g||n.dt==u){return}const s=e.state.termdbConfig.assayAvailability?.byDt?.[parseInt(n.dt)]?.byOrigin;const o=e.dom.legendMenu.clear();if(!n.isLegendItem){if(!n.dt){return}const i=e.config.legendGrpFilter.lst.findIndex((e=>e.dt.slice().sort().toString()===n.dt.slice().sort().toString()&&(!s||e.origin==n.origin)));const l=e.config.legendValueFilter.lst.findIndex((e=>e.legendGrpName==n.name&&e.tvs.values.find((e=>n.dt.includes(e.dt)&&(!s||e.origin==n.origin)))));const a=o.d.append("div");if(i==-1){if(n.dt.includes(f)){a.append("div").attr("class","sja_menuoption sja_sharp_border").text(`Show only truncating mutations`).on("click",(()=>{V(o,n,e)}));a.append("div").attr("class","sja_menuoption sja_sharp_border").text(`Show only protein-changing mutations`).on("click",(()=>{F(o,n,e)}))}const t=e.legendData.filter((e=>e.dt&&!e.crossedOut&&(e.name==n.name||e.items.find((e=>!e.greyedOut&&!e.crossedOut))))).length<=1;a.append("div").attr("class",t?"sja_menuoption_not_interactive sja_sharp_border":"sja_menuoption sja_sharp_border").text(`Do not show ${n.name}`).style("opacity",t?"0.5":"1").on("click",(()=>{if(!t)A(o,n,e)}))}if(i!==-1||l!==-1){a.append("div").attr("class","sja_menuoption sja_sharp_border").text(`Show all ${n.name}`).on("click",(()=>{E(o,n,e)}))}o.showunder(t.target);return}const a=e.config.legendGrpFilter.lst.find((e=>e.dt?.includes(n.dt)&&(!e.origin||e.origin==n.origin)))&&true;if(n.isLegendItem&&a){return}const r=e.terms.find((e=>e.tw.$id==n.$id));if(r?.tw?.q?.type=="predefined-groupset"||r?.tw?.q?.type=="custom-groupset"){return}let d;if(n.dt){d=e.config.legendValueFilter.lst.findIndex((e=>e.legendGrpName==n.termid&&e.tvs.values.find((e=>e.dt==n.dt&&(!s||e.origin==n.origin)&&e.mclasslst[0]==n.key))))}else{const t=e.termOrder.find((e=>e.tw.$id==n.$id))?.tw?.term;if(!t){return}if(t.type=="categorical"||t.type=="survival"){d=e.config.legendValueFilter.lst.findIndex((e=>e.legendGrpName==n.termid&&e.tvs.values.find((e=>e.key==n.key))))}else if(i(t)){d=e.config.legendValueFilter.lst.findIndex((e=>e.legendGrpName==n.termid&&e.tvs.ranges.find((e=>e.name==n.key))))}}const p=e.settings.matrix.controlLabels;const c=o.d.append("div");if(!n.dt||e.type!=="hierCluster"||d!==-1){c.append("div").attr("class","sja_menuoption sja_sharp_border").text(n.dt?d==-1?`Hide ${p.samples} with ${l[n.key].label}`:`Show ${p.samples} with ${l[n.key].label}`:d==-1?"Hide":"Show").on("click",(()=>{o.hide();if(d==-1){if(n.dt){const t={legendGrpName:n.termid,type:"tvs",tvs:{isnot:true,legendFilterType:"geneVariant_hard",term:{type:"geneVariant"},values:[{dt:n.dt,origin:n.origin,mclasslst:[n.key]}]}};e.config.legendValueFilter.lst.push(t)}else{const t=e.termOrder.find((e=>e.tw.$id==n.$id)).tw.term;if(t.type=="categorical"||t.type=="survival"){t.$id=n.$id;const i=e.config.legendValueFilter.lst.findIndex((e=>e.legendGrpName==n.termid));if(i==-1){const i={legendGrpName:n.termid,type:"tvs",tvs:{isnot:true,term:t,values:[{key:n.key}]}};e.config.legendValueFilter.lst.push(i)}else{e.config.legendValueFilter.lst[i].tvs.values.push({key:n.key})}}else if(i(t)){t.$id=n.$id;const i={legendGrpName:n.termid,type:"tvs",tvs:{isnot:true,term:t,ranges:[e.data.refs.byTermId[n.$id].bins.find((e=>n.key==e.name))]}};e.config.legendValueFilter.lst.push(i)}}}else{if(n.dt)e.config.legendValueFilter.lst.splice(d,1);else{const t=e.termOrder.find((e=>e.tw.$id==n.$id)).tw.term;if(t.type=="categorical"||t.type=="survival"){const t=e.config.legendValueFilter.lst.findIndex((e=>e.legendGrpName==n.termid));const i=e.config.legendValueFilter.lst[t].tvs.values.findIndex((e=>e.key==n.key));e.config.legendValueFilter.lst[t].tvs.values.splice(i,1)}else e.config.legendValueFilter.lst.splice(d,1)}}if(e.state.config.settings.matrix.addMutationCNVButtons&&e.chartType!=="hierCluster"){if(n.dt==f){e.config.settings.matrix.showMatrixMutation="bySelection";const t=e.settings.matrix.controlLabels;if(e.legendData.find((e=>e.name==t.Mutations))?.items?.length==e.config.legendValueFilter.lst.filter((e=>e.legendGrpName==t.Mutations))?.length){e.config.settings.matrix.allMatrixMutationHidden=true}else e.config.settings.matrix.allMatrixMutationHidden=false}if(n.dt==y){e.config.settings.matrix.showMatrixCNV="bySelection";if(e.legendData.find((e=>e.name=="CNV"))?.items?.length==e.config.legendValueFilter.lst.filter((e=>e.legendGrpName=="CNV"))?.length){e.config.settings.matrix.allMatrixCNVHidden=true;if(e.config.settings.matrix.cellEncoding=="oncoprint")e.config.settings.matrix.cellEncoding="single"}else{e.config.settings.matrix.allMatrixCNVHidden=false;if(e.config.settings.matrix.cellEncoding!=="")e.config.settings.matrix.cellEncoding="oncoprint"}}}e.app.dispatch({type:"plot_edit",id:e.id,config:e.config})}))}if(n.isLegendItem){if(n.dt&&d==-1){c.append("div").attr("class","sja_menuoption sja_sharp_border").text(`Do not show ${l[n.key]?.label}`).on("click",(()=>{o.hide();const t={legendGrpName:n.termid,type:"tvs",tvs:{isnot:true,legendFilterType:"geneVariant_soft",term:{type:"geneVariant"},values:[{dt:n.dt,origin:n.origin,mclasslst:[n.key]}]}};e.config.legendValueFilter.lst.push(t);if(e.state.config.settings.matrix.addMutationCNVButtons&&e.chartType!=="hierCluster"){if(n.dt==f){e.config.settings.matrix.showMatrixMutation="bySelection";const t=e.settings.matrix.controlLabels;if(e.legendData.find((e=>e.name==t.Mutations))?.items?.length==e.config.legendValueFilter.lst.filter((e=>e.legendGrpName==t.Mutations))?.length){e.config.settings.matrix.allMatrixMutationHidden=true}else e.config.settings.matrix.allMatrixMutationHidden=false}if(n.dt==y){e.config.settings.matrix.showMatrixCNV="bySelection";if(e.legendData.find((e=>e.name=="CNV"))?.items?.length==e.config.legendValueFilter.lst.filter((e=>e.legendGrpName=="CNV"))?.length){e.config.settings.matrix.allMatrixCNVHidden=true;if(e.config.settings.matrix.cellEncoding=="oncoprint")e.config.settings.matrix.cellEncoding="single"}else e.config.settings.matrix.allMatrixCNVHidden=false}}e.app.dispatch({type:"plot_edit",id:e.id,config:e.config})}))}if(!n.dt){c.append("div").attr("class","sja_menuoption sja_sharp_border").text("Show only").on("click",(()=>{o.hide();const t=e.termOrder.find((e=>e.tw.$id==n.$id))?.tw?.term;const s=e.legendData.find((e=>e.name==n.termid))||e.legendData.find((e=>e.$id==n.$id));e.config.legendValueFilter.lst=e.config.legendValueFilter.lst.filter((e=>e.legendGrpName!==n.termid));if(t.type=="categorical"||t.type=="survival"){t.$id=n.$id;for(const i of s.items){if(i.key==n.key)continue;const s=e.config.legendValueFilter.lst.findIndex((e=>e.legendGrpName==n.termid));if(s==-1){const s={legendGrpName:n.termid,type:"tvs",tvs:{isnot:true,term:t,values:[{key:i.key}]}};e.config.legendValueFilter.lst.push(s)}else{e.config.legendValueFilter.lst[s].tvs.values.push({key:i.key})}}}else if(i(t)){t.$id=n.$id;for(const i of s.items){if(i.key==n.key)continue;const s={legendGrpName:n.termid,type:"tvs",tvs:{isnot:true,term:t,ranges:[e.data.refs.byTermId[n.$id].bins.find((e=>i.key==e.name))]}};if(!e.config.legendValueFilter.lst.length)e.config.legendValueFilter.lst=[s];else e.config.legendValueFilter.lst.push(s)}}e.app.dispatch({type:"plot_edit",id:e.id,config:e.config})}))}if(!n.dt){c.append("div").attr("class","sja_menuoption sja_sharp_border").text("Show all").on("click",(()=>{o.hide();e.config.legendValueFilter.lst=e.config.legendValueFilter.lst.filter((e=>e.legendGrpName!==n.termid));e.app.dispatch({type:"plot_edit",id:e.id,config:e.config})}))}o.showunder(t.target)}}}function N(e){e.mutationSelectionActions={onlyTruncating:V,onlyPC:F,none:A,all:E,bySelection:j};e.mutationControlCallback=t=>{const n=e.dom.legendMenu.clear();const i=e.legendData.find((e=>e.dt?.includes(f)));e.mutationSelectionActions[t](n,i,e,"mutation")};e.CNVControlCallback=t=>{const n=e.dom.legendMenu.clear();const i=e.legendData.find((e=>e.dt?.includes(y)));e.mutationSelectionActions[t](n,i,e,"CNV")};e.geneStyleControlCallback=t=>{const n=e.legendData.find((e=>e.dt?.includes(y)));if(t=="")G(n,e);else if(t=="single")L(n,e);else if(t=="oncoprint")T(n,e)}}function L(e,t){if(t.state.config.settings.matrix.addMutationCNVButtons&&t.chartType!=="hierCluster"){if(e){const n=t.state.termdbConfig.assayAvailability?.byDt?.[parseInt(e.dt)]?.byOrigin;const i=t.config.legendGrpFilter.lst.findIndex((t=>t.dt.slice().sort().toString()===e.dt.slice().sort().toString()&&(!n||t.origin==e.origin)));if(i==-1){const i={dt:e.dt};if(n){i.origin=e.origin}t.config.legendValueFilter.lst=t.config.legendValueFilter.lst.filter((t=>t.legendGrpName!==e.name));t.config.legendGrpFilter.lst.push(i)}}t.config.settings.matrix.cellEncoding="single"}t.app.dispatch({type:"plot_edit",id:t.id,config:t.config})}function T(e,t){if(t.state.config.settings.matrix.addMutationCNVButtons&&t.chartType!=="hierCluster"){if(e){const n=t.state.termdbConfig.assayAvailability?.byDt?.[parseInt(e.dt)]?.byOrigin;const i=t.config.legendGrpFilter.lst.findIndex((t=>t.dt.slice().sort().toString()===e.dt.slice().sort().toString()&&(!n||t.origin==e.origin)));if(i!==-1)t.config.legendGrpFilter.lst.splice(i,1);t.config.legendValueFilter.lst=t.config.legendValueFilter.lst.filter((t=>t.legendGrpName!==e.name))}t.config.settings.matrix.showMatrixCNV="all";t.config.settings.matrix.allMatrixCNVHidden=false}t.config.settings.matrix.cellEncoding="oncoprint";t.app.dispatch({type:"plot_edit",id:t.id,config:t.config})}function G(e,t){if(t.state.config.settings.matrix.addMutationCNVButtons&&t.chartType!=="hierCluster"){if(e){const n=t.state.termdbConfig.assayAvailability?.byDt?.[parseInt(e.dt)]?.byOrigin;const i=t.config.legendGrpFilter.lst.findIndex((t=>t.dt.slice().sort().toString()===e.dt.slice().sort().toString()&&(!n||t.origin==e.origin)));if(i!==-1)t.config.legendGrpFilter.lst.splice(i,1);t.config.legendValueFilter.lst=t.config.legendValueFilter.lst.filter((t=>t.legendGrpName!==e.name))}}t.config.settings.matrix.cellEncoding="";t.app.dispatch({type:"plot_edit",id:t.id,config:t.config})}function V(e,t,n){e.hide();if(t){n.config.legendValueFilter.lst=n.config.legendValueFilter.lst.filter((e=>e.legendGrpName!==t.name));n.config.legendGrpFilter.lst=n.config.legendGrpFilter.lst.filter((e=>!(e.dt.includes(f)&&e.origin==t.origin)));const e=n.config.settings.matrix.truncatingMutations;const i=n.config.settings.matrix.controlLabels;for(const[s,o]of Object.entries(l)){if(e.includes(s)||o.dt!=f)continue;const l={legendGrpName:t.origin?`${t.origin[0].toUpperCase()+t.origin.slice(1)} ${i.Mutations}`:i.Mutations,type:"tvs",tvs:{isnot:true,legendFilterType:"geneVariant_soft",term:{type:"geneVariant"},values:[{dt:f,origin:t.origin,mclasslst:[s]}]}};n.config.legendValueFilter.lst.push(l)}}n.app.dispatch({type:"plot_edit",id:n.id,config:n.config})}function F(e,t,n){e.hide();if(t){n.config.legendValueFilter.lst=n.config.legendValueFilter.lst.filter((e=>e.legendGrpName!==t.name));n.config.legendGrpFilter.lst=n.config.legendGrpFilter.lst.filter((e=>!(e.dt.includes(f)&&e.origin==t.origin)));const e=n.config.settings.matrix.proteinChangingMutations;const i=n.config.settings.matrix.controlLabels;for(const[s,o]of Object.entries(l)){if(e.includes(s)||o.dt!=f)continue;const l={legendGrpName:t.origin?`${t.origin[0].toUpperCase()+t.origin.slice(1)} ${i.Mutations}`:i.Mutations,type:"tvs",tvs:{isnot:true,legendFilterType:"geneVariant_soft",term:{type:"geneVariant"},values:[{dt:f,origin:t.origin,mclasslst:[s]}]}};n.config.legendValueFilter.lst.push(l)}}n.app.dispatch({type:"plot_edit",id:n.id,config:n.config})}function A(e,t,n,i){e.hide();if(t){const e=n.state.termdbConfig.assayAvailability?.byDt?.[parseInt(t.dt)]?.byOrigin;const i=n.config.legendGrpFilter.lst.findIndex((n=>n.dt.slice().sort().toString()===t.dt.slice().sort().toString()&&(!e||n.origin==t.origin)));if(i==-1){const i={dt:t.dt};if(e){i.origin=t.origin}n.config.legendValueFilter.lst=n.config.legendValueFilter.lst.filter((e=>e.legendGrpName!==t.name));n.config.legendGrpFilter.lst.push(i)}}if(n.state.config.settings.matrix.addMutationCNVButtons&&n.chartType!=="hierCluster"&&(i=="CNV"||t?.dt?.includes(y))&&n.config.settings.matrix.cellEncoding=="oncoprint"){n.config.settings.matrix.cellEncoding="single"}n.app.dispatch({type:"plot_edit",id:n.id,config:n.config})}function O(e,t,n){if(t){const n=e.state.termdbConfig.assayAvailability?.byDt?.[parseInt(t.dt)]?.byOrigin;const i=e.config.legendGrpFilter.lst.findIndex((e=>e.dt.slice().sort().toString()===t.dt.slice().sort().toString()&&(!n||e.origin==t.origin)));const s=e.config.legendValueFilter.lst.findIndex((e=>e.legendGrpName==t.name&&e.tvs.values.find((e=>t.dt.includes(e.dt)&&(!n||e.origin==t.origin)))));if(i!==-1)e.config.legendGrpFilter.lst.splice(i,1);if(s!==-1)e.config.legendValueFilter.lst=e.config.legendValueFilter.lst.filter((e=>e.legendGrpName!=t.name))}const i=e.config.settings.matrix;if(i.addMutationCNVButtons&&e.chartType!=="hierCluster"&&(n=="CNV"||t?.dt?.includes(y))&&i.cellEncoding!==""){i.cellEncoding="oncoprint"}return e.config}function E(e,t,n,i){e.hide();n.app.dispatch({type:"plot_edit",id:n.id,config:O(n,t,i)})}function j(e,t,n,i){e.hide();const s=n.config.settings.matrix;if(!t){if(s.addMutationCNVButtons&&n.chartType!=="hierCluster"&&i=="mutation"){s.showMatrixMutation="bySelection"}else if(s.addMutationCNVButtons&&n.chartType!=="hierCluster"&&i=="CNV"){s.showMatrixCNV="bySelection"}n.app.dispatch({type:"plot_edit",id:n.id,config:n.config});return}n.app.tip.d.selectAll(".byLFClassDiv").remove();const o=n.app.tip.d.append("div").attr("class","byLFClassDiv");const a=Math.random().toString();const d=o.selectAll(":scope>div").data(i=="mutation"?s.mutationClasses:s.CNVClasses).enter().append("label").style("margin","5px").style("margin-left","30px").style("display","block").each((function(e){const t=n.config.legendValueFilter.lst.find((t=>t.tvs.legendFilterType=="geneVariant_hard"&&t.tvs.values[0].dt==l[e].dt&&t.tvs.values[0].mclasslst.includes(e)));const o=i=="mutation"?s.hiddenMutations.includes(e):s.hiddenCNVs.includes(e);const c=r(this).attr("class","sjpp_row_wrapper");c.append("input").attr("type","checkbox").attr("name",a).property("disabled",t?true:false).property("checked",t||o?false:true).style("vertical-align","top").style("margin-right","3px").on("change",(function(){const e=d.selectAll(`input[type='checkbox'][name='${a}']:checked`).empty();p.property("disabled",e)}));c.append("span").style("margin-left","3px").html(l[e].label).style("text-decoration",t?"line-through":"")}));const p=o.append("button").property("disabled",true).style("margin-top","3px").text("Apply").on("click",(()=>{const o=d.selectAll(`input[type='checkbox'][name='${a}']:checked`);const p=o.nodes().map((e=>r(e).datum()));e.hide();n.config.legendValueFilter.lst=n.config.legendValueFilter.lst.filter((e=>e.legendGrpName!==t.name||e.tvs.legendFilterType=="geneVariant_hard"));n.config.legendGrpFilter.lst=n.config.legendGrpFilter.lst.filter((e=>!(e.dt.includes(f)&&t.dt.includes(f)||e.dt.includes(y)&&t.dt.includes(y))));for(const e of i=="mutation"?s.mutationClasses:s.CNVClasses){if(p.includes(e))continue;const i={legendGrpName:t.name,type:"tvs",tvs:{isnot:true,legendFilterType:"geneVariant_soft",term:{type:"geneVariant"},values:[{dt:l[e].dt,origin:t.origin,mclasslst:[e]}]}};n.config.legendValueFilter.lst.push(i)}if(n.state.config.settings.matrix.addMutationCNVButtons&&n.chartType!=="hierCluster"&&(i=="CNV"||t?.dt?.includes(y))){if(p.length==0&&n.config.settings.matrix.cellEncoding=="oncoprint"){n.config.settings.matrix.cellEncoding="single"}else if(p.length>0&&n.config.settings.matrix.cellEncoding=="single"){n.config.settings.matrix.cellEncoding="oncoprint"}}n.app.dispatch({type:"plot_edit",id:n.id,config:n.config})}))}export{O as getConfigForShowAll,w as setInteractivity,E as showAll};
@@ -1 +0,0 @@
1
- import{bS as t,by as e,P as s,ap as a,I as n}from"./app-3d14cbe4.js";import{c as o,a as i,b as l,d as r}from"./axis-747c801e.js";var c=e=>t(e[e.length-1]);var m=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(e);var h=c(m);var f=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(e);var p=c(f);function u(t){const e=this.state.config.settings.matrix;if(!this.autoDimensions)this.autoDimensions=new Set;if(!e.colw)this.autoDimensions.add("colw");else this.autoDimensions.delete("colw");if(!e.rowh)this.autoDimensions.add("rowh");else this.autoDimensions.delete("rowh");const a=this.settings.matrix;this.computedSettings={useCanvas:this.sampleOrder.length>e.svgCanvasSwitch};if(a.availContentWidth){this.availContentWidth=a.availContentWidth}else{let e=this.dom.contentNode.getBoundingClientRect().width;if(e<600)e=window.document.body.clientWidth;const s=this.getMaxGrpLabelWidth();const n=Math.max(65,s);const o=this.state.config.settings.hierCluster?.xDendrogramHeight||0;this.availContentWidth=e-n-a.margin.right-t-o}if(this.autoDimensions.has("colw")){const t=a.colgspace*Math.max(0,this.visibleSampleGrps.size-1);const e=this.sampleOrder.length*a.colspace+t;const s=(this.availContentWidth-e)/this.sampleOrder.length;const n=Math.max(a.colwMin,Math.min(s,a.colwMax));const o=(this.availContentWidth-t)/this.sampleOrder.length;const i=Math.max(a.colwMin,Math.min(o,a.colwMax));if(a.zoomLevel<1||i*a.zoomLevel<2){this.computedSettings.colw=o;this.computedSettings.colspace=0}else{this.computedSettings.colw=n;this.computedSettings.colspace=a.colspace}}const n=this.state.config.settings.hierCluster?.yDendrogramHeight||0;const o=screen.availHeight-n;this.computedSettings.clusterRowh=Math.min(a.rowhMax,Math.max(a.rowhMin,Math.floor(o/this.numClusterTerms)));s(this.settings.matrix,this.computedSettings)}function d(){const t=this.settings.matrix;const e=this.dom.svg.append("g").attr("opacity",.01);let s=0;for(const a of this.termGroups){const n=!a.name?"":a.name.length<=t.termGrpLabelMaxChars?a.name:a.name.slice(0,t.termGrpLabelMaxChars)+"…";const o=e.append("text").text(n).attr("font-size",12);const i=o.node().getBBox();if(s<i.width)s=i.width}e.remove();return s}function b(){const t=this.settings.matrix;this.cnvValues={};const e=t.transpose?t.colw:t.rowh;const s={};const o={sampleGrpByName:{},termGrpByName:{}};let i=0;for(const l of this.termOrder){const r=new Set;l.counts={samples:0,hits:0};const c=[];l.counts.subGroupCounts={};for(const t of this.sampleGroups){l.counts.subGroupCounts[t.name]={samplesTotal:0,classes:{}};if(l.tw.term.type=="geneVariant"){l.counts.subGroupCounts[t.name].samplesNotTested=0}}if(!o.termGrpByName[l.grp.name||""]){const e=l.grp.name||"";l.grp.label=e.length<=t.termGrpLabelMaxChars?e:e.slice(0,t.termGrpLabelMaxChars)+"…";o.termGrpByName[e]=l.grp.label}for(const e of this.sampleOrder){if(r.has(e.row.sample))continue;const s=e.grp.name||"";if(!(s in o.sampleGrpByName)){e.grp.label=s.length<=t.sampleGrpLabelMaxChars?s:s.slice(0,t.sampleGrpLabelMaxChars)+"…";if(this.config.divideBy)e.grp.label+=` (${e.grp.lst.length})`;o.sampleGrpByName[s]=e.grp.label}const n=e.row._ref_.label||"";e.label=n.length<=t.collabelmaxchars?n:n.slice(0,t.collabelmaxchars)+"…";const i=e.row[l.tw.$id];if(!i)continue;const{filteredValues:m,countedValues:h,renderedValues:f}=this.classifyValues(i,l.tw,l.grp,this.settings.matrix,e.row);i.filteredValues=m;i.countedValues=h;i.renderedValues=f;if(i.countedValues?.length){l.counts.samples+=1;l.counts.hits+=i.countedValues.length;if(l.tw.q?.mode=="continuous"){const t=i.value;if(!l.tw.term.values?.[t]?.uncomputable){if(!("minval"in l.counts)||l.counts.minval>t)l.counts.minval=t;if(!("maxval"in l.counts)||l.counts.maxval<t)l.counts.maxval=t}}if(l.tw.term.type=="geneVariant"&&i.values){for(const e of i.values){if(e.dt==a&&"value"in e&&!t.ignoreCnvValues){const t=e.value;if(t<0){if(!("minLoss"in this.cnvValues)||this.cnvValues["minLoss"]>t)this.cnvValues["minLoss"]=t;if(!("maxLoss"in this.cnvValues)||this.cnvValues["maxLoss"]<t)this.cnvValues["maxLoss"]=t}else{if(!("minGain"in this.cnvValues)||this.cnvValues["minGain"]>t)this.cnvValues["minGain"]=t;if(!("maxGain"in this.cnvValues)||this.cnvValues["maxGain"]<t)this.cnvValues["maxGain"]=t}}}}}if(l.tw.q?.mode=="continuous"&&f?.length&&l.grp.type!="hierCluster"){c.push(l.tw.term.valueConversion?l.tw.term.valueConversion.scaleFactor*(f[0].value||f[0]):f[0].value||f[0])}const p=l.counts.subGroupCounts?.[e.grp.name];const u=i.filteredValues.filter((t=>{if(l.tw.term.type=="geneVariant"){if(t.class=="WT"||t.class=="Blank")return false}return true}));if(u.length){if(l.tw.term.type=="geneVariant"){let e=false;for(const s of u){if(t.geneVariantCountSamplesSkipMclass.includes(s.class)){if(!p.notTestedClasses)p.notTestedClasses={};if(!(s.class in p.notTestedClasses))p.notTestedClasses[s.class]=1;else p.notTestedClasses[s.class]+=1}else if(!(s.class in p.classes)){if(!e){p.samplesTotal+=1;e=true}p.classes[s.class]=1}else{if(!e){p.samplesTotal+=1;e=true}p.classes[s.class]+=1}}}else{p.samplesTotal+=1;for(const t of u){if(!(t in p.classes))p.classes[t]=1;else p.classes[t]+=1}}}if(i.filteredValues?.length&&l.tw.term.type=="geneVariant"){const t=i.filteredValues.every((t=>t.class=="Blank"));if(t){p.samplesNotTested+=1}}}l.label=l.tw.label||l.tw.term.name;if(l.label.length>t.rowlabelmaxchars)l.label=l.label.slice(0,t.rowlabelmaxchars-1)+"…";const m=this.config?.settings.hierCluster?.termGroupName;if(t.samplecount4gene&&l.tw.term.type.startsWith("gene")&&(!m||l.grp.name!==m)){const e=t.samplecount4gene==="abs"?l.counts.samples:(100*l.counts.samples/this.sampleOrder.length).toFixed(1)+"%";l.label=`${l.label} (${e})`}if(l.grp.type!=="hierCluster"&&l.tw.q?.mode=="continuous"){const e=l.tw.term.valueConversion;if(e){l.counts.minval*=e.scaleFactor;l.counts.maxval*=e.scaleFactor}if(c.length&&l.tw.q.convert2ZScore){const t=c.reduce(((t,e)=>t+e),0)/c.length;const e=Math.sqrt(c.reduce(((e,s)=>e+Math.pow(s-t,2)),0)/c.length);l.mean=t;l.std=e;l.counts.minval=(l.counts.minval-t)/e;l.counts.maxval=(l.counts.maxval-t)/e}if(!l.tw.settings)l.tw.settings={};if(!l.tw.settings.barh)l.tw.settings.barh=t.barh;if(!("gap"in l.tw.settings))l.tw.settings.gap=4;const s=l.tw.settings.barh;const a=Math.abs(l.counts.minval);const o=l.counts.minval<0&&l.counts.maxval>0;const i=l.counts.minval>=0?1:l.counts.maxval/(a+l.counts.maxval);l.counts.posMaxHt=i*s;const r=[l.counts.maxval,l.counts.minval];l.scales={tickValues:r,full:n().domain(r).range([1,s])};if(l.counts.maxval>=0){const t=o?0:l.counts.minval;l.scales.pos=n().domain([t,l.counts.maxval]).range([1,l.counts.posMaxHt])}if(l.counts.minval<0){const t=o?0:l.counts.maxval;l.scales.neg=n().domain([t,l.counts.minval]).range([1,s-l.counts.posMaxHt])}}l.totalHtAdjustments=i;l.rowHt=l.grp.type=="hierCluster"?t.clusterRowh:l.tw.settings?l.tw.settings.barh+2*l.tw.settings.gap:e;const h=l.rowHt-e-(l.grp.type=="hierCluster"?t.rowspace:0);i+=h;l.cumulativeAdjustment=i;if(!(l.visibleGrpIndex in s))s[l.visibleGrpIndex]={htAdjustment:0};s[l.visibleGrpIndex].htAdjustment+=h;l.grpTotals=s[l.visibleGrpIndex]}for(const t of this.termOrder){if(t.tw.term.type=="geneVariant"){if("maxLoss"in this.cnvValues||"maxGain"in this.cnvValues){t.scales={loss:h,gain:p,maxLoss:this.cnvValues.maxLoss,maxGain:this.cnvValues.maxGain,minLoss:this.cnvValues.minLoss,minGain:this.cnvValues.minGain}}}}}function g(){const t=this.settings.matrix;const[e,s]=!t.transpose?["sample","term"]:["term","sample"];const[a,n]=t.collabelpos=="top"?["","Grp"]:["Grp",""];const[c,m]=t.rowlabelpos=="left"?["","Grp"]:["Grp",""];const h=e+a;const f=e+n;const p=s+c;const u=s+m;this.samples=this.sampleOrder;this.sampleGrps=this.sampleOrder.filter((t=>t.index===0));this.terms=this.termOrder;this.termGrps=this.termOrder.filter((t=>t.index===0));const d={};const b={top:h,btm:f,left:p,right:u};for(const e in b){const s=b[e];const a=e[0].toUpperCase()+e.slice(1);d[e]={prefix:s,data:this[`${s}s`],offset:t[`${s}LabelOffset`],box:this.dom[`${s}LabelG`],key:this[`${s}Key`],label:this[`${s}Label`],render:this[`render${a}Label`],isGroup:b[e].includes("Grp")}}const g=d.top.offset+t.margin.top+t.scrollHeight;const x=d.left.offset+t.margin.left;this.setAutoDimensions(x);this.setLabelsAndScales();const v=Math.max(t.colwMin,Math.min(t.colwMax,t.colw*t.zoomLevel));const w=v+t.colspace;const G=this[`${e}s`].length;const M=t.rowh+t.rowspace;const C=this[`${s}s`].length;const L=G*(v+t.colspace)+this[`${e}Grps`].length*t.colgspace+(this[`${e}s`].slice(-1)[0]?.totalHtAdjustments||0);const V=Math.min(L,this.availContentWidth);const y=this[`${s}s`].slice(-1)[0];const $=C*M+(this[`${s}Grps`].length-1)*t.rowgspace+(y?.cumulativeAdjustment||0);const T=Math.min(Math.max(v+t.colspace-2*t.collabelpad-t.colspace,t.minLabelFontSize),t.maxLabelFontSize);const z=a=="Grp"?t.grpLabelFontSize:T;d.top.attr={boxTransform:`translate(${x}, ${g-t.collabelgap})`,adjustBoxTransform:e=>d.top.box.attr("transform",`translate(${x+e}, ${g-t.collabelgap})`),labelTransform:"rotate(-90)",labelAnchor:"start",labelGY:0,labelGTransform:this[`col${a}LabelGTransform`],fontSize:z,textpos:{coord:"y",factor:-1},axisFxn:o};if(d.top.prefix=="sample")d.top.display=this.chartType!=="hierCluster"&&v>=t.minLabelFontSize?"":"none";const S=n=="Grp"?t.grpLabelFontSize:T;d.btm.attr={boxTransform:`translate(${x}, ${g+$+t.collabelgap})`,adjustBoxTransform:e=>d.btm.box.attr("transform",`translate(${x+e}, ${g+$+t.collabelgap})`),labelTransform:"rotate(-90)",labelAnchor:"end",labelGY:0,labelGTransform:this[`col${n}LabelGTransform`],fontSize:S,textpos:{coord:"y",factor:1},axisFxn:i};if(d.btm.prefix=="sample")d.btm.display=v>=t.minLabelFontSize?"":"none";const F=c=="Grp"?t.grpLabelFontSize:Math.max(t.rowh+t.rowspace-2*t.rowlabelpad-t.rowspace,t.minLabelFontSize);d.left.attr={boxTransform:`translate(${x-t.rowlabelgap}, ${g})`,labelTransform:"",labelAnchor:"end",labelGX:0,labelGTransform:this[`row${c}LabelGTransform`],fontSize:F,textpos:{coord:"x",factor:-1},axisFxn:l};const W=m=="Grp"?t.grpLabelFontSize:Math.max(t.rowh+t.rowspace-2*t.rowlabelpad,t.minLabelFontSize);d.right.attr={boxTransform:`translate(${x+V+t.rowlabelgap}, ${g})`,labelTransform:"",labelAnchor:"start",labelGX:0,labelGTransform:this[`row${m}LabelGTransform`],fontSize:W,textpos:{coord:"x",factor:1},axisFxn:r};this.dom.sampleLabelsPG.attr("clip-path",t.transpose?"":`url(#${this.seriesClipId})`);this.dom.termLabelsPG.attr("clip-path",t.transpose?`url(#${this.seriesClipId})`:"");this.layout=d;if(!t.zoomCenterPct){t.zoomCenterPct=.5;t.zoomIndex=Math.round(t.zoomCenterPct*V/w);t.zoomGrpIndex=this.sampleOrder[t.zoomIndex]?.grpIndex||0}const O=t.zoomCenterPct*V;const A=t.zoomIndex*w+t.zoomGrpIndex*t.colgspace;const B=G*w+(this[`${e}Grps`].length-1)*t.colgspace;const I=t.zoomLevel<=1&&V>=B?0:Math.max(O-A,V-B);const j=(t.imgWMax>B?B:t.imgWMax)-1e-7;const D=.5*j;const H=Math.max(0,A+D-B);const N=Math.max(0,A-Math.min(D,j)-H);const P=t.zoomLevel<=1&&V>=B?0:N;const _=j+P;this.dimensions={xMin:P,xMax:_,dx:w,dy:M,xOffset:x,yOffset:g,mainw:V,mainh:$,colw:v,zoomedMainW:B,seriesXoffset:I>0?0:I,maxMainW:Math.max(L,this.availContentWidth),imgW:j,pxw:1/window.devicePixelRatio}}var x=Object.freeze({__proto__:null,setAutoDimensions:u,getMaxGrpLabelWidth:d,setLabelsAndScales:b,setLayout:g});export{x as m};
@@ -1 +0,0 @@
1
- import{s as e}from"./legacy-d3-polyfill-bdb2d792.js";import{a8 as t,af as r,ak as s}from"./app-3d14cbe4.js";import{i}from"./termsetting-7467350f.js";function n(n,o,l){const d=this.settings.matrix;const a=[];const c=this.config.divideBy||{};const u=c&&"id"in c?c.id:c.name;for(const s in n){const o=n[s];if(s=="Consequences"){for(const e of this.config.legendValueFilter.lst){if(e.tvs.term.type!=="geneVariant")continue;if(e.legendGrpName!=s)continue;if(e.tvs.legendFilterType=="geneVariant_soft"&&e.filteredOutCats.length==0){continue}for(const t of e.tvs.values){for(const r of t.mclasslst){const s=t.origin?t.origin+r:r;o.values[s]={key:r,dt:t.dt,origin:t.origin,label:t.label||l.mclass[r].label,fill:t.color||l.mclass[r]?.color,order:r=="CNV_loss"?-2:r.startsWith("CNV_")?-1:0,crossedOut:e.tvs.legendFilterType=="geneVariant_hard"?true:false,greyedOut:e.tvs.legendFilterType=="geneVariant_soft"?true:false}}}}const e=Object.keys(o.values);if(!e.length)continue;a.unshift({name:"Consequences",order:o.order,$id:o.$id,dt:o.dt,origin:o.origin,items:e.map(((e,t)=>{const r=o.values[e];const s=r.samples?.size;return{termid:"Consequences",key:r.key,text:this.getLegendItemText(r,s,{},d),color:r.fill,order:t,border:"1px solid #ccc",count:s,isLegendItem:true,dt:r.dt,crossedOut:r.crossedOut,greyedOut:r.greyedOut,origin:r.origin}}))});a[0].items.sort(((e,t)=>e.text<t.text?-1:1));continue}const g=s==u?{tw:c}:this.termOrder.find((e=>e.tw.$id==s||e.tw.legend?.group==s))||{tw:{term:{id:s,name:s,type:s==="CNV"?"geneVariant":""}}};for(const e of this.config.legendValueFilter.lst){const t=g.tw.legend?.group||g.tw.label||g.tw.term.name;if(e.legendGrpName!=s&&e.legendGrpName!=t&&e.tvs.term.name!=t)continue;if(e.tvs.term.type=="geneVariant"){for(const t of e.tvs.values){if(o.dt&&!o.dt.includes(t.dt))o.dt.push(t.dt);if(e.tvs.legendFilterType=="geneVariant_soft"&&e.filteredOutCats.length==0){continue}for(const r of t.mclasslst){const s=t.origin?t.origin+r:r;o.values[s]={key:r,dt:t.dt,origin:t.origin,label:t.label||l.mclass[r].label,fill:t.color||l.mclass[r]?.color,order:r=="CNV_loss"?-2:r.startsWith("CNV_")?-1:0,crossedOut:e.tvs.legendFilterType=="geneVariant_hard"?true:false,greyedOut:e.tvs.legendFilterType=="geneVariant_soft"?true:false}}}}else{if(i(e.tvs.term)){if(g.ref?.bins){for(const t of e.tvs.ranges){const e=g.ref.bins;o.values[t.name]={key:t.name,label:e?.find((e=>e.name==t.name))?.name||t.name,fill:e?.find((e=>e.name==t.name))?.color,crossedOut:true}}}}else if(e.tvs.term.type=="survival"){for(const t of e.tvs.values){const e=g.tw.term.values;o.values[t.key]={key:t.key,label:e?.[t.key]?.label||"Exit code: "+t.key,fill:t.key==1?"#ff7f0e":"#1f77b4",crossedOut:true}}}else{for(const t of e.tvs.values){const e=g.tw.term.values;o.values[t.key]={key:t.key,label:e?.[t.key]?.label||t.key,fill:e?.[t.key]?.color,crossedOut:true}}}}}const m=Object.keys(o.values).sort();const f=Object.values(o.values).find((e=>e.scale));if(f){const e=d.legendGrpLabelMaxChars||26;a.push({name:s.length<e?s:s.slice(0,e)+"...",order:o.order,$id:o.$id,dt:o.dt,origin:o.origin,hasScale:f,items:m.map(((e,t)=>{const r=o.values[e];const i=r.samples?.size;if(r.scale){return{termid:s,key:r.key,text:this.getLegendItemText(r,i,g,d),width:100,scale:r.scale,domain:r.domain,minLabel:r.minLabel,maxLabel:r.maxLabel,order:"order"in r?r.order:t,count:i,isLegendItem:true,dt:r.dt,crossedOut:r.crossedOut,greyedOut:r.greyedOut,origin:r.origin}}else{return{termid:s,key:r.key,text:this.getLegendItemText(r,i,g,d),color:r.fill||this.colorScaleByTermId[s](e),order:"order"in r?r.order:t,count:i,isLegendItem:true,dt:r.dt,crossedOut:r.crossedOut,greyedOut:r.greyedOut,origin:r.origin}}}))})}else{const i=s;const n=g.tw.term;const l=o.ref;if(l.bins)m.sort(((e,t)=>l.bins.findIndex((t=>t.name===e))-l.bins.findIndex((e=>e.name===t))));else if(l.keyOrder)m.sort(((e,t)=>l.keyOrder.indexOf(e)-l.keyOrder.indexOf(t)));if(!this.colorScaleByTermId[i])this.colorScaleByTermId[i]=m.length<11?t(r):t(e);const c=g.tw.legend?.group||g.tw.label||n.name;const u=d.legendGrpLabelMaxChars||26;a.push({name:c.length<u?c:c.slice(0,u)+"...",order:o.order,$id:o.$id,dt:o.dt,origin:o.origin,items:m.map(((e,t)=>{const r=o.values[e];const l=r.samples?.size;return{$id:s,termid:n.id||n.name,key:r.key,text:this.getLegendItemText(r,l,g,d),color:g.scale||r.fill||this.colorScaleByTermId[i](e),order:"order"in r?r.order:t,count:l,isExcluded:r.isExcluded,isLegendItem:true,dt:r.dt,crossedOut:r.crossedOut,greyedOut:r.greyedOut,origin:r.origin}}))})}}for(const e of l.config.legendGrpFilter.lst){if(e.dt.length==1&&e.dt[0]==4&&!a.filter((e=>e.dt))?.find((e=>e.dt.length==1&&e.dt[0]==4))){a.push({name:"CNV",dt:e.dt,origin:e.origin,crossedOut:true,items:e.filteredOutCats.map((t=>({dt:4,termid:"CNV",origin:e.origin,key:t,text:l.mclass[t].label,color:l.mclass[t]?.color,isLegendItem:true})))})}else if(e.dt.includes(s)){const t=l.settings.matrix.controlLabels;const r=e.origin?`${e.origin[0].toUpperCase()+e.origin.slice(1)} ${t.Mutations}`:t.Mutations;if(!a.filter((e=>e.dt))?.find((t=>t.dt.includes(s)&&t.origin==e.origin))){a.push({name:r,dt:e.dt,origin:e.origin,crossedOut:true,items:e.filteredOutCats.map((t=>({dt:l.mclass[t].dt,origin:e.origin,termid:r,key:t,text:l.mclass[t].label,color:l.mclass[t]?.color,isLegendItem:true})))})}}else if(e.dt.length==1&&e.dt[0]==2&&!a.filter((e=>e.dt))?.find((e=>e.dt.length==1&&e.dt[0]==2))){a.push({name:"Fusion RNA",dt:e.dt,origin:e.origin,crossedOut:true,items:e.filteredOutCats.map((t=>({dt:2,origin:e.origin,termid:"Fusion RNA",key:t,text:l.mclass[t].label,color:l.mclass[t]?.color,isLegendItem:true})))})}else if(e.dt.length==1&&e.dt[0]==5&&!a.filter((e=>e.dt))?.find((e=>e.dt.length==1&&e.dt[0]==5))){a.push({name:"Structural Variation",dt:e.dt,origin:e.origin,crossedOut:true,items:e.filteredOutCats.map((t=>({dt:5,origin:e.origin,termid:"Structural Variation",key:t,text:l.mclass[t].label,color:l.mclass[t]?.color,isLegendItem:true})))})}}for(const e of a){e.items.sort(((e,t)=>{const r=e=>{if(!e.greyedOut&&!e.crossedOut)return 0;if(e.greyedOut&&!e.crossedOut)return 1;if(e.crossedOut)return 2;return 3};return r(e)-r(t)}))}return a.sort(((e,t)=>e.crossedOut&&t.crossedOut?0:e.crossedOut?1:t.crossedOut?-1:e.order&&t.order?e.order-t.order:e.order?-1:t.order?1:0))}function o(e,t,r,s){if(e.crossedOut||e.greyedOut){return e.label}let i=e.label;const n=[t];if(e.isExcluded)n.push("hidden");if(r?.tw?.term?.type=="geneVariant"&&s.geneVariantCountSamplesSkipMclass.includes(e.key))n.push("not counted");if(!n.length)return i;return i+=` (${n.join(", ")})`}var l=Object.freeze({__proto__:null,getLegendData:n,getLegendItemText:o});export{l as m};
@@ -1 +0,0 @@
1
- import{i as t,h as e,f as s}from"./termsetting-7467350f.js";import{d as r}from"./app-3d14cbe4.js";import"./tslib.es6-c3c2d88f.js";import"path";function a(a){a.render=function(){const t=a.settings.matrix;const e=a.layout;const s=a.dimensions;const r=a.dom.svg.attr("width")?t.duration:0;a.dom.clipRect.attr("x",s.xOffset-1).attr("y",0).attr("width",s.mainw+3).attr("height",s.mainh+500);a.renderSerieses(t,e,s,r);a.renderLabels(t,e,s,r);a.renderDivideByLabel(t,e,s,r);a.dom.colBeam.attr("width",s.dx).attr("height",s.mainh).style("stroke",t.beamStroke);a.dom.rowBeam.attr("width",s.zoomedMainW).attr("height",t.rowh).style("stroke",t.beamStroke)};a.renderSerieses=function(t,e,s,r){if(a.prevUseCanvas!=t.useCanvas){a.dom.seriesesG.selectAll("g").remove()}if(t.useCanvas){const e=a.dom.seriesesG.selectAll("g");const n=a.dom.seriesesG.append("g").datum(this.serieses);a.renderCanvas(this.serieses,n,s,t,e,r)}else{a.dom.seriesesG.attr("transform",`translate(${s.xOffset+s.seriesXoffset},${s.yOffset})`);const t=a.dom.seriesesG.selectAll(".sjpp-mass-series-g").data(this.serieses,(t=>t.tw.$id));t.exit().remove();t.each(a.renderSeries);t.enter().append("g").attr("class","sjpp-mass-series-g").style("opacity",.001).each(a.renderSeries);a.mouseout()}a.prevUseCanvas=t.useCanvas};a.renderSeries=async function(t){const e=a.settings.matrix;a.dimensions;const s=r(this);s.attr("transform")?e.duration:0;s.attr("transform",`translate(${t.x},${t.y})`).style("opacity",1);const n=t.cells[t.cells.length-1];t.y+n?.y+e.rowh;const o=s.selectAll("rect").data(t.cells,(t=>t.sample+";;"+t.tw.$id+";;"+t.valueIndex));o.exit().remove();o.each(a.renderCell);o.enter().append("rect").each(a.renderCell)};a.renderCanvas=async function(t,e,s,r,n,o){const i=window.devicePixelRatio<=1?1:window.devicePixelRatio;e.selectAll("*").remove();const l=s.imgW;const c=a.dimensions.mainh;const d=window.OffscreenCanvas?new OffscreenCanvas(l*i,c*i):a.dom.holder.append("canvas").attr("width",i*l).attr("height",i*c).style("opacity",0).node();const m=d.getContext("2d");m.imageSmoothingEnabled=false;m.imageSmoothingQuality="high";m.scale(i,i);for(const e of t){for(const t of e.cells){a.renderCellWithCanvas(m,t,e,r,s,e.y)}}if(window.OffscreenCanvas){const t=new FileReader;t.addEventListener("load",(()=>{n?.remove();a.dom.seriesesG.attr("transform",`translate(${s.xOffset+s.seriesXoffset},${s.yOffset})`);e.selectAll("image").remove();e.append("image").attr("xlink:href",t.result).attr("x",s.xMin).attr("width",l).attr("height",c)}),false);const r=await d.convertToBlob({quality:1});t.readAsDataURL(r)}else{n?.remove();a.dom.seriesesG.attr("transform",`translate(${s.xOffset+s.seriesXoffset},${s.yOffset})`);const t=d.toDataURL();e.append("image").attr("width",l).attr("height",c).attr("xlink:href",t);if(!window.OffscreenCanvas)d.remove()}a.mouseout()};a.renderCellWithCanvas=function(t,e,s,r,o,i){if(!e.fill)e.fill=e.$id in a.colorScaleByTermId?a.colorScaleByTermId[e.$id](e.key):n(e);const l=e.x?e.x-o.xMin:0;const c=i?i+e.y:e.y||0;const d=r.useMinPixelWidth?Math.max(e.width||o.colw,o.pxw):e.width||o.colw;const m="height"in e?e.height:r.rowh;t.fillStyle=e.fill;t.fillRect(l,c,d,m)};a.renderCell=function(t){if(!t.fill)t.fill=t.$id in a.colorScaleByTermId?a.colorScaleByTermId[t.$id](t.key):n(t);const e=a.settings.matrix;r(this).attr("x",t.x||0).attr("y",t.y||0).attr("width",t.width||a.dimensions.colw).attr("height","height"in t?Math.max(0,t.height):e.rowh).attr("shape-rendering","crispEdges").attr("stroke-width",0).attr("fill",t.fill)};a.renderLabels=function(t,e,s,n){for(const o of["top","btm","left","right"]){const i=e[o];i.box.style("display",i.display||"").attr("transform",i.attr.boxTransform);const l=i.box.selectAll(".sjpp-matrix-label").data(i.data,i.key);l.exit().remove();l.each(c);l.enter().append("g").attr("class","sjpp-matrix-label").each(c);function c(e){const s=r(this);s.attr("transform",i.attr.labelGTransform);if(!s.select(":scope>text").size())s.append("text");const n=!i.isGroup&&e.grp?.type!=="hierCluster"&&e.tw?.q?.mode=="continuous";const o=i.label(e);const l=s.select(":scope>text").attr("fill","#000");l.attr("display",e.grp?.type==="hierCluster"&&t.clusterRowh<6?"none":i.attr.fontSize<6||o==="configure"?"none":"").attr("font-size",e.grp?.type==="hierCluster"?t.clusterRowh:i.attr.fontSize).attr("text-anchor",i.attr.labelAnchor).attr("transform",i.attr.labelTransform).attr("cursor","pointer").attr(i.attr.textpos.coord,i.attr.textpos.factor*(n?30:0));if(!Array.isArray(o)){l.text(o);l.attr("y",e.grp?.type!=="hierCluster"&&e.tw?.q?.mode=="continuous"?10:e.grp?.type==="hierCluster"?.3*t.clusterRowh:0)}else{l.text("");const t=l.selectAll("tspan").data(o);t.enter().append("tspan").attr("class",d).attr("dx",m).attr("font-size",p).text(f)}l.on("mouseover",o==="configure"?()=>l.attr("opacity",.5):null).on("mouseout",o==="configure"?()=>l.attr("opacity",0):null);const c=s.select(".sjpp-matrix-cell-axis").size()&&true;if(n&&o){if(!c){s.append("g").attr("class","sjpp-matrix-cell-axis").attr("shape-rendering","crispEdges")}const r=s.select(".sjpp-matrix-cell-axis");r.selectAll("*").remove();[e.counts.maxval,e.counts.minval];if(t.transpose);a.dimensions;const n=!t.transpose?0:e.tw.settings.gap-1-e.labelOffset;const o=!t.transpose?e.tw.settings.gap-1-e.labelOffset:0;r.attr("shape-rendering","crispEdges").attr("transform",`translate(${n},${o})`).call(i.attr.axisFxn(e.scales.full.domain(e.scales.tickValues)).tickValues(e.scales.tickValues))}else if(c){s.select(".sjpp-matrix-cell-axis").remove()}}function d(t){return t.cls}function m(t){return t.dx}function p(t){return t.fontSize||i.attr.fontSize}function f(t){return t.text}}};a.colLabelGTransform=(t,e)=>{const s=a.settings.matrix;const r=a.dimensions;t.labelOffset=.8*r.colw;const n=t.grpIndex*s.colgspace+t.totalIndex*r.dx+t.labelOffset+t.totalHtAdjustments;const o=0;return`translate(${n+r.seriesXoffset},${o})`};a.colGrpLabelGTransform=(t,e)=>{const s=a.settings.matrix;const r=a.dimensions;const n=(t.processedLst||t.grp.lst).length;const o=t.grpIndex*s.colgspace+t.prevGrpTotalIndex*r.dx+n*r.dx/2+s.grpLabelFontSize/2+t.totalHtAdjustments;return`translate(${o+r.seriesXoffset},0)`};a.rowLabelGTransform=(t,e)=>{const s=a.settings.matrix;const r=a.dimensions;const n=0;t.labelOffset=.7*(t.grp.type=="hierCluster"?s.clusterRowh:s.rowh);const o=t.grpIndex*s.rowgspace+t.totalIndex*r.dy+t.labelOffset+t.totalHtAdjustments;return`translate(${n},${o})`};a.rowGrpLabelGTransform=(t,e)=>{const s=a.settings.matrix;const r=a.dimensions;const n=(t.processedLst||t.grp.lst).length;const o=t.grpIndex*s.rowgspace+t.prevGrpTotalIndex*r.dy+n*r.dy/2+s.grpLabelFontSize/2+t.totalHtAdjustments;return`translate(0,${o})`};a.rowAxisGTransform=(t,e)=>{const s=a.settings.matrix;const r=a.dimensions;const n=0;const o=t.grpIndex*s.rowgspace+t.totalIndex*r.dy+.7*s.rowh+t.totalHtAdjustments;return`translate(${n},${o})`};a.renderDivideByLabel=async(r,n,o)=>{a.dom.mainG.selectAll(".sjpp-matrix-divide-by-label").remove();if(!a.config.divideBy)return;const i=a.config.divideBy?.term.name||"";const l=i.length<=r.rowlabelmaxchars?i:i.slice(0,r.rowlabelmaxchars)+"…";const c=!r.transpose?[n.left,n.right]:[n.top,n.bottom];const d=c.find((t=>!t.isGroup))?.box;const m=(r.collabelpos=="top"?o.mainh+r.collabelmaxchars:-r.collabelmaxchars)+8;const p=r.rowlabelpos=="left"?"end":"start";const f=r.controlLabels;const g=d.append("g").attr("class","sjpp-matrix-divide-by-label").attr("transform",`translate(0, ${m})`);g.append("text").attr("text-anchor",p).attr("font-style","italic").attr("y",-20).text(`${f.Samples} grouped by`);const h=d.datum({tw:a.config.divideBy}).append("g").attr("class","sjpp-matrix-divide-by-label").attr("transform",`translate(0, ${m})`);const x=h.append("text").attr("text-anchor",p).attr("font-weight",600).text(l).on("click",((t,e)=>{w.showMenu(t,x.node())}));h.append("title").text(`${f.Samples} are grouped by this gene or variable. Click to edit.`);const u=[];const y=t(a.config.divideBy.term)?"ranges":"values";if(a.config.legendValueFilter.lst?.find((t=>t.legendGrpName==a.config.divideBy.term.id||t.legendGrpName==a.config.divideBy.term.name))?.tvs[y]?.length){u.push({label:`Show filtered ${f.samples}`,callback:a.showDeletedSampleGroups})}const w=await e({menuOptions:"{edit,replace,remove}",customMenuOptions:u,vocabApi:a.app.vocabApi,vocab:a.state.vocab,holder:h,debug:a.opts.debug,usecase:{target:"matrix"},getBodyParams:()=>{const t=a.termOrder.filter((t=>t.tw.term.type==="geneVariant")).map((t=>t.tw.term.chr?`${t.tw.term.chr}:${t.tw.term.start}-${t.tw.term.stop}`:t.tw.term.gene||t.tw.term.name));return{currentGeneNames:t}},callback:async e=>{if(a.dom.loadingDiv&&a.dom.svg){a.dom.loadingDiv.selectAll("*").remove();a.dom.loadingDiv.html("").style("display","").style("position","relative").style("left","45%");a.dom.loadingDiv.html("Processing data ...");a.dom.svg.style("opacity",.1).style("pointer-events","none")}if(e&&!e.q)throw"data.q{} missing from pill callback";if(e?.term&&t(e.term)){e.q={...e.q,mode:"discrete"}}if(e)await s(e,a.app.vocabApi);await w.main(e?e:{term:null,q:null});d.datum({tw:e});a.app.dispatch({type:"plot_edit",id:a.id,config:{divideBy:e,legendValueFilter:a.mayRemoveTvsEntry(a.config.divideBy)}})}});const v={term:a.config.divideBy.term,q:a.config.divideBy.q};if(a.config.divideBy.$id)v.$id=a.config.divideBy.$id;w.main(v)};a.adjustSvgDimensions=async function(t){const e=a.settings.matrix;const s=a.settings.hierCluster||{};const r=s.yDendrogramHeight||0;const n=s.xDendrogramHeight||0;const i=a.dimensions;const l=a.dom.svg.attr("width")?e.duration:0;await o(t==e.transpose?l:e.duration);const c=a.layout;const d=c.top.box.node().getBBox();const m=c.btm.box.node().getBBox();const p=c.left.box.node().getBBox();const f=c.right.box.node().getBBox();const g=a.dom.legendG.node().getBBox();a.dom.seriesesG.node().getBBox();i.extraWidth=p.width+f.width+e.margin.left+e.margin.right+e.rowlabelgap*2;i.extraHeight=d.height+m.height+e.margin.top+e.margin.bottom+e.collabelgap*2;i.svgw=i.mainw+i.extraWidth+n;i.svgh=i.mainh+i.extraHeight+g.height+20+e.scrollHeight+r;a.dom.svg.attr("width",i.svgw).attr("height",i.svgh);let h=a.type=="hierCluster"?0:p.width;if(s.xDendrogramHeight){a.dom.termLabelG.selectAll(".sjpp-matrix-label").each((function(t){if(t.grp.type!=="hierCluster")return;const e=this.getBBox();if(e.width>h){h=e.width;t.label.length}}))}const x=-c.left.offset+n+h;const u=!s.xDendrogramHeight?0:Math.max(p.width-(s.xDendrogramHeight+h),0);const y=(c.top.display=="none"?0:d.height)-c.top.offset+r;a.dom.mainG.attr("transform",`translate(${x+u},${y})`);a.dom.clipRect.attr("y",-y).attr("height",i.mainh+500+y);const w=i.xOffset+(e.transpose?20:0);const v=i.yOffset+i.mainh+e.collabelgap+(c.btm.display=="none"?0:m.height)+20;a.dom.legendG.attr("transform",`translate(${w},${v})`);if(s.xDendrogramHeight){const t=h+u-c.left.offset+i.xOffset-i.dx/2;a.dom.hcClipRect.attr("x",t+n+i.dx/2).attr("y",0).attr("width",i.mainw+3).attr("height",i.mainh+s.yDendrogramHeight+500);a.topDendroX=t+i.seriesXoffset;a.dom.topDendrogram.attr("transform",`translate(${a.topDendroX}, 0)`);const r=c.top.display=="none"?0:d.height+e.collabelgap;a.dom.leftDendrogram.attr("transform",`translate(${t-h-10}, ${r})`)}}}function n(t){if(t.fill)return t.fill;const e=t.class||Array.isArray(t.values)&&t.values[0].class;return e?mclass[e].color:"#555"}function o(t){return new Promise((e=>setTimeout(e,t)))}export{a as setRenderers};
@@ -1 +0,0 @@
1
- import{getEmptyCell as e,setCellProps as t,maySetEmptyCell as s}from"./matrix.cells-4dd055e7.js";import"./termsetting-7467350f.js";function i(i){const n=this.settings.matrix;const o=[];const{colw:l,dx:d,dy:a,xMin:c,xMax:p}=this.dimensions;const u=this.config.divideBy||{};const g="id"in u?u.id:u.name;const f={};this.colorScaleByTermId={};for(const i of this.termOrder){const r=i.tw.$id;const u="id"in i.tw.term?i.tw.term.id:i.tw.term.name;const m=u===g;const h=[];const v=i.grp.type=="hierCluster"?n.clusterRowh:a;const y=i.grp.type=="hierCluster"?0:i.totalHtAdjustments;const w=n.transpose?0:i.totalIndex*v+i.visibleGrpIndex*n.rowgspace+y;const x=(i.tw.settings?.gap||0)+w;const C={t:i,tw:i.tw,cells:[],y:w,hoverY0:x,hoverY1:x+(i.tw.settings?.barh||v)};for(const o of this.unfilteredSampleOrder){const{totalIndex:g,grpIndex:v,row:y}=o;C.x=!n.transpose?0:i.totalIndex*d+i.visibleGrpIndex*n.colgspace;const x=y[r];const $={s:o,sample:y.sample,tw:i.tw,term:i.tw.term,termid:u,$id:r,totalIndex:g,grpIndex:v,row:y,t:i,seriesY:w};if(!x){if(!o.grp.isExcluded&&(n.useCanvas||o.grp)){const t=e($,n,this.dimensions);C.cells.push(t)}continue}const I=x.key;const G=x.filteredValues||x.values||[x.value];const E=n.cellEncoding=="oncoprint"?1:G.length;const b=!n.transpose?n.rowh/E:l;const O=!n.transpose?l:l/G.length;const S=[];if(!x||!x.renderedValues?.length){if(!o.grp.isExcluded&&(n.useCanvas||o.grp)){const t=e($,n,this.dimensions);C.cells.push(t)}continue}for(const[e,s]of G.entries()){const l=Object.assign({key:I,siblingCells:S},$);l.valueIndex=e;let u;if(typeof i.tw.setCellProps=="function"){u=i.tw.setCellProps(l,x,s,n,i,this,O,b,d,a,e)}else{const r=i.grp.type=="hierCluster"?t["hierCluster"]:i.tw.term.type=="geneVariant"&&(i.tw?.q?.type=="predefined-groupset"||i.tw?.q?.type=="custom-groupset")?t["categorical"]:t[i.tw.term.type];u=r(l,i.tw,x,s,n,i,this,O,b,d,a,e)}if(!n.useCanvas&&(l.x+l.width<c||l.x-l.width>p))continue;if(u){for(const e of[f,o.grp.legendGroups]){if(!e)continue;if(!e[u.group]){e[u.group]={ref:u.ref,values:{},order:u.order,$id:r,origin:u.entry.origin};if(u.entry.dt)e[u.group].dt=[u.entry.dt]}const t=e[u.group];if(t.dt&&!t.dt.includes(u.entry.dt))t.dt.push(u.entry.dt);const s=u.entry.origin?u.entry.origin+u.value:u.value;if(!t.values[s]){t.values[s]=JSON.parse(JSON.stringify(u.entry));if(u.entry.scale)t.values[s].scale=u.entry.scale}if(!t.values[s].samples)t.values[s].samples=new Set;t.values[s].samples.add(y.sample);if(m){t.values[u.value].isExcluded=o.grp.isExcluded}}}if(!o.grp.isExcluded){if(x.renderedValues.includes(s))C.cells.push(l);S.push(l)}}if(n.showGrid=="rect"&&!o.grp.isExcluded){const t=i.grp.type=="hierCluster"?e($,n,this.dimensions):s[i.tw.term.type]?.(S,$,n,this.dimensions);if(t)h.push(t)}}if(h.length)C.cells.unshift(...h);if(C.cells.length)o.push(C)}r(f,this);this.legendData=this.getLegendData(f,i.refs,this);for(const e of this.sampleGroups){e.legendData=this.getLegendData(e.legendGroups,i.refs,this)}return o}function r(e,t){for(const s of t.config.legendValueFilter.lst){if(s.tvs.term.type=="categorical"&&!e[s.tvs.term.$id]){e[s.tvs.term.$id]={ref:{},values:{},$id:s.tvs.term.$id}}else if(s.tvs.term.type=="geneVariant"&&!e[s.legendGrpName]){e[s.legendGrpName]={ref:{},values:{},dt:[s.tvs.values[0].dt],origin:s.tvs.values[0].origin}}else if((s.tvs.term.type=="integer"||s.tvs.term.type=="float")&&!e[s.tvs.term.$id]){e[s.tvs.term.$id]={ref:{},values:{},$id:s.tvs.term.$id}}}}var n=Object.freeze({__proto__:null,getSerieses:i});export{n as m};
@@ -1 +0,0 @@
1
- import{b as e}from"./termsetting-7467350f.js";import{at as t,ak as r,ap as s,bE as i,bD as n}from"./app-3d14cbe4.js";import"./tslib.es6-c3c2d88f.js";import"path";function o(t,r,s,i={}){const n=r;a(n);if(t.config.chartType=="hierCluster"&&t.config.settings.hierCluster.clusterSamples){return t.hcSampleSorter}if(n.sortSamplesBy=="asListed"){return(e,r)=>t.asListedSampleOrder.indexOf(e.sample)-t.asListedSampleOrder.indexOf(r.sample)}if(n.sortSamplesBy=="name"){return l}const o=n.sortOptions[n.sortSamplesBy];if(!o)throw`unsupported s.sortSamplesBy='${n.sortSamplesBy}'`;t.selectedTermsToSortAgainst=t.termOrder.filter((e=>e.tw.sortSamples));const p=t.selectedTermsToSortAgainst.map((e=>e.tw)).sort(((e,t)=>e.sortSamples.priority-t.sortSamples.priority));const m=[];const b=o.sortPriority;if(b){for(const e of p){const t=structuredClone(e);if(t.sortSamples?.by){m.push(Object.assign({},t));continue}for(const e of b){if(i.skipSorter?.(e,t))continue;if(!e.types.includes(t.term.type))continue;for(const r of e.tiebreakers){const e=Object.assign(structuredClone(t.sortSamples||{}),r);const s=Object.assign(structuredClone(t),{sortSamples:e});m.push(s)}}}}if(b){for(const e of b){for(const r of t.termOrder){if(p.find((e=>e.$id===r.tw.$id)))continue;if(i.skipSorter?.(e,r.tw))continue;if(!e.types.includes(r.tw.term.type))continue;for(const t of e.tiebreakers){m.push(Object.assign({},r.tw,{sortSamples:t}))}}}}else{const r=t.app.vocabApi.vocab?.dslabel=="PNET"?[]:t.termOrder.filter((t=>!t.tw.sortSamples&&e(t.tw.term.type)&&!p.find((e=>e.$id===t.tw.$id)))).map((e=>Object.assign({sortSamples:{by:"values"}},e.tw)));const s=t.app.vocabApi.vocab?.dslabel=="PNET"?[]:t.termOrder.filter((t=>!t.tw.sortSamples&&!e(t.tw.term.type)&&!p.find((e=>e.$id===t.tw.$id)))).map((e=>Object.assign({sortSamples:{by:"hits"}},e.tw)));m.push(...s,...r)}if(i.tiebreaker)m.push(i.tiebreaker);m.push(...n.sortSamplesTieBreakers.map((e=>e)));const h=[];t.maxSampleSet=new Set;for(const e of m){if(typeof e==="function")h.push(e);else if(e.$id=="sample")h.push(l);else if(e.sortSamples.by=="hits")h.push(u(e,t,s));else if(e.term.type!="geneVariant")h.push(d(e,t,s));else if(e.sortSamples.by=="values")h.push(d(e,t,s));else if(e.sortSamples.by=="dt")h.push(f(e));else if(e.sortSamples.by=="class")h.push(c(e,t));else throw`unsupported sortSamplesBy entry by='${e.sortSamples.by}'`}if(!h.find((e=>e.$id==="sample"))){h.push(l)}return(e,t)=>{for(const r of h){const s=r(e,t);if(s!==0)return s}}}function a(e){if(!e.sortOptions)e.sortOptions="custom";if(["selectedTerms","class","dt","hits"].includes(e.sortSamplesBy))e.sortSamplesBy="custom"}function l(e,t){if(e._ref_.label&&t._ref_.label){return e._ref_.label<t._ref_.label?-1:e._ref_.label>t._ref_.label?1:0}if(!e.sample&&!t.sample&&e.row.sample){return e.row.sample<t.row.sample?-1:e.row.sample>t.row.sample?1:0}return e.sample<t.sample?-1:e.sample>t.sample?1:0}function u(e,t,r,s){const{$id:i,sortSamples:n}=e;const o={};for(const e of r){if(!o[e.sample])o[e.sample]=0;if(i in e){o[e.sample]+=e[i].countedValues?.length||0}}return(e,t)=>o[e.sample]==o[t.sample]?0:o[e.sample]>o[t.sample]?-1:1}function d(e,t,r,s){const{$id:i,sortSamples:n}=e;const o=t.termOrder.find((e=>e.tw.$id===i));if(o.grp.type=="hierCluster"){return(e,t)=>{if(i in e&&i in t){return e[i]?.values[0].value-t[i]?.values[0].value}if(i in e)return-1;if(i in t)return 1;return 0}}if(o.tw.q?.mode=="continuous"){return(e,t)=>{if(i in e&&i in t){return e[i]?.value-t[i]?.value}if(i in e)return-1;if(i in t)return 1;return 0}}const a=[];if(o?.term?.values){for(const e of term.values){a.push(e.key)}a.sort(((e,t)=>term.values[e].order<term.values[e].order?-1:1))}else if(o?.ref?.bins){a.push(...o.ref.bins.map((e=>e.name)))}else{for(const e of r){if(!(i in e))continue;const t=e[i].override?.key||e[i].key;if(a.indexOf(t)==-1)a.push(t)}}return(e,t)=>{if(!e[i]&&!t[i])return 0;if(!e[i])return t[i].override?-1:1;if(!t[i])return e[i].override?1:-1;if(e[i].override&&t[i].override){const r="order"in e[i].override?e[i].override.order:a.indexOf(e[i].override.key);const s="order"in t[i].override?t[i].override.order:a.indexOf(t[i].override.key);return r-s}if(!e[i].override&&!t[i].override){return a.indexOf(e[i].key)-a.indexOf(t[i].key)}if(!e[i].override)return-1;if(!t[i].override)return 1;return 0}}function f(e,t,r,s){const{$id:i,sortSamples:n,term:o}=e;const a=n.order;const l=a.length+1;const u=new Map;function d(e){if(!(i in e)){u.set(e.sample,l);return}if(n.filter&&!p(e[i].values,n.filter.values)){u.set(e.sample,l);return}const t=e[i].values.map((e=>a.indexOf(e.dt))).filter((e=>e!==-1));u.set(e.sample,t.length?Math.min(...t):l)}return(e,t)=>{if(!u.has(e.sample))d(e);if(!u.has(t.sample))d(t);return u.get(e.sample)-u.get(t.sample)}}function c(e,t,r,s){const{$id:i,sortSamples:n}=e;if(n.disabled)return()=>0;const o=t.config.settings.matrix;const a=o.showMatrixMutation!="none"&&!o.allMatrixMutationHidden;const l=o.showMatrixCNV!="none"&&!o.allMatrixCNVHidden;const u=n.order.filter(a&&l?e=>!o.hiddenVariants.includes(e):!a&&!l?()=>false:a?e=>o.mutationClasses.includes(e)&&!o.hiddenVariants.includes(e):l?e=>e.startsWith("CNV_")&&!o.hiddenVariants.includes(e):e=>!e.startsWith("CNV_"));if(!u.length&&n.ignoreEmptyFilteredOrder)return()=>0;const d="z";const f=new Map;function c(e){if(!(i in e)){f.set(e.sample,d);return}const t=e[i].renderedValues||e[i].filteredValues||e[i].values;if(n.filter&&!p(t,n.filter.values)){f.set(e.sample,d);return}const r=t.map((e=>e.class));if(!u.find((e=>r.includes(e)))){f.set(e.sample,d);return}else if(!n.isOrdered){f.set(e.sample,"1")}else{const t=u.map((e=>r.includes(e)?"1":"x"));f.set(e.sample,t)}}return(e,t)=>{if(!f.has(e.sample))c(e);if(!f.has(t.sample))c(t);const r=f.get(e.sample);const s=f.get(t.sample);return r<s?-1:r>s?1:0}}function p(e,t){for(const r of e){for(const e of t){if((!e.dt||r.dt===e.dt)&&(!e.mclassLst||e.mclassLst.includes(r.class))&&(!e.class||e.class===r.class)&&(!e.origin||r.origin===e.origin)){return true}}}}function m(e,t,r){if(r?.type=="hierCluster")return e.hcTermSorter;if(t.sortTermsBy=="asListed"){return(e,t)=>e.index-t.index}if(t.sortTermsBy!="sampleCount"){throw`unsupported s.sortTermsBy='${t.sortTermsBy}'`}return(t,r)=>{if(e.app.vocabApi.vocab?.dslabel==="GDC"){if(t.tw?.term?.id&&!r.tw?.term?.id)return-1;if(!t.tw?.term?.id&&r.tw?.term?.id)return 1}if(r.counts.samples!==t.counts.samples)return r.counts.samples-t.counts.samples;if(r.counts.hits!==t.counts.hits)return r.counts.hits-t.counts.hits;return t.index-r.index}}function b(e,o={},a){const l=a||e?.matrix?.settings||{};const u=Object.assign({sample:"sample"},o,l.controlLabels||{});const d={};if(l.sortPriority){const e=1;Object.values(d).forEach((t=>{if(t.order>=e)t.order+=1}));d.custom={label:l.sortPriority.label||"Custom sort",value:"custom",order:e,sortPriority:l.sortPriority}}d.a=l.sortOptions?.a?v(l.sortOptions.a,u):{value:"a",order:1,sortPriority:[{label:`For each gene mutation, sort ${u.samples} by matching data`,types:["geneVariant"],tiebreakers:[{skip:!l.mutationClasses.includes("Fuserna"),label:`${u.Samples} with Fusion RNASeq > without`,filter:{values:[{dt:t}]},by:"class",isOrdered:false,order:["Fuserna"]},{label:`${u.Samples} with truncating mutations > without`,filter:{values:[{dt:r}]},by:"class",isOrdered:false,order:[...l.truncatingMutations],notUsed:[]},{label:`${u.Samples} with CNV data > without`,mayToggle:true,filter:{values:[{dt:s}]},by:"class",isOrdered:true,disabled:true,order:[i,n]},{disabled:false,mayToggle:true,label:`${u.Samples} with protein-changing mutations > without`,filter:{values:[{dt:r}]},by:"class",isOrdered:false,order:l.proteinChangingMutations.filter((e=>!l.truncatingMutations.includes(e))),notUsed:l.truncatingMutations}]},{label:`For each dictionary variable, sort ${u.samples} by matching data`,types:["categorical","integer","float","survival"],tiebreakers:[{label:"Values",by:"values"}]}]};d.name={label:`By ${u.sample} name, ID, or label`,value:"name",order:Object.values(d).length};return d}function h(e){const t=e.settings.matrix;if(t.sortSampleGrpsBy=="hits")return(e,t)=>{if(e.lst.length&&!t.lst.length)return-1;if(!e.lst.length&&t.lst.length)return 1;return t.totalCountedValues-e.totalCountedValues};if(t.sortSampleGrpsBy=="sampleCount")return(e,t)=>{if(e.lst.length&&!t.lst.length)return-1;if(!e.lst.length&&t.lst.length)return 1;if(e.lst.length==t.lst.length){return y(e,t)}return t.lst.length-e.lst.length};if(!e.config.divideBy?.$id)return y;const r=e.data.refs.byTermId[e.config.divideBy.$id];if(r&&!r.keyOrder)r.keyOrder=r.bins?r.bins.map((e=>e.name)):[];const s=e.data.refs.byTermId[e.config.divideBy.$id]?.keyOrder;if(!s)return y;return(e,t)=>{e.order=s.indexOf(e.id);if(e.order==-1)delete e.order;t.order=s.indexOf(t.id);if(t.order==-1)delete t.order;if("order"in e&&"order"in t)return e.order-t.order;if("order"in e)return-1;if("order"in t)return 1;if(e.tw?.term?.values?.[e.id]?.order&&t.tw?.term?.values?.[t.id]?.order){return e.tw.term.values[e.id].order-t.tw.term.values[t.id].order}return y(e,t)}}function y(e,t){return e.name<t.name?-1:1}function g(e){const t=e.settings.matrix;const r=t.sortOptions[t.sortSamplesBy].sortPriority?t.sortOptions[t.sortSamplesBy]:t.sortOptions.a;const s=[];r.sortPriority.forEach((e=>{if(e.types.includes("geneVariant")){e.tiebreakers.forEach((e=>{if(e.by=="class"&&e.order){s.push(...e.order.filter((e=>e!=="WT"&&e!=="Blank")))}}))}}));const i=(e,t)=>{const r=s.indexOf(e.class);const i=s.indexOf(t.class);return r==-1&&i==-1?0:s.indexOf(e.class)==-1?1:s.indexOf(t.class)==-1?-1:s.indexOf(e.class)-s.indexOf(t.class)};return i}function v(e,o){const a=o;let l;for(const t of e.sortPriority){if(t.types.includes("categorical")){if(!t.label)t.label=`For each dictionary variable, sort ${a.samples} by matching data`;continue}if(!t.types?.includes("geneVariant"))continue;if(!l){l=t;if(!t.label)t.label=`For each gene mutation, sort ${a.samples} by matching data`}else{l.tiebreakers.push(...t.tiebreakers);t.toBeDeleted=true}}for(const e of l.tiebreakers){if(e.filter?.values?.find((e=>e.dt==t))){const t={label:`${a.Samples} with Fusion RNASeq > without`,isOrdered:true,disabled:false,mayToggle:true};Object.assign(e,t,e)}else if(e.filter?.values?.find((e=>e.dt==r))){const t=e.order.includes(i)||e.order.includes(n)?`${a.Samples} with SSM + CNV > SSM only`:`${a.Samples} with mutations`;const r={label:t,isOrdered:true,disabled:false,mayToggle:true};Object.assign(e,r,e)}else if(e.order.length==2&&e.order.includes(i)&&e.order.includes(n)){const t={label:`${a.Samples} with CNV only > without`,filter:{values:[{dt:s}]},by:"class",isOrdered:true,disabled:false,mayToggle:true};Object.assign(e,t,e)}}e.sortPriority=e.sortPriority.filter((e=>!e.toBeDeleted));return e}export{g as getMclassSorter,h as getSampleGroupSorter,o as getSampleSorter,b as getSortOptions,m as getTermSorter,v as reshapeSortPriority};
@@ -1 +0,0 @@
1
- import{M as t,P as e,d as a,z as i}from"./app-3d14cbe4.js";const n=`ABCDEFGHIJKLMNOPQRSTUVWXYZ`.split("");function r(r){const{controls:s,holder:l}=r;const o=s.parent;const d=structuredClone(o.config.settings.matrix);const p=d.controlLabels;const c=new t({padding:"",parent_menu:o.app.tip?.d.node()});let y=[],g,u={};const h={dom:{tip:c},opts:r,highlightColor:"none",label:`Sort ${p.Samples}`,title:`Set how to sort ${p.samples}`,type:"custom",expanded:r.expanded||false,expandedSection:r.expandedSection||"",init(t={},s={}){c.clear().hide();if(o.config.settings.matrix!=d)e(d,o.config.settings.matrix);if(d!==t)e(d,t);h.settings=d;h.activeOption=structuredClone(d.sortOptions[d.sortSamplesBy]);g=[{label:`For each selected row, sort ${p.samples} by matching data`,notDraggable:true,tiebreakers:[],handler:U},...h.activeOption.sortPriority,{label:`Sort ${p.samples} by name, alphabetically`,notDraggable:true,tiebreakers:[]}];Object.assign(r,s);r.holder.selectAll("*").remove();const l=r.holder.append("div").style("text-align","right");l.append("button").html("Apply").on("click",j);l.append("button").html("Reset").on("click",((t,e)=>h.init()));const u=r.holder.append("table");const $=u.append("thead");$.append("th").html("Priority").style("text-align","left").style("max-width","0px");$.append("th").html("Description");$.append("th").html("Action");let I=0,M=0;for(const t of g){const e=t.tiebreakers?.[0]?.order||t.handler;const r=u.append("thead").datum(t).property("draggable",!t.notDraggable).attr("droppable",true).on("dragstart",f).on("dragover",m).on("dragleave",x).on("drop",v);y.push(a(r));const s=r.append("tr").style("background-color","#eee").on("mouseover",V);s.append("th").style("padding","5px").style("vertical-align","top").style("font-weight",400).html(n[M++]).on("click",e?b:null);const l=s.append("th").style("padding","5px").style("vertical-align","top").style("text-align","left").style("cursor",e?"pointer":"").on("click",e?b:null);l.append("span").style("margin-right","12px").style("font-weight",400).html(t.label);s.append("th").style("padding","5px").style("vertical-align","top").style("text-align","center").style("font-weight",400).style("cursor",e?"pointer":"").append("span").html(e?"Details":"&nbsp;").on("click",e?b:null);const o=u.append("tbody").datum(t).style("display",h.expandedSection=="all"||h.expandedSection==t.label?"":"none");for(const e of t.tiebreakers){if(e.skip)continue;if(!t.types?.includes("geneVariant")){continue}const a=o.append("tr").on("mouseover",V).datum(e).attr("draggable",!e.disabled&&t.types?.length!==0).attr("droppable",!e.disabled&&t.types?.length!==0).on("dragstart",k).on("dragover",O).on("dragleave",D).on("drop",A);if(!e.disabled)I++;const n=a.append("td").attr("title",e.disabled?`This tiebreaker is currently not being used to sort ${p.cases}. Check the box to use.`:`The number indicates the order in which this tiebreaker is used. Unched the box to skip.`).datum(e);n.style("padding","5px").style("vertical-align","top").style("text-align","center");n.append("span").html(!e.disabled?I:"");const r=a.append("td").style("opacity",e.disabled?.5:1).style("padding","5px").style("vertical-align","top").style("max-width","500px");r.append("span").html(e.label||"");if(!e.disabled){const t=r.append("label");t.append("span").html("<br>(use data list order ");if(!e.isOrdered)e.isOrdered=false;t.append("input").datum(e).attr("type","checkbox").property("checked",e.isOrdered).style("vertical-align","bottom").on("change",S);t.append("span").html(")");const a=e.order;r.append("div").attr("class","sjpp-matrix-sorter-ui-value").selectAll("div").data(a.map(((t,a)=>({lstName:"order",key:t,cls:i[t],tb:e,dragstart:P,dragover:w,dragleave:T,drop:_,filterByClass:d.filterByClass,index:a})))).enter().append("div").style("display",e.isOrdered?"block":"inline-block").each(C);if(e.notUsed?.length){const t=r.append("div");t.append("div").attr("data-testid","sjpp-matrix-sorter-ui-hidden-add").style("display","inline-block").style("padding","5x").style("vertical-align","top").style("padding","3px 5px").style("cursor","pointer").html(`+Add`).on("click",N)}}const s=a.append("td").style("text-align","center").style("vertical-align","top");if(e.mayToggle){s.append("button").datum(e).html(e.disabled?"Enable":"Disable").on("click",B)}}const c=o.append("tr").attr("draggable",true).on("mouseover",V);c.append("td").html("&nbsp;");const g=c.append("td").style("text-align","left").html(t.details&&!t.order?.length?t.details:"&nbsp;");if(t.handler)t.handler(g,c,o);c.append("td").html("&nbsp;")}},toggleSection:b,trackDraggedSection:f,highlightSection:m,unhighlightSection:x,adjustSortPriority:v,trackDraggedTieBreaker:k,highlightTieBreaker:O,unhighlightTieBreaker:D,adjustTieBreakers:A,trackDraggedValue:P,highlightValue:w,unhighlightValue:T,adjustValueOrder:_,apply:j};function b(t,e={label:"all"}){h.expandedSection=h.expandedSection===e.label?"":e.label;h.expanded=!!h.expandedSection;h.init()}function f(t,e){u.type="sortPriority";u.data=e;u.index=h.activeOption.sortPriority.indexOf(e)}function m(t,e){if(u.type!="sortPriority"||e==u.data)return;t.preventDefault();const i=h.activeOption.sortPriority.indexOf(e);const n=i<u.index?"border-top":i>u.index?"border-bottom":"";if(!n)return;a(this).selectAll("th").style(n,"2px solid blue")}function x(t,e){if(u.type!="sortPriority")return;t.preventDefault();a(this).selectAll("th").style("border","none")}function v(t,e){if(e==u.data)return;const a=h.activeOption.sortPriority.indexOf(e);const i=o.config.settings.matrix;h.activeOption.sortPriority.splice(u.index,1);h.activeOption.sortPriority.splice(a,0,u.data);h.init({sortOptions:{[i.sortSamplesBy]:h.activeOption}})}function k(t,e){u.type="tiebreaker";u.data=e;u.sectionData=t.target.closest("tbody").__data__;u.priorityIndex=h.activeOption.sortPriority.indexOf(u.sectionData);u.index=u.sectionData.tiebreakers.indexOf(e)}function O(t,e){if(u.type!="tiebreaker"||e==u.data)return;t.preventDefault();const i=u.sectionData.tiebreakers.indexOf(e);const n=i<u.index?"border-top":i>u.index?"border-bottom":"";if(!n)return;a(this).selectAll("td:nth-child(2)").style(n,"2px solid blue")}function D(t,e){if(u.type!="tiebreaker")return;t.preventDefault();a(this).selectAll("td:nth-child(2)").style("border","none")}function S(t,e){t.stopPropagation();e.isOrdered=!e.isOrdered;h.init({sortOptions:{[d.sortSamplesBy]:h.activeOption}})}function B(t,e){t.stopPropagation();e.disabled=!e.disabled;h.init({sortOptions:{[d.sortSamplesBy]:h.activeOption}})}function A(t,e){if(u.type!="tiebreaker"||e==u.data)return;t.preventDefault();const a=u.sectionData.tiebreakers.indexOf(e);const i=o.config.settings.matrix;u.sectionData.tiebreakers.splice(u.index,1);u.sectionData.tiebreakers.splice(a,0,u.data);h.init({sortOptions:{[i.sortSamplesBy]:h.activeOption}})}function C(t){const e=[];if(t.tb.notUsed?.includes(t.key))e.push(`- Click on this label to include in used data values.`);if(t.filterByClass[t.key])e.unshift("- Click on the corresponding entry in the matrix legend or Mutation/CNV menus to unhide");if(e.length)e.unshift(`To use this data value for sorting ${p.samples}:`);t.tb.notUsed?.includes(t.key);const i=t.filterByClass[t.key]=="value"?.5:1;const n=a(this).attr("aria-label",e.length?e.join("\n"):`Click to not use this data value to sort ${p.samples}`).attr("draggable",t.tb.isOrdered?true:false).attr("droppable",t.tb.isOrdered?true:false).style("width","fit-content").style("margin-right","10px").style("overflow","hidden").style("white-space","nowrap").style("opacity",i).style("cursor","pointer").on("dragstart",t.dragstart).on("dragover",t.dragover).on("dragleave",t.dragleave).on("drop",t.drop).on("mouseenter",(()=>r.style("opacity",1))).on("mouseleave",(()=>r.style("opacity",0))).on("click",(()=>{if(e.length){const a="sjpp-matrix-sorter-value-note";n.selectAll(`.${a}`).remove();const i=n.append("div").attr("class",a).style("max-width","200px").style("padding","5px");i.html(e.join("<br>"));if(t.filterByClass[t.key])return}const a=t.lstName=="order"?"notUsed":"order";if(!t.tb[a])t.tb[a]=[];const i=t.tb[a];t.tb[t.lstName].splice(t.index,1);if(t.lstName=="order")i.unshift(t.key);else i.push(t.key);h.init({sortOptions:{[d.sortSamplesBy]:h.activeOption}})}));n.append("div").style("display","inline-block").style("cursor","pointer").style("width","12px").style("height","12px").style("margin-right","3px").style("background-color",t.cls.color);n.append("span").style("cursor","pointer").style("text-decoration",t.filterByClass[t.key]=="case"?"line-through":"").html(t.cls.label+(t.filterByClass[t.key]?" (<i>not used since this value is hidden</i>)":""));const r=n.append("div").style("display","inline-block").style("width","12px").style("cursor","pointer").style("opacity",0).style("color",t.lstName=="order"?"red":"green").html(t.lstName=="order"?"&cross;":"&check;")}function P(t,e){t.stopPropagation?.();u.type="value";u.data=e;u.sectionData=t.target.closest("tbody").__data__;u.priorityIndex=h.activeOption.sortPriority.indexOf(u.sectionData);u.tiebreaker=t.target.closest("tr").__data__;u.tbIndex=u.sectionData.tiebreakers.indexOf(u.priorityIndex);u.order=u.tiebreaker.order}function w(t,e){t.stopPropagation?.();if(u.type!="value"||e==u.data)return;if(e.tb!=u.data.tb)return;t.preventDefault();u.order.indexOf(e);a(this).style("border","2px solid blue")}function T(t,e){t.stopPropagation?.();if(u.type!="value")return;t.preventDefault();a(this).style("border","none")}function _(t,e){t.stopPropagation?.();if(u.type!="value"||e==u.data)return;t.preventDefault();const a=h.settings;u.data.tb[u.data.lstName].splice(u.data.index,1);e.tb[e.lstName].splice(e.index,0,u.data.key);const i=a.hiddenVariants.indexOf(u.data.key);const n=structuredClone(a.hiddenVariants);const r=structuredClone(a.filterByClass);if(i!=-1){n.splice(i,1);r[u.data.key]=false}h.init({hiddenVariants:n,filterByClass:r,sortOptions:{[a.sortSamplesBy]:h.activeOption}})}function N(t,e){t?.stopPropagation();const a=c.clear().d.append("div").attr("data-testid","sjpp-matrix-sorter-ui-hidden-vals").style("margin-top","3px").style("vertical-align","top").style("padding-left","12px");a.selectAll("div").data(e.notUsed.map(((t,a)=>({lstName:"notUsed",key:t,cls:i[t],tb:e,dragstart:P,dragover:w,dragleave:T,drop:_,filterByClass:d.filterByClass,index:a})))).enter().append("div").style("display","block").each(C);c.showunder(t.target)}function j(){o.app.tip?.hide();o.app.dispatch({type:"plot_edit",id:o.id,config:{settings:{matrix:{sortOptions:{[d.sortSamplesBy]:h.activeOption}}}}})}function V(){}function U(t,e){if(!o.selectedTermsToSortAgainst?.length){t.html(`Click on a matrix row label and the left triangle to add an entry here`);return}const i=o.selectedTermsToSortAgainst.map((t=>({t:t,label:t.tw.term.name+(t.tw.term.type=="geneVariant"?" alterations":" values")})));const n=a(e.node().parentNode);n.selectAll("tr").remove();n.selectAll("tr").data(i).enter().append("tr").selectAll("td").data(((t,e)=>[{label:e+1,textAlign:"center",cursor:"",t:t.t},{label:t.label,textAlign:"left",cursor:""},{label:"Delete",textAlign:"center",cursor:"pointer",click:o.unsortSamplesAgainstTerm,data:t}])).enter().append("td").style("text-align",(t=>t.textAlign)).style("cursor",(t=>t.cursor)).html((t=>t.label)).on("click",((t,e)=>e.click?.(t,e)))}h.init();h.api={main:h.init,destroy:()=>{r.holder.selectAll("*").remove()}};if(r.debug)h.api.Inner=h;return h.api}export{r as getSorterUi};
@@ -1 +0,0 @@
1
- import{_ as e}from"./tslib.es6-c3c2d88f.js";import{P as n}from"./app-3d14cbe4.js";function i(e){switch(e){case"./numeric.binary.ts":return import("./numeric.binary-88bf9e0d.js");case"./numeric.continuous.ts":return import("./numeric.continuous-d27197cf.js");case"./numeric.discrete.ts":return import("./numeric.discrete-b826f33b.js");case"./numeric.spline.ts":return import("./numeric.spline-b3968b77.js");case"./numeric.toggle.ts":return import("./numeric.toggle-ab8b79be.js");default:return new Promise((function(n,i){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(i.bind(null,new Error("Unknown variable dynamic import: "+e)))}))}}function t(n){return e(this,void 0,void 0,(function*(){const e=n.opts.numericEditMenuVersion;const i=e.length>1?"toggle":e[0];const t=yield o(i);return yield t.getHandler(n)}))}function r(i,t,r=null){var o;return e(this,void 0,void 0,(function*(){if(!((o=i.q)===null||o===void 0?void 0:o.mode))i.q={mode:"continuous"};if(r)n(i.q,r);if(i.q.mode!="continuous"&&!i.term.bins){yield t.setTermBins(i)}return i}))}function o(n){return e(this,void 0,void 0,(function*(){try{return yield i(`./numeric.${n}.ts`)}catch(e){if(e.stack)console.log(e.stack);throw`Type numeric.${n} does not exist [handlers/numeric.ts importSubtype()]`}}))}export{r as fillTW,t as getHandler};
@@ -1 +0,0 @@
1
- import{j as t}from"./termsetting-7467350f.js";function n(n){const o=n.sort(((t,n)=>t-n));const s=Math.abs(o[0]-o[o.length-1]);const r=t(s);const e=s>=10?0:s>=1?1:r+2;return n.map((t=>Number(t.toFixed(e))))}export{n};
@@ -1 +0,0 @@
1
- import{_ as e}from"./tslib.es6-c3c2d88f.js";import{o as t}from"./termsetting-7467350f.js";import{convertViolinData as i}from"./tvs.numeric-d9108473.js";import{v as o}from"./violinRenderer-7f46e468.js";import{m as l}from"./checkbox-96437f4d.js";import"./app-3d14cbe4.js";import"path";import"./tvs.density-060d3006.js";import"./brush-06989a5e.js";import"./pointer-c7475677.js";import"./nodrag-f6c0801c.js";import"./niceNumLabels-ef07b7ad.js";import"./axis-747c801e.js";import"./line-264f8f9e.js";import"./constant-426a1483.js";import"./basis-3870f5ba.js";function n(n){return{getPillName(e){return t(n,e)},getPillStatus(){return{text:"continuous"}},showEditMenu(t){var r,a,p,d,c;return e(this,void 0,void 0,(function*(){s(n);t.style("padding","5px").selectAll("*").remove();const e=t.append("div");const m={width:500,height:100,xpad:10,ypad:20};const u=yield n.vocabApi.getViolinPlotData({tw:{term:n.term,q:n.q},filter:n.filter,filter0:(a=(r=n.vocabApi.state)===null||r===void 0?void 0:r.termfilter)===null||a===void 0?void 0:a.filter0,svgw:m.width/window.devicePixelRatio},(d=(p=n.opts).getBodyParams)===null||d===void 0?void 0:d.call(p));const v=i(u);const f=new o(e,v,m.width,m.height);f.render();let h;if(((c=n.usecase)===null||c===void 0?void 0:c.target)=="matrix"){h=l({holder:t,labeltext:"Convert to z-score",checked:n.q.convert2ZScore?true:false,divstyle:{display:"inline-block",padding:"3px 10px"},callback:e=>{n.q.convert2ZScore=e;if(e){g.property("value",1);delete n.q.scale}}})}const y=t.append("div").style("display","inline-block");y.append("div").style("display","inline-block").style("padding","3px 10px").html("Scale values");const g=y.append("select").on("change",(e=>{if(!n.q)throw`Missing .q{} [numeric.continuous getHandler()]`;if(e.target.value!="1"){if(h)h.property("checked",false);n.q.scale=Number(e.target.value)}else delete n.q.scale}));g.selectAll("option").data([{html:"No Scaling",value:1},{html:"Per 10",value:10},{html:"Per 100",value:100},{html:"Per 1000",value:1e3}]).enter().append("option").attr("value",(e=>e.value)).html((e=>e.html)).property("selected",(e=>"scale"in n.q&&e.value==n.q.scale));const x=t.append("div").style("padding","3px 10px");if(n.term.type=="survival"){x.append("div").style("font-size",".8em").style("margin","20px 5px 5px 5px").html(`\n\t\t\t\t\t\tDisplay survival outcomes as time to event (${n.term.unit})\n\t\t\t\t\t`)}x.append("button").style("margin","5px").html("Apply").on("click",(()=>{n.q.mode="continuous";n.runCallback()}))}))}}}function s(e){const t=e.numqByTermIdModeType;const i=e.term;if(!t[i.id])t[i.id]={};if(!t[i.id].continuous){t[i.id].continuous={mode:"continuous"}}const o=JSON.parse(JSON.stringify(t[i.id].continuous));e.q=Object.assign(o,e.q)}export{n as getHandler};
@@ -1 +0,0 @@
1
- import{_ as t}from"./tslib.es6-c3c2d88f.js";import{W as e,k as n}from"./app-3d14cbe4.js";import{setDensityPlot as i}from"./density-e0aff1d0.js";import{g as s,a}from"./termdb.bins-a60aaa77.js";import{T as r}from"./toggleButtons-2144daab.js";import{m as o}from"./radiobutton-09bff425.js";import{o as l}from"./termsetting-7467350f.js";import{convertViolinData as d}from"./tvs.numeric-d9108473.js";import{v as u}from"./violinRenderer-7f46e468.js";import"./drag-e11d6644.js";import"./nodrag-f6c0801c.js";import"./pointer-c7475677.js";import"path";import"./tvs.density-060d3006.js";import"./brush-06989a5e.js";import"./niceNumLabels-ef07b7ad.js";import"./axis-747c801e.js";import"./line-264f8f9e.js";import"./constant-426a1483.js";import"./basis-3870f5ba.js";function p(e){return{getPillName(t){return l(e,t)},getPillStatus(){var t,n;if(!e.q)throw`Missing .q{} [numeric.discrete getPillStatus()]`;const i=((t=e.q)===null||t===void 0?void 0:t.name)||((n=e.q)===null||n===void 0?void 0:n.reuseId);if(i)return{text:i};if(e.q.type=="regular-bin")return{text:"bin size="+e.q.bin_size};return{text:e.q.lst.length+" bins"}},showEditMenu(n){return t(this,void 0,void 0,(function*(){m(e,n)}))}}}function m(e,n){var s,a,r,o;return t(this,void 0,void 0,(function*(){e.num_obj={};e.num_obj.plot_size={width:500,height:100,xpad:10,ypad:20};n.selectAll("*").remove();n.append("div").style("padding","10px").style("text-align","center").html("Getting distribution data ...<br/>");try{const t=yield e.vocabApi.getViolinPlotData({tw:{term:e.term,q:{mode:"continuous"}},filter:e.filter,filter0:(a=(s=e.vocabApi.state)===null||s===void 0?void 0:s.termfilter)===null||a===void 0?void 0:a.filter0,svgw:e.num_obj.plot_size.width/window.devicePixelRatio,strokeWidth:.2},(o=(r=e.opts).getBodyParams)===null||o===void 0?void 0:o.call(r));e.num_obj.density_data=d(t)}catch(t){console.log(t)}n.selectAll("*").remove();if(e.term.type=="survival"){e.dom.discreteSur_div=n.append("div").style("padding","4px");w(e);return}e.dom.num_holder=n;e.dom.density_div=n.append("div");e.vr=new u(e.dom.density_div,e.num_obj.density_data,e.num_obj.plot_size.width,e.num_obj.plot_size.height);e.num_obj.svg=e.vr.svg;e.dom.bins_div=n.append("div").style("padding","4px");y(e);i(e);v(e);f(e);I(e)}))}function c(t){var e;if(t.q.type=="regular-bin"){if(!t.q.first_bin){t.q.first_bin={stop:Number(t.dom.first_stop_input.property("value"))}}t.q.startinclusive=t.dom.boundaryInput.property("value")=="startinclusive";t.q.stopinclusive=t.dom.boundaryInput.property("value")=="stopinclusive";const n=t.dom.bin_size_input.property("value");t.q.bin_size=Number(n);if(n.includes(".")&&!n.endsWith(".")){t.q.rounding="."+n.split(".")[1].length+"f"}else{t.q.rounding=".0f"}if(t.q.scale)delete t.q.scale;if(Number.isFinite((e=t.q.last_bin)===null||e===void 0?void 0:e.start));else{delete t.q.last_bin}t.numqByTermIdModeType[t.term.id].discrete["regular-bin"]=JSON.parse(JSON.stringify(t.q))}else if(t.term.type!=="survival"){if(t.dom.bins_table.selectAll("input").node().value){t.q.lst=b(t);t.numqByTermIdModeType[t.term.id].discrete["custom-bin"]=JSON.parse(JSON.stringify(t.q))}}t.q.mode="discrete";t.dom.tip.hide();t.runCallback()}function b(t){var e;const n=t.dom.boundaryInput.property("value")=="startinclusive";const i=t.dom.boundaryInput.property("value")=="stopinclusive";const r=t.dom.bins_table.node().querySelectorAll("input");let o;const l=t.dom.customBinBoundaryInput.property("value").split("\n").filter((t=>t!=""&&!isNaN(t)));const d=new Set(l);const u=Array.from(d).map((t=>+t)).sort(((t,e)=>t-e)).map(((e,l)=>{const d={start:+e,startinclusive:n,stopinclusive:i};if(o){delete o.stopunbounded;o.stop=d.start;const e=r[l].value;o.label=e?e:s(o,t.q,t.term.valueConversion);o.range=a(o,t.q)}o=d;return d}));if(u.length==0)return;o.stopunbounded=true;const p=(e=r[u.length])===null||e===void 0?void 0:e.value;o.label=p?p:s(o,t.q,t.term.valueConversion);o.range=a(o,t.q);u.unshift({startunbounded:true,stop:u[0].start,startinclusive:n,stopinclusive:i,label:r[0].value});if(!u[0].label)u[0].label=s(u[0],t.q,t.term.valueConversion);if(!u[0].range)u[0].range=a(u[0],t.q);return u}function y(t){var e,n;const i=t.num_obj.density_data;const r=t.numqByTermIdModeType;const o=t.term;if(!r[o.id])r[o.id]={};if(!r[o.id].discrete){const e=!Number.isFinite(i.minvalue)||!Number.isFinite(i.maxvalue)?0:i.maxvalue!=i.minvalue?i.minvalue+(i.maxvalue-i.minvalue)/2:i.maxvalue;r[o.id].discrete={"regular-bin":t.q&&t.q.type=="regular-bin"?JSON.parse(JSON.stringify(t.q)):t.opts.use_bins_less&&o.bins.less?JSON.parse(JSON.stringify(o.bins.less)):JSON.parse(JSON.stringify(o.bins.default)),"custom-bin":t.q&&t.q.type=="custom-bin"?t.q:{type:"custom-bin",mode:"discrete",lst:[{startunbounded:true,startinclusive:true,stopinclusive:false,stop:+e.toFixed(o.type=="integer"?0:2)},{stopunbounded:true,startinclusive:true,stopinclusive:false,start:+e.toFixed(o.type=="integer"?0:2)}]}};if(!r[o.id].discrete["regular-bin"].type){r[o.id].discrete["regular-bin"].type="regular-bin"}}if(t.q&&!t.q.mode)t.q.mode="discrete";if(!t.q||t.q.mode!=="discrete")t.q={};if(!t.q.type){t.q.type=((n=(e=t.term.bins)===null||e===void 0?void 0:e.default)===null||n===void 0?void 0:n.type)||"regular-bin"}const l=JSON.parse(JSON.stringify(r[o.id].discrete[t.q.type]));t.q=Object.assign(l,t.q);const d="bin_size"in t.q&&t.q.bin_size.toString();if(!t.q.rounding&&typeof d=="string"&&d.includes(".")&&!d.endsWith(".")){const e=d.split(".")[1].length;t.q.rounding="."+e+"f"}if(t.q.lst){t.q.lst.forEach((e=>{if(!("label"in e))e.label=s(e,t.q,t.term.valueConversion);if(!("range"in e))e.range=a(e,t.q)}))}}function v(t){t.dom.boundaryInclusionDiv=t.dom.bins_div.append("div").style("margin-left","5px");t.dom.boundaryInclusionDiv.append("span").style("padding","5px").style("color","rgb(136, 136, 136)").html("Boundary Inclusion");const e='<span style="font-family:Times;font-style:italic">x</span>';t.dom.boundaryInput=t.dom.boundaryInclusionDiv.append("select").style("margin-left","10px").on("change",(function(){const e=t.q.mode=="binary"?t.numqByTermIdModeType[t.term.id].binary:t.numqByTermIdModeType[t.term.id].discrete[t.q.type];e.lst=t.q.lst;if(e.type=="regular-bin"){n(e)}else{e.lst.forEach((e=>{n(e);e.label=s(e,t.q,t.term.valueConversion);e.range=a(e,t.q)}));z(t,e.lst)}function n(e){e.startinclusive=t.dom.boundaryInput.node().selectedIndex==1;e.stopinclusive=t.dom.boundaryInput.node().selectedIndex==0}}));t.dom.boundaryInput.selectAll("option").data([{value:"stopinclusive",html:"start &lt; "+e+" &le; end"},{value:"startinclusive",html:"start &le; "+e+" &lt; end"}]).enter().append("option").property("value",(t=>t.value)).property("selected",(e=>{if(t.q.type=="regular-bin")return t.q[e.value]==true;else return t.q.lst[0][e.value]==true})).html((t=>t.html))}function f(e){const n=e.dom.bins_div.append("div").style("margin","10px");if(e.term.bins.default.type=="custom-bin"){e.q.type="custom-bin";y(e);i(e);j(e,n);return}if(e.term.bins.default.type!="regular-bin")throw"self.bins.default.type is neither regular-bin or custom-bin, cannot render ui";const s=[{active:e.q.type=="regular-bin",label:"Same bin size",callback:(n,a)=>t(this,void 0,void 0,(function*(){e.q.type="regular-bin";y(e);i(e);if(!s[0].isInitialized){q(e,a.contentHolder);s[0].isInitialized=true}}))},{active:e.q.type=="custom-bin",label:"Varying bin sizes",callback:(n,a)=>t(this,void 0,void 0,(function*(){e.q.type="custom-bin";y(e);i(e);if(!s[1].isInitialized){j(e,a.contentHolder);s[1].isInitialized=true}}))}];new r({holder:n,tabs:s}).main()}function g(t,e){if(!t.term.valueConversion)return;e.append("div").style("margin-bottom","5px").style("opacity",.6).text(`Note: using values by the unit of ${t.term.valueConversion.fromUnit}.`)}function q(t,e){g(t,e);t.dom.bins_table=e.append("table");_(t,t.dom.bins_table.append("tr"));h(t,t.dom.bins_table.append("tr"));x(t,t.dom.bins_table.append("tr"))}function _(t,n){n.append("td").style("margin","5px").style("opacity",.5).text("Bin Size");const s=t.num_obj.density_data;const a=t.q.bin_size;t.dom.bin_size_input=n.append("td").append("input").attr("type","number").attr("value","rounding"in t.q?e(t.q.rounding)(t.q.bin_size):t.q.bin_size).style("margin-left","15px").style("width","100px").style("color",(()=>t.q.bin_size>Math.abs(s.maxvalue-s.minvalue)?"red":"")).on("change",(e=>{const n=Number(e.target.value);if(n<=0){window.alert("Please enter non-negative bin size.");e.target.value=a;return}if((s.maxvalue-s.minvalue)/n>100){window.alert("Bin size too small. Try setting a bigger value.");e.target.value=a;return}t.q.bin_size=n;t.dom.bin_size_input.style("color",t.q.bin_size>s.maxvalue-s.minvalue?"red":n!=a?"green":"");i(t)}))}function h(t,e){if(!t.q.first_bin)throw"missing q.first_bin";e.append("td").style("margin","5px").style("opacity",.5).text("First Bin Stop");const n=t.num_obj.density_data;const i=t.q.first_bin.stop;t.dom.first_stop_input=e.append("td").append("input").attr("type","number").property("value",i).style("width","100px").style("margin-left","15px").on("change",(e=>{const s=Number(e.target.value);if(s<n.minvalue||s>n.maxvalue){window.alert("First bin stop value out of bound.");e.target.value=i;return}if(t.q.first_bin)t.q.first_bin.stop=s;t.renderBinLines(t,t.q)}));e.append("td").append("div").style("font-size",".6em").style("opacity",.5).style("display",t.num_obj.no_density_data?"none":"block").text("Indicated by left-most red line. Drag to change.")}function x(t,e){const n=!t.q.last_bin||!Number.isFinite(t.q.last_bin.start);e.append("td").style("margin","5px").style("opacity",.5).text("Last Bin Start");const s=t.num_obj.density_data;const a=e.append("td").style("padding-left","15px").style("vertical-align","top");const r=a.append("div");o({holder:r,options:[{label:"Automatic",value:"auto",checked:n},{label:"Fixed",value:"fixed",checked:!n}],callback:e=>{if(e=="auto"){delete t.q.last_bin;l.style("display","none");t.renderBinLines(t,t.q);i(t);return}l.style("display","inline-block");if(!t.q.last_bin)t.q.last_bin={};if(t.dom.last_start_input.property("value")==""){t.dom.last_start_input.property("value",s.maxvalue)}d();i(t)}});const l=e.append("td").append("div").style("display",n?"none":"inline-block");t.dom.last_start_input=l.append("input").attr("type","number").property("value",t.q.last_bin?t.q.last_bin.start:"").style("width","100px").on("change",d);l.append("div").style("font-size",".6em").style("opacity",.5).style("display",t.num_obj.no_density_data?"none":"block").text("Indicated by right-most red line. Drag to change.");function d(){const e=Number(t.dom.last_start_input.property("value"));if(t.q.first_bin&&e<=t.q.first_bin.stop){window.alert("Last bin start cannot be smaller than first bin stop.");t.dom.last_start_input.property("value",s.maxvalue);return}if(e>s.maxvalue){window.alert("Last bin start value out of bound.");t.dom.last_start_input.property("value",s.maxvalue);return}if(!t.q.last_bin)t.q.last_bin={};t.q.last_bin.start=e;t.renderBinLines(t,t.q)}}function j(e,i){g(e,i);e.dom.bins_table=i.append("div").style("display","flex").style("width","100%");const s=e.dom.bins_table.append("div").style("margin-right","20px");e.dom.rangeAndLabelDiv=e.dom.bins_table.append("div");s.append("div").style("margin-bottom","5px").style("color","rgb(136, 136, 136)").text("Bin boundaries");e.dom.customBinBoundaryInput=s.append("textarea").style("width","100px").style("height","70px").text(e.q.lst.slice(1).map((t=>t.start)).join("\n")).on("change",a).on("keyup",(function(i){return t(this,void 0,void 0,(function*(){if(!n(i)&&i.key!=8)return;if(!e.dom.bins_table.selectAll("input").node().value)return;a.call(this)}))}));s.append("div").style("font-size",".6em").style("margin-left","1px").style("color","#858585").html("Enter numeric values </br>seperated by ENTER");function a(){const t=e.dom.bins_table.selectAll("input");t.property("value","");const n=b(e);if(n==undefined){return}const i=e.numqByTermIdModeType[e.term.id].discrete[e.q.type];if(e.q.hiddenValues)i.hiddenValues=e.q.hiddenValues;if(r(n,i.lst)){i.lst=n;e.renderBinLines(e,i)}z(e,i.lst);e.q.lst=i.lst}function r(t,e){if(t.length!=e.length)return true;if(Object.keys(t[0]).length!==Object.keys(e[0]).length)return true;for(const[n,i]of e.entries()){for(const e of Object.keys(i)){if(i[e]&&i[e]!==t[n][e]){return true}}}return false}z(e,e.q.lst)}function z(t,e){const n=t.dom.rangeAndLabelDiv;n.selectAll("*").remove();const i=n.append("div").style("display","grid").style("grid-template-columns","auto auto").style("column-gap","20px").style("align-items","center");i.append("div").style("margin-bottom","3px").style("color","rgb(136, 136, 136)").text("Range");i.append("div").style("margin-bottom","3px").style("color","rgb(136, 136, 136)").text("Bin label");for(const[t,n]of e.entries()){i.append("div").attr("name","range").html(n.range);i.append("div").append("input").attr("type","text").style("margin","2px 0px").property("value",n.label).on("change",(function(){e[t].label=this.value}))}t.dom.customBinRanges=t.dom.bins_table.selectAll('div[name="range"]').data(e);t.dom.customBinLabelInput=t.dom.bins_table.selectAll("input").data(e)}function I(t){const e=t.dom.bins_div.append("div");e.append("button").style("margin","5px").html("Apply").on("click",(()=>c(t)));e.append("button").style("margin","5px").html("Reset").on("click",(()=>{t.q={};delete t.numqByTermIdModeType[t.term.id];m(t,t.dom.num_holder)}))}function w(t){const e=t.dom.discreteSur_div.append("div");e.append("div").style("font-size",".8em").style("margin","5px").html(`\n\t\t\tDisplay survival outcomes as exit codes <br>\n\t\t`);const n=t.dom.discreteSur_div.append("div");n.append("button").style("margin","5px").html("Apply").on("click",(()=>c(t)))}export{p as getHandler,v as renderBoundaryInclusionInput,z as renderBoundaryInputDivs};
@@ -1 +0,0 @@
1
- import{o as t,M as s,y as r}from"./app-3d14cbe4.js";import{s as e,r as o}from"./recover-4888c2a9.js";import{v as i}from"./FilterRxComp-e8de560c.js";import"./termsetting-7467350f.js";import"./tslib.es6-c3c2d88f.js";import"path";import"./FilterStateless-75514d37.js";import"./app-bd9f016b.js";import"./termInfo-e16f90f2.js";import"./toggleButtons-2144daab.js";import"./table-be2a9975.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-a60aaa77.js";import"./genesearch-0587c713.js";import"./checkbox-96437f4d.js";import"./rehydrateFilter-12d118cb.js";function a(t){switch(t){case"../plots/DEanalysis.js":return import("./DEanalysis-28ddd620.js");case"../plots/Disco.js":return import("./Disco-3c427131.js");case"../plots/DziViewer.js":return import("./DziViewer-aa5b5706.js");case"../plots/WSIViewer.js":return import("./WSIViewer-afe97e2e.js");case"../plots/barchart.data.js":return import("./FilterRxComp-e8de560c.js").then((function(t){return t.j}));case"../plots/barchart.events.js":return import("./barchart.events-cecb7bf5.js");case"../plots/barchart.js":return import("./barchart-e3dcfc5f.js");case"../plots/bars.renderer.js":return import("./bars.renderer-58e38632.js");case"../plots/bars.settings.js":return import("./bars.settings-64bb4642.js");case"../plots/boxplot.js":return import("./boxplot-fed0a86b.js");case"../plots/brainImaging.js":return import("./brainImaging-b455fd0c.js");case"../plots/controls.btns.js":return import("./controls.btns-237b3154.js");case"../plots/controls.config.js":return import("./controls.config-00ce9f0b.js");case"../plots/controls.js":return import("./controls-1d99916a.js");case"../plots/cuminc.js":return import("./cuminc-879690b0.js");case"../plots/dataDownload.js":return import("./dataDownload-087ac205.js");case"../plots/dictionary.js":return import("./dictionary-fe0ea1d6.js");case"../plots/facet.js":return import("./facet-397afad5.js");case"../plots/geneExpression.js":return import("./geneExpression-52678025.js");case"../plots/geneORA.js":return import("./geneORA-81220ec0.js");case"../plots/geneset.js":return import("./geneset-604d0529.js");case"../plots/genomeBrowser.controls.js":return import("./genomeBrowser.controls-204f007e.js");case"../plots/genomeBrowser.js":return import("./genomeBrowser-9f0e8a60.js");case"../plots/gsea.js":return import("./gsea-a1b04406.js");case"../plots/hierCluster.config.js":return import("./hierCluster.config-a84f69a3.js");case"../plots/hierCluster.interactivity.js":return import("./hierCluster.interactivity-dd917fd3.js").then((function(t){return t.i}));case"../plots/hierCluster.js":return import("./hierCluster-edaaacc5.js");case"../plots/hierCluster.renderers.js":return import("./hierCluster.renderers-4d33e96a.js").then((function(t){return t.r}));case"../plots/imagePlot.js":return import("./imagePlot-f96cdc61.js");case"../plots/matrix.cells.js":return import("./matrix.cells-4dd055e7.js");case"../plots/matrix.cluster.js":return import("./matrix.cluster-7ab94fb5.js");case"../plots/matrix.config.js":return import("./matrix.config-b3b56456.js");case"../plots/matrix.controls.js":return import("./matrix.controls-6e0e9692.js");case"../plots/matrix.data.js":return import("./matrix.data-baabaf57.js").then((function(t){return t.m}));case"../plots/matrix.dom.js":return import("./matrix.dom-cb1f4872.js");case"../plots/matrix.groups.js":return import("./matrix.groups-9990aade.js").then((function(t){return t.m}));case"../plots/matrix.interactivity.js":return import("./matrix.interactivity-3f3cf44d.js");case"../plots/matrix.js":return import("./matrix-8b3341c4.js");case"../plots/matrix.layout.js":return import("./matrix.layout-50bc2ea5.js").then((function(t){return t.m}));case"../plots/matrix.legend.js":return import("./matrix.legend-024e2d50.js").then((function(t){return t.m}));case"../plots/matrix.renderers.js":return import("./matrix.renderers-1aed44e5.js");case"../plots/matrix.serieses.js":return import("./matrix.serieses-dc18fcc2.js").then((function(t){return t.m}));case"../plots/matrix.sort.js":return import("./matrix.sort-89b98e83.js");case"../plots/matrix.sorterUi.js":return import("./matrix.sorterUi-0ad98ef0.js");case"../plots/plot.app.js":return Promise.resolve().then((function(){return c}));case"../plots/plot.brainImaging.js":return import("./plot.brainImaging-ee3a0272.js");case"../plots/plot.disco.js":return import("./plot.disco-c9249cbd.js");case"../plots/plot.ssgq.js":return import("./plot.ssgq-b5f68395.js");case"../plots/profileBarchart.js":return import("./profileBarchart-f4da0483.js");case"../plots/profilePlot.js":return import("./profilePlot-5dd1fe71.js");case"../plots/profilePolar.js":return import("./profilePolar-996784ad.js");case"../plots/profileRadar.js":return import("./profileRadar-79299186.js");case"../plots/profileRadarFacility.js":return import("./profileRadarFacility-00e31213.js");case"../plots/profileSummary.js":return import("./profileSummary-df75e6ff.js");case"../plots/regression.inputs.js":return import("./regression.inputs-e647b716.js").then((function(t){return t.b}));case"../plots/regression.inputs.term.js":return import("./regression.inputs-e647b716.js").then((function(t){return t.a}));case"../plots/regression.inputs.values.table.js":return import("./regression.inputs.values.table-b283619d.js");case"../plots/regression.js":return import("./regression.inputs-e647b716.js").then((function(t){return t.r}));case"../plots/regression.results.js":return import("./regression.results-f61b4a25.js").then((function(t){return t.r}));case"../plots/sampleScatter.interactivity.js":return import("./sampleScatter-b96546e9.js").then((function(t){return t.a}));case"../plots/sampleScatter.js":return import("./sampleScatter-b96546e9.js").then((function(t){return t.b}));case"../plots/sampleScatter.renderer.js":return import("./sampleScatter-b96546e9.js").then((function(t){return t.s}));case"../plots/sampleScatter.rendererThree.js":return import("./sampleScatter.rendererThree-aa51e3c8.js").then((function(t){return t.c}));case"../plots/sampleView.js":return import("./sampleView-e4819da2.js");case"../plots/scatter.js":return import("./scatter-ff17f653.js");case"../plots/singleCellPlot.js":return import("./singleCellPlot-e7e57b0f.js");case"../plots/stattable.js":return import("./stattable-775a5af5.js");case"../plots/summary.js":return import("./summary-5866c75f.js");case"../plots/survival.js":return import("./survival-405514f6.js");case"../plots/table.js":return import("./table-e013d8fc.js");case"../plots/variantBrowser.js":return import("./variantBrowser-56ebc7e1.js");case"../plots/violin.interactivity.js":return import("./violin.interactivity-2502dcd8.js");case"../plots/violin.js":return import("./violin-1352dab2.js");case"../plots/violin.renderer.js":return import("./violin.renderer-4273257d.js");default:return new Promise((function(s,r){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(r.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}class n{constructor(t){this.type="app";const s=t.violin?.mode=="minimal"?null:t.holder.append("div").style("white-space","nowrap");this.dom={holder:t.holder,errdiv:t.holder.append("div"),plotDiv:t.holder.append("div")};if(s){this.dom.plotControls=s.append("div").style("display","inline-block");this.dom.recoverControls=s.append("div").style("display","inline-block")}}validateOpts(t={}){if(!t.holder)throw`missing opts.holder in the MassApp constructor argument`;if(!t.callbacks)t.callbacks={};return t}async preApiFreeze(t){try{t.tip=new s({padding:"5px"});t.printError=t=>this.printError(t);const r=this.opts.state.vocab;t.vocabApi=this.opts.vocabApi?this.opts.vocabApi:await i({app:t,state:{vocab:{genome:r?.genome||this.opts.state.genome,dslabel:r?.dslabel||this.opts.state.dslabel,terms:r?.terms}},fetchOpts:this.opts.fetchOpts});this.opts.state.vocab=t.vocabApi.vocab}catch(t){throw t}}async init(){try{this.opts.state.nav={header_mode:"hidden"};this.store=await e({app:this.api,state:this.opts.state});this.state=await this.store.copyState();this.components={plots:{}};if(this.opts.app?.features?.includes("recover"))this.components.recover=await o({app:this.api,holder:this.dom.recoverControls,getState:t=>t,maxHistoryLen:10});await this.api.dispatch()}catch(t){this.printError(t);throw t}}async main(){this.api.vocabApi.main();for(const t in this.components.plots){const s=this.components.plots[t];if(!this.state.plots.find((t=>t.id===s.id))){s.destroy();delete this.components.plots[t]}}for(const[t,s]of this.state.plots.entries()){if(!this.components.plots[s.id]){const t=this.opts?.app?.getPlotHolder?this.opts.app.getPlotHolder(s,this.dom.holder):this.dom.holder.append("div");if(!this.dom.plotDiv)this.dom.plotDiv=t;const r=await a(`../plots/${s.chartType}.js`);const e=await r.componentInit({id:s.id,app:this.api,holder:t,controls:this.dom.plotControls});this.components.plots[s.id]=e}}}printError(t){r(this.dom.errdiv,"Error: "+(t.message||t));if(t.stack)console.log(t.stack);this.bus.emit("error")}destroy(){this.dom.holder.selectAll("*").remove()}}const p=t(n);var c=Object.freeze({__proto__:null,appInit:p});export{p as appInit};
@@ -1 +0,0 @@
1
- import{Z as t,U as a,ah as e,I as o,W as n,ag as i}from"./app-3d14cbe4.js";import{c as l}from"./axis-747c801e.js";function r(a,e,o,n){const i=t({x:n.left+200,y:n.top});i.body.style("padding","10px");i.header.html(o);a.sort(((t,a)=>a.size-t.size));s({lst:a,holder:i.body,barcolor:e,limit:Math.min(a.length,20)})}function s(t){t.holder.selectAll("*").remove();const r=t.holder.append("div").style("margin-bottom","10px");r.append("button").text("more").on("click",(()=>{t.limit=Math.min(t.lst.length,t.limit+10);s(t)}));r.append("button").text("less").on("click",(()=>{t.limit=Math.max(1,t.limit-10);s(t)}));r.append("button").text("screenshot").on("click",(()=>a(b.node(),"barplot")));let c=20,m=300,d=5,p=c+5,h=c/8,x=0,f=0;const b=t.holder.append("svg");const g=b.append("g");for(let a=0;a<t.limit;a++){let o=t.lst[a];f=Math.max(f,o.size);b.append("text").text(o.name).attr("font-size",c-2).attr("font-family",e).each((function(){x=Math.max(x,this.getBBox().width)})).remove()}b.attr("width",x+d+m+d).attr("height",p+d+t.limit*(c+h));g.attr("transform","translate("+(x+d)+","+p+")").call(l().scale(o().domain([0,f]).range([0,m])).tickFormat(n("d")));i({axis:g,showline:true,fontsize:c*.8,color:"black"});let y=p+d;const u=m/f;for(let a=0;a<t.limit;a++){const o=t.lst[a];b.append("text").text(o.name).attr("x",x).attr("y",y+c/2).attr("text-anchor","end").attr("font-size",c-2).attr("font-family",e).attr("dominant-baseline","central");b.append("rect").attr("x",x+d).attr("y",y).attr("width",u*o.size).attr("height",c-1).attr("fill",t.barcolor);y+=c+h}}export{r as default};
@@ -1 +0,0 @@
1
- import{b as t,w as e,f as o}from"./app-3d14cbe4.js";async function i(o,i,a,r,s,c,l,p=true){const m=s.append("div").text("Loading...");try{if(typeof o?.queries?.singleSampleGenomeQuantification!="object")throw"termdbConfig.queries.singleSampleGenomeQuantification{} missing, cannot plot";const p=o.queries.singleSampleGenomeQuantification[a];if(!p)throw"invalid queryKey";if(typeof r!="object")throw"sample{} not object";if(typeof c!="object")throw"genomeObj{} not object";const d={genome:c.name,dslabel:i,devicePixelRatio:window.devicePixelRatio>1?window.devicePixelRatio:1,singleSampleGenomeQuantification:{dataType:a,sample:r[p.sample_id_key]}};const f=await t("mds3",{body:d});if(f.error)throw f.error;const h=o.queries.singleSampleGbtk?.[p.singleSampleGbtk];s.append("div").attr("data-testid","sjpp_ssgq_sandbox").text(p.description||a);if(h){s.append("div").text(`Click a chromosomal position to zoom in and view ${h.description||p.singleSampleGbtk}`)}const g=s.append("img").attr("width",f.canvasWidth).attr("height",f.canvasHeight).attr("src",f.src);m.remove();if(!h)return;let b;if(l){const o=await t("genelookup",{body:{genome:c.name,input:l,deep:1}});if(o.error)throw o.error;if(o.gmlst&&o.gmlst.length){const t=e(o.gmlst);const a=t[0].chr;const l=Math.max(0,t[0].start-(t[0].stop-t[0].start));const m=f.chrLst.filter((t=>t.chr==a))[0].chrLen;const d=Math.min(m,t[0].stop+(t[0].stop-t[0].start));b=await n(i,r,s,c,p,h,a,l,d)}}g.on("click",(async t=>{const e=t.offsetX-f.xoff;let o,a,l;for(const t of f.chrLst){if(t.xStart<=e&&t.xStop>=e){o=t.chr;a=t.chrLen;l=Math.ceil(t.chrLen/(t.xStop-t.xStart)*(e-t.xStart));break}}if(!o)return;const m=Math.max(0,l-5e5),d=Math.min(l+5e5,a);if(b){b.jump_1basedcoordinate({chr:o,start:m,stop:d});return}b=await n(i,r,s,c,p,h,o,m,d)}));return true}catch(t){if(p)m.text("Error: "+(t.message||t));else m.remove();return false}}async function n(e,i,n,a,r,s,c,l,p){const m={genome:a.name,dslabel:e,singleSampleGbtk:{dataType:r.singleSampleGbtk,sample:i[s.sample_id_key]}};const d=await t("mds3",{body:m});if(!d.path)return;const f=[{type:"bigwig",name:i[s.sample_id_key],file:d.path,height:100,scale:{min:s.min,max:s.max},pcolor:r.positiveColor,ncolor:r.negativeColor}];o(a,f);const h=new((await import("./block-944afb9f.js").then((function(t){return t.c}))).Block)({genome:a,holder:n.append("div"),nobox:true,tklst:f,chr:c,start:l,stop:p});return h}export{i as plotSingleSampleGenomeQuantification};
@@ -1 +0,0 @@
1
- import"./app-bd9f016b.js";import{d as e}from"./app-3d14cbe4.js";import"./termsetting-7467350f.js";import"./tslib.es6-c3c2d88f.js";import"path";import"./FilterRxComp-e8de560c.js";import"./table-be2a9975.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-a60aaa77.js";import"./termInfo-e16f90f2.js";import"./toggleButtons-2144daab.js";function t(t){const a=e(t.holder);a.append("img").attr("src","images/Button_Full_Version.png").attr("width","15%").on("click",(e=>o(a,"ProfileFull")));a.append("img").attr("src","images/Button_Abbreviated_Version.png").attr("width","15%").on("click",(e=>o(a,"ProfileAbbrev")))}async function o(t,o){const r=document.getElementById("profileIntro");r.innerHTML="";t.selectAll("*").remove();const n=e(document.getElementById("aaa"));n.selectAll("*").remove();const l={holder:n,state:{nav:{header_mode:"hidden"},vocab:{dslabel:o,genome:"hg38"}}};const s=await import("./app-8b5b982a.js");const p=await s.appInit(l);a(t,p,o,logged,site);i(p,"profilePolar","Polar Graph",logged,site)}function a(e,t,a,l,s){const p=a=="ProfileFull";const c=e.append("div").style("display","inline-flex").style("gap","5px").style("padding-left","10px").style("font-size","1.1em");c.append("button").text("Full PrOFILE").style("font-size","1.1em").style("background-color",a=="ProfileFull"?"orange":"").on("click",(t=>{o(e,"ProfileFull")}));c.append("button").text("Abbreviated PrOFILE").style("background-color",a=="ProfileAbbrev"?"orange":"").style("font-size","1.1em").on("click",(t=>o(e,"ProfileAbbrev")));c.append("button").text("Polar Graph").style("font-size","1.1em").on("click",(e=>i(t,"profilePolar","Polar Graph",l,s)));c.append("button").text("Bar Graph").style("font-size","1.1em").on("click",(e=>i(t,"profileBarchart","Bar Graph",l,s)));if(l)c.append("button").text("Radar 1-Score-based(Site)").style("font-size","1.1em").on("click",(e=>r(t,"profileRadarFacility","Radar 1-Score-based(Site)","plot1",l,s)));c.append("button").text("Radar 2-Impressions").style("font-size","1.1em").on("click",(e=>r(t,"profileRadar","Radar 2-Impressions","plot1",l,s)));if(p)c.append("button").text("Radar 3-Score-based(SC & POC)").style("font-size","1.1em").on("click",(e=>r(t,"profileRadar","Radar 3-Score-based(SC & POC)","plot2",l,s)));c.append("button").style("font-size","1.1em").on("click",(e=>n(t))).text("Delete All")}async function i(e,t,o,a,i){await e.dispatch({type:"plot_create",config:{chartType:t,header:o,logged:a,site:i}})}async function r(e,t,o,a,i,r){await e.dispatch({type:"plot_create",config:{chartType:t,plot:a,header:o,logged:i,site:r}})}async function n(e){for(const t of e.getState().plots){await e.dispatch({type:"plot_delete",id:t.id})}}export{t as init};
@@ -1 +0,0 @@
1
- import{d as t}from"./svg.download-cd895635.js";import{d as e,M as i,L as s}from"./app-3d14cbe4.js";import{m as a}from"./termsetting-7467350f.js";import{c as o}from"./FilterRxComp-e8de560c.js";import{controlsInit as n}from"./controls-1d99916a.js";import{k as l}from"./recover-4888c2a9.js";import"./tslib.es6-c3c2d88f.js";import"path";import"./table-be2a9975.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-a60aaa77.js";import"./controls.btns-237b3154.js";import"./controls.config-00ce9f0b.js";import"./FilterStateless-75514d37.js";import"./app-bd9f016b.js";import"./termInfo-e16f90f2.js";import"./toggleButtons-2144daab.js";import"./genesearch-0587c713.js";import"./checkbox-96437f4d.js";import"./rehydrateFilter-12d118cb.js";const r=["Low income","Lower middle income","Upper middle income","High income"];const p=["Small (1-25 annual newly diagnoses)","Medium (26-80 annual newly diagnoses)","Large (81-120 annual newly diagnoses)","Very large (>120 annual newly diagnoses)"];class d{constructor(){this.type="profilePlot";this.downloadCount=0}getState(t){const e=t.plots.find((t=>t.id===this.id));if(!e)throw`No plot with id='${this.id}' found`;return{config:e,termfilter:t.termfilter,dslabel:t.vocab.dslabel,vocab:t.vocab,logged:e.logged,site:e.site}}async init(t){const a=t.plots.find((t=>t.id===this.id));if(this.opts.header){const t=a.logged?a.site?a.site:"Admin":"Public";this.opts.header.text(a.header?a.header:a.chartType+` / ${t}`)}const o=this.opts.holder.append("div").style("display","inline-block");const n=o.append("div").style("display","inline-block").style("vertical-align","top");const l=o.append("div").style("display","inline-block").style("vertical-align","top");const r=this.opts.holder.append("div");const p=n.append("div").style("display","inline-block").style("font-size","0.9em");const d=n.append("div").style("margin-left","16px").style("margin-top","8px");const h=l.insert("div").style("display","inline-block");const c=h.append("div");this.dom={controlsDiv:p,iconsDiv:d,holder:h,plotDiv:c,holder2:r};e(".sjpp-output-sandbox-content").on("scroll",(t=>this.onMouseOut(t)));this.dom.plotDiv.on("mousemove",(t=>this.onMouseOver(t)));this.dom.plotDiv.on("mouseleave",(t=>this.onMouseOut(t)));this.dom.plotDiv.on("mouseout",(t=>this.onMouseOut(t)));this.sampleidmap=await this.app.vocabApi.getSamplesByName();if(a.site){if(Object.keys(this.sampleidmap).length==0)throw"You must login to view site info";const t=this.sampleidmap[a.site]?.id;if(!t)throw"Invalid site"}this.tip=new i({padding:"4px",offsetX:10,offsetY:15});document.addEventListener("scroll",(t=>this?.tip?.hide()));s["pdf"](d.append("div").style("padding","0px 5px 15px 5px"),{title:"Prints page, select Save as PDF in the options to download as a pdf",handler:()=>{window.print()}});if(this.type!="profileRadarFacility"&&!a.settings[this.type].comparison){const t=d.append("div").style("margin-bottom","20px");const e=t.append("button").style("border","none").style("background-color","transparent");s["compare"](e,{title:"Compare with another plot"});e.on("click",(async t=>{const i=this.settings.comparison=!this.settings.comparison;e.style("background-color",i?"rgb(207, 226, 243)":"transparent");this.dom.holder2.selectAll("*").remove();if(i)await this.comparePlots()}))}if(this.type!="profileBarchart"){const t=d.append("div").style("padding-bottom","15px");this.dom.tableBt=t.append("button").style("border","none").style("background-color","rgb(207, 226, 243)");s["table"](this.dom.tableBt,{title:"Show table with data"});this.dom.tableBt.on("click",(t=>{const e=!this.settings.showTable;this.dom.tableBt.style("background-color",e?"rgb(207, 226, 243)":"transparent");this.showTable(e)}))}s["restart"](d.append("div").style("padding","0px 5px 15px 5px"),{title:"Clear filters",handler:async()=>{this.clearFiltersExcept([]);this.app.dispatch({type:"plot_edit",id:this.id,config:{filter:this.getFilter(),settings:{[this.type]:this.settings}}})}});if(!a.settings[this.type].comparison)s["add"](d.append("div").style("padding","3px"),{title:"Open a new plot",handler:async()=>{const t={chartType:this.type,insertBefore:this.id,header:this.opts.header.text(),logged:this.state.config.logged,site:this.state.config.site};if(this.type=="profileRadarFacility"||this.type=="profileRadar")t.plot=this.state.config.plot;this.app.dispatch({type:"plot_create",config:t})}})}async showTable(t){this.settings.showTable=t;await this.app.dispatch({type:"plot_edit",id:this.id,config:{settings:{[this.type]:this.settings}}})}getList(t){const e=Object.values(t.term.values);const i=this.filtersData.lst.filter((e=>this.samplesPerFilter[t.term.id].includes(parseInt(e.sample))));const s=Array.from(new Set(i.map((e=>e[t.$id]?.value))));for(const t of e){t.value=t.label;t.disabled=!s.includes(t.label)}e.unshift({label:"",value:""});if(!(t.term.id in this.settings))this.settings[t.term.id]=e[0].label;return e}async main(){this.config=JSON.parse(JSON.stringify(this.state.config));this.settings=this.config.settings[this.type];if(this.dom.tableBt)this.dom.tableBt.style("background-color",this.settings.showTable?"rgb(207, 226, 243)":"transparent")}async comparePlots(){this.plotAdded=true;const t=this.state;const e=await import("./plot.app-4dc30ebc.js");const i={chartType:this.type,settings:{[this.type]:{comparison:true}}};if(this.type=="profileRadar"||this.type=="profileRadarFacility")i.plot=this.config.plot;const s={holder:this.dom.holder2,state:{plots:[i],vocab:t.vocab}};await e.appInit(s)}async setControls(e=[]){const i={};for(const t of this.config.filterTWs){const e=this.getFilter(t);if(e)i[t.term.id]=e}this.samplesPerFilter=await this.app.vocabApi.getSamplesPerFilter({filters:i});this.filtersData=await this.app.vocabApi.getAnnotatedSampleData({terms:this.config.filterTWs,termsPerRequest:10});this.regions=Object.keys(this.config.regionTW.term.values).map((t=>({label:t,value:t})));this.regions.unshift({label:"",value:""});this.countries=this.getList(this.config.countryTW);this.incomes=this.getList(this.config.incomeTW);this.teachingStates=this.getList(this.config.teachingStatusTW);this.referralStates=this.getList(this.config.referralStatusTW);this.fundingSources=this.getList(this.config.fundingSourceTW);this.hospitalVolumes=this.getList(this.config.hospitalVolumeTW);this.yearsOfImplementation=this.getList(this.config.yearOfImplementationTW);this.incomes.sort(((t,e)=>{const i=r.indexOf(t.value);const s=r.indexOf(e.value);if(i<s)return-1;return 1}));this.hospitalVolumes.sort(((t,e)=>{const i=p.indexOf(t.value);const s=p.indexOf(e.value);if(i<s)return-1;return 1}));this.types=this.getList(this.config.typeTW);const s=this.config.filter||this.getFilter();this.data=await this.app.vocabApi.getAnnotatedSampleData({terms:this.twLst,filter:s,termsPerRequest:30});const a=this.type;this.dom.controlsDiv.selectAll("*").remove();let o=[];if(this.state.logged&&this.state.site&&a!="profileRadarFacility"){const t={label:"Data",type:"radio",chartType:a,settingsKey:"isAggregate",options:[{label:this.state.site,value:false},{label:"Aggregate",value:true}]};o.push(t)}if(!this.state.logged||!this.state.site||this.settings.isAggregate||a=="profileRadarFacility"){o.push(...[{label:"Region",type:"dropdown",chartType:a,options:this.regions,settingsKey:this.config.regionTW.term.id,callback:t=>this.setRegion(t)},{label:"Country",type:"dropdown",chartType:a,options:this.countries,settingsKey:this.config.countryTW.term.id,callback:t=>this.setFilterValue(this.config.countryTW.term.id,t)},{label:"Income group",type:"dropdown",chartType:a,options:this.incomes,settingsKey:this.config.incomeTW.term.id,callback:t=>this.setFilterValue(this.config.incomeTW.term.id,t)},{label:"Facility type",type:"dropdown",chartType:a,options:this.types,settingsKey:this.config.typeTW.term.id,callback:t=>this.setFilterValue(this.config.typeTW.term.id,t)},{label:this.config.teachingStatusTW.term.name,type:"dropdown",chartType:a,options:this.teachingStates,settingsKey:this.config.teachingStatusTW.term.id,callback:t=>this.setFilterValue(this.config.teachingStatusTW.term.id,t)},{label:this.config.referralStatusTW.term.name,type:"dropdown",chartType:a,options:this.referralStates,settingsKey:this.config.referralStatusTW.term.id,callback:t=>this.setFilterValue(this.config.referralStatusTW.term.id,t)},{label:this.config.fundingSourceTW.term.name,type:"dropdown",chartType:a,options:this.fundingSources,settingsKey:this.config.fundingSourceTW.term.id,callback:t=>this.setFilterValue(this.config.fundingSourceTW.term.id,t)},{label:this.config.hospitalVolumeTW.term.name,type:"dropdown",chartType:a,options:this.hospitalVolumes,settingsKey:this.config.hospitalVolumeTW.term.id,callback:t=>this.setFilterValue(this.config.hospitalVolumeTW.term.id,t)},{label:this.config.yearOfImplementationTW.term.name,type:"dropdown",chartType:a,options:this.yearsOfImplementation,settingsKey:this.config.yearOfImplementationTW.term.id,callback:t=>this.setFilterValue(this.config.yearOfImplementationTW.term.id,t)}])}await this.loadSampleData(a,o);o.unshift(...e);this.components={controls:await n({app:this.app,id:this.id,holder:this.dom.controlsDiv,inputs:o})};this.components.controls.on(`downloadClick.${a}`,(()=>t(this.svg,this.getDownloadFilename(),this.dom.holder.node())));this.components.controls.on(`helpClick.${a}`,(()=>{let t;if(this.state.dslabel=="ProfileAbbrev"){if(a=="profileBarchart")t="https://global.stjude.org/content/dam/global/en-us/documents/no-index/bar-graph-abbr-profiledash.pdf";else if(a=="profilePolar")t="https://global.stjude.org/content/dam/global/en-us/documents/no-index/polar-graph-abbr-profiledash.pdf";else if(a.startsWith("profileRadar"))t="https://global.stjude.org/content/dam/global/en-us/documents/no-index/radar-abbr-profiledash.pdf"}else if(this.state.dslabel=="ProfileFull"){if(a=="profileBarchart")t="https://global.stjude.org/content/dam/global/en-us/documents/no-index/bar-graph-full-profiledash.pdf";else if(a=="profilePolar")t="https://global.stjude.org/content/dam/global/en-us/documents/no-index/polar-graph-full-profiledash.pdf";else if(a.startsWith("profileRadar"))t="https://global.stjude.org/content/dam/global/en-us/documents/no-index/radar-full-profiledash.pdf"}if(t)window.open(t)}));this.filtersCount=0}async loadSampleData(t,e){if(t!="profileRadarFacility"){if(this.state.logged){if(this.state.site&&!this.settings.isAggregate){const t=this.sampleidmap[this.state.site].id;this.settings.site=t;this.sites=[{label:this.state.site,value:t}]}else if(!this.state.site){this.sites=this.data.lst.map((t=>({label:this.data.refs.bySampleId[t.sample].label,value:t.sample})));this.sites.unshift({label:"",value:""});e.push({label:"Site",type:"dropdown",chartType:t,options:this.sites,settingsKey:"site",callback:t=>this.setSite(t)})}if(this.settings.site)this.sampleData=this.data.samples[Number(this.settings.site)];else this.sampleData=null}}else{if(this.state.logged){let i;if(this.state.site){const t=this.sampleidmap[this.state.site].id;this.settings.site=t;this.sites=[{label:this.state.site,value:t}];i=await this.app.vocabApi.getAnnotatedSampleData({terms:this.twLst,termsPerRequest:30,filter:l(parseInt(t))});this.sampleData=i.lst[0]}else{i=await this.app.vocabApi.getAnnotatedSampleData({terms:this.twLst,termsPerRequest:30});this.sites=i.lst.map((t=>({label:i.refs.bySampleId[t.sample].label,value:t.sample})));if(!this.settings.site)this.settings.site=i.lst[0].sample;this.sampleData=i.samples[Number(this.settings.site)]}e.unshift({label:"Site",type:"dropdown",chartType:t,options:this.sites,settingsKey:"site",callback:t=>this.setSite(t)})}}}setFilterValue(t,e){const i=this.config;this.settings[t]=e;if(this.type!="profileRadarFacility")this.settings.site="";i.filter=this.getFilter();this.app.dispatch({type:"plot_edit",id:this.id,config:this.config})}setRegion(t){const e=this.config;this.settings[e.regionTW.term.id]=t;this.clearFiltersExcept([e.regionTW.term.id]);e.filter=this.getFilter();this.app.dispatch({type:"plot_edit",id:this.id,config:e})}clearFiltersExcept(t){for(const e of this.config.filterTWs)if(!t.includes(e.term.id))this.settings[e.term.id]="";if(this.config.chartType!="profileRadarFacility")this.settings.site=""}setSite(t){this.settings.site=t;this.sampleData=null;this.app.dispatch({type:"plot_edit",id:this.id,config:this.config})}getFilter(t=null){const e=[];if(t)e.push(t.$id);const i=[];for(const t of this.config.filterTWs)this.processTW(t,this.settings[t.term.id],e,i);const s={type:"tvslst",in:true,join:"and",lst:i};const a=o([this.state.termfilter.filter,s]);return a}processTW(t,e,i,s){if(e&&!i.includes(t.$id))s.push({type:"tvs",tvs:{term:t.term,values:[{key:e}]}})}addFilterLegend(){if(!this.settings.site||this.config.chartType=="profileRadarFacility"){const t=this.config.filterTWs.some((t=>this.settings[t.term.id]));const e=t?"Filters":"No filter applied";this.filterG.attr("font-size","0.9em").append("text").attr("text-anchor","left").style("font-weight","bold").text(`${e} (n=${this.data.lst.length})`).attr("transform",`translate(0, -5)`);for(const t of this.config.filterTWs)this.addFilterLegendItem(t.term.name,this.settings[t.term.id])}if(this.settings.site&&this.config.chartType!="profileRadarFacility"){const t=this.sites.find((t=>t.value==this.settings.site)).label;this.addFilterLegendItem("Facility",t)}}addFilterLegendItem(t,e){if(!e)return;this.filtersCount++;const i=this.filterG.append("g").attr("font-size","0.95em");const s=i.append("text").attr("transform",`translate(0, ${this.filtersCount*22})`).attr("text-anchor","left");s.append("tspan").attr("font-size","bold").text(t);s.append("tspan").text(`: ${e?e:"None"}`)}addEndUserImpressionNote(t){t.attr("font-size","0.9em");let e=t.append("text").attr("transform",`translate(0, 115)`);e.append("tspan").attr("font-weight","bold").text("End-user Impression: ");e.append("tspan").text("It is provided by the local liaison who completed the assessment ");t.append("text").attr("transform",`translate(0, 140)`).text("in consultation with the PHO medical director or directly by the PHO medical director.");t.append("text").attr("transform",`translate(0, 165)`).text("The end-user was asked to rate the current status of the domains and subdomains included.")}addPOCNote(t){t.attr("font-size","0.9em");let e=t.append("text").attr("transform",`translate(0, 115)`);e.append("tspan").attr("font-weight","bold").text("Point of Care (POC) Staff: ");e.append("tspan").text("All members of the assessment team, ");t.append("text").attr("transform",`translate(0, 140)`).text("excluding the Site Coordinator. POC staff provide subjective information based ");t.append("text").attr("transform",`translate(0, 165)`).text("on their experience and perception about service delivery at the PHO facility.")}addLegendItem(t,e,i){const s=this.legendG.append("text").attr("font-size","0.9em").attr("transform",`translate(0, ${i*20})`).attr("text-anchor","left");s.append("tspan").attr("font-weight","bold").text(t);s.append("tspan").text(`: ${e}`)}getDownloadFilename(){this.downloadCount++;let t=`${this.type}${this.downloadCount}.svg`;t=t.split(" ").join("_");return t}getPercentage(t,e=null){if(!t)return null;if(e==null)e=this.settings.isAggregate||this.sampleData==null;if(e){const e=t.maxScore.term?this.data.lst[0]?.[t.maxScore.$id]?.value:t.maxScore;let i=this.data.lst.map((i=>i[t.score.$id]?.value/e*100));i.sort(((t,e)=>t-e));const s=Math.floor(i.length/2);const a=i.length%2!==0?i[s]:(i[s-1]+i[s])/2;return Math.round(a)}else{const e=this.sampleData[t.score.$id]?.value;const i=t.maxScore.term?this.sampleData[t.maxScore.$id]?.value:t.maxScore;const s=e/i*100;return Math.round(s)}}}async function h(t,e){const i=[];t.countryTW={id:"country"};t.regionTW={id:"WHO_region"};t.incomeTW={id:"Income_group"};t.typeTW={id:"FC_TypeofFacility"};t.teachingStatusTW={id:"FC_TeachingFacility"};t.referralStatusTW={id:"FC_ReferralFacility"};t.fundingSourceTW={id:"FC_FundingSrc"};t.hospitalVolumeTW={id:"PO_HospitalVolume"};t.yearOfImplementationTW={id:"Year_implementation"};i.push(...[t.countryTW,t.regionTW,t.incomeTW,t.typeTW,t.teachingStatusTW,t.referralStatusTW,t.fundingSourceTW,t.hospitalVolumeTW,t.yearOfImplementationTW]);await a(i,e.vocabApi);t.filterTWs=i}function c(){return{isAggregate:false,showTable:true}}export{c as getDefaultProfilePlotSettings,h as loadFilterTerms,d as profilePlot};