@sjcrh/proteinpaint-client 2.226.0 → 2.227.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (948) hide show
  1. package/dist/2dmaf-B34EJADN.js +1362 -0
  2. package/dist/AggMatrixInput-USCXGZT2.js +402 -0
  3. package/dist/AggregateMatrix-VLCSBD65.js +37 -0
  4. package/dist/AppHeader-KE7QVEW5.js +826 -0
  5. package/dist/BoxPlot-3H5QKYRD.js +1247 -0
  6. package/dist/CorrelationVolcano-ACEJOJS6.js +613 -0
  7. package/dist/CorrelationVolcano-ACEJOJS6.js.map +7 -0
  8. package/dist/Cuminc-6LPS4LR7.js +1217 -0
  9. package/dist/DE-TTKEQYC7.js +85 -0
  10. package/dist/DEinput-W7WEO2NO.js +483 -0
  11. package/dist/DEinput-W7WEO2NO.js.map +7 -0
  12. package/dist/DM-2TUF6Q3C.js +86 -0
  13. package/dist/DifferentialAnalysis-3LP4RAWF.js +236 -0
  14. package/dist/Disco-UP5C7UWX.js +3445 -0
  15. package/dist/Disco.UI-V4I4LOMF.js +239 -0
  16. package/dist/DmrPlot-TZR2NGIH.js +366 -0
  17. package/dist/GB-4NRY4YMF.js +1388 -0
  18. package/dist/GB-4NRY4YMF.js.map +7 -0
  19. package/dist/GSEA-YGKBRJJO.js +870 -0
  20. package/dist/GeneExpInput-L3J2ECVQ.js +38 -0
  21. package/dist/Geomap-4MHU6F57.js +80 -0
  22. package/dist/HicApp-27VGP5F6.js +2240 -0
  23. package/dist/IDCViewer-37GJPPUY.js +10810 -0
  24. package/dist/NumBinaryEditor-SEC2NDGG.js +274 -0
  25. package/dist/NumBinaryEditor.unit.spec-UDYSUC4S.js +308 -0
  26. package/dist/NumContEditor-YPSYWU2A.js +100 -0
  27. package/dist/NumContEditor.unit.spec-NHFBMHQ5.js +160 -0
  28. package/dist/NumCustomBinEditor-N7US5Q64.js +29 -0
  29. package/dist/NumCustomBinEditor.unit.spec-2BMMUBYU.js +393 -0
  30. package/dist/NumDiscreteEditor-BLQ5DEB7.js +165 -0
  31. package/dist/NumDiscreteEditor.unit.spec-JOFPUFU5.js +229 -0
  32. package/dist/NumRegularBinEditor-7BFPBUW2.js +29 -0
  33. package/dist/NumRegularBinEditor.unit.spec-6GZMNRHA.js +274 -0
  34. package/dist/NumSplineEditor-LO3ZR3T3.js +205 -0
  35. package/dist/NumSplineEditor.unit.spec-MRA3DQSB.js +220 -0
  36. package/dist/NumericDensity-NUCVJZ74.js +29 -0
  37. package/dist/NumericDensity.unit.spec-TZLKWH4U.js +414 -0
  38. package/dist/NumericHandler-NH533VBN.js +30 -0
  39. package/dist/NumericHandler.unit.spec-V7MNEHML.js +225 -0
  40. package/dist/ProteomeInput-FEXWZOA2.js +610 -0
  41. package/dist/Regression-NJAPUGT7.js +1412 -0
  42. package/dist/RunChart2-QIJ6NUWY.js +744 -0
  43. package/dist/SC-5NWBVOEE.js +1290 -0
  44. package/dist/Violin-TMACI43Q.js +1105 -0
  45. package/dist/Volcano-BMLHQEXU.js +2745 -0
  46. package/dist/Volcano-BMLHQEXU.js.map +7 -0
  47. package/dist/Wsi-5TWAOBFG.js +650 -0
  48. package/dist/Wsi-5TWAOBFG.js.map +7 -0
  49. package/dist/aboutSunburst-53YAWTV5.js +93 -0
  50. package/dist/adSandbox-7VHXEI7W.js +29 -0
  51. package/dist/animatedBubbleChart-CTFGJIRR.js +542 -0
  52. package/dist/app-AQAQAPUN.js +38 -0
  53. package/dist/app-SZDIV5U4.js +28 -0
  54. package/dist/app.js +12 -12
  55. package/dist/bam-3U5R2KNC.js +872 -0
  56. package/dist/barchart-ZL5VSR7P.js +38 -0
  57. package/dist/barchart2-YELP2HI7.js +305 -0
  58. package/dist/block-AGX6Z4BR.js +6208 -0
  59. package/dist/block-AGX6Z4BR.js.map +7 -0
  60. package/dist/block.init-IBITFICI.js +29 -0
  61. package/dist/block.mds.expressionrank-4L76ILD4.js +350 -0
  62. package/dist/block.mds.geneboxplot-XA7DFHPV.js +819 -0
  63. package/dist/block.mds.junction-GTZD3HEN.js +1534 -0
  64. package/dist/block.mds.svcnv-HTXQ3LGR.js +6325 -0
  65. package/dist/block.svg-BM6OMVRF.js +155 -0
  66. package/dist/block.tk.aicheck-CV53ULEP.js +274 -0
  67. package/dist/block.tk.bam-KJYFNJCX.js +1906 -0
  68. package/dist/block.tk.bigwig.ui-A352D6PT.js +202 -0
  69. package/dist/block.tk.hicstraw-QAFTQESL.js +814 -0
  70. package/dist/block.tk.junction-XURB4RWZ.js +2353 -0
  71. package/dist/block.tk.junction.textmatrixui-RNRWWNGY.js +190 -0
  72. package/dist/block.tk.ld-GWJMVPX3.js +90 -0
  73. package/dist/block.tk.menu-BJZYFMQX.js +1050 -0
  74. package/dist/block.tk.pgv-7XNJTHEW.js +934 -0
  75. package/dist/brainImaging-37EDZLGN.js +550 -0
  76. package/dist/brainRegions-FEW52QUB.js +213 -0
  77. package/dist/bubbleHeatmap-YN34AA4H.js +374 -0
  78. package/dist/bubbleHeatmap-YN34AA4H.js.map +7 -0
  79. package/dist/cellTypeBubbleHeatmap-X4K63FOK.js +274 -0
  80. package/dist/cellTypeBubbleHeatmap-X4K63FOK.js.map +7 -0
  81. package/dist/chunk-24CVFDVW.js +1219 -0
  82. package/dist/chunk-24CVFDVW.js.map +7 -0
  83. package/dist/chunk-2B3CYHUF.js +30 -0
  84. package/dist/chunk-2IAELUCN.js +348 -0
  85. package/dist/chunk-2W6U53AG.js +195 -0
  86. package/dist/chunk-46GCGTHJ.js +1339 -0
  87. package/dist/chunk-4ZX5KHD7.js +96 -0
  88. package/dist/chunk-544DSOC3.js +466 -0
  89. package/dist/chunk-6CV3YVJD.js +194 -0
  90. package/dist/chunk-6UHSGC6G.js +276 -0
  91. package/dist/chunk-6ZZGFZV2.js +35 -0
  92. package/dist/chunk-72FUMSAN.js +6375 -0
  93. package/dist/chunk-7DC4PD5R.js +182 -0
  94. package/dist/chunk-7ISYXUJ7.js +243 -0
  95. package/dist/chunk-7NVFEGCE.js +30 -0
  96. package/dist/chunk-7PQ6MLKG.js +1253 -0
  97. package/dist/chunk-BGPRKPKH.js +56 -0
  98. package/dist/chunk-BILGOVOR.js +480 -0
  99. package/dist/chunk-BKJLRLQQ.js +2008 -0
  100. package/dist/chunk-BQYMKS7S.js +4521 -0
  101. package/dist/chunk-BQYMKS7S.js.map +7 -0
  102. package/dist/chunk-C4BKP67I.js +123 -0
  103. package/dist/chunk-CFYWQJ7F.js +472 -0
  104. package/dist/chunk-CFYWQJ7F.js.map +7 -0
  105. package/dist/chunk-CQNTAIM3.js +328 -0
  106. package/dist/chunk-CW3IVTRX.js +2685 -0
  107. package/dist/chunk-D7KZWYP5.js +516 -0
  108. package/dist/chunk-DFHERVYA.js +961 -0
  109. package/dist/chunk-DFHERVYA.js.map +7 -0
  110. package/dist/chunk-DNXOZATD.js +848 -0
  111. package/dist/chunk-DXF3YDRG.js +2334 -0
  112. package/dist/chunk-ECBVUPDE.js +626 -0
  113. package/dist/chunk-ES22B563.js +257 -0
  114. package/dist/chunk-FA2B6PKK.js +42 -0
  115. package/dist/chunk-FMHSDIVG.js +2932 -0
  116. package/dist/chunk-G5UFOMON.js +255 -0
  117. package/dist/chunk-GKA6USKV.js +550 -0
  118. package/dist/chunk-HGIPR72Y.js +299 -0
  119. package/dist/chunk-IBUDYN5E.js +468 -0
  120. package/dist/chunk-J37WYVIZ.js +418 -0
  121. package/dist/chunk-JG5CF5Q3.js +397 -0
  122. package/dist/chunk-JI632MAR.js +400 -0
  123. package/dist/chunk-JI632MAR.js.map +7 -0
  124. package/dist/chunk-JKPMBNRM.js +100 -0
  125. package/dist/chunk-JKPMBNRM.js.map +7 -0
  126. package/dist/chunk-JSQH233D.js +263 -0
  127. package/dist/chunk-JWWLSDVM.js +296 -0
  128. package/dist/chunk-KGK4JJ4L.js +830 -0
  129. package/dist/chunk-KGK4JJ4L.js.map +7 -0
  130. package/dist/chunk-KTJUDDVQ.js +340 -0
  131. package/dist/chunk-MY5MF4RI.js +55 -0
  132. package/dist/chunk-P4ZGUPGA.js +56 -0
  133. package/dist/chunk-PQDYA3ZQ.js +274 -0
  134. package/dist/chunk-PVJ6IIFA.js +176 -0
  135. package/dist/chunk-QGG5MTIL.js +161 -0
  136. package/dist/chunk-QGG5MTIL.js.map +7 -0
  137. package/dist/chunk-QKVKQD6S.js +184 -0
  138. package/dist/chunk-QNACCFOA.js +48 -0
  139. package/dist/chunk-R6O3FLKW.js +141 -0
  140. package/dist/chunk-RFQQRF6Q.js +54 -0
  141. package/dist/chunk-RG27DDKN.js +267 -0
  142. package/dist/chunk-SB5DR4NL.js +562 -0
  143. package/dist/chunk-SF42FFDZ.js +2799 -0
  144. package/dist/chunk-SORR4JHU.js +14 -0
  145. package/dist/chunk-SZEBQMZW.js +50 -0
  146. package/dist/chunk-THDOHHDN.js +102 -0
  147. package/dist/chunk-TXDCZOPG.js +305 -0
  148. package/dist/chunk-U6GSEOBY.js +54 -0
  149. package/dist/chunk-UBTNM5RO.js +203 -0
  150. package/dist/chunk-UHZDDPUU.js +444 -0
  151. package/dist/chunk-UVES3USV.js +134 -0
  152. package/dist/chunk-UYA5LCAR.js +281 -0
  153. package/dist/chunk-VHEXNBCO.js +379 -0
  154. package/dist/chunk-VJJJFEOU.js +96 -0
  155. package/dist/chunk-VPRP24DY.js +2095 -0
  156. package/dist/chunk-VVWZ4BOI.js +2349 -0
  157. package/dist/chunk-WENNRY5E.js +170 -0
  158. package/dist/chunk-WTLUZOBK.js +103 -0
  159. package/dist/chunk-YBXQBSFY.js +26888 -0
  160. package/dist/chunk-YBXQBSFY.js.map +7 -0
  161. package/dist/chunk-ZLEGHQOO.js +217 -0
  162. package/dist/chunk-ZO7KUAIF.js +5258 -0
  163. package/dist/chunk-ZO7KUAIF.js.map +7 -0
  164. package/dist/chunk-ZX7527EE.js +240 -0
  165. package/dist/cohort-NKRTCX5Z.js +66 -0
  166. package/dist/cohortSunburst-DFJW6WXU.js +402 -0
  167. package/dist/condition-PYFOEVX5.js +323 -0
  168. package/dist/controls-RVNIN66W.js +30 -0
  169. package/dist/controls.config-XVEYYBI4.js +30 -0
  170. package/dist/correlation-MNL4DGSW.js +91 -0
  171. package/dist/customdata.inputui-WFIIJATQ.js +280 -0
  172. package/dist/dataDownload-CMSP5FA4.js +326 -0
  173. package/dist/databrowser.ui-FYZPXXEJ.js +424 -0
  174. package/dist/dictionary-76BXY6WU.js +109 -0
  175. package/dist/dnaMethylation-WTIJVNIU.js +29 -0
  176. package/dist/dnaMethylation.integration.spec-YXQEFLC5.js +194 -0
  177. package/dist/dnaMethylation.unit.spec-22FLJWVB.js +95 -0
  178. package/dist/dofetch-XID2XEJT.js +49 -0
  179. package/dist/e2pca-DD6DA7X3.js +340 -0
  180. package/dist/ep-S4PI4AUJ.js +1247 -0
  181. package/dist/expclust.gdc.spec-BDV4RJO6.js +298 -0
  182. package/dist/facet-EOXEW2LN.js +556 -0
  183. package/dist/gb-AKE7RDPB.js +77 -0
  184. package/dist/geneExpClustering-73ED7HIN.js +240 -0
  185. package/dist/geneExpression-AEJILDKJ.js +29 -0
  186. package/dist/geneExpression-NXDXXKEA.js +309 -0
  187. package/dist/geneExpression.unit.spec-VUJWR4TA.js +150 -0
  188. package/dist/geneORA-7KFQ4PW2.js +269 -0
  189. package/dist/geneRanking-RKJU4PM2.js +544 -0
  190. package/dist/geneVariant-2AGC3ECG.js +32 -0
  191. package/dist/geneVariant-PWMXP6H4.js +289 -0
  192. package/dist/geneVariant-PWMXP6H4.js.map +7 -0
  193. package/dist/geneVariant.integration.spec-UJXGQEZG.js +672 -0
  194. package/dist/genefusion.ui-KEBOA3TK.js +299 -0
  195. package/dist/geneset-BU6V3CB5.js +199 -0
  196. package/dist/genomeBrowser.spec-BGQHJZKH.js +272 -0
  197. package/dist/grin2-OUZN5LOU.js +66 -0
  198. package/dist/grin2-WRGQ7BDG.js +945 -0
  199. package/dist/hierCluster-3ERW47JJ.js +51 -0
  200. package/dist/hierCluster-JAFKBC6C.js +55 -0
  201. package/dist/hierCluster.config-QIJNY5OD.js +32 -0
  202. package/dist/hierCluster.integration.spec-XA4K3UU6.js +479 -0
  203. package/dist/hierCluster.interactivity-RDFPQOOP.js +45 -0
  204. package/dist/hierCluster.renderers-SU5IYI33.js +18 -0
  205. package/dist/imagePlot-J4PHG7V2.js +152 -0
  206. package/dist/importPlot-U67MZZXY.js +8 -0
  207. package/dist/isoformExpression-K5BCDJLL.js +31 -0
  208. package/dist/isoformExpression.unit.spec-35FHEO27.js +233 -0
  209. package/dist/junction-6GGWFF2J.js +32 -0
  210. package/dist/junction.unit.spec-7EJK4HML.js +224 -0
  211. package/dist/junction.unit.spec-7EJK4HML.js.map +7 -0
  212. package/dist/launch.adhoc-ONCSL65L.js +33 -0
  213. package/dist/leftlabel.sample-H5G3U7AA.js +260 -0
  214. package/dist/leftlabel.sample-H5G3U7AA.js.map +7 -0
  215. package/dist/lollipop-BWP4BG7Q.js +162 -0
  216. package/dist/maf-GV6JHWYK.js +451 -0
  217. package/dist/maftimeline-HE7XLJWG.js +583 -0
  218. package/dist/matrix-IAM6SA7K.js +50 -0
  219. package/dist/matrix-QF5MBV5Y.js +55 -0
  220. package/dist/matrix.cells-A5E63KDN.js +25 -0
  221. package/dist/matrix.config-VLRMO7J2.js +33 -0
  222. package/dist/matrix.data-R4FW2PQH.js +22 -0
  223. package/dist/matrix.groups-3UH2KOIY.js +25 -0
  224. package/dist/matrix.integration.spec-57YYARQU.js +3156 -0
  225. package/dist/matrix.interactivity-KNRJSSTQ.js +33 -0
  226. package/dist/matrix.layout-OMNDDITA.js +35 -0
  227. package/dist/matrix.legend-SE7SQTNN.js +19 -0
  228. package/dist/matrix.renderers-6MMW7XMU.js +30 -0
  229. package/dist/matrix.serieses-BEZCQDLJ.js +18 -0
  230. package/dist/matrix.sort-KRNS4VPF.js +25 -0
  231. package/dist/matrix.sort.unit.spec-UXTQPKVV.js +464 -0
  232. package/dist/matrix.sorterUi.unit.spec-LJJ7GCEB.js +334 -0
  233. package/dist/matrix.unit.spec-2OSFPN5T.js +146 -0
  234. package/dist/mavb-CZAZO6AO.js +726 -0
  235. package/dist/mds.samplescatterplot-ENSEO2VX.js +1545 -0
  236. package/dist/mds.survivalplot-QSKD6FSX.js +472 -0
  237. package/dist/multivalue-FZTFADA2.js +79 -0
  238. package/dist/numericDictTermCluster-IFIEM3E4.js +62 -0
  239. package/dist/oncomatrix-GZKCAMSR.js +286 -0
  240. package/dist/oncomatrix.spec-FTLMVGTH.js +439 -0
  241. package/dist/plot.2dvaf-PWO4XOFU.js +368 -0
  242. package/dist/plot.app-JYBZEBHK.js +32 -0
  243. package/dist/plot.barplot-PA2PDVOB.js +93 -0
  244. package/dist/plot.boxplot-IHIEWQWG.js +142 -0
  245. package/dist/plot.brainImaging-WQ2WWEW3.js +51 -0
  246. package/dist/plot.disco-QIURLAHA.js +100 -0
  247. package/dist/plot.ssgq-T27XDC4K.js +130 -0
  248. package/dist/plot.vaf2cov-Y2DJRQED.js +249 -0
  249. package/dist/polar2-3MFBRZ4G.js +228 -0
  250. package/dist/profileForms-J3O7XDHY.js +937 -0
  251. package/dist/profilePlot-C45ERAOZ.js +45 -0
  252. package/dist/proteinView-F2EVY7V5.js +1346 -0
  253. package/dist/proteinView-F2EVY7V5.js.map +7 -0
  254. package/dist/proteomeCohortCompare-2IS7GNJZ.js +866 -0
  255. package/dist/pseudbulk.unit.spec-SY3ATAPK.js +82 -0
  256. package/dist/pseudobulk-N6WNHKAC.js +31 -0
  257. package/dist/qualitative-SKUTWJLA.js +34 -0
  258. package/dist/qualitative-XWN5V3EE.js +241 -0
  259. package/dist/radar2-AHZME5CF.js +323 -0
  260. package/dist/radarFacility2-CVEVC4U5.js +331 -0
  261. package/dist/render-S47OJIIP.js +29 -0
  262. package/dist/report-IPX3PKSW.js +213 -0
  263. package/dist/sampleView-OZQUKPVV.js +39 -0
  264. package/dist/samplelst-7XXJTJ4J.js +114 -0
  265. package/dist/samplematrix-JN35HJBG.js +2188 -0
  266. package/dist/sc-6ZHDNPYP.js +77 -0
  267. package/dist/scatter-4MP6TG67.js +84 -0
  268. package/dist/scatter-TRMY47CC.js +919 -0
  269. package/dist/selectGenomeWithTklst-UDNTL544.js +125 -0
  270. package/dist/singleCellCellType-UXABRPQQ.js +29 -0
  271. package/dist/singleCellCellType.unit.spec-N22EQMZW.js +150 -0
  272. package/dist/singleCellGeneExpression-OBPVP6IU.js +29 -0
  273. package/dist/singleCellGeneExpression.unit.spec-NVCFU5B4.js +144 -0
  274. package/dist/singleCellNumericValue-Z2X3LLRB.js +29 -0
  275. package/dist/singleCellNumericValue.unit.spec-Q7DCQHEE.js +412 -0
  276. package/dist/singleCellPlot-S5N6ZEEA.js +44 -0
  277. package/dist/singlecell-OK2P4AS2.js +1562 -0
  278. package/dist/singlecell-RI6HA3NI.js +77 -0
  279. package/dist/snp-XRM2UAEJ.js +29 -0
  280. package/dist/snp.unit.spec-CDTYGH4K.js +167 -0
  281. package/dist/snplocus-CAUGDRZE.js +200 -0
  282. package/dist/snplst-DP533FL2.js +36 -0
  283. package/dist/spliceevent.a53ss.diagram-XWEN4UMO.js +142 -0
  284. package/dist/spliceevent.exonskip.diagram-HBXQOUT4.js +274 -0
  285. package/dist/spliceevent.noeventdiagram-ORQJ62ON.js +451 -0
  286. package/dist/ssGSEA-PLDZ2556.js +29 -0
  287. package/dist/ssGSEA.unit.spec-ORFJFZJY.js +79 -0
  288. package/dist/stattable-GVRVRO2Y.js +112 -0
  289. package/dist/studyCatalog-K46WJHC6.js +457 -0
  290. package/dist/summarizeCnvGeneexp-7WSJTWKH.js +154 -0
  291. package/dist/summarizeGeneexpSurvival-H3TW7I4I.js +101 -0
  292. package/dist/summarizeMutationCnv-JOYXEMFP.js +155 -0
  293. package/dist/summarizeMutationDiagnosis-GBIGXFY5.js +31 -0
  294. package/dist/summarizeMutationSurvival-3RULG3KW.js +95 -0
  295. package/dist/summary-VKLFTPC2.js +40 -0
  296. package/dist/summary.integration.spec-EK3MPFVD.js +405 -0
  297. package/dist/summaryInput-POI5KQSP.js +238 -0
  298. package/dist/sunburst-BIVYHF5R.js +274 -0
  299. package/dist/sunburst-SYHQOCGQ.js +34 -0
  300. package/dist/survival-CG2GQ4YY.js +1248 -0
  301. package/dist/survival-NEO3E2HS.js +49 -0
  302. package/dist/survival.integration.spec-PPK5KO4V.js +609 -0
  303. package/dist/svgraph-Q2U2HEMF.js +1377 -0
  304. package/dist/svmr-HKFHKGLI.js +3574 -0
  305. package/dist/svmr-HKFHKGLI.js.map +7 -0
  306. package/dist/swimmer-GA4C6YH7.js +993 -0
  307. package/dist/table-DJJIES6L.js +192 -0
  308. package/dist/termCollection-CHVUM5C6.js +247 -0
  309. package/dist/termCollection-R3LTBPJ4.js +29 -0
  310. package/dist/termCollection.unit.spec-B7KAAOFT.js +295 -0
  311. package/dist/termCollectionFractionSelection-A72QM36J.js +38 -0
  312. package/dist/termCollectionFractionSelection.unit.spec-JR77QEIG.js +184 -0
  313. package/dist/tk-GRGKFATN.js +38 -0
  314. package/dist/tk-WV2G2UPY.js +1224 -0
  315. package/dist/tk-WV2G2UPY.js.map +7 -0
  316. package/dist/tp.ui-NATRJ5EN.js +1453 -0
  317. package/dist/tvs.categorical-U2ZYLPSW.js +28 -0
  318. package/dist/tvs.condition-6EBZALR4.js +160 -0
  319. package/dist/tvs.dt-H626ESMQ.js +34 -0
  320. package/dist/tvs.dtcnv.categorical-6S7INDYC.js +31 -0
  321. package/dist/tvs.dtcnv.continuous-MLYNEMHI.js +72 -0
  322. package/dist/tvs.dtfusion-2OLY6X7G.js +31 -0
  323. package/dist/tvs.dtitd-Z6MEL5SH.js +31 -0
  324. package/dist/tvs.dtsnvindel-HPBQSCYV.js +31 -0
  325. package/dist/tvs.dtsv-BRRNX64J.js +31 -0
  326. package/dist/tvs.multivalue-H2G7WKAL.js +84 -0
  327. package/dist/tvs.numeric-OKYGMQSK.js +32 -0
  328. package/dist/tvs.samplelst-46FGACU7.js +95 -0
  329. package/dist/tvs.survival-QL4KC3SQ.js +110 -0
  330. package/dist/tvs.termCollection-22DFW3PF.js +118 -0
  331. package/dist/vocabulary-LJEERZJ6.js +32 -0
  332. package/dist/wsi.direct-3GGVEVQ4.js +11600 -0
  333. package/dist/wsi.direct-3GGVEVQ4.js.map +7 -0
  334. package/package.json +3 -3
  335. package/dist/2dmaf-CSBPMYHO.js +0 -1362
  336. package/dist/AggMatrixInput-2HST4LLJ.js +0 -402
  337. package/dist/AggregateMatrix-UPOAX44L.js +0 -37
  338. package/dist/AppHeader-H5QBVKUS.js +0 -826
  339. package/dist/BoxPlot-JTBQA6PL.js +0 -1247
  340. package/dist/CorrelationVolcano-AWBPVDMT.js +0 -613
  341. package/dist/CorrelationVolcano-AWBPVDMT.js.map +0 -7
  342. package/dist/Cuminc-3BXJVWIH.js +0 -1217
  343. package/dist/DE-237VV46D.js +0 -85
  344. package/dist/DEinput-W443UW5T.js +0 -479
  345. package/dist/DEinput-W443UW5T.js.map +0 -7
  346. package/dist/DM-TIW623IR.js +0 -86
  347. package/dist/DifferentialAnalysis-PHUA2GPK.js +0 -236
  348. package/dist/Disco-WHV52SCI.js +0 -3445
  349. package/dist/Disco.UI-UDUXNCZX.js +0 -239
  350. package/dist/DmrPlot-FZCD6FTX.js +0 -366
  351. package/dist/GB-6UW5LOUV.js +0 -1388
  352. package/dist/GB-6UW5LOUV.js.map +0 -7
  353. package/dist/GSEA-3CNHMK6M.js +0 -870
  354. package/dist/GeneExpInput-ZOVP7BFY.js +0 -38
  355. package/dist/Geomap-JREOIESM.js +0 -80
  356. package/dist/HicApp-RKAMIUXQ.js +0 -2240
  357. package/dist/IDCViewer-KXV4FU3V.js +0 -10810
  358. package/dist/NumBinaryEditor-FNVYUK2J.js +0 -274
  359. package/dist/NumBinaryEditor.unit.spec-PWR23U3J.js +0 -308
  360. package/dist/NumContEditor-YLBJW64K.js +0 -100
  361. package/dist/NumContEditor.unit.spec-6JWBCPFY.js +0 -160
  362. package/dist/NumCustomBinEditor-42AFCXRN.js +0 -29
  363. package/dist/NumCustomBinEditor.unit.spec-AFBTF2CL.js +0 -393
  364. package/dist/NumDiscreteEditor-FJIBZTBP.js +0 -165
  365. package/dist/NumDiscreteEditor.unit.spec-MC4INDCB.js +0 -229
  366. package/dist/NumRegularBinEditor-2WRE72TL.js +0 -29
  367. package/dist/NumRegularBinEditor.unit.spec-L3S6NRCM.js +0 -274
  368. package/dist/NumSplineEditor-TVMVAN7I.js +0 -205
  369. package/dist/NumSplineEditor.unit.spec-GEL36GZZ.js +0 -220
  370. package/dist/NumericDensity-BNFAVOFO.js +0 -29
  371. package/dist/NumericDensity.unit.spec-XBYUFBTQ.js +0 -414
  372. package/dist/NumericHandler-4VFFJNX6.js +0 -30
  373. package/dist/NumericHandler.unit.spec-76T2IVRS.js +0 -225
  374. package/dist/ProteomeInput-M5UIO73Q.js +0 -610
  375. package/dist/Regression-5LB5TLA6.js +0 -1412
  376. package/dist/RunChart2-HIFXOEKZ.js +0 -744
  377. package/dist/SC-SMMW5MJG.js +0 -1290
  378. package/dist/Violin-COAFYZOV.js +0 -1105
  379. package/dist/Volcano-62II76B4.js +0 -2748
  380. package/dist/Volcano-62II76B4.js.map +0 -7
  381. package/dist/Wsi-OYW2L7FR.js +0 -637
  382. package/dist/Wsi-OYW2L7FR.js.map +0 -7
  383. package/dist/aboutSunburst-3FYJGR6B.js +0 -93
  384. package/dist/adSandbox-4VHYWBQC.js +0 -29
  385. package/dist/animatedBubbleChart-QCCIC5IT.js +0 -542
  386. package/dist/app-IF7YPCGZ.js +0 -28
  387. package/dist/app-JZ43TSJP.js +0 -38
  388. package/dist/bam-2VPZGSW3.js +0 -872
  389. package/dist/barchart-VYTWYYGG.js +0 -38
  390. package/dist/barchart2-XC7J4VEO.js +0 -305
  391. package/dist/block-YGQFUK5L.js +0 -6203
  392. package/dist/block-YGQFUK5L.js.map +0 -7
  393. package/dist/block.init-BVP3YZHQ.js +0 -29
  394. package/dist/block.mds.expressionrank-RKDDKY4J.js +0 -350
  395. package/dist/block.mds.geneboxplot-3FZ3EZZ6.js +0 -819
  396. package/dist/block.mds.junction-MCOG37RA.js +0 -1534
  397. package/dist/block.mds.svcnv-IEOR5IQZ.js +0 -6325
  398. package/dist/block.svg-3XHRHYCV.js +0 -155
  399. package/dist/block.tk.aicheck-TMDUGNZX.js +0 -274
  400. package/dist/block.tk.bam-73KW4QEJ.js +0 -1906
  401. package/dist/block.tk.bigwig.ui-E5W6R7DQ.js +0 -202
  402. package/dist/block.tk.hicstraw-BNNE6ZMW.js +0 -814
  403. package/dist/block.tk.junction-DMPRZRNY.js +0 -2353
  404. package/dist/block.tk.junction.textmatrixui-XS2E7MQL.js +0 -190
  405. package/dist/block.tk.ld-QD3XDLO4.js +0 -90
  406. package/dist/block.tk.menu-S6XI732E.js +0 -1050
  407. package/dist/block.tk.pgv-KH4TMR3A.js +0 -934
  408. package/dist/brainImaging-NK4JENN3.js +0 -550
  409. package/dist/brainRegions-YUEMTKYH.js +0 -213
  410. package/dist/bubbleHeatmap-LQCVS4WK.js +0 -374
  411. package/dist/bubbleHeatmap-LQCVS4WK.js.map +0 -7
  412. package/dist/cellTypeBubbleHeatmap-DFRSPWAY.js +0 -274
  413. package/dist/cellTypeBubbleHeatmap-DFRSPWAY.js.map +0 -7
  414. package/dist/chunk-37ZEGLVY.js +0 -267
  415. package/dist/chunk-3RPX4ZVV.js +0 -2334
  416. package/dist/chunk-4LK5YFHF.js +0 -102
  417. package/dist/chunk-4WFG5Y3A.js +0 -2095
  418. package/dist/chunk-4WFXCUT4.js +0 -141
  419. package/dist/chunk-5LY2ASQX.js +0 -305
  420. package/dist/chunk-6V7ITU5F.js +0 -2349
  421. package/dist/chunk-7UK7CU4F.js +0 -398
  422. package/dist/chunk-7UK7CU4F.js.map +0 -7
  423. package/dist/chunk-AAQDXVQT.js +0 -134
  424. package/dist/chunk-ADJBQCFM.js +0 -243
  425. package/dist/chunk-ATIITEOR.js +0 -692
  426. package/dist/chunk-ATIITEOR.js.map +0 -7
  427. package/dist/chunk-BWVJAFEQ.js +0 -35
  428. package/dist/chunk-CDCNBN6G.js +0 -50
  429. package/dist/chunk-CGSBIFFO.js +0 -1339
  430. package/dist/chunk-DPWSIN62.js +0 -26787
  431. package/dist/chunk-DPWSIN62.js.map +0 -7
  432. package/dist/chunk-EARMOT6Q.js +0 -176
  433. package/dist/chunk-ECCXTB5S.js +0 -562
  434. package/dist/chunk-ECTOEM7X.js +0 -96
  435. package/dist/chunk-EKIWZUEO.js +0 -54
  436. package/dist/chunk-FALP6GXG.js +0 -96
  437. package/dist/chunk-FRD6LQF7.js +0 -103
  438. package/dist/chunk-FRPYXYYQ.js +0 -263
  439. package/dist/chunk-FV2GLMSI.js +0 -397
  440. package/dist/chunk-G6SP5IQT.js +0 -626
  441. package/dist/chunk-GZL6YFZJ.js +0 -30
  442. package/dist/chunk-H353EVLK.js +0 -240
  443. package/dist/chunk-HKR5R5YR.js +0 -466
  444. package/dist/chunk-HULTLO4D.js +0 -217
  445. package/dist/chunk-IIN4CG67.js +0 -56
  446. package/dist/chunk-ISWFHYEZ.js +0 -123
  447. package/dist/chunk-JBUTLI3V.js +0 -1253
  448. package/dist/chunk-JCNZJKLK.js +0 -55
  449. package/dist/chunk-JEVDRC64.js +0 -56
  450. package/dist/chunk-KBZAB2H2.js +0 -340
  451. package/dist/chunk-KDKJLITX.js +0 -54
  452. package/dist/chunk-KNFJN6CM.js +0 -299
  453. package/dist/chunk-KSYGLBZ4.js +0 -4389
  454. package/dist/chunk-KSYGLBZ4.js.map +0 -7
  455. package/dist/chunk-KUOXZIH4.js +0 -348
  456. package/dist/chunk-KZ54E2FU.js +0 -184
  457. package/dist/chunk-L7FMBWWK.js +0 -6375
  458. package/dist/chunk-LMONIWPI.js +0 -30
  459. package/dist/chunk-LTY7WOAT.js +0 -281
  460. package/dist/chunk-LYDN734A.js +0 -194
  461. package/dist/chunk-LYMYO6TY.js +0 -652
  462. package/dist/chunk-LYMYO6TY.js.map +0 -7
  463. package/dist/chunk-MRZUZDRA.js +0 -444
  464. package/dist/chunk-NGBI4FST.js +0 -195
  465. package/dist/chunk-OKM4ACTA.js +0 -170
  466. package/dist/chunk-OUDHHMZU.js +0 -159
  467. package/dist/chunk-OUDHHMZU.js.map +0 -7
  468. package/dist/chunk-OYXRYWGU.js +0 -2932
  469. package/dist/chunk-P2HMCEMM.js +0 -5254
  470. package/dist/chunk-P2HMCEMM.js.map +0 -7
  471. package/dist/chunk-P5FHYGJK.js +0 -848
  472. package/dist/chunk-P7QDNXSH.js +0 -276
  473. package/dist/chunk-Q7GK35TB.js +0 -257
  474. package/dist/chunk-QXRM5NMW.js +0 -274
  475. package/dist/chunk-RI3GAHQE.js +0 -255
  476. package/dist/chunk-SH7SL4I5.js +0 -1219
  477. package/dist/chunk-SH7SL4I5.js.map +0 -7
  478. package/dist/chunk-SJHWZZ4M.js +0 -70
  479. package/dist/chunk-SJHWZZ4M.js.map +0 -7
  480. package/dist/chunk-T2W4JHWJ.js +0 -472
  481. package/dist/chunk-T2W4JHWJ.js.map +0 -7
  482. package/dist/chunk-TDBS3UFZ.js +0 -379
  483. package/dist/chunk-THHYPA5K.js +0 -48
  484. package/dist/chunk-U2OB3S3M.js +0 -14
  485. package/dist/chunk-UA2ADBTO.js +0 -42
  486. package/dist/chunk-USGUVW5Q.js +0 -182
  487. package/dist/chunk-UWVDD4C2.js +0 -480
  488. package/dist/chunk-W2SBSEKT.js +0 -550
  489. package/dist/chunk-XAHZYGKW.js +0 -468
  490. package/dist/chunk-XKWLP433.js +0 -328
  491. package/dist/chunk-YWB2QHV2.js +0 -2799
  492. package/dist/chunk-Z6M77JDG.js +0 -2008
  493. package/dist/chunk-Z7RFFJXU.js +0 -516
  494. package/dist/chunk-ZG7EBTHK.js +0 -203
  495. package/dist/chunk-ZJLJHQWM.js +0 -418
  496. package/dist/chunk-ZKU6RST3.js +0 -2685
  497. package/dist/chunk-ZLWEUYPT.js +0 -296
  498. package/dist/cohort-X327AG3O.js +0 -66
  499. package/dist/cohortSunburst-GNWIVDNA.js +0 -402
  500. package/dist/condition-3M4L2HIM.js +0 -323
  501. package/dist/controls-OKNHZJOU.js +0 -30
  502. package/dist/controls.config-FUKM5LEP.js +0 -30
  503. package/dist/correlation-PC4MXCFM.js +0 -91
  504. package/dist/customdata.inputui-HCRTX56R.js +0 -280
  505. package/dist/dataDownload-HJO7UW7S.js +0 -326
  506. package/dist/databrowser.ui-EY3H6B4S.js +0 -424
  507. package/dist/dictionary-L6CTMFY7.js +0 -109
  508. package/dist/dnaMethylation-FEB5GGXK.js +0 -29
  509. package/dist/dnaMethylation.integration.spec-4DC6TJNZ.js +0 -194
  510. package/dist/dnaMethylation.unit.spec-REOHQOBC.js +0 -95
  511. package/dist/dofetch-YFGOKCKV.js +0 -49
  512. package/dist/e2pca-QSAVTCPL.js +0 -340
  513. package/dist/ep-LAFLKVSW.js +0 -1247
  514. package/dist/expclust.gdc.spec-OM4J6WBL.js +0 -298
  515. package/dist/facet-WHTV2VIX.js +0 -556
  516. package/dist/gb-DLXWWBB6.js +0 -77
  517. package/dist/geneExpClustering-KB2MB2VM.js +0 -240
  518. package/dist/geneExpression-3D7PDZ2I.js +0 -309
  519. package/dist/geneExpression-3RSRGYGQ.js +0 -29
  520. package/dist/geneExpression.unit.spec-EINAWLPR.js +0 -150
  521. package/dist/geneORA-J4KVSZT3.js +0 -269
  522. package/dist/geneRanking-HKLJ7CN6.js +0 -544
  523. package/dist/geneVariant-3BRGRFPT.js +0 -32
  524. package/dist/geneVariant-VI5DGDAB.js +0 -289
  525. package/dist/geneVariant-VI5DGDAB.js.map +0 -7
  526. package/dist/geneVariant.integration.spec-3IBX4NNE.js +0 -672
  527. package/dist/genefusion.ui-OESQL7TW.js +0 -299
  528. package/dist/geneset-3BMV3KP4.js +0 -199
  529. package/dist/genomeBrowser.spec-I3WKAITC.js +0 -272
  530. package/dist/grin2-4BBCH3H5.js +0 -66
  531. package/dist/grin2-5L2U32LY.js +0 -945
  532. package/dist/hierCluster-KM56NTN6.js +0 -51
  533. package/dist/hierCluster-XCJF5IQ6.js +0 -55
  534. package/dist/hierCluster.config-E2EYOXX6.js +0 -32
  535. package/dist/hierCluster.integration.spec-IIEJ2YEI.js +0 -479
  536. package/dist/hierCluster.interactivity-AJFEJTGX.js +0 -45
  537. package/dist/hierCluster.renderers-XKI344FM.js +0 -18
  538. package/dist/imagePlot-3B3BXI6I.js +0 -152
  539. package/dist/importPlot-JDVH7Q2Z.js +0 -8
  540. package/dist/isoformExpression-UFHY5LB2.js +0 -31
  541. package/dist/isoformExpression.unit.spec-U6GDCNQR.js +0 -233
  542. package/dist/junction-W2STW5WW.js +0 -32
  543. package/dist/junction.unit.spec-R4DIBFLB.js +0 -178
  544. package/dist/junction.unit.spec-R4DIBFLB.js.map +0 -7
  545. package/dist/launch.adhoc-KN7HFHJH.js +0 -33
  546. package/dist/leftlabel.sample-CK2EK7J6.js +0 -254
  547. package/dist/leftlabel.sample-CK2EK7J6.js.map +0 -7
  548. package/dist/lollipop-EKIGAAK6.js +0 -162
  549. package/dist/maf-MK2MM7J4.js +0 -451
  550. package/dist/maftimeline-7RTMXWFA.js +0 -583
  551. package/dist/matrix-UM2EZODJ.js +0 -50
  552. package/dist/matrix-YBL4FZYJ.js +0 -55
  553. package/dist/matrix.cells-45ZFADK5.js +0 -25
  554. package/dist/matrix.config-QTBIRXKU.js +0 -33
  555. package/dist/matrix.data-WAMOLSKW.js +0 -22
  556. package/dist/matrix.groups-RXFXZABD.js +0 -25
  557. package/dist/matrix.integration.spec-JZDZRVOK.js +0 -3156
  558. package/dist/matrix.interactivity-P4VYGTB2.js +0 -33
  559. package/dist/matrix.layout-WWPRXXHX.js +0 -35
  560. package/dist/matrix.legend-4MCMVVKO.js +0 -19
  561. package/dist/matrix.renderers-JQTUODDS.js +0 -30
  562. package/dist/matrix.serieses-3IDRKSGO.js +0 -18
  563. package/dist/matrix.sort-EAWOB56R.js +0 -25
  564. package/dist/matrix.sort.unit.spec-FOWLULHA.js +0 -464
  565. package/dist/matrix.sorterUi.unit.spec-U5CQDTMX.js +0 -334
  566. package/dist/matrix.unit.spec-VTLD4EOZ.js +0 -146
  567. package/dist/mavb-JIIXJHBK.js +0 -726
  568. package/dist/mds.samplescatterplot-PTWA2V6E.js +0 -1545
  569. package/dist/mds.survivalplot-XVZ66GP5.js +0 -472
  570. package/dist/multivalue-2H7QX7MG.js +0 -79
  571. package/dist/numericDictTermCluster-EHCDRT6J.js +0 -62
  572. package/dist/oncomatrix-RZLZUC32.js +0 -286
  573. package/dist/oncomatrix.spec-Z5UQGTW2.js +0 -439
  574. package/dist/plot.2dvaf-IRBZBJ6B.js +0 -368
  575. package/dist/plot.app-I23IAZ3Z.js +0 -32
  576. package/dist/plot.barplot-PYLRAZB7.js +0 -93
  577. package/dist/plot.boxplot-VBWU7DUG.js +0 -142
  578. package/dist/plot.brainImaging-HDJMEMTK.js +0 -51
  579. package/dist/plot.disco-5BVG3WMT.js +0 -100
  580. package/dist/plot.ssgq-S3BKXJMW.js +0 -130
  581. package/dist/plot.vaf2cov-VD7DU2XR.js +0 -249
  582. package/dist/polar2-PYLEVG7E.js +0 -228
  583. package/dist/profileForms-CI2YYD3Y.js +0 -937
  584. package/dist/profilePlot-UCC4ZVHQ.js +0 -45
  585. package/dist/proteinView-FBY6TK3S.js +0 -1346
  586. package/dist/proteinView-FBY6TK3S.js.map +0 -7
  587. package/dist/proteomeCohortCompare-2VUSLC6I.js +0 -866
  588. package/dist/pseudbulk.unit.spec-VPZWNTIA.js +0 -82
  589. package/dist/pseudobulk-RUXGZ7OY.js +0 -31
  590. package/dist/qualitative-3AVR4GRX.js +0 -34
  591. package/dist/qualitative-5QNBKDOZ.js +0 -241
  592. package/dist/radar2-AOYMS54Y.js +0 -323
  593. package/dist/radarFacility2-PP2MAXIP.js +0 -331
  594. package/dist/render-ASLVKYEX.js +0 -29
  595. package/dist/report-UVYKDMQC.js +0 -213
  596. package/dist/sampleView-6UHR7FSR.js +0 -39
  597. package/dist/samplelst-ABC2CCNN.js +0 -114
  598. package/dist/samplematrix-36UCHZLC.js +0 -2188
  599. package/dist/sc-XLSAM725.js +0 -77
  600. package/dist/scatter-ADOBAOW2.js +0 -84
  601. package/dist/scatter-ZNVLI627.js +0 -919
  602. package/dist/selectGenomeWithTklst-DPDBDYTR.js +0 -125
  603. package/dist/singleCellCellType-STVPYZD4.js +0 -29
  604. package/dist/singleCellCellType.unit.spec-ZLY37AXL.js +0 -150
  605. package/dist/singleCellGeneExpression-PCGLU35S.js +0 -29
  606. package/dist/singleCellGeneExpression.unit.spec-PSLKK362.js +0 -144
  607. package/dist/singleCellNumericValue-SR3SJEOB.js +0 -29
  608. package/dist/singleCellNumericValue.unit.spec-PXVXJ4HJ.js +0 -412
  609. package/dist/singleCellPlot-JXB7M6OH.js +0 -44
  610. package/dist/singlecell-EDSX56QO.js +0 -1562
  611. package/dist/singlecell-PH55NFRX.js +0 -77
  612. package/dist/snp-3VEYBTAQ.js +0 -29
  613. package/dist/snp.unit.spec-V7OB44US.js +0 -167
  614. package/dist/snplocus-HX67RBT5.js +0 -200
  615. package/dist/snplst-H5YXCY33.js +0 -36
  616. package/dist/spliceevent.a53ss.diagram-DBDEEHSK.js +0 -142
  617. package/dist/spliceevent.exonskip.diagram-EYEL6BY6.js +0 -274
  618. package/dist/spliceevent.noeventdiagram-64OEXK7U.js +0 -451
  619. package/dist/ssGSEA-3YWQH6KM.js +0 -29
  620. package/dist/ssGSEA.unit.spec-23V2IXP5.js +0 -79
  621. package/dist/stattable-GPSBCNYC.js +0 -112
  622. package/dist/studyCatalog-W5PATRNY.js +0 -457
  623. package/dist/summarizeCnvGeneexp-YGI23QH5.js +0 -154
  624. package/dist/summarizeGeneexpSurvival-KQ6OLWYR.js +0 -101
  625. package/dist/summarizeMutationCnv-XDHBNEPU.js +0 -155
  626. package/dist/summarizeMutationDiagnosis-VKIJRJ2Q.js +0 -31
  627. package/dist/summarizeMutationSurvival-57YKJGLE.js +0 -95
  628. package/dist/summary-4WQOVIUF.js +0 -40
  629. package/dist/summary.integration.spec-FRNWBU7F.js +0 -405
  630. package/dist/summaryInput-X7DS2YA7.js +0 -238
  631. package/dist/sunburst-3OEAQA3O.js +0 -34
  632. package/dist/sunburst-MSGTXYMM.js +0 -274
  633. package/dist/survival-5KC5CNZU.js +0 -1248
  634. package/dist/survival-QXDS6N46.js +0 -49
  635. package/dist/survival.integration.spec-PKENHLTZ.js +0 -609
  636. package/dist/svgraph-VJLB7BBN.js +0 -1377
  637. package/dist/svmr-6BDEZAS6.js +0 -3834
  638. package/dist/svmr-6BDEZAS6.js.map +0 -7
  639. package/dist/swimmer-R3DN7N36.js +0 -993
  640. package/dist/table-YF5VORU6.js +0 -192
  641. package/dist/termCollection-3KGLZFDW.js +0 -29
  642. package/dist/termCollection-KSHVOPS5.js +0 -247
  643. package/dist/termCollection.unit.spec-HTBDG5PL.js +0 -295
  644. package/dist/termCollectionFractionSelection-MK4NKWUX.js +0 -38
  645. package/dist/termCollectionFractionSelection.unit.spec-AMF32FDN.js +0 -184
  646. package/dist/tk-FDHBAKXQ.js +0 -1198
  647. package/dist/tk-FDHBAKXQ.js.map +0 -7
  648. package/dist/tk-Z54DOECH.js +0 -38
  649. package/dist/tp.ui-M4TZVT53.js +0 -1453
  650. package/dist/tvs.categorical-HY3BWCZR.js +0 -28
  651. package/dist/tvs.condition-Y36TRIX4.js +0 -160
  652. package/dist/tvs.dt-XKVJZP7Y.js +0 -34
  653. package/dist/tvs.dtcnv.categorical-OMRZR4Y7.js +0 -31
  654. package/dist/tvs.dtcnv.continuous-AGYOBI5K.js +0 -72
  655. package/dist/tvs.dtfusion-2JX5Y2IH.js +0 -31
  656. package/dist/tvs.dtitd-SDSLBBWC.js +0 -31
  657. package/dist/tvs.dtsnvindel-LI7K464K.js +0 -31
  658. package/dist/tvs.dtsv-VRCLX7QY.js +0 -31
  659. package/dist/tvs.multivalue-4OTY6J2S.js +0 -84
  660. package/dist/tvs.numeric-CDATYOR2.js +0 -32
  661. package/dist/tvs.samplelst-76JOJG2M.js +0 -95
  662. package/dist/tvs.survival-WTFJOKIZ.js +0 -110
  663. package/dist/tvs.termCollection-QQXAS7PE.js +0 -118
  664. package/dist/vocabulary-6ACAEFTL.js +0 -32
  665. package/dist/wsi.direct-OS32TQRM.js +0 -11515
  666. package/dist/wsi.direct-OS32TQRM.js.map +0 -7
  667. /package/dist/{2dmaf-CSBPMYHO.js.map → 2dmaf-B34EJADN.js.map} +0 -0
  668. /package/dist/{AggMatrixInput-2HST4LLJ.js.map → AggMatrixInput-USCXGZT2.js.map} +0 -0
  669. /package/dist/{AggregateMatrix-UPOAX44L.js.map → AggregateMatrix-VLCSBD65.js.map} +0 -0
  670. /package/dist/{AppHeader-H5QBVKUS.js.map → AppHeader-KE7QVEW5.js.map} +0 -0
  671. /package/dist/{BoxPlot-JTBQA6PL.js.map → BoxPlot-3H5QKYRD.js.map} +0 -0
  672. /package/dist/{Cuminc-3BXJVWIH.js.map → Cuminc-6LPS4LR7.js.map} +0 -0
  673. /package/dist/{DE-237VV46D.js.map → DE-TTKEQYC7.js.map} +0 -0
  674. /package/dist/{DM-TIW623IR.js.map → DM-2TUF6Q3C.js.map} +0 -0
  675. /package/dist/{DifferentialAnalysis-PHUA2GPK.js.map → DifferentialAnalysis-3LP4RAWF.js.map} +0 -0
  676. /package/dist/{Disco-WHV52SCI.js.map → Disco-UP5C7UWX.js.map} +0 -0
  677. /package/dist/{Disco.UI-UDUXNCZX.js.map → Disco.UI-V4I4LOMF.js.map} +0 -0
  678. /package/dist/{DmrPlot-FZCD6FTX.js.map → DmrPlot-TZR2NGIH.js.map} +0 -0
  679. /package/dist/{GSEA-3CNHMK6M.js.map → GSEA-YGKBRJJO.js.map} +0 -0
  680. /package/dist/{GeneExpInput-ZOVP7BFY.js.map → GeneExpInput-L3J2ECVQ.js.map} +0 -0
  681. /package/dist/{Geomap-JREOIESM.js.map → Geomap-4MHU6F57.js.map} +0 -0
  682. /package/dist/{HicApp-RKAMIUXQ.js.map → HicApp-27VGP5F6.js.map} +0 -0
  683. /package/dist/{IDCViewer-KXV4FU3V.js.map → IDCViewer-37GJPPUY.js.map} +0 -0
  684. /package/dist/{NumBinaryEditor-FNVYUK2J.js.map → NumBinaryEditor-SEC2NDGG.js.map} +0 -0
  685. /package/dist/{NumBinaryEditor.unit.spec-PWR23U3J.js.map → NumBinaryEditor.unit.spec-UDYSUC4S.js.map} +0 -0
  686. /package/dist/{NumContEditor-YLBJW64K.js.map → NumContEditor-YPSYWU2A.js.map} +0 -0
  687. /package/dist/{NumContEditor.unit.spec-6JWBCPFY.js.map → NumContEditor.unit.spec-NHFBMHQ5.js.map} +0 -0
  688. /package/dist/{NumCustomBinEditor-42AFCXRN.js.map → NumCustomBinEditor-N7US5Q64.js.map} +0 -0
  689. /package/dist/{NumCustomBinEditor.unit.spec-AFBTF2CL.js.map → NumCustomBinEditor.unit.spec-2BMMUBYU.js.map} +0 -0
  690. /package/dist/{NumDiscreteEditor-FJIBZTBP.js.map → NumDiscreteEditor-BLQ5DEB7.js.map} +0 -0
  691. /package/dist/{NumDiscreteEditor.unit.spec-MC4INDCB.js.map → NumDiscreteEditor.unit.spec-JOFPUFU5.js.map} +0 -0
  692. /package/dist/{NumRegularBinEditor-2WRE72TL.js.map → NumRegularBinEditor-7BFPBUW2.js.map} +0 -0
  693. /package/dist/{NumRegularBinEditor.unit.spec-L3S6NRCM.js.map → NumRegularBinEditor.unit.spec-6GZMNRHA.js.map} +0 -0
  694. /package/dist/{NumSplineEditor-TVMVAN7I.js.map → NumSplineEditor-LO3ZR3T3.js.map} +0 -0
  695. /package/dist/{NumSplineEditor.unit.spec-GEL36GZZ.js.map → NumSplineEditor.unit.spec-MRA3DQSB.js.map} +0 -0
  696. /package/dist/{NumericDensity-BNFAVOFO.js.map → NumericDensity-NUCVJZ74.js.map} +0 -0
  697. /package/dist/{NumericDensity.unit.spec-XBYUFBTQ.js.map → NumericDensity.unit.spec-TZLKWH4U.js.map} +0 -0
  698. /package/dist/{NumericHandler-4VFFJNX6.js.map → NumericHandler-NH533VBN.js.map} +0 -0
  699. /package/dist/{NumericHandler.unit.spec-76T2IVRS.js.map → NumericHandler.unit.spec-V7MNEHML.js.map} +0 -0
  700. /package/dist/{ProteomeInput-M5UIO73Q.js.map → ProteomeInput-FEXWZOA2.js.map} +0 -0
  701. /package/dist/{Regression-5LB5TLA6.js.map → Regression-NJAPUGT7.js.map} +0 -0
  702. /package/dist/{RunChart2-HIFXOEKZ.js.map → RunChart2-QIJ6NUWY.js.map} +0 -0
  703. /package/dist/{SC-SMMW5MJG.js.map → SC-5NWBVOEE.js.map} +0 -0
  704. /package/dist/{Violin-COAFYZOV.js.map → Violin-TMACI43Q.js.map} +0 -0
  705. /package/dist/{aboutSunburst-3FYJGR6B.js.map → aboutSunburst-53YAWTV5.js.map} +0 -0
  706. /package/dist/{adSandbox-4VHYWBQC.js.map → adSandbox-7VHXEI7W.js.map} +0 -0
  707. /package/dist/{animatedBubbleChart-QCCIC5IT.js.map → animatedBubbleChart-CTFGJIRR.js.map} +0 -0
  708. /package/dist/{app-IF7YPCGZ.js.map → app-AQAQAPUN.js.map} +0 -0
  709. /package/dist/{app-JZ43TSJP.js.map → app-SZDIV5U4.js.map} +0 -0
  710. /package/dist/{bam-2VPZGSW3.js.map → bam-3U5R2KNC.js.map} +0 -0
  711. /package/dist/{barchart-VYTWYYGG.js.map → barchart-ZL5VSR7P.js.map} +0 -0
  712. /package/dist/{barchart2-XC7J4VEO.js.map → barchart2-YELP2HI7.js.map} +0 -0
  713. /package/dist/{block.init-BVP3YZHQ.js.map → block.init-IBITFICI.js.map} +0 -0
  714. /package/dist/{block.mds.expressionrank-RKDDKY4J.js.map → block.mds.expressionrank-4L76ILD4.js.map} +0 -0
  715. /package/dist/{block.mds.geneboxplot-3FZ3EZZ6.js.map → block.mds.geneboxplot-XA7DFHPV.js.map} +0 -0
  716. /package/dist/{block.mds.junction-MCOG37RA.js.map → block.mds.junction-GTZD3HEN.js.map} +0 -0
  717. /package/dist/{block.mds.svcnv-IEOR5IQZ.js.map → block.mds.svcnv-HTXQ3LGR.js.map} +0 -0
  718. /package/dist/{block.svg-3XHRHYCV.js.map → block.svg-BM6OMVRF.js.map} +0 -0
  719. /package/dist/{block.tk.aicheck-TMDUGNZX.js.map → block.tk.aicheck-CV53ULEP.js.map} +0 -0
  720. /package/dist/{block.tk.bam-73KW4QEJ.js.map → block.tk.bam-KJYFNJCX.js.map} +0 -0
  721. /package/dist/{block.tk.bigwig.ui-E5W6R7DQ.js.map → block.tk.bigwig.ui-A352D6PT.js.map} +0 -0
  722. /package/dist/{block.tk.hicstraw-BNNE6ZMW.js.map → block.tk.hicstraw-QAFTQESL.js.map} +0 -0
  723. /package/dist/{block.tk.junction-DMPRZRNY.js.map → block.tk.junction-XURB4RWZ.js.map} +0 -0
  724. /package/dist/{block.tk.junction.textmatrixui-XS2E7MQL.js.map → block.tk.junction.textmatrixui-RNRWWNGY.js.map} +0 -0
  725. /package/dist/{block.tk.ld-QD3XDLO4.js.map → block.tk.ld-GWJMVPX3.js.map} +0 -0
  726. /package/dist/{block.tk.menu-S6XI732E.js.map → block.tk.menu-BJZYFMQX.js.map} +0 -0
  727. /package/dist/{block.tk.pgv-KH4TMR3A.js.map → block.tk.pgv-7XNJTHEW.js.map} +0 -0
  728. /package/dist/{brainImaging-NK4JENN3.js.map → brainImaging-37EDZLGN.js.map} +0 -0
  729. /package/dist/{brainRegions-YUEMTKYH.js.map → brainRegions-FEW52QUB.js.map} +0 -0
  730. /package/dist/{chunk-GZL6YFZJ.js.map → chunk-2B3CYHUF.js.map} +0 -0
  731. /package/dist/{chunk-KUOXZIH4.js.map → chunk-2IAELUCN.js.map} +0 -0
  732. /package/dist/{chunk-NGBI4FST.js.map → chunk-2W6U53AG.js.map} +0 -0
  733. /package/dist/{chunk-CGSBIFFO.js.map → chunk-46GCGTHJ.js.map} +0 -0
  734. /package/dist/{chunk-FALP6GXG.js.map → chunk-4ZX5KHD7.js.map} +0 -0
  735. /package/dist/{chunk-HKR5R5YR.js.map → chunk-544DSOC3.js.map} +0 -0
  736. /package/dist/{chunk-LYDN734A.js.map → chunk-6CV3YVJD.js.map} +0 -0
  737. /package/dist/{chunk-P7QDNXSH.js.map → chunk-6UHSGC6G.js.map} +0 -0
  738. /package/dist/{chunk-BWVJAFEQ.js.map → chunk-6ZZGFZV2.js.map} +0 -0
  739. /package/dist/{chunk-L7FMBWWK.js.map → chunk-72FUMSAN.js.map} +0 -0
  740. /package/dist/{chunk-USGUVW5Q.js.map → chunk-7DC4PD5R.js.map} +0 -0
  741. /package/dist/{chunk-ADJBQCFM.js.map → chunk-7ISYXUJ7.js.map} +0 -0
  742. /package/dist/{chunk-LMONIWPI.js.map → chunk-7NVFEGCE.js.map} +0 -0
  743. /package/dist/{chunk-JBUTLI3V.js.map → chunk-7PQ6MLKG.js.map} +0 -0
  744. /package/dist/{chunk-IIN4CG67.js.map → chunk-BGPRKPKH.js.map} +0 -0
  745. /package/dist/{chunk-UWVDD4C2.js.map → chunk-BILGOVOR.js.map} +0 -0
  746. /package/dist/{chunk-Z6M77JDG.js.map → chunk-BKJLRLQQ.js.map} +0 -0
  747. /package/dist/{chunk-ISWFHYEZ.js.map → chunk-C4BKP67I.js.map} +0 -0
  748. /package/dist/{chunk-XKWLP433.js.map → chunk-CQNTAIM3.js.map} +0 -0
  749. /package/dist/{chunk-ZKU6RST3.js.map → chunk-CW3IVTRX.js.map} +0 -0
  750. /package/dist/{chunk-Z7RFFJXU.js.map → chunk-D7KZWYP5.js.map} +0 -0
  751. /package/dist/{chunk-P5FHYGJK.js.map → chunk-DNXOZATD.js.map} +0 -0
  752. /package/dist/{chunk-3RPX4ZVV.js.map → chunk-DXF3YDRG.js.map} +0 -0
  753. /package/dist/{chunk-G6SP5IQT.js.map → chunk-ECBVUPDE.js.map} +0 -0
  754. /package/dist/{chunk-Q7GK35TB.js.map → chunk-ES22B563.js.map} +0 -0
  755. /package/dist/{chunk-UA2ADBTO.js.map → chunk-FA2B6PKK.js.map} +0 -0
  756. /package/dist/{chunk-OYXRYWGU.js.map → chunk-FMHSDIVG.js.map} +0 -0
  757. /package/dist/{chunk-RI3GAHQE.js.map → chunk-G5UFOMON.js.map} +0 -0
  758. /package/dist/{chunk-W2SBSEKT.js.map → chunk-GKA6USKV.js.map} +0 -0
  759. /package/dist/{chunk-KNFJN6CM.js.map → chunk-HGIPR72Y.js.map} +0 -0
  760. /package/dist/{chunk-XAHZYGKW.js.map → chunk-IBUDYN5E.js.map} +0 -0
  761. /package/dist/{chunk-ZJLJHQWM.js.map → chunk-J37WYVIZ.js.map} +0 -0
  762. /package/dist/{chunk-FV2GLMSI.js.map → chunk-JG5CF5Q3.js.map} +0 -0
  763. /package/dist/{chunk-FRPYXYYQ.js.map → chunk-JSQH233D.js.map} +0 -0
  764. /package/dist/{chunk-ZLWEUYPT.js.map → chunk-JWWLSDVM.js.map} +0 -0
  765. /package/dist/{chunk-KBZAB2H2.js.map → chunk-KTJUDDVQ.js.map} +0 -0
  766. /package/dist/{chunk-JCNZJKLK.js.map → chunk-MY5MF4RI.js.map} +0 -0
  767. /package/dist/{chunk-JEVDRC64.js.map → chunk-P4ZGUPGA.js.map} +0 -0
  768. /package/dist/{chunk-QXRM5NMW.js.map → chunk-PQDYA3ZQ.js.map} +0 -0
  769. /package/dist/{chunk-EARMOT6Q.js.map → chunk-PVJ6IIFA.js.map} +0 -0
  770. /package/dist/{chunk-KZ54E2FU.js.map → chunk-QKVKQD6S.js.map} +0 -0
  771. /package/dist/{chunk-THHYPA5K.js.map → chunk-QNACCFOA.js.map} +0 -0
  772. /package/dist/{chunk-4WFXCUT4.js.map → chunk-R6O3FLKW.js.map} +0 -0
  773. /package/dist/{chunk-KDKJLITX.js.map → chunk-RFQQRF6Q.js.map} +0 -0
  774. /package/dist/{chunk-37ZEGLVY.js.map → chunk-RG27DDKN.js.map} +0 -0
  775. /package/dist/{chunk-ECCXTB5S.js.map → chunk-SB5DR4NL.js.map} +0 -0
  776. /package/dist/{chunk-YWB2QHV2.js.map → chunk-SF42FFDZ.js.map} +0 -0
  777. /package/dist/{chunk-U2OB3S3M.js.map → chunk-SORR4JHU.js.map} +0 -0
  778. /package/dist/{chunk-CDCNBN6G.js.map → chunk-SZEBQMZW.js.map} +0 -0
  779. /package/dist/{chunk-4LK5YFHF.js.map → chunk-THDOHHDN.js.map} +0 -0
  780. /package/dist/{chunk-5LY2ASQX.js.map → chunk-TXDCZOPG.js.map} +0 -0
  781. /package/dist/{chunk-EKIWZUEO.js.map → chunk-U6GSEOBY.js.map} +0 -0
  782. /package/dist/{chunk-ZG7EBTHK.js.map → chunk-UBTNM5RO.js.map} +0 -0
  783. /package/dist/{chunk-MRZUZDRA.js.map → chunk-UHZDDPUU.js.map} +0 -0
  784. /package/dist/{chunk-AAQDXVQT.js.map → chunk-UVES3USV.js.map} +0 -0
  785. /package/dist/{chunk-LTY7WOAT.js.map → chunk-UYA5LCAR.js.map} +0 -0
  786. /package/dist/{chunk-TDBS3UFZ.js.map → chunk-VHEXNBCO.js.map} +0 -0
  787. /package/dist/{chunk-ECTOEM7X.js.map → chunk-VJJJFEOU.js.map} +0 -0
  788. /package/dist/{chunk-4WFG5Y3A.js.map → chunk-VPRP24DY.js.map} +0 -0
  789. /package/dist/{chunk-6V7ITU5F.js.map → chunk-VVWZ4BOI.js.map} +0 -0
  790. /package/dist/{chunk-OKM4ACTA.js.map → chunk-WENNRY5E.js.map} +0 -0
  791. /package/dist/{chunk-FRD6LQF7.js.map → chunk-WTLUZOBK.js.map} +0 -0
  792. /package/dist/{chunk-HULTLO4D.js.map → chunk-ZLEGHQOO.js.map} +0 -0
  793. /package/dist/{chunk-H353EVLK.js.map → chunk-ZX7527EE.js.map} +0 -0
  794. /package/dist/{cohort-X327AG3O.js.map → cohort-NKRTCX5Z.js.map} +0 -0
  795. /package/dist/{cohortSunburst-GNWIVDNA.js.map → cohortSunburst-DFJW6WXU.js.map} +0 -0
  796. /package/dist/{condition-3M4L2HIM.js.map → condition-PYFOEVX5.js.map} +0 -0
  797. /package/dist/{controls-OKNHZJOU.js.map → controls-RVNIN66W.js.map} +0 -0
  798. /package/dist/{controls.config-FUKM5LEP.js.map → controls.config-XVEYYBI4.js.map} +0 -0
  799. /package/dist/{correlation-PC4MXCFM.js.map → correlation-MNL4DGSW.js.map} +0 -0
  800. /package/dist/{customdata.inputui-HCRTX56R.js.map → customdata.inputui-WFIIJATQ.js.map} +0 -0
  801. /package/dist/{dataDownload-HJO7UW7S.js.map → dataDownload-CMSP5FA4.js.map} +0 -0
  802. /package/dist/{databrowser.ui-EY3H6B4S.js.map → databrowser.ui-FYZPXXEJ.js.map} +0 -0
  803. /package/dist/{dictionary-L6CTMFY7.js.map → dictionary-76BXY6WU.js.map} +0 -0
  804. /package/dist/{dnaMethylation-FEB5GGXK.js.map → dnaMethylation-WTIJVNIU.js.map} +0 -0
  805. /package/dist/{dnaMethylation.integration.spec-4DC6TJNZ.js.map → dnaMethylation.integration.spec-YXQEFLC5.js.map} +0 -0
  806. /package/dist/{dnaMethylation.unit.spec-REOHQOBC.js.map → dnaMethylation.unit.spec-22FLJWVB.js.map} +0 -0
  807. /package/dist/{dofetch-YFGOKCKV.js.map → dofetch-XID2XEJT.js.map} +0 -0
  808. /package/dist/{e2pca-QSAVTCPL.js.map → e2pca-DD6DA7X3.js.map} +0 -0
  809. /package/dist/{ep-LAFLKVSW.js.map → ep-S4PI4AUJ.js.map} +0 -0
  810. /package/dist/{expclust.gdc.spec-OM4J6WBL.js.map → expclust.gdc.spec-BDV4RJO6.js.map} +0 -0
  811. /package/dist/{facet-WHTV2VIX.js.map → facet-EOXEW2LN.js.map} +0 -0
  812. /package/dist/{gb-DLXWWBB6.js.map → gb-AKE7RDPB.js.map} +0 -0
  813. /package/dist/{geneExpClustering-KB2MB2VM.js.map → geneExpClustering-73ED7HIN.js.map} +0 -0
  814. /package/dist/{geneExpression-3RSRGYGQ.js.map → geneExpression-AEJILDKJ.js.map} +0 -0
  815. /package/dist/{geneExpression-3D7PDZ2I.js.map → geneExpression-NXDXXKEA.js.map} +0 -0
  816. /package/dist/{geneExpression.unit.spec-EINAWLPR.js.map → geneExpression.unit.spec-VUJWR4TA.js.map} +0 -0
  817. /package/dist/{geneORA-J4KVSZT3.js.map → geneORA-7KFQ4PW2.js.map} +0 -0
  818. /package/dist/{geneRanking-HKLJ7CN6.js.map → geneRanking-RKJU4PM2.js.map} +0 -0
  819. /package/dist/{geneVariant-3BRGRFPT.js.map → geneVariant-2AGC3ECG.js.map} +0 -0
  820. /package/dist/{geneVariant.integration.spec-3IBX4NNE.js.map → geneVariant.integration.spec-UJXGQEZG.js.map} +0 -0
  821. /package/dist/{genefusion.ui-OESQL7TW.js.map → genefusion.ui-KEBOA3TK.js.map} +0 -0
  822. /package/dist/{geneset-3BMV3KP4.js.map → geneset-BU6V3CB5.js.map} +0 -0
  823. /package/dist/{genomeBrowser.spec-I3WKAITC.js.map → genomeBrowser.spec-BGQHJZKH.js.map} +0 -0
  824. /package/dist/{grin2-4BBCH3H5.js.map → grin2-OUZN5LOU.js.map} +0 -0
  825. /package/dist/{grin2-5L2U32LY.js.map → grin2-WRGQ7BDG.js.map} +0 -0
  826. /package/dist/{hierCluster-KM56NTN6.js.map → hierCluster-3ERW47JJ.js.map} +0 -0
  827. /package/dist/{hierCluster-XCJF5IQ6.js.map → hierCluster-JAFKBC6C.js.map} +0 -0
  828. /package/dist/{hierCluster.config-E2EYOXX6.js.map → hierCluster.config-QIJNY5OD.js.map} +0 -0
  829. /package/dist/{hierCluster.integration.spec-IIEJ2YEI.js.map → hierCluster.integration.spec-XA4K3UU6.js.map} +0 -0
  830. /package/dist/{hierCluster.interactivity-AJFEJTGX.js.map → hierCluster.interactivity-RDFPQOOP.js.map} +0 -0
  831. /package/dist/{hierCluster.renderers-XKI344FM.js.map → hierCluster.renderers-SU5IYI33.js.map} +0 -0
  832. /package/dist/{imagePlot-3B3BXI6I.js.map → imagePlot-J4PHG7V2.js.map} +0 -0
  833. /package/dist/{importPlot-JDVH7Q2Z.js.map → importPlot-U67MZZXY.js.map} +0 -0
  834. /package/dist/{isoformExpression-UFHY5LB2.js.map → isoformExpression-K5BCDJLL.js.map} +0 -0
  835. /package/dist/{isoformExpression.unit.spec-U6GDCNQR.js.map → isoformExpression.unit.spec-35FHEO27.js.map} +0 -0
  836. /package/dist/{junction-W2STW5WW.js.map → junction-6GGWFF2J.js.map} +0 -0
  837. /package/dist/{launch.adhoc-KN7HFHJH.js.map → launch.adhoc-ONCSL65L.js.map} +0 -0
  838. /package/dist/{lollipop-EKIGAAK6.js.map → lollipop-BWP4BG7Q.js.map} +0 -0
  839. /package/dist/{maf-MK2MM7J4.js.map → maf-GV6JHWYK.js.map} +0 -0
  840. /package/dist/{maftimeline-7RTMXWFA.js.map → maftimeline-HE7XLJWG.js.map} +0 -0
  841. /package/dist/{matrix-UM2EZODJ.js.map → matrix-IAM6SA7K.js.map} +0 -0
  842. /package/dist/{matrix-YBL4FZYJ.js.map → matrix-QF5MBV5Y.js.map} +0 -0
  843. /package/dist/{matrix.cells-45ZFADK5.js.map → matrix.cells-A5E63KDN.js.map} +0 -0
  844. /package/dist/{matrix.config-QTBIRXKU.js.map → matrix.config-VLRMO7J2.js.map} +0 -0
  845. /package/dist/{matrix.data-WAMOLSKW.js.map → matrix.data-R4FW2PQH.js.map} +0 -0
  846. /package/dist/{matrix.groups-RXFXZABD.js.map → matrix.groups-3UH2KOIY.js.map} +0 -0
  847. /package/dist/{matrix.integration.spec-JZDZRVOK.js.map → matrix.integration.spec-57YYARQU.js.map} +0 -0
  848. /package/dist/{matrix.interactivity-P4VYGTB2.js.map → matrix.interactivity-KNRJSSTQ.js.map} +0 -0
  849. /package/dist/{matrix.layout-WWPRXXHX.js.map → matrix.layout-OMNDDITA.js.map} +0 -0
  850. /package/dist/{matrix.legend-4MCMVVKO.js.map → matrix.legend-SE7SQTNN.js.map} +0 -0
  851. /package/dist/{matrix.renderers-JQTUODDS.js.map → matrix.renderers-6MMW7XMU.js.map} +0 -0
  852. /package/dist/{matrix.serieses-3IDRKSGO.js.map → matrix.serieses-BEZCQDLJ.js.map} +0 -0
  853. /package/dist/{matrix.sort-EAWOB56R.js.map → matrix.sort-KRNS4VPF.js.map} +0 -0
  854. /package/dist/{matrix.sort.unit.spec-FOWLULHA.js.map → matrix.sort.unit.spec-UXTQPKVV.js.map} +0 -0
  855. /package/dist/{matrix.sorterUi.unit.spec-U5CQDTMX.js.map → matrix.sorterUi.unit.spec-LJJ7GCEB.js.map} +0 -0
  856. /package/dist/{matrix.unit.spec-VTLD4EOZ.js.map → matrix.unit.spec-2OSFPN5T.js.map} +0 -0
  857. /package/dist/{mavb-JIIXJHBK.js.map → mavb-CZAZO6AO.js.map} +0 -0
  858. /package/dist/{mds.samplescatterplot-PTWA2V6E.js.map → mds.samplescatterplot-ENSEO2VX.js.map} +0 -0
  859. /package/dist/{mds.survivalplot-XVZ66GP5.js.map → mds.survivalplot-QSKD6FSX.js.map} +0 -0
  860. /package/dist/{multivalue-2H7QX7MG.js.map → multivalue-FZTFADA2.js.map} +0 -0
  861. /package/dist/{numericDictTermCluster-EHCDRT6J.js.map → numericDictTermCluster-IFIEM3E4.js.map} +0 -0
  862. /package/dist/{oncomatrix-RZLZUC32.js.map → oncomatrix-GZKCAMSR.js.map} +0 -0
  863. /package/dist/{oncomatrix.spec-Z5UQGTW2.js.map → oncomatrix.spec-FTLMVGTH.js.map} +0 -0
  864. /package/dist/{plot.2dvaf-IRBZBJ6B.js.map → plot.2dvaf-PWO4XOFU.js.map} +0 -0
  865. /package/dist/{plot.app-I23IAZ3Z.js.map → plot.app-JYBZEBHK.js.map} +0 -0
  866. /package/dist/{plot.barplot-PYLRAZB7.js.map → plot.barplot-PA2PDVOB.js.map} +0 -0
  867. /package/dist/{plot.boxplot-VBWU7DUG.js.map → plot.boxplot-IHIEWQWG.js.map} +0 -0
  868. /package/dist/{plot.brainImaging-HDJMEMTK.js.map → plot.brainImaging-WQ2WWEW3.js.map} +0 -0
  869. /package/dist/{plot.disco-5BVG3WMT.js.map → plot.disco-QIURLAHA.js.map} +0 -0
  870. /package/dist/{plot.ssgq-S3BKXJMW.js.map → plot.ssgq-T27XDC4K.js.map} +0 -0
  871. /package/dist/{plot.vaf2cov-VD7DU2XR.js.map → plot.vaf2cov-Y2DJRQED.js.map} +0 -0
  872. /package/dist/{polar2-PYLEVG7E.js.map → polar2-3MFBRZ4G.js.map} +0 -0
  873. /package/dist/{profileForms-CI2YYD3Y.js.map → profileForms-J3O7XDHY.js.map} +0 -0
  874. /package/dist/{profilePlot-UCC4ZVHQ.js.map → profilePlot-C45ERAOZ.js.map} +0 -0
  875. /package/dist/{proteomeCohortCompare-2VUSLC6I.js.map → proteomeCohortCompare-2IS7GNJZ.js.map} +0 -0
  876. /package/dist/{pseudbulk.unit.spec-VPZWNTIA.js.map → pseudbulk.unit.spec-SY3ATAPK.js.map} +0 -0
  877. /package/dist/{pseudobulk-RUXGZ7OY.js.map → pseudobulk-N6WNHKAC.js.map} +0 -0
  878. /package/dist/{qualitative-3AVR4GRX.js.map → qualitative-SKUTWJLA.js.map} +0 -0
  879. /package/dist/{qualitative-5QNBKDOZ.js.map → qualitative-XWN5V3EE.js.map} +0 -0
  880. /package/dist/{radar2-AOYMS54Y.js.map → radar2-AHZME5CF.js.map} +0 -0
  881. /package/dist/{radarFacility2-PP2MAXIP.js.map → radarFacility2-CVEVC4U5.js.map} +0 -0
  882. /package/dist/{render-ASLVKYEX.js.map → render-S47OJIIP.js.map} +0 -0
  883. /package/dist/{report-UVYKDMQC.js.map → report-IPX3PKSW.js.map} +0 -0
  884. /package/dist/{sampleView-6UHR7FSR.js.map → sampleView-OZQUKPVV.js.map} +0 -0
  885. /package/dist/{samplelst-ABC2CCNN.js.map → samplelst-7XXJTJ4J.js.map} +0 -0
  886. /package/dist/{samplematrix-36UCHZLC.js.map → samplematrix-JN35HJBG.js.map} +0 -0
  887. /package/dist/{sc-XLSAM725.js.map → sc-6ZHDNPYP.js.map} +0 -0
  888. /package/dist/{scatter-ADOBAOW2.js.map → scatter-4MP6TG67.js.map} +0 -0
  889. /package/dist/{scatter-ZNVLI627.js.map → scatter-TRMY47CC.js.map} +0 -0
  890. /package/dist/{selectGenomeWithTklst-DPDBDYTR.js.map → selectGenomeWithTklst-UDNTL544.js.map} +0 -0
  891. /package/dist/{singleCellCellType-STVPYZD4.js.map → singleCellCellType-UXABRPQQ.js.map} +0 -0
  892. /package/dist/{singleCellCellType.unit.spec-ZLY37AXL.js.map → singleCellCellType.unit.spec-N22EQMZW.js.map} +0 -0
  893. /package/dist/{singleCellGeneExpression-PCGLU35S.js.map → singleCellGeneExpression-OBPVP6IU.js.map} +0 -0
  894. /package/dist/{singleCellGeneExpression.unit.spec-PSLKK362.js.map → singleCellGeneExpression.unit.spec-NVCFU5B4.js.map} +0 -0
  895. /package/dist/{singleCellNumericValue-SR3SJEOB.js.map → singleCellNumericValue-Z2X3LLRB.js.map} +0 -0
  896. /package/dist/{singleCellNumericValue.unit.spec-PXVXJ4HJ.js.map → singleCellNumericValue.unit.spec-Q7DCQHEE.js.map} +0 -0
  897. /package/dist/{singleCellPlot-JXB7M6OH.js.map → singleCellPlot-S5N6ZEEA.js.map} +0 -0
  898. /package/dist/{singlecell-EDSX56QO.js.map → singlecell-OK2P4AS2.js.map} +0 -0
  899. /package/dist/{singlecell-PH55NFRX.js.map → singlecell-RI6HA3NI.js.map} +0 -0
  900. /package/dist/{snp-3VEYBTAQ.js.map → snp-XRM2UAEJ.js.map} +0 -0
  901. /package/dist/{snp.unit.spec-V7OB44US.js.map → snp.unit.spec-CDTYGH4K.js.map} +0 -0
  902. /package/dist/{snplocus-HX67RBT5.js.map → snplocus-CAUGDRZE.js.map} +0 -0
  903. /package/dist/{snplst-H5YXCY33.js.map → snplst-DP533FL2.js.map} +0 -0
  904. /package/dist/{spliceevent.a53ss.diagram-DBDEEHSK.js.map → spliceevent.a53ss.diagram-XWEN4UMO.js.map} +0 -0
  905. /package/dist/{spliceevent.exonskip.diagram-EYEL6BY6.js.map → spliceevent.exonskip.diagram-HBXQOUT4.js.map} +0 -0
  906. /package/dist/{spliceevent.noeventdiagram-64OEXK7U.js.map → spliceevent.noeventdiagram-ORQJ62ON.js.map} +0 -0
  907. /package/dist/{ssGSEA-3YWQH6KM.js.map → ssGSEA-PLDZ2556.js.map} +0 -0
  908. /package/dist/{ssGSEA.unit.spec-23V2IXP5.js.map → ssGSEA.unit.spec-ORFJFZJY.js.map} +0 -0
  909. /package/dist/{stattable-GPSBCNYC.js.map → stattable-GVRVRO2Y.js.map} +0 -0
  910. /package/dist/{studyCatalog-W5PATRNY.js.map → studyCatalog-K46WJHC6.js.map} +0 -0
  911. /package/dist/{summarizeCnvGeneexp-YGI23QH5.js.map → summarizeCnvGeneexp-7WSJTWKH.js.map} +0 -0
  912. /package/dist/{summarizeGeneexpSurvival-KQ6OLWYR.js.map → summarizeGeneexpSurvival-H3TW7I4I.js.map} +0 -0
  913. /package/dist/{summarizeMutationCnv-XDHBNEPU.js.map → summarizeMutationCnv-JOYXEMFP.js.map} +0 -0
  914. /package/dist/{summarizeMutationDiagnosis-VKIJRJ2Q.js.map → summarizeMutationDiagnosis-GBIGXFY5.js.map} +0 -0
  915. /package/dist/{summarizeMutationSurvival-57YKJGLE.js.map → summarizeMutationSurvival-3RULG3KW.js.map} +0 -0
  916. /package/dist/{summary-4WQOVIUF.js.map → summary-VKLFTPC2.js.map} +0 -0
  917. /package/dist/{summary.integration.spec-FRNWBU7F.js.map → summary.integration.spec-EK3MPFVD.js.map} +0 -0
  918. /package/dist/{summaryInput-X7DS2YA7.js.map → summaryInput-POI5KQSP.js.map} +0 -0
  919. /package/dist/{sunburst-MSGTXYMM.js.map → sunburst-BIVYHF5R.js.map} +0 -0
  920. /package/dist/{sunburst-3OEAQA3O.js.map → sunburst-SYHQOCGQ.js.map} +0 -0
  921. /package/dist/{survival-5KC5CNZU.js.map → survival-CG2GQ4YY.js.map} +0 -0
  922. /package/dist/{survival-QXDS6N46.js.map → survival-NEO3E2HS.js.map} +0 -0
  923. /package/dist/{survival.integration.spec-PKENHLTZ.js.map → survival.integration.spec-PPK5KO4V.js.map} +0 -0
  924. /package/dist/{svgraph-VJLB7BBN.js.map → svgraph-Q2U2HEMF.js.map} +0 -0
  925. /package/dist/{swimmer-R3DN7N36.js.map → swimmer-GA4C6YH7.js.map} +0 -0
  926. /package/dist/{table-YF5VORU6.js.map → table-DJJIES6L.js.map} +0 -0
  927. /package/dist/{termCollection-KSHVOPS5.js.map → termCollection-CHVUM5C6.js.map} +0 -0
  928. /package/dist/{termCollection-3KGLZFDW.js.map → termCollection-R3LTBPJ4.js.map} +0 -0
  929. /package/dist/{termCollection.unit.spec-HTBDG5PL.js.map → termCollection.unit.spec-B7KAAOFT.js.map} +0 -0
  930. /package/dist/{termCollectionFractionSelection-MK4NKWUX.js.map → termCollectionFractionSelection-A72QM36J.js.map} +0 -0
  931. /package/dist/{termCollectionFractionSelection.unit.spec-AMF32FDN.js.map → termCollectionFractionSelection.unit.spec-JR77QEIG.js.map} +0 -0
  932. /package/dist/{tk-Z54DOECH.js.map → tk-GRGKFATN.js.map} +0 -0
  933. /package/dist/{tp.ui-M4TZVT53.js.map → tp.ui-NATRJ5EN.js.map} +0 -0
  934. /package/dist/{tvs.categorical-HY3BWCZR.js.map → tvs.categorical-U2ZYLPSW.js.map} +0 -0
  935. /package/dist/{tvs.condition-Y36TRIX4.js.map → tvs.condition-6EBZALR4.js.map} +0 -0
  936. /package/dist/{tvs.dt-XKVJZP7Y.js.map → tvs.dt-H626ESMQ.js.map} +0 -0
  937. /package/dist/{tvs.dtcnv.categorical-OMRZR4Y7.js.map → tvs.dtcnv.categorical-6S7INDYC.js.map} +0 -0
  938. /package/dist/{tvs.dtcnv.continuous-AGYOBI5K.js.map → tvs.dtcnv.continuous-MLYNEMHI.js.map} +0 -0
  939. /package/dist/{tvs.dtfusion-2JX5Y2IH.js.map → tvs.dtfusion-2OLY6X7G.js.map} +0 -0
  940. /package/dist/{tvs.dtitd-SDSLBBWC.js.map → tvs.dtitd-Z6MEL5SH.js.map} +0 -0
  941. /package/dist/{tvs.dtsnvindel-LI7K464K.js.map → tvs.dtsnvindel-HPBQSCYV.js.map} +0 -0
  942. /package/dist/{tvs.dtsv-VRCLX7QY.js.map → tvs.dtsv-BRRNX64J.js.map} +0 -0
  943. /package/dist/{tvs.multivalue-4OTY6J2S.js.map → tvs.multivalue-H2G7WKAL.js.map} +0 -0
  944. /package/dist/{tvs.numeric-CDATYOR2.js.map → tvs.numeric-OKYGMQSK.js.map} +0 -0
  945. /package/dist/{tvs.samplelst-76JOJG2M.js.map → tvs.samplelst-46FGACU7.js.map} +0 -0
  946. /package/dist/{tvs.survival-WTFJOKIZ.js.map → tvs.survival-QL4KC3SQ.js.map} +0 -0
  947. /package/dist/{tvs.termCollection-QQXAS7PE.js.map → tvs.termCollection-22DFW3PF.js.map} +0 -0
  948. /package/dist/{vocabulary-6ACAEFTL.js.map → vocabulary-LJEERZJ6.js.map} +0 -0
