@sjcrh/proteinpaint-client 2.200.0 → 2.201.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (993) hide show
  1. package/dist/2dmaf-6MNHNHWX.js +1373 -0
  2. package/dist/AIProjectAdmin-W36NGUX2.js +958 -0
  3. package/dist/AggregateMatrix-YH2SN6VN.js +671 -0
  4. package/dist/AggregateMatrix-YH2SN6VN.js.map +7 -0
  5. package/dist/AppHeader-I5CFECIL.js +835 -0
  6. package/dist/BoxPlot-4SXDAOBP.js +1218 -0
  7. package/dist/CorrelationVolcano-NAWMGG4Q.js +619 -0
  8. package/dist/DE-VZMT7KEM.js +95 -0
  9. package/dist/DEinput-TKERM2YD.js +409 -0
  10. package/dist/DifferentialAnalysis-Y4SU4BVP.js +243 -0
  11. package/dist/Disco-DLK3BYPV.js +3392 -0
  12. package/dist/Disco.UI-IKGMFG36.js +248 -0
  13. package/dist/DmrPlot-JWBZJFS6.js +642 -0
  14. package/dist/GB-3UZSSIBW.js +1396 -0
  15. package/dist/GSEA-YLHBZY55.js +846 -0
  16. package/dist/GeneExpInput-KX5I63YV.js +367 -0
  17. package/dist/Geomap-QTUHM4VH.js +89 -0
  18. package/dist/HicApp-M2OCHGRT.js +2250 -0
  19. package/dist/IDCViewer-SWFBLBZH.js +10817 -0
  20. package/dist/NumBinaryEditor-ILFP6DR7.js +284 -0
  21. package/dist/NumBinaryEditor-ILFP6DR7.js.map +7 -0
  22. package/dist/NumBinaryEditor.unit.spec-TNIH7GQB.js +317 -0
  23. package/dist/NumBinaryEditor.unit.spec-TNIH7GQB.js.map +7 -0
  24. package/dist/NumContEditor-7UR3QMO6.js +110 -0
  25. package/dist/NumContEditor-7UR3QMO6.js.map +7 -0
  26. package/dist/NumContEditor.unit.spec-P67AFEHM.js +169 -0
  27. package/dist/NumCustomBinEditor-H22J4K47.js +38 -0
  28. package/dist/NumCustomBinEditor.unit.spec-CO76BQPZ.js +402 -0
  29. package/dist/NumCustomBinEditor.unit.spec-CO76BQPZ.js.map +7 -0
  30. package/dist/NumDiscreteEditor-TSUHVX77.js +175 -0
  31. package/dist/NumDiscreteEditor-TSUHVX77.js.map +7 -0
  32. package/dist/NumDiscreteEditor.unit.spec-RGC3GT22.js +238 -0
  33. package/dist/NumDiscreteEditor.unit.spec-RGC3GT22.js.map +7 -0
  34. package/dist/NumRegularBinEditor-IRD27CE2.js +38 -0
  35. package/dist/NumRegularBinEditor.unit.spec-MUHVOK5P.js +283 -0
  36. package/dist/NumRegularBinEditor.unit.spec-MUHVOK5P.js.map +7 -0
  37. package/dist/NumSplineEditor-3V7RWHE2.js +215 -0
  38. package/dist/NumSplineEditor-3V7RWHE2.js.map +7 -0
  39. package/dist/NumSplineEditor.unit.spec-BUI7NPN4.js +229 -0
  40. package/dist/NumSplineEditor.unit.spec-BUI7NPN4.js.map +7 -0
  41. package/dist/NumericDensity-53KMCTDL.js +38 -0
  42. package/dist/NumericDensity.unit.spec-OKAQPQHR.js +423 -0
  43. package/dist/NumericDensity.unit.spec-OKAQPQHR.js.map +7 -0
  44. package/dist/NumericHandler-5QFNXVBA.js +39 -0
  45. package/dist/NumericHandler.unit.spec-OBITSUU3.js +219 -0
  46. package/dist/ProteomeInput-MM373EL3.js +394 -0
  47. package/dist/RunChart2-2L6T3ITZ.js +758 -0
  48. package/dist/SC-JKD3Z2X5.js +1112 -0
  49. package/dist/Volcano-STGBS7IJ.js +1404 -0
  50. package/dist/WSIViewer-LOBVUTOD.js +48562 -0
  51. package/dist/WsiSamplesPlot-D3L3AILR.js +165 -0
  52. package/dist/adSandbox-XO5HDSFW.js +38 -0
  53. package/dist/animatedBubbleChart-XKW6TCZP.js +553 -0
  54. package/dist/app-H7ABTG6X.js +49 -0
  55. package/dist/app-HJSPIKRQ.js +37 -0
  56. package/dist/app.js +19 -19
  57. package/dist/bam-R5QVHWGY.js +859 -0
  58. package/dist/barchart-OGCLBPQ2.js +47 -0
  59. package/dist/barchart.data-VBSWS5N7.js +21 -0
  60. package/dist/barchart.events-GZTY4IC3.js +47 -0
  61. package/dist/barchart.integration.spec-Z6ECNFSM.js +2243 -0
  62. package/dist/barchart2-DT42I747.js +314 -0
  63. package/dist/block-UYYJXSCM.js +6255 -0
  64. package/dist/block.init-43M53IMA.js +38 -0
  65. package/dist/block.mds.expressionrank-YH3IWMKM.js +359 -0
  66. package/dist/block.mds.geneboxplot-QS2IK37X.js +828 -0
  67. package/dist/block.mds.junction-7FF5BFEX.js +1545 -0
  68. package/dist/block.mds.svcnv-MMJYLL2W.js +6801 -0
  69. package/dist/block.svg-SA6DSUM2.js +164 -0
  70. package/dist/block.tk.aicheck-ZX5LZ2QO.js +283 -0
  71. package/dist/block.tk.ase-YXT4BOXK.js +365 -0
  72. package/dist/block.tk.bam-IMLRIOOV.js +1906 -0
  73. package/dist/block.tk.bedgraphdot-UYQLL7HM.js +384 -0
  74. package/dist/block.tk.bigwig.ui-WUVLVRSM.js +211 -0
  75. package/dist/block.tk.hicstraw-N4SJGF7H.js +823 -0
  76. package/dist/block.tk.junction-LZWHFKWJ.js +2364 -0
  77. package/dist/block.tk.junction.textmatrixui-B626NYPA.js +199 -0
  78. package/dist/block.tk.ld-6VWUMAP6.js +99 -0
  79. package/dist/block.tk.menu-RRN2UPQX.js +1029 -0
  80. package/dist/block.tk.pgv-GYG3EI6P.js +944 -0
  81. package/dist/brainImaging-VIMLETC5.js +423 -0
  82. package/dist/brainRegions-DRYZT5K5.js +221 -0
  83. package/dist/bubbleHeatmap-Y4SGMVJY.js +383 -0
  84. package/dist/cellTypeBubbleHeatmap-QW37ZT5W.js +283 -0
  85. package/dist/chunk-2Y5C7GJS.js +299 -0
  86. package/dist/chunk-2ZTCRUOL.js +2899 -0
  87. package/dist/chunk-3O6XFPUB.js +243 -0
  88. package/dist/chunk-3O6XFPUB.js.map +7 -0
  89. package/dist/chunk-3P74DH6P.js +236 -0
  90. package/dist/chunk-3PPCZPLN.js +98 -0
  91. package/dist/chunk-4H4WJJ2G.js +54 -0
  92. package/dist/chunk-4L2OSDQ6.js +626 -0
  93. package/dist/chunk-4USLEUNR.js +1812 -0
  94. package/dist/chunk-5ITKSTJX.js +34 -0
  95. package/dist/chunk-5VMYXVZG.js +272 -0
  96. package/dist/chunk-75T7ESEO.js +61 -0
  97. package/dist/chunk-75T7ESEO.js.map +7 -0
  98. package/dist/chunk-7ZVFLC2V.js +134 -0
  99. package/dist/chunk-A7OWXDYA.js +129 -0
  100. package/dist/chunk-A7OWXDYA.js.map +7 -0
  101. package/dist/chunk-C2JHLAKV.js +222 -0
  102. package/dist/chunk-C2JHLAKV.js.map +7 -0
  103. package/dist/chunk-C5IAIOCA.js +102 -0
  104. package/dist/chunk-CIRCVMWE.js +102 -0
  105. package/dist/chunk-CLTRQZGJ.js +170 -0
  106. package/dist/chunk-CRH37PEV.js +203 -0
  107. package/dist/chunk-DCNDZOI3.js +6364 -0
  108. package/dist/chunk-DCR4QQ5Y.js +194 -0
  109. package/dist/chunk-DKAHHMKN.js +5070 -0
  110. package/dist/chunk-E2GHT7RH.js +39 -0
  111. package/dist/chunk-EQCVSUAF.js +37 -0
  112. package/dist/chunk-ETK36FXN.js +384 -0
  113. package/dist/chunk-FCOX5Q4Q.js +58 -0
  114. package/dist/chunk-FVL37XFU.js +834 -0
  115. package/dist/chunk-FXQXCOII.js +101 -0
  116. package/dist/chunk-FXQXCOII.js.map +7 -0
  117. package/dist/chunk-FXS4I3Z3.js +176 -0
  118. package/dist/chunk-FYAY6D3O.js +123 -0
  119. package/dist/chunk-GEQUQ3GG.js +1652 -0
  120. package/dist/chunk-GEQUQ3GG.js.map +7 -0
  121. package/dist/chunk-GL44X7JY.js +302 -0
  122. package/dist/chunk-HQAJVJCQ.js +195 -0
  123. package/dist/chunk-HQAJVJCQ.js.map +7 -0
  124. package/dist/chunk-IQVBMLFI.js +446 -0
  125. package/dist/chunk-IYT5PNYJ.js +148 -0
  126. package/dist/chunk-J6EP7JPJ.js +1245 -0
  127. package/dist/chunk-JKMN7XOP.js +1114 -0
  128. package/dist/chunk-JKMN7XOP.js.map +7 -0
  129. package/dist/chunk-JLGCQ2F4.js +480 -0
  130. package/dist/chunk-JQT67SWE.js +263 -0
  131. package/dist/chunk-JQYPRW42.js +217 -0
  132. package/dist/chunk-K4IGOJPT.js +160 -0
  133. package/dist/chunk-K6OVOHIZ.js +21483 -0
  134. package/dist/chunk-K6OVOHIZ.js.map +7 -0
  135. package/dist/chunk-KPTPDZX2.js +56 -0
  136. package/dist/chunk-KTB7KXC2.js +187 -0
  137. package/dist/chunk-KW7MKBGF.js +2681 -0
  138. package/dist/chunk-KZFVYDVK.js +448 -0
  139. package/dist/chunk-L44P5N4U.js +314 -0
  140. package/dist/chunk-L44P5N4U.js.map +7 -0
  141. package/dist/chunk-M77DCLJX.js +100 -0
  142. package/dist/chunk-MFEYO6FB.js +4306 -0
  143. package/dist/chunk-MFEYO6FB.js.map +7 -0
  144. package/dist/chunk-MGGAWPTR.js +54 -0
  145. package/dist/chunk-MKPU5TWN.js +194 -0
  146. package/dist/chunk-MKPU5TWN.js.map +7 -0
  147. package/dist/chunk-MUJMZ6W6.js +129 -0
  148. package/dist/chunk-NRP55BOF.js +50 -0
  149. package/dist/chunk-O5KFJBU3.js +1942 -0
  150. package/dist/chunk-Q4AP5L7R.js +1311 -0
  151. package/dist/chunk-Q4AP5L7R.js.map +7 -0
  152. package/dist/chunk-QHPN3JJZ.js +55 -0
  153. package/dist/chunk-QSGXZEUU.js +465 -0
  154. package/dist/chunk-R3ARQMM4.js +119 -0
  155. package/dist/chunk-RIQT2LSR.js +479 -0
  156. package/dist/chunk-RVRRHEUG.js +26 -0
  157. package/dist/chunk-SOCGXVIL.js +2327 -0
  158. package/dist/chunk-SZHFBRRT.js +514 -0
  159. package/dist/chunk-TOYMIFHN.js +381 -0
  160. package/dist/chunk-TPVHGI7Q.js +368 -0
  161. package/dist/chunk-TRQUMV4T.js +254 -0
  162. package/dist/chunk-UFLJ6PRI.js +387 -0
  163. package/dist/chunk-UFLJ6PRI.js.map +7 -0
  164. package/dist/chunk-UJN2RH5R.js +411 -0
  165. package/dist/chunk-UJN2RH5R.js.map +7 -0
  166. package/dist/chunk-UO7MD3XA.js +556 -0
  167. package/dist/chunk-UONOFG2J.js +274 -0
  168. package/dist/chunk-V2DU2OXH.js +1710 -0
  169. package/dist/chunk-WWXXSQ2M.js +31 -0
  170. package/dist/chunk-X6VTVZY7.js +263 -0
  171. package/dist/chunk-X7KRSZQT.js +2784 -0
  172. package/dist/chunk-XFAL46LZ.js +102 -0
  173. package/dist/chunk-XFAL46LZ.js.map +7 -0
  174. package/dist/chunk-XIBY5I6F.js +240 -0
  175. package/dist/chunk-XIBY5I6F.js.map +7 -0
  176. package/dist/chunk-XJBSBIZ4.js +70 -0
  177. package/dist/chunk-XRQWZJJ3.js +347 -0
  178. package/dist/chunk-XZ4M3QAV.js +158 -0
  179. package/dist/chunk-YMP4YKBN.js +142 -0
  180. package/dist/chunk-YUURGVV3.js +275 -0
  181. package/dist/chunk-Z7VK2AMA.js +292 -0
  182. package/dist/chunk-ZFJUVP2N.js +787 -0
  183. package/dist/chunk-ZH7JPYQE.js +14 -0
  184. package/dist/chunk-ZVDOSFWU.js +276 -0
  185. package/dist/cohort-CEYVJJ7E.js +75 -0
  186. package/dist/condition-QSOFP4MY.js +332 -0
  187. package/dist/controls-QYHARIEY.js +39 -0
  188. package/dist/controls.config-3OO3JK6E.js +39 -0
  189. package/dist/correlation-TOI3TMYL.js +102 -0
  190. package/dist/cuminc-L7OJTYXC.js +1148 -0
  191. package/dist/cuminc.integration.spec-LSWV3KOF.js +678 -0
  192. package/dist/customdata.inputui-VMB3HSSC.js +289 -0
  193. package/dist/dataDownload-NPSWNOAG.js +330 -0
  194. package/dist/dataDownload.integration.spec-J6FRFLBK.js +193 -0
  195. package/dist/databrowser.ui-GVYWG6YI.js +432 -0
  196. package/dist/dictionary-GD67R72W.js +118 -0
  197. package/dist/dnaMethylation-S7OSGLAF.js +38 -0
  198. package/dist/dnaMethylation.integration.spec-ETMMJNDE.js +203 -0
  199. package/dist/dofetch-7GURQS65.js +51 -0
  200. package/dist/e2pca-ZIIPBJFN.js +350 -0
  201. package/dist/ep-A2HAL5WA.js +1256 -0
  202. package/dist/expclust.gdc.spec-ZSILLYNI.js +307 -0
  203. package/dist/facet-74LKIPTA.js +521 -0
  204. package/dist/gb-C3MPQXKN.js +88 -0
  205. package/dist/geneExpClustering-HYCFUUTU.js +249 -0
  206. package/dist/geneExpression-GATKMJJ5.js +313 -0
  207. package/dist/geneExpression-JXSAP2H7.js +38 -0
  208. package/dist/geneExpression.unit.spec-CODZYFHZ.js +102 -0
  209. package/dist/geneORA-LJRIR4VV.js +278 -0
  210. package/dist/geneRanking-TWLBKQZG.js +553 -0
  211. package/dist/geneVariant-35RQHTCK.js +41 -0
  212. package/dist/geneVariant-TMJJIMUF.js +39 -0
  213. package/dist/geneVariant.integration.spec-FIQ7IBSD.js +198 -0
  214. package/dist/genefusion.ui-SOBESSNO.js +308 -0
  215. package/dist/geneset-JXEJFEK2.js +208 -0
  216. package/dist/genomeBrowser.spec-25ZO5S2X.js +281 -0
  217. package/dist/grin2-CW4RPVPI.js +75 -0
  218. package/dist/grin2-EI5BVP4E.js +1143 -0
  219. package/dist/hierCluster-OBBPQH24.js +59 -0
  220. package/dist/hierCluster-SDH3TJQY.js +63 -0
  221. package/dist/hierCluster.config-DO67TCXI.js +40 -0
  222. package/dist/hierCluster.integration.spec-EB24C4VZ.js +488 -0
  223. package/dist/hierCluster.interactivity-LGEAFT5T.js +54 -0
  224. package/dist/hierCluster.renderers-FXDCU3PN.js +21 -0
  225. package/dist/imagePlot-LGLFG2QZ.js +163 -0
  226. package/dist/importPlot-R2WRZGZU.js +8 -0
  227. package/dist/isoformExpression-KI3WY5M3.js +40 -0
  228. package/dist/isoformExpression.unit.spec-OQRG2DDU.js +242 -0
  229. package/dist/junction-6SWFPNM5.js +41 -0
  230. package/dist/junction.customTerm-MDBOU6I7.js +18 -0
  231. package/dist/junction.unit.spec-5TZFITSU.js +187 -0
  232. package/dist/launch.adhoc-HCX2RQLB.js +42 -0
  233. package/dist/leftlabel.sample-OI6XCXTQ.js +263 -0
  234. package/dist/lollipop-SOSOYHYL.js +171 -0
  235. package/dist/maf-73RLOEVN.js +459 -0
  236. package/dist/maftimeline-UOMLYUNI.js +593 -0
  237. package/dist/matrix-5QWDN6SI.js +63 -0
  238. package/dist/matrix-SKPVVDVR.js +58 -0
  239. package/dist/matrix.cells-CFSI2NWU.js +28 -0
  240. package/dist/matrix.config-HE64MAL4.js +41 -0
  241. package/dist/matrix.data-HTUZXQAM.js +25 -0
  242. package/dist/matrix.groups-ZFKWVNMX.js +27 -0
  243. package/dist/matrix.integration.spec-YKJ4LZFY.js +3072 -0
  244. package/dist/matrix.interactivity-YB5G5W5T.js +42 -0
  245. package/dist/matrix.layout-MFG65V7K.js +44 -0
  246. package/dist/matrix.legend-7MIZZJVB.js +22 -0
  247. package/dist/matrix.renderers-PCZFHDDZ.js +38 -0
  248. package/dist/matrix.serieses-7KYX3KAY.js +21 -0
  249. package/dist/matrix.sort-CR3J45MQ.js +27 -0
  250. package/dist/matrix.sort.unit.spec-GEAM5DSU.js +472 -0
  251. package/dist/matrix.sorterUi-YSKIX6B6.js +18 -0
  252. package/dist/matrix.sorterUi.unit.spec-2MW64QS5.js +342 -0
  253. package/dist/mavb-YMHJXCGA.js +732 -0
  254. package/dist/mds.fimo-PTEDRMLQ.js +518 -0
  255. package/dist/mds.samplescatterplot-7R7PLVQJ.js +1550 -0
  256. package/dist/mds.survivalplot-F3EENMFQ.js +483 -0
  257. package/dist/numericDictTermCluster-3HXLMURH.js +65 -0
  258. package/dist/oncomatrix-27VVSMZB.js +295 -0
  259. package/dist/oncomatrix.spec-F43Y7CWN.js +448 -0
  260. package/dist/plot.2dvaf-MYFQSWIA.js +377 -0
  261. package/dist/plot.app-36QWCKXR.js +41 -0
  262. package/dist/plot.barplot-535EP7XT.js +102 -0
  263. package/dist/plot.boxplot-6IBP7VEB.js +152 -0
  264. package/dist/plot.brainImaging-M4HPNXZH.js +51 -0
  265. package/dist/plot.disco-HIT6GR44.js +102 -0
  266. package/dist/plot.dzi-W66SBKTH.js +33 -0
  267. package/dist/plot.ssgq-MI2OMCUY.js +139 -0
  268. package/dist/plot.vaf2cov-F4CBMLRA.js +259 -0
  269. package/dist/plot.wsi-7M5KTNFC.js +36 -0
  270. package/dist/polar2-7VSWGT4U.js +237 -0
  271. package/dist/profileForms-DFPCNJW2.js +940 -0
  272. package/dist/profilePlot-ECTPPVB2.js +54 -0
  273. package/dist/proteinView-6ELOLOIU.js +1568 -0
  274. package/dist/proteomeCohortCompare-V2FMWI62.js +799 -0
  275. package/dist/pseudbulk.unit.spec-KV6URTXC.js +91 -0
  276. package/dist/pseudobulk-6ZRFCE65.js +40 -0
  277. package/dist/qualitative-3B62RUOB.js +43 -0
  278. package/dist/qualitative-GJDQBD7L.js +220 -0
  279. package/dist/radar2-4QQER64E.js +332 -0
  280. package/dist/radarFacility2-MZKORRDY.js +340 -0
  281. package/dist/regression-GZ2YNX6Y.js +56 -0
  282. package/dist/regression.inputs-ZEFDNSVT.js +48 -0
  283. package/dist/regression.inputs.term-O2FQBX7L.js +48 -0
  284. package/dist/regression.inputs.values.table-63BQKSZP.js +45 -0
  285. package/dist/regression.integration.spec-KDHC3KDU.js +838 -0
  286. package/dist/regression.integration.spec-KDHC3KDU.js.map +7 -0
  287. package/dist/regression.results-5J3QM4RX.js +40 -0
  288. package/dist/regression.spec-WZAZTDDA.js +708 -0
  289. package/dist/render-MZTEXVU5.js +38 -0
  290. package/dist/report-M5TYHH2W.js +222 -0
  291. package/dist/sampleView-QYTLYJEW.js +48 -0
  292. package/dist/samplelst-FN3Q7M7A.js +111 -0
  293. package/dist/samplematrix-Z5FVODO7.js +2198 -0
  294. package/dist/sc-4CHP5SYP.js +86 -0
  295. package/dist/scatter-UOPJYXL3.js +890 -0
  296. package/dist/scatter-UOPJYXL3.js.map +7 -0
  297. package/dist/selectGenomeWithTklst-WMAHGT4F.js +134 -0
  298. package/dist/singleCellCellType-XPWENB6V.js +38 -0
  299. package/dist/singleCellCellType.unit.spec-QK56PHKW.js +159 -0
  300. package/dist/singleCellGeneExpression-4CEVDVYF.js +38 -0
  301. package/dist/singleCellGeneExpression.unit.spec-ZYRLBVF5.js +153 -0
  302. package/dist/singleCellPlot-JS74VUGC.js +54 -0
  303. package/dist/singlecell-5XYOHMWJ.js +1572 -0
  304. package/dist/singlecell-OO77XBDD.js +86 -0
  305. package/dist/snp-X5ZILM5J.js +38 -0
  306. package/dist/snp.unit.spec-V23G3JLJ.js +176 -0
  307. package/dist/snplocus-U5UIIUWR.js +208 -0
  308. package/dist/spliceevent.a53ss.diagram-YDFVSDMT.js +151 -0
  309. package/dist/spliceevent.exonskip.diagram-VDKN5JBE.js +283 -0
  310. package/dist/spliceevent.noeventdiagram-EFPFRUFI.js +460 -0
  311. package/dist/ssGSEA-LKJW5OQK.js +38 -0
  312. package/dist/ssGSEA.unit.spec-7WCZVEP2.js +88 -0
  313. package/dist/studyCatalog-EU33KE5H.js +358 -0
  314. package/dist/summarizeCnvGeneexp-QL25OQNB.js +163 -0
  315. package/dist/summarizeGeneexpSurvival-B7HTCH7L.js +110 -0
  316. package/dist/summarizeMutationCnv-DFAPX2JE.js +164 -0
  317. package/dist/summarizeMutationDiagnosis-HCSDSVII.js +40 -0
  318. package/dist/summarizeMutationSurvival-6WEASSA2.js +99 -0
  319. package/dist/summary-BWYXE77G.js +49 -0
  320. package/dist/summary.integration.spec-AVGSW5MF.js +414 -0
  321. package/dist/summaryInput-MOQ6HUCX.js +231 -0
  322. package/dist/sunburst-EZDHVJCL.js +284 -0
  323. package/dist/survival-5TFMM7NP.js +1239 -0
  324. package/dist/survival-IEVELTC4.js +58 -0
  325. package/dist/survival.integration.spec-HHWP3R4H.js +958 -0
  326. package/dist/svgraph-55XRIYJW.js +1387 -0
  327. package/dist/svmr-CMEBFSRO.js +3842 -0
  328. package/dist/table-LTWQ3TLQ.js +200 -0
  329. package/dist/termCollection-CPQXYBFA.js +38 -0
  330. package/dist/termCollection-ZWOH273K.js +257 -0
  331. package/dist/termCollection.unit.spec-RK7VATLU.js +304 -0
  332. package/dist/termCollectionFractionSelection-Z4ZRW63R.js +47 -0
  333. package/dist/termCollectionFractionSelection.unit.spec-3CS7DPNU.js +193 -0
  334. package/dist/tk-4NNTWWLK.js +46 -0
  335. package/dist/tk-RHWJJXH2.js +1127 -0
  336. package/dist/tp.ui-DPN5UN6U.js +1459 -0
  337. package/dist/tvs.density-LMRZZO4D.js +19 -0
  338. package/dist/tvs.dt-ARPDFRVM.js +39 -0
  339. package/dist/tvs.dtcnv.categorical-POS6WQK6.js +40 -0
  340. package/dist/tvs.dtcnv.continuous-5OETJ7JU.js +72 -0
  341. package/dist/tvs.dtfusion-ERYVI3DW.js +40 -0
  342. package/dist/tvs.dtitd-KTZZYEWU.js +40 -0
  343. package/dist/tvs.dtsnvindel-TGUAX3RN.js +40 -0
  344. package/dist/tvs.dtsv-AM63OIL6.js +40 -0
  345. package/dist/tvs.numeric-MQPO5XUQ.js +22 -0
  346. package/dist/tvs.samplelst-VW2NOQ2C.js +104 -0
  347. package/dist/tvs.termCollection-O4ZSWJFA.js +129 -0
  348. package/dist/violin-ZQ3DEYGR.js +46 -0
  349. package/dist/violin.integration.spec-PVEF77HB.js +1425 -0
  350. package/dist/violin.interactivity-FYU4TCFO.js +38 -0
  351. package/dist/violin.renderer-XAERGBMV.js +40 -0
  352. package/dist/vocabulary-ECJX27W2.js +41 -0
  353. package/package.json +3 -3
  354. package/dist/2dmaf-RRV3ORZR.js +0 -1373
  355. package/dist/AIProjectAdmin-DKLEFCGX.js +0 -958
  356. package/dist/AppHeader-WQ2F7HZY.js +0 -835
  357. package/dist/BoxPlot-5JQCYENZ.js +0 -1218
  358. package/dist/CorrelationVolcano-HR6IP2SZ.js +0 -619
  359. package/dist/DE-DAW6ZKM7.js +0 -95
  360. package/dist/DEinput-XCR4VMR3.js +0 -409
  361. package/dist/DifferentialAnalysis-SETJAZEN.js +0 -243
  362. package/dist/Disco-QEBEVQS2.js +0 -3392
  363. package/dist/Disco.UI-OYVL7UBI.js +0 -248
  364. package/dist/DmrPlot-CWBQDZL7.js +0 -642
  365. package/dist/GB-5PYCR4SV.js +0 -1396
  366. package/dist/GSEA-6UKMI6GY.js +0 -846
  367. package/dist/GeneExpInput-2N62XM7Z.js +0 -367
  368. package/dist/Geomap-ANMR32HE.js +0 -89
  369. package/dist/HicApp-WHPUPHEM.js +0 -2250
  370. package/dist/IDCViewer-FWXRE4AX.js +0 -10817
  371. package/dist/NumBinaryEditor-VG5KOGDA.js +0 -271
  372. package/dist/NumBinaryEditor-VG5KOGDA.js.map +0 -7
  373. package/dist/NumBinaryEditor.unit.spec-UCGFZS3P.js +0 -286
  374. package/dist/NumBinaryEditor.unit.spec-UCGFZS3P.js.map +0 -7
  375. package/dist/NumContEditor-J52RON3G.js +0 -109
  376. package/dist/NumContEditor-J52RON3G.js.map +0 -7
  377. package/dist/NumContEditor.unit.spec-5GTWUJEL.js +0 -169
  378. package/dist/NumCustomBinEditor-GM2OJMOX.js +0 -38
  379. package/dist/NumCustomBinEditor.unit.spec-3PGJ25J4.js +0 -284
  380. package/dist/NumCustomBinEditor.unit.spec-3PGJ25J4.js.map +0 -7
  381. package/dist/NumDiscreteEditor-2CAKT3Y4.js +0 -179
  382. package/dist/NumDiscreteEditor-2CAKT3Y4.js.map +0 -7
  383. package/dist/NumDiscreteEditor.unit.spec-XCWSJTRT.js +0 -202
  384. package/dist/NumDiscreteEditor.unit.spec-XCWSJTRT.js.map +0 -7
  385. package/dist/NumRegularBinEditor-CZYITY5L.js +0 -38
  386. package/dist/NumRegularBinEditor.unit.spec-OUBZ5XB3.js +0 -227
  387. package/dist/NumRegularBinEditor.unit.spec-OUBZ5XB3.js.map +0 -7
  388. package/dist/NumSplineEditor-TWRL5AQQ.js +0 -198
  389. package/dist/NumSplineEditor-TWRL5AQQ.js.map +0 -7
  390. package/dist/NumSplineEditor.unit.spec-5P6NQZ3N.js +0 -199
  391. package/dist/NumSplineEditor.unit.spec-5P6NQZ3N.js.map +0 -7
  392. package/dist/NumericDensity-JSOFOEH2.js +0 -38
  393. package/dist/NumericDensity.unit.spec-REUKHMKK.js +0 -221
  394. package/dist/NumericDensity.unit.spec-REUKHMKK.js.map +0 -7
  395. package/dist/NumericHandler-UZOGKPKB.js +0 -39
  396. package/dist/NumericHandler.unit.spec-X2DAED4O.js +0 -219
  397. package/dist/ProteomeInput-GBVCLNS7.js +0 -394
  398. package/dist/RunChart2-N4JPWNVV.js +0 -758
  399. package/dist/SC-RCZT5BRP.js +0 -1112
  400. package/dist/Volcano-2BQ6SYHO.js +0 -1404
  401. package/dist/WSIViewer-UDA4WIRT.js +0 -48562
  402. package/dist/WsiSamplesPlot-DYSFMD22.js +0 -165
  403. package/dist/adSandbox-5BUDCAER.js +0 -38
  404. package/dist/animatedBubbleChart-N6MBJ4X3.js +0 -553
  405. package/dist/app-O64TGDFH.js +0 -37
  406. package/dist/app-Y2STUISK.js +0 -49
  407. package/dist/bam-2EOABVGT.js +0 -859
  408. package/dist/barchart-UHCTYRMJ.js +0 -47
  409. package/dist/barchart.data-LSK2P2PR.js +0 -21
  410. package/dist/barchart.events-Y4H2GADS.js +0 -47
  411. package/dist/barchart.integration.spec-BFGZFECA.js +0 -2243
  412. package/dist/barchart2-VIZKZRMP.js +0 -314
  413. package/dist/block-BGSSF6XP.js +0 -6255
  414. package/dist/block.init-H7RKUIHG.js +0 -38
  415. package/dist/block.mds.expressionrank-MA3HGT7S.js +0 -359
  416. package/dist/block.mds.geneboxplot-CWT5DM5T.js +0 -828
  417. package/dist/block.mds.junction-P4I7O73X.js +0 -1545
  418. package/dist/block.mds.svcnv-NSPEY43S.js +0 -6801
  419. package/dist/block.svg-DP4G3LNQ.js +0 -164
  420. package/dist/block.tk.aicheck-EBLTOWKZ.js +0 -283
  421. package/dist/block.tk.ase-X7WKQOFS.js +0 -365
  422. package/dist/block.tk.bam-OIP3TS3N.js +0 -1906
  423. package/dist/block.tk.bedgraphdot-2DDF55J3.js +0 -384
  424. package/dist/block.tk.bigwig.ui-S2SMAEXM.js +0 -211
  425. package/dist/block.tk.hicstraw-4OIG4TBZ.js +0 -823
  426. package/dist/block.tk.junction-52OWEQUN.js +0 -2364
  427. package/dist/block.tk.junction.textmatrixui-64YOSZLW.js +0 -199
  428. package/dist/block.tk.ld-3AMNHBDY.js +0 -99
  429. package/dist/block.tk.menu-4724DJXL.js +0 -1029
  430. package/dist/block.tk.pgv-2SIOPWYI.js +0 -944
  431. package/dist/brainImaging-D43CQQN6.js +0 -423
  432. package/dist/brainRegions-HJ2VGL3L.js +0 -221
  433. package/dist/bubbleHeatmap-IL44M4QZ.js +0 -383
  434. package/dist/cellTypeBubbleHeatmap-NQP7RCZO.js +0 -283
  435. package/dist/chunk-26APRXD3.js +0 -254
  436. package/dist/chunk-2GLA2SWU.js +0 -160
  437. package/dist/chunk-3BGFM7Q4.js +0 -1275
  438. package/dist/chunk-3BGFM7Q4.js.map +0 -7
  439. package/dist/chunk-3SHZTAGF.js +0 -193
  440. package/dist/chunk-3SHZTAGF.js.map +0 -7
  441. package/dist/chunk-46X6AQ7Z.js +0 -123
  442. package/dist/chunk-4HZN6PMU.js +0 -129
  443. package/dist/chunk-4KRGCOTL.js +0 -479
  444. package/dist/chunk-5DMVORBB.js +0 -98
  445. package/dist/chunk-5QMBB4SK.js +0 -1245
  446. package/dist/chunk-5RVA43MN.js +0 -274
  447. package/dist/chunk-5T3MOOEJ.js +0 -379
  448. package/dist/chunk-5T3MOOEJ.js.map +0 -7
  449. package/dist/chunk-5T3ZDRTS.js +0 -70
  450. package/dist/chunk-5ZTVJSYI.js +0 -834
  451. package/dist/chunk-6JYQGZ3Y.js +0 -446
  452. package/dist/chunk-6OUBUUC2.js +0 -626
  453. package/dist/chunk-6PNPHACF.js +0 -1652
  454. package/dist/chunk-6PNPHACF.js.map +0 -7
  455. package/dist/chunk-7JRDJNLR.js +0 -263
  456. package/dist/chunk-7PIHRWGG.js +0 -102
  457. package/dist/chunk-7PJNKPQB.js +0 -275
  458. package/dist/chunk-AGLAYNXP.js +0 -170
  459. package/dist/chunk-B7VDZ6VF.js +0 -399
  460. package/dist/chunk-B7VDZ6VF.js.map +0 -7
  461. package/dist/chunk-BGTBRAJ6.js +0 -50
  462. package/dist/chunk-BNAO6N5X.js +0 -2899
  463. package/dist/chunk-BQHPJY2M.js +0 -347
  464. package/dist/chunk-BZTWTH4Y.js +0 -87
  465. package/dist/chunk-BZTWTH4Y.js.map +0 -7
  466. package/dist/chunk-CY4RQ5L6.js +0 -1710
  467. package/dist/chunk-D565DNJD.js +0 -236
  468. package/dist/chunk-DH3LAQKT.js +0 -384
  469. package/dist/chunk-E3VF4RHJ.js +0 -381
  470. package/dist/chunk-EGPNRSPF.js +0 -292
  471. package/dist/chunk-FACITNG5.js +0 -142
  472. package/dist/chunk-GNS6CQMA.js +0 -119
  473. package/dist/chunk-H3N4KYKL.js +0 -2327
  474. package/dist/chunk-H3VWJH4U.js +0 -14
  475. package/dist/chunk-HEVKBSN6.js +0 -222
  476. package/dist/chunk-HEVKBSN6.js.map +0 -7
  477. package/dist/chunk-HQUYAZQY.js +0 -514
  478. package/dist/chunk-IUBBQPO2.js +0 -146
  479. package/dist/chunk-IUBBQPO2.js.map +0 -7
  480. package/dist/chunk-J4USU73L.js +0 -26
  481. package/dist/chunk-JNITUVXP.js +0 -41
  482. package/dist/chunk-JNITUVXP.js.map +0 -7
  483. package/dist/chunk-JVPWIVDT.js +0 -1812
  484. package/dist/chunk-KU7YH7MV.js +0 -217
  485. package/dist/chunk-KZILNGAV.js +0 -187
  486. package/dist/chunk-LSEFWW72.js +0 -94
  487. package/dist/chunk-LSEFWW72.js.map +0 -7
  488. package/dist/chunk-M66VDGSH.js +0 -272
  489. package/dist/chunk-MJN6RDXB.js +0 -302
  490. package/dist/chunk-MPNEZ6EL.js +0 -31
  491. package/dist/chunk-MPSLUEI4.js +0 -314
  492. package/dist/chunk-MPSLUEI4.js.map +0 -7
  493. package/dist/chunk-NIXFCC7X.js +0 -368
  494. package/dist/chunk-NODQZTWK.js +0 -276
  495. package/dist/chunk-NRYHIWBS.js +0 -1942
  496. package/dist/chunk-NUWJ4RN7.js +0 -465
  497. package/dist/chunk-NVTJ5AUT.js +0 -1102
  498. package/dist/chunk-NVTJ5AUT.js.map +0 -7
  499. package/dist/chunk-NZRMHM76.js +0 -158
  500. package/dist/chunk-OOWXMY7U.js +0 -55
  501. package/dist/chunk-OTTMHVYH.js +0 -787
  502. package/dist/chunk-QDX2XUNF.js +0 -58
  503. package/dist/chunk-QYXCHZ6U.js +0 -4282
  504. package/dist/chunk-QYXCHZ6U.js.map +0 -7
  505. package/dist/chunk-R6NM2HSH.js +0 -556
  506. package/dist/chunk-RJOY6A74.js +0 -56
  507. package/dist/chunk-ROMW4AK2.js +0 -102
  508. package/dist/chunk-RR5U35N7.js +0 -230
  509. package/dist/chunk-RR5U35N7.js.map +0 -7
  510. package/dist/chunk-RVKADD4L.js +0 -148
  511. package/dist/chunk-S5ZCK44Z.js +0 -54
  512. package/dist/chunk-SNRIVNQ3.js +0 -176
  513. package/dist/chunk-STI7BO3P.js +0 -2681
  514. package/dist/chunk-TAM7UCAI.js +0 -263
  515. package/dist/chunk-TDKMBQSM.js +0 -5070
  516. package/dist/chunk-TKW5TW4Z.js +0 -21449
  517. package/dist/chunk-TKW5TW4Z.js.map +0 -7
  518. package/dist/chunk-TQTYW66I.js +0 -2784
  519. package/dist/chunk-U3NTH4CS.js +0 -54
  520. package/dist/chunk-UEGQVQD6.js +0 -34
  521. package/dist/chunk-ULESDMUT.js +0 -480
  522. package/dist/chunk-UUKSL7QC.js +0 -134
  523. package/dist/chunk-VUPWQCDR.js +0 -194
  524. package/dist/chunk-W76X6W73.js +0 -100
  525. package/dist/chunk-W7OS7BNM.js +0 -203
  526. package/dist/chunk-WKNI3HRQ.js +0 -39
  527. package/dist/chunk-WTTD6DUL.js +0 -6364
  528. package/dist/chunk-WXPFMVU6.js +0 -299
  529. package/dist/chunk-XNWUI5VL.js +0 -37
  530. package/dist/chunk-YBLTSYQV.js +0 -216
  531. package/dist/chunk-YBLTSYQV.js.map +0 -7
  532. package/dist/chunk-Z7VDFWIP.js +0 -126
  533. package/dist/chunk-Z7VDFWIP.js.map +0 -7
  534. package/dist/chunk-ZEKIUYN3.js +0 -448
  535. package/dist/cohort-OWLNJZVH.js +0 -75
  536. package/dist/condition-L2IXP6WH.js +0 -332
  537. package/dist/controls-2S5QVWUC.js +0 -39
  538. package/dist/controls.config-3AJKR4ZZ.js +0 -39
  539. package/dist/correlation-DXTAWSLU.js +0 -102
  540. package/dist/cuminc-WQB6FHVS.js +0 -1148
  541. package/dist/cuminc.integration.spec-WAYRLHUH.js +0 -678
  542. package/dist/customdata.inputui-7WH2NJGB.js +0 -289
  543. package/dist/dataDownload-HM4UYOBO.js +0 -330
  544. package/dist/dataDownload.integration.spec-F5CO4BWA.js +0 -193
  545. package/dist/databrowser.ui-E2YOG3L4.js +0 -432
  546. package/dist/dictionary-EEPTFDYD.js +0 -118
  547. package/dist/dnaMethylation-N3WNK6XA.js +0 -38
  548. package/dist/dnaMethylation.integration.spec-AIYRTFMR.js +0 -203
  549. package/dist/dofetch-YKYPEJTQ.js +0 -51
  550. package/dist/e2pca-JEZIGVB2.js +0 -350
  551. package/dist/ep-5FMH2MLV.js +0 -1256
  552. package/dist/expclust.gdc.spec-FR26VSUA.js +0 -307
  553. package/dist/facet-5YYY3MUN.js +0 -521
  554. package/dist/gb-WGEVO7L2.js +0 -88
  555. package/dist/geneExpClustering-DHE6XJHV.js +0 -249
  556. package/dist/geneExpression-5NWQXMJ3.js +0 -313
  557. package/dist/geneExpression-VWUMM2LU.js +0 -38
  558. package/dist/geneExpression.unit.spec-HBU3WTZ4.js +0 -102
  559. package/dist/geneORA-3VWFWDYI.js +0 -278
  560. package/dist/geneRanking-PKDVD5OD.js +0 -553
  561. package/dist/geneVariant-IFIJQXH4.js +0 -39
  562. package/dist/geneVariant-WZSOG4GI.js +0 -41
  563. package/dist/geneVariant.integration.spec-6KQMWVHR.js +0 -198
  564. package/dist/genefusion.ui-C4NTALL3.js +0 -308
  565. package/dist/geneset-RJAULSKC.js +0 -208
  566. package/dist/genomeBrowser.spec-42OTTMGO.js +0 -281
  567. package/dist/grin2-26O6YDDY.js +0 -75
  568. package/dist/grin2-FT5BQJMB.js +0 -1143
  569. package/dist/hierCluster-GJPPMFNR.js +0 -59
  570. package/dist/hierCluster-HMJF3PBE.js +0 -63
  571. package/dist/hierCluster.config-TAS7XKTU.js +0 -40
  572. package/dist/hierCluster.integration.spec-RLHQKX65.js +0 -488
  573. package/dist/hierCluster.interactivity-IKTAJ6CU.js +0 -54
  574. package/dist/hierCluster.renderers-I6WFZRNW.js +0 -21
  575. package/dist/imagePlot-N4OXNMVA.js +0 -163
  576. package/dist/importPlot-VMYXDP66.js +0 -8
  577. package/dist/isoformExpression-2KV64KMN.js +0 -40
  578. package/dist/isoformExpression.unit.spec-RG2VWEMG.js +0 -242
  579. package/dist/junction-VO4IGMW2.js +0 -41
  580. package/dist/junction.customTerm-EFMHHVWA.js +0 -18
  581. package/dist/junction.unit.spec-NB24MR2B.js +0 -187
  582. package/dist/launch.adhoc-R3MO3VXK.js +0 -42
  583. package/dist/leftlabel.sample-SI6KMULD.js +0 -263
  584. package/dist/lollipop-XIVE4ANX.js +0 -171
  585. package/dist/maf-WRHD4OJF.js +0 -459
  586. package/dist/maftimeline-IE6YKV7Y.js +0 -593
  587. package/dist/matrix-ALBCAZP5.js +0 -58
  588. package/dist/matrix-W72XRUZD.js +0 -63
  589. package/dist/matrix.cells-DEEUWC74.js +0 -28
  590. package/dist/matrix.config-JYXQOXDT.js +0 -41
  591. package/dist/matrix.data-ENXNM6RP.js +0 -25
  592. package/dist/matrix.groups-EXSNNESB.js +0 -27
  593. package/dist/matrix.integration.spec-BW6U6PIW.js +0 -3072
  594. package/dist/matrix.interactivity-G6AL566T.js +0 -42
  595. package/dist/matrix.layout-UBUPIJ3R.js +0 -44
  596. package/dist/matrix.legend-S3P4F2DG.js +0 -22
  597. package/dist/matrix.renderers-IXFGXHJQ.js +0 -38
  598. package/dist/matrix.serieses-THHXUAPM.js +0 -21
  599. package/dist/matrix.sort-WJV6LIZI.js +0 -27
  600. package/dist/matrix.sort.unit.spec-LGMIL2LR.js +0 -472
  601. package/dist/matrix.sorterUi-VXVCOKEZ.js +0 -18
  602. package/dist/matrix.sorterUi.unit.spec-CWSEJ62U.js +0 -342
  603. package/dist/mavb-SXGKASQ5.js +0 -732
  604. package/dist/mds.fimo-EDOT3TDN.js +0 -518
  605. package/dist/mds.samplescatterplot-IXHNABKB.js +0 -1550
  606. package/dist/mds.survivalplot-KTTMHHII.js +0 -483
  607. package/dist/numericDictTermCluster-H4JSPW22.js +0 -65
  608. package/dist/oncomatrix-O4EMNUOT.js +0 -295
  609. package/dist/oncomatrix.spec-BME6CQWF.js +0 -448
  610. package/dist/plot.2dvaf-FDM4KXGT.js +0 -377
  611. package/dist/plot.app-UNUXG7ND.js +0 -41
  612. package/dist/plot.barplot-R333TMG2.js +0 -102
  613. package/dist/plot.boxplot-KQTYGUN3.js +0 -152
  614. package/dist/plot.brainImaging-YBYMHCEG.js +0 -51
  615. package/dist/plot.disco-CMDKRSOM.js +0 -102
  616. package/dist/plot.dzi-YAZA6RQS.js +0 -33
  617. package/dist/plot.ssgq-YKCOEXZP.js +0 -139
  618. package/dist/plot.vaf2cov-3TLMTFZS.js +0 -259
  619. package/dist/plot.wsi-7ADVYTQS.js +0 -36
  620. package/dist/polar2-O5SHVLP4.js +0 -237
  621. package/dist/profileForms-RLB6SMPQ.js +0 -940
  622. package/dist/profilePlot-AP52VLLO.js +0 -54
  623. package/dist/proteinView-S7WDBMQU.js +0 -1568
  624. package/dist/proteomeCohortCompare-ERVUM7RO.js +0 -799
  625. package/dist/pseudbulk.unit.spec-VSH7IM3R.js +0 -91
  626. package/dist/pseudobulk-7UKRLKQI.js +0 -40
  627. package/dist/qualitative-2D7MC4V5.js +0 -43
  628. package/dist/qualitative-2INAKDTJ.js +0 -220
  629. package/dist/radar2-ELVGQFZE.js +0 -332
  630. package/dist/radarFacility2-SDAZHGNG.js +0 -340
  631. package/dist/regression-CE54AQMY.js +0 -56
  632. package/dist/regression.inputs-SMC5CNPY.js +0 -48
  633. package/dist/regression.inputs.term-XS54IQC2.js +0 -48
  634. package/dist/regression.inputs.values.table-LNPM3MX5.js +0 -45
  635. package/dist/regression.integration.spec-6QSMYPWJ.js +0 -784
  636. package/dist/regression.integration.spec-6QSMYPWJ.js.map +0 -7
  637. package/dist/regression.results-25ZRRDEE.js +0 -40
  638. package/dist/regression.spec-EDWHFRPY.js +0 -708
  639. package/dist/render-SEB6GFXQ.js +0 -38
  640. package/dist/report-U6L3KBYG.js +0 -222
  641. package/dist/sampleView-QAAJ26KT.js +0 -48
  642. package/dist/samplelst-KYRXJSZN.js +0 -111
  643. package/dist/samplematrix-STLF2QA5.js +0 -2198
  644. package/dist/sc-HL6YSMDX.js +0 -86
  645. package/dist/scatter-BSGDMOC2.js +0 -851
  646. package/dist/scatter-BSGDMOC2.js.map +0 -7
  647. package/dist/selectGenomeWithTklst-4NHQDTE6.js +0 -134
  648. package/dist/singleCellCellType-3E2IU42J.js +0 -38
  649. package/dist/singleCellCellType.unit.spec-MC7ZRSMW.js +0 -159
  650. package/dist/singleCellGeneExpression-53UUGYTK.js +0 -38
  651. package/dist/singleCellGeneExpression.unit.spec-QSLTXHFE.js +0 -153
  652. package/dist/singleCellPlot-JDSARDRV.js +0 -54
  653. package/dist/singlecell-IJR7BJYT.js +0 -1572
  654. package/dist/singlecell-OK6GJFWL.js +0 -86
  655. package/dist/snp-H4KJEEOE.js +0 -38
  656. package/dist/snp.unit.spec-2Y4A3XYI.js +0 -176
  657. package/dist/snplocus-4GG6VTWX.js +0 -208
  658. package/dist/spliceevent.a53ss.diagram-JZNRC5UC.js +0 -151
  659. package/dist/spliceevent.exonskip.diagram-H54N7ZKY.js +0 -283
  660. package/dist/spliceevent.noeventdiagram-II753XAK.js +0 -460
  661. package/dist/ssGSEA-JPJ3C4JI.js +0 -38
  662. package/dist/ssGSEA.unit.spec-45F5OCDK.js +0 -88
  663. package/dist/studyCatalog-O3VGIKDM.js +0 -358
  664. package/dist/summarizeCnvGeneexp-55DNXHXA.js +0 -163
  665. package/dist/summarizeGeneexpSurvival-VLO4DC5M.js +0 -110
  666. package/dist/summarizeMutationCnv-QX7BADYL.js +0 -164
  667. package/dist/summarizeMutationDiagnosis-MHFM7RX6.js +0 -40
  668. package/dist/summarizeMutationSurvival-G4KHSUBN.js +0 -99
  669. package/dist/summary-PJYRCQNY.js +0 -49
  670. package/dist/summary.integration.spec-KPKROD6L.js +0 -414
  671. package/dist/summaryInput-TOAL53EP.js +0 -231
  672. package/dist/sunburst-IGIV2RBE.js +0 -284
  673. package/dist/survival-DINCIWW7.js +0 -58
  674. package/dist/survival-RKV5BPDK.js +0 -1239
  675. package/dist/survival.integration.spec-7ZYBBZKT.js +0 -958
  676. package/dist/svgraph-EUEZWGVR.js +0 -1387
  677. package/dist/svmr-B24LODSC.js +0 -3842
  678. package/dist/table-XSJJ3UZV.js +0 -200
  679. package/dist/termCollection-IAB3425K.js +0 -38
  680. package/dist/termCollection-LGEGHZSJ.js +0 -257
  681. package/dist/termCollection.unit.spec-4TIRHC44.js +0 -304
  682. package/dist/termCollectionFractionSelection-35YKAOUY.js +0 -47
  683. package/dist/termCollectionFractionSelection.unit.spec-SUFEIKJZ.js +0 -193
  684. package/dist/tk-25EJJDRK.js +0 -46
  685. package/dist/tk-4E3XJ7CO.js +0 -1127
  686. package/dist/tp.ui-VGA62NFM.js +0 -1459
  687. package/dist/tvs.density-G56327WY.js +0 -19
  688. package/dist/tvs.dt-DFW36WKO.js +0 -39
  689. package/dist/tvs.dtcnv.categorical-ZP33EO3A.js +0 -40
  690. package/dist/tvs.dtcnv.continuous-FJTMQF4J.js +0 -72
  691. package/dist/tvs.dtfusion-FTDQWNKM.js +0 -40
  692. package/dist/tvs.dtitd-W5VEECJ2.js +0 -40
  693. package/dist/tvs.dtsnvindel-UOXSLCDZ.js +0 -40
  694. package/dist/tvs.dtsv-HWCPRVBO.js +0 -40
  695. package/dist/tvs.numeric-7TGKWQYU.js +0 -22
  696. package/dist/tvs.samplelst-OWD22ITS.js +0 -104
  697. package/dist/tvs.termCollection-27BWABYK.js +0 -129
  698. package/dist/violin-2IAVZGFF.js +0 -46
  699. package/dist/violin.integration.spec-JVODKUCL.js +0 -1425
  700. package/dist/violin.interactivity-STOCZMVN.js +0 -38
  701. package/dist/violin.renderer-MKDTJ3EX.js +0 -40
  702. package/dist/vocabulary-4IHU6DNN.js +0 -41
  703. /package/dist/{2dmaf-RRV3ORZR.js.map → 2dmaf-6MNHNHWX.js.map} +0 -0
  704. /package/dist/{AIProjectAdmin-DKLEFCGX.js.map → AIProjectAdmin-W36NGUX2.js.map} +0 -0
  705. /package/dist/{AppHeader-WQ2F7HZY.js.map → AppHeader-I5CFECIL.js.map} +0 -0
  706. /package/dist/{BoxPlot-5JQCYENZ.js.map → BoxPlot-4SXDAOBP.js.map} +0 -0
  707. /package/dist/{CorrelationVolcano-HR6IP2SZ.js.map → CorrelationVolcano-NAWMGG4Q.js.map} +0 -0
  708. /package/dist/{DE-DAW6ZKM7.js.map → DE-VZMT7KEM.js.map} +0 -0
  709. /package/dist/{DEinput-XCR4VMR3.js.map → DEinput-TKERM2YD.js.map} +0 -0
  710. /package/dist/{DifferentialAnalysis-SETJAZEN.js.map → DifferentialAnalysis-Y4SU4BVP.js.map} +0 -0
  711. /package/dist/{Disco-QEBEVQS2.js.map → Disco-DLK3BYPV.js.map} +0 -0
  712. /package/dist/{Disco.UI-OYVL7UBI.js.map → Disco.UI-IKGMFG36.js.map} +0 -0
  713. /package/dist/{DmrPlot-CWBQDZL7.js.map → DmrPlot-JWBZJFS6.js.map} +0 -0
  714. /package/dist/{GB-5PYCR4SV.js.map → GB-3UZSSIBW.js.map} +0 -0
  715. /package/dist/{GSEA-6UKMI6GY.js.map → GSEA-YLHBZY55.js.map} +0 -0
  716. /package/dist/{GeneExpInput-2N62XM7Z.js.map → GeneExpInput-KX5I63YV.js.map} +0 -0
  717. /package/dist/{Geomap-ANMR32HE.js.map → Geomap-QTUHM4VH.js.map} +0 -0
  718. /package/dist/{HicApp-WHPUPHEM.js.map → HicApp-M2OCHGRT.js.map} +0 -0
  719. /package/dist/{IDCViewer-FWXRE4AX.js.map → IDCViewer-SWFBLBZH.js.map} +0 -0
  720. /package/dist/{NumContEditor.unit.spec-5GTWUJEL.js.map → NumContEditor.unit.spec-P67AFEHM.js.map} +0 -0
  721. /package/dist/{NumCustomBinEditor-GM2OJMOX.js.map → NumCustomBinEditor-H22J4K47.js.map} +0 -0
  722. /package/dist/{NumRegularBinEditor-CZYITY5L.js.map → NumRegularBinEditor-IRD27CE2.js.map} +0 -0
  723. /package/dist/{NumericDensity-JSOFOEH2.js.map → NumericDensity-53KMCTDL.js.map} +0 -0
  724. /package/dist/{NumericHandler-UZOGKPKB.js.map → NumericHandler-5QFNXVBA.js.map} +0 -0
  725. /package/dist/{NumericHandler.unit.spec-X2DAED4O.js.map → NumericHandler.unit.spec-OBITSUU3.js.map} +0 -0
  726. /package/dist/{ProteomeInput-GBVCLNS7.js.map → ProteomeInput-MM373EL3.js.map} +0 -0
  727. /package/dist/{RunChart2-N4JPWNVV.js.map → RunChart2-2L6T3ITZ.js.map} +0 -0
  728. /package/dist/{SC-RCZT5BRP.js.map → SC-JKD3Z2X5.js.map} +0 -0
  729. /package/dist/{Volcano-2BQ6SYHO.js.map → Volcano-STGBS7IJ.js.map} +0 -0
  730. /package/dist/{WSIViewer-UDA4WIRT.js.map → WSIViewer-LOBVUTOD.js.map} +0 -0
  731. /package/dist/{WsiSamplesPlot-DYSFMD22.js.map → WsiSamplesPlot-D3L3AILR.js.map} +0 -0
  732. /package/dist/{adSandbox-5BUDCAER.js.map → adSandbox-XO5HDSFW.js.map} +0 -0
  733. /package/dist/{animatedBubbleChart-N6MBJ4X3.js.map → animatedBubbleChart-XKW6TCZP.js.map} +0 -0
  734. /package/dist/{app-O64TGDFH.js.map → app-H7ABTG6X.js.map} +0 -0
  735. /package/dist/{app-Y2STUISK.js.map → app-HJSPIKRQ.js.map} +0 -0
  736. /package/dist/{bam-2EOABVGT.js.map → bam-R5QVHWGY.js.map} +0 -0
  737. /package/dist/{barchart-UHCTYRMJ.js.map → barchart-OGCLBPQ2.js.map} +0 -0
  738. /package/dist/{barchart.data-LSK2P2PR.js.map → barchart.data-VBSWS5N7.js.map} +0 -0
  739. /package/dist/{barchart.events-Y4H2GADS.js.map → barchart.events-GZTY4IC3.js.map} +0 -0
  740. /package/dist/{barchart.integration.spec-BFGZFECA.js.map → barchart.integration.spec-Z6ECNFSM.js.map} +0 -0
  741. /package/dist/{barchart2-VIZKZRMP.js.map → barchart2-DT42I747.js.map} +0 -0
  742. /package/dist/{block-BGSSF6XP.js.map → block-UYYJXSCM.js.map} +0 -0
  743. /package/dist/{block.init-H7RKUIHG.js.map → block.init-43M53IMA.js.map} +0 -0
  744. /package/dist/{block.mds.expressionrank-MA3HGT7S.js.map → block.mds.expressionrank-YH3IWMKM.js.map} +0 -0
  745. /package/dist/{block.mds.geneboxplot-CWT5DM5T.js.map → block.mds.geneboxplot-QS2IK37X.js.map} +0 -0
  746. /package/dist/{block.mds.junction-P4I7O73X.js.map → block.mds.junction-7FF5BFEX.js.map} +0 -0
  747. /package/dist/{block.mds.svcnv-NSPEY43S.js.map → block.mds.svcnv-MMJYLL2W.js.map} +0 -0
  748. /package/dist/{block.svg-DP4G3LNQ.js.map → block.svg-SA6DSUM2.js.map} +0 -0
  749. /package/dist/{block.tk.aicheck-EBLTOWKZ.js.map → block.tk.aicheck-ZX5LZ2QO.js.map} +0 -0
  750. /package/dist/{block.tk.ase-X7WKQOFS.js.map → block.tk.ase-YXT4BOXK.js.map} +0 -0
  751. /package/dist/{block.tk.bam-OIP3TS3N.js.map → block.tk.bam-IMLRIOOV.js.map} +0 -0
  752. /package/dist/{block.tk.bedgraphdot-2DDF55J3.js.map → block.tk.bedgraphdot-UYQLL7HM.js.map} +0 -0
  753. /package/dist/{block.tk.bigwig.ui-S2SMAEXM.js.map → block.tk.bigwig.ui-WUVLVRSM.js.map} +0 -0
  754. /package/dist/{block.tk.hicstraw-4OIG4TBZ.js.map → block.tk.hicstraw-N4SJGF7H.js.map} +0 -0
  755. /package/dist/{block.tk.junction-52OWEQUN.js.map → block.tk.junction-LZWHFKWJ.js.map} +0 -0
  756. /package/dist/{block.tk.junction.textmatrixui-64YOSZLW.js.map → block.tk.junction.textmatrixui-B626NYPA.js.map} +0 -0
  757. /package/dist/{block.tk.ld-3AMNHBDY.js.map → block.tk.ld-6VWUMAP6.js.map} +0 -0
  758. /package/dist/{block.tk.menu-4724DJXL.js.map → block.tk.menu-RRN2UPQX.js.map} +0 -0
  759. /package/dist/{block.tk.pgv-2SIOPWYI.js.map → block.tk.pgv-GYG3EI6P.js.map} +0 -0
  760. /package/dist/{brainImaging-D43CQQN6.js.map → brainImaging-VIMLETC5.js.map} +0 -0
  761. /package/dist/{brainRegions-HJ2VGL3L.js.map → brainRegions-DRYZT5K5.js.map} +0 -0
  762. /package/dist/{bubbleHeatmap-IL44M4QZ.js.map → bubbleHeatmap-Y4SGMVJY.js.map} +0 -0
  763. /package/dist/{cellTypeBubbleHeatmap-NQP7RCZO.js.map → cellTypeBubbleHeatmap-QW37ZT5W.js.map} +0 -0
  764. /package/dist/{chunk-WXPFMVU6.js.map → chunk-2Y5C7GJS.js.map} +0 -0
  765. /package/dist/{chunk-BNAO6N5X.js.map → chunk-2ZTCRUOL.js.map} +0 -0
  766. /package/dist/{chunk-D565DNJD.js.map → chunk-3P74DH6P.js.map} +0 -0
  767. /package/dist/{chunk-5DMVORBB.js.map → chunk-3PPCZPLN.js.map} +0 -0
  768. /package/dist/{chunk-S5ZCK44Z.js.map → chunk-4H4WJJ2G.js.map} +0 -0
  769. /package/dist/{chunk-6OUBUUC2.js.map → chunk-4L2OSDQ6.js.map} +0 -0
  770. /package/dist/{chunk-JVPWIVDT.js.map → chunk-4USLEUNR.js.map} +0 -0
  771. /package/dist/{chunk-UEGQVQD6.js.map → chunk-5ITKSTJX.js.map} +0 -0
  772. /package/dist/{chunk-M66VDGSH.js.map → chunk-5VMYXVZG.js.map} +0 -0
  773. /package/dist/{chunk-UUKSL7QC.js.map → chunk-7ZVFLC2V.js.map} +0 -0
  774. /package/dist/{chunk-ROMW4AK2.js.map → chunk-C5IAIOCA.js.map} +0 -0
  775. /package/dist/{chunk-7PIHRWGG.js.map → chunk-CIRCVMWE.js.map} +0 -0
  776. /package/dist/{chunk-AGLAYNXP.js.map → chunk-CLTRQZGJ.js.map} +0 -0
  777. /package/dist/{chunk-W7OS7BNM.js.map → chunk-CRH37PEV.js.map} +0 -0
  778. /package/dist/{chunk-WTTD6DUL.js.map → chunk-DCNDZOI3.js.map} +0 -0
  779. /package/dist/{chunk-VUPWQCDR.js.map → chunk-DCR4QQ5Y.js.map} +0 -0
  780. /package/dist/{chunk-TDKMBQSM.js.map → chunk-DKAHHMKN.js.map} +0 -0
  781. /package/dist/{chunk-WKNI3HRQ.js.map → chunk-E2GHT7RH.js.map} +0 -0
  782. /package/dist/{chunk-XNWUI5VL.js.map → chunk-EQCVSUAF.js.map} +0 -0
  783. /package/dist/{chunk-DH3LAQKT.js.map → chunk-ETK36FXN.js.map} +0 -0
  784. /package/dist/{chunk-QDX2XUNF.js.map → chunk-FCOX5Q4Q.js.map} +0 -0
  785. /package/dist/{chunk-5ZTVJSYI.js.map → chunk-FVL37XFU.js.map} +0 -0
  786. /package/dist/{chunk-SNRIVNQ3.js.map → chunk-FXS4I3Z3.js.map} +0 -0
  787. /package/dist/{chunk-46X6AQ7Z.js.map → chunk-FYAY6D3O.js.map} +0 -0
  788. /package/dist/{chunk-MJN6RDXB.js.map → chunk-GL44X7JY.js.map} +0 -0
  789. /package/dist/{chunk-6JYQGZ3Y.js.map → chunk-IQVBMLFI.js.map} +0 -0
  790. /package/dist/{chunk-RVKADD4L.js.map → chunk-IYT5PNYJ.js.map} +0 -0
  791. /package/dist/{chunk-5QMBB4SK.js.map → chunk-J6EP7JPJ.js.map} +0 -0
  792. /package/dist/{chunk-ULESDMUT.js.map → chunk-JLGCQ2F4.js.map} +0 -0
  793. /package/dist/{chunk-TAM7UCAI.js.map → chunk-JQT67SWE.js.map} +0 -0
  794. /package/dist/{chunk-KU7YH7MV.js.map → chunk-JQYPRW42.js.map} +0 -0
  795. /package/dist/{chunk-2GLA2SWU.js.map → chunk-K4IGOJPT.js.map} +0 -0
  796. /package/dist/{chunk-RJOY6A74.js.map → chunk-KPTPDZX2.js.map} +0 -0
  797. /package/dist/{chunk-KZILNGAV.js.map → chunk-KTB7KXC2.js.map} +0 -0
  798. /package/dist/{chunk-STI7BO3P.js.map → chunk-KW7MKBGF.js.map} +0 -0
  799. /package/dist/{chunk-ZEKIUYN3.js.map → chunk-KZFVYDVK.js.map} +0 -0
  800. /package/dist/{chunk-W76X6W73.js.map → chunk-M77DCLJX.js.map} +0 -0
  801. /package/dist/{chunk-U3NTH4CS.js.map → chunk-MGGAWPTR.js.map} +0 -0
  802. /package/dist/{chunk-4HZN6PMU.js.map → chunk-MUJMZ6W6.js.map} +0 -0
  803. /package/dist/{chunk-BGTBRAJ6.js.map → chunk-NRP55BOF.js.map} +0 -0
  804. /package/dist/{chunk-NRYHIWBS.js.map → chunk-O5KFJBU3.js.map} +0 -0
  805. /package/dist/{chunk-OOWXMY7U.js.map → chunk-QHPN3JJZ.js.map} +0 -0
  806. /package/dist/{chunk-NUWJ4RN7.js.map → chunk-QSGXZEUU.js.map} +0 -0
  807. /package/dist/{chunk-GNS6CQMA.js.map → chunk-R3ARQMM4.js.map} +0 -0
  808. /package/dist/{chunk-4KRGCOTL.js.map → chunk-RIQT2LSR.js.map} +0 -0
  809. /package/dist/{chunk-J4USU73L.js.map → chunk-RVRRHEUG.js.map} +0 -0
  810. /package/dist/{chunk-H3N4KYKL.js.map → chunk-SOCGXVIL.js.map} +0 -0
  811. /package/dist/{chunk-HQUYAZQY.js.map → chunk-SZHFBRRT.js.map} +0 -0
  812. /package/dist/{chunk-E3VF4RHJ.js.map → chunk-TOYMIFHN.js.map} +0 -0
  813. /package/dist/{chunk-NIXFCC7X.js.map → chunk-TPVHGI7Q.js.map} +0 -0
  814. /package/dist/{chunk-26APRXD3.js.map → chunk-TRQUMV4T.js.map} +0 -0
  815. /package/dist/{chunk-R6NM2HSH.js.map → chunk-UO7MD3XA.js.map} +0 -0
  816. /package/dist/{chunk-5RVA43MN.js.map → chunk-UONOFG2J.js.map} +0 -0
  817. /package/dist/{chunk-CY4RQ5L6.js.map → chunk-V2DU2OXH.js.map} +0 -0
  818. /package/dist/{chunk-MPNEZ6EL.js.map → chunk-WWXXSQ2M.js.map} +0 -0
  819. /package/dist/{chunk-7JRDJNLR.js.map → chunk-X6VTVZY7.js.map} +0 -0
  820. /package/dist/{chunk-TQTYW66I.js.map → chunk-X7KRSZQT.js.map} +0 -0
  821. /package/dist/{chunk-5T3ZDRTS.js.map → chunk-XJBSBIZ4.js.map} +0 -0
  822. /package/dist/{chunk-BQHPJY2M.js.map → chunk-XRQWZJJ3.js.map} +0 -0
  823. /package/dist/{chunk-NZRMHM76.js.map → chunk-XZ4M3QAV.js.map} +0 -0
  824. /package/dist/{chunk-FACITNG5.js.map → chunk-YMP4YKBN.js.map} +0 -0
  825. /package/dist/{chunk-7PJNKPQB.js.map → chunk-YUURGVV3.js.map} +0 -0
  826. /package/dist/{chunk-EGPNRSPF.js.map → chunk-Z7VK2AMA.js.map} +0 -0
  827. /package/dist/{chunk-OTTMHVYH.js.map → chunk-ZFJUVP2N.js.map} +0 -0
  828. /package/dist/{chunk-H3VWJH4U.js.map → chunk-ZH7JPYQE.js.map} +0 -0
  829. /package/dist/{chunk-NODQZTWK.js.map → chunk-ZVDOSFWU.js.map} +0 -0
  830. /package/dist/{cohort-OWLNJZVH.js.map → cohort-CEYVJJ7E.js.map} +0 -0
  831. /package/dist/{condition-L2IXP6WH.js.map → condition-QSOFP4MY.js.map} +0 -0
  832. /package/dist/{controls-2S5QVWUC.js.map → controls-QYHARIEY.js.map} +0 -0
  833. /package/dist/{controls.config-3AJKR4ZZ.js.map → controls.config-3OO3JK6E.js.map} +0 -0
  834. /package/dist/{correlation-DXTAWSLU.js.map → correlation-TOI3TMYL.js.map} +0 -0
  835. /package/dist/{cuminc-WQB6FHVS.js.map → cuminc-L7OJTYXC.js.map} +0 -0
  836. /package/dist/{cuminc.integration.spec-WAYRLHUH.js.map → cuminc.integration.spec-LSWV3KOF.js.map} +0 -0
  837. /package/dist/{customdata.inputui-7WH2NJGB.js.map → customdata.inputui-VMB3HSSC.js.map} +0 -0
  838. /package/dist/{dataDownload-HM4UYOBO.js.map → dataDownload-NPSWNOAG.js.map} +0 -0
  839. /package/dist/{dataDownload.integration.spec-F5CO4BWA.js.map → dataDownload.integration.spec-J6FRFLBK.js.map} +0 -0
  840. /package/dist/{databrowser.ui-E2YOG3L4.js.map → databrowser.ui-GVYWG6YI.js.map} +0 -0
  841. /package/dist/{dictionary-EEPTFDYD.js.map → dictionary-GD67R72W.js.map} +0 -0
  842. /package/dist/{dnaMethylation-N3WNK6XA.js.map → dnaMethylation-S7OSGLAF.js.map} +0 -0
  843. /package/dist/{dnaMethylation.integration.spec-AIYRTFMR.js.map → dnaMethylation.integration.spec-ETMMJNDE.js.map} +0 -0
  844. /package/dist/{dofetch-YKYPEJTQ.js.map → dofetch-7GURQS65.js.map} +0 -0
  845. /package/dist/{e2pca-JEZIGVB2.js.map → e2pca-ZIIPBJFN.js.map} +0 -0
  846. /package/dist/{ep-5FMH2MLV.js.map → ep-A2HAL5WA.js.map} +0 -0
  847. /package/dist/{expclust.gdc.spec-FR26VSUA.js.map → expclust.gdc.spec-ZSILLYNI.js.map} +0 -0
  848. /package/dist/{facet-5YYY3MUN.js.map → facet-74LKIPTA.js.map} +0 -0
  849. /package/dist/{gb-WGEVO7L2.js.map → gb-C3MPQXKN.js.map} +0 -0
  850. /package/dist/{geneExpClustering-DHE6XJHV.js.map → geneExpClustering-HYCFUUTU.js.map} +0 -0
  851. /package/dist/{geneExpression-5NWQXMJ3.js.map → geneExpression-GATKMJJ5.js.map} +0 -0
  852. /package/dist/{geneExpression-VWUMM2LU.js.map → geneExpression-JXSAP2H7.js.map} +0 -0
  853. /package/dist/{geneExpression.unit.spec-HBU3WTZ4.js.map → geneExpression.unit.spec-CODZYFHZ.js.map} +0 -0
  854. /package/dist/{geneORA-3VWFWDYI.js.map → geneORA-LJRIR4VV.js.map} +0 -0
  855. /package/dist/{geneRanking-PKDVD5OD.js.map → geneRanking-TWLBKQZG.js.map} +0 -0
  856. /package/dist/{geneVariant-IFIJQXH4.js.map → geneVariant-35RQHTCK.js.map} +0 -0
  857. /package/dist/{geneVariant-WZSOG4GI.js.map → geneVariant-TMJJIMUF.js.map} +0 -0
  858. /package/dist/{geneVariant.integration.spec-6KQMWVHR.js.map → geneVariant.integration.spec-FIQ7IBSD.js.map} +0 -0
  859. /package/dist/{genefusion.ui-C4NTALL3.js.map → genefusion.ui-SOBESSNO.js.map} +0 -0
  860. /package/dist/{geneset-RJAULSKC.js.map → geneset-JXEJFEK2.js.map} +0 -0
  861. /package/dist/{genomeBrowser.spec-42OTTMGO.js.map → genomeBrowser.spec-25ZO5S2X.js.map} +0 -0
  862. /package/dist/{grin2-26O6YDDY.js.map → grin2-CW4RPVPI.js.map} +0 -0
  863. /package/dist/{grin2-FT5BQJMB.js.map → grin2-EI5BVP4E.js.map} +0 -0
  864. /package/dist/{hierCluster-GJPPMFNR.js.map → hierCluster-OBBPQH24.js.map} +0 -0
  865. /package/dist/{hierCluster-HMJF3PBE.js.map → hierCluster-SDH3TJQY.js.map} +0 -0
  866. /package/dist/{hierCluster.config-TAS7XKTU.js.map → hierCluster.config-DO67TCXI.js.map} +0 -0
  867. /package/dist/{hierCluster.integration.spec-RLHQKX65.js.map → hierCluster.integration.spec-EB24C4VZ.js.map} +0 -0
  868. /package/dist/{hierCluster.interactivity-IKTAJ6CU.js.map → hierCluster.interactivity-LGEAFT5T.js.map} +0 -0
  869. /package/dist/{hierCluster.renderers-I6WFZRNW.js.map → hierCluster.renderers-FXDCU3PN.js.map} +0 -0
  870. /package/dist/{imagePlot-N4OXNMVA.js.map → imagePlot-LGLFG2QZ.js.map} +0 -0
  871. /package/dist/{importPlot-VMYXDP66.js.map → importPlot-R2WRZGZU.js.map} +0 -0
  872. /package/dist/{isoformExpression-2KV64KMN.js.map → isoformExpression-KI3WY5M3.js.map} +0 -0
  873. /package/dist/{isoformExpression.unit.spec-RG2VWEMG.js.map → isoformExpression.unit.spec-OQRG2DDU.js.map} +0 -0
  874. /package/dist/{junction-VO4IGMW2.js.map → junction-6SWFPNM5.js.map} +0 -0
  875. /package/dist/{junction.customTerm-EFMHHVWA.js.map → junction.customTerm-MDBOU6I7.js.map} +0 -0
  876. /package/dist/{junction.unit.spec-NB24MR2B.js.map → junction.unit.spec-5TZFITSU.js.map} +0 -0
  877. /package/dist/{launch.adhoc-R3MO3VXK.js.map → launch.adhoc-HCX2RQLB.js.map} +0 -0
  878. /package/dist/{leftlabel.sample-SI6KMULD.js.map → leftlabel.sample-OI6XCXTQ.js.map} +0 -0
  879. /package/dist/{lollipop-XIVE4ANX.js.map → lollipop-SOSOYHYL.js.map} +0 -0
  880. /package/dist/{maf-WRHD4OJF.js.map → maf-73RLOEVN.js.map} +0 -0
  881. /package/dist/{maftimeline-IE6YKV7Y.js.map → maftimeline-UOMLYUNI.js.map} +0 -0
  882. /package/dist/{matrix-ALBCAZP5.js.map → matrix-5QWDN6SI.js.map} +0 -0
  883. /package/dist/{matrix-W72XRUZD.js.map → matrix-SKPVVDVR.js.map} +0 -0
  884. /package/dist/{matrix.cells-DEEUWC74.js.map → matrix.cells-CFSI2NWU.js.map} +0 -0
  885. /package/dist/{matrix.config-JYXQOXDT.js.map → matrix.config-HE64MAL4.js.map} +0 -0
  886. /package/dist/{matrix.data-ENXNM6RP.js.map → matrix.data-HTUZXQAM.js.map} +0 -0
  887. /package/dist/{matrix.groups-EXSNNESB.js.map → matrix.groups-ZFKWVNMX.js.map} +0 -0
  888. /package/dist/{matrix.integration.spec-BW6U6PIW.js.map → matrix.integration.spec-YKJ4LZFY.js.map} +0 -0
  889. /package/dist/{matrix.interactivity-G6AL566T.js.map → matrix.interactivity-YB5G5W5T.js.map} +0 -0
  890. /package/dist/{matrix.layout-UBUPIJ3R.js.map → matrix.layout-MFG65V7K.js.map} +0 -0
  891. /package/dist/{matrix.legend-S3P4F2DG.js.map → matrix.legend-7MIZZJVB.js.map} +0 -0
  892. /package/dist/{matrix.renderers-IXFGXHJQ.js.map → matrix.renderers-PCZFHDDZ.js.map} +0 -0
  893. /package/dist/{matrix.serieses-THHXUAPM.js.map → matrix.serieses-7KYX3KAY.js.map} +0 -0
  894. /package/dist/{matrix.sort-WJV6LIZI.js.map → matrix.sort-CR3J45MQ.js.map} +0 -0
  895. /package/dist/{matrix.sort.unit.spec-LGMIL2LR.js.map → matrix.sort.unit.spec-GEAM5DSU.js.map} +0 -0
  896. /package/dist/{matrix.sorterUi-VXVCOKEZ.js.map → matrix.sorterUi-YSKIX6B6.js.map} +0 -0
  897. /package/dist/{matrix.sorterUi.unit.spec-CWSEJ62U.js.map → matrix.sorterUi.unit.spec-2MW64QS5.js.map} +0 -0
  898. /package/dist/{mavb-SXGKASQ5.js.map → mavb-YMHJXCGA.js.map} +0 -0
  899. /package/dist/{mds.fimo-EDOT3TDN.js.map → mds.fimo-PTEDRMLQ.js.map} +0 -0
  900. /package/dist/{mds.samplescatterplot-IXHNABKB.js.map → mds.samplescatterplot-7R7PLVQJ.js.map} +0 -0
  901. /package/dist/{mds.survivalplot-KTTMHHII.js.map → mds.survivalplot-F3EENMFQ.js.map} +0 -0
  902. /package/dist/{numericDictTermCluster-H4JSPW22.js.map → numericDictTermCluster-3HXLMURH.js.map} +0 -0
  903. /package/dist/{oncomatrix-O4EMNUOT.js.map → oncomatrix-27VVSMZB.js.map} +0 -0
  904. /package/dist/{oncomatrix.spec-BME6CQWF.js.map → oncomatrix.spec-F43Y7CWN.js.map} +0 -0
  905. /package/dist/{plot.2dvaf-FDM4KXGT.js.map → plot.2dvaf-MYFQSWIA.js.map} +0 -0
  906. /package/dist/{plot.app-UNUXG7ND.js.map → plot.app-36QWCKXR.js.map} +0 -0
  907. /package/dist/{plot.barplot-R333TMG2.js.map → plot.barplot-535EP7XT.js.map} +0 -0
  908. /package/dist/{plot.boxplot-KQTYGUN3.js.map → plot.boxplot-6IBP7VEB.js.map} +0 -0
  909. /package/dist/{plot.brainImaging-YBYMHCEG.js.map → plot.brainImaging-M4HPNXZH.js.map} +0 -0
  910. /package/dist/{plot.disco-CMDKRSOM.js.map → plot.disco-HIT6GR44.js.map} +0 -0
  911. /package/dist/{plot.dzi-YAZA6RQS.js.map → plot.dzi-W66SBKTH.js.map} +0 -0
  912. /package/dist/{plot.ssgq-YKCOEXZP.js.map → plot.ssgq-MI2OMCUY.js.map} +0 -0
  913. /package/dist/{plot.vaf2cov-3TLMTFZS.js.map → plot.vaf2cov-F4CBMLRA.js.map} +0 -0
  914. /package/dist/{plot.wsi-7ADVYTQS.js.map → plot.wsi-7M5KTNFC.js.map} +0 -0
  915. /package/dist/{polar2-O5SHVLP4.js.map → polar2-7VSWGT4U.js.map} +0 -0
  916. /package/dist/{profileForms-RLB6SMPQ.js.map → profileForms-DFPCNJW2.js.map} +0 -0
  917. /package/dist/{profilePlot-AP52VLLO.js.map → profilePlot-ECTPPVB2.js.map} +0 -0
  918. /package/dist/{proteinView-S7WDBMQU.js.map → proteinView-6ELOLOIU.js.map} +0 -0
  919. /package/dist/{proteomeCohortCompare-ERVUM7RO.js.map → proteomeCohortCompare-V2FMWI62.js.map} +0 -0
  920. /package/dist/{pseudbulk.unit.spec-VSH7IM3R.js.map → pseudbulk.unit.spec-KV6URTXC.js.map} +0 -0
  921. /package/dist/{pseudobulk-7UKRLKQI.js.map → pseudobulk-6ZRFCE65.js.map} +0 -0
  922. /package/dist/{qualitative-2D7MC4V5.js.map → qualitative-3B62RUOB.js.map} +0 -0
  923. /package/dist/{qualitative-2INAKDTJ.js.map → qualitative-GJDQBD7L.js.map} +0 -0
  924. /package/dist/{radar2-ELVGQFZE.js.map → radar2-4QQER64E.js.map} +0 -0
  925. /package/dist/{radarFacility2-SDAZHGNG.js.map → radarFacility2-MZKORRDY.js.map} +0 -0
  926. /package/dist/{regression-CE54AQMY.js.map → regression-GZ2YNX6Y.js.map} +0 -0
  927. /package/dist/{regression.inputs-SMC5CNPY.js.map → regression.inputs-ZEFDNSVT.js.map} +0 -0
  928. /package/dist/{regression.inputs.term-XS54IQC2.js.map → regression.inputs.term-O2FQBX7L.js.map} +0 -0
  929. /package/dist/{regression.inputs.values.table-LNPM3MX5.js.map → regression.inputs.values.table-63BQKSZP.js.map} +0 -0
  930. /package/dist/{regression.results-25ZRRDEE.js.map → regression.results-5J3QM4RX.js.map} +0 -0
  931. /package/dist/{regression.spec-EDWHFRPY.js.map → regression.spec-WZAZTDDA.js.map} +0 -0
  932. /package/dist/{render-SEB6GFXQ.js.map → render-MZTEXVU5.js.map} +0 -0
  933. /package/dist/{report-U6L3KBYG.js.map → report-M5TYHH2W.js.map} +0 -0
  934. /package/dist/{sampleView-QAAJ26KT.js.map → sampleView-QYTLYJEW.js.map} +0 -0
  935. /package/dist/{samplelst-KYRXJSZN.js.map → samplelst-FN3Q7M7A.js.map} +0 -0
  936. /package/dist/{samplematrix-STLF2QA5.js.map → samplematrix-Z5FVODO7.js.map} +0 -0
  937. /package/dist/{sc-HL6YSMDX.js.map → sc-4CHP5SYP.js.map} +0 -0
  938. /package/dist/{selectGenomeWithTklst-4NHQDTE6.js.map → selectGenomeWithTklst-WMAHGT4F.js.map} +0 -0
  939. /package/dist/{singleCellCellType-3E2IU42J.js.map → singleCellCellType-XPWENB6V.js.map} +0 -0
  940. /package/dist/{singleCellCellType.unit.spec-MC7ZRSMW.js.map → singleCellCellType.unit.spec-QK56PHKW.js.map} +0 -0
  941. /package/dist/{singleCellGeneExpression-53UUGYTK.js.map → singleCellGeneExpression-4CEVDVYF.js.map} +0 -0
  942. /package/dist/{singleCellGeneExpression.unit.spec-QSLTXHFE.js.map → singleCellGeneExpression.unit.spec-ZYRLBVF5.js.map} +0 -0
  943. /package/dist/{singleCellPlot-JDSARDRV.js.map → singleCellPlot-JS74VUGC.js.map} +0 -0
  944. /package/dist/{singlecell-IJR7BJYT.js.map → singlecell-5XYOHMWJ.js.map} +0 -0
  945. /package/dist/{singlecell-OK6GJFWL.js.map → singlecell-OO77XBDD.js.map} +0 -0
  946. /package/dist/{snp-H4KJEEOE.js.map → snp-X5ZILM5J.js.map} +0 -0
  947. /package/dist/{snp.unit.spec-2Y4A3XYI.js.map → snp.unit.spec-V23G3JLJ.js.map} +0 -0
  948. /package/dist/{snplocus-4GG6VTWX.js.map → snplocus-U5UIIUWR.js.map} +0 -0
  949. /package/dist/{spliceevent.a53ss.diagram-JZNRC5UC.js.map → spliceevent.a53ss.diagram-YDFVSDMT.js.map} +0 -0
  950. /package/dist/{spliceevent.exonskip.diagram-H54N7ZKY.js.map → spliceevent.exonskip.diagram-VDKN5JBE.js.map} +0 -0
  951. /package/dist/{spliceevent.noeventdiagram-II753XAK.js.map → spliceevent.noeventdiagram-EFPFRUFI.js.map} +0 -0
  952. /package/dist/{ssGSEA-JPJ3C4JI.js.map → ssGSEA-LKJW5OQK.js.map} +0 -0
  953. /package/dist/{ssGSEA.unit.spec-45F5OCDK.js.map → ssGSEA.unit.spec-7WCZVEP2.js.map} +0 -0
  954. /package/dist/{studyCatalog-O3VGIKDM.js.map → studyCatalog-EU33KE5H.js.map} +0 -0
  955. /package/dist/{summarizeCnvGeneexp-55DNXHXA.js.map → summarizeCnvGeneexp-QL25OQNB.js.map} +0 -0
  956. /package/dist/{summarizeGeneexpSurvival-VLO4DC5M.js.map → summarizeGeneexpSurvival-B7HTCH7L.js.map} +0 -0
  957. /package/dist/{summarizeMutationCnv-QX7BADYL.js.map → summarizeMutationCnv-DFAPX2JE.js.map} +0 -0
  958. /package/dist/{summarizeMutationDiagnosis-MHFM7RX6.js.map → summarizeMutationDiagnosis-HCSDSVII.js.map} +0 -0
  959. /package/dist/{summarizeMutationSurvival-G4KHSUBN.js.map → summarizeMutationSurvival-6WEASSA2.js.map} +0 -0
  960. /package/dist/{summary-PJYRCQNY.js.map → summary-BWYXE77G.js.map} +0 -0
  961. /package/dist/{summary.integration.spec-KPKROD6L.js.map → summary.integration.spec-AVGSW5MF.js.map} +0 -0
  962. /package/dist/{summaryInput-TOAL53EP.js.map → summaryInput-MOQ6HUCX.js.map} +0 -0
  963. /package/dist/{sunburst-IGIV2RBE.js.map → sunburst-EZDHVJCL.js.map} +0 -0
  964. /package/dist/{survival-RKV5BPDK.js.map → survival-5TFMM7NP.js.map} +0 -0
  965. /package/dist/{survival-DINCIWW7.js.map → survival-IEVELTC4.js.map} +0 -0
  966. /package/dist/{survival.integration.spec-7ZYBBZKT.js.map → survival.integration.spec-HHWP3R4H.js.map} +0 -0
  967. /package/dist/{svgraph-EUEZWGVR.js.map → svgraph-55XRIYJW.js.map} +0 -0
  968. /package/dist/{svmr-B24LODSC.js.map → svmr-CMEBFSRO.js.map} +0 -0
  969. /package/dist/{table-XSJJ3UZV.js.map → table-LTWQ3TLQ.js.map} +0 -0
  970. /package/dist/{termCollection-IAB3425K.js.map → termCollection-CPQXYBFA.js.map} +0 -0
  971. /package/dist/{termCollection-LGEGHZSJ.js.map → termCollection-ZWOH273K.js.map} +0 -0
  972. /package/dist/{termCollection.unit.spec-4TIRHC44.js.map → termCollection.unit.spec-RK7VATLU.js.map} +0 -0
  973. /package/dist/{termCollectionFractionSelection-35YKAOUY.js.map → termCollectionFractionSelection-Z4ZRW63R.js.map} +0 -0
  974. /package/dist/{termCollectionFractionSelection.unit.spec-SUFEIKJZ.js.map → termCollectionFractionSelection.unit.spec-3CS7DPNU.js.map} +0 -0
  975. /package/dist/{tk-25EJJDRK.js.map → tk-4NNTWWLK.js.map} +0 -0
  976. /package/dist/{tk-4E3XJ7CO.js.map → tk-RHWJJXH2.js.map} +0 -0
  977. /package/dist/{tp.ui-VGA62NFM.js.map → tp.ui-DPN5UN6U.js.map} +0 -0
  978. /package/dist/{tvs.density-G56327WY.js.map → tvs.density-LMRZZO4D.js.map} +0 -0
  979. /package/dist/{tvs.dt-DFW36WKO.js.map → tvs.dt-ARPDFRVM.js.map} +0 -0
  980. /package/dist/{tvs.dtcnv.categorical-ZP33EO3A.js.map → tvs.dtcnv.categorical-POS6WQK6.js.map} +0 -0
  981. /package/dist/{tvs.dtcnv.continuous-FJTMQF4J.js.map → tvs.dtcnv.continuous-5OETJ7JU.js.map} +0 -0
  982. /package/dist/{tvs.dtfusion-FTDQWNKM.js.map → tvs.dtfusion-ERYVI3DW.js.map} +0 -0
  983. /package/dist/{tvs.dtitd-W5VEECJ2.js.map → tvs.dtitd-KTZZYEWU.js.map} +0 -0
  984. /package/dist/{tvs.dtsnvindel-UOXSLCDZ.js.map → tvs.dtsnvindel-TGUAX3RN.js.map} +0 -0
  985. /package/dist/{tvs.dtsv-HWCPRVBO.js.map → tvs.dtsv-AM63OIL6.js.map} +0 -0
  986. /package/dist/{tvs.numeric-7TGKWQYU.js.map → tvs.numeric-MQPO5XUQ.js.map} +0 -0
  987. /package/dist/{tvs.samplelst-OWD22ITS.js.map → tvs.samplelst-VW2NOQ2C.js.map} +0 -0
  988. /package/dist/{tvs.termCollection-27BWABYK.js.map → tvs.termCollection-O4ZSWJFA.js.map} +0 -0
  989. /package/dist/{violin-2IAVZGFF.js.map → violin-ZQ3DEYGR.js.map} +0 -0
  990. /package/dist/{violin.integration.spec-JVODKUCL.js.map → violin.integration.spec-PVEF77HB.js.map} +0 -0
  991. /package/dist/{violin.interactivity-STOCZMVN.js.map → violin.interactivity-FYU4TCFO.js.map} +0 -0
  992. /package/dist/{violin.renderer-MKDTJ3EX.js.map → violin.renderer-XAERGBMV.js.map} +0 -0
  993. /package/dist/{vocabulary-4IHU6DNN.js.map → vocabulary-ECJX27W2.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../plots/regression.inputs.term.js", "../plots/regression.inputs.js", "../plots/regression.js"],
4
+ "sourcesContent": ["import { termsettingInit, get$id } from '#termsetting'\nimport { isDictionaryType, get_bin_label, isNumericTerm, getValueConversionFactor, roundValue } from '#shared'\nimport { InputValuesTable } from './regression.inputs.values.table'\nimport { Menu } from '#dom'\nimport { select } from 'd3-selection'\nimport { mayRunSnplstTask } from '../termsetting/handlers/snplst.sampleSum.ts'\nimport { get_defaultQ4fillTW } from './regression'\n\n/*\nclass instance is an input\n*/\n\nexport class InputTerm {\n\tconstructor(opts) {\n\t\t// opts { section, term, parent }\n\t\tthis.opts = opts\n\t\tthis.section = opts.section\n\t\tthis.term = opts.term // term wrapper {id, term, q}; will be missing for a blank input\n\t\tthis.parent = opts.parent // the inputs instance\n\t\tthis.vocabApi = this.parent.parent.vocabApi || this.parent.app.vocabApi\n\t}\n\n\tasync init(holder) {\n\t\t// only run once when a new input variable is added to the user interface via data/enter() in inputs.js\n\n\t\tconst termRow = holder.append('div')\n\t\t// the row contains two cells: left to show ts pill, right to show interaction\n\t\tconst pillDiv = termRow.append('span').style('display', 'inline-block')\n\t\tconst interactionDiv = termRow.append('span').style('margin-left', '20px')\n\n\t\tthis.dom = {\n\t\t\tholder,\n\t\t\ttermRow,\n\t\t\tpillDiv,\n\t\t\tinteractionDiv,\n\t\t\terr_div: holder\n\t\t\t\t.append('div')\n\t\t\t\t.style('display', 'none')\n\t\t\t\t.style('padding', '5px')\n\t\t\t\t.style('background-color', 'rgba(255,100,100,0.2)'),\n\t\t\tinfoDiv: holder.append('div'),\n\t\t\ttip: new Menu()\n\t\t}\n\n\t\ttry {\n\t\t\tconst { app, config, state, disable_terms } = this.parent\n\n\t\t\t// termsetting constructor option\n\t\t\tconst arg = {\n\t\t\t\tplaceholder: this.section.selectPrompt,\n\t\t\t\tplaceholderIcon: this.section.placeholderIcon,\n\t\t\t\tholder: this.dom.pillDiv,\n\t\t\t\tvocabApi: this.vocabApi,\n\t\t\t\tnoTermPromptOptions: this.opts.noTermPromptOptions,\n\t\t\t\tactiveCohort: state.activeCohort,\n\t\t\t\tdebug: app.opts.debug,\n\t\t\t\tmenuOptions: this.section.configKey == 'outcome' ? '{edit,reuse,replace}' : '{edit,reuse,remove}',\n\t\t\t\tusecase: { target: 'regression', detail: this.section.configKey, regressionType: config.regressionType },\n\t\t\t\tdisable_terms,\n\t\t\t\tabbrCutoff: 50,\n\t\t\t\tgenomeObj: this.parent.parent.genomeObj, // required for snplocus\n\t\t\t\tdefaultQ4fillTW: get_defaultQ4fillTW(config.regressionType, this.section.configKey),\n\t\t\t\tcallback: term => {\n\t\t\t\t\tthis.parent.editConfig(this, term)\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.furbishTsConstructorArg(arg)\n\t\t\t// use 'await' here because it is safer to assume that\n\t\t\t// termsettingInit() returns a promise, in case the Termsetting\n\t\t\t// class ever has an init() method as detected in rx/index.js\n\t\t\tthis.pill = await termsettingInit(arg)\n\n\t\t\tif (this.section.configKey == 'outcome') {\n\t\t\t\t// special treatment for terms selected for outcome\n\t\t\t\tthis.setQ = getQSetter4outcome(config.regressionType)\n\t\t\t}\n\n\t\t\tthis.valuesTable = new InputValuesTable({\n\t\t\t\tholder: this.dom.infoDiv,\n\t\t\t\tinput: this,\n\t\t\t\tcallback: term => {\n\t\t\t\t\tthis.parent.editConfig(this, term)\n\t\t\t\t}\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tthis.displayError([e])\n\t\t}\n\t}\n\n\tfurbishTsConstructorArg(arg) {\n\t\t// furbish termsetting constructor argument, based on regression type and if term is outcome/input\n\t\tconst type = this.parent.config.regressionType\n\t\tif (this.section.configKey == 'outcome') {\n\t\t\t// this term is outcome\n\t\t\tif (type == 'logistic') {\n\t\t\t\targ.numericEditMenuVersion = ['binary']\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (type == 'linear') {\n\t\t\t\targ.numericEditMenuVersion = ['continuous']\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (type == 'cox') {\n\t\t\t\t//arg.showTimeScale = true\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthrow 'unknown regressionType'\n\t\t}\n\t\tif (this.section.configKey == 'independent') {\n\t\t\t// this temr is independent\n\t\t\t// do not allow condition term\n\t\t\targ.numericEditMenuVersion = ['continuous', 'discrete', 'spline']\n\t\t\t// for geneVariant term, only allow groupsetting\n\t\t\targ.geneVariantEditMenuOnlyGrp = true\n\t\t\treturn\n\t\t}\n\t\tthrow 'unknown section.configKey: ' + this.section.configKey\n\t}\n\n\tdisplayError(errors) {\n\t\tthis.hasError = true\n\t\tthis.dom.err_div.selectAll('*').remove()\n\t\tthis.dom.err_div\n\t\t\t.style('display', 'block')\n\t\t\t.selectAll('div')\n\t\t\t.data(Array.isArray(errors) ? errors : [errors])\n\t\t\t.enter()\n\t\t\t.append('div')\n\t\t\t.text(e => e)\n\t\tthis.parent.handleError()\n\t\tconsole.error(errors)\n\t}\n\n\tasync main() {\n\t\t/* called in inputs.main()\n\t\twhen the regression component is notified of a change\n\t\t*/\n\n\t\tconst tw = this.term // term wrapper\n\n\t\t// clear previous errors\n\t\tif (tw) {\n\t\t\t// a term has been selected\n\t\t\tdelete tw.error\n\t\t}\n\n\t\tthis.dom.err_div.style('display', 'none').text('')\n\t\tthis.hasError = false\n\n\t\tconst errors = []\n\t\ttry {\n\t\t\tif (tw && this.setQ) {\n\t\t\t\tconst { app, state } = this.parent\n\t\t\t\tawait this.setQ[tw.term.type](tw, this.vocabApi, this.parent.parent.filter, state)\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait this.updateTerm()\n\t\t\t} catch (e) {\n\t\t\t\t// will allow pill to update to a new term as needed,\n\t\t\t\t// so that the rendered pill and values table match the error message\n\t\t\t\terrors.push(e)\n\t\t\t}\n\t\t\tawait this.pill.main(this.getPillArgs())\n\t\t\tthis.renderInteractionPrompt()\n\t\t\tawait this.valuesTable.main()\n\t\t\t// $id needs to be filled in here for non-dictionary terms\n\t\t\t// TODO: should have a centralized location for filling in\n\t\t\t// $id for non-dictionary terms\n\t\t\tif (tw && !tw.$id) tw.$id = await get$id(this.vocabApi.getTwMinCopy(tw))\n\t\t\tconst e = (tw && tw.error) || this.pill.error\n\t\t\tif (e) errors.push(e)\n\t\t\tif (errors.length) throw errors\n\t\t} catch (errors) {\n\t\t\tthis.displayError(errors)\n\t\t}\n\t}\n\n\tasync updateTerm() {\n\t\t/*\n\t\tonly used in this.main() above\n\t\tto derive bins/groups based on q{} setting of this term\n\t\tcreate following attributes:\n\n\t\tinput.orderedLabels\n\t\tinput.termStatus{ sampleCounts, excludeCounts }\n\t\tinput.term.refGrp\n\t\t*/\n\t\tconst tw = this.term\n\t\tif (!tw) return\n\n\t\tif (!tw.q) throw '.term.q missing on this input'\n\n\t\tif (!tw.q.mode && isDictionaryType(tw.term.type)) {\n\t\t\t// fill in q.mode for dictionary terms\n\t\t\tif (\n\t\t\t\ttw.term.type == 'categorical' ||\n\t\t\t\ttw.term.type == 'condition' ||\n\t\t\t\ttw.term.type == 'survival' ||\n\t\t\t\ttw.term.type == 'samplelst'\n\t\t\t)\n\t\t\t\ttw.q.mode = 'discrete'\n\t\t\telse tw.q.mode = 'continuous'\n\t\t}\n\n\t\t// need to supply tw.q in body, otherwise getCategories() will\n\t\t// generate a default .q for the term\n\t\tconst body = tw.term.type == 'snplst' || tw.term.type == 'snplocus' ? { cacheid: tw.q.cacheid } : { term1_q: tw.q }\n\n\t\t// get term categories\n\t\tconst wait = this.dom.holder.append('div').style('padding', '5px').text('Loading...') // getCategories may wait long time e.g. gdc. adding this to indicate its loading to avoid just showing a nopill prompt\n\t\tlet data\n\t\ttry {\n\t\t\tdata = await this.vocabApi.getCategories(tw.term, this.parent.parent.filter, body)\n\t\t\tif (!data) throw `no data for term.id='${tw.term.id}'`\n\t\t\tif (data.error) throw data.error\n\t\t} finally {\n\t\t\twait.remove()\n\t\t}\n\n\t\tmayRunSnplstTask(tw, data)\n\n\t\tthis.termStatus = {\n\t\t\ttopInfoStatus: [],\n\t\t\tbottomSummaryStatus: undefined,\n\t\t\tsampleCounts: undefined,\n\t\t\texcludeCounts: undefined,\n\t\t\tallowToSelectRefGrp: false\n\t\t}\n\n\t\t// update status based on special attr from snplst and snplocus terms\n\t\tif (tw.q.numOfSampleWithAnyValidGT) {\n\t\t\tconst invalid_snps_count = tw.term.snps.reduce((i, j) => i + (j.invalid ? 1 : 0), 0)\n\t\t\tthis.termStatus.topInfoStatus.push(\n\t\t\t\t`${tw.q.numOfSampleWithAnyValidGT} samples with valid genotypes` +\n\t\t\t\t\t(invalid_snps_count > 0 ? ` ${invalid_snps_count} invalid SNP${invalid_snps_count > 1 ? 's' : ''}.` : '')\n\t\t\t)\n\t\t}\n\t\tif ('geneticModel' in tw.q) {\n\t\t\tthis.termStatus.topInfoStatus.push(\n\t\t\t\t'Genetic model: ' +\n\t\t\t\t\t(tw.q.geneticModel == 0\n\t\t\t\t\t\t? 'Additive'\n\t\t\t\t\t\t: tw.q.geneticModel == 1\n\t\t\t\t\t\t? 'Dominant'\n\t\t\t\t\t\t: tw.q.geneticModel == 2\n\t\t\t\t\t\t? 'Recessive'\n\t\t\t\t\t\t: 'By genotype')\n\t\t\t)\n\t\t}\n\t\tif (tw.q.restrictAncestry) {\n\t\t\tthis.termStatus.topInfoStatus.push('Analyzing ' + tw.q.restrictAncestry.name)\n\t\t\tif (tw.q.restrictAncestry.PCcount) {\n\t\t\t\tthis.termStatus.topInfoStatus.push(\n\t\t\t\t\t`Adjusting for top ${tw.q.restrictAncestry.PCcount} ancestry principal components`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tif (tw.term.reachedVariantLimit) {\n\t\t\tthis.termStatus.topInfoStatus.push(\n\t\t\t\t`<span class=sja_mcdot style=\"background:#aaa;font-size:1em\">\n\t\t\t\t&nbsp;&#9888; Restricted to first ${tw.term.snps.length}\n\t\t\t\tvariants of this region.&nbsp;</span> Try zooming in.`\n\t\t\t)\n\t\t}\n\n\t\tthis.orderedLabels = data.orderedLabels\n\n\t\tif (data.lst) {\n\t\t\t// got sample counts for dictionary terms\n\n\t\t\tthis.summarizeSample(tw, data.lst)\n\n\t\t\tif (isNumericTerm(tw.term)) {\n\t\t\t\tif (tw.q.mode != 'continuous' && tw.q.mode != 'spline') {\n\t\t\t\t\tthis.termStatus.allowToSelectRefGrp = true\n\t\t\t\t}\n\t\t\t\tif (tw.q.scale && tw.q.scale != 1) this.termStatus.topInfoStatus.push(`Scale: Per ${tw.q.scale}`)\n\t\t\t\tif (tw.q.mode == 'discrete') {\n\t\t\t\t\tthis.termStatus.topInfoStatus.push(`Discrete variable with ${this.termStatus.sampleCounts.length} bins`)\n\t\t\t\t}\n\t\t\t\t/* continuous and spline modes are analyzed in the term's converted unit\n\t\t\t\t(see makeRinput() in server/src/routes/termdb.regression.ts), so report the unit\n\t\t\t\tand print the knots by it, rather than by the unit the values are stored in */\n\t\t\t\tconst vc = tw.term.valueConversion\n\t\t\t\tconst isConverted = vc && (tw.q.mode == 'continuous' || tw.q.mode == 'spline')\n\t\t\t\tif (isConverted) {\n\t\t\t\t\tthis.termStatus.topInfoStatus.push(`Analyzed by the unit of ${vc.toUnit}, converted from ${vc.fromUnit}`)\n\t\t\t\t}\n\t\t\t\tif (tw.q.mode == 'spline') {\n\t\t\t\t\tconst f = getValueConversionFactor(tw.term)\n\t\t\t\t\tthis.termStatus.topInfoStatus.push(\n\t\t\t\t\t\t`Cubic spline variable with ${tw.q.knots.length} knots: ${tw.q.knots\n\t\t\t\t\t\t\t.map(x => Number(x.value) * f)\n\t\t\t\t\t\t\t.sort((a, b) => a - b)\n\t\t\t\t\t\t\t.map(v => (f == 1 ? v : roundValue(v, 2)))\n\t\t\t\t\t\t\t.join(', ')}${isConverted ? ` ${vc.toUnit}s` : ''}`\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t} else if (tw.term.type == 'categorical' || tw.term.type == 'geneVariant' || tw.term.type == 'samplelst') {\n\t\t\t\tthis.termStatus.allowToSelectRefGrp = true\n\t\t\t} else if (tw.term.type == 'condition') {\n\t\t\t\tif (this.section.configKey == 'outcome' && this.parent.opts.regressionType == 'logistic') {\n\t\t\t\t\t// allow selecting refgrp\n\t\t\t\t\tthis.termStatus.allowToSelectRefGrp = true\n\t\t\t\t}\n\t\t\t\tif (this.section.configKey == 'outcome' && this.parent.opts.regressionType == 'cox') {\n\t\t\t\t\tif (!['age', 'time'].includes(tw.q.timeScale)) throw 'invalid q.timeScale'\n\t\t\t\t\tconst tdb = this.vocabApi.termdbConfig\n\n\t\t\t\t\tthis.termStatus.topInfoStatus.push(`Time axis: ${tw.q.timeScale == 'time' ? tdb.timeUnit : 'age'}`)\n\n\t\t\t\t\tthis.termStatus.topInfoStatus.push(\n\t\t\t\t\t\t`<span style=\"padding-left: 10px;\">-start: ${\n\t\t\t\t\t\t\ttw.q.timeScale == 'time' ? ' ' : 'age at '\n\t\t\t\t\t\t}entry into the cohort (i.e., ${tdb.cohortStartTimeMsg})</span>`\n\t\t\t\t\t)\n\n\t\t\t\t\tthis.termStatus.topInfoStatus.push(\n\t\t\t\t\t\t`<span style=\"padding-left: 10px;\">-end: ${\n\t\t\t\t\t\t\ttw.q.timeScale == 'time' ? ' ' : 'age at '\n\t\t\t\t\t\t}event or censoring/death</span>`\n\t\t\t\t\t)\n\n\t\t\t\t\tconst grades = Object.keys(tw.term.values).map(Number)\n\t\t\t\t\tconst maxgrade = Math.max(...grades)\n\t\t\t\t\tthis.termStatus.topInfoStatus.push(\n\t\t\t\t\t\t`<div style=\"padding-top: 8px;\">Event: first occurrence of grade ${\n\t\t\t\t\t\t\ttw.q.breaks[0] === maxgrade ? tw.q.breaks[0] : `${tw.q.breaks[0]}-${maxgrade}</div>`\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\tthis.maySet_refGrp(tw)\n\t\t\tif (this.section.configKey == 'outcome') {\n\t\t\t\tif (this.parent.config.regressionType == 'logistic') {\n\t\t\t\t\t// get non-ref group of logistic outcome variable\n\t\t\t\t\t// will be used in tooltip messages of coefficients table\n\t\t\t\t\t// and in Y axis of cubic spline plot\n\t\t\t\t\ttw.nonRefGrp = getLogisticOutcomeNonref(tw)\n\t\t\t\t} else if (this.parent.config.regressionType == 'cox') {\n\t\t\t\t\t// get event label of cox outcome variable\n\t\t\t\t\t// will be used in tooltip messages of coefficients table\n\t\t\t\t\ttw.eventLabel = getCoxOutcomeEventLabel(tw)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tsummarizeSample(tw, datalst) {\n\t\t// sepeate include and exclude categories based on term.values.uncomputable\n\t\tconst excluded_values = new Set()\n\t\tif (tw.term.values) {\n\t\t\tfor (const i in tw.term.values) {\n\t\t\t\tif (tw.term.values[i].uncomputable) excluded_values.add(tw.term.values[i].label)\n\t\t\t}\n\t\t}\n\t\tif (tw.q.mode == 'cox') {\n\t\t\tconst toExclude = datalst.find(x => x.key == -1)\n\t\t\tif (toExclude) excluded_values.add(toExclude.label)\n\t\t}\n\t\tconst sampleCounts = (this.termStatus.sampleCounts = datalst.filter(v => !excluded_values.has(v.label)))\n\t\tconst excludeCounts = (this.termStatus.excludeCounts = datalst.filter(v => excluded_values.has(v.label)))\n\n\t\t// get include, excluded and total sample count\n\t\tconst totalCount = { included: 0, excluded: 0, total: 0 }\n\t\tsampleCounts.forEach(v => (totalCount.included += v.samplecount))\n\t\texcludeCounts.forEach(v => (totalCount.excluded += v.samplecount))\n\t\ttotalCount.total = totalCount.included + totalCount.excluded\n\t\t// for condition term, subtract included count from totalCount.total to get excluded\n\t\tif (tw.term.type == 'condition' && totalCount.total) {\n\t\t\ttotalCount.excluded = totalCount.total - totalCount.included\n\t\t}\n\t\t// update bottomSummaryStatus\n\t\tthis.termStatus.bottomSummaryStatus =\n\t\t\t`${totalCount.included} samples included` +\n\t\t\t(totalCount.excluded ? `. ${totalCount.excluded} samples excluded:` : '')\n\t\tif (tw && tw.q.mode !== 'continuous' && sampleCounts.length < 2)\n\t\t\tthrow `there should be two or more discrete values with samples for variable='${tw.term.name}'`\n\t}\n\n\tmaySet_refGrp(tw) {\n\t\tif (this.section.configKey == 'outcome' && this.parent.config.regressionType == 'cox') {\n\t\t\t// no need to set refgrp\n\t\t\treturn\n\t\t}\n\t\tif (tw.q.mode == 'continuous') {\n\t\t\t// numeric term in continuous mode, refgrp NA is hardcoded in R\n\t\t\ttw.refGrp = 'NA'\n\t\t\treturn\n\t\t}\n\t\tconst sc = this.termStatus.sampleCounts\n\t\tif (!('refGrp' in tw) || !sc.find(i => i.key == tw.refGrp)) {\n\t\t\t// refGrp not defined or no longer exists according to sampleCounts[]\n\t\t\tconst o = this.orderedLabels\n\t\t\tif (o && o.length) sc.sort((a, b) => o.indexOf(a.key) - o.indexOf(b.key))\n\t\t\telse sc.sort((a, b) => (a.samplecount < b.samplecount ? 1 : -1))\n\t\t\ttw.refGrp = sc[0].key\n\t\t}\n\t}\n\n\tgetPillArgs() {\n\t\tconst section = this.section\n\t\tconst { config, state, disable_terms } = this.parent\n\t\tconst args = Object.assign(\n\t\t\t{\n\t\t\t\tactiveCohort: state.activeCohort,\n\t\t\t\tdisable_terms,\n\t\t\t\tusecase: {\n\t\t\t\t\ttarget: 'regression',\n\t\t\t\t\tdetail: section.configKey,\n\t\t\t\t\tregressionType: config.regressionType\n\t\t\t\t}\n\t\t\t},\n\t\t\tthis.term\n\t\t)\n\t\targs.filter = this.parent.parent.filter\n\t\treturn args\n\t}\n\n\tremove() {\n\t\tthis.dom.termRow.transition().duration(500).style('opacity', 0).remove()\n\n\t\tfor (const key in this.dom) {\n\t\t\tdelete this.dom[key]\n\t\t}\n\t}\n\n\trenderInteractionPrompt() {\n\t\t// set to hidden in the beginning; redisplay when interaction is enabled\n\t\tthis.dom.interactionDiv.style('display', 'none')\n\n\t\t// identify situations not eligible for showing prompt\n\t\tif (!this.term) return // missing term\n\t\tif (this.section.configKey != 'independent') return\n\t\tif (this.term.q.mode == 'spline') return // not on a spline term\n\t\tif (this.vocabApi.termdbConfig.regression?.settings?.disableInteractions) return\n\t\t{\n\t\t\t// require minimum of 2 independent terms eligible for interaction\n\t\t\tlet count = 0\n\t\t\tfor (const input of this.section.inputLst) {\n\t\t\t\tif (input.term && input.term.q.mode != 'spline') {\n\t\t\t\t\t// spline term cannot be used for interaction\n\t\t\t\t\tcount++\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (count < 2) return\n\t\t}\n\n\t\tconst n = this.term.interactions.length\n\t\tthis.dom.interactionDiv\n\t\t\t.style('display', 'inline')\n\t\t\t.html(n == 0 ? 'Add interactions' : `${n} interaction${n > 1 ? 's' : ''}`)\n\t\t\t.style('padding', '5px')\n\t\t\t.style('background-color', n == 0 ? null : '#ececec')\n\t\t\t.style('border-radius', n == 0 ? null : '6px')\n\t\t\t.style('color', n == 0 ? 'rgb(153, 153, 153)' : '#000')\n\t\t\t.style('font-size', n == 0 ? '0.8em' : '')\n\t\t\t.style('cursor', 'pointer')\n\t\t\t.on('click', () => this.renderInteractionOptions())\n\t}\n\n\trenderInteractionOptions() {\n\t\tconst self = this\n\t\tself.dom.tip.clear().showunder(self.dom.interactionDiv.node())\n\t\tif (self.parent.config.includeUnivariate) {\n\t\t\tconst label = self.parent.dom.univariateCheckboxDiv.select('label').text().trim()\n\t\t\tself.dom.tip.d.append('div').text(`Cannot add interactions. Please uncheck the \"${label}\" checkbox.`)\n\t\t\treturn\n\t\t}\n\t\tself.dom.tip.d\n\t\t\t.append('div')\n\t\t\t.style('padding', '5px')\n\t\t\t.style('font-size', '0.8em')\n\t\t\t.style('color', 'rgb(153, 153, 153)')\n\t\t\t.html(`Selected variables will each form pairwise interaction with ${this.term.term.name}`)\n\n\t\tself.dom.tip.d\n\t\t\t.append('div')\n\t\t\t.selectAll('div')\n\t\t\t.data(self.parent.config.independent.filter(tw => tw && tw.$id != self.term.$id && tw.q.mode != 'spline'))\n\t\t\t.enter()\n\t\t\t.append('div')\n\t\t\t.style('margin', '5px')\n\t\t\t.each(function (tw) {\n\t\t\t\tconst elem = select(this).append('label')\n\t\t\t\tconst checkbox = elem\n\t\t\t\t\t.append('input')\n\t\t\t\t\t.attr('type', 'checkbox')\n\t\t\t\t\t.property('checked', self.term.interactions.includes(tw.$id))\n\n\t\t\t\telem.append('span').text(' ' + tw.term.name)\n\t\t\t})\n\n\t\tself.dom.tip.d\n\t\t\t.append('button')\n\t\t\t.text('Apply')\n\t\t\t.style('margin', '5px')\n\t\t\t.on('click', () => {\n\t\t\t\tself.dom.tip.hide()\n\t\t\t\tself.term.interactions = []\n\t\t\t\tself.dom.tip.d.selectAll('input').each(function (tw) {\n\t\t\t\t\tif (select(this).property('checked')) self.term.interactions.push(tw.$id)\n\t\t\t\t})\n\t\t\t\tfor (const tw of self.parent.config.independent) {\n\t\t\t\t\tconst interactions = new Set(tw.interactions)\n\t\t\t\t\tself.term.interactions.includes(tw.$id) ? interactions.add(self.term.$id) : interactions.delete(self.term.$id)\n\t\t\t\t\ttw.interactions = [...interactions]\n\t\t\t\t}\n\t\t\t\tself.parent.editConfig(self, self.term)\n\t\t\t})\n\t}\n}\n\nfunction getQSetter4outcome(regressionType) {\n\t// only for outcome term\n\treturn {\n\t\tinteger: regressionType == 'logistic' ? maySetTwoBins : setContMode,\n\t\tfloat: regressionType == 'logistic' ? maySetTwoBins : setContMode,\n\t\tgeneExpression: regressionType == 'logistic' ? maySetTwoBins : setContMode, //Added geneExpression, but still breaks, need to fix\n\t\tcategorical: maySetTwoGroups,\n\t\tcondition: setQ4tteOutcome,\n\t\tsurvival: setQ4tteOutcome\n\t}\n}\n\n// query backend for median and create custom 2 bins with median and boundry\n// for logistic independet numeric terms\nasync function maySetTwoBins(tw, vocabApi, filter, state) {\n\t// if the bins are already binary, do not reset\n\tif (tw.q.mode == 'binary' && tw.q.lst && tw.q.lst.length == 2) {\n\t\ttw.q.mode = 'binary'\n\t\treturn\n\t}\n\n\tconst data = await vocabApi.getPercentile(tw.term, [50], state.termfilter)\n\tif (data.error || !data.values.length || !Number.isFinite(data.values[0]))\n\t\tthrow 'cannot get median value: ' + (data.error || 'no data')\n\tconst median = tw.term.type == 'integer' ? Math.round(data.values[0]) : Number(data.values[0].toFixed(2))\n\ttw.q = {\n\t\tmode: 'binary',\n\t\ttype: 'custom-bin',\n\t\tlst: [\n\t\t\t{\n\t\t\t\tstartunbounded: true,\n\t\t\t\tstopinclusive: true,\n\t\t\t\tstop: median\n\t\t\t},\n\t\t\t{\n\t\t\t\tstopunbounded: true,\n\t\t\t\tstartinclusive: false,\n\t\t\t\tstart: median\n\t\t\t}\n\t\t]\n\t}\n\n\ttw.q.lst.forEach(bin => {\n\t\tbin.label = get_bin_label(bin, tw.q)\n\t})\n\n\ttw.refGrp = tw.q.lst[0].label\n}\n\nfunction setQ4tteOutcome(tw, vocabApi, filter, state) {\n\t// set q for time-to-event outcome (i.e., condition or survival term)\n\tif (state.config.regressionType == 'logistic') {\n\t\t// if refGrp missing, set to be first group, guaranteed to be \"No event / Grade 0\"\n\t\tif (!tw.refGrp) tw.refGrp = tw.q.groups[0].name\n\t}\n\tif (state.config.regressionType == 'cox') {\n\t\tif (!tw.q.timeScale) tw.q.timeScale = 'time'\n\t}\n}\n\nasync function maySetTwoGroups(tw, vocabApi, filter, state) {\n\t// if the bins are already binary, do not reset\n\tconst { term, q } = tw\n\n\t// TODO clean up logic?\n\n\t// not condition, currently can only be categorical\n\tif (q.mode == 'binary') {\n\t\tif (q.type == 'values' && Object.keys(term.values).length == 2) return\n\t\tif (q.type == 'predefined-groupset') {\n\t\t\tconst idx = q.predefined_groupset_idx\n\t\t\tconst t_gs = term.groupsetting\n\t\t\tif (t_gs[idx] && Object.keys(t_gs[idx]).length == 2) return\n\t\t}\n\t\tif (q.type == 'custom-groupset') {\n\t\t\tconst gs = q.customset\n\t\t\tif (gs.groups.filter(g => !g.uncomputable).length == 2) return\n\t\t}\n\t}\n\n\t// step 1: check if term has only two computable categories/grades with >0 samples\n\t// if so, use the two categories as outcome and do not apply groupsetting\n\t// check the number of samples for computable categories, only use categories with >0 samples\n\tconst data = await vocabApi.getCategories(term, filter)\n\tif (data.error) throw 'cannot get categories: ' + data.error\n\tconst category2samplecount = new Map() // k: category/grade, v: number of samples\n\tconst computableCategories = [] // list of computable keys\n\tconst uncomputableCategories = [] // list of computable keys\n\tfor (const i of data.lst) {\n\t\tcategory2samplecount.set(i.key, i.samplecount)\n\t\tif (term.values && term.values[i.key] && term.values[i.key].uncomputable) uncomputableCategories.push(i.key)\n\t\telse computableCategories.push(i.key)\n\t}\n\tif (computableCategories.length < 2) {\n\t\t// TODO UI should reject this term and prompt user to select a different one\n\t\tq.type = 'values'\n\t\ttw.error = 'less than 2 categories/grades - cannot create separate groups'\n\t\treturn\n\t}\n\tif (computableCategories.length == 2) {\n\t\tq.type = 'values'\n\t\t// will use the categories from term.values{} and do not apply groupsetting\n\t\t// if the two grades happen to be \"normal\" and \"disease\" then it will make sense\n\t\t// but if the two grades are both diseaes then may not make sense\n\t\t// e.g. secondary breast cancer has just 3 and 4\n\t\treturn\n\t}\n\n\t// step 2: term has 3 or more categories/grades. must apply groupsetting\n\tconst t_gs = term.groupsetting\n\n\t// find if term already has a usable groupsetting\n\tif (\n\t\tq.customset &&\n\t\tq.customset.groups &&\n\t\tq.customset.groups.length == 2 &&\n\t\tgroupsetNoEmptyGroup(q.customset, category2samplecount)\n\t) {\n\t\tq.type = 'custom-groupset'\n\t\t// has a usable custom set\n\t\treturn\n\t}\n\n\t// step 3: check if the term has predefined groupsetting\n\tif (t_gs && t_gs.lst) {\n\t\t// has predefined groupsetting\n\t\t// note!!!! check on input.term.term but not input.term.q\n\n\t\tif (\n\t\t\tq.predefined_groupset_idx >= 0 &&\n\t\t\tt_gs.lst[q.predefined_groupset_idx] &&\n\t\t\tt_gs.lst[q.predefined_groupset_idx].groups.length == 2 &&\n\t\t\tgroupsetNoEmptyGroup(t_gs.lst[q.predefined_groupset_idx], category2samplecount)\n\t\t) {\n\t\t\t// has a usable predefined groupset\n\t\t\tq.type = 'predefined-groupset'\n\t\t\t// used for groupsetting if one of the group is filter (group.type) rahter than values,\n\t\t\t// Not in use rightnow, if used in future, uncomment following line\n\t\t\t// if (state.activeCohort != -1) q.groupsetting.activeCohort = state.activeCohort\n\t\t\treturn\n\t\t}\n\n\t\t// step 4: see if any predefined groupset has 2 groups. if so, use that\n\t\tconst i = t_gs.lst.findIndex(g => g.groups.length == 2)\n\t\tif (i != -1 && groupsetNoEmptyGroup(t_gs.lst[i], category2samplecount)) {\n\t\t\t// found a usable groupset\n\t\t\tq.predefined_groupset_idx = i\n\t\t\tq.type = 'predefined-groupset'\n\t\t\t// used for groupsetting if one of the group is filter (group.type) rahter than values,\n\t\t\t// Not in use rightnow, if used in future, uncomment following line\n\t\t\t// if (state.activeCohort != -1) q.groupsetting.activeCohort = state.activeCohort\n\t\t\treturn\n\t\t}\n\t}\n\n\t// step 5: last resort. divide values[] array into two groups\n\tconst customset = {\n\t\tactiveCohort: state.activeCohort,\n\t\t// creating 3 groups instead of 2 groups since current groupset UI expects first group to be excluded group\n\t\t// TODO: refactor client/termsetting/handlers/qualitative.ts to not consider the first group (i.e. group.currentIdx === 0) as the excluded group, but rather to consider group.excluded=true as the excluded group\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tname: 'Excluded categories',\n\t\t\t\ttype: 'values',\n\t\t\t\tvalues: uncomputableCategories.map(v => {\n\t\t\t\t\treturn { key: v }\n\t\t\t\t})\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Group 1',\n\t\t\t\ttype: 'values',\n\t\t\t\tvalues: []\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Group 2',\n\t\t\t\ttype: 'values',\n\t\t\t\tvalues: []\n\t\t\t}\n\t\t]\n\t}\n\t// TODO use category2samplecount to evenlly divide samples\n\tconst group_i_cutoff = Math.round(computableCategories.length / 2)\n\tfor (const [i, v] of computableCategories.entries()) {\n\t\tif (i < group_i_cutoff) customset.groups[1].values.push({ key: v })\n\t\telse customset.groups[2].values.push({ key: v })\n\t}\n\tq.customset = customset\n\tq.type = 'custom-groupset'\n}\n\nfunction setContMode(tw) {\n\ttw.q.mode = 'continuous'\n}\n\nfunction groupsetNoEmptyGroup(gs, c2s) {\n\t// return true if a groupset does not have empty group\n\tfor (const g of gs.groups) {\n\t\tlet total = 0\n\t\tif (g.type == 'values') {\n\t\t\tfor (const i of g.values) total += c2s.get(i.key) || 0\n\t\t\tif (total == 0) return false\n\t\t}\n\t}\n\treturn true\n}\n\nfunction getLogisticOutcomeNonref(outcome) {\n\t// outcome is the outcome term-wrapper {q{}, refGrp, term{}}\n\tif (outcome.term.type == 'condition') {\n\t\t// condition term does not use q.type\n\t\t// from q.groups[], return the str name that's not refgrp\n\t\tfor (const i of outcome.q.groups) {\n\t\t\tif (i.name != outcome.refGrp) return i.name\n\t\t}\n\t\tthrow 'nonref group not found for logistic outcome'\n\t}\n\t// not condition term;\n\t// depending on q.type, find the non-ref group and return its name\n\tif (outcome.q.type == 'predefined-groupset') {\n\t\tif (!Number.isInteger(outcome.q.predefined_groupset_idx))\n\t\t\tthrow 'outcome.q.predefined_groupset_idx not integer when q.type is \"predefined-groupset\"'\n\t\tif (!outcome.term.groupsetting) throw 'outcome.term.groupsetting missing'\n\t\tconst grpset = outcome.term.groupsetting.lst[outcome.q.predefined_groupset_idx]\n\t\tif (!grpset) throw 'groupset not found by outcome.q.predefined_groupset_idx'\n\t\tconst nonrefgrp = grpset.groups.find(i => i.name != outcome.refGrp)\n\t\tif (!nonrefgrp) throw 'non-ref group not found for predefined-groupset'\n\t\treturn nonrefgrp.name\n\t}\n\tif (outcome.q.type == 'custom-groupset') {\n\t\tif (!outcome.q.customset) throw 'outcome.q.customset missing'\n\t\tconst nonrefgrp = outcome.q.customset.groups.find(i => i.name != outcome.refGrp)\n\t\tif (!nonrefgrp) throw 'non-ref group not found for custom-groupset'\n\t\treturn nonrefgrp.name\n\t}\n\tif (outcome.q.type == 'values') {\n\t\tif (!outcome.term.values) throw 'outcome.term.values{} missing'\n\t\tfor (const k in outcome.term.values) {\n\t\t\tconst v = outcome.term.values[k]\n\t\t\tif (v.label != outcome.refGrp) return v.label\n\t\t}\n\t\tthrow 'unknown nonref group from outcome.term.values'\n\t}\n\tif (outcome.q.type == 'custom-bin') {\n\t\tconst nonrefbin = outcome.q.lst.find(i => i.label != outcome.refGrp)\n\t\tif (!nonrefbin) throw 'non-ref bin is not found for custom-bin'\n\t\treturn nonrefbin.label\n\t}\n\tif (outcome.q.type == 'regular-bin') {\n\t\tthrow 'do not know a way to find computed bin list for type=regular-bin'\n\t}\n\tthrow 'unknown outcome.q.type'\n}\n\nfunction getCoxOutcomeEventLabel(tw) {\n\tlet eventLabel\n\tif (!tw.term.values) throw 'tw.term.values missing'\n\tif (tw.term.type == 'condition') {\n\t\tconst grades = Object.keys(tw.term.values).map(k => {\n\t\t\tconst grade = Number(k)\n\t\t\tif (!Number.isFinite(grade)) throw 'grade is not a number'\n\t\t\treturn grade\n\t\t})\n\t\tconst startGrade = tw.q.breaks[0]\n\t\tconst endGrade = Math.max(...grades)\n\t\teventLabel = `Grades ${startGrade}-${endGrade}`\n\t} else if (tw.term.type == 'survival') {\n\t\tconst exitCodes = Object.keys(tw.term.values).map(k => {\n\t\t\tconst code = Number(k)\n\t\t\tif (!Number.isFinite(code)) throw 'exit code is not a number'\n\t\t\treturn code\n\t\t})\n\t\t// exit codes can be 0=alive,1=dead; 1=alive,2=dead; etc. (see Surv() in R)\n\t\t// so using max exit code value as the exit code of the event\n\t\teventLabel = tw.term.values[Math.max(...exitCodes)].label\n\t} else {\n\t\tthrow 'unexpected tw.term.type'\n\t}\n\treturn eventLabel\n}\n", "import { select } from 'd3-selection'\nimport { InputTerm } from './regression.inputs.term'\nimport { make_one_checkbox, Menu } from '#dom'\n\n/*\noutcome and independent are two sections sharing same structure\n\"inputLst[]\" collect one or multiple variables for each section\n\"input\" tracks attributes from a variable\nblank input: a blank input is a termsetting instance. once a term is created for it, the term is filled to the same instance, and a new blank input may need to be created (for independent section)\n\n**** function cascade ****\n\nconstructor\n\tcreateSectionConfigs\n\tinitUI\n\t\taddSection\n\t\tsubmit (by clicking button)\n\t\teditConfig (by termsetting callback)\nmain\n\tmayUpdateSandboxHeader\n\tsetDisableTerms\n\trenderSection\n\t\tsyncInputsWithConfig\n\t\t\tInputTerm\n\t\t\tmayAddBlankInput\n\t\t\t\tInputTerm\n\t\tremoveInput\n\t\taddInput\n*/\n\n// non-dictionary term types to use as independent variable\n// check against allowedTermTypes from a dataset\nconst allNonDictionaryTerms = [\n\t{\n\t\ttermtype: 'snplst',\n\t\t//html: 'A list of SNPs <span style=\"font-size:.7em\">All SNPs are analyzed in one model</span>'\n\t\thtml: 'A list of variants'\n\t},\n\n\t{\n\t\ttermtype: 'snplocus',\n\t\t//html: 'Variants in a locus <span style=\"font-size:.7em\">Variants are analyzed individually</span>'\n\t\thtml: 'Variants in a locus'\n\t},\n\t{\n\t\ttermtype: 'prs',\n\t\ttext: 'Polygenic risk score'\n\t}\n]\n\nexport class RegressionInputs {\n\tconstructor(opts) {\n\t\tthis.opts = opts\n\t\tthis.app = opts.app\n\t\t// reference to the parent component's mutable instance (not its API)\n\t\tthis.parent = opts.parent\n\n\t\tsetInteractivity(this)\n\t\tsetRenderers(this)\n\n\t\tthis.createSectionConfigs()\n\t\tthis.initUI()\n\t}\n\n\tcreateSectionConfigs() {\n\t\t/* Create configuration data for each section of the input UI\n\t\tsee google doc \"Regression UI\"\n\t\t*/\n\t\t// configuration for the outcome variable section\n\t\tthis.outcome = {\n\t\t\t/*** static configuration ***/\n\t\t\theading: 'Outcome variable',\n\t\t\tselectPrompt:\n\t\t\t\tthis.opts.regressionType == 'linear' ? 'Select continuous outcome variable' : 'Select outcome variable',\n\t\t\tplaceholderIcon: '',\n\t\t\tconfigKey: 'outcome',\n\t\t\tlimit: 1,\n\t\t\tusecase: { target: 'regression', regressionType: this.opts.regressionType, detail: 'outcome' },\n\n\t\t\t/*** dynamic configuration ***/\n\t\t\tinputLst: [],\n\n\t\t\t/*** tracker for this section's DOM elements ***/\n\t\t\tdom: {}\n\t\t}\n\n\t\t// configuration for the independent variable section\n\t\tthis.independent = {\n\t\t\t/*** static configuration ***/\n\t\t\theading: 'Independent variable(s)',\n\t\t\tselectPrompt: 'Add independent variable',\n\t\t\tplaceholderIcon: '',\n\t\t\tconfigKey: 'independent',\n\t\t\tlimit: 10,\n\t\t\tusecase: { target: 'regression', regressionType: this.opts.regressionType, detail: 'independent' },\n\n\t\t\t/*** dynamic configuration ***/\n\t\t\tinputLst: [],\n\n\t\t\t/*** tracker for this section's DOM elements ***/\n\t\t\tdom: {}\n\t\t}\n\n\t\t// track sections in an array, for convenience in loops\n\t\t// but not for use in `d3.data()`\n\t\tthis.sections = [this.outcome, this.independent]\n\t}\n\n\tasync main() {\n\t\ttry {\n\t\t\tthis.config = this.parent.config\n\t\t\tthis.state = this.parent.state\n\t\t\tthis.hasError = false\n\t\t\tthis.setDisableTerms()\n\t\t\tconst updates = []\n\t\t\tfor (const section of this.sections) {\n\t\t\t\tawait this.renderSection(section)\n\t\t\t\tfor (const input of section.inputLst) {\n\t\t\t\t\tinput.dom.holder.style('border-left', input.term ? '1px solid #bbb' : '')\n\t\t\t\t\tupdates.push(input.main())\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait Promise.all(updates)\n\t\t\tfor (const section of this.sections) {\n\t\t\t\tfor (const input of section.inputLst) {\n\t\t\t\t\tif ((input.term && input.term.error) || input.hasError) {\n\t\t\t\t\t\tthis.hasError = true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tthis.hasError = true\n\t\t\tthrow e\n\t\t}\n\t}\n\n\tsetDisableTerms() {\n\t\tthis.disable_terms = []\n\t\tif (this.config.outcome && this.config.outcome.term) this.disable_terms.push(this.config.outcome.term)\n\t\tif (this.config.independent) {\n\t\t\tfor (const vb of this.config.independent) {\n\t\t\t\tthis.disable_terms.push(vb.term)\n\t\t\t}\n\t\t}\n\t}\n\n\thandleError() {\n\t\tthis.hasError = true\n\t\tthis.dom.submitBtn.property('disabled', true)\n\t}\n\n\tgetNoTermPromptOptions(section) {\n\t\t// only for independent section\n\t\tif (section.configKey != 'independent') return\n\t\t// return an array, each ele is an item in the mini menu at termsetting prompt\n\t\t// okay for the array to be empty\n\t\t// need to check if the dataset allows this\n\t\t// if so, add to this array, to be shown as mini menu\n\t\tconst lst = []\n\t\tfor (const item of structuredClone(allNonDictionaryTerms)) {\n\t\t\t// TODO do this via vocab api\n\t\t\tif (!this.state.allowedTermTypes.includes(item.termtype)) {\n\t\t\t\t// not allowed by this dataset\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (section.inputLst.find(i => i.term && i.term.term.type == item.termtype)) {\n\t\t\t\t// same term is already present in this section, do not add a second\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (item.termtype == 'snplocus') {\n\t\t\t\tif (this.config.includeUnivariate) {\n\t\t\t\t\t// snplocus is computationally intensive so it should not\n\t\t\t\t\t// be allowed when univariate results are included\n\t\t\t\t\titem.invalid = true\n\t\t\t\t\tconst label = this.dom.univariateCheckboxDiv.select('label').text().trim()\n\t\t\t\t\titem.invalidMsg = `Cannot add this variable. Please uncheck the \"${label}\" checkbox.`\n\t\t\t\t}\n\t\t\t}\n\t\t\tlst.push(item)\n\t\t}\n\t\tif (lst.length) {\n\t\t\t// added at least one non-dict term type\n\t\t\t// for the mini menu in termsetting prompt to show both dict- and non-dict-terms, add dict option\n\t\t\tlst.unshift({\n\t\t\t\tisDictionary: true,\n\t\t\t\ttext: 'Dictionary variable'\n\t\t\t})\n\t\t}\n\t\treturn lst\n\t}\n}\n\nfunction setRenderers(self) {\n\tself.initUI = () => {\n\t\tconst controls = self.opts.holder.append('div').style('display', 'block')\n\n\t\tself.dom = {\n\t\t\tdiv: self.opts.holder, //.style('margin', '10px 0px'),\n\t\t\tcontrols,\n\t\t\tbody: controls.append('div'),\n\t\t\tfoot: controls\n\t\t\t\t.append('div')\n\t\t\t\t.style('margin', '0px 20px')\n\t\t\t\t.style('display', 'flex')\n\t\t\t\t.style('align-items', 'center')\n\t\t\t\t.style('gap', '20px')\n\t\t}\n\n\t\tself.dom.submitBtn = self.dom.foot\n\t\t\t.append('div')\n\t\t\t.append('button')\n\t\t\t.style('display', 'none')\n\t\t\t.style('padding', '5px 15px')\n\t\t\t.style('border-radius', '15px')\n\t\t\t.style('cursor', 'pointer')\n\t\t\t.text('Run analysis')\n\t\t\t.on('click', self.submit)\n\n\t\t// checkbox for including univariate results\n\t\tself.dom.univariateCheckboxDiv = self.dom.foot.append('div').style('display', 'none')\n\t\tself.dom.univariateCheckbox = make_one_checkbox({\n\t\t\tlabeltext: 'Include univariate results',\n\t\t\tchecked: false,\n\t\t\tholder: self.dom.univariateCheckboxDiv,\n\t\t\tcallback: checked => {\n\t\t\t\tconst invalid = self.config.independent.find(v => v.interactions.length || v.term.type == 'snplocus')\n\t\t\t\tif (invalid) {\n\t\t\t\t\t// interactions or snplocus variable in use\n\t\t\t\t\t// disable univariate analysis\n\t\t\t\t\tself.dom.univariateCheckbox.property('checked', false)\n\t\t\t\t\tconst tip = new Menu()\n\t\t\t\t\ttip.showunder(self.dom.univariateCheckboxDiv.node())\n\t\t\t\t\tconst msg = `Cannot include univariate results. Please remove ${\n\t\t\t\t\t\tinvalid.interactions.length ? 'all interactions' : `the \"${invalid.term.name}\" variable`\n\t\t\t\t\t}.`\n\t\t\t\t\ttip.d.append('div').text(msg)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.app.dispatch({\n\t\t\t\t\ttype: 'plot_edit',\n\t\t\t\t\tid: self.parent.id,\n\t\t\t\t\tchartType: 'regression',\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\thasUnsubmittedEdits: true,\n\t\t\t\t\t\tincludeUnivariate: checked\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\tself.dom.submitMsgs = self.dom.foot\n\t\t\t.append('div')\n\t\t\t.style('color', '#cc0000')\n\t\t\t.style('font-style', 'italic')\n\t\t\t.style('font-size', '0.8em')\n\n\t\tself.submitMsgs = {}\n\n\t\t/*\n\t\t\tnot using d3.data() here since each section may only\n\t\t\tbe added and re-rendered, but not removed\n\t\t*/\n\t\tfor (const section of self.sections) {\n\t\t\tconst div = self.dom.body.append('div')\n\t\t\tself.addSection(section, div)\n\t\t}\n\t}\n\n\tself.addSection = function (section, div) {\n\t\tdiv\n\t\t\t.style('display', 'none')\n\t\t\t.style('margin', '3px 5px')\n\t\t\t.style('padding', '3px 5px')\n\t\t\t.attr('data-testid', section.configKey)\n\n\t\tsection.dom = {\n\t\t\tholder: div,\n\t\t\theadingDiv: div\n\t\t\t\t.append('div')\n\t\t\t\t.style('margin', '3px 5px 20px 5px')\n\t\t\t\t.style('font-size', '17px')\n\t\t\t\t.style('color', '#bbb')\n\t\t\t\t.text(section.heading),\n\n\t\t\tinputsDiv: div.append('div')\n\t\t}\n\t}\n\n\t/* \n\t\tupdate each section's visibility,\n\t\tremove and add inputs as needed,\n\t\tand later may do more section restyling based on\n\t\tthe state of inputs that are being edited\n\t*/\n\tself.renderSection = function (section) {\n\t\t// decide to show/hide this section\n\t\t// only show when this section is for outcome,\n\t\t// or this is independent and only show it when the outcome has been selected\n\t\t// effect is to force user to first select outcome, then independent, but not to select independent first\n\t\tsection.dom.holder.style('display', section.configKey == 'outcome' || self.config.outcome ? 'block' : 'none')\n\n\t\tsyncInputsWithConfig(section)\n\t\t// section.inputLst[] is now synced with plot config\n\n\t\tconst inputs = section.dom.inputsDiv\n\t\t\t.selectAll(':scope > div')\n\t\t\t// key function (2nd arg) uses a function to determine how datum and element are joined by variable id\n\t\t\t.data(section.inputLst, input => input.term && (input.term.term.id || input.term.term.name))\n\n\t\tinputs.exit().each(removeInput)\n\n\t\tinputs.enter().append('div').each(addInput)\n\t}\n\n\tfunction syncInputsWithConfig(section) {\n\t\t// get the input variables from config.outcome or config.independent\n\t\tconst selected = self.config[section.configKey]\n\n\t\t// force the outcome variable into an array for ease of handling\n\t\t// the independent variables array will be used as-is\n\t\tconst selectedArray = Array.isArray(selected) ? selected : selected ? [selected] : []\n\n\t\tmayConvertInteractionIds(selectedArray, section)\n\n\t\t// process each selected variable\n\t\tfor (const variable of selectedArray) {\n\t\t\tif (section.configKey == 'independent') {\n\t\t\t\tif (!variable.interactions) variable.interactions = []\n\t\t\t\tfor (const id of variable.interactions) {\n\t\t\t\t\tconst tw = selectedArray.find(i => i.$id == id)\n\t\t\t\t\tif (!tw) throw 'interacting partner not found in independents: ' + id\n\t\t\t\t\tif (!tw.interactions) tw.interactions = []\n\t\t\t\t\tif (!tw.interactions.includes(variable.$id)) tw.interactions.push(variable.$id)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst input = section.inputLst.find(input => input.term?.$id == variable.$id)\n\t\t\tif (!input) {\n\t\t\t\tsection.inputLst.push(\n\t\t\t\t\tnew InputTerm({\n\t\t\t\t\t\tsection,\n\t\t\t\t\t\tterm: variable,\n\t\t\t\t\t\tparent: self\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\t// reassign the variable reference to the mutable variable copy\n\t\t\t\t// from state.config.outcome | .independent\n\t\t\t\tinput.term = variable\n\t\t\t}\n\t\t}\n\n\t\tmayAddBlankInput(section, self)\n\t}\n\n\t// interactions[] from url will contain term ids\n\t// convert these to $ids\n\tfunction mayConvertInteractionIds(selectedArray, section) {\n\t\tif (section.configKey != 'independent') return\n\t\tconst id2$id = new Map() // id => $id\n\t\t// first populate id2$id map\n\t\tfor (const v of selectedArray) {\n\t\t\tif (v.id) id2$id.set(v.id, v.$id)\n\t\t}\n\t\t// then convert all ids in interactions[] to $ids\n\t\tfor (const v of selectedArray) {\n\t\t\tif (v.interactions?.length) {\n\t\t\t\tfor (const [i, id] of v.interactions.entries()) {\n\t\t\t\t\tconst $id = id2$id.get(id)\n\t\t\t\t\tif ($id) v.interactions[i] = $id\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function addInput(input) {\n\t\tawait input.init(\n\t\t\tselect(this).style('width', 'fit-content').style('margin', '0px 15px 35px 25px').style('padding', '0px 5px')\n\t\t)\n\t}\n\n\tfunction removeInput(input) {\n\t\t/* NOTE: editConfig deletes this input from the section.inputLst array */\n\t\tinput.remove()\n\t\tfor (const key in input.dom) {\n\t\t\t//input.dom[key].remove()\n\t\t\tdelete input.dom[key]\n\t\t}\n\t\tconst div = select(this)\n\t\tdiv.transition().duration(500).style('opacity', 0).remove()\n\t}\n\n\tself.resetSubmitButton = () => {\n\t\t// do not disable button upon ui error. only disable after clicking button and analysis is running\n\t\tself.dom.submitBtn\n\t\t\t.text('Run analysis')\n\t\t\t.style('display', self.config.outcome && self.config.independent.length ? 'block' : 'none')\n\t\t\t.property('disabled', self.hasError)\n\t}\n\n\tself.mayShowUnivariateCheckbox = () => {\n\t\tif (!self.config.outcome || self.config.independent.length < 2) {\n\t\t\t// hide univariate checkbox if analysis does not have\n\t\t\t// multiple covariates\n\t\t\tself.dom.univariateCheckboxDiv.style('display', 'none')\n\t\t\treturn\n\t\t}\n\t\tself.dom.univariateCheckboxDiv.style('display', 'block')\n\t\t// set checked status\n\t\tself.dom.univariateCheckbox.property('checked', self.config.includeUnivariate)\n\t}\n\n\tself.mayShowSubmitMsgs = () => {\n\t\tself.dom.submitMsgs\n\t\t\t.selectAll('div')\n\t\t\t.data(Object.values(self.submitMsgs))\n\t\t\t.join('div')\n\t\t\t.text(d => d)\n\t}\n}\n\nfunction setInteractivity(self) {\n\t/* this function is called when any change is made to a term of an input\n\te.g. by termsetting callback\n\t*/\n\tself.editConfig = async (input, variable) => {\n\t\tif (!variable) {\n\t\t\t// the variable has been deleted from this input; will delete this input from section\n\t\t\tconst i = input.section.inputLst.findIndex(d => d === input)\n\t\t\tif (i == -1) throw `deleting an unknown input`\n\t\t\t// delete this input\n\t\t\tinput.section.inputLst.splice(i, 1)\n\t\t\tif (input.term) {\n\t\t\t\t// if the input.term has interaction pairs, then\n\t\t\t\t// delete this term.id from those other input term.interactions\n\t\t\t\tfor (const other of input.section.inputLst) {\n\t\t\t\t\tif (!other.term || !other.term.interactions?.length) continue\n\t\t\t\t\tconst i = other.term.interactions.indexOf(input.term.$id)\n\t\t\t\t\tif (i != -1) other.term.interactions.splice(i, 1)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// variable is selected for this input\n\n\t\t\tconst prevTerm = input.term\n\n\t\t\t/*\n\t\t\t\tFor a new term (replacing a blank input), the refGrp will be missing.\n\t\t\t\tIn that case, updateTerm() in regression.inputs.term.js will assign a\n\t\t\t\tdefault refGrp based on sample counts. \n\n\t\t\t\tFor a replacement term that happens to match the previous term's ID, \n\t\t\t\tfor example adjusting a group other than the refGrp, the refGrp may be \n\t\t\t\treused if there happen to be sample counts for it.\n\t\t\t*/\n\t\t\tif (prevTerm && variable.term.id === prevTerm.term.id) {\n\t\t\t\tfor (const k in prevTerm) {\n\t\t\t\t\t// reapply any unedited key-values to the variable, such as refGrp\n\t\t\t\t\tif (!(k in variable)) variable[k] = prevTerm[k]\n\t\t\t\t}\n\t\t\t}\n\t\t\tinput.term = variable\n\n\t\t\tif (variable.q.mode == 'spline' && variable.interactions) {\n\t\t\t\t// this is a spline term, delete existing interactions with this term\n\t\t\t\tfor (const other of input.section.inputLst) {\n\t\t\t\t\tif (!other.term || !other.term.interactions) continue\n\t\t\t\t\tconst i = other.term.interactions.indexOf(input.term.$id)\n\t\t\t\t\tif (i != -1) other.term.interactions.splice(i, 1)\n\t\t\t\t}\n\t\t\t\tvariable.interactions = []\n\t\t\t}\n\t\t}\n\n\t\tconst selected = []\n\t\tfor (const i of input.section.inputLst) {\n\t\t\tif (i.term) selected.push(i.term)\n\t\t}\n\t\tconst key = input.section.configKey\n\t\t// the target config to fill-in/replace/delete may hold one or more selected input variables\n\t\t// config.outcome is not an array (exactly one selected variable)\n\t\t// config.independent is an array (0 or more selected variables)\n\t\tconst configValue = Array.isArray(self.config[key]) ? selected : selected[0]\n\n\t\tself.app.dispatch({\n\t\t\ttype: 'plot_edit',\n\t\t\tid: self.parent.id,\n\t\t\tchartType: 'regression',\n\t\t\tconfig: {\n\t\t\t\thasUnsubmittedEdits: true,\n\t\t\t\t// replace config.outcome or config.independent\n\t\t\t\t[key]: JSON.parse(JSON.stringify(configValue))\n\t\t\t}\n\t\t})\n\t}\n\n\tself.submit = () => {\n\t\t// disable button upon clicking to prevent double-clicking\n\t\tself.dom.submitBtn.property('disabled', true)\n\t\tif (self.hasError) {\n\t\t\talert('Please fix the input variable errors (highlighted in red background).')\n\t\t\treturn\n\t\t}\n\n\t\tconst config = JSON.parse(JSON.stringify(self.config))\n\t\tconfig.hasUnsubmittedEdits = false\n\n\t\tself.app.dispatch({\n\t\t\ttype: 'plot_edit',\n\t\t\tid: self.parent.id,\n\t\t\tchartType: 'regression',\n\t\t\tconfig\n\t\t})\n\t}\n}\n\n/*\nsection is one of this.sections[]\ndecide if a blank input needs to be added to this section\nfor outcome section, there can just be one input, it's either blank or filled\nfor independent, there should always be one blank input, among other filled inputs\n*/\nfunction mayAddBlankInput(section, self) {\n\tif (section.inputLst.length >= section.limit) {\n\t\t// number of inputs in this section is beyond limit, do not create more\n\t\treturn\n\t}\n\tconst blankInput = section.inputLst.find(i => !i.term)\n\tif (blankInput) {\n\t\t// this section already have a blank input (without .term{})\n\t\t// as a section is limited to have only one blank input, do not add a new one\n\t\tconst noTermPromptOptions = self.getNoTermPromptOptions(section)\n\t\tif (noTermPromptOptions) {\n\t\t\t// will need to update noTermPromptOptions on this input\n\t\t\t// due to the fact that we don't want two snplst or snplocus terms in one model\n\t\t\tblankInput.pill.main({ noTermPromptOptions })\n\t\t}\n\t\treturn\n\t}\n\t// now add a blank input to this section\n\tsection.inputLst.push(\n\t\tnew InputTerm({\n\t\t\tsection,\n\t\t\tparent: self,\n\t\t\tnoTermPromptOptions: self.getNoTermPromptOptions(section)\n\t\t})\n\t)\n}\n", "import { RegressionInputs } from './regression.inputs'\nimport { RegressionResults } from './regression.results'\nimport { getCompInit, copyMerge } from '../rx'\nimport { sayerror } from '#dom'\nimport { fillTermWrapper } from '#termsetting'\nimport { getCombinedTermFilter } from '#filter'\nimport { PlotBase } from '#plots/PlotBase.js'\nimport { numericTypes, dictionaryNumericTypes } from '#shared'\n\n/*\nCode architecture:\n\nregression.js\n\tregression.inputs.js\n\t\tregression.inputs.term.js\n\t\t\tregression.inputs.values.table.js\n\tregression.results.js\n*/\n\nclass Regression extends PlotBase {\n\tstatic type = 'regression'\n\n\tconstructor(opts) {\n\t\tsuper(opts)\n\t\tthis.type = Regression.type\n\t\tthis.genomeObj = opts.app.opts.genome\n\t}\n\n\tasync init(appState) {\n\t\tthis.dom = {\n\t\t\theader: this.opts.header, // header is optional\n\t\t\terrordiv: this.opts.holder.append('div'),\n\t\t\tinputs: this.opts.holder.append('div').style('margin', '20px 10px'),\n\t\t\tresults: this.opts.holder.append('div').style('margin-left', '40px')\n\t\t}\n\n\t\t// this.id is from opts.id and assigned by rx\n\t\tconst config = appState.plots.find(p => p.id === this.id)\n\n\t\tthis.inputs = new RegressionInputs({\n\t\t\tapp: this.app,\n\t\t\tparent: this,\n\t\t\tid: this.id,\n\t\t\tholder: this.dom.inputs,\n\t\t\tregressionType: config.regressionType\n\t\t})\n\n\t\tthis.results = new RegressionResults({\n\t\t\tapp: this.app,\n\t\t\tparent: this,\n\t\t\tid: this.id,\n\t\t\tholder: this.dom.results,\n\t\t\tregressionType: config.regressionType\n\t\t})\n\t}\n\n\tgetState(appState, sub) {\n\t\tconst config = appState.plots.find(p => p.id === this.id)\n\t\tif (!config) {\n\t\t\tthrow `No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`\n\t\t}\n\t\tif (!config.regressionType) throw 'regressionType is required'\n\t\tconst parentConfig = this.parentId && appState.plots.find(p => p.id === this.parentId)\n\t\tconst termfilter = getCombinedTermFilter(appState, config.filter || parentConfig?.filter)\n\t\treturn {\n\t\t\tvocab: appState.vocab,\n\t\t\tformIsComplete: config.outcome && config.independent.length,\n\t\t\tactiveCohort: appState.activeCohort,\n\t\t\ttermfilter,\n\t\t\tconfig,\n\t\t\tallowedTermTypes: appState.termdbConfig.allowedTermTypes,\n\t\t\tminTimeSinceDx: appState.termdbConfig.minTimeSinceDx\n\t\t}\n\t}\n\n\t/* do not set reactsTo\n\tso it reacts to all actions matching with the plot id (controlled by store method)\n\tincluding filter/cohort change\n\t*/\n\n\tasync main() {\n\t\ttry {\n\t\t\tthis.config = JSON.parse(JSON.stringify(this.state.config))\n\t\t\tthis.mayUpdateSandboxHeader()\n\t\t\tthis.getFilter()\n\t\t\tawait this.inputs.main()\n\t\t\tawait this.results.main()\n\t\t\tthis.inputs.resetSubmitButton()\n\t\t\tthis.inputs.mayShowUnivariateCheckbox()\n\t\t\tthis.inputs.mayShowSubmitMsgs()\n\t\t} catch (e) {\n\t\t\tif (this.inputs.hasError) {\n\t\t\t\t// will hide the results ui\n\t\t\t\tthis.results.main()\n\t\t\t}\n\t\t\tsayerror(this.dom.errordiv, 'Error: ' + (e.error || e))\n\t\t\tif (e.stack) console.log(e.stack)\n\t\t}\n\t}\n\n\tmayUpdateSandboxHeader() {\n\t\tif (!this.dom.header) return\n\t\t// based on data in config state, but not section\n\t\tconst o = this.config.outcome\n\t\tthis.dom.header.html(\n\t\t\t(o ? o.term.name : '') +\n\t\t\t\t'<span style=\"opacity:.6;font-size:.7em;margin-left:10px;\">' +\n\t\t\t\tthis.config.regressionType.toUpperCase() +\n\t\t\t\t' REGRESSION</span>'\n\t\t)\n\t}\n\n\tgetFilter() {\n\t\t// regression analysis may have multiple\n\t\t// filters (e.g. term filter + restrict ancestry filter)\n\t\t// so track all filters here\n\t\tconst filters = []\n\n\t\t// term filter\n\t\tif (this.state.termfilter?.filter) filters.push(this.state.termfilter.filter)\n\n\t\t// restrict ancestry filter\n\t\tconst tws = [this.config.outcome, ...this.config.independent]\n\t\tconst tws_restrictAncestry = tws.filter(tw => tw?.q.restrictAncestry)\n\t\tif (tws_restrictAncestry.length) {\n\t\t\tif (tws_restrictAncestry.length > 1) {\n\t\t\t\tconst ancestries = new Set(tws_restrictAncestry.map(tw => tw.q.restrictAncestry.name))\n\t\t\t\tif (ancestries.size > 1) throw 'samples cannot be restricted to more than 1 ancestry'\n\t\t\t}\n\t\t\tconst tw = tws_restrictAncestry[0]\n\t\t\tfilters.push({ type: 'tvs', tvs: tw.q.restrictAncestry.tvs })\n\t\t\t// notify user that samples will be restricted by ancestry\n\t\t\tthis.inputs.submitMsgs.restrictAncestry = `Restricting analysis to samples of ${tw.q.restrictAncestry.name}`\n\t\t} else {\n\t\t\tdelete this.inputs.submitMsgs.restrictAncestry\n\t\t}\n\n\t\t// store filters\n\t\t// vocabApi will use getNormalFilter() to remove any empty filters and convert a single entry tvslst into a tvs\n\t\tthis.filter = { type: 'tvslst', join: 'and', lst: filters }\n\t}\n}\n\nexport const regressionInit = getCompInit(Regression)\n// this alias will allow abstracted dynamic imports\nexport const componentInit = regressionInit\n\nlet _ID_ = 1\n\nexport async function getPlotConfig(opts, app) {\n\t// TODO need to supply term filter of app to fillTermWrapper\n\tif (!opts.outcome) opts.outcome = {}\n\n\tawait fillTermWrapper(opts.outcome, app.vocabApi, get_defaultQ4fillTW(opts.regressionType, 'outcome'))\n\n\tconst id = 'id' in opts ? opts.id : `_REGRESSION_${_ID_++}`\n\tconst config = { id }\n\tconfig.outcome = opts.outcome\n\n\tif (opts.independent) {\n\t\tif (!Array.isArray(opts.independent)) throw '.independent[] is not array'\n\t\tfor (const t of opts.independent) {\n\t\t\tawait fillTermWrapper(\n\t\t\t\tt,\n\t\t\t\tapp.vocabApi,\n\t\t\t\tt.q?.mode ? undefined : get_defaultQ4fillTW(opts.regressionType, 'independent')\n\t\t\t)\n\t\t}\n\t\tconfig.independent = opts.independent\n\t} else {\n\t\tconfig.independent = []\n\t}\n\t// may apply term-specific changes to the default object\n\treturn copyMerge(config, opts)\n}\n\nexport function get_defaultQ4fillTW(regressionType, useCase = '') {\n\tconst defaultQ = {}\n\n\t// numeric term\n\tdefaultQ['numeric'] = regressionType == 'logistic' && useCase == 'outcome' ? { mode: 'binary' } : { mode: 'discrete' }\n\n\t// non-dictionary numeric terms will default to 2-bin using median cutoff\n\tfor (const t of numericTypes) {\n\t\tif (dictionaryNumericTypes.has(t)) continue // already covered by defaultQ['numeric']\n\t\tdefaultQ[t] =\n\t\t\tregressionType == 'logistic' && useCase == 'outcome'\n\t\t\t\t? { mode: 'binary' }\n\t\t\t\t: { mode: 'discrete', type: 'custom-bin', preferredBins: 'median' }\n\t}\n\n\t// categorical term\n\tdefaultQ['categorical'] =\n\t\tregressionType == 'logistic' && useCase == 'outcome' ? { mode: 'binary' } : { mode: 'discrete' }\n\n\t// condition term\n\tif (useCase == 'outcome') {\n\t\tif (regressionType == 'cox') {\n\t\t\t// do not preset timeScale to 'time' here because\n\t\t\t// that can cause copyMerge to overwrite saved setting\n\t\t\t// fillTW will auto fill missing value\n\t\t\tdefaultQ.condition = { mode: 'cox' }\n\t\t}\n\t\tif (regressionType == 'logistic') {\n\t\t\tdefaultQ.condition = { mode: 'binary' }\n\t\t}\n\t}\n\n\t// geneVariant term\n\tdefaultQ['geneVariant'] = { type: 'predefined-groupset' }\n\n\treturn defaultQ\n}\n\nexport function makeChartBtnMenu(holder, chartsInstance) {\n\t/*\n\tholder: the holder in the tooltip\n\tchartsInstance: MassCharts instance\n\t*/\n\tconst allMethods = [\n\t\t{ label: 'Linear', type: 'linear' },\n\t\t{ label: 'Logistic', type: 'logistic' },\n\t\t{ label: 'Cox', type: 'cox' }\n\t]\n\tconst useMethods = allMethods.filter(i => chartsInstance.state.currentCohortChartTypes.includes(i.type))\n\tif (useMethods.length == 0) return holder.append('div').text('Error: no methods available')\n\tif (useMethods.length == 1) {\n\t\t// only 1 method supported. directly show ui for this method but not menu\n\t\tchartsInstance.dom.tip.hide()\n\t\tchartsInstance.prepPlot({\n\t\t\tconfig: {\n\t\t\t\tchartType: 'regression',\n\t\t\t\tregressionType: useMethods[0].type,\n\t\t\t\tindependent: []\n\t\t\t}\n\t\t})\n\t\treturn\n\t}\n\t// multiple methods. show menu to list them\n\tfor (const { label, type } of useMethods) {\n\t\tholder\n\t\t\t.append('div')\n\t\t\t.attr('class', 'sja_menuoption sja_sharp_border')\n\t\t\t.text(label)\n\t\t\t.on('click', () => {\n\t\t\t\tchartsInstance.dom.tip.hide()\n\t\t\t\tchartsInstance.prepPlot({\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tchartType: 'regression',\n\t\t\t\t\t\tregressionType: type,\n\t\t\t\t\t\tindependent: []\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["e", "errors", "t_gs", "input", "i", "tw"]
7
+ }