@sjcrh/proteinpaint-client 2.76.2 → 2.77.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/dist/{2dmaf-f240211f.js → 2dmaf-dbeff225.js} +1 -1
  2. package/dist/{AppHeader-c9432a24.js → AppHeader-1fc7f7bd.js} +1 -1
  3. package/dist/{ColorScale-b991fc9e.js → ColorScale-23c17654.js} +1 -1
  4. package/dist/{DEanalysis-bbfad00d.js → DEanalysis-a3cf1900.js} +1 -1
  5. package/dist/{Disco-b7c9bf72.js → Disco-b26a0556.js} +1 -1
  6. package/dist/{Disco.UI-a5296c36.js → Disco.UI-891c4c35.js} +1 -1
  7. package/dist/{DragControls-ca3fa0cf.js → DragControls-2fabac26.js} +1 -1
  8. package/dist/{DziViewer-28915c11.js → DziViewer-5b830c31.js} +1 -1
  9. package/dist/FilterRxComp-fb608459.js +1 -0
  10. package/dist/FilterStateless-fc4e4e1b.js +1 -0
  11. package/dist/{HicApp-e713aa40.js → HicApp-5ed85d49.js} +1 -1
  12. package/dist/{OrbitControls-2466d420.js → OrbitControls-604f40af.js} +1 -1
  13. package/dist/{WSIViewer-957695a8.js → WSIViewer-dcce2a10.js} +1 -1
  14. package/dist/{adSandbox-27d93bc0.js → adSandbox-5fa90964.js} +1 -1
  15. package/dist/app-0de0ae35.js +1 -0
  16. package/dist/{app-d215327f.js → app-7f695ce7.js} +1 -1
  17. package/dist/app-977b083f.js +1 -0
  18. package/dist/app.js +1 -1
  19. package/dist/{bam-d67e5315.js → bam-06a5a6a2.js} +1 -1
  20. package/dist/{barchart-2898d229.js → barchart-978fb21a.js} +1 -1
  21. package/dist/{barchart.events-426d737a.js → barchart.events-9b482604.js} +1 -1
  22. package/dist/{bars.renderer-71935d34.js → bars.renderer-d7461d5d.js} +1 -1
  23. package/dist/{block-75d4ff92.js → block-3db9c74c.js} +1 -1
  24. package/dist/block.lazyload-19a55cac.js +1 -0
  25. package/dist/{block.legend-93d85a6e.js → block.legend-97401467.js} +1 -1
  26. package/dist/{block.mds-84b9d1c1.js → block.mds-dc409568.js} +1 -1
  27. package/dist/{block.mds.cnv-a991ed79.js → block.mds.cnv-cdabd3f6.js} +1 -1
  28. package/dist/{block.mds.expressionrank-33b858de.js → block.mds.expressionrank-d768640f.js} +1 -1
  29. package/dist/{block.mds.expressionstat-3093599f.js → block.mds.expressionstat-7e40426f.js} +1 -1
  30. package/dist/{block.mds.geneboxplot-b8391d18.js → block.mds.geneboxplot-dae9cfa3.js} +1 -1
  31. package/dist/{block.mds.junction-69708c7f.js → block.mds.junction-3bc8baea.js} +1 -1
  32. package/dist/{block.mds.svcnv-322baea6.js → block.mds.svcnv-456dc845.js} +1 -1
  33. package/dist/{block.mds.svcnv.share-c5c38237.js → block.mds.svcnv.share-4776459b.js} +1 -1
  34. package/dist/{block.mds2-de4811dd.js → block.mds2-cc586d9d.js} +1 -1
  35. package/dist/{block.svg-ac9fec2d.js → block.svg-adf47e3a.js} +1 -1
  36. package/dist/{block.tk.aicheck-ac4b8d4d.js → block.tk.aicheck-f284f080.js} +1 -1
  37. package/dist/{block.tk.ase-6dc0f9f1.js → block.tk.ase-0477c9f4.js} +1 -1
  38. package/dist/{block.tk.bam-8f68b41d.js → block.tk.bam-d4c998d4.js} +1 -1
  39. package/dist/{block.tk.bedgraphdot-d8878860.js → block.tk.bedgraphdot-0177d836.js} +1 -1
  40. package/dist/{block.tk.bigwig.ui-f6ed051c.js → block.tk.bigwig.ui-95531269.js} +1 -1
  41. package/dist/{block.tk.hicstraw-725bdc8a.js → block.tk.hicstraw-06e97317.js} +1 -1
  42. package/dist/{block.tk.junction-f8b0b51d.js → block.tk.junction-18b6b825.js} +1 -1
  43. package/dist/{block.tk.junction.textmatrixui-252e7d7e.js → block.tk.junction.textmatrixui-ffdbdf81.js} +1 -1
  44. package/dist/{block.tk.ld-11acf730.js → block.tk.ld-2b56500f.js} +1 -1
  45. package/dist/{block.tk.menu-5e04436d.js → block.tk.menu-707a4226.js} +1 -1
  46. package/dist/{block.tk.pgv-fef17dc4.js → block.tk.pgv-63c956c4.js} +1 -1
  47. package/dist/{boxplot-4c9a5479.js → boxplot-1f229616.js} +1 -1
  48. package/dist/{brainImaging-7716bc66.js → brainImaging-a0c72fad.js} +1 -1
  49. package/dist/{brush-9faa7ae7.js → brush-4c775f74.js} +1 -1
  50. package/dist/{categorical-1dea48ba.js → categorical-25b06bc5.js} +1 -1
  51. package/dist/{condition-ebac4f75.js → condition-70084a85.js} +1 -1
  52. package/dist/{controls-268e40e6.js → controls-1f3ac9d0.js} +1 -1
  53. package/dist/controls.btns-5b44e5d0.js +1 -0
  54. package/dist/{controls.config-2f0fa061.js → controls.config-b0339f96.js} +1 -1
  55. package/dist/{cuminc-8dffb765.js → cuminc-6d1de932.js} +1 -1
  56. package/dist/{customdata.inputui-b229d3a0.js → customdata.inputui-5ad0f25c.js} +1 -1
  57. package/dist/{dataDownload-452ae3cd.js → dataDownload-a60d80e4.js} +1 -1
  58. package/dist/databrowser.ui-a5c8194c.js +1 -0
  59. package/dist/{density-09feb0c9.js → density-30dbad8b.js} +1 -1
  60. package/dist/{dictionary-a132a3cc.js → dictionary-d8435ddc.js} +1 -1
  61. package/dist/{drag-2e9c80bb.js → drag-ad04f964.js} +1 -1
  62. package/dist/{e2pca-4f1648e3.js → e2pca-02adebbd.js} +1 -1
  63. package/dist/{ep-1d4c58b4.js → ep-b2e464fe.js} +1 -1
  64. package/dist/{facet-fa4fe49c.js → facet-e7612200.js} +1 -1
  65. package/dist/{filter-b3d3964e.js → filter-67d51c09.js} +1 -1
  66. package/dist/{fusion.parse-7dfd6988.js → fusion.parse-68670e99.js} +1 -1
  67. package/dist/{geneExpClustering-ed9121b8.js → geneExpClustering-d96c27ef.js} +1 -1
  68. package/dist/geneExpression-072e0be1.js +1 -0
  69. package/dist/{geneExpression-394672ff.js → geneExpression-4901955e.js} +1 -1
  70. package/dist/{geneExpression-66208299.js → geneExpression-65346c08.js} +1 -1
  71. package/dist/{geneORA-9456872c.js → geneORA-e3d6619e.js} +1 -1
  72. package/dist/geneVariant-9fc29f37.js +1 -0
  73. package/dist/{geneVariant-beaf9adb.js → geneVariant-f6bbc247.js} +1 -1
  74. package/dist/{genefusion.ui-9238ec7f.js → genefusion.ui-a5a08183.js} +1 -1
  75. package/dist/{genesearch-ffd88bf2.js → genesearch-5fa13afa.js} +1 -1
  76. package/dist/{geneset-0315daf8.js → geneset-c36036bd.js} +1 -1
  77. package/dist/genomeBrowser-d4515002.js +1 -0
  78. package/dist/{genomeBrowser.controls-2601cab5.js → genomeBrowser.controls-b89629b0.js} +1 -1
  79. package/dist/{groupsetting-e3a4ecd5.js → groupsetting-a3de9ec7.js} +1 -1
  80. package/dist/{gsea-0c0cf8de.js → gsea-af1a7cec.js} +1 -1
  81. package/dist/{hierCluster-7ab62ca5.js → hierCluster-8aa2265a.js} +1 -1
  82. package/dist/hierCluster.config-11a176e2.js +1 -0
  83. package/dist/{hierCluster.interactivity-7f475259.js → hierCluster.interactivity-103b2f0f.js} +1 -1
  84. package/dist/{hierCluster.renderers-19b79639.js → hierCluster.renderers-48bdf7a6.js} +1 -1
  85. package/dist/{html.legend-80b2b3ec.js → html.legend-455f7881.js} +1 -1
  86. package/dist/{imagePlot-1ef24562.js → imagePlot-862c7baf.js} +1 -1
  87. package/dist/{lasso-1a02a545.js → lasso-e12204af.js} +1 -1
  88. package/dist/launch.adhoc-b8af0ace.js +1 -0
  89. package/dist/leftlabel.sample-784c5aeb.js +1 -0
  90. package/dist/{legacyDataset-fbaa5ebb.js → legacyDataset-501a0298.js} +1 -1
  91. package/dist/{log-c26b6cfd.js → log-d560d2a5.js} +1 -1
  92. package/dist/{lollipop-3aebe5d3.js → lollipop-aa25084e.js} +1 -1
  93. package/dist/{maf-c439c851.js → maf-13befc91.js} +1 -1
  94. package/dist/{maftimeline-0da64e54.js → maftimeline-f9ee156e.js} +1 -1
  95. package/dist/{matrix-38cd47c3.js → matrix-971b44da.js} +1 -1
  96. package/dist/{matrix.cells-a018d731.js → matrix.cells-92037b17.js} +1 -1
  97. package/dist/{matrix.cluster-a6e713e8.js → matrix.cluster-0bca59fd.js} +1 -1
  98. package/dist/{matrix.config-2c550b5d.js → matrix.config-b8d8faef.js} +1 -1
  99. package/dist/matrix.controls-07c6128c.js +1 -0
  100. package/dist/{matrix.data-2b814c9f.js → matrix.data-1090f6c7.js} +1 -1
  101. package/dist/{matrix.dom-1e0da5b3.js → matrix.dom-1154156c.js} +1 -1
  102. package/dist/{matrix.groups-824a7244.js → matrix.groups-f10a8c05.js} +1 -1
  103. package/dist/{matrix.interactivity-1cb56534.js → matrix.interactivity-99de0399.js} +1 -1
  104. package/dist/{matrix.layout-47e44357.js → matrix.layout-405db70f.js} +1 -1
  105. package/dist/{matrix.legend-9af0c757.js → matrix.legend-d06de359.js} +1 -1
  106. package/dist/{matrix.renderers-337ce240.js → matrix.renderers-2211c4b2.js} +1 -1
  107. package/dist/{matrix.serieses-7b7184c9.js → matrix.serieses-f0803a76.js} +1 -1
  108. package/dist/{matrix.sort-1ac05842.js → matrix.sort-3d376f1a.js} +1 -1
  109. package/dist/{matrix.sorterUi-1c60c145.js → matrix.sorterUi-469ed804.js} +1 -1
  110. package/dist/{mavb-da8d1a0a.js → mavb-e5cbd894.js} +1 -1
  111. package/dist/{mds.fimo-8604c3f8.js → mds.fimo-f9215ef6.js} +1 -1
  112. package/dist/{mds.samplescatterplot-3f09ae0e.js → mds.samplescatterplot-6fce6594.js} +1 -1
  113. package/dist/{mds.survivalplot-1d8f2b7e.js → mds.survivalplot-16e9e8c5.js} +1 -1
  114. package/dist/{metaboliteIntensity-bbb23c76.js → metaboliteIntensity-b47fb792.js} +1 -1
  115. package/dist/{niceNumLabels-29a7c6ca.js → niceNumLabels-1bd7a93b.js} +1 -1
  116. package/dist/{nodrag-b2737073.js → nodrag-0fa60f70.js} +1 -1
  117. package/dist/{notify-0cb8904f.js → notify-42149e65.js} +1 -1
  118. package/dist/{numeric-24dacbee.js → numeric-5b626171.js} +1 -1
  119. package/dist/{numeric.binary-f382cc98.js → numeric.binary-07e15211.js} +1 -1
  120. package/dist/numeric.continuous-76dd29ba.js +1 -0
  121. package/dist/numeric.discrete-6d697c68.js +1 -0
  122. package/dist/{numeric.spline-a35cfbf0.js → numeric.spline-cf331bad.js} +1 -1
  123. package/dist/{numeric.toggle-2f98d6e5.js → numeric.toggle-332c2578.js} +1 -1
  124. package/dist/oncomatrix-7c84c94b.js +1 -0
  125. package/dist/{parseData-292648dd.js → parseData-05ab5f81.js} +1 -1
  126. package/dist/{plot.2dvaf-6ae22dc1.js → plot.2dvaf-1debbf12.js} +1 -1
  127. package/dist/plot.app-0b02df66.js +1 -0
  128. package/dist/{plot.barplot-34841e70.js → plot.barplot-45b57df9.js} +1 -1
  129. package/dist/{plot.boxplot-87ac2ce9.js → plot.boxplot-06cef6e2.js} +1 -1
  130. package/dist/{plot.brainImaging-32a484b6.js → plot.brainImaging-07795744.js} +1 -1
  131. package/dist/{plot.disco-1fdfee3c.js → plot.disco-9c631d77.js} +1 -1
  132. package/dist/{plot.dzi-e3d0f610.js → plot.dzi-a9a81de5.js} +1 -1
  133. package/dist/{plot.ssgq-d33113d5.js → plot.ssgq-02ffde06.js} +1 -1
  134. package/dist/{plot.vaf2cov-9f4f1776.js → plot.vaf2cov-c111c5fb.js} +1 -1
  135. package/dist/{plot.wsi-dea124a7.js → plot.wsi-6ccc7bb2.js} +1 -1
  136. package/dist/{profileBarchart-58f0a8c0.js → profileBarchart-0c97e8c9.js} +1 -1
  137. package/dist/{profileHome-7f404152.js → profileHome-2255d66d.js} +1 -1
  138. package/dist/profilePlot-ba7e03ab.js +1 -0
  139. package/dist/{profilePolar-50b8e40e.js → profilePolar-d38d502f.js} +1 -1
  140. package/dist/{profileRadar-fff0b004.js → profileRadar-f95cfa87.js} +1 -1
  141. package/dist/{profileRadarFacility-d6d34c15.js → profileRadarFacility-7e200a91.js} +1 -1
  142. package/dist/profileSummary-8c41a731.js +1 -0
  143. package/dist/{recover-299ffdb3.js → recover-6f2f3379.js} +1 -1
  144. package/dist/{regression.inputs-14df7c31.js → regression.inputs-b515101d.js} +1 -1
  145. package/dist/{regression.inputs.values.table-d79efa9e.js → regression.inputs.values.table-f8a0cad9.js} +1 -1
  146. package/dist/{regression.results-4767144e.js → regression.results-91a486f0.js} +1 -1
  147. package/dist/{renderPvalueTable-002cc8ff.js → renderPvalueTable-d4d2624c.js} +1 -1
  148. package/dist/sampleScatter-7c2773de.js +1 -0
  149. package/dist/{sampleScatter.rendererThree-ef289434.js → sampleScatter.rendererThree-b6db5a09.js} +2 -2
  150. package/dist/{sampleView-1dff3fca.js → sampleView-8885e86b.js} +1 -1
  151. package/dist/{samplelst-d2db0f24.js → samplelst-83e593da.js} +1 -1
  152. package/dist/{samplematrix-0841387f.js → samplematrix-a8b3f845.js} +1 -1
  153. package/dist/{scatter-f8285107.js → scatter-34d52e2d.js} +1 -1
  154. package/dist/{select2Terms-d48d037e.js → select2Terms-d9320d21.js} +1 -1
  155. package/dist/{selectGenomeWithTklst-9af86d31.js → selectGenomeWithTklst-fed6a2ea.js} +1 -1
  156. package/dist/shapes-21ebfec4.js +1 -0
  157. package/dist/singleCellCellType-e6848f45.js +1 -0
  158. package/dist/{singleCellGeneExpression-537f1157.js → singleCellGeneExpression-d3a5394e.js} +1 -1
  159. package/dist/singleCellPlot-3cad6bd8.js +1 -0
  160. package/dist/{singlecell-38336cbc.js → singlecell-0754aab0.js} +1 -1
  161. package/dist/{singlecell-87b4b9a9.js → singlecell-7c57cd77.js} +1 -1
  162. package/dist/{snp-b81ef740.js → snp-6b23e7a6.js} +1 -1
  163. package/dist/snp-a0cdd2a5.js +1 -0
  164. package/dist/snplocus-c60eab56.js +1 -0
  165. package/dist/{spliceevent.a53ss.diagram-5f8352eb.js → spliceevent.a53ss.diagram-8714f740.js} +1 -1
  166. package/dist/{spliceevent.exonskip.diagram-0d30a735.js → spliceevent.exonskip.diagram-40c1e363.js} +1 -1
  167. package/dist/spliceevent.exonskip.getdefault-4bb6f19f.js +1 -0
  168. package/dist/{spliceevent.noeventdiagram-df9ce4bc.js → spliceevent.noeventdiagram-41a56db9.js} +1 -1
  169. package/dist/{spliceevent.phrase-a8401d53.js → spliceevent.phrase-7f34e3b1.js} +1 -1
  170. package/dist/{stattable-46cde32c.js → stattable-78dc5c34.js} +1 -1
  171. package/dist/{style.gdc-72d730f2.js → style.gdc-cd49882c.js} +1 -1
  172. package/dist/summary-45c56298.js +1 -0
  173. package/dist/{sunburst-fe95832e.js → sunburst-2140e468.js} +1 -1
  174. package/dist/{survival-57ff3c03.js → survival-db972025.js} +1 -1
  175. package/dist/{survival-52714cd3.js → survival-ed4bdad2.js} +1 -1
  176. package/dist/{svg.download-f4aa48e4.js → svg.download-a5e20a92.js} +1 -1
  177. package/dist/{svg.legend-749348e0.js → svg.legend-8d21872d.js} +1 -1
  178. package/dist/{svgraph-b46f1f92.js → svgraph-f6a28b78.js} +1 -1
  179. package/dist/{svmr-9a76c6d4.js → svmr-8b4b4c59.js} +1 -1
  180. package/dist/{table-bf40249b.js → table-1cbe3a36.js} +1 -1
  181. package/dist/{table-0daf2b89.js → table-e2a307e6.js} +1 -1
  182. package/dist/{termInfo-491b10af.js → termInfo-5477ba96.js} +1 -1
  183. package/dist/termdb.bins-7ecc48db.js +1 -0
  184. package/dist/{termsetting-492eefa7.js → termsetting-2e75e729.js} +1 -1
  185. package/dist/tk-a8a4481a.js +1 -0
  186. package/dist/{toggleButtons-c4d6f260.js → toggleButtons-7ce58d97.js} +1 -1
  187. package/dist/{tp.ui-0a476325.js → tp.ui-be14f635.js} +1 -1
  188. package/dist/{tvs.density-034b506d.js → tvs.density-8b953cef.js} +1 -1
  189. package/dist/{tvs.geneVariant-c59c8b54.js → tvs.geneVariant-ecad287d.js} +1 -1
  190. package/dist/{tvs.numeric-aa1f892f.js → tvs.numeric-b56a5aba.js} +1 -1
  191. package/dist/{tvs.samplelst-515f27b9.js → tvs.samplelst-3150e0b7.js} +1 -1
  192. package/dist/{uiUtils-ea7dfea2.js → uiUtils-71cc22de.js} +1 -1
  193. package/dist/{variantBrowser-14d5c3f6.js → variantBrowser-df2f9c22.js} +1 -1
  194. package/dist/{vcf-d357ce08.js → vcf-3e370c9b.js} +1 -1
  195. package/dist/{violin-74d26b75.js → violin-4595cef4.js} +1 -1
  196. package/dist/{violin.interactivity-bf40ddde.js → violin.interactivity-8b63e000.js} +1 -1
  197. package/dist/{violin.renderer-469fa0ff.js → violin.renderer-0b7431a2.js} +1 -1
  198. package/dist/{violinRenderer-14fa200d.js → violinRenderer-7b0a4e98.js} +1 -1
  199. package/dist/{viridis-cc59f478.js → viridis-725f66e0.js} +1 -1
  200. package/dist/{y-59cbff5e.js → y-300bac24.js} +1 -1
  201. package/dist/{zoom-f445cfef.js → zoom-d3d38b3b.js} +1 -1
  202. package/package.json +2 -4
  203. package/dist/FilterRxComp-02e68f1b.js +0 -1
  204. package/dist/FilterStateless-16a33070.js +0 -1
  205. package/dist/app-42f69951.js +0 -1
  206. package/dist/app-6fb77603.js +0 -1
  207. package/dist/block.lazyload-d2951c91.js +0 -1
  208. package/dist/controls.btns-5bf9e7d7.js +0 -1
  209. package/dist/databrowser.ui-2197fc73.js +0 -1
  210. package/dist/downloadTextfile-5723af95.js +0 -1
  211. package/dist/geneExpression-c61e8f1c.js +0 -1
  212. package/dist/geneVariant-f17cda85.js +0 -1
  213. package/dist/genomeBrowser-608b924e.js +0 -1
  214. package/dist/hierCluster.config-f4daaf92.js +0 -1
  215. package/dist/launch.adhoc-e124c993.js +0 -1
  216. package/dist/leftlabel.sample-59f99ef5.js +0 -1
  217. package/dist/matrix.controls-42ad4912.js +0 -1
  218. package/dist/numeric.continuous-6feb34a7.js +0 -1
  219. package/dist/numeric.discrete-ed10bbc1.js +0 -1
  220. package/dist/oncomatrix-c0b2d635.js +0 -1
  221. package/dist/plot.app-2a805759.js +0 -1
  222. package/dist/profilePlot-4db8ca78.js +0 -1
  223. package/dist/profileSummary-04b8b15b.js +0 -1
  224. package/dist/sampleScatter-55d9eb74.js +0 -1
  225. package/dist/singleCellCellType-fd1606b8.js +0 -1
  226. package/dist/singleCellPlot-eff5760b.js +0 -1
  227. package/dist/snp-f6123244.js +0 -1
  228. package/dist/snplocus-acafb1ba.js +0 -1
  229. package/dist/spliceevent.exonskip.getdefault-237c481c.js +0 -1
  230. package/dist/summary-a6c15c9e.js +0 -1
  231. package/dist/termdb.bins-39d11f24.js +0 -1
  232. package/dist/tk-ac524564.js +0 -1
