@sjcrh/proteinpaint-client 2.190.2 → 2.191.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 (874) hide show
  1. package/dist/2dmaf-3D2KTSAN.js +1373 -0
  2. package/dist/AIProjectAdmin-IGPLMREH.js +829 -0
  3. package/dist/AppHeader-WT5AXGLC.js +835 -0
  4. package/dist/BoxPlot-AUFITBDB.js +1217 -0
  5. package/dist/CorrelationVolcano-4AZ6Y42O.js +619 -0
  6. package/dist/DE-MWYRMM47.js +95 -0
  7. package/dist/DEinput-F3JFK4HF.js +301 -0
  8. package/dist/DifferentialAnalysis-ZAVYUYOL.js +245 -0
  9. package/dist/Disco-Q3O3A2CU.js +3237 -0
  10. package/dist/Disco.UI-QIKPQKTY.js +245 -0
  11. package/dist/DmrPlot-D7TPJXWH.js +642 -0
  12. package/dist/GB-K57ZGFLA.js +1130 -0
  13. package/dist/GeneExpInput-7UYFJHSX.js +366 -0
  14. package/dist/HicApp-HPIHJDLQ.js +2250 -0
  15. package/dist/NumBinaryEditor-ENHACYTK.js +270 -0
  16. package/dist/NumBinaryEditor.unit.spec-TNIRFCTU.js +286 -0
  17. package/dist/NumContEditor-Y4CDFJM2.js +107 -0
  18. package/dist/NumContEditor.unit.spec-KES6AJHN.js +169 -0
  19. package/dist/NumCustomBinEditor-TRXZ52MH.js +38 -0
  20. package/dist/NumCustomBinEditor.unit.spec-2V5X5YK4.js +284 -0
  21. package/dist/NumDiscreteEditor-RXXL3AQ4.js +179 -0
  22. package/dist/NumDiscreteEditor.unit.spec-EAFEI66P.js +202 -0
  23. package/dist/NumRegularBinEditor-KHIFP2L7.js +38 -0
  24. package/dist/NumRegularBinEditor.unit.spec-ADRNCEAV.js +227 -0
  25. package/dist/NumSplineEditor-33SUCGNJ.js +197 -0
  26. package/dist/NumSplineEditor.unit.spec-7KTMNABP.js +199 -0
  27. package/dist/NumericDensity-PWWJBZUA.js +38 -0
  28. package/dist/NumericDensity.unit.spec-V5C43FCP.js +221 -0
  29. package/dist/NumericHandler-A6QSQAPT.js +39 -0
  30. package/dist/NumericHandler.unit.spec-SRFEDFCC.js +219 -0
  31. package/dist/ProteomeInput-BOI2634T.js +396 -0
  32. package/dist/RunChart2-DJNWYZ5C.js +758 -0
  33. package/dist/SC-ADKHO4MP.js +936 -0
  34. package/dist/Volcano-4GJU2666.js +1379 -0
  35. package/dist/WSIViewer-JQKGSN3D.js +48475 -0
  36. package/dist/WsiSamplesPlot-PSVYIYI7.js +165 -0
  37. package/dist/adSandbox-AFYF5ULQ.js +38 -0
  38. package/dist/app-5KDQSFDE.js +49 -0
  39. package/dist/app-PZ5KGBCR.js +37 -0
  40. package/dist/app.js +13 -13
  41. package/dist/bam-AYX4HVPY.js +860 -0
  42. package/dist/barchart-2BMDZGPJ.js +47 -0
  43. package/dist/barchart.data-I33D7SQC.js +22 -0
  44. package/dist/barchart.events-Z5AL6NU6.js +47 -0
  45. package/dist/barchart.integration.spec-JG7OWI6G.js +1974 -0
  46. package/dist/barchart.integration.spec-JG7OWI6G.js.map +7 -0
  47. package/dist/barchart2-KFMUPMVS.js +311 -0
  48. package/dist/block-7UW7QCRX.js +6202 -0
  49. package/dist/block.init-CZWCEEID.js +38 -0
  50. package/dist/block.mds.expressionrank-2JJYKI2C.js +359 -0
  51. package/dist/block.mds.geneboxplot-NU45ZP4J.js +828 -0
  52. package/dist/block.mds.junction-UVSKHUFR.js +1545 -0
  53. package/dist/block.mds.svcnv-6JXI63CC.js +6801 -0
  54. package/dist/block.svg-KAMDKUQX.js +164 -0
  55. package/dist/block.tk.aicheck-WEKHCRXC.js +283 -0
  56. package/dist/block.tk.ase-MGDGSUQN.js +365 -0
  57. package/dist/block.tk.bam-MB2DAFD7.js +1906 -0
  58. package/dist/block.tk.bedgraphdot-VUSURZ6N.js +384 -0
  59. package/dist/block.tk.bigwig.ui-WQTN44VK.js +212 -0
  60. package/dist/block.tk.hicstraw-T2JXNKWD.js +823 -0
  61. package/dist/block.tk.junction-2JXABLIG.js +2364 -0
  62. package/dist/block.tk.junction.textmatrixui-EEB3JUNU.js +199 -0
  63. package/dist/block.tk.ld-JZBL73US.js +99 -0
  64. package/dist/block.tk.menu-VQEPTCE6.js +1029 -0
  65. package/dist/block.tk.pgv-PYOPQDYL.js +944 -0
  66. package/dist/brainImaging-SYJZZN3K.js +423 -0
  67. package/dist/chunk-26XX7RVV.js +129 -0
  68. package/dist/chunk-2QWELHBX.js +54 -0
  69. package/dist/chunk-3MGF2FZ2.js +1179 -0
  70. package/dist/chunk-3S7ZWGND.js +95 -0
  71. package/dist/chunk-4VCBJC3B.js +203 -0
  72. package/dist/chunk-53WLN75I.js +50 -0
  73. package/dist/chunk-5GOZWJ7S.js +263 -0
  74. package/dist/chunk-5WKIMNGG.js +148 -0
  75. package/dist/chunk-5WM3CC5O.js +117 -0
  76. package/dist/chunk-6FF5VLGO.js +20745 -0
  77. package/dist/chunk-6FF5VLGO.js.map +7 -0
  78. package/dist/chunk-6FOKZFIT.js +613 -0
  79. package/dist/chunk-6FOKZFIT.js.map +7 -0
  80. package/dist/chunk-6GI6MDYV.js +1210 -0
  81. package/dist/chunk-6XOZ4DWL.js +222 -0
  82. package/dist/chunk-6XOZ4DWL.js.map +7 -0
  83. package/dist/chunk-7BOPMRFX.js +482 -0
  84. package/dist/chunk-7C76SLOH.js +1275 -0
  85. package/dist/chunk-7C76SLOH.js.map +7 -0
  86. package/dist/chunk-BYOIIMNZ.js +2327 -0
  87. package/dist/chunk-CGRYUKXD.js +443 -0
  88. package/dist/chunk-CK47VCG5.js +5010 -0
  89. package/dist/chunk-CRUBP5PT.js +446 -0
  90. package/dist/chunk-CW2Q5EA7.js +283 -0
  91. package/dist/chunk-E7UJR2YK.js +158 -0
  92. package/dist/chunk-ENZZUMVY.js +215 -0
  93. package/dist/chunk-FRGACC2C.js +182 -0
  94. package/dist/chunk-FZ63VOSX.js +226 -0
  95. package/dist/chunk-GGRR4NXW.js +1102 -0
  96. package/dist/chunk-H5BIGL3W.js +1815 -0
  97. package/dist/chunk-H5BIGL3W.js.map +7 -0
  98. package/dist/chunk-I2LTCBTM.js +2824 -0
  99. package/dist/chunk-IYOGX7A4.js +158 -0
  100. package/dist/chunk-IYOGX7A4.js.map +7 -0
  101. package/dist/chunk-J5SV3MFB.js +217 -0
  102. package/dist/chunk-J7X5JRRI.js +276 -0
  103. package/dist/chunk-JDPU6NES.js +100 -0
  104. package/dist/chunk-JEZIKGZI.js +386 -0
  105. package/dist/chunk-JPH5EVVW.js +514 -0
  106. package/dist/chunk-JTMU3F2Q.js +184 -0
  107. package/dist/chunk-JTMU3F2Q.js.map +7 -0
  108. package/dist/chunk-KQYXXICJ.js +1332 -0
  109. package/dist/chunk-L72Y4QA2.js +102 -0
  110. package/dist/chunk-LK3BBGUJ.js +2681 -0
  111. package/dist/chunk-LYPDXJPX.js +6364 -0
  112. package/dist/chunk-MEY5OBDJ.js +170 -0
  113. package/dist/chunk-MW3PIRGF.js +229 -0
  114. package/dist/chunk-NNMOXQTU.js +102 -0
  115. package/dist/chunk-NV6JVKDN.js +291 -0
  116. package/dist/chunk-OMBRJBQV.js +1943 -0
  117. package/dist/chunk-PEBOVJSD.js +142 -0
  118. package/dist/chunk-PJXF4IRZ.js +95 -0
  119. package/dist/chunk-PKCYPYWW.js +4272 -0
  120. package/dist/chunk-QIY7HLC5.js +815 -0
  121. package/dist/chunk-QMI2X23H.js +339 -0
  122. package/dist/chunk-QOE7MB4X.js +454 -0
  123. package/dist/chunk-QSMU6K5D.js +34 -0
  124. package/dist/chunk-RBIBHQTL.js +54 -0
  125. package/dist/chunk-RG5ABFA2.js +368 -0
  126. package/dist/chunk-RRJGFE2S.js +407 -0
  127. package/dist/chunk-RTTPFI7N.js +14 -0
  128. package/dist/chunk-T2CG7BVN.js +205 -0
  129. package/dist/chunk-TVADJLMF.js +317 -0
  130. package/dist/chunk-TVADJLMF.js.map +7 -0
  131. package/dist/chunk-U3DKYKV7.js +293 -0
  132. package/dist/chunk-UQHM3F6B.js +37 -0
  133. package/dist/chunk-VXKO2ONI.js +534 -0
  134. package/dist/chunk-W3MCIBAP.js +272 -0
  135. package/dist/chunk-WH236OZ6.js +736 -0
  136. package/dist/chunk-WMELUFVS.js +254 -0
  137. package/dist/chunk-WS3NUPNV.js +119 -0
  138. package/dist/chunk-XIQNS2HN.js +824 -0
  139. package/dist/chunk-YKPLUIWP.js +2786 -0
  140. package/dist/chunk-YRQ5V7DQ.js +302 -0
  141. package/dist/chunk-ZK226W6V.js +194 -0
  142. package/dist/chunk-ZTOABVVA.js +55 -0
  143. package/dist/chunk-ZUTPAYSS.js +477 -0
  144. package/dist/condition-SZZS77TK.js +332 -0
  145. package/dist/controls-ZBDTHWOT.js +41 -0
  146. package/dist/controls.config-MTBN2XPW.js +39 -0
  147. package/dist/correlation-DHEH5FT4.js +99 -0
  148. package/dist/cuminc-TM3SMOJ2.js +1149 -0
  149. package/dist/cuminc.integration.spec-NEBXRMKB.js +678 -0
  150. package/dist/customdata.inputui-5ZEKFWYV.js +289 -0
  151. package/dist/dataDownload-XZ4AC6QY.js +330 -0
  152. package/dist/dataDownload.integration.spec-O4YQKAOJ.js +193 -0
  153. package/dist/databrowser.ui-V4HQMZ4X.js +433 -0
  154. package/dist/dictionary-RAHC3OA7.js +111 -0
  155. package/dist/dnaMethylation-ZUHHG7Q2.js +38 -0
  156. package/dist/dnaMethylation.integration.spec-JZ6ZSF5L.js +203 -0
  157. package/dist/dofetch-77N4NDDM.js +51 -0
  158. package/dist/e2pca-K7IFKNTZ.js +350 -0
  159. package/dist/ep-4OIFIMZH.js +1256 -0
  160. package/dist/expclust.gdc.spec-OJD7ENKA.js +307 -0
  161. package/dist/facet-SZAF3QW6.js +521 -0
  162. package/dist/forms2-TBRF2RI5.js +534 -0
  163. package/dist/gb-I5J74SHP.js +88 -0
  164. package/dist/geneExpClustering-OSS4OCN6.js +249 -0
  165. package/dist/geneExpression-IHVMJGOG.js +38 -0
  166. package/dist/geneExpression-WKYVSE45.js +313 -0
  167. package/dist/geneExpression.unit.spec-QP6CLYHP.js +102 -0
  168. package/dist/geneORA-65PHOTHN.js +278 -0
  169. package/dist/geneRanking-XCU3NX4J.js +551 -0
  170. package/dist/geneVariant-CZM3XP7X.js +39 -0
  171. package/dist/geneVariant-IMDFPV2L.js +41 -0
  172. package/dist/geneVariant.integration.spec-FOONVTYD.js +198 -0
  173. package/dist/genefusion.ui-UZM2YGIR.js +309 -0
  174. package/dist/geneset-IGG77MNZ.js +208 -0
  175. package/dist/genomeBrowser.spec-CN2XNZQF.js +281 -0
  176. package/dist/grin2-367QGSOU.js +1560 -0
  177. package/dist/grin2-S46IRWIP.js +821 -0
  178. package/dist/grin2-S46IRWIP.js.map +7 -0
  179. package/dist/gsea-RJ767G5U.js +47 -0
  180. package/dist/hierCluster-3D425AUU.js +63 -0
  181. package/dist/hierCluster-GIIB6OEC.js +59 -0
  182. package/dist/hierCluster.config-ENEOWYOS.js +40 -0
  183. package/dist/hierCluster.integration.spec-IOA3PVAN.js +395 -0
  184. package/dist/hierCluster.interactivity-VITUF5RM.js +54 -0
  185. package/dist/hierCluster.renderers-G3274UYA.js +21 -0
  186. package/dist/imagePlot-7VH7VFWD.js +163 -0
  187. package/dist/importPlot-OKOYX2NU.js +8 -0
  188. package/dist/isoformExpression-4SJQZFLP.js +40 -0
  189. package/dist/isoformExpression.unit.spec-3MQQZEPZ.js +208 -0
  190. package/dist/launch.adhoc-MQKVVUV7.js +42 -0
  191. package/dist/leftlabel.sample-JPE6CXZU.js +260 -0
  192. package/dist/lollipop-DMM3QYKI.js +171 -0
  193. package/dist/maf-TQKKVLNR.js +452 -0
  194. package/dist/maftimeline-BXBAXKAI.js +593 -0
  195. package/dist/matrix-AWVEEUKZ.js +58 -0
  196. package/dist/matrix-N3YUJXLP.js +63 -0
  197. package/dist/matrix.cells-E3LEVA7U.js +28 -0
  198. package/dist/matrix.config-QPNAC2EY.js +41 -0
  199. package/dist/matrix.data-FIQGPFTI.js +25 -0
  200. package/dist/matrix.groups-BGMZZ6CM.js +27 -0
  201. package/dist/matrix.integration.spec-OA3FJ2PN.js +3072 -0
  202. package/dist/matrix.interactivity-LKLF5ZQN.js +42 -0
  203. package/dist/matrix.layout-ORYBQUKT.js +44 -0
  204. package/dist/matrix.legend-RJAFOZHQ.js +22 -0
  205. package/dist/matrix.renderers-TLZSYHZR.js +38 -0
  206. package/dist/matrix.serieses-GJWHSBG4.js +21 -0
  207. package/dist/matrix.sort-KIJENIT2.js +27 -0
  208. package/dist/matrix.sort.unit.spec-DRFCEZGX.js +472 -0
  209. package/dist/matrix.sorterUi.unit.spec-QQH3ITTW.js +342 -0
  210. package/dist/mavb-ZK5UKXEO.js +732 -0
  211. package/dist/mds.fimo-MHPHQB4X.js +518 -0
  212. package/dist/mds.samplescatterplot-LRL5SXJ5.js +1550 -0
  213. package/dist/mds.survivalplot-R5N6OHZ2.js +483 -0
  214. package/dist/numericDictTermCluster-OMXIURRD.js +72 -0
  215. package/dist/oncomatrix-FA3ELKNE.js +295 -0
  216. package/dist/oncomatrix.spec-3K7ONINO.js +448 -0
  217. package/dist/plot.2dvaf-P6CRZWB7.js +377 -0
  218. package/dist/plot.app-XOQVTISH.js +41 -0
  219. package/dist/plot.barplot-YDT4K3YZ.js +102 -0
  220. package/dist/plot.boxplot-GHEVLVJU.js +152 -0
  221. package/dist/plot.brainImaging-NENXKZEP.js +51 -0
  222. package/dist/plot.disco-3B7LZ2XE.js +102 -0
  223. package/dist/plot.dzi-F7NW65WQ.js +33 -0
  224. package/dist/plot.ssgq-BAUIBB3D.js +139 -0
  225. package/dist/plot.vaf2cov-XBLM7B4M.js +259 -0
  226. package/dist/plot.wsi-YWILGUDN.js +36 -0
  227. package/dist/polar2-WABGZYEV.js +226 -0
  228. package/dist/polar2-WABGZYEV.js.map +7 -0
  229. package/dist/profileForms-LYWVFIVQ.js +441 -0
  230. package/dist/profilePlot-TSXR4EGL.js +54 -0
  231. package/dist/proteinView-ATZI5LXA.js +1320 -0
  232. package/dist/proteinView-ATZI5LXA.js.map +7 -0
  233. package/dist/qualitative-VNY32ONL.js +43 -0
  234. package/dist/radar2-YVHLSCAM.js +321 -0
  235. package/dist/radarFacility2-K4OA7FYK.js +329 -0
  236. package/dist/regression-KKC7Y57Y.js +56 -0
  237. package/dist/regression.inputs-UR2VLW5P.js +48 -0
  238. package/dist/regression.inputs.term-QECG7D3W.js +48 -0
  239. package/dist/regression.inputs.values.table-UANMD46V.js +45 -0
  240. package/dist/regression.integration.spec-UCUHBCZY.js +784 -0
  241. package/dist/regression.results-TNVEGETD.js +40 -0
  242. package/dist/regression.spec-3NSFMTI7.js +708 -0
  243. package/dist/report-2FNKLTYA.js +222 -0
  244. package/dist/sampleScatter.spec-5SC2AJHW.js +202 -0
  245. package/dist/sampleView-SU7VZCJH.js +48 -0
  246. package/dist/samplelst-JGSTML6J.js +111 -0
  247. package/dist/samplematrix-FO4GGDRT.js +2198 -0
  248. package/dist/sc-LDUHVPII.js +86 -0
  249. package/dist/scatter-QAEMBYHW.js +854 -0
  250. package/dist/scatter.integration.spec-FTD4PDMI.js +1196 -0
  251. package/dist/selectGenomeWithTklst-G3XUX3KK.js +134 -0
  252. package/dist/singleCellCellType-QKA4QCLC.js +38 -0
  253. package/dist/singleCellCellType.unit.spec-KIPKWJLB.js +160 -0
  254. package/dist/singleCellGeneExpression-O2QVJOG4.js +38 -0
  255. package/dist/singleCellGeneExpression.unit.spec-6ATWTQTO.js +153 -0
  256. package/dist/singleCellPlot-HZOSW3FB.js +54 -0
  257. package/dist/singlecell-3OX4TSQ4.js +86 -0
  258. package/dist/singlecell-EUUIY2JJ.js +1572 -0
  259. package/dist/snp-UVKGSROJ.js +38 -0
  260. package/dist/snp.unit.spec-YHIZ5ZJW.js +176 -0
  261. package/dist/snplocus-FANKGKI4.js +208 -0
  262. package/dist/spliceevent.a53ss.diagram-QQXYYX7J.js +151 -0
  263. package/dist/spliceevent.exonskip.diagram-R265JOH6.js +277 -0
  264. package/dist/spliceevent.noeventdiagram-UMAQOCVY.js +460 -0
  265. package/dist/ssGSEA-F4BZ3NYO.js +38 -0
  266. package/dist/ssGSEA.unit.spec-OQQGQYPJ.js +88 -0
  267. package/dist/summarizeCnvGeneexp-LX22NXFF.js +163 -0
  268. package/dist/summarizeGeneexpSurvival-N7LXAK2G.js +108 -0
  269. package/dist/summarizeMutationCnv-QC3EARCV.js +164 -0
  270. package/dist/summarizeMutationDiagnosis-H6KJWLLC.js +40 -0
  271. package/dist/summarizeMutationSurvival-JAFSWJVZ.js +99 -0
  272. package/dist/summary-D5MSBQIS.js +49 -0
  273. package/dist/summary.integration.spec-KJPNP7X2.js +414 -0
  274. package/dist/summaryInput-47JBGPNE.js +235 -0
  275. package/dist/sunburst-PUZYZZGK.js +284 -0
  276. package/dist/survival-LGJBYXFR.js +58 -0
  277. package/dist/survival-SMOKVDGO.js +46 -0
  278. package/dist/survival.integration.spec-ORC3LCVK.js +821 -0
  279. package/dist/svgraph-GWDKHIDQ.js +1387 -0
  280. package/dist/svmr-RRA6OUVP.js +3842 -0
  281. package/dist/table-AC2DX55F.js +200 -0
  282. package/dist/termCollection-4OVZAKYZ.js +179 -0
  283. package/dist/termCollection-MPFFNNMF.js +38 -0
  284. package/dist/termCollection.unit.spec-S4QSTY4S.js +208 -0
  285. package/dist/tk-PFWI2HAC.js +46 -0
  286. package/dist/tp.ui-TKAJ7DRO.js +1459 -0
  287. package/dist/tvs.dt-6NDINORK.js +39 -0
  288. package/dist/tvs.dtcnv.categorical-2RHUN643.js +40 -0
  289. package/dist/tvs.dtcnv.continuous-GIPVPDBD.js +72 -0
  290. package/dist/tvs.dtfusion-ZLXTZ7SA.js +40 -0
  291. package/dist/tvs.dtsnvindel-CRS5CL42.js +40 -0
  292. package/dist/tvs.dtsv-SG45TZWQ.js +40 -0
  293. package/dist/tvs.samplelst-NQ5BKEGM.js +104 -0
  294. package/dist/tvs.termCollection-HOVUO7ZH.js +159 -0
  295. package/dist/violin-FGGULOXU.js +46 -0
  296. package/dist/violin.integration.spec-T5Y6URJK.js +1425 -0
  297. package/dist/violin.interactivity-6RGFTQDW.js +38 -0
  298. package/dist/violin.renderer-63UTDZVK.js +40 -0
  299. package/dist/vocabulary-YQXR4H5J.js +41 -0
  300. package/package.json +2 -2
  301. package/dist/2dmaf-ZCIOFNSJ.js +0 -1373
  302. package/dist/AIProjectAdmin-Z7EA2Y74.js +0 -829
  303. package/dist/AppHeader-4AZ76NN3.js +0 -835
  304. package/dist/BoxPlot-BFVBNQNR.js +0 -1217
  305. package/dist/CorrelationVolcano-L5VSJWJF.js +0 -619
  306. package/dist/DE-7TPZWAKI.js +0 -95
  307. package/dist/DEinput-WQJEXWGY.js +0 -301
  308. package/dist/DifferentialAnalysis-FPG7RDNN.js +0 -245
  309. package/dist/Disco-WP2BBL5V.js +0 -3237
  310. package/dist/Disco.UI-ZYSUA57E.js +0 -245
  311. package/dist/DmrPlot-V3E7JMPN.js +0 -642
  312. package/dist/GB-BKLVGYWP.js +0 -1130
  313. package/dist/GeneExpInput-7V72SRDT.js +0 -366
  314. package/dist/HicApp-IT5YNABL.js +0 -2250
  315. package/dist/NumBinaryEditor-7E37MVQO.js +0 -270
  316. package/dist/NumBinaryEditor.unit.spec-C3WVAXMY.js +0 -286
  317. package/dist/NumContEditor-FEVZJUB4.js +0 -107
  318. package/dist/NumContEditor.unit.spec-4IGP657P.js +0 -169
  319. package/dist/NumCustomBinEditor-QC4D63Y5.js +0 -38
  320. package/dist/NumCustomBinEditor.unit.spec-USLECMWI.js +0 -284
  321. package/dist/NumDiscreteEditor-PRAI76XQ.js +0 -179
  322. package/dist/NumDiscreteEditor.unit.spec-IWL3OCTC.js +0 -202
  323. package/dist/NumRegularBinEditor-ESL2HAD7.js +0 -38
  324. package/dist/NumRegularBinEditor.unit.spec-7LLZAW4Z.js +0 -227
  325. package/dist/NumSplineEditor-JZOROO36.js +0 -197
  326. package/dist/NumSplineEditor.unit.spec-3SHSXTC7.js +0 -199
  327. package/dist/NumericDensity-SGYRBDCQ.js +0 -38
  328. package/dist/NumericDensity.unit.spec-Y6JMH6IR.js +0 -221
  329. package/dist/NumericHandler-YG7AMINA.js +0 -39
  330. package/dist/NumericHandler.unit.spec-CABSMERN.js +0 -219
  331. package/dist/ProteomeInput-2WPCK72Z.js +0 -396
  332. package/dist/RunChart2-PJWMDWJR.js +0 -758
  333. package/dist/SC-WVVUFPNU.js +0 -936
  334. package/dist/Volcano-7JI4LUSF.js +0 -1379
  335. package/dist/WSIViewer-GDSOEEA6.js +0 -48475
  336. package/dist/WsiSamplesPlot-Z5C3NPF7.js +0 -165
  337. package/dist/adSandbox-KQKENDNQ.js +0 -38
  338. package/dist/alphaGenome-PN2SEPCK.js +0 -175
  339. package/dist/alphaGenome-PN2SEPCK.js.map +0 -7
  340. package/dist/app-4OEY56FN.js +0 -49
  341. package/dist/app-TGMYXJ4E.js +0 -37
  342. package/dist/bam-3IMX42G5.js +0 -860
  343. package/dist/barchart-44HOJWVS.js +0 -47
  344. package/dist/barchart.data-CHNR4XL2.js +0 -22
  345. package/dist/barchart.events-XW5OZ5MR.js +0 -47
  346. package/dist/barchart.integration.spec-M5PACARH.js +0 -1923
  347. package/dist/barchart.integration.spec-M5PACARH.js.map +0 -7
  348. package/dist/barchart2-4NU7NWJZ.js +0 -311
  349. package/dist/block-OYSZ2JXC.js +0 -6202
  350. package/dist/block.init-WSIQLW7A.js +0 -38
  351. package/dist/block.mds.expressionrank-2KWOWDW4.js +0 -359
  352. package/dist/block.mds.geneboxplot-6ZAD6A5K.js +0 -828
  353. package/dist/block.mds.junction-VQDLHFNG.js +0 -1545
  354. package/dist/block.mds.svcnv-7OIRG7DQ.js +0 -6801
  355. package/dist/block.svg-HXAIFHXM.js +0 -164
  356. package/dist/block.tk.aicheck-GTGHCUEN.js +0 -283
  357. package/dist/block.tk.ase-TAEE2ZHN.js +0 -365
  358. package/dist/block.tk.bam-6A26AZ7S.js +0 -1906
  359. package/dist/block.tk.bedgraphdot-6MYIVRBC.js +0 -384
  360. package/dist/block.tk.bigwig.ui-GJ7JXRH3.js +0 -212
  361. package/dist/block.tk.hicstraw-3TCDZ2GM.js +0 -823
  362. package/dist/block.tk.junction-WDBIP7DK.js +0 -2364
  363. package/dist/block.tk.junction.textmatrixui-QOV3U7AN.js +0 -199
  364. package/dist/block.tk.ld-GCPH66C3.js +0 -99
  365. package/dist/block.tk.menu-YDAIYUGC.js +0 -1029
  366. package/dist/block.tk.pgv-RWOZAUGA.js +0 -944
  367. package/dist/brainImaging-ZAFU6U2Y.js +0 -423
  368. package/dist/chunk-34SAHEQU.js +0 -291
  369. package/dist/chunk-3I7TUGLD.js +0 -226
  370. package/dist/chunk-3JL2HBGE.js +0 -2824
  371. package/dist/chunk-5GMXV4VC.js +0 -5010
  372. package/dist/chunk-5ITQVR2P.js +0 -102
  373. package/dist/chunk-5TKVUSMQ.js +0 -217
  374. package/dist/chunk-5YF3LGLX.js +0 -2327
  375. package/dist/chunk-76PGYH5J.js +0 -203
  376. package/dist/chunk-7JXLWRVZ.js +0 -2681
  377. package/dist/chunk-7YWFO7CJ.js +0 -6364
  378. package/dist/chunk-B3M3AZPL.js +0 -215
  379. package/dist/chunk-BLKF2SE6.js +0 -37
  380. package/dist/chunk-CA2AOIHR.js +0 -142
  381. package/dist/chunk-DBFPAZG3.js +0 -1943
  382. package/dist/chunk-DCJUDSRM.js +0 -446
  383. package/dist/chunk-DNM2DKYE.js +0 -1332
  384. package/dist/chunk-DVH6K2NP.js +0 -14
  385. package/dist/chunk-DYVY7D67.js +0 -263
  386. package/dist/chunk-G6WVVRDA.js +0 -339
  387. package/dist/chunk-GERVYIL4.js +0 -1210
  388. package/dist/chunk-GKBMGKYN.js +0 -117
  389. package/dist/chunk-GRNZWYOJ.js +0 -815
  390. package/dist/chunk-GS7SQKJT.js +0 -102
  391. package/dist/chunk-H5NNQO2V.js +0 -55
  392. package/dist/chunk-HONXMORI.js +0 -368
  393. package/dist/chunk-HURY7IJE.js +0 -4272
  394. package/dist/chunk-I2RRWDYV.js +0 -514
  395. package/dist/chunk-IFA3COXY.js +0 -185
  396. package/dist/chunk-IFA3COXY.js.map +0 -7
  397. package/dist/chunk-IOQV2VX3.js +0 -2786
  398. package/dist/chunk-IWMWT7O7.js +0 -276
  399. package/dist/chunk-JSEMZPAO.js +0 -34
  400. package/dist/chunk-K7UIR22L.js +0 -229
  401. package/dist/chunk-L75HW457.js +0 -824
  402. package/dist/chunk-LO6OYUDE.js +0 -158
  403. package/dist/chunk-LO6OYUDE.js.map +0 -7
  404. package/dist/chunk-LRZ463XM.js +0 -612
  405. package/dist/chunk-LRZ463XM.js.map +0 -7
  406. package/dist/chunk-MQQRTH4U.js +0 -302
  407. package/dist/chunk-NPEQHLVG.js +0 -158
  408. package/dist/chunk-NPTHYZY4.js +0 -205
  409. package/dist/chunk-NZDQV7ZO.js +0 -50
  410. package/dist/chunk-O7Z7SQCS.js +0 -534
  411. package/dist/chunk-OSWTQVAX.js +0 -477
  412. package/dist/chunk-OY4NTIUQ.js +0 -1272
  413. package/dist/chunk-OY4NTIUQ.js.map +0 -7
  414. package/dist/chunk-PSQETQZZ.js +0 -182
  415. package/dist/chunk-QWOZ2QDM.js +0 -386
  416. package/dist/chunk-QZVCFDJ7.js +0 -736
  417. package/dist/chunk-R4BCNWKE.js +0 -54
  418. package/dist/chunk-S6H6OUOA.js +0 -283
  419. package/dist/chunk-S6OIEQXG.js +0 -443
  420. package/dist/chunk-SDMZUHN7.js +0 -482
  421. package/dist/chunk-SKZ37PND.js +0 -129
  422. package/dist/chunk-STQU7XZV.js +0 -1814
  423. package/dist/chunk-STQU7XZV.js.map +0 -7
  424. package/dist/chunk-SY63VCQB.js +0 -95
  425. package/dist/chunk-TEQ2PC7Z.js +0 -100
  426. package/dist/chunk-TRY57CMI.js +0 -148
  427. package/dist/chunk-TXJTOTIQ.js +0 -1102
  428. package/dist/chunk-UK3PTE3P.js +0 -20752
  429. package/dist/chunk-UK3PTE3P.js.map +0 -7
  430. package/dist/chunk-UT2PKKQ4.js +0 -254
  431. package/dist/chunk-VDPQ2ZV2.js +0 -95
  432. package/dist/chunk-VJH3NP42.js +0 -54
  433. package/dist/chunk-W3LVNVG3.js +0 -272
  434. package/dist/chunk-WC62ZAWT.js +0 -293
  435. package/dist/chunk-WKMZ4ZQ3.js +0 -407
  436. package/dist/chunk-X27TRPIZ.js +0 -119
  437. package/dist/chunk-XIIAQQ4T.js +0 -1179
  438. package/dist/chunk-XOCO3LVN.js +0 -317
  439. package/dist/chunk-XOCO3LVN.js.map +0 -7
  440. package/dist/chunk-XUFWJJM5.js +0 -454
  441. package/dist/chunk-Y2Z4XDHA.js +0 -170
  442. package/dist/chunk-YFKJ2TMX.js +0 -194
  443. package/dist/chunk-YPVFTNLG.js +0 -228
  444. package/dist/chunk-YPVFTNLG.js.map +0 -7
  445. package/dist/condition-XKEW2LCM.js +0 -332
  446. package/dist/controls-4RFWTHFH.js +0 -41
  447. package/dist/controls.config-VHH2IGCI.js +0 -39
  448. package/dist/correlation-HGAMIIPH.js +0 -99
  449. package/dist/cuminc-EHW6IH6V.js +0 -1149
  450. package/dist/cuminc.integration.spec-B3EOIE4K.js +0 -678
  451. package/dist/customdata.inputui-IPJHL7BX.js +0 -289
  452. package/dist/dataDownload-GYFEC6XG.js +0 -330
  453. package/dist/dataDownload.integration.spec-V7WQ6AMV.js +0 -193
  454. package/dist/databrowser.ui-TFAJVFFF.js +0 -433
  455. package/dist/dictionary-2ZSMOJCN.js +0 -111
  456. package/dist/dnaMethylation-RHNO5DAC.js +0 -38
  457. package/dist/dnaMethylation.integration.spec-ET7OLMNC.js +0 -203
  458. package/dist/dofetch-UGCQ3OVW.js +0 -51
  459. package/dist/e2pca-SLRCDKF5.js +0 -350
  460. package/dist/ep-FOFTKVBH.js +0 -1256
  461. package/dist/expclust.gdc.spec-FNOOSLCC.js +0 -307
  462. package/dist/facet-UO5A7AGS.js +0 -521
  463. package/dist/forms2-SFV4HHBA.js +0 -534
  464. package/dist/gb-3KR6MAGB.js +0 -88
  465. package/dist/geneExpClustering-BCDXKSNU.js +0 -249
  466. package/dist/geneExpression-5UPKETEZ.js +0 -313
  467. package/dist/geneExpression-CXQ5HFEP.js +0 -38
  468. package/dist/geneExpression.unit.spec-7FVVD4UF.js +0 -102
  469. package/dist/geneORA-UC45CL2U.js +0 -278
  470. package/dist/geneRanking-OOQWVUIG.js +0 -551
  471. package/dist/geneVariant-BQFB7LKZ.js +0 -39
  472. package/dist/geneVariant-BYN7EWTT.js +0 -41
  473. package/dist/geneVariant.integration.spec-OESHXKBV.js +0 -198
  474. package/dist/genefusion.ui-TOSPIGTE.js +0 -309
  475. package/dist/geneset-57DECCND.js +0 -208
  476. package/dist/genomeBrowser.spec-CQP5JG35.js +0 -281
  477. package/dist/grin2-3RDGRV4Z.js +0 -846
  478. package/dist/grin2-3RDGRV4Z.js.map +0 -7
  479. package/dist/grin2-G4MBI5UC.js +0 -1560
  480. package/dist/gsea-VYAXSBM4.js +0 -47
  481. package/dist/hierCluster-4QKMY7GP.js +0 -59
  482. package/dist/hierCluster-GFPFVB3Q.js +0 -63
  483. package/dist/hierCluster.config-3A24DEKA.js +0 -40
  484. package/dist/hierCluster.integration.spec-6NTJYVN4.js +0 -395
  485. package/dist/hierCluster.interactivity-B2T6WS5R.js +0 -54
  486. package/dist/hierCluster.renderers-R3RLK6BI.js +0 -21
  487. package/dist/imagePlot-YZBZRENG.js +0 -163
  488. package/dist/importPlot-LIXKD3WJ.js +0 -8
  489. package/dist/isoformExpression-ZZ5DL6AE.js +0 -40
  490. package/dist/isoformExpression.unit.spec-IH4247TT.js +0 -208
  491. package/dist/launch.adhoc-3YWVAF7R.js +0 -42
  492. package/dist/leftlabel.sample-XFM45ZKO.js +0 -260
  493. package/dist/lollipop-7K5R5KHB.js +0 -171
  494. package/dist/maf-SQVJHNUY.js +0 -452
  495. package/dist/maftimeline-RCPASNN2.js +0 -593
  496. package/dist/matrix-KHTDB56P.js +0 -63
  497. package/dist/matrix-YTHWIMBP.js +0 -58
  498. package/dist/matrix.cells-KNDVYI2S.js +0 -28
  499. package/dist/matrix.config-6BHBCTXE.js +0 -41
  500. package/dist/matrix.data-VWJQ7N4L.js +0 -25
  501. package/dist/matrix.groups-5AUHEO52.js +0 -27
  502. package/dist/matrix.integration.spec-Q2BXNCUO.js +0 -3072
  503. package/dist/matrix.interactivity-FEEWY34M.js +0 -42
  504. package/dist/matrix.layout-FWWM6QQO.js +0 -44
  505. package/dist/matrix.legend-QT3PMREX.js +0 -22
  506. package/dist/matrix.renderers-M6MJO5IU.js +0 -38
  507. package/dist/matrix.serieses-NTKMKT22.js +0 -21
  508. package/dist/matrix.sort-TTHPJ4XC.js +0 -27
  509. package/dist/matrix.sort.unit.spec-XZI2KPNC.js +0 -472
  510. package/dist/matrix.sorterUi.unit.spec-6FVHTGSN.js +0 -342
  511. package/dist/mavb-FZDN27QY.js +0 -732
  512. package/dist/mds.fimo-SSFKQ3BH.js +0 -518
  513. package/dist/mds.samplescatterplot-BMTTX3TB.js +0 -1550
  514. package/dist/mds.survivalplot-PL75RDYI.js +0 -483
  515. package/dist/numericDictTermCluster-NJUXCQYH.js +0 -72
  516. package/dist/oncomatrix-BZDCCEWH.js +0 -295
  517. package/dist/oncomatrix.spec-5A4A4JLV.js +0 -448
  518. package/dist/plot.2dvaf-AC7LW56S.js +0 -377
  519. package/dist/plot.app-DOOWDQ3U.js +0 -41
  520. package/dist/plot.barplot-RNJWREG5.js +0 -102
  521. package/dist/plot.boxplot-CRAEUBQF.js +0 -152
  522. package/dist/plot.brainImaging-ZESEULN6.js +0 -51
  523. package/dist/plot.disco-B4KBP6RK.js +0 -102
  524. package/dist/plot.dzi-2UMRV6IF.js +0 -33
  525. package/dist/plot.ssgq-FVZ27Z2K.js +0 -139
  526. package/dist/plot.vaf2cov-3OXCIEAX.js +0 -259
  527. package/dist/plot.wsi-UKTLZSYW.js +0 -36
  528. package/dist/polar2-D6T34ONJ.js +0 -226
  529. package/dist/polar2-D6T34ONJ.js.map +0 -7
  530. package/dist/profileForms-SBNPRIFT.js +0 -441
  531. package/dist/profilePlot-PPI4IDP4.js +0 -54
  532. package/dist/proteinView-URQEZSH5.js +0 -1320
  533. package/dist/proteinView-URQEZSH5.js.map +0 -7
  534. package/dist/qualitative-4O6KAGEA.js +0 -43
  535. package/dist/radar2-ICKCJY4T.js +0 -321
  536. package/dist/radarFacility2-HEBBSM3T.js +0 -329
  537. package/dist/regression-YFQJE2EP.js +0 -56
  538. package/dist/regression.inputs-A2JVBVZ7.js +0 -48
  539. package/dist/regression.inputs.term-CTVNS5MO.js +0 -48
  540. package/dist/regression.inputs.values.table-X7SI6EDO.js +0 -45
  541. package/dist/regression.integration.spec-NRDEVBWS.js +0 -784
  542. package/dist/regression.results-XVB6CIGW.js +0 -40
  543. package/dist/regression.spec-TNB5HBY5.js +0 -708
  544. package/dist/report-5VDIBC2W.js +0 -222
  545. package/dist/sampleScatter.spec-XDW7SCYA.js +0 -202
  546. package/dist/sampleView-FLUSGZCM.js +0 -48
  547. package/dist/samplelst-4WPG5UBN.js +0 -111
  548. package/dist/samplematrix-YJGMSXUJ.js +0 -2198
  549. package/dist/sc-DHU5KSEJ.js +0 -86
  550. package/dist/scatter-UZMWX3DU.js +0 -854
  551. package/dist/scatter.integration.spec-YX5OC3L2.js +0 -1196
  552. package/dist/selectGenomeWithTklst-BVBMVRMQ.js +0 -134
  553. package/dist/singleCellCellType-DADK5UKZ.js +0 -38
  554. package/dist/singleCellCellType.unit.spec-X25RMBJ3.js +0 -160
  555. package/dist/singleCellGeneExpression-3UEZWI4E.js +0 -38
  556. package/dist/singleCellGeneExpression.unit.spec-5GU3JWE6.js +0 -153
  557. package/dist/singleCellPlot-TFRZG73T.js +0 -54
  558. package/dist/singlecell-HQH6EWJO.js +0 -1572
  559. package/dist/singlecell-KR6JYFAY.js +0 -86
  560. package/dist/snp-ACIZ7D5X.js +0 -38
  561. package/dist/snp.unit.spec-653HGJBM.js +0 -176
  562. package/dist/snplocus-AH6KJCVN.js +0 -208
  563. package/dist/spliceevent.a53ss.diagram-MKJLJDOG.js +0 -151
  564. package/dist/spliceevent.exonskip.diagram-PSEVCDH4.js +0 -277
  565. package/dist/spliceevent.noeventdiagram-T2LHGFN7.js +0 -460
  566. package/dist/ssGSEA-QFMYBITZ.js +0 -38
  567. package/dist/ssGSEA.unit.spec-SQW7KFWE.js +0 -88
  568. package/dist/summarizeCnvGeneexp-EVRTBY3L.js +0 -163
  569. package/dist/summarizeGeneexpSurvival-O3MGRS6K.js +0 -108
  570. package/dist/summarizeMutationCnv-RZ2DZ2XO.js +0 -164
  571. package/dist/summarizeMutationDiagnosis-V2DISQTC.js +0 -40
  572. package/dist/summarizeMutationSurvival-FTTWJBUG.js +0 -99
  573. package/dist/summary-QKBTZINC.js +0 -49
  574. package/dist/summary.integration.spec-54HA7BC2.js +0 -414
  575. package/dist/summaryInput-4RLZT6RW.js +0 -235
  576. package/dist/sunburst-SMKD45XD.js +0 -284
  577. package/dist/survival-BAW5ME6J.js +0 -46
  578. package/dist/survival-YQNA3WP7.js +0 -58
  579. package/dist/survival.integration.spec-2AHXNMH2.js +0 -821
  580. package/dist/svgraph-5Z7VAIVR.js +0 -1387
  581. package/dist/svmr-PHD76RV4.js +0 -3842
  582. package/dist/table-GMRAOIWZ.js +0 -200
  583. package/dist/termCollection-MEBY34TJ.js +0 -179
  584. package/dist/termCollection-QLKTRXUR.js +0 -38
  585. package/dist/termCollection.unit.spec-6B53SW2Q.js +0 -208
  586. package/dist/tk-X46SEOL7.js +0 -46
  587. package/dist/tp.ui-XV7CL7CA.js +0 -1459
  588. package/dist/tvs.dt-U6SIZTXW.js +0 -39
  589. package/dist/tvs.dtcnv.categorical-6YGEKMHW.js +0 -40
  590. package/dist/tvs.dtcnv.continuous-CQFEENBO.js +0 -72
  591. package/dist/tvs.dtfusion-NOBT2JPI.js +0 -40
  592. package/dist/tvs.dtsnvindel-6GTCSVAV.js +0 -40
  593. package/dist/tvs.dtsv-PMI4YVI5.js +0 -40
  594. package/dist/tvs.samplelst-HVNYKHXG.js +0 -104
  595. package/dist/tvs.termCollection-EWGTT75Z.js +0 -159
  596. package/dist/violin-MKWRB25Z.js +0 -46
  597. package/dist/violin.integration.spec-CNWJ43SD.js +0 -1425
  598. package/dist/violin.interactivity-UXOMTGSD.js +0 -38
  599. package/dist/violin.renderer-67Q6YGYQ.js +0 -40
  600. package/dist/vocabulary-AKXE7SNU.js +0 -41
  601. /package/dist/{2dmaf-ZCIOFNSJ.js.map → 2dmaf-3D2KTSAN.js.map} +0 -0
  602. /package/dist/{AIProjectAdmin-Z7EA2Y74.js.map → AIProjectAdmin-IGPLMREH.js.map} +0 -0
  603. /package/dist/{AppHeader-4AZ76NN3.js.map → AppHeader-WT5AXGLC.js.map} +0 -0
  604. /package/dist/{BoxPlot-BFVBNQNR.js.map → BoxPlot-AUFITBDB.js.map} +0 -0
  605. /package/dist/{CorrelationVolcano-L5VSJWJF.js.map → CorrelationVolcano-4AZ6Y42O.js.map} +0 -0
  606. /package/dist/{DE-7TPZWAKI.js.map → DE-MWYRMM47.js.map} +0 -0
  607. /package/dist/{DEinput-WQJEXWGY.js.map → DEinput-F3JFK4HF.js.map} +0 -0
  608. /package/dist/{DifferentialAnalysis-FPG7RDNN.js.map → DifferentialAnalysis-ZAVYUYOL.js.map} +0 -0
  609. /package/dist/{Disco-WP2BBL5V.js.map → Disco-Q3O3A2CU.js.map} +0 -0
  610. /package/dist/{Disco.UI-ZYSUA57E.js.map → Disco.UI-QIKPQKTY.js.map} +0 -0
  611. /package/dist/{DmrPlot-V3E7JMPN.js.map → DmrPlot-D7TPJXWH.js.map} +0 -0
  612. /package/dist/{GB-BKLVGYWP.js.map → GB-K57ZGFLA.js.map} +0 -0
  613. /package/dist/{GeneExpInput-7V72SRDT.js.map → GeneExpInput-7UYFJHSX.js.map} +0 -0
  614. /package/dist/{HicApp-IT5YNABL.js.map → HicApp-HPIHJDLQ.js.map} +0 -0
  615. /package/dist/{NumBinaryEditor-7E37MVQO.js.map → NumBinaryEditor-ENHACYTK.js.map} +0 -0
  616. /package/dist/{NumBinaryEditor.unit.spec-C3WVAXMY.js.map → NumBinaryEditor.unit.spec-TNIRFCTU.js.map} +0 -0
  617. /package/dist/{NumContEditor-FEVZJUB4.js.map → NumContEditor-Y4CDFJM2.js.map} +0 -0
  618. /package/dist/{NumContEditor.unit.spec-4IGP657P.js.map → NumContEditor.unit.spec-KES6AJHN.js.map} +0 -0
  619. /package/dist/{NumCustomBinEditor-QC4D63Y5.js.map → NumCustomBinEditor-TRXZ52MH.js.map} +0 -0
  620. /package/dist/{NumCustomBinEditor.unit.spec-USLECMWI.js.map → NumCustomBinEditor.unit.spec-2V5X5YK4.js.map} +0 -0
  621. /package/dist/{NumDiscreteEditor-PRAI76XQ.js.map → NumDiscreteEditor-RXXL3AQ4.js.map} +0 -0
  622. /package/dist/{NumDiscreteEditor.unit.spec-IWL3OCTC.js.map → NumDiscreteEditor.unit.spec-EAFEI66P.js.map} +0 -0
  623. /package/dist/{NumRegularBinEditor-ESL2HAD7.js.map → NumRegularBinEditor-KHIFP2L7.js.map} +0 -0
  624. /package/dist/{NumRegularBinEditor.unit.spec-7LLZAW4Z.js.map → NumRegularBinEditor.unit.spec-ADRNCEAV.js.map} +0 -0
  625. /package/dist/{NumSplineEditor-JZOROO36.js.map → NumSplineEditor-33SUCGNJ.js.map} +0 -0
  626. /package/dist/{NumSplineEditor.unit.spec-3SHSXTC7.js.map → NumSplineEditor.unit.spec-7KTMNABP.js.map} +0 -0
  627. /package/dist/{NumericDensity-SGYRBDCQ.js.map → NumericDensity-PWWJBZUA.js.map} +0 -0
  628. /package/dist/{NumericDensity.unit.spec-Y6JMH6IR.js.map → NumericDensity.unit.spec-V5C43FCP.js.map} +0 -0
  629. /package/dist/{NumericHandler-YG7AMINA.js.map → NumericHandler-A6QSQAPT.js.map} +0 -0
  630. /package/dist/{NumericHandler.unit.spec-CABSMERN.js.map → NumericHandler.unit.spec-SRFEDFCC.js.map} +0 -0
  631. /package/dist/{ProteomeInput-2WPCK72Z.js.map → ProteomeInput-BOI2634T.js.map} +0 -0
  632. /package/dist/{RunChart2-PJWMDWJR.js.map → RunChart2-DJNWYZ5C.js.map} +0 -0
  633. /package/dist/{SC-WVVUFPNU.js.map → SC-ADKHO4MP.js.map} +0 -0
  634. /package/dist/{Volcano-7JI4LUSF.js.map → Volcano-4GJU2666.js.map} +0 -0
  635. /package/dist/{WSIViewer-GDSOEEA6.js.map → WSIViewer-JQKGSN3D.js.map} +0 -0
  636. /package/dist/{WsiSamplesPlot-Z5C3NPF7.js.map → WsiSamplesPlot-PSVYIYI7.js.map} +0 -0
  637. /package/dist/{adSandbox-KQKENDNQ.js.map → adSandbox-AFYF5ULQ.js.map} +0 -0
  638. /package/dist/{app-4OEY56FN.js.map → app-5KDQSFDE.js.map} +0 -0
  639. /package/dist/{app-TGMYXJ4E.js.map → app-PZ5KGBCR.js.map} +0 -0
  640. /package/dist/{bam-3IMX42G5.js.map → bam-AYX4HVPY.js.map} +0 -0
  641. /package/dist/{barchart-44HOJWVS.js.map → barchart-2BMDZGPJ.js.map} +0 -0
  642. /package/dist/{barchart.data-CHNR4XL2.js.map → barchart.data-I33D7SQC.js.map} +0 -0
  643. /package/dist/{barchart.events-XW5OZ5MR.js.map → barchart.events-Z5AL6NU6.js.map} +0 -0
  644. /package/dist/{barchart2-4NU7NWJZ.js.map → barchart2-KFMUPMVS.js.map} +0 -0
  645. /package/dist/{block-OYSZ2JXC.js.map → block-7UW7QCRX.js.map} +0 -0
  646. /package/dist/{block.init-WSIQLW7A.js.map → block.init-CZWCEEID.js.map} +0 -0
  647. /package/dist/{block.mds.expressionrank-2KWOWDW4.js.map → block.mds.expressionrank-2JJYKI2C.js.map} +0 -0
  648. /package/dist/{block.mds.geneboxplot-6ZAD6A5K.js.map → block.mds.geneboxplot-NU45ZP4J.js.map} +0 -0
  649. /package/dist/{block.mds.junction-VQDLHFNG.js.map → block.mds.junction-UVSKHUFR.js.map} +0 -0
  650. /package/dist/{block.mds.svcnv-7OIRG7DQ.js.map → block.mds.svcnv-6JXI63CC.js.map} +0 -0
  651. /package/dist/{block.svg-HXAIFHXM.js.map → block.svg-KAMDKUQX.js.map} +0 -0
  652. /package/dist/{block.tk.aicheck-GTGHCUEN.js.map → block.tk.aicheck-WEKHCRXC.js.map} +0 -0
  653. /package/dist/{block.tk.ase-TAEE2ZHN.js.map → block.tk.ase-MGDGSUQN.js.map} +0 -0
  654. /package/dist/{block.tk.bam-6A26AZ7S.js.map → block.tk.bam-MB2DAFD7.js.map} +0 -0
  655. /package/dist/{block.tk.bedgraphdot-6MYIVRBC.js.map → block.tk.bedgraphdot-VUSURZ6N.js.map} +0 -0
  656. /package/dist/{block.tk.bigwig.ui-GJ7JXRH3.js.map → block.tk.bigwig.ui-WQTN44VK.js.map} +0 -0
  657. /package/dist/{block.tk.hicstraw-3TCDZ2GM.js.map → block.tk.hicstraw-T2JXNKWD.js.map} +0 -0
  658. /package/dist/{block.tk.junction-WDBIP7DK.js.map → block.tk.junction-2JXABLIG.js.map} +0 -0
  659. /package/dist/{block.tk.junction.textmatrixui-QOV3U7AN.js.map → block.tk.junction.textmatrixui-EEB3JUNU.js.map} +0 -0
  660. /package/dist/{block.tk.ld-GCPH66C3.js.map → block.tk.ld-JZBL73US.js.map} +0 -0
  661. /package/dist/{block.tk.menu-YDAIYUGC.js.map → block.tk.menu-VQEPTCE6.js.map} +0 -0
  662. /package/dist/{block.tk.pgv-RWOZAUGA.js.map → block.tk.pgv-PYOPQDYL.js.map} +0 -0
  663. /package/dist/{brainImaging-ZAFU6U2Y.js.map → brainImaging-SYJZZN3K.js.map} +0 -0
  664. /package/dist/{chunk-SKZ37PND.js.map → chunk-26XX7RVV.js.map} +0 -0
  665. /package/dist/{chunk-R4BCNWKE.js.map → chunk-2QWELHBX.js.map} +0 -0
  666. /package/dist/{chunk-XIIAQQ4T.js.map → chunk-3MGF2FZ2.js.map} +0 -0
  667. /package/dist/{chunk-VDPQ2ZV2.js.map → chunk-3S7ZWGND.js.map} +0 -0
  668. /package/dist/{chunk-76PGYH5J.js.map → chunk-4VCBJC3B.js.map} +0 -0
  669. /package/dist/{chunk-NZDQV7ZO.js.map → chunk-53WLN75I.js.map} +0 -0
  670. /package/dist/{chunk-DYVY7D67.js.map → chunk-5GOZWJ7S.js.map} +0 -0
  671. /package/dist/{chunk-TRY57CMI.js.map → chunk-5WKIMNGG.js.map} +0 -0
  672. /package/dist/{chunk-GKBMGKYN.js.map → chunk-5WM3CC5O.js.map} +0 -0
  673. /package/dist/{chunk-GERVYIL4.js.map → chunk-6GI6MDYV.js.map} +0 -0
  674. /package/dist/{chunk-SDMZUHN7.js.map → chunk-7BOPMRFX.js.map} +0 -0
  675. /package/dist/{chunk-5YF3LGLX.js.map → chunk-BYOIIMNZ.js.map} +0 -0
  676. /package/dist/{chunk-S6OIEQXG.js.map → chunk-CGRYUKXD.js.map} +0 -0
  677. /package/dist/{chunk-5GMXV4VC.js.map → chunk-CK47VCG5.js.map} +0 -0
  678. /package/dist/{chunk-DCJUDSRM.js.map → chunk-CRUBP5PT.js.map} +0 -0
  679. /package/dist/{chunk-S6H6OUOA.js.map → chunk-CW2Q5EA7.js.map} +0 -0
  680. /package/dist/{chunk-NPEQHLVG.js.map → chunk-E7UJR2YK.js.map} +0 -0
  681. /package/dist/{chunk-B3M3AZPL.js.map → chunk-ENZZUMVY.js.map} +0 -0
  682. /package/dist/{chunk-PSQETQZZ.js.map → chunk-FRGACC2C.js.map} +0 -0
  683. /package/dist/{chunk-3I7TUGLD.js.map → chunk-FZ63VOSX.js.map} +0 -0
  684. /package/dist/{chunk-TXJTOTIQ.js.map → chunk-GGRR4NXW.js.map} +0 -0
  685. /package/dist/{chunk-3JL2HBGE.js.map → chunk-I2LTCBTM.js.map} +0 -0
  686. /package/dist/{chunk-5TKVUSMQ.js.map → chunk-J5SV3MFB.js.map} +0 -0
  687. /package/dist/{chunk-IWMWT7O7.js.map → chunk-J7X5JRRI.js.map} +0 -0
  688. /package/dist/{chunk-TEQ2PC7Z.js.map → chunk-JDPU6NES.js.map} +0 -0
  689. /package/dist/{chunk-QWOZ2QDM.js.map → chunk-JEZIKGZI.js.map} +0 -0
  690. /package/dist/{chunk-I2RRWDYV.js.map → chunk-JPH5EVVW.js.map} +0 -0
  691. /package/dist/{chunk-DNM2DKYE.js.map → chunk-KQYXXICJ.js.map} +0 -0
  692. /package/dist/{chunk-5ITQVR2P.js.map → chunk-L72Y4QA2.js.map} +0 -0
  693. /package/dist/{chunk-7JXLWRVZ.js.map → chunk-LK3BBGUJ.js.map} +0 -0
  694. /package/dist/{chunk-7YWFO7CJ.js.map → chunk-LYPDXJPX.js.map} +0 -0
  695. /package/dist/{chunk-Y2Z4XDHA.js.map → chunk-MEY5OBDJ.js.map} +0 -0
  696. /package/dist/{chunk-K7UIR22L.js.map → chunk-MW3PIRGF.js.map} +0 -0
  697. /package/dist/{chunk-GS7SQKJT.js.map → chunk-NNMOXQTU.js.map} +0 -0
  698. /package/dist/{chunk-34SAHEQU.js.map → chunk-NV6JVKDN.js.map} +0 -0
  699. /package/dist/{chunk-DBFPAZG3.js.map → chunk-OMBRJBQV.js.map} +0 -0
  700. /package/dist/{chunk-CA2AOIHR.js.map → chunk-PEBOVJSD.js.map} +0 -0
  701. /package/dist/{chunk-SY63VCQB.js.map → chunk-PJXF4IRZ.js.map} +0 -0
  702. /package/dist/{chunk-HURY7IJE.js.map → chunk-PKCYPYWW.js.map} +0 -0
  703. /package/dist/{chunk-GRNZWYOJ.js.map → chunk-QIY7HLC5.js.map} +0 -0
  704. /package/dist/{chunk-G6WVVRDA.js.map → chunk-QMI2X23H.js.map} +0 -0
  705. /package/dist/{chunk-XUFWJJM5.js.map → chunk-QOE7MB4X.js.map} +0 -0
  706. /package/dist/{chunk-JSEMZPAO.js.map → chunk-QSMU6K5D.js.map} +0 -0
  707. /package/dist/{chunk-VJH3NP42.js.map → chunk-RBIBHQTL.js.map} +0 -0
  708. /package/dist/{chunk-HONXMORI.js.map → chunk-RG5ABFA2.js.map} +0 -0
  709. /package/dist/{chunk-WKMZ4ZQ3.js.map → chunk-RRJGFE2S.js.map} +0 -0
  710. /package/dist/{chunk-DVH6K2NP.js.map → chunk-RTTPFI7N.js.map} +0 -0
  711. /package/dist/{chunk-NPTHYZY4.js.map → chunk-T2CG7BVN.js.map} +0 -0
  712. /package/dist/{chunk-WC62ZAWT.js.map → chunk-U3DKYKV7.js.map} +0 -0
  713. /package/dist/{chunk-BLKF2SE6.js.map → chunk-UQHM3F6B.js.map} +0 -0
  714. /package/dist/{chunk-O7Z7SQCS.js.map → chunk-VXKO2ONI.js.map} +0 -0
  715. /package/dist/{chunk-W3LVNVG3.js.map → chunk-W3MCIBAP.js.map} +0 -0
  716. /package/dist/{chunk-QZVCFDJ7.js.map → chunk-WH236OZ6.js.map} +0 -0
  717. /package/dist/{chunk-UT2PKKQ4.js.map → chunk-WMELUFVS.js.map} +0 -0
  718. /package/dist/{chunk-X27TRPIZ.js.map → chunk-WS3NUPNV.js.map} +0 -0
  719. /package/dist/{chunk-L75HW457.js.map → chunk-XIQNS2HN.js.map} +0 -0
  720. /package/dist/{chunk-IOQV2VX3.js.map → chunk-YKPLUIWP.js.map} +0 -0
  721. /package/dist/{chunk-MQQRTH4U.js.map → chunk-YRQ5V7DQ.js.map} +0 -0
  722. /package/dist/{chunk-YFKJ2TMX.js.map → chunk-ZK226W6V.js.map} +0 -0
  723. /package/dist/{chunk-H5NNQO2V.js.map → chunk-ZTOABVVA.js.map} +0 -0
  724. /package/dist/{chunk-OSWTQVAX.js.map → chunk-ZUTPAYSS.js.map} +0 -0
  725. /package/dist/{condition-XKEW2LCM.js.map → condition-SZZS77TK.js.map} +0 -0
  726. /package/dist/{controls-4RFWTHFH.js.map → controls-ZBDTHWOT.js.map} +0 -0
  727. /package/dist/{controls.config-VHH2IGCI.js.map → controls.config-MTBN2XPW.js.map} +0 -0
  728. /package/dist/{correlation-HGAMIIPH.js.map → correlation-DHEH5FT4.js.map} +0 -0
  729. /package/dist/{cuminc-EHW6IH6V.js.map → cuminc-TM3SMOJ2.js.map} +0 -0
  730. /package/dist/{cuminc.integration.spec-B3EOIE4K.js.map → cuminc.integration.spec-NEBXRMKB.js.map} +0 -0
  731. /package/dist/{customdata.inputui-IPJHL7BX.js.map → customdata.inputui-5ZEKFWYV.js.map} +0 -0
  732. /package/dist/{dataDownload-GYFEC6XG.js.map → dataDownload-XZ4AC6QY.js.map} +0 -0
  733. /package/dist/{dataDownload.integration.spec-V7WQ6AMV.js.map → dataDownload.integration.spec-O4YQKAOJ.js.map} +0 -0
  734. /package/dist/{databrowser.ui-TFAJVFFF.js.map → databrowser.ui-V4HQMZ4X.js.map} +0 -0
  735. /package/dist/{dictionary-2ZSMOJCN.js.map → dictionary-RAHC3OA7.js.map} +0 -0
  736. /package/dist/{dnaMethylation-RHNO5DAC.js.map → dnaMethylation-ZUHHG7Q2.js.map} +0 -0
  737. /package/dist/{dnaMethylation.integration.spec-ET7OLMNC.js.map → dnaMethylation.integration.spec-JZ6ZSF5L.js.map} +0 -0
  738. /package/dist/{dofetch-UGCQ3OVW.js.map → dofetch-77N4NDDM.js.map} +0 -0
  739. /package/dist/{e2pca-SLRCDKF5.js.map → e2pca-K7IFKNTZ.js.map} +0 -0
  740. /package/dist/{ep-FOFTKVBH.js.map → ep-4OIFIMZH.js.map} +0 -0
  741. /package/dist/{expclust.gdc.spec-FNOOSLCC.js.map → expclust.gdc.spec-OJD7ENKA.js.map} +0 -0
  742. /package/dist/{facet-UO5A7AGS.js.map → facet-SZAF3QW6.js.map} +0 -0
  743. /package/dist/{forms2-SFV4HHBA.js.map → forms2-TBRF2RI5.js.map} +0 -0
  744. /package/dist/{gb-3KR6MAGB.js.map → gb-I5J74SHP.js.map} +0 -0
  745. /package/dist/{geneExpClustering-BCDXKSNU.js.map → geneExpClustering-OSS4OCN6.js.map} +0 -0
  746. /package/dist/{geneExpression-CXQ5HFEP.js.map → geneExpression-IHVMJGOG.js.map} +0 -0
  747. /package/dist/{geneExpression-5UPKETEZ.js.map → geneExpression-WKYVSE45.js.map} +0 -0
  748. /package/dist/{geneExpression.unit.spec-7FVVD4UF.js.map → geneExpression.unit.spec-QP6CLYHP.js.map} +0 -0
  749. /package/dist/{geneORA-UC45CL2U.js.map → geneORA-65PHOTHN.js.map} +0 -0
  750. /package/dist/{geneRanking-OOQWVUIG.js.map → geneRanking-XCU3NX4J.js.map} +0 -0
  751. /package/dist/{geneVariant-BQFB7LKZ.js.map → geneVariant-CZM3XP7X.js.map} +0 -0
  752. /package/dist/{geneVariant-BYN7EWTT.js.map → geneVariant-IMDFPV2L.js.map} +0 -0
  753. /package/dist/{geneVariant.integration.spec-OESHXKBV.js.map → geneVariant.integration.spec-FOONVTYD.js.map} +0 -0
  754. /package/dist/{genefusion.ui-TOSPIGTE.js.map → genefusion.ui-UZM2YGIR.js.map} +0 -0
  755. /package/dist/{geneset-57DECCND.js.map → geneset-IGG77MNZ.js.map} +0 -0
  756. /package/dist/{genomeBrowser.spec-CQP5JG35.js.map → genomeBrowser.spec-CN2XNZQF.js.map} +0 -0
  757. /package/dist/{grin2-G4MBI5UC.js.map → grin2-367QGSOU.js.map} +0 -0
  758. /package/dist/{gsea-VYAXSBM4.js.map → gsea-RJ767G5U.js.map} +0 -0
  759. /package/dist/{hierCluster-4QKMY7GP.js.map → hierCluster-3D425AUU.js.map} +0 -0
  760. /package/dist/{hierCluster-GFPFVB3Q.js.map → hierCluster-GIIB6OEC.js.map} +0 -0
  761. /package/dist/{hierCluster.config-3A24DEKA.js.map → hierCluster.config-ENEOWYOS.js.map} +0 -0
  762. /package/dist/{hierCluster.integration.spec-6NTJYVN4.js.map → hierCluster.integration.spec-IOA3PVAN.js.map} +0 -0
  763. /package/dist/{hierCluster.interactivity-B2T6WS5R.js.map → hierCluster.interactivity-VITUF5RM.js.map} +0 -0
  764. /package/dist/{hierCluster.renderers-R3RLK6BI.js.map → hierCluster.renderers-G3274UYA.js.map} +0 -0
  765. /package/dist/{imagePlot-YZBZRENG.js.map → imagePlot-7VH7VFWD.js.map} +0 -0
  766. /package/dist/{importPlot-LIXKD3WJ.js.map → importPlot-OKOYX2NU.js.map} +0 -0
  767. /package/dist/{isoformExpression-ZZ5DL6AE.js.map → isoformExpression-4SJQZFLP.js.map} +0 -0
  768. /package/dist/{isoformExpression.unit.spec-IH4247TT.js.map → isoformExpression.unit.spec-3MQQZEPZ.js.map} +0 -0
  769. /package/dist/{launch.adhoc-3YWVAF7R.js.map → launch.adhoc-MQKVVUV7.js.map} +0 -0
  770. /package/dist/{leftlabel.sample-XFM45ZKO.js.map → leftlabel.sample-JPE6CXZU.js.map} +0 -0
  771. /package/dist/{lollipop-7K5R5KHB.js.map → lollipop-DMM3QYKI.js.map} +0 -0
  772. /package/dist/{maf-SQVJHNUY.js.map → maf-TQKKVLNR.js.map} +0 -0
  773. /package/dist/{maftimeline-RCPASNN2.js.map → maftimeline-BXBAXKAI.js.map} +0 -0
  774. /package/dist/{matrix-KHTDB56P.js.map → matrix-AWVEEUKZ.js.map} +0 -0
  775. /package/dist/{matrix-YTHWIMBP.js.map → matrix-N3YUJXLP.js.map} +0 -0
  776. /package/dist/{matrix.cells-KNDVYI2S.js.map → matrix.cells-E3LEVA7U.js.map} +0 -0
  777. /package/dist/{matrix.config-6BHBCTXE.js.map → matrix.config-QPNAC2EY.js.map} +0 -0
  778. /package/dist/{matrix.data-VWJQ7N4L.js.map → matrix.data-FIQGPFTI.js.map} +0 -0
  779. /package/dist/{matrix.groups-5AUHEO52.js.map → matrix.groups-BGMZZ6CM.js.map} +0 -0
  780. /package/dist/{matrix.integration.spec-Q2BXNCUO.js.map → matrix.integration.spec-OA3FJ2PN.js.map} +0 -0
  781. /package/dist/{matrix.interactivity-FEEWY34M.js.map → matrix.interactivity-LKLF5ZQN.js.map} +0 -0
  782. /package/dist/{matrix.layout-FWWM6QQO.js.map → matrix.layout-ORYBQUKT.js.map} +0 -0
  783. /package/dist/{matrix.legend-QT3PMREX.js.map → matrix.legend-RJAFOZHQ.js.map} +0 -0
  784. /package/dist/{matrix.renderers-M6MJO5IU.js.map → matrix.renderers-TLZSYHZR.js.map} +0 -0
  785. /package/dist/{matrix.serieses-NTKMKT22.js.map → matrix.serieses-GJWHSBG4.js.map} +0 -0
  786. /package/dist/{matrix.sort-TTHPJ4XC.js.map → matrix.sort-KIJENIT2.js.map} +0 -0
  787. /package/dist/{matrix.sort.unit.spec-XZI2KPNC.js.map → matrix.sort.unit.spec-DRFCEZGX.js.map} +0 -0
  788. /package/dist/{matrix.sorterUi.unit.spec-6FVHTGSN.js.map → matrix.sorterUi.unit.spec-QQH3ITTW.js.map} +0 -0
  789. /package/dist/{mavb-FZDN27QY.js.map → mavb-ZK5UKXEO.js.map} +0 -0
  790. /package/dist/{mds.fimo-SSFKQ3BH.js.map → mds.fimo-MHPHQB4X.js.map} +0 -0
  791. /package/dist/{mds.samplescatterplot-BMTTX3TB.js.map → mds.samplescatterplot-LRL5SXJ5.js.map} +0 -0
  792. /package/dist/{mds.survivalplot-PL75RDYI.js.map → mds.survivalplot-R5N6OHZ2.js.map} +0 -0
  793. /package/dist/{numericDictTermCluster-NJUXCQYH.js.map → numericDictTermCluster-OMXIURRD.js.map} +0 -0
  794. /package/dist/{oncomatrix-BZDCCEWH.js.map → oncomatrix-FA3ELKNE.js.map} +0 -0
  795. /package/dist/{oncomatrix.spec-5A4A4JLV.js.map → oncomatrix.spec-3K7ONINO.js.map} +0 -0
  796. /package/dist/{plot.2dvaf-AC7LW56S.js.map → plot.2dvaf-P6CRZWB7.js.map} +0 -0
  797. /package/dist/{plot.app-DOOWDQ3U.js.map → plot.app-XOQVTISH.js.map} +0 -0
  798. /package/dist/{plot.barplot-RNJWREG5.js.map → plot.barplot-YDT4K3YZ.js.map} +0 -0
  799. /package/dist/{plot.boxplot-CRAEUBQF.js.map → plot.boxplot-GHEVLVJU.js.map} +0 -0
  800. /package/dist/{plot.brainImaging-ZESEULN6.js.map → plot.brainImaging-NENXKZEP.js.map} +0 -0
  801. /package/dist/{plot.disco-B4KBP6RK.js.map → plot.disco-3B7LZ2XE.js.map} +0 -0
  802. /package/dist/{plot.dzi-2UMRV6IF.js.map → plot.dzi-F7NW65WQ.js.map} +0 -0
  803. /package/dist/{plot.ssgq-FVZ27Z2K.js.map → plot.ssgq-BAUIBB3D.js.map} +0 -0
  804. /package/dist/{plot.vaf2cov-3OXCIEAX.js.map → plot.vaf2cov-XBLM7B4M.js.map} +0 -0
  805. /package/dist/{plot.wsi-UKTLZSYW.js.map → plot.wsi-YWILGUDN.js.map} +0 -0
  806. /package/dist/{profileForms-SBNPRIFT.js.map → profileForms-LYWVFIVQ.js.map} +0 -0
  807. /package/dist/{profilePlot-PPI4IDP4.js.map → profilePlot-TSXR4EGL.js.map} +0 -0
  808. /package/dist/{qualitative-4O6KAGEA.js.map → qualitative-VNY32ONL.js.map} +0 -0
  809. /package/dist/{radar2-ICKCJY4T.js.map → radar2-YVHLSCAM.js.map} +0 -0
  810. /package/dist/{radarFacility2-HEBBSM3T.js.map → radarFacility2-K4OA7FYK.js.map} +0 -0
  811. /package/dist/{regression-YFQJE2EP.js.map → regression-KKC7Y57Y.js.map} +0 -0
  812. /package/dist/{regression.inputs-A2JVBVZ7.js.map → regression.inputs-UR2VLW5P.js.map} +0 -0
  813. /package/dist/{regression.inputs.term-CTVNS5MO.js.map → regression.inputs.term-QECG7D3W.js.map} +0 -0
  814. /package/dist/{regression.inputs.values.table-X7SI6EDO.js.map → regression.inputs.values.table-UANMD46V.js.map} +0 -0
  815. /package/dist/{regression.integration.spec-NRDEVBWS.js.map → regression.integration.spec-UCUHBCZY.js.map} +0 -0
  816. /package/dist/{regression.results-XVB6CIGW.js.map → regression.results-TNVEGETD.js.map} +0 -0
  817. /package/dist/{regression.spec-TNB5HBY5.js.map → regression.spec-3NSFMTI7.js.map} +0 -0
  818. /package/dist/{report-5VDIBC2W.js.map → report-2FNKLTYA.js.map} +0 -0
  819. /package/dist/{sampleScatter.spec-XDW7SCYA.js.map → sampleScatter.spec-5SC2AJHW.js.map} +0 -0
  820. /package/dist/{sampleView-FLUSGZCM.js.map → sampleView-SU7VZCJH.js.map} +0 -0
  821. /package/dist/{samplelst-4WPG5UBN.js.map → samplelst-JGSTML6J.js.map} +0 -0
  822. /package/dist/{samplematrix-YJGMSXUJ.js.map → samplematrix-FO4GGDRT.js.map} +0 -0
  823. /package/dist/{sc-DHU5KSEJ.js.map → sc-LDUHVPII.js.map} +0 -0
  824. /package/dist/{scatter-UZMWX3DU.js.map → scatter-QAEMBYHW.js.map} +0 -0
  825. /package/dist/{scatter.integration.spec-YX5OC3L2.js.map → scatter.integration.spec-FTD4PDMI.js.map} +0 -0
  826. /package/dist/{selectGenomeWithTklst-BVBMVRMQ.js.map → selectGenomeWithTklst-G3XUX3KK.js.map} +0 -0
  827. /package/dist/{singleCellCellType-DADK5UKZ.js.map → singleCellCellType-QKA4QCLC.js.map} +0 -0
  828. /package/dist/{singleCellCellType.unit.spec-X25RMBJ3.js.map → singleCellCellType.unit.spec-KIPKWJLB.js.map} +0 -0
  829. /package/dist/{singleCellGeneExpression-3UEZWI4E.js.map → singleCellGeneExpression-O2QVJOG4.js.map} +0 -0
  830. /package/dist/{singleCellGeneExpression.unit.spec-5GU3JWE6.js.map → singleCellGeneExpression.unit.spec-6ATWTQTO.js.map} +0 -0
  831. /package/dist/{singleCellPlot-TFRZG73T.js.map → singleCellPlot-HZOSW3FB.js.map} +0 -0
  832. /package/dist/{singlecell-KR6JYFAY.js.map → singlecell-3OX4TSQ4.js.map} +0 -0
  833. /package/dist/{singlecell-HQH6EWJO.js.map → singlecell-EUUIY2JJ.js.map} +0 -0
  834. /package/dist/{snp-ACIZ7D5X.js.map → snp-UVKGSROJ.js.map} +0 -0
  835. /package/dist/{snp.unit.spec-653HGJBM.js.map → snp.unit.spec-YHIZ5ZJW.js.map} +0 -0
  836. /package/dist/{snplocus-AH6KJCVN.js.map → snplocus-FANKGKI4.js.map} +0 -0
  837. /package/dist/{spliceevent.a53ss.diagram-MKJLJDOG.js.map → spliceevent.a53ss.diagram-QQXYYX7J.js.map} +0 -0
  838. /package/dist/{spliceevent.exonskip.diagram-PSEVCDH4.js.map → spliceevent.exonskip.diagram-R265JOH6.js.map} +0 -0
  839. /package/dist/{spliceevent.noeventdiagram-T2LHGFN7.js.map → spliceevent.noeventdiagram-UMAQOCVY.js.map} +0 -0
  840. /package/dist/{ssGSEA-QFMYBITZ.js.map → ssGSEA-F4BZ3NYO.js.map} +0 -0
  841. /package/dist/{ssGSEA.unit.spec-SQW7KFWE.js.map → ssGSEA.unit.spec-OQQGQYPJ.js.map} +0 -0
  842. /package/dist/{summarizeCnvGeneexp-EVRTBY3L.js.map → summarizeCnvGeneexp-LX22NXFF.js.map} +0 -0
  843. /package/dist/{summarizeGeneexpSurvival-O3MGRS6K.js.map → summarizeGeneexpSurvival-N7LXAK2G.js.map} +0 -0
  844. /package/dist/{summarizeMutationCnv-RZ2DZ2XO.js.map → summarizeMutationCnv-QC3EARCV.js.map} +0 -0
  845. /package/dist/{summarizeMutationDiagnosis-V2DISQTC.js.map → summarizeMutationDiagnosis-H6KJWLLC.js.map} +0 -0
  846. /package/dist/{summarizeMutationSurvival-FTTWJBUG.js.map → summarizeMutationSurvival-JAFSWJVZ.js.map} +0 -0
  847. /package/dist/{summary-QKBTZINC.js.map → summary-D5MSBQIS.js.map} +0 -0
  848. /package/dist/{summary.integration.spec-54HA7BC2.js.map → summary.integration.spec-KJPNP7X2.js.map} +0 -0
  849. /package/dist/{summaryInput-4RLZT6RW.js.map → summaryInput-47JBGPNE.js.map} +0 -0
  850. /package/dist/{sunburst-SMKD45XD.js.map → sunburst-PUZYZZGK.js.map} +0 -0
  851. /package/dist/{survival-YQNA3WP7.js.map → survival-LGJBYXFR.js.map} +0 -0
  852. /package/dist/{survival-BAW5ME6J.js.map → survival-SMOKVDGO.js.map} +0 -0
  853. /package/dist/{survival.integration.spec-2AHXNMH2.js.map → survival.integration.spec-ORC3LCVK.js.map} +0 -0
  854. /package/dist/{svgraph-5Z7VAIVR.js.map → svgraph-GWDKHIDQ.js.map} +0 -0
  855. /package/dist/{svmr-PHD76RV4.js.map → svmr-RRA6OUVP.js.map} +0 -0
  856. /package/dist/{table-GMRAOIWZ.js.map → table-AC2DX55F.js.map} +0 -0
  857. /package/dist/{termCollection-MEBY34TJ.js.map → termCollection-4OVZAKYZ.js.map} +0 -0
  858. /package/dist/{termCollection-QLKTRXUR.js.map → termCollection-MPFFNNMF.js.map} +0 -0
  859. /package/dist/{termCollection.unit.spec-6B53SW2Q.js.map → termCollection.unit.spec-S4QSTY4S.js.map} +0 -0
  860. /package/dist/{tk-X46SEOL7.js.map → tk-PFWI2HAC.js.map} +0 -0
  861. /package/dist/{tp.ui-XV7CL7CA.js.map → tp.ui-TKAJ7DRO.js.map} +0 -0
  862. /package/dist/{tvs.dt-U6SIZTXW.js.map → tvs.dt-6NDINORK.js.map} +0 -0
  863. /package/dist/{tvs.dtcnv.categorical-6YGEKMHW.js.map → tvs.dtcnv.categorical-2RHUN643.js.map} +0 -0
  864. /package/dist/{tvs.dtcnv.continuous-CQFEENBO.js.map → tvs.dtcnv.continuous-GIPVPDBD.js.map} +0 -0
  865. /package/dist/{tvs.dtfusion-NOBT2JPI.js.map → tvs.dtfusion-ZLXTZ7SA.js.map} +0 -0
  866. /package/dist/{tvs.dtsnvindel-6GTCSVAV.js.map → tvs.dtsnvindel-CRS5CL42.js.map} +0 -0
  867. /package/dist/{tvs.dtsv-PMI4YVI5.js.map → tvs.dtsv-SG45TZWQ.js.map} +0 -0
  868. /package/dist/{tvs.samplelst-HVNYKHXG.js.map → tvs.samplelst-NQ5BKEGM.js.map} +0 -0
  869. /package/dist/{tvs.termCollection-EWGTT75Z.js.map → tvs.termCollection-HOVUO7ZH.js.map} +0 -0
  870. /package/dist/{violin-MKWRB25Z.js.map → violin-FGGULOXU.js.map} +0 -0
  871. /package/dist/{violin.integration.spec-CNWJ43SD.js.map → violin.integration.spec-T5Y6URJK.js.map} +0 -0
  872. /package/dist/{violin.interactivity-UXOMTGSD.js.map → violin.interactivity-6RGFTQDW.js.map} +0 -0
  873. /package/dist/{violin.renderer-67Q6YGYQ.js.map → violin.renderer-63UTDZVK.js.map} +0 -0
  874. /package/dist/{vocabulary-AKXE7SNU.js.map → vocabulary-YQXR4H5J.js.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../plots/test/barchart.integration.spec.js", "../termdb/test/vocabData.js"],
4
- "sourcesContent": ["import tape from 'tape'\nimport { termjson } from '../../test/testdata/termjson'\nimport {\n\tgetSamplelstTw,\n\tgetCategoryGroupsetting,\n\tgetGeneVariantTw,\n\tgetGenesetMutTw,\n\tgetCategoricalTermcollectionTw\n} from '../../test/testdata/data.ts'\nimport * as helpers from '../../test/front.helpers.js'\nimport { sleep, detectLst, detectGte, detectOne, Locator } from '../../test/test.helpers.js'\nimport { getFilterItemByTag } from '../../filter/filter'\nimport * as vocabData from '../../termdb/test/vocabData'\nimport { hideCategory } from '../barchart.events.js'\n\n/*\ntest sections\n\nterm1=categorical\nterm1=categorical (no values)\nterm1=termCollection categorical\nterm1=categorical, term2=defaultbins\nterm0=defaultbins, term1=categorical\nterm1=categorical, term2=categorical (patient-level)\nterm1=geneVariant no group\nterm1=geneVariant with groups\nterm1=geneVariant, term2=geneVariant using region but not gene\nterm1=geneVariant geneset with groups\nterm1=categorical, term2=geneVariant\nterm1=categorical (patient-level), term2=geneVariant\nterm1=geneExp, term2=geneVariant SKIPPED\nterm1=geneVariant, term2=geneExp\nterm1=geneExp\nterm1=numeric term2=geneExp with default bins\nterm1=geneExp, term2=categorical\nterm1=geneExp, term2=categorical (patient-level)\nterm1=condition, term2=gene exp with default bins\nterm1=TP53 gene exp, term2=BCR gene exp, both terms with default bins\nterm1=categorical, term0=gene exp with default bins\nseries visibility - q.hiddenValue\nseries visibility - numeric\nseries visibility - condition\n\nsingle barchart, categorical filter\nsingle barchart, categorical filter (patient-level)\nsingle barchart (patient-level), compound filter (patient-level + sample-level)\ngenevariant barchart, compound filter SKIPPED\nsingle barchart, TP53 mutation dtTerm filter\n\nclick non-group bar to add filter\nclick custom categorical group bar to add filter\nnumeric exclude range\nnumeric filter - only special value\ncustom vocab: categorical terms with numeric filter\ncustom vocab: numeric terms with categorical filter\nmax number of bins: exceeded\nno visible series data, no overlay\nall hidden + with overlay, legend click\nunhidden chart and legend\ncustomized bins\n */\n\ntape('\\n', function (test) {\n\ttest.comment('-***- plots/barchart -***-')\n\ttest.end()\n})\n\ntape('term1=categorical', function (test) {\n\ttest.timeoutAfter(3000)\n\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tid: 'diaggrp'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\ttestBarCount(barchart)\n\t\ttestAxisDimension(barchart)\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n\n\tlet barDiv\n\tfunction testBarCount(barchart) {\n\t\tbarDiv = barchart.Inner.dom.barDiv\n\t\tconst minBars = 5\n\t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n\t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n\t\ttest.true(numBars > minBars, `should have more than ${minBars} Diagnosis Group bars`)\n\t\ttest.equal(numBars, numOverlays, 'should have equal numbers of bars and overlays')\n\t}\n\n\tfunction testAxisDimension(barchart) {\n\t\tconst xAxis = barDiv.select('.sjpcb-bar-chart-x-axis').node()\n\t\tconst seriesG = barDiv.select('.bars-series').node()\n\t\ttest.true(xAxis.getBBox().width >= seriesG.getBBox().width, 'x-axis width should be >= series width')\n\t}\n})\n\ntape('term1=categorical (no values)', function (test) {\n\ttest.timeoutAfter(3000)\n\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tid: 'diaggrp_novalues'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\ttestTw(barchart)\n\t\ttestBarCount(barchart)\n\t\ttestAxisDimension(barchart)\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n\n\tfunction testTw(barchart) {\n\t\t// testing if term.values{} and term.samplecounts[] get filled\n\t\tconst tw = barchart.Inner.config.term\n\t\ttest.ok(tw.term.values && typeof tw.term.values == 'object', 'term.values{} should be an object')\n\t\ttest.ok(Array.isArray(tw.term.categories.lst), 'term.categories.lst[] should be an array')\n\t\ttest.equal(tw.term.categories.lst.length, 7, 'term.categories.lst[] should have 7 sample counts')\n\t}\n\n\tlet barDiv\n\tfunction testBarCount(barchart) {\n\t\tbarDiv = barchart.Inner.dom.barDiv\n\t\tconst minBars = 5\n\t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n\t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n\t\ttest.true(numBars > minBars, `should have more than ${minBars} Diagnosis Group bars`)\n\t\ttest.equal(numBars, numOverlays, 'should have equal numbers of bars and overlays')\n\t}\n\n\tfunction testAxisDimension(barchart) {\n\t\tconst xAxis = barDiv.select('.sjpcb-bar-chart-x-axis').node()\n\t\tconst seriesG = barDiv.select('.bars-series').node()\n\t\ttest.true(xAxis.getBBox().width >= seriesG.getBBox().width, 'x-axis width should be >= series width')\n\t}\n})\n\ntape('term1=termCollection categorical', function (test) {\n\ttest.timeoutAfter(3000)\n\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [{ chartType: 'summary', childType: 'barchart', term: getCategoricalTermcollectionTw() }]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\t\ttestBarCount(barDiv)\n\t\ttestBarOrder(barDiv)\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n\n\tfunction testBarCount(barDiv) {\n\t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n\t\ttest.equal(numBars, 3, 'should render 3 bars, one per member term')\n\t}\n\n\tfunction testBarOrder(barDiv) {\n\t\t// Bars should appear in termIds order: CNV, Fusion, Germline\n\t\t// Each rowlabel g has transform=\"translate(x,y)\" where y increases with row index\n\t\tconst labelGs = barDiv.selectAll('[data-testid=\"sjpcb-bars-rowlabels\"] g').nodes()\n\t\ttest.equal(labelGs.length, 3, 'should have 3 row label elements')\n\t\tif (labelGs.length < 2) return\n\t\tconst yValues = labelGs.map(g => {\n\t\t\tconst t = g.getAttribute('transform') || ''\n\t\t\tconst m = t.match(/translate\\([^,]+,([^)]+)\\)/)\n\t\t\treturn m ? parseFloat(m[1]) : 0\n\t\t})\n\t\ttest.ok(\n\t\t\tyValues[0] < yValues[1] && yValues[1] < yValues[2],\n\t\t\t'row label y positions should increase in termIds order (CNV < Fusion < Germline)'\n\t\t)\n\t}\n})\n\ntape('term1=categorical, term2=defaultbins', function (test) {\n\ttest.timeoutAfter(5000)\n\ttest.plan(4)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: { id: 'diaggrp' },\n\t\t\t\t\tterm2: { id: 'agedx' }\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tlet barDiv\n\tasync function runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\tbarDiv = barchart.Inner.dom.barDiv\n\t\t/*helpers\n\t\t\t.rideInit({ arg: barchart, bus: barchart, eventType: 'postRender.test', preserve: true })\n\t\t\t.run(testBarCount)\n\t\t\t.run(testOverlayOrder)\n\t\t\t.run(triggerUncomputableOverlay, 200)\n\t\t\t.run(clickLegendToHideOverlay, 1000)\n\t\t\t.run(testHiddenOverlayData, 2000)\n\t\t\t.done(test)*/\n\n\t\tawait detectOne({ elem: barDiv.node(), selector: '.pp-bars-svg' })\n\t\ttestBarCount()\n\t\ttestOverlayOrder()\n\t\tawait triggerUncomputableOverlay(barchart)\n\t\tclickLegendToHideOverlay(barchart)\n\t\tawait testHiddenOverlayData(barchart)\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n\n\tfunction testBarCount() {\n\t\t// no need to await, the bar order will tested after the initial postRender event\n\t\tconst minBars = 5\n\t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n\t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n\t\ttest.true(numBars > minBars, `should have more than ${minBars} Diagnosis Group bars`)\n\t\ttest.true(numOverlays > numBars, 'number of overlays should be greater than bars')\n\t}\n\n\tfunction testOverlayOrder() {\n\t\t// no need to await, the bar order will tested after the initial postRender event\n\t\tconst bars_grp = barDiv.selectAll('.bars-cell-grp')\n\t\tconst legend_rows = barDiv.selectAll('.legend-row')\n\t\t//flag to indicate unordered bars\n\t\tlet overlay_ordered = true\n\t\tconst legend_ids = []\n\t\tlegend_rows.each(d => legend_ids.push(d.dataId))\n\t\t//check if each stacked bar is in same order as legend\n\t\tbars_grp.each(d => {\n\t\t\tif (!overlay_ordered) return\n\t\t\tconst bar_ids = d.visibleData.map(d => d.dataId)\n\t\t\toverlay_ordered = legend_ids\n\t\t\t\t.filter(id => bar_ids.includes(id))\n\t\t\t\t.reduce((bool, id, i) => bool && bar_ids[i] === id, overlay_ordered)\n\t\t})\n\t\ttest.true(overlay_ordered, 'overlay order is same as legend')\n\t}\n\n\tasync function triggerUncomputableOverlay(barchart) {\n\t\t//Await for legend rows to increase before moving on to the next function\n\t\tawait detectLst({\n\t\t\ttarget: barchart.Inner.dom.legendDiv.node(),\n\t\t\t// avoid detecting legend entries for descriptive stats,\n\t\t\t// term legend items have a corresponding icon as the first div,\n\t\t\t// making the second div (even-numbered child) the relevant target/selector\n\t\t\tselector: '.sjpp-htmlLegend:nth-child(even)',\n\t\t\tcount: 6,\n\t\t\tmatchAs: '>=',\n\t\t\ttrigger: () => {\n\t\t\t\tbarchart.Inner.app.dispatch({\n\t\t\t\t\ttype: 'plot_edit',\n\t\t\t\t\tid: 'diaggrp',\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tterm2: {\n\t\t\t\t\t\t\tid: 'aaclassic_5',\n\t\t\t\t\t\t\tterm: termjson['aaclassic_5'],\n\t\t\t\t\t\t\tq: termjson['aaclassic_5'].bins.default\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n\n\tconst legendDataId = 'not exposed'\n\n\tasync function clickLegendToHideOverlay(barchart) {\n\t\t//await sleep(40)\n\t\tconst legendDiv = barchart.Inner.dom.legendDiv\n\t\tconst item = legendDiv\n\t\t\t.selectAll('.sjpp-htmlLegend')\n\t\t\t.filter(d => d.dataId == legendDataId)\n\t\t\t.node()\n\t\thideCategory(item.__data__, barchart.Inner, true)\n\t}\n\n\tasync function testHiddenOverlayData(barchart) {\n\t\tconst legendDiv = barchart.Inner.dom.legendDiv\n\t\t//Fix for removing sleep()\n\t\tconst item = await detectLst({ elem: legendDiv.node(), selector: '.sjpp-hidden-legend-item', matchAs: '>=' })\n\t\t// const item = legendDiv.selectAll('.legend-row').filter(function(d) {\n\t\t// \treturn +this.style.opacity < 1 && d.dataId == legendDataId\n\t\t// })\n\t\ttest.equal(item.length, 1, 'should hide a clicked uncomputable overlay legend')\n\t}\n})\n\ntape('term0=defaultbins, term1=categorical', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: { id: 'diaggrp' },\n\t\t\t\t\tterm0: { id: 'agedx' }\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': testNumCharts\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction testNumCharts(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\t\tconst numCharts = barDiv.selectAll('.pp-sbar-div').size()\n\t\ttest.true(numCharts > 2, 'should have more than 2 charts by Age at Cancer Diagnosis')\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('term1=categorical, term2=categorical (patient-level)', function (test) {\n\ttest.timeoutAfter(5000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: { id: 'diaggrp' },\n\t\t\t\t\tterm2: { id: 'sex' }\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tlet barDiv\n\tasync function runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\tbarDiv = barchart.Inner.dom.barDiv\n\t\tawait detectOne({ elem: barDiv.node(), selector: '.pp-bars-svg' })\n\t\ttestBarCount()\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n\n\tfunction testBarCount() {\n\t\t// no need to await, the bar order will tested after the initial postRender event\n\t\tconst minBars = 5\n\t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n\t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n\t\ttest.true(numBars > minBars, `should have more than ${minBars} Diagnosis Group bars`)\n\t\ttest.true(numOverlays > numBars, 'number of overlays should be greater than bars')\n\t}\n})\n\ntape('term1=geneVariant with groups', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [{ chartType: 'summary', childType: 'barchart', term: getGeneVariantTw() }]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': testNumCharts\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction testNumCharts(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\t\tconst numCharts = barDiv.selectAll('.pp-sbar-div').size()\n\t\ttest.true(numCharts == 1, 'Should have 1 chart from gene variant term')\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('term1=geneVariant, term2=geneVariant using region but not gene', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'summary',\n\t\t\t\t\tchildType: 'barchart',\n\t\t\t\t\tterm: getGeneVariantTw(),\n\t\t\t\t\tterm2: getGeneVariantTw(true) // gives region but not gene\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': testNumCharts\n\t\t\t}\n\t\t}\n\t})\n\tfunction testNumCharts(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\t\tconst numCharts = barDiv.selectAll('.pp-sbar-div').size()\n\t\ttest.true(numCharts == 1, 'Should have 1 chart from gene variant term')\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('term1=geneVariant geneset with groups', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'summary',\n\t\t\t\t\tchildType: 'barchart',\n\t\t\t\t\tterm: getGenesetMutTw()\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': testNumCharts\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction testNumCharts(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\t\tconst numCharts = barDiv.selectAll('.pp-sbar-div').size()\n\t\ttest.true(numCharts == 1, 'Should have 1 chart from gene variant gene set')\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('term1=categorical, term2=geneVariant', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: { id: 'diaggrp' },\n\t\t\t\t\tterm2: { term: { type: 'geneVariant', gene: 'TP53' }, q: { type: 'predefined-groupset' } }\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': testNumCharts\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction testNumCharts(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\t\tconst numCharts = barDiv.selectAll('.pp-sbar-div').size()\n\t\ttest.true(numCharts == 1, 'Should have 1 chart from gene variant term')\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('term1=categorical (patient-level), term2=geneVariant', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: { id: 'genetic_race' },\n\t\t\t\t\tterm2: { term: { type: 'geneVariant', gene: 'TP53' }, q: { type: 'predefined-groupset' } }\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tlet barDiv\n\tasync function runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\tbarDiv = barchart.Inner.dom.barDiv\n\t\tawait detectOne({ elem: barDiv.node(), selector: '.pp-bars-svg' })\n\t\ttestBarCount()\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n\n\tfunction testBarCount() {\n\t\t// no need to await, the bar order will tested after the initial postRender event\n\t\tconst minBars = 2\n\t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n\t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n\t\ttest.true(numBars > minBars, `should have more than ${minBars} bars`)\n\t\ttest.true(numOverlays > numBars, 'number of overlays should be greater than bars')\n\t}\n})\n\ntape('term1=geneExp, term2=geneVariant SKIPPED', function (test) {\n\ttest.timeoutAfter(10000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'summary',\n\t\t\t\t\tterm2: { term: { type: 'geneVariant', gene: 'TP53' }, q: { type: 'predefined-groupset' } },\n\t\t\t\t\t// must set geneExp q.mode=discrete to show barchart, otherwise it will become violin and not trigger provied postRender for barchart\n\t\t\t\t\tterm: { term: { type: 'geneExpression', gene: 'TP53' }, q: { mode: 'discrete' } }\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': testNumCharts\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction testNumCharts(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\t\tconst numCharts = barDiv.selectAll('.pp-sbar-div').size()\n\t\ttest.true(numCharts == 1, 'Should have 1 chart from gene variant term')\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('term1=geneVariant, term2=geneExp', function (test) {\n\ttest.timeoutAfter(10000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'summary',\n\t\t\t\t\tchildType: 'barchart',\n\t\t\t\t\tterm: { term: { type: 'geneVariant', gene: 'TP53' }, q: { type: 'predefined-groupset' } },\n\t\t\t\t\tterm2: { term: { type: 'geneExpression', gene: 'TP53' } }\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': testNumCharts\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction testNumCharts(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\t\tconst numCharts = barDiv.selectAll('.pp-sbar-div').size()\n\t\ttest.true(numCharts == 1, 'Should have 1 chart from gene variant term')\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('term1=geneExp', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'summary',\n\t\t\t\t\tchildType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tterm: { type: 'geneExpression', gene: 'TP53', name: 'TP53' },\n\t\t\t\t\t\tq: { mode: 'discrete' }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction runTests(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\n\t\tconst numBars = barDiv.selectAll('rect').size()\n\t\ttest.ok(\n\t\t\tbarDiv.selectAll('.pp-sbar-div').size() == 1 && barchart.Inner.config.term.bins.length && numBars,\n\t\t\t'Should correctly render a bar chart for a gene expression term = TP53'\n\t\t)\n\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('term1=numeric term2=geneExp with default bins', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'summary',\n\t\t\t\t\tchildType: 'barchart',\n\t\t\t\t\tterm: { id: 'agedx' },\n\t\t\t\t\tterm2: {\n\t\t\t\t\t\tterm: { type: 'geneExpression', gene: 'TP53' },\n\t\t\t\t\t\tq: { mode: 'discrete' }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction runTests(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\n\t\tconst numBarCalls = barDiv.selectAll('.bars-cell').size()\n\t\tconst tableRows = barDiv.selectAll('tr').size()\n\t\ttest.equal(\n\t\t\tnumBarCalls,\n\t\t\ttableRows - 1,\n\t\t\t'Should display the correct number of bars and table rows when overlaid by gene expression term.'\n\t\t)\n\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('term1=geneExp, term2=categorical', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'summary',\n\t\t\t\t\tchildType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tterm: { gene: 'TP53', type: 'geneExpression' },\n\t\t\t\t\t\tq: { mode: 'discrete' }\n\t\t\t\t\t},\n\t\t\t\t\tterm2: {\n\t\t\t\t\t\tid: 'diaggrp'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\tasync function runTests(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\n\t\tconst numBarCells = await detectGte({ elem: barDiv.node(), selector: '.bars-cell', count: 22 })\n\t\tconst tableRows = await detectGte({ elem: barDiv.node(), selector: 'tr', count: 22 })\n\t\ttest.ok(\n\t\t\t// table has one row for header\n\t\t\tnumBarCells.length >= tableRows.length - 1,\n\t\t\t'Should display the correct number of cells and table rows when gene expression term is overlaid by a categorical term.'\n\t\t)\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('term1=geneExp, term2=categorical (patient-level)', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'summary',\n\t\t\t\t\tchildType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tterm: { gene: 'TP53', type: 'geneExpression' },\n\t\t\t\t\t\tq: { mode: 'discrete' }\n\t\t\t\t\t},\n\t\t\t\t\tterm2: {\n\t\t\t\t\t\tid: 'sex'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tlet barDiv\n\tasync function runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\tbarDiv = barchart.Inner.dom.barDiv\n\t\tawait detectOne({ elem: barDiv.node(), selector: '.pp-bars-svg' })\n\t\ttestBarCount()\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n\n\tfunction testBarCount() {\n\t\t// no need to await, the bar order will tested after the initial postRender event\n\t\tconst minBars = 5\n\t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n\t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n\t\ttest.true(numBars > minBars, `should have more than ${minBars} bars`)\n\t\ttest.true(numOverlays > numBars, 'number of overlays should be greater than bars')\n\t}\n})\n\ntape('term1=condition, term2=gene exp with default bins', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'summary',\n\t\t\t\t\tchildType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tid: 'Hearing loss'\n\t\t\t\t\t},\n\t\t\t\t\tterm2: {\n\t\t\t\t\t\tterm: { gene: 'TP53', type: 'geneExpression' },\n\t\t\t\t\t\tq: { mode: 'discrete' }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\tasync function runTests(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\n\t\tconst numBarCells = await detectGte({ elem: barDiv.node(), selector: '.bars-cell', count: 14 })\n\t\tconst tableRows = await detectGte({ elem: barDiv.node(), selector: 'tr', count: 14 })\n\t\ttest.ok(\n\t\t\t// table has one row for header\n\t\t\tnumBarCells.length >= tableRows.length - 1,\n\t\t\t'Should display the correct number of cells and table rows when gene expression term is overlaid by a conditional term.'\n\t\t)\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('term1=TP53 gene exp, term2=BCR gene exp, both terms with default bins', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'summary',\n\t\t\t\t\tchildType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tterm: { gene: 'TP53', type: 'geneExpression' },\n\t\t\t\t\t\tq: { mode: 'discrete' }\n\t\t\t\t\t},\n\t\t\t\t\tterm2: {\n\t\t\t\t\t\tterm: { gene: 'BCR', type: 'geneExpression' },\n\t\t\t\t\t\tq: { mode: 'discrete' }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\tasync function runTests(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\n\t\tconst numBarCells = await detectGte({ elem: barDiv.node(), selector: '.bars-cell', count: 27 })\n\t\tconst tableRows = await detectGte({ elem: barDiv.node(), selector: 'tr', count: 28 })\n\t\ttest.ok(\n\t\t\tnumBarCells.length == tableRows.length - 1,\n\t\t\t'Should display the correct number of cells and table rows when gene expression term is overlaid by a gene expression term.'\n\t\t)\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('term1=categorical, term0=gene exp with default bins', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'summary',\n\t\t\t\t\tchildType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tid: 'diaggrp'\n\t\t\t\t\t},\n\t\t\t\t\tterm0: {\n\t\t\t\t\t\tterm: { gene: 'TP53', name: 'TP53', type: 'geneExpression' },\n\t\t\t\t\t\tq: { mode: 'discrete' }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\tasync function runTests(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\n\t\tconst numBarchart = await detectGte({ elem: barDiv.node(), selector: '.pp-bars-svg', count: 8 })\n\t\ttest.equal(\n\t\t\tnumBarchart.length,\n\t\t\t8,\n\t\t\t'Should display the correct number of barcharts when a categorical term is overlaid by a gene expression term.'\n\t\t)\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('series visibility - q.hiddenValues', function (test) {\n\ttest.timeoutAfter(5000)\n\ttest.plan(2)\n\n\tconst hiddenValues = { 1: true }\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tid: 'sex',\n\t\t\t\t\t\tq: {\n\t\t\t\t\t\t\thiddenValues\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': testHiddenValues\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction testHiddenValues(barchart) {\n\t\tconst bar = barchart.Inner\n\t\ttest.deepEqual(\n\t\t\tbar.settings.exclude.cols.sort(),\n\t\t\tObject.keys(hiddenValues).sort(),\n\t\t\t'should have the correct number of hidden bars by q.hiddenValues'\n\t\t)\n\t\ttest.equal(\n\t\t\tbar.dom.holder.selectAll('.bars-cell').size(),\n\t\t\tbar.settings.cols.length - bar.settings.exclude.cols.length,\n\t\t\t'should render the correct number of visible bars'\n\t\t)\n\t\tif (test._ok) bar.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('series visibility - numeric', function (test) {\n\ttest.timeoutAfter(5000)\n\n\trunpp({\n\t\tstate: {\n\t\t\tnav: { activeTab: 1 },\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: { id: 'aaclassic_5' }\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runNumericExcludedTests\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction runNumericExcludedTests(barchart) {\n\t\thelpers\n\t\t\t.rideInit({ arg: barchart, bus: barchart, eventType: 'postRender.test' })\n\t\t\t.run(testHiddenByValuesAndOrder)\n\t\t\t.use(triggerHiddenLegendClick, { wait: 800 })\n\t\t\t.to(testRevealedBar, { wait: 100 })\n\t\t\t.use(triggerMenuClickToHide, { wait: 100 })\n\t\t\t.to(testHiddenLegendDisplay, { wait: 600 })\n\t\t\t.done(test)\n\t}\n\n\tfunction testHiddenByValuesAndOrder(barchart) {\n\t\tconst bar = barchart.Inner\n\t\tconst excluded = bar.settings.exclude.cols\n\t\ttest.true(\n\t\t\texcluded.length > 1 && excluded.length == Object.keys(bar.config.term.q.hiddenValues).length,\n\t\t\t'should have the correct number of excluded numeric series by q.hiddenValues'\n\t\t)\n\t\t// console.log(bar.dom.legendDiv.selectAll('.legend-row').nodes())\n\t\tconst foundHiddenLabels = bar.dom.legendDiv\n\t\t\t.selectAll('.sjpp-htmlLegend')\n\t\t\t.filter(d => d?.isHidden == true)\n\t\t\t.nodes()\n\n\t\ttest.equal(\n\t\t\tfoundHiddenLabels.length + 1,\n\t\t\texcluded.length,\n\t\t\t'should display the correct number of hidden legend labels'\n\t\t)\n\n\t\tconst barOrder = [...bar.dom.holder.node().querySelectorAll('.bars-cell-grp')].sort(\n\t\t\t(a, b) => a.__data__.data[0].y - b.__data__.data[0].y\n\t\t)\n\t\ttest.deepEqual(\n\t\t\tbarOrder.map(d => d.__data__.seriesId),\n\t\t\t['<5000', '5000 to <10000', '10000 to <15000', '15000 to <20000', '20000 to <25000', '\u226525000'],\n\t\t\t'should render the bars in the expected order'\n\t\t)\n\t}\n\n\tlet numHiddenLegendBeforeClick\n\tfunction triggerHiddenLegendClick(barchart) {\n\t\tnumHiddenLegendBeforeClick = barchart.Inner.settings.exclude.cols.length\n\t\tconst node = barchart.Inner.dom.legendDiv\n\t\t\t.selectAll('.sjpp-htmlLegend')\n\t\t\t.filter(d => d?.isHidden == true)\n\t\t\t.node()\n\t\thideCategory(node.__data__, barchart.Inner, false)\n\t}\n\n\tfunction testRevealedBar(barchart) {\n\t\tconst bar = barchart.Inner\n\t\tconst excluded = bar.settings.exclude.cols\n\t\ttest.equal(excluded.length, numHiddenLegendBeforeClick - 1, 'should adjust the number of excluded series data')\n\n\t\tconst foundHiddenLabels = bar.dom.legendDiv\n\t\t\t.selectAll('.legend-row')\n\t\t\t.filter(d => d?.isHidden == true)\n\t\t\t.nodes()\n\t\ttest.equal(\n\t\t\tfoundHiddenLabels.length + 1,\n\t\t\texcluded.length,\n\t\t\t'should adjust the number of hidden legend labels after clicking to reveal one'\n\t\t)\n\t}\n\n\tfunction triggerMenuClickToHide(barchart) {\n\t\tconst node = barchart.Inner.dom.holder\n\t\t\t.selectAll('.bars-cell-grp')\n\t\t\t.filter(d => d.seriesId == 'not exposed')\n\t\t\t.node()\n\t\t\t.dispatchEvent(new Event('click', { bubbles: true }))\n\t\tbarchart.Inner.app.tip.d\n\t\t\t.selectAll('.sja_menuoption')\n\t\t\t.filter(d => d.label.includes('Hide'))\n\t\t\t.node()\n\t\t\t.click()\n\t}\n\n\tfunction testHiddenLegendDisplay(barchart) {\n\t\ttest.equal(\n\t\t\tbarchart.Inner.dom.legendDiv\n\t\t\t\t.selectAll('.sjpp-htmlLegend')\n\t\t\t\t.filter(function () {\n\t\t\t\t\treturn this.innerHTML.includes('not exposed')\n\t\t\t\t})\n\t\t\t\t.size(),\n\t\t\t1,\n\t\t\t'should hide a special numeric value by menu click'\n\t\t)\n\t}\n})\n\ntape('series visibility and order - condition', function (test) {\n\ttest.timeoutAfter(5000)\n\n\tconst conditionHiddenValues = { '1: Mild': 1 }\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tid: 'Arrhythmias',\n\t\t\t\t\t\tq: {\n\t\t\t\t\t\t\thiddenValues: conditionHiddenValues\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': testConditionHiddenValues\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction testConditionHiddenValues(barchart) {\n\t\tconst bar = barchart.Inner\n\t\tconst excluded = bar.settings.exclude.cols\n\t\t// exclude \"Unknown status\" and \"1: Mild\"\n\t\ttest.equal(excluded.length, 1, 'should have the correct number of hidden condition bars by q.hiddenValues')\n\t\tconst barOrder = [...bar.dom.holder.node().querySelectorAll('.bars-cell-grp')].sort(\n\t\t\t(a, b) => a.__data__.data[0].y - b.__data__.data[0].y\n\t\t)\n\t\ttest.deepEqual(\n\t\t\tbarOrder.map(d => d.__data__.seriesId),\n\t\t\t['0: No condition', '2: Moderate', '3: Severe', '4: Life-threatening'],\n\t\t\t'should render the bars in the expected order'\n\t\t)\n\t\tif (test._ok) bar.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('single barchart, categorical filter', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\ttermfilter: {\n\t\t\t\tfilter: {\n\t\t\t\t\ttype: 'tvslst',\n\t\t\t\t\tin: 1,\n\t\t\t\t\tjoin: '',\n\t\t\t\t\tlst: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'tvs',\n\t\t\t\t\t\t\ttvs: { term: { id: 'diaggrp' }, values: [{ key: 'Acute lymphoblastic leukemia' }] }\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tid: 'agedx'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tlet barDiv\n\tasync function runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\tbarDiv = barchart.Inner.dom.barDiv\n\t\tawait detectOne({ elem: barDiv.node(), selector: '.pp-bars-svg' })\n\t\ttestBarCount()\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n\n\tfunction testBarCount() {\n\t\t// no need to await, the bar order will tested after the initial postRender event\n\t\tconst minBars = 3\n\t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n\t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n\t\ttest.true(numBars > minBars, `should have more than ${minBars} bars`)\n\t\ttest.true(numOverlays == numBars, 'number of overlays should equal number of bars')\n\t}\n})\n\ntape('single barchart, categorical filter (patient-level)', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\ttermfilter: {\n\t\t\t\tfilter: {\n\t\t\t\t\ttype: 'tvslst',\n\t\t\t\t\tin: 1,\n\t\t\t\t\tjoin: '',\n\t\t\t\t\tlst: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'tvs',\n\t\t\t\t\t\t\ttvs: { term: { id: 'sex' }, values: [{ key: '2' }] }\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tid: 'agedx'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tlet barDiv\n\tasync function runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\tbarDiv = barchart.Inner.dom.barDiv\n\t\tawait detectOne({ elem: barDiv.node(), selector: '.pp-bars-svg' })\n\t\ttestBarCount()\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n\n\tfunction testBarCount() {\n\t\t// no need to await, the bar order will tested after the initial postRender event\n\t\tconst minBars = 3\n\t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n\t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n\t\ttest.true(numBars > minBars, `should have more than ${minBars} bars`)\n\t\ttest.true(numOverlays == numBars, 'number of overlays should equal number of bars')\n\t}\n})\n\ntape('single barchart (patient-level), compound filter (patient-level + sample-level)', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\ttermfilter: {\n\t\t\t\tfilter: {\n\t\t\t\t\ttype: 'tvslst',\n\t\t\t\t\tin: 1,\n\t\t\t\t\tjoin: 'and',\n\t\t\t\t\tlst: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'tvs',\n\t\t\t\t\t\t\ttvs: { term: { id: 'diaggrp' }, values: [{ key: 'Wilms tumor' }] }\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'tvs',\n\t\t\t\t\t\t\ttvs: { term: { id: 'sex' }, values: [{ key: '1' }] }\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tid: 'sex'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\ttest.equal(\n\t\t\tbarchart.Inner.dom.holder.node().querySelectorAll('.bars-cell-grp').length,\n\t\t\t1,\n\t\t\t'should show one bar series'\n\t\t)\n\t\ttest.equal(\n\t\t\tbarchart.Inner.dom.holder.node().querySelector('.bars-cell-grp').__data__.seriesId,\n\t\t\t'1',\n\t\t\t'should show one bar series that matches filter value'\n\t\t)\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\n// skipped until non-dictionary terms can be filtered by patient-level terms\ntape.skip('genevariant barchart, compound filter', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\ttermfilter: {\n\t\t\t\tfilter: {\n\t\t\t\t\ttype: 'tvslst',\n\t\t\t\t\tjoin: 'or',\n\t\t\t\t\tin: true,\n\t\t\t\t\tlst: [\n\t\t\t\t\t\t{ type: 'tvs', tvs: { term: { id: 'sex' }, values: [{ key: '1' }] } },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'tvs',\n\t\t\t\t\t\t\ttvs: { term: { gene: 'TP53', name: 'TP53', type: 'geneExpression' }, ranges: [{ start: 1, stop: 10 }] }\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\tplots: [{ chartType: 'summary', childType: 'barchart', term: getGeneVariantTw() }]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\ttest.equal(\n\t\t\tbarchart.Inner.dom.holder.node().querySelectorAll('.bars-cell-grp').length,\n\t\t\t2,\n\t\t\t'should show two bar series'\n\t\t)\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('single barchart, TP53 mutation dtTerm filter', function (test) {\n\ttest.timeoutAfter(3000)\n\trunpp({\n\t\tstate: {\n\t\t\ttermfilter: { filter: tp53dtTermFilter },\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: { id: 'agedx' }\n\t\t\t\t\t// since p53 mutation filter is applied at sample level, barchart term must be sample-level (agedx)\n\t\t\t\t\t// patient-level term (sex) won't show data\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\tfunction runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\ttest.equal(\n\t\t\tbarchart.Inner.dom.holder.node().querySelectorAll('.bars-cell-grp').length,\n\t\t\t2,\n\t\t\t'should show two bar series'\n\t\t)\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('click non-group bar to add filter', function (test) {\n\ttest.timeoutAfter(8000)\n\ttest.plan(3)\n\n\tconst termfilter = { filter: [] }\n\trunpp({\n\t\tstate: {\n\t\t\tnav: {\n\t\t\t\tactiveCohort: 0\n\t\t\t},\n\t\t\ttermfilter,\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: { id: 'agedx', term: termjson['agedx'], q: termjson['agedx'].bins.less },\n\t\t\t\t\tterm2: {\n\t\t\t\t\t\tid: 'Arrhythmias',\n\t\t\t\t\t\tterm: termjson['Arrhythmias'],\n\t\t\t\t\t\tq: {\n\t\t\t\t\t\t\thiddenValues: {\n\t\t\t\t\t\t\t\t'Unknown status': 1\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tlet barDiv\n\tasync function runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\tif (barDiv) return\n\t\tbarchart.Inner.bus.on('postRender.test', null)\n\t\tbarDiv = barchart.Inner.dom.barDiv\n\t\ttriggerBarClick(barchart)\n\t\tawait detectLst({ elem: barchart.Inner.app.tip.d.node(), selector: '.sja_menuoption', count: 1, matchAs: '>=' })\n\t\ttriggerMenuClick(barchart)\n\t\tawait detectLst({\n\t\t\telem: barchart.Inner.app.Inner.dom.holder.node(),\n\t\t\tselector: '.sja_filter_item',\n\t\t\tcount: 1,\n\t\t\tmatchAs: '>='\n\t\t})\n\t\ttestTermValues(barchart)\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n\n\tlet clickedData, currData\n\tfunction triggerBarClick(barchart) {\n\t\tconst elem = barDiv.node().querySelector('.bars-cell').querySelector('rect')\n\t\tclickedData = elem.__data__\n\t\tcurrData = barchart.Inner.currServerData\n\t\telem.dispatchEvent(new Event('click', { bubbles: true }))\n\t}\n\n\tfunction triggerMenuClick(barchart) {\n\t\tbarchart.Inner.app.tip.d\n\t\t\t.selectAll('.sja_menuoption')\n\t\t\t.filter(d => d.label.includes('filter'))\n\t\t\t.node()\n\t\t\t.dispatchEvent(new Event('click', { bubbles: true }))\n\t}\n\n\tfunction testTermValues(barchart) {\n\t\tconst config = barchart.Inner.state.config\n\t\tconst termfilter = barchart.Inner.app.Inner.state.termfilter\n\t\tconst filter = getFilterItemByTag(termfilter.filter, 'filterUiRoot')\n\t\ttest.equal(\n\t\t\tfilter && filter.lst.length,\n\t\t\t2,\n\t\t\t'should create two tvslst filters when a numeric term overlay is clicked'\n\t\t)\n\t\ttest.deepEqual(\n\t\t\tfilter.lst[0],\n\t\t\t{\n\t\t\t\ttype: 'tvs',\n\t\t\t\ttvs: {\n\t\t\t\t\tterm: config.term.term,\n\t\t\t\t\tranges: [currData.refs.bins[1].find(d => d.label == clickedData.seriesId)]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'should create a numeric term-value filter with a ranges key'\n\t\t)\n\t\t// config.term2.q is frozen\n\t\tconst q = JSON.parse(JSON.stringify(config.term2.q))\n\t\tconst t2ValKey =\n\t\t\tconfig.term2 &&\n\t\t\tconfig.term2.term.values &&\n\t\t\tObject.keys(config.term2.term.values).filter(key => config.term2.term.values[key].label == clickedData.dataId)[0]\n\t\ttest.deepEqual(\n\t\t\tfilter.lst[1],\n\t\t\t{\n\t\t\t\ttype: 'tvs',\n\t\t\t\ttvs: Object.assign(\n\t\t\t\t\t{\n\t\t\t\t\t\tterm: config.term2.term,\n\t\t\t\t\t\tvalues: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tkey: t2ValKey !== undefined ? t2ValKey : clickedData.dataId,\n\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\tclickedData.dataId in config.term2.term.values\n\t\t\t\t\t\t\t\t\t\t? config.term2.term.values[clickedData.dataId].label\n\t\t\t\t\t\t\t\t\t\t: clickedData.dataId\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\tq\n\t\t\t\t)\n\t\t\t},\n\t\t\t'should create a condition term-value filter with bar_by_*, value_by_*, and other expected keys'\n\t\t)\n\t}\n})\n\ntape('click custom categorical group bar to add filter', function (test) {\n\ttest.timeoutAfter(3000)\n\n\tconst termfilter = { filter: [] }\n\tconst tw = getCategoryGroupsetting()\n\trunpp({\n\t\tstate: {\n\t\t\ttermfilter,\n\t\t\tplots: [{ chartType: 'barchart', term: tw }]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tlet barDiv\n\tfunction runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\tif (barDiv) return\n\t\tbarchart.Inner.bus.on('postRender.test', null)\n\t\tbarDiv = barchart.Inner.dom.barDiv\n\t\thelpers\n\t\t\t.rideInit({ arg: barchart, bus: barchart, eventType: 'postRender.test' })\n\t\t\t.run(triggerBarClick, { wait: 600 })\n\t\t\t.use(triggerMenuClick, { wait: 500 })\n\t\t\t.to(testTermValues, { wait: 100 })\n\t\t\t.done(test)\n\t}\n\n\tlet clickedData\n\tfunction triggerBarClick(barchart) {\n\t\tconst elem = barDiv.node().querySelector('.bars-cell').querySelector('rect')\n\t\tclickedData = elem.__data__\n\t\telem.dispatchEvent(new Event('click', { bubbles: true }))\n\t}\n\n\tfunction triggerMenuClick(barchart) {\n\t\tbarchart.Inner.app.tip.d\n\t\t\t.selectAll('.sja_menuoption')\n\t\t\t.filter(d => d.label.includes('filter'))\n\t\t\t.node()\n\t\t\t.click() //dispatchEvent(new Event('click', { bubbles: true }))\n\t}\n\n\tfunction testTermValues(barchart) {\n\t\tconst config = barchart.Inner.state.config\n\t\tconst currData = barchart.Inner.currServerData\n\t\tconst termfilter = barchart.Inner.app.Inner.state.termfilter\n\t\tconst filter = getFilterItemByTag(termfilter.filter, 'filterUiRoot')\n\t\ttest.equal(\n\t\t\tfilter && filter.lst.length,\n\t\t\t1,\n\t\t\t'should create one tvslst filters when a numeric term overlay is clicked'\n\t\t)\n\t\ttest.deepEqual(\n\t\t\tfilter.lst[0],\n\t\t\t{\n\t\t\t\ttype: 'tvs',\n\t\t\t\ttvs: {\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tname: 'group',\n\t\t\t\t\t\ttype: 'samplelst',\n\t\t\t\t\t\tvalues: {\n\t\t\t\t\t\t\tGroup: {\n\t\t\t\t\t\t\t\tkey: 'Group',\n\t\t\t\t\t\t\t\tlabel: 'Group',\n\t\t\t\t\t\t\t\tlist: [\n\t\t\t\t\t\t\t\t\t{ sampleId: '41' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '42' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '43' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '44' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '45' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '46' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '47' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '48' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '49' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '50' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '51' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '52' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '53' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '54' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '55' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '56' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '57' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '58' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '59' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '60' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '61' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '63' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '64' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '65' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '66' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '67' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '68' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '69' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '70' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '71' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '72' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '73' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '74' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '75' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '76' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '77' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '78' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '80' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '93' }\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t'Not in Group': {\n\t\t\t\t\t\t\t\tkey: 'Not in Group',\n\t\t\t\t\t\t\t\tlabel: 'Not in Group',\n\t\t\t\t\t\t\t\tcolor: '#aaa',\n\t\t\t\t\t\t\t\tlist: [\n\t\t\t\t\t\t\t\t\t{ sampleId: '41' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '42' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '43' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '44' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '45' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '46' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '47' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '48' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '49' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '50' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '51' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '52' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '53' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '54' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '55' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '56' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '57' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '58' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '59' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '60' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '61' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '63' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '64' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '65' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '66' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '67' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '68' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '69' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '70' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '71' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '72' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '73' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '74' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '75' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '76' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '77' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '78' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '80' },\n\t\t\t\t\t\t\t\t\t{ sampleId: '93' }\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tin: false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tnoEdit: true\n\t\t\t},\n\t\t\t'should create a customset filter with the clicked group.values array'\n\t\t)\n\t}\n})\n\n/* bar_by_children handling has been inactivated\ntape.skip('click custom subcondition group bar to add filter', function(test) {\n\ttest.timeoutAfter(3000)\n\n\tconst termfilter = { filter: [] }\n\tconst customset = {\n\t\tname: 'A vs. B vs. C',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tname: 'Test A',\n\t\t\t\ttype: 'values',\n\t\t\t\tvalues: [\n\t\t\t\t\t{\n\t\t\t\t\t\tkey: 'Sinus tachycardia',\n\t\t\t\t\t\tlabel: 'Sinus tachycardia'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tkey: 'Sinus bradycardia',\n\t\t\t\t\t\tlabel: 'Sinus bradycardia'\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Test B',\n\t\t\t\ttype: 'values',\n\t\t\t\tvalues: [\n\t\t\t\t\t{\n\t\t\t\t\t\tkey: 'Conduction abnormalities',\n\t\t\t\t\t\tlabel: 'Conduction abnormalities'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tkey: 'Atrioventricular heart block',\n\t\t\t\t\t\tlabel: 'Atrioventricular heart block'\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Test C',\n\t\t\t\ttype: 'values',\n\t\t\t\tvalues: [\n\t\t\t\t\t{\n\t\t\t\t\t\tkey: 'Prolonged QT interval',\n\t\t\t\t\t\tlabel: 'Prolonged QT interval'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tkey: 'Cardiac dysrhythmia',\n\t\t\t\t\t\tlabel: 'Cardiac dysrhythmia'\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t}\n\trunpp({\n\t\tstate: {\n\t\t\ttermfilter,\n\t\t\tplots: [{\n\t\t\t\tchartType: 'barchart',\n\t\t\t\tterm: {\n\t\t\t\t\tid: 'Arrhythmias',\n\t\t\t\t\tterm: termjson['Arrhythmias'],\n\t\t\t\t\tq: {\n\t\t\t\t\t\tbar_by_children: true,\n\t\t\t\t\t\tvalue_by_max_grade: 1,\n\t\t\t\t\t\tgroupsetting: {\n\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\tinuse: true,\n\t\t\t\t\t\t\t//predefined_groupset_idx: INT,\n\t\t\t\t\t\t\tcustomset\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tlet barDiv\n\tfunction runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\tif (barDiv) return\n\t\tbarchart.Inner.bus.on('postRender.test', null)\n\t\tbarDiv = barchart.Inner.dom.barDiv\n\t\thelpers\n\t\t\t.rideInit({ arg: barchart, bus: barchart, eventType: 'postRender.test' })\n\t\t\t.run(triggerBarClick, { wait: 600 })\n\t\t\t.use(triggerMenuClick, { wait: 500 })\n\t\t\t.to(testTermValues, { wait: 100 })\n\t\t\t.done(test)\n\t}\n\n\tlet clickedData\n\tfunction triggerBarClick(barchart) {\n\t\tconst elem = barDiv\n\t\t\t.selectAll('.bars-cell')\n\t\t\t.selectAll('rect')\n\t\t\t.filter(d => d.colId == 'Test A')\n\t\t\t.node()\n\t\tclickedData = elem.__data__\n\t\telem.dispatchEvent(new Event('click', { bubbles: true }))\n\t}\n\n\tfunction triggerMenuClick(barchart) {\n\t\tbarchart.Inner.app.tip.d\n\t\t\t.selectAll('.sja_menuoption')\n\t\t\t.filter(d => d.label.includes('filter'))\n\t\t\t.node()\n\t\t\t.click()\n\t}\n\n\tfunction testTermValues(barchart) {\n\t\tconst config = barchart.Inner.state.config\n\t\tconst currData = barchart.Inner.currServerData\n\t\tconst termfilter = barchart.Inner.app.Inner.state.termfilter\n\t\tconst filter = getFilterItemByTag(termfilter.filter, 'filterUiRoot')\n\t\ttest.equal(\n\t\t\tfilter && filter.lst.length,\n\t\t\t1,\n\t\t\t'should create one tvslst filters when a numeric term overlay is clicked'\n\t\t)\n\t\ttest.deepEqual(\n\t\t\tfilter.lst[0],\n\t\t\t{\n\t\t\t\ttype: 'tvs',\n\t\t\t\ttvs: {\n\t\t\t\t\tterm: config.term.term,\n\t\t\t\t\tvalues: customset.groups[0].values,\n\t\t\t\t\tgroupset_label: customset.groups[0].name,\n\t\t\t\t\tbar_by_children: true,\n\t\t\t\t\tvalue_by_max_grade: 1\n\t\t\t\t}\n\t\t\t},\n\t\t\t'should create a customset filter with the clicked group.values array'\n\t\t)\n\t}\n})\n*/\n\ntape('numeric exclude range', function (test) {\n\ttest.timeoutAfter(3000)\n\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: { id: 'aaclassic_5', term: termjson['aaclassic_5'] },\n\t\t\t\t\tterm2: { id: 'sex' }\n\t\t\t\t}\n\t\t\t],\n\t\t\ttermfilter: {\n\t\t\t\tfilter: {\n\t\t\t\t\ttype: 'tvslst',\n\t\t\t\t\tjoin: 'and',\n\t\t\t\t\tin: true,\n\t\t\t\t\tlst: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'tvs',\n\t\t\t\t\t\t\ttag: 'cohortFilter',\n\t\t\t\t\t\t\ttvs: {\n\t\t\t\t\t\t\t\tterm: { id: 'subcohort', type: 'multivalue' },\n\t\t\t\t\t\t\t\tvalues: [\n\t\t\t\t\t\t\t\t\t{ key: 'ABC', label: 'ABC' }\n\t\t\t\t\t\t\t\t\t//{key:'XYZ',label:'XYZ'},\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'tvslst',\n\t\t\t\t\t\t\ttag: 'filterUiRoot',\n\t\t\t\t\t\t\tjoin: '',\n\t\t\t\t\t\t\tin: true,\n\t\t\t\t\t\t\tlst: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: 'tvs',\n\t\t\t\t\t\t\t\t\ttvs: {\n\t\t\t\t\t\t\t\t\t\tterm: termjson['aaclassic_5'],\n\t\t\t\t\t\t\t\t\t\tranges: [{ start: 10000, stopunbounded: true, startinclusive: false, stopinclusive: true }],\n\t\t\t\t\t\t\t\t\t\tisnot: true\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\tnav: {\n\t\t\t\theader_mode: 'with_tabs'\n\t\t\t},\n\t\t\tactiveCohort: -1\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': testBarCount\n\t\t\t}\n\t\t}\n\t})\n\n\tfunction testBarCount(barchart) {\n\t\tconst barDiv = barchart.Inner.dom.barDiv\n\t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n\t\ttest.equal(numBars, 8, 'should have 8 bars')\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\n// tape.skip('numeric filter - only special value', function (test) {\n// \ttest.timeoutAfter(5000)\n\n// \trunpp({\n// \t\tstate: {\n// \t\t\tplots: [\n// \t\t\t\t{\n// \t\t\t\t\tchartType: 'barchart',\n// \t\t\t\t\tterm: { id: 'aaclassic_5' }\n// \t\t\t\t}\n// \t\t\t],\n// \t\t\ttermfilter: {\n// \t\t\t\tfilter: {\n// \t\t\t\t\ttype: 'tvslst',\n// \t\t\t\t\tin: 1,\n// \t\t\t\t\tjoin: '',\n// \t\t\t\t\tlst: [\n// \t\t\t\t\t\t{\n// \t\t\t\t\t\t\ttype: 'tvs',\n// \t\t\t\t\t\t\ttvs: {\n// \t\t\t\t\t\t\t\tterm: termjson['aaclassic_5'],\n// \t\t\t\t\t\t\t\tranges: [{ value: -8888, label: 'test' }]\n// \t\t\t\t\t\t\t}\n// \t\t\t\t\t\t}\n// \t\t\t\t\t]\n// \t\t\t\t}\n// \t\t\t}\n// \t\t},\n// \t\tbarchart: {\n// \t\t\tcallbacks: {\n// \t\t\t\t'postRender.test': runNumericValueTests\n// \t\t\t}\n// \t\t}\n// \t})\n\n// \tfunction runNumericValueTests(barchart) {\n// \t\thelpers\n// \t\t\t.rideInit({ arg: barchart, bus: barchart, eventType: 'postRender.test' })\n// \t\t\t//.run(testNoBar, { wait: 300 })\n// \t\t\t//.use(triggerHiddenLegendClick, { wait: 300 })\n// \t\t\t.run(testHasBar, { wait: 300 })\n// \t\t\t.done(test)\n// \t}\n\n// \tfunction testNoBar(barchart) {\n// \t\tconst barDiv = barchart.Inner.dom.barDiv\n// \t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n// \t\ttest.equal(numBars, 0, 'should have 0 bar')\n// \t}\n\n// \tfunction triggerHiddenLegendClick(barchart) {\n// \t\tbarchart.Inner.dom.legendDiv.node().querySelector('.legend-row').click()\n// \t}\n\n// \tfunction testHasBar(barchart) {\n// \t\tconst barDiv = barchart.Inner.dom.barDiv\n// \t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n// \t\ttest.equal(\n// \t\t\tnumBars,\n// \t\t\t1,\n// \t\t\t'should have 1 bar, forced to be visible on first render to avoid confusion with a blank barchart'\n// \t\t)\n// \t}\n// })\n\n// tape.skip('custom vocab: categorical terms with numeric filter', test => {\n// \ttest.timeoutAfter(3000)\n\n// \tconst custom_runpp = helpers.getRunPp('termdb', {\n// \t\tdebug: 1,\n// \t\tstate: {\n// \t\t\tnav: {\n// \t\t\t\theader_mode: 'search_only'\n// \t\t\t},\n// \t\t\tvocab: vocabData.getExample()\n// \t\t}\n// \t})\n\n// \tcustom_runpp({\n// \t\tstate: {\n// \t\t\ttermfilter: {\n// \t\t\t\tfilter: {\n// \t\t\t\t\ttype: 'tvslst',\n// \t\t\t\t\tjoin: '',\n// \t\t\t\t\tlst: [\n// \t\t\t\t\t\t{\n// \t\t\t\t\t\t\ttype: 'tvs',\n// \t\t\t\t\t\t\ttvs: {\n// \t\t\t\t\t\t\t\tterm: vocabData.terms.find(t => t.id == 'd'),\n// \t\t\t\t\t\t\t\tranges: [{ start: 0.1, startinclusive: false, stopunbounded: true }]\n// \t\t\t\t\t\t\t}\n// \t\t\t\t\t\t}\n// \t\t\t\t\t]\n// \t\t\t\t}\n// \t\t\t},\n// \t\t\tplots: [\n// \t\t\t\t{\n// \t\t\t\t\tchartType: 'barchart',\n// \t\t\t\t\tterm: {\n// \t\t\t\t\t\tterm: vocabData.terms.find(t => t.id == 'c')\n// \t\t\t\t\t}\n// \t\t\t\t}\n// \t\t\t]\n// \t\t},\n// \t\tbarchart: {\n// \t\t\tcallbacks: {\n// \t\t\t\t'postRender.test': runTests\n// \t\t\t}\n// \t\t}\n// \t})\n\n// \tfunction runTests(barchart) {\n// \t\tbarchart.on('postRender.test', null)\n// \t\ttestBarCount(barchart)\n// \t\tif (test._ok) barchart.Inner.app.destroy()\n// \t\ttest.end()\n// \t}\n\n// \tlet barDiv\n// \tfunction testBarCount(barchart) {\n// \t\tbarDiv = barchart.Inner.dom.barDiv\n// \t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n// \t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n// \t\ttest.equal(numBars, 2, 'should have 2 bars')\n// \t\ttest.equal(numBars, numOverlays, 'should have equal numbers of bars and overlays')\n// \t}\n// })\n\n// tape.skip('custom vocab: numeric terms with categorical filter', test => {\n// \ttest.timeoutAfter(3000)\n// \tconst vocab = vocabData.getExample()\n// \tconst custom_runpp = helpers.getRunPp('termdb', {\n// \t\tdebug: 1,\n// \t\tstate: {\n// \t\t\tnav: {\n// \t\t\t\theader_mode: 'search_only'\n// \t\t\t},\n// \t\t\tvocab\n// \t\t}\n// \t})\n\n// \tconst dterm = vocab.terms.find(t => t.id == 'd')\n// \tcustom_runpp({\n// \t\tstate: {\n// \t\t\ttermfilter: {\n// \t\t\t\tfilter: {\n// \t\t\t\t\ttype: 'tvslst',\n// \t\t\t\t\tjoin: '',\n// \t\t\t\t\tlst: [\n// \t\t\t\t\t\t{\n// \t\t\t\t\t\t\ttype: 'tvs',\n// \t\t\t\t\t\t\ttvs: {\n// \t\t\t\t\t\t\t\tterm: vocab.terms.find(t => t.id == 'c'),\n// \t\t\t\t\t\t\t\tvalues: [{ key: 1 }]\n// \t\t\t\t\t\t\t}\n// \t\t\t\t\t\t}\n// \t\t\t\t\t]\n// \t\t\t\t}\n// \t\t\t},\n// \t\t\tplots: [\n// \t\t\t\t{\n// \t\t\t\t\tchartType: 'barchart',\n// \t\t\t\t\tterm: {\n// \t\t\t\t\t\tterm: dterm,\n// \t\t\t\t\t\tq: dterm.bins.default\n// \t\t\t\t\t}\n// \t\t\t\t}\n// \t\t\t]\n// \t\t},\n// \t\tbarchart: {\n// \t\t\tcallbacks: {\n// \t\t\t\t'postRender.test': runTests\n// \t\t\t}\n// \t\t}\n// \t})\n\n// \tfunction runTests(barchart) {\n// \t\tbarchart.on('postRender.test', null)\n// \t\ttestBarCount(barchart)\n// \t\tif (test._ok) barchart.Inner.app.destroy()\n// \t\ttest.end()\n// \t}\n\n// \tlet barDiv\n// \tfunction testBarCount(barchart) {\n// \t\tbarDiv = barchart.Inner.dom.barDiv\n// \t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n// \t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n// \t\ttest.equal(numBars, 5, 'should have 5 bars')\n// \t\ttest.equal(numBars, numOverlays, 'should have equal numbers of bars and overlays')\n// \t}\n// })\n\ntape('max number of bins: exceeded', test => {\n\ttest.timeoutAfter(3000)\n\n\trunpp({\n\t\tstate: {\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tterm: termjson['aaclassic_5'],\n\t\t\t\t\t\tq: {\n\t\t\t\t\t\t\ttype: 'regular-bin',\n\t\t\t\t\t\t\tbin_size: 1000,\n\t\t\t\t\t\t\tstopinclusive: true,\n\t\t\t\t\t\t\tfirst_bin: { startunbounded: true, stop: 1, stopinclusive: true, bin: 'first' },\n\t\t\t\t\t\t\tnumDecimals: 1,\n\t\t\t\t\t\t\tlast_bin: { start: 30000, bin: 'last', stopunbounded: true },\n\t\t\t\t\t\t\tstartinclusive: false\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tlet barDiv\n\tasync function runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\tbarDiv = barchart.Inner.dom.barDiv\n\t\ttestBarCount(barchart)\n\t\ttriggerExceedMaxBin(barchart)\n\t\tawait testExceedMaxBin(barchart)\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n\n\tfunction testBarCount(barchart) {\n\t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n\t\ttest.equal(numBars, 22, 'should have 22 age bars')\n\t}\n\n\tfunction triggerExceedMaxBin(barchart) {\n\t\tbarchart.Inner.app.dispatch({\n\t\t\ttype: 'plot_edit',\n\t\t\tid: 'aaclassic_5',\n\t\t\tconfig: {\n\t\t\t\tterm: {\n\t\t\t\t\tid: 'aaclassic_5',\n\t\t\t\t\tterm: barchart.Inner.config.term.term,\n\t\t\t\t\tq: {\n\t\t\t\t\t\ttype: 'regular-bin',\n\t\t\t\t\t\tbin_size: 100,\n\t\t\t\t\t\tstopinclusive: true,\n\t\t\t\t\t\tfirst_bin: { startunbounded: true, stop: 1, stopinclusive: true, bin: 'first' },\n\t\t\t\t\t\tnumDecimals: 1,\n\t\t\t\t\t\tlast_bin: { start: 30000, bin: 'last', stopunbounded: true },\n\t\t\t\t\t\tstartinclusive: false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tasync function testExceedMaxBin(barchart) {\n\t\t//Fix for removing sleep()\n\t\tconst numBars = await detectLst({ elem: barDiv.node(), selector: '.bars-cell-grp', count: 22, matchAs: '>=' })\n\t\ttest.equal(numBars.length, 22, 'should still have 22 age bars and not re-render on error')\n\t\tconst errorbar = await detectOne({ elem: barchart.Inner.app.Inner.dom.holder.node(), selector: '.sja_errorbar' })\n\t\ttest.true(errorbar?.innerText.includes('max_num_bins_reached'), 'should show a max number of bins error')\n\t}\n})\n\ntape('minimum sample size', test => {\n\ttest.timeoutAfter(3000)\n\tconst runpp = helpers.getRunPp('mass', {\n\t\tstate: {\n\t\t\tvocab: {\n\t\t\t\tdslabel: 'ProtectedTest',\n\t\t\t\tgenome: 'hg38-test'\n\t\t\t}\n\t\t},\n\t\tdebug: 1\n\t})\n\n\trunpp({\n\t\tstate: {\n\t\t\ttermfilter: {\n\t\t\t\tfilter: {\n\t\t\t\t\ttype: 'tvslst',\n\t\t\t\t\tjoin: 'and',\n\t\t\t\t\tlst: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'tvs',\n\t\t\t\t\t\t\ttvs: {\n\t\t\t\t\t\t\t\tterm: termjson.agedx,\n\t\t\t\t\t\t\t\tranges: [{ start: 1, startinclusive: true, stop: 3, stopinclusive: true }]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'tvs',\n\t\t\t\t\t\t\ttvs: {\n\t\t\t\t\t\t\t\tterm: termjson.sex,\n\t\t\t\t\t\t\t\tvalues: [{ key: '1' }]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\tnav: {\n\t\t\t\tactiveTab: 1\n\t\t\t},\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tterm: termjson['diaggrp']\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests,\n\t\t\t\terror: runTests\n\t\t\t}\n\t\t},\n\t\tdebug: 1\n\t})\n\n\tlet barDiv, errDiv\n\tasync function runTests(barchart) {\n\t\tbarchart.on('postRender.test', null).on('error', null)\n\t\tbarDiv = barchart.Inner.dom.barDiv\n\t\terrDiv = barchart.Inner.app.Inner.components.plots['diaggrp'].Inner.dom.errdiv\n\t\ttestBarCount(0, 'with stricter filter')\n\t\ttest.true(errDiv.text().includes('has less than 10 samples'), 'should display the expected error message')\n\t\ttest.notEqual(errDiv.style('display'), 'none', 'should have a visible red error div')\n\t\tawait triggerClearedError(barchart)\n\t}\n\n\tfunction testBarCount(expected, testcase) {\n\t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n\t\ttest.equal(numBars, expected, `should have ${expected} bars ${testcase}`)\n\t}\n\n\tasync function triggerClearedError(barchart) {\n\t\tbarchart.on('postRender.test', testClearedError).on('error', testClearedError)\n\t\tawait barchart.Inner.app.dispatch({\n\t\t\ttype: 'filter_replace',\n\t\t\tfilter: {\n\t\t\t\ttype: 'tvslst',\n\t\t\t\tjoin: '',\n\t\t\t\tin: true,\n\t\t\t\tlst: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'tvs',\n\t\t\t\t\t\ttvs: {\n\t\t\t\t\t\t\tterm: termjson.agedx,\n\t\t\t\t\t\t\tranges: [{ start: 1, startinclusive: true, stop: 3, stopinclusive: true }]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t})\n\t}\n\n\tfunction testClearedError(barchart) {\n\t\tbarchart.on('postRender.test', null).on('error', null)\n\t\ttestBarCount(3, 'with looser filter')\n\t\ttest.equal(errDiv.text(), '', 'should have an empty error message')\n\t\ttest.equal(errDiv.style('display'), 'none', 'should have a hidden red error div')\n\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\ntape('no visible series data, no overlay', function (test) {\n\ttest.timeoutAfter(3000)\n\n\trunpp({\n\t\tstate: {\n\t\t\tnav: {\n\t\t\t\theader_mode: 'search_only'\n\t\t\t},\n\t\t\tplots: [\n\t\t\t\t{\n\t\t\t\t\tchartType: 'barchart',\n\t\t\t\t\tterm: {\n\t\t\t\t\t\tid: 'cisplateq_5'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tbarchart: {\n\t\t\tcallbacks: {\n\t\t\t\t'postRender.test': runTests\n\t\t\t}\n\t\t}\n\t})\n\n\tasync function runTests(barchart) {\n\t\tbarchart.on('postRender.test', null)\n\t\tconst barLoc = Locator.init(barchart.Inner.dom.holder)\n\t\t//const bars = await barDiv.shows('.bars-cell-grp').length()\n\t\tconst banner = await barLoc.shows('[data-testid=\"sjpp-barchart-banner\"]').get()\n\n\t\ttest.equal(banner.length, 1, 'should show the banner')\n\n\t\ttest.true(\n\t\t\tbanner[0]?.innerText.includes('No visible barchart data '),\n\t\t\t'should show a banner for no visible data to render'\n\t\t)\n\n\t\ttest.equal(await barLoc.shows('.sjpp-hidden-legend-item').length(), 1, 'should show a legend entry')\n\n\t\tif (test._ok) barchart.Inner.app.destroy()\n\t\ttest.end()\n\t}\n})\n\n// tape.skip('all hidden + with overlay, legend click', function (test) {\n// \ttest.timeoutAfter(9000)\n\n// \trunpp({\n// \t\tstate: {\n// \t\t\tnav: {\n// \t\t\t\theader_mode: 'search_only'\n// \t\t\t},\n// \t\t\tplots: [\n// \t\t\t\t{\n// \t\t\t\t\tchartType: 'barchart',\n// \t\t\t\t\tterm: {\n// \t\t\t\t\t\tid: 'cisplateq_5'\n// \t\t\t\t\t},\n// \t\t\t\t\tterm2: {\n// \t\t\t\t\t\tid: 'sex'\n// \t\t\t\t\t}\n// \t\t\t\t}\n// \t\t\t]\n// \t\t},\n// \t\tbarchart: {\n// \t\t\tcallbacks: {\n// \t\t\t\t'postRender.test': runTests\n// \t\t\t}\n// \t\t}\n// \t})\n\n// \tfunction runTests(barchart) {\n// \t\tbarchart.on('postRender.test', null)\n\n// \t\thelpers\n// \t\t\t.rideInit({ arg: barchart, bus: barchart, eventType: 'postRender.test' })\n// \t\t\t.run(testBarCount)\n// \t\t\t.run(triggerBarClick)\n// \t\t\t.use(triggerMenuClick, { wait: 1100 })\n// \t\t\t.to(testRemovedOverlayByMenu, { wait: 100 })\n// \t\t\t.use(triggerUnhideOverlay, { wait: 1100 })\n// \t\t\t.to(testUnhiddenOverlay, { wait: 100 })\n// \t\t\t.use(triggerOverlayHideByLegendClick, { wait: 1000 })\n// \t\t\t.to(testhiddenOverlayByLegendClick, { wait: 100 })\n// \t\t\t.done(test)\n// \t}\n\n// \tlet barDiv\n// \tfunction testBarCount(barchart) {\n// \t\tbarDiv = barchart.Inner.dom.barDiv\n// \t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n// \t\ttest.equal(\n// \t\t\tnumBars,\n// \t\t\t1,\n// \t\t\t'should have 1 visible bar on first render when Object.keys(q.hiddenValues).length > chart.serieses.length'\n// \t\t)\n// \t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n// \t\ttest.equal(\n// \t\t\tnumOverlays,\n// \t\t\t2,\n// \t\t\t'should have 2 visible overlays on first render when Object.keys(q.hiddenValues).length > chart.serieses.length'\n// \t\t)\n// \t\ttest.equal(\n// \t\t\tbarchart.Inner.dom.banner.style('display'),\n// \t\t\t'none',\n// \t\t\t'should hide the banner when at least one chart is visible'\n// \t\t)\n// \t}\n\n// \tlet clickedData\n// \tfunction triggerBarClick(barchart) {\n// \t\tconst elem = barDiv.node().querySelector('.bars-cell').querySelector('rect')\n// \t\telem.dispatchEvent(new Event('click', { bubbles: true }))\n// \t}\n\n// \tfunction triggerMenuClick(barchart) {\n// \t\tbarchart.Inner.app.tip.d\n// \t\t\t.selectAll('.sja_menuoption')\n// \t\t\t.filter(d => d.label.includes('Hide \"Female\"'))\n// \t\t\t.node()\n// \t\t\t.dispatchEvent(new Event('click', { bubbles: true }))\n// \t}\n\n// \tfunction testRemovedOverlayByMenu(barchart) {\n// \t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n// \t\ttest.equal(numBars, 1, 'should have 1 visible bar after hiding an overlay')\n// \t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n// \t\ttest.equal(numOverlays, 1, 'should have 1 visible overlay left after hiding an overlay')\n// \t}\n\n// \tfunction triggerUnhideOverlay(barchart) {\n// \t\tbarchart.Inner.dom.legendDiv\n// \t\t\t.selectAll('.legend-row')\n// \t\t\t.filter(d => d.dataId == '2')\n// \t\t\t.node()\n// \t\t\t.firstChild.dispatchEvent(new Event('click', { bubbles: true }))\n// \t}\n\n// \tfunction testUnhiddenOverlay(barchart) {\n// \t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n// \t\ttest.equal(numBars, 1, 'should have 1 visible bar after unhiding an overlay')\n// \t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n// \t\ttest.equal(numOverlays, 2, 'should have 2 visible overlays after unhiding an overlay')\n// \t}\n\n// \tfunction triggerOverlayHideByLegendClick(barchart) {\n// \t\tbarchart.Inner.dom.legendDiv\n// \t\t\t.select('.legend-row')\n// \t\t\t.node()\n// \t\t\t.firstChild.dispatchEvent(new Event('click', { bubbles: true }))\n// \t}\n\n// \tfunction testhiddenOverlayByLegendClick(barchart) {\n// \t\tconst numBars = barDiv.selectAll('.bars-cell-grp').size()\n// \t\ttest.equal(numBars, 1, 'should have 1 visible bar after hiding an overlay by legend click')\n// \t\tconst numOverlays = barDiv.selectAll('.bars-cell').size()\n// \t\ttest.equal(numOverlays, 1, 'should have 1 visible overlays after hiding an overlay by legend click')\n// \t}\n// })\n\n// tape.skip('unhidden chart and legend', test => {\n// \ttest.timeoutAfter(8000)\n\n// \trunpp({\n// \t\tstate: {\n// \t\t\tnav: {\n// \t\t\t\theader_mode: 'search_only'\n// \t\t\t},\n// \t\t\tplots: [\n// \t\t\t\t{\n// \t\t\t\t\tchartType: 'barchart',\n// \t\t\t\t\tterm: {\n// \t\t\t\t\t\tterm: termjson['aaclassic_5'],\n// \t\t\t\t\t\tq: {\n// \t\t\t\t\t\t\ttype: 'regular-bin',\n// \t\t\t\t\t\t\tbin_size: 10000,\n// \t\t\t\t\t\t\tstopinclusive: true,\n// \t\t\t\t\t\t\tfirst_bin: { startunbounded: true, stop: 1, stopinclusive: true, bin: 'first' },\n// \t\t\t\t\t\t\tnumDecimals: 1,\n// \t\t\t\t\t\t\tlast_bin: { start: 30000, bin: 'last', stopunbounded: true },\n// \t\t\t\t\t\t\tstartinclusive: false\n// \t\t\t\t\t\t}\n// \t\t\t\t\t}\n// \t\t\t\t}\n// \t\t\t]\n// \t\t},\n// \t\tbarchart: {\n// \t\t\tcallbacks: {\n// \t\t\t\t'postRender.test': runTests\n// \t\t\t}\n// \t\t}\n// \t})\n\n// \tasync function runTests(barchart) {\n// \t\thelpers\n// \t\t\t.rideInit({ arg: barchart, bus: barchart, eventType: 'postRender.test', preserve: true })\n// \t\t\t.run(testVisibleChart)\n// \t\t\t.run(triggerHideChart, 300)\n// \t\t\t.run(testHiddenChart, 300)\n// \t\t\t.run(triggerShowChart, 300)\n// \t\t\t.run(testReshownChart, 300)\n// \t\t\t.done(test)\n// \t}\n\n// \tfunction testVisibleChart(barchart) {\n// \t\ttest.notEqual(\n// \t\t\tbarchart.Inner.dom.holder.node().style.display,\n// \t\t\t'none',\n// \t\t\t'should start with both visible and not overlapping'\n// \t\t)\n// \t}\n\n// \tfunction triggerHideChart(barchart) {\n// \t\tbarchart.Inner.app.dispatch({\n// \t\t\ttype: 'plot_hide',\n// \t\t\tid: 'aaclassic_5'\n// \t\t})\n// \t}\n\n// \tfunction testHiddenChart(barchart) {\n// \t\ttest.equal(barchart.Inner.dom.holder.node().style.display, 'none', 'should trigger hiding both chart and legend')\n// \t}\n\n// \tfunction triggerShowChart(barchart) {\n// \t\t// issue to fix: clicking the view button will cause the stat table\n// \t\t// to overlap from the bottom of the chart\n// \t\tbarchart.Inner.dom.holder.node().parentNode.querySelector('.termview').click()\n\n// \t\t// same result when using dispatch\n// \t\t/*barchart.Inner.app.dispatch({\n// \t\t\ttype: 'plot_show',\n// \t\t\tid: 'aaclassic_5'\n// \t\t})*/\n// \t}\n\n// \tfunction testReshownChart(barchart) {\n// \t\ttest.true(\n// \t\t\t+barchart.Inner.dom.holder.select('svg').property('height').baseVal.value > 100,\n// \t\t\t'should not have a small barchart svg when reshowing a barchart, not overlap with legend'\n// \t\t)\n// \t}\n// })\n\n// tape.skip('customized bins', test => {\n// \ttest.timeoutAfter(3000)\n\n// \trunpp({\n// \t\tstate: {\n// \t\t\tnav: {\n// \t\t\t\theader_mode: 'search_only'\n// \t\t\t},\n// \t\t\tplots: [\n// \t\t\t\t{\n// \t\t\t\t\tchartType: 'barchart',\n// \t\t\t\t\tterm: {\n// \t\t\t\t\t\tterm: termjson['aaclassic_5']\n// \t\t\t\t\t}\n// \t\t\t\t}\n// \t\t\t]\n// \t\t},\n// \t\tbarchart: {\n// \t\t\tcallbacks: {\n// \t\t\t\t'postRender.test': runTests\n// \t\t\t}\n// \t\t}\n// \t})\n\n// \tasync function runTests(barchart) {\n// \t\thelpers\n// \t\t\t.rideInit({ arg: barchart, bus: barchart, eventType: 'postRender.test', preserve: true })\n// \t\t\t.run(triggerCustomBins, 400)\n// \t\t\t.run(triggerSearch, 300)\n// \t\t\t// .run(testReversion, 1000)\n// \t\t\t.done(test)\n// \t}\n\n// \tconst q1 = {\n// \t\ttype: 'regular-bin',\n// \t\tbin_size: 10000,\n// \t\tstopinclusive: true,\n// \t\tfirst_bin: { startunbounded: true, stop: 1, stopinclusive: true, bin: 'first' },\n// \t\tnumDecimals: 1,\n// \t\tlast_bin: { start: 30000, bin: 'last', stopunbounded: true },\n// \t\tstartinclusive: false\n// \t}\n\n// \tfunction triggerCustomBins(barchart) {\n// \t\tbarchart.Inner.app.dispatch({\n// \t\t\ttype: 'plot_edit',\n// \t\t\tid: 'aaclassic_5',\n// \t\t\tconfig: {\n// \t\t\t\tterm: {\n// \t\t\t\t\tid: 'aaclassic_5',\n// \t\t\t\t\tterm: barchart.Inner.config.term.term,\n// \t\t\t\t\tq: q1\n// \t\t\t\t}\n// \t\t\t}\n// \t\t})\n// \t}\n\n// \tasync function triggerSearch(barchart) {\n// \t\tconst dom = barchart.Inner.app.getComponents('nav.search').Inner.dom\n// \t\tdom.input.property('value', 'Cumulative Alkylating Agents (Cyclophosphamide Equivalent Dose)')\n// \t\tdom.input.on('input')()\n// \t\tawait sleep(500)\n// \t\tdom.holder.select('.sja_menuoption').node().dispatchEvent(new Event('click'))\n// \t}\n\n// \tfunction testReversion(barchart) {\n// \t\ttest.deepEqual(barchart.Inner.config.term.q, q1, 'should not be reverted when using a searched term')\n// \t}\n// })\n\n// to make or update following config, on the browser build/modify the tw or filter, apply to chart, at Session > Share > Open link, open the session file and locate the record and copy it here:\n// for geneVariant tw, search for string \"geneVariant\"\n// for filter, search for \"termfilter\"\nconst tp53dtTermFilter = {\n\ttype: 'tvslst',\n\tin: true,\n\tjoin: '',\n\tlst: [\n\t\t{\n\t\t\ttype: 'tvs',\n\t\t\ttvs: {\n\t\t\t\tterm: {\n\t\t\t\t\tid: 'snvindel_somatic',\n\t\t\t\t\tquery: 'snvindel',\n\t\t\t\t\tname: 'SNV/indel (somatic)',\n\t\t\t\t\tparent_id: null,\n\t\t\t\t\tisleaf: true,\n\t\t\t\t\ttype: 'dtsnvindel',\n\t\t\t\t\tdt: 1,\n\t\t\t\t\tvalues: {\n\t\t\t\t\t\tM: { label: 'MISSENSE' },\n\t\t\t\t\t\tF: { label: 'FRAMESHIFT' },\n\t\t\t\t\t\tWT: { label: 'Wildtype' }\n\t\t\t\t\t},\n\t\t\t\t\tname_noOrigin: 'SNV/indel',\n\t\t\t\t\torigin: 'somatic',\n\t\t\t\t\tparentTerm: {\n\t\t\t\t\t\tname: 'TP53',\n\t\t\t\t\t\tgenes: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tkind: 'gene',\n\t\t\t\t\t\t\t\tid: 'TP53',\n\t\t\t\t\t\t\t\tgene: 'TP53',\n\t\t\t\t\t\t\t\tname: 'TP53',\n\t\t\t\t\t\t\t\ttype: 'geneVariant'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\ttype: 'geneVariant'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tvalues: [\n\t\t\t\t\t{\n\t\t\t\t\t\tkey: 'M',\n\t\t\t\t\t\tlabel: 'MISSENSE',\n\t\t\t\t\t\tvalue: 'M',\n\t\t\t\t\t\tbar_width_frac: null\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tgenotype: 'variant',\n\t\t\t\tmcount: 'any'\n\t\t\t}\n\t\t}\n\t],\n\ttag: 'filterUiRoot'\n}\n\n/*************************\n reusable helper functions\n**************************/\n\nconst runpp = helpers.getRunPp('mass', {\n\tstate: {\n\t\tnav: {\n\t\t\tactiveTab: 1\n\t\t},\n\t\tvocab: {\n\t\t\tdslabel: 'TermdbTest',\n\t\t\tgenome: 'hg38-test'\n\t\t}\n\t},\n\tdebug: 1\n})\n", "export const terms = [\n\t{\n\t\tid: 'a',\n\t\tname: 'AAA',\n\t\tparent_id: null,\n\t\tincluded_types: ['categorical', 'integer', 'float', 'condition', 'survival'],\n\t\tchild_types: ['categorical', 'integer', 'float', 'condition', 'survival']\n\t},\n\t{\n\t\tid: 'b',\n\t\tname: 'BBB',\n\t\tparent_id: null,\n\t\tincluded_types: ['categorical', 'integer', 'float', 'condition', 'survival'],\n\t\tchild_types: ['categorical', 'integer', 'float', 'condition', 'survival']\n\t},\n\t{\n\t\ttype: 'categorical',\n\t\tid: 'c',\n\t\tname: 'CCC',\n\t\tparent_id: 'a',\n\t\tisleaf: true,\n\t\tgroupsetting: {\n\t\t\tdisabled: true\n\t\t},\n\t\tvalues: {\n\t\t\t1: { label: 'Yes' },\n\t\t\t0: { label: 'No' }\n\t\t},\n\t\tincluded_types: ['categorical'],\n\t\tchild_types: []\n\t},\n\t{\n\t\ttype: 'float',\n\t\tid: 'd',\n\t\tname: 'DDD',\n\t\tparent_id: 'a',\n\t\tisleaf: true,\n\t\tbins: {\n\t\t\tdefault: {\n\t\t\t\ttype: 'regular-bin',\n\t\t\t\tbin_size: 0.2,\n\t\t\t\tstopinclusive: true,\n\t\t\t\tfirst_bin: { startunbounded: true, stop: 0.2, stopinclusive: true }\n\t\t\t},\n\t\t\tless: {\n\t\t\t\ttype: 'regular-bin',\n\t\t\t\tbin_size: 0.4,\n\t\t\t\tstopinclusive: true,\n\t\t\t\tfirst_bin: { startunbounded: true, stop: 0.2, stopinclusive: true }\n\t\t\t}\n\t\t},\n\t\tincluded_types: ['float'],\n\t\tchild_types: []\n\t},\n\t{\n\t\ttype: 'condition',\n\t\tid: 'e',\n\t\tname: 'EEE',\n\t\tparent_id: 'a',\n\t\tisleaf: true,\n\t\tgroupsetting: {\n\t\t\tdisabled: true\n\t\t},\n\t\tincluded_types: ['condition'],\n\t\tchild_types: []\n\t},\n\t{\n\t\ttype: 'categorical',\n\t\tid: 'f',\n\t\tname: 'FFF',\n\t\tparent_id: 'b',\n\t\tisleaf: true,\n\t\tgroupsetting: {\n\t\t\tdisabled: true\n\t\t},\n\t\tvalues: {\n\t\t\t1: { label: 'Yes' },\n\t\t\t0: { label: 'No' }\n\t\t},\n\t\tincluded_types: ['categorical'],\n\t\tchild_types: []\n\t},\n\t{\n\t\ttype: 'categorical',\n\t\tid: 'g',\n\t\tname: 'CCC',\n\t\tparent_id: 'ab',\n\t\tisleaf: true,\n\t\tgroupsetting: {\n\t\t\tdisabled: true\n\t\t},\n\t\tvalues: {\n\t\t\t1: { label: 'Yes' },\n\t\t\t0: { label: 'No' }\n\t\t},\n\t\tincluded_types: ['categorical'],\n\t\tchild_types: []\n\t},\n\t{\n\t\ttype: 'survival',\n\t\tid: 's',\n\t\tname: 'Survival term',\n\t\tisleaf: true,\n\t\tvalues: {\n\t\t\t1: { label: 'Deceased' },\n\t\t\t0: { label: 'Alive' }\n\t\t}\n\t},\n\t{\n\t\ttype: 'termCollection',\n\t\tname: 'age percentages',\n\t\ttermlst: [{ id: 'agedx' }, { id: 'a_death' }, { id: 'a_ndi' }, { id: 'agelastvisit' }],\n\t\tnumerators: ['agedx']\n\t}\n]\n\nconst vocab = JSON.stringify({\n\troute: null,\n\tterms,\n\tsampleannotation: {\n\t\t1: {\n\t\t\tc: 1,\n\t\t\td: 0.1\n\t\t},\n\t\t2: {\n\t\t\tc: 0,\n\t\t\td: 0.5\n\t\t},\n\t\t3: {\n\t\t\tc: 1,\n\t\t\td: 0.8\n\t\t},\n\t\t4: {\n\t\t\tc: 1,\n\t\t\td: 0.2\n\t\t},\n\t\t5: {\n\t\t\tc: 0,\n\t\t\td: 0.4\n\t\t},\n\t\t6: {\n\t\t\tc: 1,\n\t\t\td: 0.3\n\t\t},\n\t\t7: {\n\t\t\tc: 0,\n\t\t\td: 0.5\n\t\t},\n\t\t8: {\n\t\t\tc: 1,\n\t\t\td: 0.9\n\t\t},\n\t\t9: {\n\t\t\tc: 0,\n\t\t\td: 0.05\n\t\t},\n\t\t10: {\n\t\t\tc: 1,\n\t\t\td: 1.1\n\t\t}\n\t}\n})\n\nexport function getExample() {\n\treturn JSON.parse(vocab)\n}\n"],
5
- "mappings": "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",
6
- "names": ["tape", "d", "termfilter", "runpp"]
7
- }
@@ -1,311 +0,0 @@
1
- import {
2
- ABBREV_COHORT,
3
- FULL_COHORT,
4
- getDefaultProfilePlotSettings,
5
- getProfilePlotConfig,
6
- profilePlot
7
- } from "./chunk-LRZ463XM.js";
8
- import {
9
- fillTwLst
10
- } from "./chunk-UK3PTE3P.js";
11
- import "./chunk-HJ6L54YS.js";
12
- import "./chunk-LSEFWW72.js";
13
- import "./chunk-IFA3COXY.js";
14
- import "./chunk-HYOEWQ5P.js";
15
- import "./chunk-HBW42TDT.js";
16
- import "./chunk-G6O3URDN.js";
17
- import "./chunk-FN5XPUPH.js";
18
- import "./chunk-5X6J6UAT.js";
19
- import "./chunk-3L32ZXRS.js";
20
- import "./chunk-GRNZWYOJ.js";
21
- import "./chunk-X27TRPIZ.js";
22
- import {
23
- dofetch3
24
- } from "./chunk-STQU7XZV.js";
25
- import "./chunk-7IYJZZQI.js";
26
- import {
27
- copyMerge,
28
- getCompInit
29
- } from "./chunk-5V43Y2RC.js";
30
- import "./chunk-PF4DSFDR.js";
31
- import "./chunk-B4VRYXOQ.js";
32
- import "./chunk-XOCO3LVN.js";
33
- import "./chunk-EBKERML3.js";
34
- import "./chunk-DD4R5P6W.js";
35
- import "./chunk-JNITUVXP.js";
36
- import "./chunk-KSGA62R2.js";
37
- import {
38
- axisTop
39
- } from "./chunk-LOZEKOES.js";
40
- import "./chunk-TOU7EVFQ.js";
41
- import {
42
- linear
43
- } from "./chunk-OAWQ6LOO.js";
44
- import "./chunk-TLT4YIG3.js";
45
- import "./chunk-KYBIQBXE.js";
46
- import "./chunk-I6Y4O3RR.js";
47
- import "./chunk-OMR2DT66.js";
48
- import "./chunk-DQC5FFGV.js";
49
- import "./chunk-HFNDKYVF.js";
50
-
51
- // plots/profile/barchart2.ts
52
- var stepx = 500;
53
- var barwidth = 400;
54
- var ProfileBarchart2 = class extends profilePlot {
55
- constructor(opts) {
56
- super(opts, "profileBarchart2");
57
- this.rowCount = 0;
58
- this.additionalInputs = [];
59
- }
60
- static {
61
- this.type = "profileBarchart2";
62
- }
63
- async init(appState) {
64
- await super.init(appState);
65
- const config = appState.plots.find((p) => p.id === this.id);
66
- this.componentNames = config.plotByComponent.map((elem) => ({
67
- value: elem.profileComponent.name,
68
- label: elem.profileComponent.name
69
- }));
70
- const profileComponentInput = {
71
- label: "Component",
72
- type: "dropdown",
73
- chartType: "profileBarchart2",
74
- options: this.componentNames,
75
- settingsKey: "profileComponent",
76
- callback: (value) => this.setProfileComponent(value)
77
- };
78
- this.additionalInputs.push(profileComponentInput);
79
- }
80
- setProfileComponent(value) {
81
- this.settings.profileComponent = value;
82
- this.app.dispatch({ type: "plot_edit", id: this.id, config: this.config });
83
- }
84
- async main() {
85
- try {
86
- await super.main();
87
- this.configProfileComponent = this.config.plotByComponent.find((comp) => comp.profileComponent.name == this.settings.profileComponent) || this.config.plotByComponent[0];
88
- this.rowCount = 0;
89
- this.scoreTerms = [];
90
- for (const group of this.configProfileComponent.groups)
91
- for (const row of group.rows) {
92
- this.rowCount++;
93
- if (row.term1) this.scoreTerms.push(row.term1);
94
- if (row.term2) this.scoreTerms.push(row.term2);
95
- }
96
- await this.setControls(this.additionalInputs);
97
- this.profileComponent = this.settings.profileComponent || this.componentNames[0].value;
98
- this.plot();
99
- } catch (e) {
100
- console.error(e);
101
- throw `${e} [profileBarchart2 main()]`;
102
- }
103
- }
104
- /**
105
- * Override setControls() to fetch data from the dedicated barchart2 route.
106
- * The base class setControls() builds filter UI and sets this.filter but
107
- * skips the data fetch for profileBarchart2 (see profilePlot.ts).
108
- * This method calls termdb/profileBarchart2Scores, which derives the facility
109
- * term server-side and returns aggregated (median) percentages.
110
- */
111
- async setControls(additionalInputs = []) {
112
- await super.setControls(additionalInputs);
113
- this.data = await this.fetchAggregatedScores();
114
- if (this.data && "error" in this.data) throw this.data.error;
115
- }
116
- async fetchAggregatedScores() {
117
- return dofetch3("termdb/profileBarchart2Scores", {
118
- body: {
119
- genome: this.state.vocab.genome,
120
- dslabel: this.state.vocab.dslabel,
121
- scoreTerms: this.scoreTerms.map((t) => ({
122
- score: { term: { id: t.score.term.id }, q: t.score.q },
123
- maxScore: typeof t.maxScore === "number" ? t.maxScore : { term: { id: t.maxScore.term.id }, q: t.maxScore.q }
124
- })),
125
- filterByUserSites: this.settings?.filterByUserSites,
126
- filter: this.filter
127
- }
128
- });
129
- }
130
- onMouseOut(event) {
131
- if (event.target.tagName == "rect" && event.target.getAttribute("fill-opacity") == 0.3) {
132
- event.target.setAttribute("fill-opacity", 0);
133
- }
134
- }
135
- onMouseOver(event) {
136
- if (event.target.tagName == "rect" && event.target.getAttribute("fill-opacity") == 0) {
137
- event.target.setAttribute("fill-opacity", 0.3);
138
- }
139
- }
140
- plot() {
141
- const { hasSubjectiveData } = this.createSvg();
142
- this.drawTitleAndDefs(hasSubjectiveData);
143
- this.drawColumnHeaders(hasSubjectiveData);
144
- const yEnd = this.drawComponentRows(hasSubjectiveData);
145
- this.drawGuideLines(yEnd, hasSubjectiveData);
146
- this.drawLegend(yEnd, hasSubjectiveData);
147
- }
148
- createSvg() {
149
- const hasSubjectiveData = this.configProfileComponent.hasSubjectiveData;
150
- const width = this.state.activeCohort == ABBREV_COHORT ? 1e3 : 1300;
151
- const height = this.rowCount * 32 + 450;
152
- this.dom.svg = this.dom.plotDiv.append("svg").attr("width", width).attr("height", height);
153
- return { width, height, hasSubjectiveData };
154
- }
155
- drawTitleAndDefs(_hasSubjectiveData) {
156
- const title = this.state.activeCohort == ABBREV_COHORT ? `Score-based Results for the ${this.profileComponent} Component by Module and Domain Compared with End-User Impression` : `Objective ${this.profileComponent == "Patients and Outcomes" ? "" : "and Subjective "}Score-based Results for the ${this.profileComponent} Component by Module and Domain`;
157
- this.dom.svg.append("text").attr("transform", `translate(50, 30)`).attr("font-weight", "bold").text(title);
158
- const color = this.configProfileComponent.profileComponent.color;
159
- this.dom.svg.append("defs").append("pattern").attr("id", `${this.id}_diagonalHatch`).attr("patternUnits", "userSpaceOnUse").attr("width", 4).attr("height", 4).append("path").attr("d", "M-1,1 l2,-2 M0,4 l4,-4 M3,5 l2,-2").attr("stroke-width", 1).attr("stroke", color);
160
- }
161
- drawColumnHeaders(hasSubjectiveData) {
162
- const svg = this.dom.svg;
163
- const config = this.config;
164
- for (const [i, c] of config.columnNames.entries()) {
165
- if (i == 1 && !hasSubjectiveData) break;
166
- const x = (i % 2 == 0 ? 400 : 900) + 10;
167
- const y = 70;
168
- svg.append("text").attr("transform", `translate(${x}, ${y})`).attr("text-anchor", "start").style("font-weight", "bold").text(c);
169
- this.drawAxis(x, y + 30);
170
- }
171
- }
172
- drawAxis(x, y) {
173
- const xAxisScale = linear().domain([0, 100]).range([0, barwidth]);
174
- this.dom.svg.append("g").attr("transform", `translate(${x}, ${y})`).call(axisTop(xAxisScale));
175
- }
176
- drawComponentRows(hasSubjectiveData) {
177
- const svg = this.dom.svg;
178
- const step = 30;
179
- let y = 70;
180
- for (const group of this.configProfileComponent.groups) {
181
- svg.append("text").attr("transform", `translate(${50}, ${y + 40})`).attr("text-anchor", "start").text(`${group.label}`).style("font-weight", "bold");
182
- y += step + 20;
183
- for (const row of group.rows) {
184
- const g = svg.append("g");
185
- g.append("rect").attr("transform", `translate(${20}, ${y - 6})`).attr("x", 0).attr("y", 0).attr("width", hasSubjectiveData ? 1500 : 850).attr("height", 30).attr("fill", "#f8d335").attr("fill-opacity", 0);
186
- const x = 400;
187
- if (row.term1) this.drawRect(x, y, row, "term1", g);
188
- if (row.term2) this.drawRect(x + stepx, y, row, "term2", g);
189
- y += step;
190
- }
191
- }
192
- return y;
193
- }
194
- drawRect(x, y, row, field, g) {
195
- const hasSubjectiveData = this.configProfileComponent.hasSubjectiveData;
196
- const d = row[field];
197
- let subjectiveTerm = false;
198
- if ((row.name == "Total Module" || row.name == "End-user Impression*") && !row.term2) subjectiveTerm = true;
199
- const termColor = d.score.term.color;
200
- const value = this.getPercentage(d);
201
- const isFirst = field == "term1" || field == "term2" && !row.term1;
202
- const pairValue = field == "term1" ? this.getPercentage(row.term2) : this.getPercentage(row.term1);
203
- const width = value ? value / 100 * barwidth : 0;
204
- if (value) {
205
- const isObjective = this.state.activeCohort == FULL_COHORT && this.settings.profileComponent == "Patients and Outcomes" ? true : !subjectiveTerm && (pairValue || !hasSubjectiveData);
206
- const rect = g.append("rect").attr("transform", `translate(${x + 10}, ${y})`).attr("pointer-events", "none").attr("x", 0).attr("y", 0).attr("width", width).attr("height", 20);
207
- if (isObjective) rect.attr("fill", termColor);
208
- else {
209
- const termid = this.id + d.score.term.id;
210
- g.append("defs").append("pattern").attr("id", termid).attr("patternUnits", "userSpaceOnUse").attr("width", 4).attr("height", 4).append("path").attr("d", "M-1,1 l2,-2 M0,4 l4,-4 M3,5 l2,-2").attr("stroke-width", 1).attr("stroke", termColor);
211
- rect.attr("fill", `url(#${termid})`);
212
- }
213
- }
214
- const text = g.append("text").attr("pointer-events", "none").attr("text-anchor", "end").text(`${value || 0}%`);
215
- if (width > 0) text.attr("transform", `translate(${x + width + 55}, ${y + 15})`);
216
- else if (!pairValue && field == "term1") text.attr("transform", `translate(${x + 35}, ${y + 15})`);
217
- if (isFirst)
218
- g.append("text").attr("transform", `translate(${field == "term1" ? x : x - stepx}, ${y + 15})`).attr("text-anchor", "end").text(row.name).attr("pointer-events", "none");
219
- }
220
- drawGuideLines(yEnd, hasSubjectiveData) {
221
- this.drawGuide(410, 120, 50, yEnd, "B");
222
- this.drawGuide(410, 120, 75, yEnd, "A");
223
- if (!hasSubjectiveData) return;
224
- this.drawGuide(910, 120, 50, yEnd, "B");
225
- this.drawGuide(910, 120, 75, yEnd, "A");
226
- }
227
- drawGuide(x, y, percent, y2, text) {
228
- const svg = this.dom.svg;
229
- const x1 = x + percent / 100 * barwidth;
230
- svg.append("line").style("stroke", "#aaa").style("stroke-width", 1).style("stroke-dasharray", "5, 5").attr("x1", x1).attr("y1", y).attr("x2", x1).attr("y2", y2);
231
- svg.append("text").attr("transform", `translate(${x1 + 0.125 * barwidth}, ${y2 + 20})`).attr("text-anchor", "middle").text(text).style("font-weight", "bold");
232
- if (percent == 50)
233
- svg.append("text").attr("transform", `translate(${x1 - 0.25 * barwidth}, ${y2 + 20})`).attr("text-anchor", "middle").text("C").style("font-weight", "bold");
234
- }
235
- drawLegend(yEnd, hasSubjectiveData) {
236
- this.legendG = this.dom.svg.append("g").attr("data-testid", "sjpp-profileBarchart2-legend").attr("transform", `translate(400,${yEnd + 90})`);
237
- this.filterG = this.dom.svg.append("g").attr("transform", `translate(0,${yEnd + 90})`);
238
- if (!this.isComparison) {
239
- this.legendG.append("text").attr("text-anchor", "left").style("font-weight", "bold").text("Overall Score").attr("transform", `translate(0, -5)`);
240
- this.addLegendItem("A", "More than 75% of possible scorable items", 1);
241
- this.addLegendItem("B", "50-75% of possible scorable items", 2);
242
- this.addLegendItem("C", "Less than 50% of possible scorable items", 3);
243
- if (this.state.activeCohort == ABBREV_COHORT) {
244
- this.addEndUserImpressionNote(this.legendG.append("g"));
245
- } else this.addPOCNote(this.legendG.append("g"));
246
- }
247
- this.addFilterLegend();
248
- if (!hasSubjectiveData) return;
249
- const color = this.configProfileComponent.profileComponent.color;
250
- const svg = this.dom.svg;
251
- const y = yEnd + 40;
252
- let x = 600;
253
- const lineG = svg.append("g");
254
- this.drawLegendRect(x, y, "and", color, lineG);
255
- x += 300;
256
- this.drawLegendRect(x, y, "or", color, lineG);
257
- }
258
- drawLegendRect(x, y, operator, color, lineG) {
259
- const rect = lineG.append("g").attr("transform", `translate(${x}, ${y})`).append("rect").attr("x", 0).attr("y", 0).attr("width", 20).attr("height", 20);
260
- if (operator == "and") rect.attr("fill", color);
261
- else rect.attr("fill", `url(#${this.id}_diagonalHatch)`);
262
- const text = this.dom.svg.append("text").attr("transform", `translate(${x + 25}, ${y + 15})`).attr("text-anchor", "start").text("Objective ");
263
- text.append("tspan").attr("font-weight", "bold").text(operator);
264
- text.append("tspan").text(" Subjective data");
265
- }
266
- };
267
- async function getPlotConfig(opts, app, _activeCohort) {
268
- try {
269
- const activeCohort = _activeCohort === void 0 ? app.getState().activeCohort : _activeCohort;
270
- const defaults = await getProfilePlotConfig(activeCohort, app, opts);
271
- if (!defaults) throw "default config not found in termdbConfig.plotConfigByCohort.profileBarchart2";
272
- defaults.settings = { profileBarchart2: getDefaultProfilePlotSettings() };
273
- let config = structuredClone(defaults);
274
- config = copyMerge(config, opts);
275
- config.settings.controls = { isOpen: false };
276
- const twlst = [];
277
- for (const profileComponent of config.plotByComponent) {
278
- profileComponent.hasSubjectiveData = false;
279
- for (const group of profileComponent.groups)
280
- for (const row of group.rows) {
281
- if (row.term1) {
282
- row.term1.score.q = row.term1.maxScore.q = { mode: "continuous" };
283
- twlst.push(row.term1.score);
284
- twlst.push(row.term1.maxScore);
285
- }
286
- if (row.term2) {
287
- row.term2.score.q = row.term2.maxScore.q = { mode: "continuous" };
288
- twlst.push(row.term2.score);
289
- twlst.push(row.term2.maxScore);
290
- }
291
- if (row.term1 && row.term2) profileComponent.hasSubjectiveData = true;
292
- }
293
- }
294
- await fillTwLst(twlst, app.vocabApi);
295
- return config;
296
- } catch (e) {
297
- throw `${e} [profileBarchart2 getPlotConfig()]`;
298
- }
299
- }
300
- var profileBarchart2Init = getCompInit(ProfileBarchart2);
301
- var componentInit = profileBarchart2Init;
302
- function getDefaultProfileBarchart2Settings() {
303
- return {};
304
- }
305
- export {
306
- componentInit,
307
- getDefaultProfileBarchart2Settings,
308
- getPlotConfig,
309
- profileBarchart2Init
310
- };
311
- //# sourceMappingURL=barchart2-4NU7NWJZ.js.map