@sjcrh/proteinpaint-client 2.190.2 → 2.191.2

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 (932) hide show
  1. package/dist/2dmaf-V4WJ2LEK.js +1373 -0
  2. package/dist/AIProjectAdmin-JMN5O6YU.js +829 -0
  3. package/dist/AppHeader-Y4SEKCEF.js +835 -0
  4. package/dist/BoxPlot-ZXQZGCR3.js +1211 -0
  5. package/dist/BoxPlot-ZXQZGCR3.js.map +7 -0
  6. package/dist/CorrelationVolcano-R5IWD6WA.js +619 -0
  7. package/dist/DE-ZV6O7B6Y.js +95 -0
  8. package/dist/DEinput-FTOALZKN.js +301 -0
  9. package/dist/DifferentialAnalysis-NLCA766A.js +245 -0
  10. package/dist/Disco-Y5Z4A7GN.js +3237 -0
  11. package/dist/Disco.UI-GSWZYIUT.js +245 -0
  12. package/dist/DmrPlot-FEFUCIGT.js +642 -0
  13. package/dist/DziViewer-6737GC22.js +16332 -0
  14. package/dist/GB-AOXF2JJB.js +1130 -0
  15. package/dist/GeneExpInput-CXYRKQU7.js +366 -0
  16. package/dist/HicApp-GLNNZ4H5.js +2250 -0
  17. package/dist/NumBinaryEditor-6ZAL6CCP.js +271 -0
  18. package/dist/NumBinaryEditor-6ZAL6CCP.js.map +7 -0
  19. package/dist/NumBinaryEditor.unit.spec-3VTJLILH.js +286 -0
  20. package/dist/NumContEditor-3LOAR676.js +109 -0
  21. package/dist/NumContEditor-3LOAR676.js.map +7 -0
  22. package/dist/NumContEditor.unit.spec-WIMYCOVO.js +169 -0
  23. package/dist/NumCustomBinEditor-XIOAYWOD.js +38 -0
  24. package/dist/NumCustomBinEditor.unit.spec-N5OV6MKR.js +284 -0
  25. package/dist/NumDiscreteEditor-AT6FKYGI.js +179 -0
  26. package/dist/NumDiscreteEditor.unit.spec-BDR5GZ46.js +202 -0
  27. package/dist/NumRegularBinEditor-Z4NBS4VZ.js +38 -0
  28. package/dist/NumRegularBinEditor.unit.spec-BRWYNQ55.js +227 -0
  29. package/dist/NumSplineEditor-B45BAWQ2.js +198 -0
  30. package/dist/NumSplineEditor-B45BAWQ2.js.map +7 -0
  31. package/dist/NumSplineEditor.unit.spec-5RDBCZ4N.js +199 -0
  32. package/dist/NumericDensity-L7HIVV7D.js +38 -0
  33. package/dist/NumericDensity.unit.spec-PL3XDJCV.js +221 -0
  34. package/dist/NumericHandler-KJYZOCCG.js +39 -0
  35. package/dist/NumericHandler.unit.spec-VC7NPLJW.js +219 -0
  36. package/dist/ProteomeInput-A3GRPIAH.js +396 -0
  37. package/dist/RunChart2-MSNU3ZNT.js +758 -0
  38. package/dist/SC-FNKG2FK5.js +936 -0
  39. package/dist/Volcano-IRJMPHXJ.js +1379 -0
  40. package/dist/WSIViewer-KITT7I67.js +48475 -0
  41. package/dist/WsiSamplesPlot-G3YZ6SIE.js +165 -0
  42. package/dist/adSandbox-GIQTJ4VA.js +38 -0
  43. package/dist/app-MGNEMS2K.js +49 -0
  44. package/dist/app-UQTHPQFD.js +37 -0
  45. package/dist/app.js +17 -17
  46. package/dist/bam-5PROQBRT.js +860 -0
  47. package/dist/barchart-BQYJ73Z4.js +47 -0
  48. package/dist/barchart.data-VFULOIHY.js +22 -0
  49. package/dist/barchart.events-W2CIDD4B.js +47 -0
  50. package/dist/barchart.integration.spec-JF2IHFQE.js +1980 -0
  51. package/dist/barchart.integration.spec-JF2IHFQE.js.map +7 -0
  52. package/dist/barchart2-V6W4UAFH.js +311 -0
  53. package/dist/block-5V2FCT7Q.js +6202 -0
  54. package/dist/block.init-43IUNDNB.js +38 -0
  55. package/dist/block.mds.expressionrank-LI6MZPBE.js +359 -0
  56. package/dist/block.mds.geneboxplot-673AIJMJ.js +828 -0
  57. package/dist/block.mds.junction-UWNVNV3X.js +1545 -0
  58. package/dist/block.mds.svcnv-Z5VFCUUE.js +6801 -0
  59. package/dist/block.svg-MGK4GWLL.js +164 -0
  60. package/dist/block.tk.aicheck-OFNDGG7Q.js +283 -0
  61. package/dist/block.tk.ase-IDZQY7MW.js +365 -0
  62. package/dist/block.tk.bam-K7A2Q5NI.js +1906 -0
  63. package/dist/block.tk.bedgraphdot-PPTKCCPK.js +384 -0
  64. package/dist/block.tk.bigwig.ui-PI6EAU43.js +212 -0
  65. package/dist/block.tk.hicstraw-EZ2GS2K4.js +823 -0
  66. package/dist/block.tk.junction-4WSLQGSQ.js +2364 -0
  67. package/dist/block.tk.junction.textmatrixui-7EJUSVMB.js +199 -0
  68. package/dist/block.tk.ld-KLVO7M37.js +99 -0
  69. package/dist/block.tk.menu-KZSL7BAR.js +1029 -0
  70. package/dist/block.tk.pgv-NYWGB4VH.js +944 -0
  71. package/dist/brainImaging-MTIIMJHW.js +423 -0
  72. package/dist/chunk-2NQLAH3L.js +443 -0
  73. package/dist/chunk-2Q6PBSPS.js +1943 -0
  74. package/dist/chunk-2TCCXOAV.js +1170 -0
  75. package/dist/chunk-2TCCXOAV.js.map +7 -0
  76. package/dist/chunk-3D5GZIGG.js +1210 -0
  77. package/dist/chunk-3TPAIXNL.js +263 -0
  78. package/dist/chunk-42EBECOD.js +95 -0
  79. package/dist/chunk-4B42QV34.js +2786 -0
  80. package/dist/chunk-4FKWINMK.js +184 -0
  81. package/dist/chunk-4FKWINMK.js.map +7 -0
  82. package/dist/chunk-4KY4XKJV.js +143 -0
  83. package/dist/chunk-52RORO74.js +158 -0
  84. package/dist/chunk-52RORO74.js.map +7 -0
  85. package/dist/chunk-5SXCIKYV.js +100 -0
  86. package/dist/chunk-647P2I4Q.js +482 -0
  87. package/dist/chunk-67HSIHPP.js +2327 -0
  88. package/dist/chunk-6GZJCSA6.js +1102 -0
  89. package/dist/chunk-6VKTEMFV.js +1815 -0
  90. package/dist/chunk-6VKTEMFV.js.map +7 -0
  91. package/dist/chunk-7JEKUSEL.js +102 -0
  92. package/dist/chunk-BMO6KSVC.js +477 -0
  93. package/dist/chunk-CKA52OEA.js +399 -0
  94. package/dist/chunk-CKA52OEA.js.map +7 -0
  95. package/dist/chunk-CKDC326M.js +50 -0
  96. package/dist/chunk-CRUBP5PT.js +446 -0
  97. package/dist/chunk-CW2Q5EA7.js +283 -0
  98. package/dist/chunk-CYHUNQMS.js +6364 -0
  99. package/dist/chunk-DC4KD6FJ.js +458 -0
  100. package/dist/chunk-DC4KD6FJ.js.map +7 -0
  101. package/dist/chunk-DHPLHIVP.js +498 -0
  102. package/dist/chunk-DJQTUDJM.js +414 -0
  103. package/dist/chunk-DJQTUDJM.js.map +7 -0
  104. package/dist/chunk-DWCVGCBX.js +381 -0
  105. package/dist/chunk-EIBNV236.js +339 -0
  106. package/dist/chunk-EZ3WMXYT.js +217 -0
  107. package/dist/chunk-F5QIZOPL.js +736 -0
  108. package/dist/chunk-F6N6JBZR.js +37 -0
  109. package/dist/chunk-FXMHSVBS.js +54 -0
  110. package/dist/chunk-FZ63VOSX.js +226 -0
  111. package/dist/chunk-GMT2GNQY.js +1332 -0
  112. package/dist/chunk-IIT367QZ.js +473 -0
  113. package/dist/chunk-IL5QT2FI.js +293 -0
  114. package/dist/chunk-J6GLTYGJ.js +2681 -0
  115. package/dist/chunk-JEZIKGZI.js +386 -0
  116. package/dist/chunk-JJOLDYSQ.js +824 -0
  117. package/dist/chunk-KSCJWPTJ.js +34 -0
  118. package/dist/chunk-L4TUTGTA.js +20787 -0
  119. package/dist/chunk-L4TUTGTA.js.map +7 -0
  120. package/dist/chunk-LT5XPBIX.js +272 -0
  121. package/dist/chunk-M3J4MINX.js +783 -0
  122. package/dist/chunk-M3J4MINX.js.map +7 -0
  123. package/dist/chunk-MEGBYD4U.js +182 -0
  124. package/dist/chunk-MEY5OBDJ.js +170 -0
  125. package/dist/chunk-MYWV64P5.js +1275 -0
  126. package/dist/chunk-MYWV64P5.js.map +7 -0
  127. package/dist/chunk-NKTBR5SK.js +613 -0
  128. package/dist/chunk-NKTBR5SK.js.map +7 -0
  129. package/dist/chunk-NVX26LFC.js +148 -0
  130. package/dist/chunk-O7NFSCEW.js +291 -0
  131. package/dist/chunk-P4QGOUDH.js +368 -0
  132. package/dist/chunk-PGBKZ76Y.js +129 -0
  133. package/dist/chunk-PQNVPSQR.js +205 -0
  134. package/dist/chunk-PQZ3A27I.js +54 -0
  135. package/dist/chunk-QNMB7LYW.js +5010 -0
  136. package/dist/chunk-RZGEKL77.js +117 -0
  137. package/dist/chunk-RZY34QRF.js +158 -0
  138. package/dist/chunk-S4JLRRKK.js +287 -0
  139. package/dist/chunk-S4JLRRKK.js.map +7 -0
  140. package/dist/chunk-SDACELDR.js +14 -0
  141. package/dist/chunk-SQWEREGE.js +222 -0
  142. package/dist/chunk-SQWEREGE.js.map +7 -0
  143. package/dist/chunk-TVADJLMF.js +317 -0
  144. package/dist/chunk-TVADJLMF.js.map +7 -0
  145. package/dist/chunk-UCLROZRF.js +142 -0
  146. package/dist/chunk-VIHUKORE.js +216 -0
  147. package/dist/chunk-VIHUKORE.js.map +7 -0
  148. package/dist/chunk-VMLSRKIB.js +276 -0
  149. package/dist/chunk-VXKO2ONI.js +534 -0
  150. package/dist/chunk-WET4LPLO.js +117 -0
  151. package/dist/chunk-WMELUFVS.js +254 -0
  152. package/dist/chunk-WS3NUPNV.js +119 -0
  153. package/dist/chunk-X5X5T3AJ.js +230 -0
  154. package/dist/chunk-X5X5T3AJ.js.map +7 -0
  155. package/dist/chunk-X63AAJGT.js +514 -0
  156. package/dist/chunk-XRAFQKOF.js +4274 -0
  157. package/dist/chunk-XRAFQKOF.js.map +7 -0
  158. package/dist/chunk-XVZ5UJWU.js +815 -0
  159. package/dist/chunk-YNBT4N6T.js +2824 -0
  160. package/dist/chunk-YVCTEEVQ.js +55 -0
  161. package/dist/chunk-YWZCJMHS.js +203 -0
  162. package/dist/chunk-Z3SC67OA.js +102 -0
  163. package/dist/chunk-ZK226W6V.js +194 -0
  164. package/dist/chunk-ZLREFIZB.js +302 -0
  165. package/dist/chunk-ZX2ISBEF.js +95 -0
  166. package/dist/condition-P2XD32QM.js +332 -0
  167. package/dist/controls-FZUTJPKV.js +41 -0
  168. package/dist/controls.btns-AP67YWKW.js +9 -0
  169. package/dist/controls.config-TEFY3NTE.js +39 -0
  170. package/dist/correlation-HS2WJFXN.js +99 -0
  171. package/dist/correlation-HS2WJFXN.js.map +7 -0
  172. package/dist/cuminc-42GBJHD3.js +1149 -0
  173. package/dist/cuminc.integration.spec-BAY4JHVL.js +678 -0
  174. package/dist/customdata.inputui-IPM5K56K.js +289 -0
  175. package/dist/dataDownload-D7VCYBDT.js +330 -0
  176. package/dist/dataDownload.integration.spec-SEBY2BIX.js +193 -0
  177. package/dist/databrowser.ui-5OC5MPZB.js +433 -0
  178. package/dist/dictionary-VVRWVLJX.js +111 -0
  179. package/dist/dnaMethylation-72IS3FRI.js +38 -0
  180. package/dist/dnaMethylation.integration.spec-U2LLSDGE.js +203 -0
  181. package/dist/dofetch-5ZRAQH5F.js +51 -0
  182. package/dist/e2pca-AR6EKEJA.js +350 -0
  183. package/dist/ep-JS5UUJQX.js +1256 -0
  184. package/dist/expclust.gdc.spec-73MGQ7RN.js +307 -0
  185. package/dist/facet-AR3QKHCY.js +521 -0
  186. package/dist/forms2-UXEI7MUP.js +534 -0
  187. package/dist/gb-RHDVYU2V.js +88 -0
  188. package/dist/geneExpClustering-L6KLCMPH.js +249 -0
  189. package/dist/geneExpression-GYT2XRE6.js +313 -0
  190. package/dist/geneExpression-SKIU3NEP.js +38 -0
  191. package/dist/geneExpression.unit.spec-CWR6KDVK.js +102 -0
  192. package/dist/geneORA-C3TALK5P.js +278 -0
  193. package/dist/geneRanking-LLYLDPLV.js +551 -0
  194. package/dist/geneVariant-PUSKBHPY.js +39 -0
  195. package/dist/geneVariant-YFMU6PHM.js +41 -0
  196. package/dist/geneVariant.integration.spec-EJ5V46OQ.js +198 -0
  197. package/dist/genefusion.ui-XUHSKQKW.js +309 -0
  198. package/dist/geneset-DEL5LXFZ.js +208 -0
  199. package/dist/genomeBrowser.spec-W5TVHOUJ.js +281 -0
  200. package/dist/grin2-FXAEGECD.js +1560 -0
  201. package/dist/grin2-U2FKULLC.js +821 -0
  202. package/dist/grin2-U2FKULLC.js.map +7 -0
  203. package/dist/gsea-CNL6SHH5.js +47 -0
  204. package/dist/hierCluster-7V65PMIW.js +59 -0
  205. package/dist/hierCluster-C44GHM4B.js +63 -0
  206. package/dist/hierCluster.config-RU5JDPWM.js +40 -0
  207. package/dist/hierCluster.integration.spec-6YH5KE4H.js +395 -0
  208. package/dist/hierCluster.interactivity-PK2L7BSW.js +54 -0
  209. package/dist/hierCluster.renderers-G3274UYA.js +21 -0
  210. package/dist/imagePlot-5SEDMPBP.js +163 -0
  211. package/dist/importPlot-M3MKWRON.js +8 -0
  212. package/dist/isoformExpression-PPMISWKT.js +40 -0
  213. package/dist/isoformExpression.unit.spec-ENHCCQRZ.js +208 -0
  214. package/dist/launch.adhoc-XAG6H42J.js +42 -0
  215. package/dist/leftlabel.sample-BSPCI6GR.js +260 -0
  216. package/dist/lollipop-IZJ7E3YO.js +171 -0
  217. package/dist/maf-54XWBQ73.js +452 -0
  218. package/dist/maftimeline-3AJKAFS6.js +593 -0
  219. package/dist/matrix-AJPMHUXG.js +63 -0
  220. package/dist/matrix-ZMXNOESU.js +58 -0
  221. package/dist/matrix.cells-E3LEVA7U.js +28 -0
  222. package/dist/matrix.config-4WLSFMTY.js +41 -0
  223. package/dist/matrix.data-WMOTOB6C.js +25 -0
  224. package/dist/matrix.dom-F7AN3QGE.js +11 -0
  225. package/dist/matrix.groups-BGMZZ6CM.js +27 -0
  226. package/dist/matrix.integration.spec-ENRPVB7R.js +3072 -0
  227. package/dist/matrix.interactivity-IMWERCZF.js +42 -0
  228. package/dist/matrix.layout-5DDZWLNX.js +44 -0
  229. package/dist/matrix.legend-RJAFOZHQ.js +22 -0
  230. package/dist/matrix.renderers-VFQZG5JP.js +38 -0
  231. package/dist/matrix.serieses-GJWHSBG4.js +21 -0
  232. package/dist/matrix.sort-KIJENIT2.js +27 -0
  233. package/dist/matrix.sort.unit.spec-ZA5DRNL6.js +472 -0
  234. package/dist/matrix.sorterUi-3KEDVLGW.js +18 -0
  235. package/dist/matrix.sorterUi.unit.spec-7TPOJ46U.js +342 -0
  236. package/dist/mavb-73BXZ7MO.js +732 -0
  237. package/dist/mds.fimo-L7VVAOXQ.js +518 -0
  238. package/dist/mds.samplescatterplot-6P75XEWB.js +1550 -0
  239. package/dist/mds.survivalplot-GCVE7XGO.js +483 -0
  240. package/dist/numericDictTermCluster-OMXIURRD.js +72 -0
  241. package/dist/oncomatrix-BFWV2IC4.js +295 -0
  242. package/dist/oncomatrix.spec-J6IAY3O6.js +448 -0
  243. package/dist/plot.2dvaf-ESJAB2F3.js +377 -0
  244. package/dist/plot.app-T7CQMBRV.js +41 -0
  245. package/dist/plot.barplot-HAWPMPPU.js +102 -0
  246. package/dist/plot.boxplot-4QUORFXY.js +152 -0
  247. package/dist/plot.brainImaging-HG6I3GJW.js +51 -0
  248. package/dist/plot.disco-LPH7F6YW.js +102 -0
  249. package/dist/plot.dzi-DYAY4D4E.js +33 -0
  250. package/dist/plot.ssgq-CF5VIGYJ.js +139 -0
  251. package/dist/plot.vaf2cov-7HZCKNK6.js +259 -0
  252. package/dist/plot.wsi-MU6AXOWO.js +36 -0
  253. package/dist/polar2-G636L5TB.js +226 -0
  254. package/dist/polar2-G636L5TB.js.map +7 -0
  255. package/dist/profileForms-TIT4JUEJ.js +441 -0
  256. package/dist/profilePlot-QFGRAZQA.js +54 -0
  257. package/dist/proteinView-RZ56F45C.js +1320 -0
  258. package/dist/proteinView-RZ56F45C.js.map +7 -0
  259. package/dist/qualitative-YWP4YUPF.js +43 -0
  260. package/dist/radar2-TKSHL54E.js +321 -0
  261. package/dist/radarFacility2-FHRFLBLF.js +329 -0
  262. package/dist/regression-5XG5LXP7.js +56 -0
  263. package/dist/regression.inputs-QHXK7ZYY.js +48 -0
  264. package/dist/regression.inputs.term-YYO3CR2D.js +48 -0
  265. package/dist/regression.inputs.values.table-3I2FCON2.js +45 -0
  266. package/dist/regression.integration.spec-QVDGCKVT.js +784 -0
  267. package/dist/regression.results-B7LVT2WG.js +40 -0
  268. package/dist/regression.spec-ISYKKQOM.js +708 -0
  269. package/dist/report-TF6Z3Y44.js +222 -0
  270. package/dist/sampleScatter.spec-2VW55XIZ.js +202 -0
  271. package/dist/sampleView-DNNJRAMU.js +48 -0
  272. package/dist/samplelst-726II3LN.js +111 -0
  273. package/dist/samplematrix-TBPW4URH.js +2198 -0
  274. package/dist/sc-GBYH3W4S.js +86 -0
  275. package/dist/scatter-ATUM7AEW.js +849 -0
  276. package/dist/scatter-ATUM7AEW.js.map +7 -0
  277. package/dist/scatter.integration.spec-PDM454O3.js +1197 -0
  278. package/dist/scatter.integration.spec-PDM454O3.js.map +7 -0
  279. package/dist/selectGenomeWithTklst-RCAYDV6D.js +134 -0
  280. package/dist/singleCellCellType-IQYCKUT6.js +38 -0
  281. package/dist/singleCellCellType.unit.spec-ZEWA2IFI.js +160 -0
  282. package/dist/singleCellGeneExpression-STLTBXJQ.js +38 -0
  283. package/dist/singleCellGeneExpression.unit.spec-W6FPS5ZU.js +153 -0
  284. package/dist/singleCellPlot-7XH7NIL4.js +54 -0
  285. package/dist/singlecell-IDZB2MXW.js +86 -0
  286. package/dist/singlecell-JCXR7X5U.js +1572 -0
  287. package/dist/snp-QOKI26PO.js +38 -0
  288. package/dist/snp.unit.spec-DTPZAALW.js +176 -0
  289. package/dist/snplocus-BKUJYANW.js +208 -0
  290. package/dist/spliceevent.a53ss.diagram-4O54ORKZ.js +151 -0
  291. package/dist/spliceevent.exonskip.diagram-KOIOS6IV.js +277 -0
  292. package/dist/spliceevent.noeventdiagram-YGUGQMVE.js +460 -0
  293. package/dist/ssGSEA-UZMBIHVD.js +38 -0
  294. package/dist/ssGSEA.unit.spec-4YO4E3T7.js +88 -0
  295. package/dist/stattable-MDABSW3F.js +90 -0
  296. package/dist/summarizeCnvGeneexp-HV3DHIW4.js +163 -0
  297. package/dist/summarizeGeneexpSurvival-VGPRWYQ5.js +108 -0
  298. package/dist/summarizeMutationCnv-N3JEB4DJ.js +164 -0
  299. package/dist/summarizeMutationDiagnosis-6U4DBLG5.js +40 -0
  300. package/dist/summarizeMutationSurvival-S7NLAVEI.js +99 -0
  301. package/dist/summary-NPR56I4S.js +49 -0
  302. package/dist/summary.integration.spec-HWNJWLKT.js +414 -0
  303. package/dist/summaryInput-DO73NGDQ.js +235 -0
  304. package/dist/sunburst-MMXSGJSL.js +284 -0
  305. package/dist/survival-7AIKFGV5.js +58 -0
  306. package/dist/survival-UK332X6L.js +46 -0
  307. package/dist/survival.integration.spec-YMTEKEGB.js +821 -0
  308. package/dist/svgraph-MLLAYO4A.js +1387 -0
  309. package/dist/svmr-PYW4PLT3.js +3842 -0
  310. package/dist/table-Y3ED2444.js +200 -0
  311. package/dist/termCollection-3XVL75II.js +38 -0
  312. package/dist/termCollection-VAB53YGO.js +179 -0
  313. package/dist/termCollection.unit.spec-DYPWNVEZ.js +208 -0
  314. package/dist/termInfo-6MJDJSDW.js +9 -0
  315. package/dist/tk-GUGJYKJ2.js +46 -0
  316. package/dist/tp.ui-WGETBYJQ.js +1459 -0
  317. package/dist/tvs.dt-JWF4I3KY.js +39 -0
  318. package/dist/tvs.dtcnv.categorical-72Y5QMPL.js +40 -0
  319. package/dist/tvs.dtcnv.continuous-73LHWTU5.js +72 -0
  320. package/dist/tvs.dtfusion-LP6HUMZU.js +40 -0
  321. package/dist/tvs.dtsnvindel-23N2CFZJ.js +40 -0
  322. package/dist/tvs.dtsv-DILQVKYM.js +40 -0
  323. package/dist/tvs.samplelst-GV4VSCRF.js +104 -0
  324. package/dist/tvs.termCollection-KBDNXK7X.js +159 -0
  325. package/dist/violin-TYUP7FB5.js +46 -0
  326. package/dist/violin.integration.spec-ULRFK2A6.js +1425 -0
  327. package/dist/violin.interactivity-2QZVQWQJ.js +38 -0
  328. package/dist/violin.renderer-HCDSN62Z.js +40 -0
  329. package/dist/vocabulary-I4CMPN2Z.js +41 -0
  330. package/package.json +3 -3
  331. package/dist/2dmaf-ZCIOFNSJ.js +0 -1373
  332. package/dist/AIProjectAdmin-Z7EA2Y74.js +0 -829
  333. package/dist/AppHeader-4AZ76NN3.js +0 -835
  334. package/dist/BoxPlot-BFVBNQNR.js +0 -1217
  335. package/dist/BoxPlot-BFVBNQNR.js.map +0 -7
  336. package/dist/CorrelationVolcano-L5VSJWJF.js +0 -619
  337. package/dist/DE-7TPZWAKI.js +0 -95
  338. package/dist/DEinput-WQJEXWGY.js +0 -301
  339. package/dist/DifferentialAnalysis-FPG7RDNN.js +0 -245
  340. package/dist/Disco-WP2BBL5V.js +0 -3237
  341. package/dist/Disco.UI-ZYSUA57E.js +0 -245
  342. package/dist/DmrPlot-V3E7JMPN.js +0 -642
  343. package/dist/DziViewer-ZHAPJ457.js +0 -16332
  344. package/dist/GB-BKLVGYWP.js +0 -1130
  345. package/dist/GeneExpInput-7V72SRDT.js +0 -366
  346. package/dist/HicApp-IT5YNABL.js +0 -2250
  347. package/dist/NumBinaryEditor-7E37MVQO.js +0 -270
  348. package/dist/NumBinaryEditor-7E37MVQO.js.map +0 -7
  349. package/dist/NumBinaryEditor.unit.spec-C3WVAXMY.js +0 -286
  350. package/dist/NumContEditor-FEVZJUB4.js +0 -107
  351. package/dist/NumContEditor-FEVZJUB4.js.map +0 -7
  352. package/dist/NumContEditor.unit.spec-4IGP657P.js +0 -169
  353. package/dist/NumCustomBinEditor-QC4D63Y5.js +0 -38
  354. package/dist/NumCustomBinEditor.unit.spec-USLECMWI.js +0 -284
  355. package/dist/NumDiscreteEditor-PRAI76XQ.js +0 -179
  356. package/dist/NumDiscreteEditor.unit.spec-IWL3OCTC.js +0 -202
  357. package/dist/NumRegularBinEditor-ESL2HAD7.js +0 -38
  358. package/dist/NumRegularBinEditor.unit.spec-7LLZAW4Z.js +0 -227
  359. package/dist/NumSplineEditor-JZOROO36.js +0 -197
  360. package/dist/NumSplineEditor-JZOROO36.js.map +0 -7
  361. package/dist/NumSplineEditor.unit.spec-3SHSXTC7.js +0 -199
  362. package/dist/NumericDensity-SGYRBDCQ.js +0 -38
  363. package/dist/NumericDensity.unit.spec-Y6JMH6IR.js +0 -221
  364. package/dist/NumericHandler-YG7AMINA.js +0 -39
  365. package/dist/NumericHandler.unit.spec-CABSMERN.js +0 -219
  366. package/dist/ProteomeInput-2WPCK72Z.js +0 -396
  367. package/dist/RunChart2-PJWMDWJR.js +0 -758
  368. package/dist/SC-WVVUFPNU.js +0 -936
  369. package/dist/Volcano-7JI4LUSF.js +0 -1379
  370. package/dist/WSIViewer-GDSOEEA6.js +0 -48475
  371. package/dist/WsiSamplesPlot-Z5C3NPF7.js +0 -165
  372. package/dist/adSandbox-KQKENDNQ.js +0 -38
  373. package/dist/alphaGenome-PN2SEPCK.js +0 -175
  374. package/dist/alphaGenome-PN2SEPCK.js.map +0 -7
  375. package/dist/app-4OEY56FN.js +0 -49
  376. package/dist/app-TGMYXJ4E.js +0 -37
  377. package/dist/bam-3IMX42G5.js +0 -860
  378. package/dist/barchart-44HOJWVS.js +0 -47
  379. package/dist/barchart.data-CHNR4XL2.js +0 -22
  380. package/dist/barchart.events-XW5OZ5MR.js +0 -47
  381. package/dist/barchart.integration.spec-M5PACARH.js +0 -1923
  382. package/dist/barchart.integration.spec-M5PACARH.js.map +0 -7
  383. package/dist/barchart2-4NU7NWJZ.js +0 -311
  384. package/dist/block-OYSZ2JXC.js +0 -6202
  385. package/dist/block.init-WSIQLW7A.js +0 -38
  386. package/dist/block.mds.expressionrank-2KWOWDW4.js +0 -359
  387. package/dist/block.mds.geneboxplot-6ZAD6A5K.js +0 -828
  388. package/dist/block.mds.junction-VQDLHFNG.js +0 -1545
  389. package/dist/block.mds.svcnv-7OIRG7DQ.js +0 -6801
  390. package/dist/block.svg-HXAIFHXM.js +0 -164
  391. package/dist/block.tk.aicheck-GTGHCUEN.js +0 -283
  392. package/dist/block.tk.ase-TAEE2ZHN.js +0 -365
  393. package/dist/block.tk.bam-6A26AZ7S.js +0 -1906
  394. package/dist/block.tk.bedgraphdot-6MYIVRBC.js +0 -384
  395. package/dist/block.tk.bigwig.ui-GJ7JXRH3.js +0 -212
  396. package/dist/block.tk.hicstraw-3TCDZ2GM.js +0 -823
  397. package/dist/block.tk.junction-WDBIP7DK.js +0 -2364
  398. package/dist/block.tk.junction.textmatrixui-QOV3U7AN.js +0 -199
  399. package/dist/block.tk.ld-GCPH66C3.js +0 -99
  400. package/dist/block.tk.menu-YDAIYUGC.js +0 -1029
  401. package/dist/block.tk.pgv-RWOZAUGA.js +0 -944
  402. package/dist/brainImaging-ZAFU6U2Y.js +0 -423
  403. package/dist/chunk-34SAHEQU.js +0 -291
  404. package/dist/chunk-3I7TUGLD.js +0 -226
  405. package/dist/chunk-3JL2HBGE.js +0 -2824
  406. package/dist/chunk-3L32ZXRS.js +0 -117
  407. package/dist/chunk-5GMXV4VC.js +0 -5010
  408. package/dist/chunk-5ITQVR2P.js +0 -102
  409. package/dist/chunk-5TKVUSMQ.js +0 -217
  410. package/dist/chunk-5V43Y2RC.js +0 -774
  411. package/dist/chunk-5V43Y2RC.js.map +0 -7
  412. package/dist/chunk-5X6J6UAT.js +0 -473
  413. package/dist/chunk-5YF3LGLX.js +0 -2327
  414. package/dist/chunk-76PGYH5J.js +0 -203
  415. package/dist/chunk-7JXLWRVZ.js +0 -2681
  416. package/dist/chunk-7YWFO7CJ.js +0 -6364
  417. package/dist/chunk-B3M3AZPL.js +0 -215
  418. package/dist/chunk-B3M3AZPL.js.map +0 -7
  419. package/dist/chunk-B4VRYXOQ.js +0 -288
  420. package/dist/chunk-B4VRYXOQ.js.map +0 -7
  421. package/dist/chunk-BLKF2SE6.js +0 -37
  422. package/dist/chunk-CA2AOIHR.js +0 -142
  423. package/dist/chunk-DBFPAZG3.js +0 -1943
  424. package/dist/chunk-DCJUDSRM.js +0 -446
  425. package/dist/chunk-DNM2DKYE.js +0 -1332
  426. package/dist/chunk-DVH6K2NP.js +0 -14
  427. package/dist/chunk-DYVY7D67.js +0 -263
  428. package/dist/chunk-E4IHE23N.js +0 -398
  429. package/dist/chunk-E4IHE23N.js.map +0 -7
  430. package/dist/chunk-G6WVVRDA.js +0 -339
  431. package/dist/chunk-GERVYIL4.js +0 -1210
  432. package/dist/chunk-GKBMGKYN.js +0 -117
  433. package/dist/chunk-GRNZWYOJ.js +0 -815
  434. package/dist/chunk-GS7SQKJT.js +0 -102
  435. package/dist/chunk-H5NNQO2V.js +0 -55
  436. package/dist/chunk-HONXMORI.js +0 -368
  437. package/dist/chunk-HURY7IJE.js +0 -4272
  438. package/dist/chunk-HURY7IJE.js.map +0 -7
  439. package/dist/chunk-HWVEN2MK.js +0 -498
  440. package/dist/chunk-I2RRWDYV.js +0 -514
  441. package/dist/chunk-IFA3COXY.js +0 -185
  442. package/dist/chunk-IFA3COXY.js.map +0 -7
  443. package/dist/chunk-IOQV2VX3.js +0 -2786
  444. package/dist/chunk-IWMWT7O7.js +0 -276
  445. package/dist/chunk-JSEMZPAO.js +0 -34
  446. package/dist/chunk-K7UIR22L.js +0 -229
  447. package/dist/chunk-K7UIR22L.js.map +0 -7
  448. package/dist/chunk-L75HW457.js +0 -824
  449. package/dist/chunk-LO6OYUDE.js +0 -158
  450. package/dist/chunk-LO6OYUDE.js.map +0 -7
  451. package/dist/chunk-LRZ463XM.js +0 -612
  452. package/dist/chunk-LRZ463XM.js.map +0 -7
  453. package/dist/chunk-MQQRTH4U.js +0 -302
  454. package/dist/chunk-NPEQHLVG.js +0 -158
  455. package/dist/chunk-NPTHYZY4.js +0 -205
  456. package/dist/chunk-NZDQV7ZO.js +0 -50
  457. package/dist/chunk-O7Z7SQCS.js +0 -534
  458. package/dist/chunk-OSWTQVAX.js +0 -477
  459. package/dist/chunk-OY4NTIUQ.js +0 -1272
  460. package/dist/chunk-OY4NTIUQ.js.map +0 -7
  461. package/dist/chunk-PKDJVK2F.js +0 -381
  462. package/dist/chunk-PSQETQZZ.js +0 -182
  463. package/dist/chunk-QWOZ2QDM.js +0 -386
  464. package/dist/chunk-QZVCFDJ7.js +0 -736
  465. package/dist/chunk-R4BCNWKE.js +0 -54
  466. package/dist/chunk-RRWP2LM4.js +0 -143
  467. package/dist/chunk-S6H6OUOA.js +0 -283
  468. package/dist/chunk-S6OIEQXG.js +0 -443
  469. package/dist/chunk-SDMZUHN7.js +0 -482
  470. package/dist/chunk-SKZ37PND.js +0 -129
  471. package/dist/chunk-STQU7XZV.js +0 -1814
  472. package/dist/chunk-STQU7XZV.js.map +0 -7
  473. package/dist/chunk-SY63VCQB.js +0 -95
  474. package/dist/chunk-TEQ2PC7Z.js +0 -100
  475. package/dist/chunk-TRY57CMI.js +0 -148
  476. package/dist/chunk-TXJTOTIQ.js +0 -1102
  477. package/dist/chunk-UK3PTE3P.js +0 -20752
  478. package/dist/chunk-UK3PTE3P.js.map +0 -7
  479. package/dist/chunk-UT2PKKQ4.js +0 -254
  480. package/dist/chunk-VDPQ2ZV2.js +0 -95
  481. package/dist/chunk-VJH3NP42.js +0 -54
  482. package/dist/chunk-W3LVNVG3.js +0 -272
  483. package/dist/chunk-WC62ZAWT.js +0 -293
  484. package/dist/chunk-WKMZ4ZQ3.js +0 -407
  485. package/dist/chunk-WKMZ4ZQ3.js.map +0 -7
  486. package/dist/chunk-X27TRPIZ.js +0 -119
  487. package/dist/chunk-XIIAQQ4T.js +0 -1179
  488. package/dist/chunk-XIIAQQ4T.js.map +0 -7
  489. package/dist/chunk-XOCO3LVN.js +0 -317
  490. package/dist/chunk-XOCO3LVN.js.map +0 -7
  491. package/dist/chunk-XUFWJJM5.js +0 -454
  492. package/dist/chunk-XUFWJJM5.js.map +0 -7
  493. package/dist/chunk-Y2Z4XDHA.js +0 -170
  494. package/dist/chunk-YFKJ2TMX.js +0 -194
  495. package/dist/chunk-YPVFTNLG.js +0 -228
  496. package/dist/chunk-YPVFTNLG.js.map +0 -7
  497. package/dist/condition-XKEW2LCM.js +0 -332
  498. package/dist/controls-4RFWTHFH.js +0 -41
  499. package/dist/controls.btns-3QQ5FOKQ.js +0 -9
  500. package/dist/controls.config-VHH2IGCI.js +0 -39
  501. package/dist/correlation-HGAMIIPH.js +0 -99
  502. package/dist/correlation-HGAMIIPH.js.map +0 -7
  503. package/dist/cuminc-EHW6IH6V.js +0 -1149
  504. package/dist/cuminc.integration.spec-B3EOIE4K.js +0 -678
  505. package/dist/customdata.inputui-IPJHL7BX.js +0 -289
  506. package/dist/dataDownload-GYFEC6XG.js +0 -330
  507. package/dist/dataDownload.integration.spec-V7WQ6AMV.js +0 -193
  508. package/dist/databrowser.ui-TFAJVFFF.js +0 -433
  509. package/dist/dictionary-2ZSMOJCN.js +0 -111
  510. package/dist/dnaMethylation-RHNO5DAC.js +0 -38
  511. package/dist/dnaMethylation.integration.spec-ET7OLMNC.js +0 -203
  512. package/dist/dofetch-UGCQ3OVW.js +0 -51
  513. package/dist/e2pca-SLRCDKF5.js +0 -350
  514. package/dist/ep-FOFTKVBH.js +0 -1256
  515. package/dist/expclust.gdc.spec-FNOOSLCC.js +0 -307
  516. package/dist/facet-UO5A7AGS.js +0 -521
  517. package/dist/forms2-SFV4HHBA.js +0 -534
  518. package/dist/gb-3KR6MAGB.js +0 -88
  519. package/dist/geneExpClustering-BCDXKSNU.js +0 -249
  520. package/dist/geneExpression-5UPKETEZ.js +0 -313
  521. package/dist/geneExpression-CXQ5HFEP.js +0 -38
  522. package/dist/geneExpression.unit.spec-7FVVD4UF.js +0 -102
  523. package/dist/geneORA-UC45CL2U.js +0 -278
  524. package/dist/geneRanking-OOQWVUIG.js +0 -551
  525. package/dist/geneVariant-BQFB7LKZ.js +0 -39
  526. package/dist/geneVariant-BYN7EWTT.js +0 -41
  527. package/dist/geneVariant.integration.spec-OESHXKBV.js +0 -198
  528. package/dist/genefusion.ui-TOSPIGTE.js +0 -309
  529. package/dist/geneset-57DECCND.js +0 -208
  530. package/dist/genomeBrowser.spec-CQP5JG35.js +0 -281
  531. package/dist/grin2-3RDGRV4Z.js +0 -846
  532. package/dist/grin2-3RDGRV4Z.js.map +0 -7
  533. package/dist/grin2-G4MBI5UC.js +0 -1560
  534. package/dist/gsea-VYAXSBM4.js +0 -47
  535. package/dist/hierCluster-4QKMY7GP.js +0 -59
  536. package/dist/hierCluster-GFPFVB3Q.js +0 -63
  537. package/dist/hierCluster.config-3A24DEKA.js +0 -40
  538. package/dist/hierCluster.integration.spec-6NTJYVN4.js +0 -395
  539. package/dist/hierCluster.interactivity-B2T6WS5R.js +0 -54
  540. package/dist/hierCluster.renderers-R3RLK6BI.js +0 -21
  541. package/dist/imagePlot-YZBZRENG.js +0 -163
  542. package/dist/importPlot-LIXKD3WJ.js +0 -8
  543. package/dist/isoformExpression-ZZ5DL6AE.js +0 -40
  544. package/dist/isoformExpression.unit.spec-IH4247TT.js +0 -208
  545. package/dist/launch.adhoc-3YWVAF7R.js +0 -42
  546. package/dist/leftlabel.sample-XFM45ZKO.js +0 -260
  547. package/dist/lollipop-7K5R5KHB.js +0 -171
  548. package/dist/maf-SQVJHNUY.js +0 -452
  549. package/dist/maftimeline-RCPASNN2.js +0 -593
  550. package/dist/matrix-KHTDB56P.js +0 -63
  551. package/dist/matrix-YTHWIMBP.js +0 -58
  552. package/dist/matrix.cells-KNDVYI2S.js +0 -28
  553. package/dist/matrix.config-6BHBCTXE.js +0 -41
  554. package/dist/matrix.data-VWJQ7N4L.js +0 -25
  555. package/dist/matrix.dom-2SU4EYLI.js +0 -11
  556. package/dist/matrix.groups-5AUHEO52.js +0 -27
  557. package/dist/matrix.integration.spec-Q2BXNCUO.js +0 -3072
  558. package/dist/matrix.interactivity-FEEWY34M.js +0 -42
  559. package/dist/matrix.layout-FWWM6QQO.js +0 -44
  560. package/dist/matrix.legend-QT3PMREX.js +0 -22
  561. package/dist/matrix.renderers-M6MJO5IU.js +0 -38
  562. package/dist/matrix.serieses-NTKMKT22.js +0 -21
  563. package/dist/matrix.sort-TTHPJ4XC.js +0 -27
  564. package/dist/matrix.sort.unit.spec-XZI2KPNC.js +0 -472
  565. package/dist/matrix.sorterUi-FFLYKBGC.js +0 -18
  566. package/dist/matrix.sorterUi.unit.spec-6FVHTGSN.js +0 -342
  567. package/dist/mavb-FZDN27QY.js +0 -732
  568. package/dist/mds.fimo-SSFKQ3BH.js +0 -518
  569. package/dist/mds.samplescatterplot-BMTTX3TB.js +0 -1550
  570. package/dist/mds.survivalplot-PL75RDYI.js +0 -483
  571. package/dist/numericDictTermCluster-NJUXCQYH.js +0 -72
  572. package/dist/oncomatrix-BZDCCEWH.js +0 -295
  573. package/dist/oncomatrix.spec-5A4A4JLV.js +0 -448
  574. package/dist/plot.2dvaf-AC7LW56S.js +0 -377
  575. package/dist/plot.app-DOOWDQ3U.js +0 -41
  576. package/dist/plot.barplot-RNJWREG5.js +0 -102
  577. package/dist/plot.boxplot-CRAEUBQF.js +0 -152
  578. package/dist/plot.brainImaging-ZESEULN6.js +0 -51
  579. package/dist/plot.disco-B4KBP6RK.js +0 -102
  580. package/dist/plot.dzi-2UMRV6IF.js +0 -33
  581. package/dist/plot.ssgq-FVZ27Z2K.js +0 -139
  582. package/dist/plot.vaf2cov-3OXCIEAX.js +0 -259
  583. package/dist/plot.wsi-UKTLZSYW.js +0 -36
  584. package/dist/polar2-D6T34ONJ.js +0 -226
  585. package/dist/polar2-D6T34ONJ.js.map +0 -7
  586. package/dist/profileForms-SBNPRIFT.js +0 -441
  587. package/dist/profilePlot-PPI4IDP4.js +0 -54
  588. package/dist/proteinView-URQEZSH5.js +0 -1320
  589. package/dist/proteinView-URQEZSH5.js.map +0 -7
  590. package/dist/qualitative-4O6KAGEA.js +0 -43
  591. package/dist/radar2-ICKCJY4T.js +0 -321
  592. package/dist/radarFacility2-HEBBSM3T.js +0 -329
  593. package/dist/regression-YFQJE2EP.js +0 -56
  594. package/dist/regression.inputs-A2JVBVZ7.js +0 -48
  595. package/dist/regression.inputs.term-CTVNS5MO.js +0 -48
  596. package/dist/regression.inputs.values.table-X7SI6EDO.js +0 -45
  597. package/dist/regression.integration.spec-NRDEVBWS.js +0 -784
  598. package/dist/regression.results-XVB6CIGW.js +0 -40
  599. package/dist/regression.spec-TNB5HBY5.js +0 -708
  600. package/dist/report-5VDIBC2W.js +0 -222
  601. package/dist/sampleScatter.spec-XDW7SCYA.js +0 -202
  602. package/dist/sampleView-FLUSGZCM.js +0 -48
  603. package/dist/samplelst-4WPG5UBN.js +0 -111
  604. package/dist/samplematrix-YJGMSXUJ.js +0 -2198
  605. package/dist/sc-DHU5KSEJ.js +0 -86
  606. package/dist/scatter-UZMWX3DU.js +0 -854
  607. package/dist/scatter-UZMWX3DU.js.map +0 -7
  608. package/dist/scatter.integration.spec-YX5OC3L2.js +0 -1196
  609. package/dist/scatter.integration.spec-YX5OC3L2.js.map +0 -7
  610. package/dist/selectGenomeWithTklst-BVBMVRMQ.js +0 -134
  611. package/dist/singleCellCellType-DADK5UKZ.js +0 -38
  612. package/dist/singleCellCellType.unit.spec-X25RMBJ3.js +0 -160
  613. package/dist/singleCellGeneExpression-3UEZWI4E.js +0 -38
  614. package/dist/singleCellGeneExpression.unit.spec-5GU3JWE6.js +0 -153
  615. package/dist/singleCellPlot-TFRZG73T.js +0 -54
  616. package/dist/singlecell-HQH6EWJO.js +0 -1572
  617. package/dist/singlecell-KR6JYFAY.js +0 -86
  618. package/dist/snp-ACIZ7D5X.js +0 -38
  619. package/dist/snp.unit.spec-653HGJBM.js +0 -176
  620. package/dist/snplocus-AH6KJCVN.js +0 -208
  621. package/dist/spliceevent.a53ss.diagram-MKJLJDOG.js +0 -151
  622. package/dist/spliceevent.exonskip.diagram-PSEVCDH4.js +0 -277
  623. package/dist/spliceevent.noeventdiagram-T2LHGFN7.js +0 -460
  624. package/dist/ssGSEA-QFMYBITZ.js +0 -38
  625. package/dist/ssGSEA.unit.spec-SQW7KFWE.js +0 -88
  626. package/dist/stattable-QDIUQCMG.js +0 -90
  627. package/dist/summarizeCnvGeneexp-EVRTBY3L.js +0 -163
  628. package/dist/summarizeGeneexpSurvival-O3MGRS6K.js +0 -108
  629. package/dist/summarizeMutationCnv-RZ2DZ2XO.js +0 -164
  630. package/dist/summarizeMutationDiagnosis-V2DISQTC.js +0 -40
  631. package/dist/summarizeMutationSurvival-FTTWJBUG.js +0 -99
  632. package/dist/summary-QKBTZINC.js +0 -49
  633. package/dist/summary.integration.spec-54HA7BC2.js +0 -414
  634. package/dist/summaryInput-4RLZT6RW.js +0 -235
  635. package/dist/sunburst-SMKD45XD.js +0 -284
  636. package/dist/survival-BAW5ME6J.js +0 -46
  637. package/dist/survival-YQNA3WP7.js +0 -58
  638. package/dist/survival.integration.spec-2AHXNMH2.js +0 -821
  639. package/dist/svgraph-5Z7VAIVR.js +0 -1387
  640. package/dist/svmr-PHD76RV4.js +0 -3842
  641. package/dist/table-GMRAOIWZ.js +0 -200
  642. package/dist/termCollection-MEBY34TJ.js +0 -179
  643. package/dist/termCollection-QLKTRXUR.js +0 -38
  644. package/dist/termCollection.unit.spec-6B53SW2Q.js +0 -208
  645. package/dist/termInfo-2Z4V2QLE.js +0 -9
  646. package/dist/tk-X46SEOL7.js +0 -46
  647. package/dist/tp.ui-XV7CL7CA.js +0 -1459
  648. package/dist/tvs.dt-U6SIZTXW.js +0 -39
  649. package/dist/tvs.dtcnv.categorical-6YGEKMHW.js +0 -40
  650. package/dist/tvs.dtcnv.continuous-CQFEENBO.js +0 -72
  651. package/dist/tvs.dtfusion-NOBT2JPI.js +0 -40
  652. package/dist/tvs.dtsnvindel-6GTCSVAV.js +0 -40
  653. package/dist/tvs.dtsv-PMI4YVI5.js +0 -40
  654. package/dist/tvs.samplelst-HVNYKHXG.js +0 -104
  655. package/dist/tvs.termCollection-EWGTT75Z.js +0 -159
  656. package/dist/violin-MKWRB25Z.js +0 -46
  657. package/dist/violin.integration.spec-CNWJ43SD.js +0 -1425
  658. package/dist/violin.interactivity-UXOMTGSD.js +0 -38
  659. package/dist/violin.renderer-67Q6YGYQ.js +0 -40
  660. package/dist/vocabulary-AKXE7SNU.js +0 -41
  661. /package/dist/{2dmaf-ZCIOFNSJ.js.map → 2dmaf-V4WJ2LEK.js.map} +0 -0
  662. /package/dist/{AIProjectAdmin-Z7EA2Y74.js.map → AIProjectAdmin-JMN5O6YU.js.map} +0 -0
  663. /package/dist/{AppHeader-4AZ76NN3.js.map → AppHeader-Y4SEKCEF.js.map} +0 -0
  664. /package/dist/{CorrelationVolcano-L5VSJWJF.js.map → CorrelationVolcano-R5IWD6WA.js.map} +0 -0
  665. /package/dist/{DE-7TPZWAKI.js.map → DE-ZV6O7B6Y.js.map} +0 -0
  666. /package/dist/{DEinput-WQJEXWGY.js.map → DEinput-FTOALZKN.js.map} +0 -0
  667. /package/dist/{DifferentialAnalysis-FPG7RDNN.js.map → DifferentialAnalysis-NLCA766A.js.map} +0 -0
  668. /package/dist/{Disco-WP2BBL5V.js.map → Disco-Y5Z4A7GN.js.map} +0 -0
  669. /package/dist/{Disco.UI-ZYSUA57E.js.map → Disco.UI-GSWZYIUT.js.map} +0 -0
  670. /package/dist/{DmrPlot-V3E7JMPN.js.map → DmrPlot-FEFUCIGT.js.map} +0 -0
  671. /package/dist/{DziViewer-ZHAPJ457.js.map → DziViewer-6737GC22.js.map} +0 -0
  672. /package/dist/{GB-BKLVGYWP.js.map → GB-AOXF2JJB.js.map} +0 -0
  673. /package/dist/{GeneExpInput-7V72SRDT.js.map → GeneExpInput-CXYRKQU7.js.map} +0 -0
  674. /package/dist/{HicApp-IT5YNABL.js.map → HicApp-GLNNZ4H5.js.map} +0 -0
  675. /package/dist/{NumBinaryEditor.unit.spec-C3WVAXMY.js.map → NumBinaryEditor.unit.spec-3VTJLILH.js.map} +0 -0
  676. /package/dist/{NumContEditor.unit.spec-4IGP657P.js.map → NumContEditor.unit.spec-WIMYCOVO.js.map} +0 -0
  677. /package/dist/{NumCustomBinEditor-QC4D63Y5.js.map → NumCustomBinEditor-XIOAYWOD.js.map} +0 -0
  678. /package/dist/{NumCustomBinEditor.unit.spec-USLECMWI.js.map → NumCustomBinEditor.unit.spec-N5OV6MKR.js.map} +0 -0
  679. /package/dist/{NumDiscreteEditor-PRAI76XQ.js.map → NumDiscreteEditor-AT6FKYGI.js.map} +0 -0
  680. /package/dist/{NumDiscreteEditor.unit.spec-IWL3OCTC.js.map → NumDiscreteEditor.unit.spec-BDR5GZ46.js.map} +0 -0
  681. /package/dist/{NumRegularBinEditor-ESL2HAD7.js.map → NumRegularBinEditor-Z4NBS4VZ.js.map} +0 -0
  682. /package/dist/{NumRegularBinEditor.unit.spec-7LLZAW4Z.js.map → NumRegularBinEditor.unit.spec-BRWYNQ55.js.map} +0 -0
  683. /package/dist/{NumSplineEditor.unit.spec-3SHSXTC7.js.map → NumSplineEditor.unit.spec-5RDBCZ4N.js.map} +0 -0
  684. /package/dist/{NumericDensity-SGYRBDCQ.js.map → NumericDensity-L7HIVV7D.js.map} +0 -0
  685. /package/dist/{NumericDensity.unit.spec-Y6JMH6IR.js.map → NumericDensity.unit.spec-PL3XDJCV.js.map} +0 -0
  686. /package/dist/{NumericHandler-YG7AMINA.js.map → NumericHandler-KJYZOCCG.js.map} +0 -0
  687. /package/dist/{NumericHandler.unit.spec-CABSMERN.js.map → NumericHandler.unit.spec-VC7NPLJW.js.map} +0 -0
  688. /package/dist/{ProteomeInput-2WPCK72Z.js.map → ProteomeInput-A3GRPIAH.js.map} +0 -0
  689. /package/dist/{RunChart2-PJWMDWJR.js.map → RunChart2-MSNU3ZNT.js.map} +0 -0
  690. /package/dist/{SC-WVVUFPNU.js.map → SC-FNKG2FK5.js.map} +0 -0
  691. /package/dist/{Volcano-7JI4LUSF.js.map → Volcano-IRJMPHXJ.js.map} +0 -0
  692. /package/dist/{WSIViewer-GDSOEEA6.js.map → WSIViewer-KITT7I67.js.map} +0 -0
  693. /package/dist/{WsiSamplesPlot-Z5C3NPF7.js.map → WsiSamplesPlot-G3YZ6SIE.js.map} +0 -0
  694. /package/dist/{adSandbox-KQKENDNQ.js.map → adSandbox-GIQTJ4VA.js.map} +0 -0
  695. /package/dist/{app-4OEY56FN.js.map → app-MGNEMS2K.js.map} +0 -0
  696. /package/dist/{app-TGMYXJ4E.js.map → app-UQTHPQFD.js.map} +0 -0
  697. /package/dist/{bam-3IMX42G5.js.map → bam-5PROQBRT.js.map} +0 -0
  698. /package/dist/{barchart-44HOJWVS.js.map → barchart-BQYJ73Z4.js.map} +0 -0
  699. /package/dist/{barchart.data-CHNR4XL2.js.map → barchart.data-VFULOIHY.js.map} +0 -0
  700. /package/dist/{barchart.events-XW5OZ5MR.js.map → barchart.events-W2CIDD4B.js.map} +0 -0
  701. /package/dist/{barchart2-4NU7NWJZ.js.map → barchart2-V6W4UAFH.js.map} +0 -0
  702. /package/dist/{block-OYSZ2JXC.js.map → block-5V2FCT7Q.js.map} +0 -0
  703. /package/dist/{block.init-WSIQLW7A.js.map → block.init-43IUNDNB.js.map} +0 -0
  704. /package/dist/{block.mds.expressionrank-2KWOWDW4.js.map → block.mds.expressionrank-LI6MZPBE.js.map} +0 -0
  705. /package/dist/{block.mds.geneboxplot-6ZAD6A5K.js.map → block.mds.geneboxplot-673AIJMJ.js.map} +0 -0
  706. /package/dist/{block.mds.junction-VQDLHFNG.js.map → block.mds.junction-UWNVNV3X.js.map} +0 -0
  707. /package/dist/{block.mds.svcnv-7OIRG7DQ.js.map → block.mds.svcnv-Z5VFCUUE.js.map} +0 -0
  708. /package/dist/{block.svg-HXAIFHXM.js.map → block.svg-MGK4GWLL.js.map} +0 -0
  709. /package/dist/{block.tk.aicheck-GTGHCUEN.js.map → block.tk.aicheck-OFNDGG7Q.js.map} +0 -0
  710. /package/dist/{block.tk.ase-TAEE2ZHN.js.map → block.tk.ase-IDZQY7MW.js.map} +0 -0
  711. /package/dist/{block.tk.bam-6A26AZ7S.js.map → block.tk.bam-K7A2Q5NI.js.map} +0 -0
  712. /package/dist/{block.tk.bedgraphdot-6MYIVRBC.js.map → block.tk.bedgraphdot-PPTKCCPK.js.map} +0 -0
  713. /package/dist/{block.tk.bigwig.ui-GJ7JXRH3.js.map → block.tk.bigwig.ui-PI6EAU43.js.map} +0 -0
  714. /package/dist/{block.tk.hicstraw-3TCDZ2GM.js.map → block.tk.hicstraw-EZ2GS2K4.js.map} +0 -0
  715. /package/dist/{block.tk.junction-WDBIP7DK.js.map → block.tk.junction-4WSLQGSQ.js.map} +0 -0
  716. /package/dist/{block.tk.junction.textmatrixui-QOV3U7AN.js.map → block.tk.junction.textmatrixui-7EJUSVMB.js.map} +0 -0
  717. /package/dist/{block.tk.ld-GCPH66C3.js.map → block.tk.ld-KLVO7M37.js.map} +0 -0
  718. /package/dist/{block.tk.menu-YDAIYUGC.js.map → block.tk.menu-KZSL7BAR.js.map} +0 -0
  719. /package/dist/{block.tk.pgv-RWOZAUGA.js.map → block.tk.pgv-NYWGB4VH.js.map} +0 -0
  720. /package/dist/{brainImaging-ZAFU6U2Y.js.map → brainImaging-MTIIMJHW.js.map} +0 -0
  721. /package/dist/{chunk-S6OIEQXG.js.map → chunk-2NQLAH3L.js.map} +0 -0
  722. /package/dist/{chunk-DBFPAZG3.js.map → chunk-2Q6PBSPS.js.map} +0 -0
  723. /package/dist/{chunk-GERVYIL4.js.map → chunk-3D5GZIGG.js.map} +0 -0
  724. /package/dist/{chunk-DYVY7D67.js.map → chunk-3TPAIXNL.js.map} +0 -0
  725. /package/dist/{chunk-SY63VCQB.js.map → chunk-42EBECOD.js.map} +0 -0
  726. /package/dist/{chunk-IOQV2VX3.js.map → chunk-4B42QV34.js.map} +0 -0
  727. /package/dist/{chunk-RRWP2LM4.js.map → chunk-4KY4XKJV.js.map} +0 -0
  728. /package/dist/{chunk-TEQ2PC7Z.js.map → chunk-5SXCIKYV.js.map} +0 -0
  729. /package/dist/{chunk-SDMZUHN7.js.map → chunk-647P2I4Q.js.map} +0 -0
  730. /package/dist/{chunk-5YF3LGLX.js.map → chunk-67HSIHPP.js.map} +0 -0
  731. /package/dist/{chunk-TXJTOTIQ.js.map → chunk-6GZJCSA6.js.map} +0 -0
  732. /package/dist/{chunk-GS7SQKJT.js.map → chunk-7JEKUSEL.js.map} +0 -0
  733. /package/dist/{chunk-OSWTQVAX.js.map → chunk-BMO6KSVC.js.map} +0 -0
  734. /package/dist/{chunk-NZDQV7ZO.js.map → chunk-CKDC326M.js.map} +0 -0
  735. /package/dist/{chunk-DCJUDSRM.js.map → chunk-CRUBP5PT.js.map} +0 -0
  736. /package/dist/{chunk-S6H6OUOA.js.map → chunk-CW2Q5EA7.js.map} +0 -0
  737. /package/dist/{chunk-7YWFO7CJ.js.map → chunk-CYHUNQMS.js.map} +0 -0
  738. /package/dist/{chunk-HWVEN2MK.js.map → chunk-DHPLHIVP.js.map} +0 -0
  739. /package/dist/{chunk-PKDJVK2F.js.map → chunk-DWCVGCBX.js.map} +0 -0
  740. /package/dist/{chunk-G6WVVRDA.js.map → chunk-EIBNV236.js.map} +0 -0
  741. /package/dist/{chunk-5TKVUSMQ.js.map → chunk-EZ3WMXYT.js.map} +0 -0
  742. /package/dist/{chunk-QZVCFDJ7.js.map → chunk-F5QIZOPL.js.map} +0 -0
  743. /package/dist/{chunk-BLKF2SE6.js.map → chunk-F6N6JBZR.js.map} +0 -0
  744. /package/dist/{chunk-VJH3NP42.js.map → chunk-FXMHSVBS.js.map} +0 -0
  745. /package/dist/{chunk-3I7TUGLD.js.map → chunk-FZ63VOSX.js.map} +0 -0
  746. /package/dist/{chunk-DNM2DKYE.js.map → chunk-GMT2GNQY.js.map} +0 -0
  747. /package/dist/{chunk-5X6J6UAT.js.map → chunk-IIT367QZ.js.map} +0 -0
  748. /package/dist/{chunk-WC62ZAWT.js.map → chunk-IL5QT2FI.js.map} +0 -0
  749. /package/dist/{chunk-7JXLWRVZ.js.map → chunk-J6GLTYGJ.js.map} +0 -0
  750. /package/dist/{chunk-QWOZ2QDM.js.map → chunk-JEZIKGZI.js.map} +0 -0
  751. /package/dist/{chunk-L75HW457.js.map → chunk-JJOLDYSQ.js.map} +0 -0
  752. /package/dist/{chunk-JSEMZPAO.js.map → chunk-KSCJWPTJ.js.map} +0 -0
  753. /package/dist/{chunk-W3LVNVG3.js.map → chunk-LT5XPBIX.js.map} +0 -0
  754. /package/dist/{chunk-PSQETQZZ.js.map → chunk-MEGBYD4U.js.map} +0 -0
  755. /package/dist/{chunk-Y2Z4XDHA.js.map → chunk-MEY5OBDJ.js.map} +0 -0
  756. /package/dist/{chunk-TRY57CMI.js.map → chunk-NVX26LFC.js.map} +0 -0
  757. /package/dist/{chunk-34SAHEQU.js.map → chunk-O7NFSCEW.js.map} +0 -0
  758. /package/dist/{chunk-HONXMORI.js.map → chunk-P4QGOUDH.js.map} +0 -0
  759. /package/dist/{chunk-SKZ37PND.js.map → chunk-PGBKZ76Y.js.map} +0 -0
  760. /package/dist/{chunk-NPTHYZY4.js.map → chunk-PQNVPSQR.js.map} +0 -0
  761. /package/dist/{chunk-R4BCNWKE.js.map → chunk-PQZ3A27I.js.map} +0 -0
  762. /package/dist/{chunk-5GMXV4VC.js.map → chunk-QNMB7LYW.js.map} +0 -0
  763. /package/dist/{chunk-3L32ZXRS.js.map → chunk-RZGEKL77.js.map} +0 -0
  764. /package/dist/{chunk-NPEQHLVG.js.map → chunk-RZY34QRF.js.map} +0 -0
  765. /package/dist/{chunk-DVH6K2NP.js.map → chunk-SDACELDR.js.map} +0 -0
  766. /package/dist/{chunk-CA2AOIHR.js.map → chunk-UCLROZRF.js.map} +0 -0
  767. /package/dist/{chunk-IWMWT7O7.js.map → chunk-VMLSRKIB.js.map} +0 -0
  768. /package/dist/{chunk-O7Z7SQCS.js.map → chunk-VXKO2ONI.js.map} +0 -0
  769. /package/dist/{chunk-GKBMGKYN.js.map → chunk-WET4LPLO.js.map} +0 -0
  770. /package/dist/{chunk-UT2PKKQ4.js.map → chunk-WMELUFVS.js.map} +0 -0
  771. /package/dist/{chunk-X27TRPIZ.js.map → chunk-WS3NUPNV.js.map} +0 -0
  772. /package/dist/{chunk-I2RRWDYV.js.map → chunk-X63AAJGT.js.map} +0 -0
  773. /package/dist/{chunk-GRNZWYOJ.js.map → chunk-XVZ5UJWU.js.map} +0 -0
  774. /package/dist/{chunk-3JL2HBGE.js.map → chunk-YNBT4N6T.js.map} +0 -0
  775. /package/dist/{chunk-H5NNQO2V.js.map → chunk-YVCTEEVQ.js.map} +0 -0
  776. /package/dist/{chunk-76PGYH5J.js.map → chunk-YWZCJMHS.js.map} +0 -0
  777. /package/dist/{chunk-5ITQVR2P.js.map → chunk-Z3SC67OA.js.map} +0 -0
  778. /package/dist/{chunk-YFKJ2TMX.js.map → chunk-ZK226W6V.js.map} +0 -0
  779. /package/dist/{chunk-MQQRTH4U.js.map → chunk-ZLREFIZB.js.map} +0 -0
  780. /package/dist/{chunk-VDPQ2ZV2.js.map → chunk-ZX2ISBEF.js.map} +0 -0
  781. /package/dist/{condition-XKEW2LCM.js.map → condition-P2XD32QM.js.map} +0 -0
  782. /package/dist/{controls-4RFWTHFH.js.map → controls-FZUTJPKV.js.map} +0 -0
  783. /package/dist/{controls.btns-3QQ5FOKQ.js.map → controls.btns-AP67YWKW.js.map} +0 -0
  784. /package/dist/{controls.config-VHH2IGCI.js.map → controls.config-TEFY3NTE.js.map} +0 -0
  785. /package/dist/{cuminc-EHW6IH6V.js.map → cuminc-42GBJHD3.js.map} +0 -0
  786. /package/dist/{cuminc.integration.spec-B3EOIE4K.js.map → cuminc.integration.spec-BAY4JHVL.js.map} +0 -0
  787. /package/dist/{customdata.inputui-IPJHL7BX.js.map → customdata.inputui-IPM5K56K.js.map} +0 -0
  788. /package/dist/{dataDownload-GYFEC6XG.js.map → dataDownload-D7VCYBDT.js.map} +0 -0
  789. /package/dist/{dataDownload.integration.spec-V7WQ6AMV.js.map → dataDownload.integration.spec-SEBY2BIX.js.map} +0 -0
  790. /package/dist/{databrowser.ui-TFAJVFFF.js.map → databrowser.ui-5OC5MPZB.js.map} +0 -0
  791. /package/dist/{dictionary-2ZSMOJCN.js.map → dictionary-VVRWVLJX.js.map} +0 -0
  792. /package/dist/{dnaMethylation-RHNO5DAC.js.map → dnaMethylation-72IS3FRI.js.map} +0 -0
  793. /package/dist/{dnaMethylation.integration.spec-ET7OLMNC.js.map → dnaMethylation.integration.spec-U2LLSDGE.js.map} +0 -0
  794. /package/dist/{dofetch-UGCQ3OVW.js.map → dofetch-5ZRAQH5F.js.map} +0 -0
  795. /package/dist/{e2pca-SLRCDKF5.js.map → e2pca-AR6EKEJA.js.map} +0 -0
  796. /package/dist/{ep-FOFTKVBH.js.map → ep-JS5UUJQX.js.map} +0 -0
  797. /package/dist/{expclust.gdc.spec-FNOOSLCC.js.map → expclust.gdc.spec-73MGQ7RN.js.map} +0 -0
  798. /package/dist/{facet-UO5A7AGS.js.map → facet-AR3QKHCY.js.map} +0 -0
  799. /package/dist/{forms2-SFV4HHBA.js.map → forms2-UXEI7MUP.js.map} +0 -0
  800. /package/dist/{gb-3KR6MAGB.js.map → gb-RHDVYU2V.js.map} +0 -0
  801. /package/dist/{geneExpClustering-BCDXKSNU.js.map → geneExpClustering-L6KLCMPH.js.map} +0 -0
  802. /package/dist/{geneExpression-5UPKETEZ.js.map → geneExpression-GYT2XRE6.js.map} +0 -0
  803. /package/dist/{geneExpression-CXQ5HFEP.js.map → geneExpression-SKIU3NEP.js.map} +0 -0
  804. /package/dist/{geneExpression.unit.spec-7FVVD4UF.js.map → geneExpression.unit.spec-CWR6KDVK.js.map} +0 -0
  805. /package/dist/{geneORA-UC45CL2U.js.map → geneORA-C3TALK5P.js.map} +0 -0
  806. /package/dist/{geneRanking-OOQWVUIG.js.map → geneRanking-LLYLDPLV.js.map} +0 -0
  807. /package/dist/{geneVariant-BQFB7LKZ.js.map → geneVariant-PUSKBHPY.js.map} +0 -0
  808. /package/dist/{geneVariant-BYN7EWTT.js.map → geneVariant-YFMU6PHM.js.map} +0 -0
  809. /package/dist/{geneVariant.integration.spec-OESHXKBV.js.map → geneVariant.integration.spec-EJ5V46OQ.js.map} +0 -0
  810. /package/dist/{genefusion.ui-TOSPIGTE.js.map → genefusion.ui-XUHSKQKW.js.map} +0 -0
  811. /package/dist/{geneset-57DECCND.js.map → geneset-DEL5LXFZ.js.map} +0 -0
  812. /package/dist/{genomeBrowser.spec-CQP5JG35.js.map → genomeBrowser.spec-W5TVHOUJ.js.map} +0 -0
  813. /package/dist/{grin2-G4MBI5UC.js.map → grin2-FXAEGECD.js.map} +0 -0
  814. /package/dist/{gsea-VYAXSBM4.js.map → gsea-CNL6SHH5.js.map} +0 -0
  815. /package/dist/{hierCluster-4QKMY7GP.js.map → hierCluster-7V65PMIW.js.map} +0 -0
  816. /package/dist/{hierCluster-GFPFVB3Q.js.map → hierCluster-C44GHM4B.js.map} +0 -0
  817. /package/dist/{hierCluster.config-3A24DEKA.js.map → hierCluster.config-RU5JDPWM.js.map} +0 -0
  818. /package/dist/{hierCluster.integration.spec-6NTJYVN4.js.map → hierCluster.integration.spec-6YH5KE4H.js.map} +0 -0
  819. /package/dist/{hierCluster.interactivity-B2T6WS5R.js.map → hierCluster.interactivity-PK2L7BSW.js.map} +0 -0
  820. /package/dist/{hierCluster.renderers-R3RLK6BI.js.map → hierCluster.renderers-G3274UYA.js.map} +0 -0
  821. /package/dist/{imagePlot-YZBZRENG.js.map → imagePlot-5SEDMPBP.js.map} +0 -0
  822. /package/dist/{importPlot-LIXKD3WJ.js.map → importPlot-M3MKWRON.js.map} +0 -0
  823. /package/dist/{isoformExpression-ZZ5DL6AE.js.map → isoformExpression-PPMISWKT.js.map} +0 -0
  824. /package/dist/{isoformExpression.unit.spec-IH4247TT.js.map → isoformExpression.unit.spec-ENHCCQRZ.js.map} +0 -0
  825. /package/dist/{launch.adhoc-3YWVAF7R.js.map → launch.adhoc-XAG6H42J.js.map} +0 -0
  826. /package/dist/{leftlabel.sample-XFM45ZKO.js.map → leftlabel.sample-BSPCI6GR.js.map} +0 -0
  827. /package/dist/{lollipop-7K5R5KHB.js.map → lollipop-IZJ7E3YO.js.map} +0 -0
  828. /package/dist/{maf-SQVJHNUY.js.map → maf-54XWBQ73.js.map} +0 -0
  829. /package/dist/{maftimeline-RCPASNN2.js.map → maftimeline-3AJKAFS6.js.map} +0 -0
  830. /package/dist/{matrix-KHTDB56P.js.map → matrix-AJPMHUXG.js.map} +0 -0
  831. /package/dist/{matrix-YTHWIMBP.js.map → matrix-ZMXNOESU.js.map} +0 -0
  832. /package/dist/{matrix.cells-KNDVYI2S.js.map → matrix.cells-E3LEVA7U.js.map} +0 -0
  833. /package/dist/{matrix.config-6BHBCTXE.js.map → matrix.config-4WLSFMTY.js.map} +0 -0
  834. /package/dist/{matrix.data-VWJQ7N4L.js.map → matrix.data-WMOTOB6C.js.map} +0 -0
  835. /package/dist/{matrix.dom-2SU4EYLI.js.map → matrix.dom-F7AN3QGE.js.map} +0 -0
  836. /package/dist/{matrix.groups-5AUHEO52.js.map → matrix.groups-BGMZZ6CM.js.map} +0 -0
  837. /package/dist/{matrix.integration.spec-Q2BXNCUO.js.map → matrix.integration.spec-ENRPVB7R.js.map} +0 -0
  838. /package/dist/{matrix.interactivity-FEEWY34M.js.map → matrix.interactivity-IMWERCZF.js.map} +0 -0
  839. /package/dist/{matrix.layout-FWWM6QQO.js.map → matrix.layout-5DDZWLNX.js.map} +0 -0
  840. /package/dist/{matrix.legend-QT3PMREX.js.map → matrix.legend-RJAFOZHQ.js.map} +0 -0
  841. /package/dist/{matrix.renderers-M6MJO5IU.js.map → matrix.renderers-VFQZG5JP.js.map} +0 -0
  842. /package/dist/{matrix.serieses-NTKMKT22.js.map → matrix.serieses-GJWHSBG4.js.map} +0 -0
  843. /package/dist/{matrix.sort-TTHPJ4XC.js.map → matrix.sort-KIJENIT2.js.map} +0 -0
  844. /package/dist/{matrix.sort.unit.spec-XZI2KPNC.js.map → matrix.sort.unit.spec-ZA5DRNL6.js.map} +0 -0
  845. /package/dist/{matrix.sorterUi-FFLYKBGC.js.map → matrix.sorterUi-3KEDVLGW.js.map} +0 -0
  846. /package/dist/{matrix.sorterUi.unit.spec-6FVHTGSN.js.map → matrix.sorterUi.unit.spec-7TPOJ46U.js.map} +0 -0
  847. /package/dist/{mavb-FZDN27QY.js.map → mavb-73BXZ7MO.js.map} +0 -0
  848. /package/dist/{mds.fimo-SSFKQ3BH.js.map → mds.fimo-L7VVAOXQ.js.map} +0 -0
  849. /package/dist/{mds.samplescatterplot-BMTTX3TB.js.map → mds.samplescatterplot-6P75XEWB.js.map} +0 -0
  850. /package/dist/{mds.survivalplot-PL75RDYI.js.map → mds.survivalplot-GCVE7XGO.js.map} +0 -0
  851. /package/dist/{numericDictTermCluster-NJUXCQYH.js.map → numericDictTermCluster-OMXIURRD.js.map} +0 -0
  852. /package/dist/{oncomatrix-BZDCCEWH.js.map → oncomatrix-BFWV2IC4.js.map} +0 -0
  853. /package/dist/{oncomatrix.spec-5A4A4JLV.js.map → oncomatrix.spec-J6IAY3O6.js.map} +0 -0
  854. /package/dist/{plot.2dvaf-AC7LW56S.js.map → plot.2dvaf-ESJAB2F3.js.map} +0 -0
  855. /package/dist/{plot.app-DOOWDQ3U.js.map → plot.app-T7CQMBRV.js.map} +0 -0
  856. /package/dist/{plot.barplot-RNJWREG5.js.map → plot.barplot-HAWPMPPU.js.map} +0 -0
  857. /package/dist/{plot.boxplot-CRAEUBQF.js.map → plot.boxplot-4QUORFXY.js.map} +0 -0
  858. /package/dist/{plot.brainImaging-ZESEULN6.js.map → plot.brainImaging-HG6I3GJW.js.map} +0 -0
  859. /package/dist/{plot.disco-B4KBP6RK.js.map → plot.disco-LPH7F6YW.js.map} +0 -0
  860. /package/dist/{plot.dzi-2UMRV6IF.js.map → plot.dzi-DYAY4D4E.js.map} +0 -0
  861. /package/dist/{plot.ssgq-FVZ27Z2K.js.map → plot.ssgq-CF5VIGYJ.js.map} +0 -0
  862. /package/dist/{plot.vaf2cov-3OXCIEAX.js.map → plot.vaf2cov-7HZCKNK6.js.map} +0 -0
  863. /package/dist/{plot.wsi-UKTLZSYW.js.map → plot.wsi-MU6AXOWO.js.map} +0 -0
  864. /package/dist/{profileForms-SBNPRIFT.js.map → profileForms-TIT4JUEJ.js.map} +0 -0
  865. /package/dist/{profilePlot-PPI4IDP4.js.map → profilePlot-QFGRAZQA.js.map} +0 -0
  866. /package/dist/{qualitative-4O6KAGEA.js.map → qualitative-YWP4YUPF.js.map} +0 -0
  867. /package/dist/{radar2-ICKCJY4T.js.map → radar2-TKSHL54E.js.map} +0 -0
  868. /package/dist/{radarFacility2-HEBBSM3T.js.map → radarFacility2-FHRFLBLF.js.map} +0 -0
  869. /package/dist/{regression-YFQJE2EP.js.map → regression-5XG5LXP7.js.map} +0 -0
  870. /package/dist/{regression.inputs-A2JVBVZ7.js.map → regression.inputs-QHXK7ZYY.js.map} +0 -0
  871. /package/dist/{regression.inputs.term-CTVNS5MO.js.map → regression.inputs.term-YYO3CR2D.js.map} +0 -0
  872. /package/dist/{regression.inputs.values.table-X7SI6EDO.js.map → regression.inputs.values.table-3I2FCON2.js.map} +0 -0
  873. /package/dist/{regression.integration.spec-NRDEVBWS.js.map → regression.integration.spec-QVDGCKVT.js.map} +0 -0
  874. /package/dist/{regression.results-XVB6CIGW.js.map → regression.results-B7LVT2WG.js.map} +0 -0
  875. /package/dist/{regression.spec-TNB5HBY5.js.map → regression.spec-ISYKKQOM.js.map} +0 -0
  876. /package/dist/{report-5VDIBC2W.js.map → report-TF6Z3Y44.js.map} +0 -0
  877. /package/dist/{sampleScatter.spec-XDW7SCYA.js.map → sampleScatter.spec-2VW55XIZ.js.map} +0 -0
  878. /package/dist/{sampleView-FLUSGZCM.js.map → sampleView-DNNJRAMU.js.map} +0 -0
  879. /package/dist/{samplelst-4WPG5UBN.js.map → samplelst-726II3LN.js.map} +0 -0
  880. /package/dist/{samplematrix-YJGMSXUJ.js.map → samplematrix-TBPW4URH.js.map} +0 -0
  881. /package/dist/{sc-DHU5KSEJ.js.map → sc-GBYH3W4S.js.map} +0 -0
  882. /package/dist/{selectGenomeWithTklst-BVBMVRMQ.js.map → selectGenomeWithTklst-RCAYDV6D.js.map} +0 -0
  883. /package/dist/{singleCellCellType-DADK5UKZ.js.map → singleCellCellType-IQYCKUT6.js.map} +0 -0
  884. /package/dist/{singleCellCellType.unit.spec-X25RMBJ3.js.map → singleCellCellType.unit.spec-ZEWA2IFI.js.map} +0 -0
  885. /package/dist/{singleCellGeneExpression-3UEZWI4E.js.map → singleCellGeneExpression-STLTBXJQ.js.map} +0 -0
  886. /package/dist/{singleCellGeneExpression.unit.spec-5GU3JWE6.js.map → singleCellGeneExpression.unit.spec-W6FPS5ZU.js.map} +0 -0
  887. /package/dist/{singleCellPlot-TFRZG73T.js.map → singleCellPlot-7XH7NIL4.js.map} +0 -0
  888. /package/dist/{singlecell-KR6JYFAY.js.map → singlecell-IDZB2MXW.js.map} +0 -0
  889. /package/dist/{singlecell-HQH6EWJO.js.map → singlecell-JCXR7X5U.js.map} +0 -0
  890. /package/dist/{snp-ACIZ7D5X.js.map → snp-QOKI26PO.js.map} +0 -0
  891. /package/dist/{snp.unit.spec-653HGJBM.js.map → snp.unit.spec-DTPZAALW.js.map} +0 -0
  892. /package/dist/{snplocus-AH6KJCVN.js.map → snplocus-BKUJYANW.js.map} +0 -0
  893. /package/dist/{spliceevent.a53ss.diagram-MKJLJDOG.js.map → spliceevent.a53ss.diagram-4O54ORKZ.js.map} +0 -0
  894. /package/dist/{spliceevent.exonskip.diagram-PSEVCDH4.js.map → spliceevent.exonskip.diagram-KOIOS6IV.js.map} +0 -0
  895. /package/dist/{spliceevent.noeventdiagram-T2LHGFN7.js.map → spliceevent.noeventdiagram-YGUGQMVE.js.map} +0 -0
  896. /package/dist/{ssGSEA-QFMYBITZ.js.map → ssGSEA-UZMBIHVD.js.map} +0 -0
  897. /package/dist/{ssGSEA.unit.spec-SQW7KFWE.js.map → ssGSEA.unit.spec-4YO4E3T7.js.map} +0 -0
  898. /package/dist/{stattable-QDIUQCMG.js.map → stattable-MDABSW3F.js.map} +0 -0
  899. /package/dist/{summarizeCnvGeneexp-EVRTBY3L.js.map → summarizeCnvGeneexp-HV3DHIW4.js.map} +0 -0
  900. /package/dist/{summarizeGeneexpSurvival-O3MGRS6K.js.map → summarizeGeneexpSurvival-VGPRWYQ5.js.map} +0 -0
  901. /package/dist/{summarizeMutationCnv-RZ2DZ2XO.js.map → summarizeMutationCnv-N3JEB4DJ.js.map} +0 -0
  902. /package/dist/{summarizeMutationDiagnosis-V2DISQTC.js.map → summarizeMutationDiagnosis-6U4DBLG5.js.map} +0 -0
  903. /package/dist/{summarizeMutationSurvival-FTTWJBUG.js.map → summarizeMutationSurvival-S7NLAVEI.js.map} +0 -0
  904. /package/dist/{summary-QKBTZINC.js.map → summary-NPR56I4S.js.map} +0 -0
  905. /package/dist/{summary.integration.spec-54HA7BC2.js.map → summary.integration.spec-HWNJWLKT.js.map} +0 -0
  906. /package/dist/{summaryInput-4RLZT6RW.js.map → summaryInput-DO73NGDQ.js.map} +0 -0
  907. /package/dist/{sunburst-SMKD45XD.js.map → sunburst-MMXSGJSL.js.map} +0 -0
  908. /package/dist/{survival-YQNA3WP7.js.map → survival-7AIKFGV5.js.map} +0 -0
  909. /package/dist/{survival-BAW5ME6J.js.map → survival-UK332X6L.js.map} +0 -0
  910. /package/dist/{survival.integration.spec-2AHXNMH2.js.map → survival.integration.spec-YMTEKEGB.js.map} +0 -0
  911. /package/dist/{svgraph-5Z7VAIVR.js.map → svgraph-MLLAYO4A.js.map} +0 -0
  912. /package/dist/{svmr-PHD76RV4.js.map → svmr-PYW4PLT3.js.map} +0 -0
  913. /package/dist/{table-GMRAOIWZ.js.map → table-Y3ED2444.js.map} +0 -0
  914. /package/dist/{termCollection-QLKTRXUR.js.map → termCollection-3XVL75II.js.map} +0 -0
  915. /package/dist/{termCollection-MEBY34TJ.js.map → termCollection-VAB53YGO.js.map} +0 -0
  916. /package/dist/{termCollection.unit.spec-6B53SW2Q.js.map → termCollection.unit.spec-DYPWNVEZ.js.map} +0 -0
  917. /package/dist/{termInfo-2Z4V2QLE.js.map → termInfo-6MJDJSDW.js.map} +0 -0
  918. /package/dist/{tk-X46SEOL7.js.map → tk-GUGJYKJ2.js.map} +0 -0
  919. /package/dist/{tp.ui-XV7CL7CA.js.map → tp.ui-WGETBYJQ.js.map} +0 -0
  920. /package/dist/{tvs.dt-U6SIZTXW.js.map → tvs.dt-JWF4I3KY.js.map} +0 -0
  921. /package/dist/{tvs.dtcnv.categorical-6YGEKMHW.js.map → tvs.dtcnv.categorical-72Y5QMPL.js.map} +0 -0
  922. /package/dist/{tvs.dtcnv.continuous-CQFEENBO.js.map → tvs.dtcnv.continuous-73LHWTU5.js.map} +0 -0
  923. /package/dist/{tvs.dtfusion-NOBT2JPI.js.map → tvs.dtfusion-LP6HUMZU.js.map} +0 -0
  924. /package/dist/{tvs.dtsnvindel-6GTCSVAV.js.map → tvs.dtsnvindel-23N2CFZJ.js.map} +0 -0
  925. /package/dist/{tvs.dtsv-PMI4YVI5.js.map → tvs.dtsv-DILQVKYM.js.map} +0 -0
  926. /package/dist/{tvs.samplelst-HVNYKHXG.js.map → tvs.samplelst-GV4VSCRF.js.map} +0 -0
  927. /package/dist/{tvs.termCollection-EWGTT75Z.js.map → tvs.termCollection-KBDNXK7X.js.map} +0 -0
  928. /package/dist/{violin-MKWRB25Z.js.map → violin-TYUP7FB5.js.map} +0 -0
  929. /package/dist/{violin.integration.spec-CNWJ43SD.js.map → violin.integration.spec-ULRFK2A6.js.map} +0 -0
  930. /package/dist/{violin.interactivity-UXOMTGSD.js.map → violin.interactivity-2QZVQWQJ.js.map} +0 -0
  931. /package/dist/{violin.renderer-67Q6YGYQ.js.map → violin.renderer-HCDSN62Z.js.map} +0 -0
  932. /package/dist/{vocabulary-AKXE7SNU.js.map → vocabulary-I4CMPN2Z.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