@@ -1 +1 @@
1
- import{T as e,h as t,f as n,i}from"./termsetting-492eefa7.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-6fb77603.js";import{r as b}from"./table-0daf2b89.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-d33113d5.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-1fdfee3c.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-e3d0f610.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-6fb77603.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-d215327f.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-d215327f.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
+ import{T as e,h as t,f as n,i}from"./termsetting-2e75e729.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-0de0ae35.js";import{r as h}from"./table-e2a307e6.js";import{p as b}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-02ffde06.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-9c631d77.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-a9a81de5.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-0de0ae35.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-7f695ce7.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-7f695ce7.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=b(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");h({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 +1 @@
1
- import{bS as t,by as e,P as s,ap as a,I as n}from"./app-6fb77603.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
+ import{bS as t,by as e,P as s,ap as a,I as n}from"./app-0de0ae35.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 +1 @@
1
- import{s as e}from"./legacy-d3-polyfill-bdb2d792.js";import{a8 as t,af as r,ak as s}from"./app-6fb77603.js";import{i}from"./termsetting-492eefa7.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
+ import{s as e}from"./legacy-d3-polyfill-bdb2d792.js";import{a8 as t,af as r,ak as s}from"./app-0de0ae35.js";import{i}from"./termsetting-2e75e729.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 +1 @@
1
- import{i as t,h as e,f as s}from"./termsetting-492eefa7.js";import{d as r}from"./app-6fb77603.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
+ import{i as t,h as e,f as s}from"./termsetting-2e75e729.js";import{d as r}from"./app-0de0ae35.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 +1 @@
1
- import{getEmptyCell as e,setCellProps as t,maySetEmptyCell as s}from"./matrix.cells-a018d731.js";import"./termsetting-492eefa7.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
+ import{getEmptyCell as e,setCellProps as t,maySetEmptyCell as s}from"./matrix.cells-92037b17.js";import"./termsetting-2e75e729.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 b=n.cellEncoding=="oncoprint"?1:G.length;const E=!n.transpose?n.rowh/b: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,E,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,E,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};