@@ -1,398 +0,0 @@
1
- import {
2
- Menu
3
- } from "./chunk-CNFTQSNE.js";
4
- import {
5
- Tableau10_default,
6
- arc_default
7
- } from "./chunk-2N345NXD.js";
8
- import {
9
- hierarchy,
10
- partition_default
11
- } from "./chunk-4OLM3KSB.js";
12
- import {
13
- select_default
14
- } from "./chunk-I6Y4O3RR.js";
15
- import {
16
- rgb,
17
- value_default
18
- } from "./chunk-Q5RDQNIT.js";
19
-
20
- // plots/sunburst/SunburstRenderer.ts
21
- var RINGS = 2;
22
- var R0 = 74;
23
- var RING_W = 74;
24
- var RADIUS = R0 + RINGS * RING_W;
25
- var SIZE = RADIUS * 2 + 12;
26
- var DURATION = 750;
27
- var HOVER_DARKEN = 0.5;
28
- var DIM = 0.65;
29
- var WARN = "#b45309";
30
- var DIVIDER = "#ffffff";
31
- var SELECT_STROKE = "#111827";
32
- var CENTRE_FILL = "#f8fafc";
33
- var CENTRE_STROKE = "#cbd5e1";
34
- var TEXT_DARK = "#111827";
35
- var TEXT_MUTED = "#4b5563";
36
- var LINK = "#2563eb";
37
- var CARD_BORDER = "#d1d5db";
38
- var PILL_BG = "#e5e7eb";
39
- var RULE = "#e5e7eb";
40
- var RING_SHADE = [-0.35, 0];
41
- var LABEL_FONT = 12;
42
- var LABEL_LINE_H = LABEL_FONT * 1.15;
43
- var LABEL_CHAR_W = LABEL_FONT * 0.55;
44
- var LABEL_MAX_LINES = 2;
45
- var NO_HUE = "#9ca3af";
46
- var radius = (y) => y < 1 ? y * R0 : R0 + (y - 1) * RING_W;
47
- var midRadius = (g) => (radius(g.y0) + radius(g.y1)) / 2;
48
- var icon = (paths) => `<svg width="13" height="13" viewBox="0 0 24 24" style="vertical-align:-2px;margin-right:6px" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round">${paths}</svg>`;
49
- var SunburstRenderer = class {
50
- constructor(opts) {
51
- /** stat box elements and the value they currently show, for the count animation */
52
- this.statValues = /* @__PURE__ */ new Map();
53
- this.baseColor = /* @__PURE__ */ new Map();
54
- /************ rendering ************/
55
- this.arc = arc_default().startAngle((d) => d.x0).endAngle((d) => d.x1).innerRadius((d) => radius(d.y0)).outerRadius((d) => Math.max(radius(d.y0), radius(d.y1)));
56
- this.opts = opts;
57
- this.hooks = opts.hooks;
58
- const layout = opts.holder.append("div").style("display", "flex").style("gap", `${opts.gap ?? 24}px`).style("align-items", "flex-start");
59
- const withPathCard = opts.pathCard !== false;
60
- const pathCard = withPathCard ? card(layout, "Selection") : void 0;
61
- pathCard?.box.style("flex", "0 0 230px");
62
- const left = withPathCard ? void 0 : layout.append("div").style("flex", "0 0 260px").style("min-width", "0").style("display", "flex").style("flex-direction", "column").style("gap", "12px");
63
- const panel = layout.append("div").append("div").style("width", `${SIZE}px`);
64
- const toolbar = panel.append("div").style("display", "flex").style("justify-content", "center").style("gap", "28px").style("min-height", "20px");
65
- const crumbs = withPathCard ? void 0 : panel.append("div").attr("data-testid", "sjpp-sunburst-crumbs").style("text-align", "center").style("font-size", "12px").style("margin-top", "6px").style("min-height", "16px");
66
- const svg = panel.append("svg").attr("width", SIZE).attr("height", SIZE).style("display", "block");
67
- const right = layout.append("div").style("flex", "0 0 300px").style("min-width", "0").style("display", "flex").style("flex-direction", "column").style("gap", "12px");
68
- const stats = right.append("div").style("display", "grid").style("grid-template-columns", "1fr 1fr").style("gap", "8px");
69
- this.dom = {
70
- pathCard,
71
- left,
72
- crumbs,
73
- toolbar,
74
- reset: void 0,
75
- svg,
76
- g: svg.append("g").attr("transform", `translate(${SIZE / 2},${SIZE / 2})`),
77
- centre: void 0,
78
- centreText: void 0,
79
- paths: void 0,
80
- labels: void 0,
81
- stats,
82
- right,
83
- tip: new Menu({ padding: "" })
84
- };
85
- this.dom.reset = this.addControl().html(`${icon('<path d="M3 12a9 9 0 1 0 3-6.7"/><polyline points="3 3 3 9 9 9"/>')}RESET`).on("click", () => {
86
- if (this.focus?.depth) this.zoomTo(this.root);
87
- });
88
- for (const label of opts.statLabels || []) {
89
- const box = card(stats, label);
90
- box.box.style("padding", "6px 10px");
91
- box.title.style("margin-bottom", "0").style("white-space", "nowrap").style("overflow", "hidden").style("text-overflow", "ellipsis").attr("title", label);
92
- const num = box.body.append("div").style("font-size", "20px").style("line-height", "1.2").style("font-weight", "500").style("color", TEXT_DARK).style("font-variant-numeric", "tabular-nums").text("0");
93
- this.statValues.set(label, { el: num, value: 0, title: box.title });
94
- }
95
- }
96
- /** a control in the toolbar above the chart */
97
- addControl() {
98
- return this.dom.toolbar.append("div").style("letter-spacing", "0.15em").style("font-size", "11px").style("font-weight", "bold").style("color", TEXT_MUTED).style("cursor", "pointer").style("user-select", "none").style("white-space", "nowrap");
99
- }
100
- unitText(n) {
101
- return `${n.toLocaleString()} ${n === 1 ? this.opts.unit.one : this.opts.unit.many}`;
102
- }
103
- /** (re)draw the chart for a new tree, centred on the root */
104
- setTree(tree) {
105
- this.root = hierarchy(tree).sum((d) => d.value || 0).sort(() => 0);
106
- partition_default().size([2 * Math.PI, this.root.height + 1])(this.root);
107
- this.focus = this.root;
108
- this.baseColor.clear();
109
- let pi = 0;
110
- for (const c of this.root.children || []) {
111
- this.baseColor.set(
112
- c.data.name,
113
- this.opts.colors?.[c.data.name] || c.data.color || Tableau10_default[pi++ % Tableau10_default.length]
114
- );
115
- }
116
- this.buildChart();
117
- this.hooks.onFocus(this.focus);
118
- }
119
- /************ colours ************/
120
- /** the hue of a wedge: its own colour or its nearest ancestor's, down to the first ring's */
121
- hue(d) {
122
- let n = d;
123
- while (n.depth > 1) {
124
- if (n.data.color) return n.data.color;
125
- n = n.parent;
126
- }
127
- return n.depth === 1 ? this.baseColor.get(n.data.name) || NO_HUE : NO_HUE;
128
- }
129
- /** the hue, shaded by the ring the wedge occupies around the current centre (so a wedge keeps its
130
- * hue at every zoom level), faded when dimmed */
131
- color(d) {
132
- if (d.depth === 0) return CENTRE_FILL;
133
- const ring = Math.max(0, Math.min(RING_SHADE.length - 1, d.depth - (this.focus?.depth ?? 0) - 1));
134
- const c = rgb(this.hue(d)).brighter(RING_SHADE[ring]).formatHex();
135
- return d.dim ? rgb(value_default(c, "#ffffff")(DIM)).formatHex() : c;
136
- }
137
- hoverColor(d) {
138
- return rgb(this.color(d)).darker(HOVER_DARKEN).formatHex();
139
- }
140
- /** build every wedge and label once; zoomTo() then only animates their attributes */
141
- buildChart() {
142
- const g = this.dom.g;
143
- g.selectAll("*").remove();
144
- const root = this.root;
145
- root.each((d) => d.current = { x0: d.x0, x1: d.x1, y0: d.y0, y1: d.y1 });
146
- const nodes = root.descendants().slice(1);
147
- this.dom.centre = g.append("g");
148
- this.dom.centre.append("circle").attr("r", R0 - 3).attr("fill", CENTRE_FILL).attr("stroke", CENTRE_STROKE).attr("stroke-width", 1.5).on("click", () => {
149
- if (this.focus.depth) this.zoomTo(this.focus.parent);
150
- });
151
- this.dom.centreText = this.dom.centre.append("g").attr("pointer-events", "none");
152
- this.dom.paths = g.append("g").selectAll("path").data(nodes).join("path").attr("class", "sjpp-sunburst-wedge").attr("fill", (d) => this.color(d)).attr("fill-opacity", (d) => arcVisible(d.current, RINGS) ? 1 : 0).attr("stroke-opacity", (d) => arcVisible(d.current, RINGS) ? 1 : 0).attr("pointer-events", (d) => arcVisible(d.current, RINGS) ? "auto" : "none").attr("d", (d) => this.arc(d.current)).style("cursor", "pointer").on("mouseenter", (event, d) => {
153
- select_default(event.currentTarget).attr("fill", this.hoverColor(d));
154
- this.showTip(event, d);
155
- }).on("mouseleave", (event, d) => {
156
- select_default(event.currentTarget).attr("fill", this.color(d));
157
- this.dom.tip.hide();
158
- }).on("click", (event, d) => this.hooks.onClick(d, event));
159
- this.dom.labels = g.append("g").attr("pointer-events", "none").attr("text-anchor", "middle").style("user-select", "none").selectAll("text").data(nodes).join("text").attr("font-size", `${LABEL_FONT}px`).attr("font-weight", "bold").attr("fill", "#fff").attr("dominant-baseline", "middle").attr("fill-opacity", (d) => this.labelVisible(d.current) ? 1 : 0).attr("transform", (d) => this.labelTransform(d.current)).each((d, i, els) => this.setLabelText(select_default(els[i]), d, d.current));
160
- this.refresh();
161
- this.renderCentre();
162
- }
163
- /** a label shows only where its wedge is visible and at least one line fits along the arc */
164
- labelVisible(g) {
165
- return arcVisible(g, RINGS) && (g.x1 - g.x0) * midRadius(g) >= LABEL_LINE_H + 2;
166
- }
167
- /** along the wedge's mid radius, reading outward; flipped in the left half so it is upright */
168
- labelTransform(g) {
169
- const a = (g.x0 + g.x1) / 2 * (180 / Math.PI);
170
- return `rotate(${a - 90}) translate(${midRadius(g)},0) rotate(${a < 180 ? 0 : 180})`;
171
- }
172
- /** wrap the node name into as many lines as the wedge's arc length allows (max 2), each
173
- * no longer than the ring is thick */
174
- setLabelText(text, d, g) {
175
- const arcLen = (g.x1 - g.x0) * midRadius(g);
176
- const nLines = Math.max(1, Math.min(LABEL_MAX_LINES, Math.floor(arcLen / LABEL_LINE_H)));
177
- const maxChars = Math.floor((RING_W - 8) / LABEL_CHAR_W);
178
- const lines = splitLabel(d.data.name, maxChars, nLines);
179
- text.selectAll("tspan").remove();
180
- lines.forEach((l, i) => {
181
- text.append("tspan").attr("x", 0).attr("dy", i === 0 ? `${-(lines.length - 1) * LABEL_LINE_H / 2}px` : `${LABEL_LINE_H}px`).text(l);
182
- });
183
- }
184
- /** name, count and Back on the centre disc */
185
- renderCentre() {
186
- const focus = this.focus;
187
- const t = this.dom.centreText;
188
- t.selectAll("*").remove();
189
- this.dom.centre.select("circle").style("cursor", focus.depth ? "pointer" : "default");
190
- const name = focus.depth ? focus.data.name : this.opts.rootName;
191
- const nameLines = splitLabel(name, Math.floor(2 * (R0 - 16) / (15 * 0.6)), 2);
192
- const rows = [
193
- ...nameLines.map((l) => ({ text: l, size: 15, weight: "bold", color: TEXT_DARK, h: 18 })),
194
- { text: this.unitText(focus.value || 0), size: 12, color: TEXT_MUTED, h: 16 }
195
- ];
196
- if (focus.depth) rows.push({ text: "\u2039 BACK", size: 12, weight: "bold", color: LINK, h: 22 });
197
- const total = rows.reduce((s, r) => s + r.h, 0);
198
- let y = -total / 2;
199
- for (const r of rows) {
200
- t.append("text").attr("text-anchor", "middle").attr("dominant-baseline", "middle").attr("y", y + r.h / 2).attr("font-size", `${r.size}px`).attr("font-weight", r.weight || "normal").attr("fill", r.color).attr("letter-spacing", r.text.endsWith("BACK") ? "0.12em" : null).text(r.text);
201
- y += r.h;
202
- }
203
- }
204
- /** re-apply selection strokes, dimming and the path card after the caller's selection changed;
205
- * no geometry changes */
206
- refresh() {
207
- this.root.each((d) => d.dim = !!this.hooks.isDimmed?.(d));
208
- this.dom.paths.attr("fill", (d) => this.color(d)).attr("stroke", (d) => this.hooks.isSelected(d) ? SELECT_STROKE : DIVIDER).attr("stroke-width", (d) => this.hooks.isSelected(d) ? 3 : 1).attr("stroke-linejoin", "round").style("cursor", (d) => this.hooks.cursor?.(d) || "pointer");
209
- this.dom.labels.attr("fill", (d) => d.dim ? TEXT_MUTED : "#fff");
210
- this.renderReset();
211
- this.renderPath();
212
- }
213
- /** reset is only active when zoomed in */
214
- renderReset() {
215
- const zoomed = !!this.focus?.depth;
216
- this.dom.reset.style("opacity", zoomed ? 1 : 0.35).style("cursor", zoomed ? "pointer" : "default");
217
- }
218
- /** the path of clicked wedges, as the path card or the breadcrumb */
219
- renderPath() {
220
- if (this.dom.pathCard) this.renderPathCard(this.dom.pathCard);
221
- else this.renderCrumbs();
222
- }
223
- /** root › … › centre, each earlier step clickable to zoom back to it */
224
- renderCrumbs() {
225
- const box = this.dom.crumbs;
226
- box.selectAll("*").remove();
227
- const focus = this.focus;
228
- const steps = focus.ancestors().reverse();
229
- steps.forEach((d, i) => {
230
- if (i) box.append("span").style("color", "#9ca3af").style("margin", "0 6px").text("\u203A");
231
- const isFocus = d === focus;
232
- box.append("span").attr("class", "sjpp-sunburst-crumb").style("color", isFocus ? TEXT_DARK : LINK).style("font-weight", isFocus ? "bold" : "normal").style("cursor", isFocus ? "default" : "pointer").attr("title", isFocus ? null : `Go to ${d.depth ? d.data.name : this.opts.rootName}`).text(d.depth ? d.data.name : this.opts.rootName).on("click", () => {
233
- if (!isFocus) this.zoomTo(d);
234
- });
235
- });
236
- }
237
- /** the path card: at the root it lists the first ring to click into; once zoomed it shows the path
238
- * of clicked wedges, each with a colour-coded badge, and clicking a line zooms back to it */
239
- renderPathCard(pathCard) {
240
- const box = pathCard.body;
241
- box.selectAll("*").remove();
242
- const focus = this.focus;
243
- const atRoot = !focus.depth;
244
- pathCard.title.text(atRoot ? this.opts.rootPathTitle || "Selection" : "Selection");
245
- const nodes = atRoot ? this.root.children || [] : focus.ancestors().reverse().slice(1);
246
- const STEP = 7;
247
- nodes.forEach((d, i) => {
248
- const isFocus = d === focus;
249
- const indent = atRoot ? 0 : i * STEP;
250
- const row = box.append("div").style("position", "relative").style("margin-left", `${indent}px`);
251
- if (indent) {
252
- row.append("div").style("position", "absolute").style("left", `${-STEP + 2}px`).style("top", "-6px").style("width", `${STEP - 4}px`).style("height", "22px").style("border-left", "1px solid #cbd5e1").style("border-bottom", "1px solid #cbd5e1").style("border-bottom-left-radius", "4px");
253
- }
254
- const line = row.append("div").attr("class", "sjpp-sunburst-pathrow").style("display", "flex").style("align-items", "center").style("gap", "8px").style("padding", "4px 6px").style("margin", "2px 0").style("border-radius", "6px").style("background", isFocus ? "#eef2ff" : "transparent").style("cursor", isFocus ? "default" : "pointer").attr("title", isFocus ? d.data.name : `Go to ${d.data.name}`).on("click", () => {
255
- if (!isFocus) this.zoomTo(d);
256
- }).on("mouseenter", (event) => {
257
- if (!isFocus) select_default(event.currentTarget).style("background", "#f3f4f6");
258
- }).on("mouseleave", (event) => {
259
- if (!isFocus) select_default(event.currentTarget).style("background", "transparent");
260
- });
261
- badge(line, d.data.name, this.color(d));
262
- const text = line.append("div").style("flex", "1 1 auto").style("min-width", "0").style("line-height", "1.2");
263
- text.append("div").style("font-size", "0.9em").style("font-weight", isFocus ? "bold" : "normal").style("color", "#111827").style("overflow", "hidden").style("text-overflow", "ellipsis").style("white-space", "nowrap").text(d.data.name);
264
- text.append("div").style("font-size", "0.7em").style("color", "#6b7280").text(`${d.data.level} \xB7 ${this.unitText(d.value || 0)}`);
265
- });
266
- }
267
- /** shown title of a stat box, which keeps `label` as its key */
268
- setStatTitle(label, text) {
269
- this.statValues.get(label)?.title.text(text).attr("title", text);
270
- }
271
- /** stat box values, by label; null shows a dash with `nullTitle` as its tooltip. Numbers roll from
272
- * the previous value */
273
- setStats(values, nullTitle = (_label) => "") {
274
- for (const [label, v] of values) {
275
- const box = this.statValues.get(label);
276
- if (!box) continue;
277
- if (v === null) {
278
- box.el.interrupt().text("\u2014").attr("title", nullTitle(label) || null);
279
- box.value = 0;
280
- continue;
281
- }
282
- box.el.attr("title", null);
283
- const from = box.value;
284
- box.value = v;
285
- const i = value_default(from, v);
286
- box.el.transition().duration(DURATION).tween("text", () => (t) => box.el.text(Math.round(i(t)).toLocaleString()));
287
- }
288
- }
289
- /************ interaction ************/
290
- /** animate every wedge from its current geometry to where it sits with `p` at the centre */
291
- zoomTo(p) {
292
- this.focus = p;
293
- this.dom.tip.hide();
294
- const root = this.root;
295
- root.each((d) => d.target = zoomTarget(d, p));
296
- const t = this.dom.g.transition().duration(DURATION);
297
- this.dom.paths.attr("pointer-events", "none");
298
- t.on(
299
- "end",
300
- () => this.dom.paths.attr("pointer-events", (d) => arcVisible(d.target, RINGS) ? "auto" : "none")
301
- );
302
- this.dom.paths.transition(t).tween("data", (d) => {
303
- const i = value_default(d.current, d.target);
304
- return (k) => d.current = i(k);
305
- }).filter(function(d) {
306
- return +this.getAttribute("fill-opacity") || arcVisible(d.target, RINGS);
307
- }).attr("fill-opacity", (d) => arcVisible(d.target, RINGS) ? 1 : 0).attr("stroke-opacity", (d) => arcVisible(d.target, RINGS) ? 1 : 0).attr("fill", (d) => this.color(d)).attrTween("d", (d) => () => this.arc(d.current));
308
- this.dom.labels.filter((d, i, els) => +els[i].getAttribute("fill-opacity") || this.labelVisible(d.target)).each((d, i, els) => this.setLabelText(select_default(els[i]), d, d.target)).transition(t).attr("fill-opacity", (d) => this.labelVisible(d.target) ? 1 : 0).attrTween("transform", (d) => () => this.labelTransform(d.current));
309
- this.renderCentre();
310
- this.dom.centreText.attr("opacity", 0).transition(t).attr("opacity", 1);
311
- this.renderReset();
312
- this.renderPath();
313
- this.hooks.onFocus(p);
314
- }
315
- showTip(event, d) {
316
- this.dom.tip.clear().show(event.clientX, event.clientY);
317
- const box = this.dom.tip.d.append("div").style("padding", "10px 14px").style("min-width", "170px").style("font-size", "13px").style("line-height", "1.45");
318
- box.append("div").style("font-weight", "bold").style("font-size", "14px").text(d.data.name);
319
- this.hooks.tooltip(d, box);
320
- }
321
- destroy() {
322
- this.dom.tip.destroy?.();
323
- }
324
- };
325
- function card(holder, title) {
326
- const box = holder.append("div").style("border", `1px solid ${CARD_BORDER}`).style("border-radius", "10px").style("padding", "10px 12px").style("box-sizing", "border-box");
327
- const head = box.append("div").style("display", "flex").style("align-items", "center").style("justify-content", "space-between").style("gap", "8px");
328
- const titleDiv = head.append("div").style("font-size", "10px").style("font-weight", "bold").style("letter-spacing", "0.12em").style("text-transform", "uppercase").style("color", TEXT_MUTED).style("margin-bottom", "8px").text(title);
329
- const headRight = head.append("div").style("display", "flex").style("align-items", "center").style("gap", "8px");
330
- return { box, title: titleDiv, headRight, body: box.append("div") };
331
- }
332
- function badge(holder, name, color, size = 30) {
333
- return holder.append("span").style("flex", "0 0 auto").style("min-width", `${size}px`).style("height", `${size}px`).style("line-height", `${size}px`).style("padding", "0 4px").style("box-sizing", "border-box").style("border-radius", "6px").style("background", color).style("color", "#fff").style("font-weight", "bold").style("font-size", size >= 30 ? "0.8em" : "0.7em").style("text-align", "center").text(badgeCode(name));
334
- }
335
- function pill(holder, opts = {}) {
336
- const el = holder.append(opts.button ? "button" : "span").style("border-radius", "999px").style("font-weight", "bold").style("font-variant-numeric", "tabular-nums");
337
- if (opts.button)
338
- el.style("border", "none").style("background", SELECT_STROKE).style("color", "#fff").style("font-size", "13px").style("padding", "8px 16px").style("width", "100%").style("cursor", "pointer");
339
- else el.style("background", PILL_BG).style("color", TEXT_DARK).style("font-size", "11px").style("padding", "1px 8px");
340
- return el;
341
- }
342
- function badgeCode(name) {
343
- if (name.length <= 5 && name === name.toUpperCase()) return name;
344
- const words = name.split(/[\s()]+/).filter(Boolean);
345
- if (/^[<>≤≥]?[\d.]+$/.test(words[0] || "")) return words[0].slice(0, 5);
346
- if (words.length > 1)
347
- return words.map((w) => w[0]).join("").toUpperCase().slice(0, 3);
348
- return name.slice(0, 2).toUpperCase();
349
- }
350
- function zoomTarget(d, focus) {
351
- const span = focus.x1 - focus.x0 || 1;
352
- const ang = (x) => Math.max(0, Math.min(1, (x - focus.x0) / span)) * 2 * Math.PI;
353
- return {
354
- x0: ang(d.x0),
355
- x1: ang(d.x1),
356
- y0: Math.max(0, d.y0 - focus.depth),
357
- y1: Math.max(0, d.y1 - focus.depth)
358
- };
359
- }
360
- function arcVisible(g, rings) {
361
- return g.y0 >= 1 && g.y1 <= rings + 1 && g.x1 > g.x0;
362
- }
363
- function splitLabel(text, maxChars, maxLines) {
364
- const words = text.split(/\s+/).filter(Boolean);
365
- const lines = [];
366
- let cur = "";
367
- for (const w of words) {
368
- if (!cur) cur = w;
369
- else if ((cur + " " + w).length <= maxChars) cur += " " + w;
370
- else {
371
- lines.push(cur);
372
- cur = w;
373
- }
374
- }
375
- if (cur) lines.push(cur);
376
- if (lines.length > maxLines) {
377
- const rest = lines.slice(maxLines - 1).join(" ");
378
- lines.length = maxLines - 1;
379
- lines.push(rest);
380
- }
381
- return lines.map((l) => l.length > maxChars ? l.slice(0, Math.max(1, maxChars - 1)) + "\u2026" : l);
382
- }
383
-
384
- export {
385
- SIZE,
386
- WARN,
387
- SELECT_STROKE,
388
- TEXT_DARK,
389
- TEXT_MUTED,
390
- LINK,
391
- RULE,
392
- icon,
393
- SunburstRenderer,
394
- card,
395
- badge,
396
- pill
397
- };
398
- //# sourceMappingURL=chunk-7UK7CU4F.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../plots/sunburst/SunburstRenderer.ts"],
4
- "sourcesContent": ["import { Menu } from '#dom'\nimport { hierarchy, partition } from 'd3-hierarchy'\nimport { arc as d3arc } from 'd3-shape'\nimport { rgb as d3rgb } from 'd3-color'\nimport { interpolate } from 'd3-interpolate'\nimport { select } from 'd3-selection'\nimport 'd3-transition'\nimport { schemeTableau10 } from 'd3-scale-chromatic'\n\n/*\nZoomable sunburst renderer, shared by the term-based sunburst chart and the panNDA cohort sunburst.\n\nDraws a tree of SunNode: each wedge is sized by the summed `value` of its subtree. Two rings are shown\naround the centre; zoomTo() makes a wedge the centre so the next two rings appear, and the centre\noffers Back. The renderer owns the chart, the path card on the left (or, with pathCard: false, a\nbreadcrumb above the chart and an empty left column for the caller), the controls above the chart and\nthe stat boxes on the right; what a click does, what is selected or dimmed, the tooltip body and the\nstat values come from the caller's hooks, so the caller decides what the wedges mean.\n\nZooming is animated the way d3's zoomable sunburst does it: every node keeps a `current` geometry\n(angles + ring units, see Geom); zoomTo() assigns each node a `target` relative to the new centre, and\none transition interpolates current \u2192 target while re-drawing arcs and label positions each frame. The\nclicked wedge's target is the full centre disc (y 0..1), so it visibly sweeps round into a circle and\nfades as its children unfold into the rings; Back runs the same interpolation the other way. The\nwedges are created once per setTree() and only their attributes change afterwards.\n*/\n\nconst RINGS = 2\nconst R0 = 74 // centre radius\nconst RING_W = 74\nconst RADIUS = R0 + RINGS * RING_W\nexport const SIZE = RADIUS * 2 + 12\nconst DURATION = 750 // ms, zoom transition\nconst HOVER_DARKEN = 0.5 // d3-color darker() amount on hover\n/** how far a dimmed wedge fades towards white */\nconst DIM = 0.65\nexport const WARN = '#b45309'\n/** wedges touch, divided by thin white lines, with bold white labels; the chart sits on the\n * page background like every other plot */\nconst DIVIDER = '#ffffff'\nexport const SELECT_STROKE = '#111827'\nconst CENTRE_FILL = '#f8fafc'\nconst CENTRE_STROKE = '#cbd5e1'\nexport const TEXT_DARK = '#111827'\nexport const TEXT_MUTED = '#4b5563'\nexport const LINK = '#2563eb'\nconst CARD_BORDER = '#d1d5db'\nconst PILL_BG = '#e5e7eb'\nexport const RULE = '#e5e7eb'\n/** shade of a ring relative to the centre: the inner ring a touch darker than its hue */\nconst RING_SHADE = [-0.35, 0]\nconst LABEL_FONT = 12 // px, bold\nconst LABEL_LINE_H = LABEL_FONT * 1.15\nconst LABEL_CHAR_W = LABEL_FONT * 0.55 // rough advance of a bold glyph\nconst LABEL_MAX_LINES = 2\nconst NO_HUE = '#9ca3af'\n\n/** radius of a ring-unit coordinate: the centre disc spans 0..1, every ring after is RING_W */\nconst radius = (y: number) => (y < 1 ? y * R0 : R0 + (y - 1) * RING_W)\nconst midRadius = (g: Geom) => (radius(g.y0) + radius(g.y1)) / 2\n\n/** small inline stroke icon for the controls above the chart; `paths` is the svg content */\nexport const icon = (paths: string) =>\n\t`<svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" style=\"vertical-align:-2px;margin-right:6px\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\">${paths}</svg>`\n\n/** one wedge. `value` is the node's own weight (e.g. 1 for a sample-set leaf, or the samples that end\n * at this node); d3 adds the subtree's weights to it, so a node's size is value + its children's */\nexport type SunNode = {\n\tname: string\n\t/** ring name; undefined for the root and for leaves that are not on a ring */\n\tlevel?: string\n\tvalue?: number\n\tchildren?: SunNode[]\n\t/** the wedge's own hue (e.g. a term category colour); otherwise it takes its nearest ancestor's */\n\tcolor?: string\n\t[payload: string]: any\n}\n\nexport type HNode = any // d3 HierarchyRectangularNode<SunNode>\n/** a card: rounded box with a spaced-capitals title and an optional right-hand slot in its head */\nexport type Card = { box: any; title: any; headRight: any; body: any }\n\nexport type SunburstHooks = {\n\t/** a wedge was clicked; the caller zooms (renderer.zoomTo) and/or selects */\n\tonClick: (d: HNode, event: any) => void\n\tisSelected: (d: HNode) => boolean\n\tisDimmed?: (d: HNode) => boolean\n\t/** css cursor of a visible wedge, default pointer */\n\tcursor?: (d: HNode) => string\n\t/** fills the tooltip below the wedge name */\n\ttooltip: (d: HNode, box: any) => void\n\t/** the centre changed (after setTree and every zoomTo): update stats, toolbar and side panels */\n\tonFocus: (focus: HNode) => void\n}\n\nexport type SunburstRendererOpts = {\n\tholder: any\n\t/** the counted unit, e.g. sample set(s) or sample(s) */\n\tunit: { one: string; many: string }\n\t/** centre text at the root */\n\trootName: string\n\t/** title of the path card at the root, e.g. 'Species selection' */\n\trootPathTitle?: string\n\t/** base colour per first-ring value, before the node's own colour and the default palette */\n\tcolors?: { [value: string]: string }\n\t/** stat box labels, values come from setStats() */\n\tstatLabels?: string[]\n\t/** false: show the path as a breadcrumb above the chart, and leave the left column (dom.left)\n\t * to the caller; default true */\n\tpathCard?: boolean\n\t/** px between the chart and the columns beside it, default 24; the chart has 6px of its own */\n\tgap?: number\n\thooks: SunburstHooks\n}\n\nexport class SunburstRenderer {\n\topts: SunburstRendererOpts\n\thooks: SunburstHooks\n\tdom: {\n\t\t/** path box: the first ring at the start, then the path of clicked wedges */\n\t\tpathCard?: Card\n\t\t/** left column for the caller's cards, when there is no path card */\n\t\tleft?: any\n\t\t/** path line below the toolbar, when there is no path card */\n\t\tcrumbs?: any\n\t\ttoolbar: any\n\t\treset: any\n\t\tsvg: any\n\t\tg: any\n\t\t/** centre disc (drawn beneath the wedges) and the text on it */\n\t\tcentre: any\n\t\tcentreText: any\n\t\t/** one <path> per node, whole tree; hidden ones have fill-opacity 0 */\n\t\tpaths: any\n\t\t/** one <text> per node, matching paths */\n\t\tlabels: any\n\t\tstats: any\n\t\t/** column right of the chart, below the stat boxes, for the caller's cards */\n\t\tright: any\n\t\ttip: Menu\n\t}\n\troot?: HNode\n\tfocus?: HNode\n\t/** stat box elements and the value they currently show, for the count animation */\n\tstatValues: Map<string, { el: any; value: number; title: any }> = new Map()\n\tbaseColor: Map<string, string> = new Map()\n\n\tconstructor(opts: SunburstRendererOpts) {\n\t\tthis.opts = opts\n\t\tthis.hooks = opts.hooks\n\t\tconst layout = opts.holder\n\t\t\t.append('div')\n\t\t\t.style('display', 'flex')\n\t\t\t.style('gap', `${opts.gap ?? 24}px`)\n\t\t\t.style('align-items', 'flex-start')\n\t\t// path box, or the caller's column, to the left of the chart\n\t\tconst withPathCard = opts.pathCard !== false\n\t\tconst pathCard = withPathCard ? card(layout, 'Selection') : undefined\n\t\tpathCard?.box.style('flex', '0 0 230px')\n\t\tconst left = withPathCard\n\t\t\t? undefined\n\t\t\t: layout\n\t\t\t\t\t.append('div')\n\t\t\t\t\t.style('flex', '0 0 260px')\n\t\t\t\t\t.style('min-width', '0')\n\t\t\t\t\t.style('display', 'flex')\n\t\t\t\t\t.style('flex-direction', 'column')\n\t\t\t\t\t.style('gap', '12px')\n\t\tconst panel = layout.append('div').append('div').style('width', `${SIZE}px`)\n\t\t// controls above the chart, in spaced capitals: reset, then any of the caller's (addControl)\n\t\tconst toolbar = panel\n\t\t\t.append('div')\n\t\t\t.style('display', 'flex')\n\t\t\t.style('justify-content', 'center')\n\t\t\t.style('gap', '28px')\n\t\t\t.style('min-height', '20px')\n\t\tconst crumbs = withPathCard\n\t\t\t? undefined\n\t\t\t: panel\n\t\t\t\t\t.append('div')\n\t\t\t\t\t.attr('data-testid', 'sjpp-sunburst-crumbs')\n\t\t\t\t\t.style('text-align', 'center')\n\t\t\t\t\t.style('font-size', '12px')\n\t\t\t\t\t.style('margin-top', '6px')\n\t\t\t\t\t.style('min-height', '16px')\n\t\tconst svg = panel.append('svg').attr('width', SIZE).attr('height', SIZE).style('display', 'block')\n\t\tconst right = layout\n\t\t\t.append('div')\n\t\t\t.style('flex', '0 0 300px')\n\t\t\t.style('min-width', '0')\n\t\t\t.style('display', 'flex')\n\t\t\t.style('flex-direction', 'column')\n\t\t\t.style('gap', '12px')\n\t\t// stat boxes; their numbers follow the centre of the chart and count up/down\n\t\tconst stats = right\n\t\t\t.append('div')\n\t\t\t.style('display', 'grid')\n\t\t\t.style('grid-template-columns', '1fr 1fr')\n\t\t\t.style('gap', '8px')\n\t\tthis.dom = {\n\t\t\tpathCard,\n\t\t\tleft,\n\t\t\tcrumbs,\n\t\t\ttoolbar,\n\t\t\treset: undefined,\n\t\t\tsvg,\n\t\t\tg: svg.append('g').attr('transform', `translate(${SIZE / 2},${SIZE / 2})`),\n\t\t\tcentre: undefined,\n\t\t\tcentreText: undefined,\n\t\t\tpaths: undefined,\n\t\t\tlabels: undefined,\n\t\t\tstats,\n\t\t\tright,\n\t\t\ttip: new Menu({ padding: '' })\n\t\t}\n\t\tthis.dom.reset = this.addControl()\n\t\t\t.html(`${icon('<path d=\"M3 12a9 9 0 1 0 3-6.7\"/><polyline points=\"3 3 3 9 9 9\"/>')}RESET`)\n\t\t\t.on('click', () => {\n\t\t\t\tif (this.focus?.depth) this.zoomTo(this.root)\n\t\t\t})\n\t\tfor (const label of opts.statLabels || []) {\n\t\t\tconst box = card(stats, label)\n\t\t\tbox.box.style('padding', '6px 10px')\n\t\t\t// the label on one line, so the box stays short\n\t\t\tbox.title\n\t\t\t\t.style('margin-bottom', '0')\n\t\t\t\t.style('white-space', 'nowrap')\n\t\t\t\t.style('overflow', 'hidden')\n\t\t\t\t.style('text-overflow', 'ellipsis')\n\t\t\t\t.attr('title', label)\n\t\t\tconst num = box.body\n\t\t\t\t.append('div')\n\t\t\t\t.style('font-size', '20px')\n\t\t\t\t.style('line-height', '1.2')\n\t\t\t\t.style('font-weight', '500')\n\t\t\t\t.style('color', TEXT_DARK)\n\t\t\t\t.style('font-variant-numeric', 'tabular-nums')\n\t\t\t\t.text('0')\n\t\t\tthis.statValues.set(label, { el: num, value: 0, title: box.title })\n\t\t}\n\t}\n\n\t/** a control in the toolbar above the chart */\n\taddControl() {\n\t\treturn this.dom.toolbar\n\t\t\t.append('div')\n\t\t\t.style('letter-spacing', '0.15em')\n\t\t\t.style('font-size', '11px')\n\t\t\t.style('font-weight', 'bold')\n\t\t\t.style('color', TEXT_MUTED)\n\t\t\t.style('cursor', 'pointer')\n\t\t\t.style('user-select', 'none')\n\t\t\t.style('white-space', 'nowrap')\n\t}\n\n\tunitText(n: number): string {\n\t\treturn `${n.toLocaleString()} ${n === 1 ? this.opts.unit.one : this.opts.unit.many}`\n\t}\n\n\t/** (re)draw the chart for a new tree, centred on the root */\n\tsetTree(tree: SunNode) {\n\t\tthis.root = hierarchy<SunNode>(tree)\n\t\t\t.sum(d => d.value || 0)\n\t\t\t.sort(() => 0)\n\t\tpartition<SunNode>().size([2 * Math.PI, this.root.height + 1])(this.root)\n\t\tthis.focus = this.root\n\t\t// first-ring colours: the dataset colours, the node's own, else a palette in ring order\n\t\tthis.baseColor.clear()\n\t\tlet pi = 0\n\t\tfor (const c of this.root.children || []) {\n\t\t\tthis.baseColor.set(\n\t\t\t\tc.data.name,\n\t\t\t\tthis.opts.colors?.[c.data.name] || c.data.color || schemeTableau10[pi++ % schemeTableau10.length]\n\t\t\t)\n\t\t}\n\t\tthis.buildChart()\n\t\tthis.hooks.onFocus(this.focus)\n\t}\n\n\t/************ colours ************/\n\n\t/** the hue of a wedge: its own colour or its nearest ancestor's, down to the first ring's */\n\thue(d: HNode): string {\n\t\tlet n = d\n\t\twhile (n.depth > 1) {\n\t\t\tif (n.data.color) return n.data.color\n\t\t\tn = n.parent\n\t\t}\n\t\treturn n.depth === 1 ? this.baseColor.get(n.data.name) || NO_HUE : NO_HUE\n\t}\n\n\t/** the hue, shaded by the ring the wedge occupies around the current centre (so a wedge keeps its\n\t * hue at every zoom level), faded when dimmed */\n\tcolor(d: HNode): string {\n\t\tif (d.depth === 0) return CENTRE_FILL\n\t\tconst ring = Math.max(0, Math.min(RING_SHADE.length - 1, d.depth - (this.focus?.depth ?? 0) - 1))\n\t\tconst c = d3rgb(this.hue(d)).brighter(RING_SHADE[ring]).formatHex()\n\t\treturn d.dim ? d3rgb(interpolate(c, '#ffffff')(DIM)).formatHex() : c\n\t}\n\n\thoverColor(d: HNode): string {\n\t\treturn d3rgb(this.color(d)).darker(HOVER_DARKEN).formatHex()\n\t}\n\n\t/************ rendering ************/\n\n\tarc = d3arc()\n\t\t.startAngle((d: any) => d.x0)\n\t\t.endAngle((d: any) => d.x1)\n\t\t.innerRadius((d: any) => radius(d.y0))\n\t\t.outerRadius((d: any) => Math.max(radius(d.y0), radius(d.y1)))\n\n\t/** build every wedge and label once; zoomTo() then only animates their attributes */\n\tbuildChart() {\n\t\tconst g = this.dom.g\n\t\tg.selectAll('*').remove()\n\t\tconst root = this.root!\n\t\troot.each((d: HNode) => (d.current = { x0: d.x0, x1: d.x1, y0: d.y0, y1: d.y1 } as Geom))\n\t\tconst nodes = root.descendants().slice(1)\n\n\t\t// centre sits beneath the wedges so a clicked wedge can sweep over it as it grows;\n\t\t// hidden wedges have pointer-events none, so clicks fall through to the disc\n\t\tthis.dom.centre = g.append('g')\n\t\tthis.dom.centre\n\t\t\t.append('circle')\n\t\t\t.attr('r', R0 - 3)\n\t\t\t.attr('fill', CENTRE_FILL)\n\t\t\t.attr('stroke', CENTRE_STROKE)\n\t\t\t.attr('stroke-width', 1.5)\n\t\t\t.on('click', () => {\n\t\t\t\tif (this.focus!.depth) this.zoomTo(this.focus!.parent)\n\t\t\t})\n\t\tthis.dom.centreText = this.dom.centre.append('g').attr('pointer-events', 'none')\n\n\t\tthis.dom.paths = g\n\t\t\t.append('g')\n\t\t\t.selectAll('path')\n\t\t\t.data(nodes)\n\t\t\t.join('path')\n\t\t\t.attr('class', 'sjpp-sunburst-wedge')\n\t\t\t.attr('fill', (d: HNode) => this.color(d))\n\t\t\t.attr('fill-opacity', (d: HNode) => (arcVisible(d.current, RINGS) ? 1 : 0))\n\t\t\t.attr('stroke-opacity', (d: HNode) => (arcVisible(d.current, RINGS) ? 1 : 0))\n\t\t\t.attr('pointer-events', (d: HNode) => (arcVisible(d.current, RINGS) ? 'auto' : 'none'))\n\t\t\t.attr('d', (d: HNode) => this.arc(d.current))\n\t\t\t.style('cursor', 'pointer')\n\t\t\t.on('mouseenter', (event: any, d: HNode) => {\n\t\t\t\tselect(event.currentTarget).attr('fill', this.hoverColor(d))\n\t\t\t\tthis.showTip(event, d)\n\t\t\t})\n\t\t\t.on('mouseleave', (event: any, d: HNode) => {\n\t\t\t\tselect(event.currentTarget).attr('fill', this.color(d))\n\t\t\t\tthis.dom.tip.hide()\n\t\t\t})\n\t\t\t.on('click', (event: any, d: HNode) => this.hooks.onClick(d, event))\n\n\t\tthis.dom.labels = g\n\t\t\t.append('g')\n\t\t\t.attr('pointer-events', 'none')\n\t\t\t.attr('text-anchor', 'middle')\n\t\t\t.style('user-select', 'none')\n\t\t\t.selectAll('text')\n\t\t\t.data(nodes)\n\t\t\t.join('text')\n\t\t\t.attr('font-size', `${LABEL_FONT}px`)\n\t\t\t.attr('font-weight', 'bold')\n\t\t\t.attr('fill', '#fff')\n\t\t\t.attr('dominant-baseline', 'middle')\n\t\t\t.attr('fill-opacity', (d: HNode) => (this.labelVisible(d.current) ? 1 : 0))\n\t\t\t.attr('transform', (d: HNode) => this.labelTransform(d.current))\n\t\t\t.each((d: HNode, i: number, els: any[]) => this.setLabelText(select(els[i]), d, d.current))\n\n\t\tthis.refresh()\n\t\tthis.renderCentre()\n\t}\n\n\t/** a label shows only where its wedge is visible and at least one line fits along the arc */\n\tlabelVisible(g: Geom): boolean {\n\t\treturn arcVisible(g, RINGS) && (g.x1 - g.x0) * midRadius(g) >= LABEL_LINE_H + 2\n\t}\n\n\t/** along the wedge's mid radius, reading outward; flipped in the left half so it is upright */\n\tlabelTransform(g: Geom): string {\n\t\tconst a = ((g.x0 + g.x1) / 2) * (180 / Math.PI)\n\t\treturn `rotate(${a - 90}) translate(${midRadius(g)},0) rotate(${a < 180 ? 0 : 180})`\n\t}\n\n\t/** wrap the node name into as many lines as the wedge's arc length allows (max 2), each\n\t * no longer than the ring is thick */\n\tsetLabelText(text: any, d: HNode, g: Geom) {\n\t\tconst arcLen = (g.x1 - g.x0) * midRadius(g)\n\t\tconst nLines = Math.max(1, Math.min(LABEL_MAX_LINES, Math.floor(arcLen / LABEL_LINE_H)))\n\t\tconst maxChars = Math.floor((RING_W - 8) / LABEL_CHAR_W)\n\t\tconst lines = splitLabel(d.data.name, maxChars, nLines)\n\t\ttext.selectAll('tspan').remove()\n\t\tlines.forEach((l: string, i: number) => {\n\t\t\ttext\n\t\t\t\t.append('tspan')\n\t\t\t\t.attr('x', 0)\n\t\t\t\t.attr('dy', i === 0 ? `${(-(lines.length - 1) * LABEL_LINE_H) / 2}px` : `${LABEL_LINE_H}px`)\n\t\t\t\t.text(l)\n\t\t})\n\t}\n\n\t/** name, count and Back on the centre disc */\n\trenderCentre() {\n\t\tconst focus = this.focus!\n\t\tconst t = this.dom.centreText\n\t\tt.selectAll('*').remove()\n\t\tthis.dom.centre.select('circle').style('cursor', focus.depth ? 'pointer' : 'default')\n\t\tconst name = focus.depth ? focus.data.name : this.opts.rootName\n\t\tconst nameLines = splitLabel(name, Math.floor((2 * (R0 - 16)) / (15 * 0.6)), 2)\n\t\tconst rows: { text: string; size: number; weight?: string; color: string; h: number }[] = [\n\t\t\t...nameLines.map(l => ({ text: l, size: 15, weight: 'bold', color: TEXT_DARK, h: 18 })),\n\t\t\t{ text: this.unitText(focus.value || 0), size: 12, color: TEXT_MUTED, h: 16 }\n\t\t]\n\t\tif (focus.depth) rows.push({ text: '\u2039 BACK', size: 12, weight: 'bold', color: LINK, h: 22 })\n\t\tconst total = rows.reduce((s, r) => s + r.h, 0)\n\t\tlet y = -total / 2\n\t\tfor (const r of rows) {\n\t\t\tt.append('text')\n\t\t\t\t.attr('text-anchor', 'middle')\n\t\t\t\t.attr('dominant-baseline', 'middle')\n\t\t\t\t.attr('y', y + r.h / 2)\n\t\t\t\t.attr('font-size', `${r.size}px`)\n\t\t\t\t.attr('font-weight', r.weight || 'normal')\n\t\t\t\t.attr('fill', r.color)\n\t\t\t\t.attr('letter-spacing', r.text.endsWith('BACK') ? '0.12em' : null)\n\t\t\t\t.text(r.text)\n\t\t\ty += r.h\n\t\t}\n\t}\n\n\t/** re-apply selection strokes, dimming and the path card after the caller's selection changed;\n\t * no geometry changes */\n\trefresh() {\n\t\tthis.root!.each((d: HNode) => (d.dim = !!this.hooks.isDimmed?.(d)))\n\t\tthis.dom.paths\n\t\t\t.attr('fill', (d: HNode) => this.color(d))\n\t\t\t.attr('stroke', (d: HNode) => (this.hooks.isSelected(d) ? SELECT_STROKE : DIVIDER))\n\t\t\t.attr('stroke-width', (d: HNode) => (this.hooks.isSelected(d) ? 3 : 1))\n\t\t\t.attr('stroke-linejoin', 'round')\n\t\t\t.style('cursor', (d: HNode) => this.hooks.cursor?.(d) || 'pointer')\n\t\tthis.dom.labels.attr('fill', (d: HNode) => (d.dim ? TEXT_MUTED : '#fff'))\n\t\tthis.renderReset()\n\t\tthis.renderPath()\n\t}\n\n\t/** reset is only active when zoomed in */\n\trenderReset() {\n\t\tconst zoomed = !!this.focus?.depth\n\t\tthis.dom.reset.style('opacity', zoomed ? 1 : 0.35).style('cursor', zoomed ? 'pointer' : 'default')\n\t}\n\n\t/** the path of clicked wedges, as the path card or the breadcrumb */\n\trenderPath() {\n\t\tif (this.dom.pathCard) this.renderPathCard(this.dom.pathCard)\n\t\telse this.renderCrumbs()\n\t}\n\n\t/** root \u203A \u2026 \u203A centre, each earlier step clickable to zoom back to it */\n\trenderCrumbs() {\n\t\tconst box = this.dom.crumbs\n\t\tbox.selectAll('*').remove()\n\t\tconst focus = this.focus!\n\t\tconst steps: HNode[] = focus.ancestors().reverse()\n\t\tsteps.forEach((d: HNode, i: number) => {\n\t\t\tif (i) box.append('span').style('color', '#9ca3af').style('margin', '0 6px').text('\u203A')\n\t\t\tconst isFocus = d === focus\n\t\t\tbox\n\t\t\t\t.append('span')\n\t\t\t\t.attr('class', 'sjpp-sunburst-crumb')\n\t\t\t\t.style('color', isFocus ? TEXT_DARK : LINK)\n\t\t\t\t.style('font-weight', isFocus ? 'bold' : 'normal')\n\t\t\t\t.style('cursor', isFocus ? 'default' : 'pointer')\n\t\t\t\t.attr('title', isFocus ? null : `Go to ${d.depth ? d.data.name : this.opts.rootName}`)\n\t\t\t\t.text(d.depth ? d.data.name : this.opts.rootName)\n\t\t\t\t.on('click', () => {\n\t\t\t\t\tif (!isFocus) this.zoomTo(d)\n\t\t\t\t})\n\t\t})\n\t}\n\n\t/** the path card: at the root it lists the first ring to click into; once zoomed it shows the path\n\t * of clicked wedges, each with a colour-coded badge, and clicking a line zooms back to it */\n\trenderPathCard(pathCard: Card) {\n\t\tconst box = pathCard.body\n\t\tbox.selectAll('*').remove()\n\t\tconst focus = this.focus!\n\t\tconst atRoot = !focus.depth\n\t\tpathCard.title.text(atRoot ? this.opts.rootPathTitle || 'Selection' : 'Selection')\n\t\tconst nodes: HNode[] = atRoot ? this.root!.children || [] : focus.ancestors().reverse().slice(1)\n\t\tconst STEP = 7 // px indent per ring, so the path reads as parent \u2192 child\n\t\tnodes.forEach((d: HNode, i: number) => {\n\t\t\tconst isFocus = d === focus\n\t\t\tconst indent = atRoot ? 0 : i * STEP\n\t\t\tconst row = box.append('div').style('position', 'relative').style('margin-left', `${indent}px`)\n\t\t\tif (indent) {\n\t\t\t\t// elbow connector from the parent's badge column down into this line\n\t\t\t\trow\n\t\t\t\t\t.append('div')\n\t\t\t\t\t.style('position', 'absolute')\n\t\t\t\t\t.style('left', `${-STEP + 2}px`)\n\t\t\t\t\t.style('top', '-6px')\n\t\t\t\t\t.style('width', `${STEP - 4}px`)\n\t\t\t\t\t.style('height', '22px')\n\t\t\t\t\t.style('border-left', '1px solid #cbd5e1')\n\t\t\t\t\t.style('border-bottom', '1px solid #cbd5e1')\n\t\t\t\t\t.style('border-bottom-left-radius', '4px')\n\t\t\t}\n\t\t\tconst line = row\n\t\t\t\t.append('div')\n\t\t\t\t.attr('class', 'sjpp-sunburst-pathrow')\n\t\t\t\t.style('display', 'flex')\n\t\t\t\t.style('align-items', 'center')\n\t\t\t\t.style('gap', '8px')\n\t\t\t\t.style('padding', '4px 6px')\n\t\t\t\t.style('margin', '2px 0')\n\t\t\t\t.style('border-radius', '6px')\n\t\t\t\t.style('background', isFocus ? '#eef2ff' : 'transparent')\n\t\t\t\t.style('cursor', isFocus ? 'default' : 'pointer')\n\t\t\t\t.attr('title', isFocus ? d.data.name : `Go to ${d.data.name}`)\n\t\t\t\t.on('click', () => {\n\t\t\t\t\tif (!isFocus) this.zoomTo(d)\n\t\t\t\t})\n\t\t\t\t.on('mouseenter', (event: any) => {\n\t\t\t\t\tif (!isFocus) select(event.currentTarget).style('background', '#f3f4f6')\n\t\t\t\t})\n\t\t\t\t.on('mouseleave', (event: any) => {\n\t\t\t\t\tif (!isFocus) select(event.currentTarget).style('background', 'transparent')\n\t\t\t\t})\n\t\t\tbadge(line, d.data.name, this.color(d))\n\t\t\tconst text = line.append('div').style('flex', '1 1 auto').style('min-width', '0').style('line-height', '1.2')\n\t\t\ttext\n\t\t\t\t.append('div')\n\t\t\t\t.style('font-size', '0.9em')\n\t\t\t\t.style('font-weight', isFocus ? 'bold' : 'normal')\n\t\t\t\t.style('color', '#111827')\n\t\t\t\t.style('overflow', 'hidden')\n\t\t\t\t.style('text-overflow', 'ellipsis')\n\t\t\t\t.style('white-space', 'nowrap')\n\t\t\t\t.text(d.data.name)\n\t\t\ttext\n\t\t\t\t.append('div')\n\t\t\t\t.style('font-size', '0.7em')\n\t\t\t\t.style('color', '#6b7280')\n\t\t\t\t.text(`${d.data.level} \u00B7 ${this.unitText(d.value || 0)}`)\n\t\t})\n\t}\n\n\t/** shown title of a stat box, which keeps `label` as its key */\n\tsetStatTitle(label: string, text: string) {\n\t\tthis.statValues.get(label)?.title.text(text).attr('title', text)\n\t}\n\n\t/** stat box values, by label; null shows a dash with `nullTitle` as its tooltip. Numbers roll from\n\t * the previous value */\n\tsetStats(values: Map<string, number | null>, nullTitle = (_label: string) => '') {\n\t\tfor (const [label, v] of values) {\n\t\t\tconst box = this.statValues.get(label)\n\t\t\tif (!box) continue\n\t\t\tif (v === null) {\n\t\t\t\tbox.el\n\t\t\t\t\t.interrupt()\n\t\t\t\t\t.text('\u2014')\n\t\t\t\t\t.attr('title', nullTitle(label) || null)\n\t\t\t\tbox.value = 0\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tbox.el.attr('title', null)\n\t\t\tconst from = box.value\n\t\t\tbox.value = v\n\t\t\tconst i = interpolate(from, v)\n\t\t\tbox.el\n\t\t\t\t.transition()\n\t\t\t\t.duration(DURATION)\n\t\t\t\t.tween('text', () => (t: number) => box.el.text(Math.round(i(t)).toLocaleString()))\n\t\t}\n\t}\n\n\t/************ interaction ************/\n\n\t/** animate every wedge from its current geometry to where it sits with `p` at the centre */\n\tzoomTo(p: HNode) {\n\t\tthis.focus = p\n\t\tthis.dom.tip.hide()\n\t\tconst root = this.root!\n\t\troot.each((d: HNode) => (d.target = zoomTarget(d, p)))\n\t\tconst t = this.dom.g.transition().duration(DURATION)\n\n\t\t// no hover or clicks on wedges while they move (a wedge sweeping under the cursor would\n\t\t// otherwise darken and pop a tooltip); the visible ones take pointer events again at the end.\n\t\t// A zoom that interrupts this one re-runs the same steps, so nothing is left disabled.\n\t\tthis.dom.paths.attr('pointer-events', 'none')\n\t\t// judged by the target, not d.current: the group's end event fires a tick before the\n\t\t// wedge tweens write their final frame, so current would still be a hair short of it\n\t\tt.on('end', () =>\n\t\t\tthis.dom.paths.attr('pointer-events', (d: HNode) => (arcVisible(d.target, RINGS) ? 'auto' : 'none'))\n\t\t)\n\t\tthis.dom.paths\n\t\t\t.transition(t)\n\t\t\t// every node's current geometry moves, even hidden ones, so a later zoom starts right\n\t\t\t.tween('data', (d: HNode) => {\n\t\t\t\tconst i = interpolate(d.current, d.target)\n\t\t\t\treturn (k: number) => (d.current = i(k))\n\t\t\t})\n\t\t\t.filter(function (this: any, d: HNode) {\n\t\t\t\treturn +this.getAttribute('fill-opacity') || arcVisible(d.target, RINGS)\n\t\t\t})\n\t\t\t.attr('fill-opacity', (d: HNode) => (arcVisible(d.target, RINGS) ? 1 : 0))\n\t\t\t.attr('stroke-opacity', (d: HNode) => (arcVisible(d.target, RINGS) ? 1 : 0))\n\t\t\t.attr('fill', (d: HNode) => this.color(d))\n\t\t\t.attrTween('d', (d: HNode) => () => this.arc(d.current))\n\n\t\tthis.dom.labels\n\t\t\t.filter((d: HNode, i: number, els: any[]) => +els[i].getAttribute('fill-opacity') || this.labelVisible(d.target))\n\t\t\t.each((d: HNode, i: number, els: any[]) => this.setLabelText(select(els[i]), d, d.target))\n\t\t\t.transition(t)\n\t\t\t.attr('fill-opacity', (d: HNode) => (this.labelVisible(d.target) ? 1 : 0))\n\t\t\t.attrTween('transform', (d: HNode) => () => this.labelTransform(d.current))\n\n\t\t// the new centre text fades in beneath the wedge sweeping over the disc\n\t\tthis.renderCentre()\n\t\tthis.dom.centreText.attr('opacity', 0).transition(t).attr('opacity', 1)\n\t\tthis.renderReset()\n\t\tthis.renderPath()\n\t\tthis.hooks.onFocus(p)\n\t}\n\n\tshowTip(event: any, d: HNode) {\n\t\tthis.dom.tip.clear().show(event.clientX, event.clientY)\n\t\tconst box = this.dom.tip.d\n\t\t\t.append('div')\n\t\t\t.style('padding', '10px 14px')\n\t\t\t.style('min-width', '170px')\n\t\t\t.style('font-size', '13px')\n\t\t\t.style('line-height', '1.45')\n\t\tbox.append('div').style('font-weight', 'bold').style('font-size', '14px').text(d.data.name)\n\t\tthis.hooks.tooltip(d, box)\n\t}\n\n\tdestroy() {\n\t\tthis.dom.tip.destroy?.()\n\t}\n}\n\n/************ shared pieces ************/\n\n/** the card every box on the page is built from: rounded border, spaced-capitals title,\n * a right-hand slot in the head for a count or control, and a body */\nexport function card(holder: any, title: string): Card {\n\tconst box = holder\n\t\t.append('div')\n\t\t.style('border', `1px solid ${CARD_BORDER}`)\n\t\t.style('border-radius', '10px')\n\t\t.style('padding', '10px 12px')\n\t\t.style('box-sizing', 'border-box')\n\tconst head = box\n\t\t.append('div')\n\t\t.style('display', 'flex')\n\t\t.style('align-items', 'center')\n\t\t.style('justify-content', 'space-between')\n\t\t.style('gap', '8px')\n\tconst titleDiv = head\n\t\t.append('div')\n\t\t.style('font-size', '10px')\n\t\t.style('font-weight', 'bold')\n\t\t.style('letter-spacing', '0.12em')\n\t\t.style('text-transform', 'uppercase')\n\t\t.style('color', TEXT_MUTED)\n\t\t.style('margin-bottom', '8px')\n\t\t.text(title)\n\tconst headRight = head.append('div').style('display', 'flex').style('align-items', 'center').style('gap', '8px')\n\treturn { box, title: titleDiv, headRight, body: box.append('div') }\n}\n\n/** colour-coded square with the short code of a name */\nexport function badge(holder: any, name: string, color: string, size = 30) {\n\treturn holder\n\t\t.append('span')\n\t\t.style('flex', '0 0 auto')\n\t\t.style('min-width', `${size}px`)\n\t\t.style('height', `${size}px`)\n\t\t.style('line-height', `${size}px`)\n\t\t.style('padding', '0 4px')\n\t\t.style('box-sizing', 'border-box')\n\t\t.style('border-radius', '6px')\n\t\t.style('background', color)\n\t\t.style('color', '#fff')\n\t\t.style('font-weight', 'bold')\n\t\t.style('font-size', size >= 30 ? '0.8em' : '0.7em')\n\t\t.style('text-align', 'center')\n\t\t.text(badgeCode(name))\n}\n\n/** rounded pill: the primary action button, or a count */\nexport function pill(holder: any, opts: { button?: boolean } = {}) {\n\tconst el = holder\n\t\t.append(opts.button ? 'button' : 'span')\n\t\t.style('border-radius', '999px')\n\t\t.style('font-weight', 'bold')\n\t\t.style('font-variant-numeric', 'tabular-nums')\n\tif (opts.button)\n\t\tel.style('border', 'none')\n\t\t\t.style('background', SELECT_STROKE)\n\t\t\t.style('color', '#fff')\n\t\t\t.style('font-size', '13px')\n\t\t\t.style('padding', '8px 16px')\n\t\t\t.style('width', '100%')\n\t\t\t.style('cursor', 'pointer')\n\telse el.style('background', PILL_BG).style('color', TEXT_DARK).style('font-size', '11px').style('padding', '1px 8px')\n\treturn el\n}\n\n/** short code for a badge: short upper-case names as they are (AD, CSF, T-ALL), the leading number\n * of a bin label (10 to <20 \u2192 10), initials of multi-word names (Frontal Cortex \u2192 FC), else the\n * first two letters (Human \u2192 HU) */\nexport function badgeCode(name: string): string {\n\tif (name.length <= 5 && name === name.toUpperCase()) return name\n\tconst words = name.split(/[\\s()]+/).filter(Boolean)\n\tif (/^[<>\u2264\u2265]?[\\d.]+$/.test(words[0] || '')) return words[0].slice(0, 5)\n\tif (words.length > 1)\n\t\treturn words\n\t\t\t.map(w => w[0])\n\t\t\t.join('')\n\t\t\t.toUpperCase()\n\t\t\t.slice(0, 3)\n\treturn name.slice(0, 2).toUpperCase()\n}\n\n/*********** zoom geometry (d3 zoomable-sunburst) ***********/\n\n/** arc geometry of one wedge in partition units: angles in radians; y in ring units, where\n * y=0 is the centre point, y=1 the edge of the centre circle and y=2 the outer edge of the\n * first ring */\ntype Geom = { x0: number; x1: number; y0: number; y1: number }\n\n/** where a node lands once `focus` is the centre: its angles are rescaled to the focus's\n * span (clamped, so wedges outside the focus collapse to zero width) and its rings shift\n * inward by the focus depth (so the focus itself becomes the full centre disc, y 0..1,\n * and its ancestors collapse onto the centre point). Interpolating a node's current\n * geometry toward this is what makes a clicked wedge sweep into a circle. */\nfunction zoomTarget(d: Geom & { depth: number }, focus: Geom & { depth: number }): Geom {\n\tconst span = focus.x1 - focus.x0 || 1\n\tconst ang = (x: number) => Math.max(0, Math.min(1, (x - focus.x0) / span)) * 2 * Math.PI\n\treturn {\n\t\tx0: ang(d.x0),\n\t\tx1: ang(d.x1),\n\t\ty0: Math.max(0, d.y0 - focus.depth),\n\t\ty1: Math.max(0, d.y1 - focus.depth)\n\t}\n}\n\n/** a wedge is drawn when it lies within the `rings` shown around the centre and has width */\nfunction arcVisible(g: Geom, rings: number): boolean {\n\treturn g.y0 >= 1 && g.y1 <= rings + 1 && g.x1 > g.x0\n}\n\n/** break a label into at most `maxLines` lines of at most `maxChars` characters, splitting\n * at spaces; a line that still does not fit is truncated with an ellipsis */\nexport function splitLabel(text: string, maxChars: number, maxLines: number): string[] {\n\tconst words = text.split(/\\s+/).filter(Boolean)\n\tconst lines: string[] = []\n\tlet cur = ''\n\tfor (const w of words) {\n\t\tif (!cur) cur = w\n\t\telse if ((cur + ' ' + w).length <= maxChars) cur += ' ' + w\n\t\telse {\n\t\t\tlines.push(cur)\n\t\t\tcur = w\n\t\t}\n\t}\n\tif (cur) lines.push(cur)\n\tif (lines.length > maxLines) {\n\t\tconst rest = lines.slice(maxLines - 1).join(' ')\n\t\tlines.length = maxLines - 1\n\t\tlines.push(rest)\n\t}\n\treturn lines.map(l => (l.length > maxChars ? l.slice(0, Math.max(1, maxChars - 1)) + '\u2026' : l))\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }