@sjcrh/proteinpaint-client 2.200.0 → 2.202.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 (1054) hide show
  1. package/dist/2dmaf-Y2MBOXHL.js +1373 -0
  2. package/dist/AIProjectAdmin-2W4WNV65.js +958 -0
  3. package/dist/AggregateMatrix-7L7OKUXI.js +671 -0
  4. package/dist/AggregateMatrix-7L7OKUXI.js.map +7 -0
  5. package/dist/AppHeader-6WM66GKP.js +835 -0
  6. package/dist/BoxPlot-AF72DMSS.js +1218 -0
  7. package/dist/CorrelationVolcano-H6DHMTYZ.js +620 -0
  8. package/dist/CorrelationVolcano-H6DHMTYZ.js.map +7 -0
  9. package/dist/DE-AABMOSEE.js +95 -0
  10. package/dist/DEinput-3HVHJE2I.js +409 -0
  11. package/dist/DEinput-3HVHJE2I.js.map +7 -0
  12. package/dist/DifferentialAnalysis-NBC222Q6.js +243 -0
  13. package/dist/Disco-B6E3ALAV.js +3392 -0
  14. package/dist/Disco.UI-KGFIQHXC.js +248 -0
  15. package/dist/DmrPlot-R3S4PCAE.js +642 -0
  16. package/dist/DziViewer-QYLZ4EMQ.js +16332 -0
  17. package/dist/GB-PV4RI5DG.js +1396 -0
  18. package/dist/GSEA-DHUOROST.js +846 -0
  19. package/dist/GeneExpInput-RESMBEM3.js +367 -0
  20. package/dist/Geomap-2WACSP77.js +89 -0
  21. package/dist/HicApp-3FJEZXAI.js +2250 -0
  22. package/dist/IDCViewer-MIRQEK4N.js +10817 -0
  23. package/dist/NumBinaryEditor-EP277U4I.js +284 -0
  24. package/dist/NumBinaryEditor-EP277U4I.js.map +7 -0
  25. package/dist/NumBinaryEditor.unit.spec-ZB627VLG.js +317 -0
  26. package/dist/NumBinaryEditor.unit.spec-ZB627VLG.js.map +7 -0
  27. package/dist/NumContEditor-F7DOQSIW.js +110 -0
  28. package/dist/NumContEditor-F7DOQSIW.js.map +7 -0
  29. package/dist/NumContEditor.unit.spec-PROGQHTU.js +169 -0
  30. package/dist/NumCustomBinEditor-QS3IPKIQ.js +38 -0
  31. package/dist/NumCustomBinEditor.unit.spec-BRDEFIX6.js +402 -0
  32. package/dist/NumCustomBinEditor.unit.spec-BRDEFIX6.js.map +7 -0
  33. package/dist/NumDiscreteEditor-SE4I3BDA.js +175 -0
  34. package/dist/NumDiscreteEditor-SE4I3BDA.js.map +7 -0
  35. package/dist/NumDiscreteEditor.unit.spec-6GBWQ3NQ.js +238 -0
  36. package/dist/NumDiscreteEditor.unit.spec-6GBWQ3NQ.js.map +7 -0
  37. package/dist/NumRegularBinEditor-RJKB3G3V.js +38 -0
  38. package/dist/NumRegularBinEditor.unit.spec-HRU2Y76X.js +283 -0
  39. package/dist/NumRegularBinEditor.unit.spec-HRU2Y76X.js.map +7 -0
  40. package/dist/NumSplineEditor-2DCORF5E.js +215 -0
  41. package/dist/NumSplineEditor-2DCORF5E.js.map +7 -0
  42. package/dist/NumSplineEditor.unit.spec-TTNB5IXX.js +229 -0
  43. package/dist/NumSplineEditor.unit.spec-TTNB5IXX.js.map +7 -0
  44. package/dist/NumericDensity-3A7KTA7Y.js +38 -0
  45. package/dist/NumericDensity.unit.spec-ISPDAUVX.js +423 -0
  46. package/dist/NumericDensity.unit.spec-ISPDAUVX.js.map +7 -0
  47. package/dist/NumericHandler-RG5XZMBU.js +39 -0
  48. package/dist/NumericHandler.unit.spec-RTD7AZNE.js +219 -0
  49. package/dist/ProteomeInput-6A7UB4CI.js +394 -0
  50. package/dist/RunChart2-YEAOBR2L.js +758 -0
  51. package/dist/SC-C3MJQBI5.js +1112 -0
  52. package/dist/Volcano-N6MXAQDZ.js +1417 -0
  53. package/dist/Volcano-N6MXAQDZ.js.map +7 -0
  54. package/dist/WSIViewer-OVJ2QS7P.js +26200 -0
  55. package/dist/WSIViewer-OVJ2QS7P.js.map +7 -0
  56. package/dist/Wsi-CMLKCEG3.js +239 -0
  57. package/dist/Wsi-CMLKCEG3.js.map +7 -0
  58. package/dist/WsiSamplesPlot-ET7LGNJW.js +165 -0
  59. package/dist/adSandbox-6LGHUXPX.js +38 -0
  60. package/dist/animatedBubbleChart-VJ6EQDQP.js +553 -0
  61. package/dist/app-PRLLUIAA.js +49 -0
  62. package/dist/app-WR6PQ2YK.js +37 -0
  63. package/dist/app.js +22 -22
  64. package/dist/bam-EXBXKUSE.js +859 -0
  65. package/dist/barchart-FSIB3IZZ.js +47 -0
  66. package/dist/barchart.data-VBSWS5N7.js +21 -0
  67. package/dist/barchart.events-F4HSVH6M.js +47 -0
  68. package/dist/barchart.integration.spec-AXE7BRKX.js +2243 -0
  69. package/dist/barchart2-DRNQQJE2.js +314 -0
  70. package/dist/block-J3A3RIGS.js +6255 -0
  71. package/dist/block.init-MQKMDKKW.js +38 -0
  72. package/dist/block.mds.expressionrank-ZQEPPDEL.js +359 -0
  73. package/dist/block.mds.geneboxplot-VJTIMZ6H.js +828 -0
  74. package/dist/block.mds.junction-VTAMQ2CW.js +1545 -0
  75. package/dist/block.mds.svcnv-WG7WY3CS.js +6801 -0
  76. package/dist/block.svg-YTWYGSGO.js +164 -0
  77. package/dist/block.tk.aicheck-L4M55U63.js +283 -0
  78. package/dist/block.tk.ase-3OBVSGWM.js +365 -0
  79. package/dist/block.tk.bam-QUCP3HST.js +1906 -0
  80. package/dist/block.tk.bedgraphdot-BGAH5YPF.js +384 -0
  81. package/dist/block.tk.bigwig.ui-2MG6VMOE.js +211 -0
  82. package/dist/block.tk.hicstraw-MDQHFWBB.js +823 -0
  83. package/dist/block.tk.junction-PBCJTAFX.js +2364 -0
  84. package/dist/block.tk.junction.textmatrixui-FJR76QBO.js +199 -0
  85. package/dist/block.tk.ld-ISL7K3DH.js +99 -0
  86. package/dist/block.tk.menu-VQW3FUAF.js +1029 -0
  87. package/dist/block.tk.pgv-RMXDF3XD.js +944 -0
  88. package/dist/brainImaging-F4GZRF53.js +423 -0
  89. package/dist/brainRegions-ONUXPD7P.js +221 -0
  90. package/dist/bubbleHeatmap-ZOS2ME3T.js +383 -0
  91. package/dist/cellTypeBubbleHeatmap-BEVDWLHJ.js +283 -0
  92. package/dist/chunk-2JQWA4EO.js +6364 -0
  93. package/dist/chunk-2TWVFQD2.js +494 -0
  94. package/dist/chunk-2TWVFQD2.js.map +7 -0
  95. package/dist/chunk-2TZITKMT.js +498 -0
  96. package/dist/chunk-4BDOPNYW.js +129 -0
  97. package/dist/chunk-4G6ZGXZF.js +1338 -0
  98. package/dist/chunk-4G6ZGXZF.js.map +7 -0
  99. package/dist/chunk-4QW2O66J.js +22695 -0
  100. package/dist/chunk-4QW2O66J.js.map +7 -0
  101. package/dist/chunk-4RWLKZMS.js +480 -0
  102. package/dist/chunk-57GCW5SF.js +2899 -0
  103. package/dist/chunk-5RUVBYLK.js +117 -0
  104. package/dist/chunk-5YOZ4E5H.js +55 -0
  105. package/dist/chunk-6N5DNN7P.js +302 -0
  106. package/dist/chunk-73PFJ2VF.js +21517 -0
  107. package/dist/chunk-73PFJ2VF.js.map +7 -0
  108. package/dist/chunk-75T7ESEO.js +61 -0
  109. package/dist/chunk-75T7ESEO.js.map +7 -0
  110. package/dist/chunk-A7OWXDYA.js +129 -0
  111. package/dist/chunk-A7OWXDYA.js.map +7 -0
  112. package/dist/chunk-AOVDTRFY.js +272 -0
  113. package/dist/chunk-BIDQ4OZH.js +465 -0
  114. package/dist/chunk-C34UTN5M.js +292 -0
  115. package/dist/chunk-CLTRQZGJ.js +170 -0
  116. package/dist/chunk-DCR4QQ5Y.js +194 -0
  117. package/dist/chunk-DFHSLHXZ.js +134 -0
  118. package/dist/chunk-DMOTISFN.js +835 -0
  119. package/dist/chunk-DMOTISFN.js.map +7 -0
  120. package/dist/chunk-E2GHT7RH.js +39 -0
  121. package/dist/chunk-E2JRANYL.js +299 -0
  122. package/dist/chunk-E6EA7IU7.js +1172 -0
  123. package/dist/chunk-E6EA7IU7.js.map +7 -0
  124. package/dist/chunk-E732F6XI.js +141 -0
  125. package/dist/chunk-E732F6XI.js.map +7 -0
  126. package/dist/chunk-ETK36FXN.js +384 -0
  127. package/dist/chunk-FCOX5Q4Q.js +58 -0
  128. package/dist/chunk-FESRWKYY.js +203 -0
  129. package/dist/chunk-FXQXCOII.js +101 -0
  130. package/dist/chunk-FXQXCOII.js.map +7 -0
  131. package/dist/chunk-GEQUQ3GG.js +1652 -0
  132. package/dist/chunk-GEQUQ3GG.js.map +7 -0
  133. package/dist/chunk-GMJSMF7P.js +5070 -0
  134. package/dist/chunk-H6INPPUC.js +784 -0
  135. package/dist/chunk-H6INPPUC.js.map +7 -0
  136. package/dist/chunk-HDPL53U4.js +14 -0
  137. package/dist/chunk-HOCICSX4.js +276 -0
  138. package/dist/chunk-HR7XPTAV.js +340 -0
  139. package/dist/chunk-HR7XPTAV.js.map +7 -0
  140. package/dist/chunk-HV3GD2F3.js +54 -0
  141. package/dist/chunk-IGVKT4CE.js +56 -0
  142. package/dist/chunk-IMKIDF2H.js +123 -0
  143. package/dist/chunk-IQVBMLFI.js +446 -0
  144. package/dist/chunk-ITKMNOLR.js +37 -0
  145. package/dist/chunk-JABW3SRG.js +217 -0
  146. package/dist/chunk-JTYQX3EE.js +4306 -0
  147. package/dist/chunk-JTYQX3EE.js.map +7 -0
  148. package/dist/chunk-KDNYUHAH.js +70 -0
  149. package/dist/chunk-KSA3ND7Z.js +2327 -0
  150. package/dist/chunk-L44P5N4U.js +314 -0
  151. package/dist/chunk-L44P5N4U.js.map +7 -0
  152. package/dist/chunk-LCRPBPKX.js +34 -0
  153. package/dist/chunk-MGGAWPTR.js +54 -0
  154. package/dist/chunk-MKPU5TWN.js +194 -0
  155. package/dist/chunk-MKPU5TWN.js.map +7 -0
  156. package/dist/chunk-NIZTWHGT.js +514 -0
  157. package/dist/chunk-OBRVYT5O.js +187 -0
  158. package/dist/chunk-OBRVYT5O.js.map +7 -0
  159. package/dist/chunk-OCC5HEPR.js +411 -0
  160. package/dist/chunk-OCC5HEPR.js.map +7 -0
  161. package/dist/chunk-OMIUJ7JT.js +448 -0
  162. package/dist/chunk-ONCG5AKF.js +160 -0
  163. package/dist/chunk-OW5LD7S2.js +102 -0
  164. package/dist/chunk-PY4QOYPK.js +102 -0
  165. package/dist/chunk-Q3QY7QGU.js +50 -0
  166. package/dist/chunk-R3ARQMM4.js +119 -0
  167. package/dist/chunk-RL3IRMOA.js +236 -0
  168. package/dist/chunk-RVRRHEUG.js +26 -0
  169. package/dist/chunk-SCOFWMSE.js +240 -0
  170. package/dist/chunk-SCOFWMSE.js.map +7 -0
  171. package/dist/chunk-SMOHPEMJ.js +2681 -0
  172. package/dist/chunk-SNL7MSZD.js +243 -0
  173. package/dist/chunk-SNL7MSZD.js.map +7 -0
  174. package/dist/chunk-SP7HDNXC.js +368 -0
  175. package/dist/chunk-TRQUMV4T.js +254 -0
  176. package/dist/chunk-UFLJ6PRI.js +387 -0
  177. package/dist/chunk-UFLJ6PRI.js.map +7 -0
  178. package/dist/chunk-UILBQKQ6.js +143 -0
  179. package/dist/chunk-UO7MD3XA.js +556 -0
  180. package/dist/chunk-UONOFG2J.js +274 -0
  181. package/dist/chunk-USH6NWXA.js +1943 -0
  182. package/dist/chunk-USH6NWXA.js.map +7 -0
  183. package/dist/chunk-UTNJA7JC.js +381 -0
  184. package/dist/chunk-VJCJCDFI.js +142 -0
  185. package/dist/chunk-VSSZJHOR.js +473 -0
  186. package/dist/chunk-W2WOZNEN.js +158 -0
  187. package/dist/chunk-WGRJEQT7.js +1250 -0
  188. package/dist/chunk-WGRJEQT7.js.map +7 -0
  189. package/dist/chunk-WJTRQ3ZC.js +1710 -0
  190. package/dist/chunk-WWXXSQ2M.js +31 -0
  191. package/dist/chunk-X4QQRHFB.js +1812 -0
  192. package/dist/chunk-X6VTVZY7.js +263 -0
  193. package/dist/chunk-XFAL46LZ.js +102 -0
  194. package/dist/chunk-XFAL46LZ.js.map +7 -0
  195. package/dist/chunk-Y2UCJ33M.js +263 -0
  196. package/dist/chunk-Y45RZL4F.js +98 -0
  197. package/dist/chunk-YAISXQJ5.js +626 -0
  198. package/dist/chunk-YAISXQJ5.js.map +7 -0
  199. package/dist/chunk-YUURGVV3.js +275 -0
  200. package/dist/chunk-Z2TA7NML.js +352 -0
  201. package/dist/chunk-Z7U74YGW.js +222 -0
  202. package/dist/chunk-Z7U74YGW.js.map +7 -0
  203. package/dist/chunk-ZFJUVP2N.js +787 -0
  204. package/dist/chunk-ZKMBNB5E.js +176 -0
  205. package/dist/chunk-ZPBG6CT3.js +100 -0
  206. package/dist/chunk-ZUDSOVYT.js +2784 -0
  207. package/dist/chunk-ZZMIDYRE.js +197 -0
  208. package/dist/chunk-ZZMIDYRE.js.map +7 -0
  209. package/dist/cohort-R743ZSCR.js +75 -0
  210. package/dist/condition-MPZIRRGP.js +332 -0
  211. package/dist/controls-WD5TZITZ.js +39 -0
  212. package/dist/controls.btns-KCLXBXSL.js +9 -0
  213. package/dist/controls.config-577UCREO.js +39 -0
  214. package/dist/correlation-OCFBDDOX.js +102 -0
  215. package/dist/cuminc-YJGCKHFM.js +1153 -0
  216. package/dist/cuminc-YJGCKHFM.js.map +7 -0
  217. package/dist/cuminc.integration.spec-V46K57GV.js +678 -0
  218. package/dist/customdata.inputui-2MS5ZRKC.js +289 -0
  219. package/dist/dataDownload-HBFKARTR.js +332 -0
  220. package/dist/dataDownload-HBFKARTR.js.map +7 -0
  221. package/dist/dataDownload.integration.spec-TEOJOMYK.js +193 -0
  222. package/dist/databrowser.ui-PDPFHOH7.js +432 -0
  223. package/dist/dictionary-MWUQYW6W.js +118 -0
  224. package/dist/dnaMethylation-SNVVE2MD.js +38 -0
  225. package/dist/dnaMethylation.integration.spec-OSYZ3YDP.js +203 -0
  226. package/dist/dofetch-7R7PL4BX.js +51 -0
  227. package/dist/e2pca-7FYIWR5O.js +350 -0
  228. package/dist/ep-PTAJZLKI.js +1256 -0
  229. package/dist/expclust.gdc.spec-2R7T7JPY.js +307 -0
  230. package/dist/facet-BY6DQRCA.js +521 -0
  231. package/dist/facet-BY6DQRCA.js.map +7 -0
  232. package/dist/gb-5UFIDQWY.js +88 -0
  233. package/dist/geneExpClustering-QLBETGVB.js +249 -0
  234. package/dist/geneExpression-SAMLSOHQ.js +38 -0
  235. package/dist/geneExpression-SECTPIDT.js +313 -0
  236. package/dist/geneExpression.unit.spec-UNRGPJIG.js +102 -0
  237. package/dist/geneORA-CCQGE7QL.js +278 -0
  238. package/dist/geneRanking-NVR7ZZIP.js +553 -0
  239. package/dist/geneVariant-5KL2J3NA.js +39 -0
  240. package/dist/geneVariant-72E5YEPJ.js +41 -0
  241. package/dist/geneVariant.integration.spec-7JLVYF7Q.js +198 -0
  242. package/dist/genefusion.ui-M3IG6NUU.js +308 -0
  243. package/dist/geneset-V2535XGY.js +208 -0
  244. package/dist/genomeBrowser.spec-TRREAQCH.js +281 -0
  245. package/dist/grin2-6X5GCPBQ.js +75 -0
  246. package/dist/grin2-GOO7H3RC.js +1143 -0
  247. package/dist/hierCluster-5YZOCCTV.js +63 -0
  248. package/dist/hierCluster-ZPQCUSVO.js +59 -0
  249. package/dist/hierCluster.config-T3Y2LS6V.js +40 -0
  250. package/dist/hierCluster.integration.spec-PTXVQH77.js +488 -0
  251. package/dist/hierCluster.interactivity-JNBO3MJB.js +54 -0
  252. package/dist/hierCluster.renderers-FXDCU3PN.js +21 -0
  253. package/dist/imagePlot-AH2JIGVN.js +163 -0
  254. package/dist/imagePlot-AH2JIGVN.js.map +7 -0
  255. package/dist/importPlot-CWMBFQDD.js +8 -0
  256. package/dist/isoformExpression-ABPY2N3A.js +40 -0
  257. package/dist/isoformExpression.unit.spec-KRAZBQVF.js +242 -0
  258. package/dist/junction-XGCBNVHV.js +41 -0
  259. package/dist/junction.customTerm-MDBOU6I7.js +18 -0
  260. package/dist/junction.unit.spec-XZFUJRI3.js +187 -0
  261. package/dist/launch.adhoc-7FJD3XSI.js +42 -0
  262. package/dist/leftlabel.sample-VPOZWRVY.js +263 -0
  263. package/dist/lollipop-WBOAFWWO.js +171 -0
  264. package/dist/maf-MMN6WYHA.js +460 -0
  265. package/dist/maf-MMN6WYHA.js.map +7 -0
  266. package/dist/maftimeline-UK4MQP2D.js +593 -0
  267. package/dist/matrix-AT2FFTWO.js +58 -0
  268. package/dist/matrix-AU6NPNID.js +63 -0
  269. package/dist/matrix.cells-CFSI2NWU.js +28 -0
  270. package/dist/matrix.config-VTQ6HL5L.js +41 -0
  271. package/dist/matrix.data-DBYXSWIN.js +25 -0
  272. package/dist/matrix.dom-DDPSUNY2.js +11 -0
  273. package/dist/matrix.groups-ZFKWVNMX.js +27 -0
  274. package/dist/matrix.integration.spec-NJ2AXQAS.js +3072 -0
  275. package/dist/matrix.interactivity-HE2Q6SAO.js +42 -0
  276. package/dist/matrix.layout-FD5BPRCX.js +44 -0
  277. package/dist/matrix.legend-7MIZZJVB.js +22 -0
  278. package/dist/matrix.renderers-DVM4NB2R.js +38 -0
  279. package/dist/matrix.serieses-7KYX3KAY.js +21 -0
  280. package/dist/matrix.sort-CR3J45MQ.js +27 -0
  281. package/dist/matrix.sort.unit.spec-VQ3TR4S2.js +472 -0
  282. package/dist/matrix.sorterUi-4KYRGJT5.js +18 -0
  283. package/dist/matrix.sorterUi.unit.spec-IEHG3OKN.js +342 -0
  284. package/dist/mavb-RPRKXPTZ.js +732 -0
  285. package/dist/mds.fimo-PZCVBD44.js +518 -0
  286. package/dist/mds.samplescatterplot-236GTHM4.js +1550 -0
  287. package/dist/mds.survivalplot-IJHOWSZL.js +483 -0
  288. package/dist/numericDictTermCluster-3HXLMURH.js +65 -0
  289. package/dist/oncomatrix-R4OKDXSV.js +295 -0
  290. package/dist/oncomatrix.spec-4Z4HKS44.js +448 -0
  291. package/dist/plot.2dvaf-ZK7DAKRQ.js +377 -0
  292. package/dist/plot.app-J66BA2LD.js +41 -0
  293. package/dist/plot.barplot-UVRVPOKA.js +102 -0
  294. package/dist/plot.boxplot-DQGBDNLU.js +152 -0
  295. package/dist/plot.brainImaging-WRMDYYHC.js +51 -0
  296. package/dist/plot.disco-SSGPSM7W.js +102 -0
  297. package/dist/plot.dzi-F77KKPIJ.js +33 -0
  298. package/dist/plot.ssgq-FVFJOYVO.js +139 -0
  299. package/dist/plot.vaf2cov-CJSYBSPQ.js +259 -0
  300. package/dist/plot.wsi-OSZU2PQ5.js +36 -0
  301. package/dist/polar2-R4ZKXKEV.js +237 -0
  302. package/dist/profileForms-F7LXHITE.js +940 -0
  303. package/dist/profileForms-F7LXHITE.js.map +7 -0
  304. package/dist/profilePlot-JU7SFYYY.js +54 -0
  305. package/dist/proteinView-VU4SVO5I.js +1568 -0
  306. package/dist/proteomeCohortCompare-2U537GOK.js +799 -0
  307. package/dist/pseudbulk.unit.spec-2FDKAEVI.js +91 -0
  308. package/dist/pseudobulk-5GBUBBOY.js +40 -0
  309. package/dist/qualitative-3FTEQ7JW.js +43 -0
  310. package/dist/qualitative-GJDQBD7L.js +220 -0
  311. package/dist/radar2-EBOTTAMC.js +332 -0
  312. package/dist/radarFacility2-PAGNJR6D.js +340 -0
  313. package/dist/regression-XOVSVC7S.js +58 -0
  314. package/dist/regression.inputs-LGA67ESO.js +48 -0
  315. package/dist/regression.inputs.term-UCQKXC5D.js +50 -0
  316. package/dist/regression.inputs.values.table-2RRE7SMS.js +45 -0
  317. package/dist/regression.integration.spec-BKM5UI7H.js +838 -0
  318. package/dist/regression.integration.spec-BKM5UI7H.js.map +7 -0
  319. package/dist/regression.results-T3HB6CBH.js +40 -0
  320. package/dist/regression.spec-W7IVCYVZ.js +708 -0
  321. package/dist/render-2C6LWNG2.js +38 -0
  322. package/dist/report-HRGU3XKL.js +222 -0
  323. package/dist/sampleView-P5JZHEKY.js +48 -0
  324. package/dist/samplelst-OYQ6BASU.js +111 -0
  325. package/dist/samplematrix-JC3SGO5V.js +2198 -0
  326. package/dist/sc-FTHUNDGY.js +86 -0
  327. package/dist/scatter-WYP2NPNB.js +890 -0
  328. package/dist/scatter-WYP2NPNB.js.map +7 -0
  329. package/dist/selectGenomeWithTklst-CIETKILP.js +134 -0
  330. package/dist/singleCellCellType-3O3TTLM6.js +38 -0
  331. package/dist/singleCellCellType.unit.spec-GHBS36DB.js +159 -0
  332. package/dist/singleCellGeneExpression-2F7F4EKK.js +38 -0
  333. package/dist/singleCellGeneExpression.unit.spec-2VGIH2NZ.js +153 -0
  334. package/dist/singleCellPlot-MGSS4O3L.js +54 -0
  335. package/dist/singlecell-CKC2VVJ3.js +86 -0
  336. package/dist/singlecell-QOXATRF4.js +1572 -0
  337. package/dist/snp-OSYJO2R7.js +38 -0
  338. package/dist/snp.unit.spec-L5ANPFO2.js +176 -0
  339. package/dist/snplocus-64MJJID2.js +208 -0
  340. package/dist/spliceevent.a53ss.diagram-LHRT5UPB.js +151 -0
  341. package/dist/spliceevent.exonskip.diagram-BGSEPGR5.js +283 -0
  342. package/dist/spliceevent.noeventdiagram-QGZZSKW7.js +460 -0
  343. package/dist/ssGSEA-VVAZDFDT.js +38 -0
  344. package/dist/ssGSEA.unit.spec-LP76RHTV.js +88 -0
  345. package/dist/stattable-55YGV5B4.js +122 -0
  346. package/dist/stattable-55YGV5B4.js.map +7 -0
  347. package/dist/studyCatalog-AXWH7IOH.js +358 -0
  348. package/dist/summarizeCnvGeneexp-DRBIXOAP.js +163 -0
  349. package/dist/summarizeGeneexpSurvival-4PATAUSN.js +110 -0
  350. package/dist/summarizeMutationCnv-UGSIGZDJ.js +164 -0
  351. package/dist/summarizeMutationDiagnosis-UATVI5BK.js +40 -0
  352. package/dist/summarizeMutationSurvival-CZXGM3AA.js +99 -0
  353. package/dist/summary-IGTXNQ5I.js +49 -0
  354. package/dist/summary.integration.spec-VFCYU2V6.js +414 -0
  355. package/dist/summaryInput-AFZSASTM.js +231 -0
  356. package/dist/sunburst-G7DBI637.js +284 -0
  357. package/dist/survival-GIRR5ML4.js +1247 -0
  358. package/dist/survival-GIRR5ML4.js.map +7 -0
  359. package/dist/survival-YOJBLMR2.js +58 -0
  360. package/dist/survival.integration.spec-FXPCZJSS.js +958 -0
  361. package/dist/svgraph-ZSSOWI7R.js +1387 -0
  362. package/dist/svmr-FPYSMXSC.js +3842 -0
  363. package/dist/table-NHS2WLWT.js +202 -0
  364. package/dist/table-NHS2WLWT.js.map +7 -0
  365. package/dist/termCollection-IY5V64IY.js +38 -0
  366. package/dist/termCollection-SR4SP6RZ.js +257 -0
  367. package/dist/termCollection.unit.spec-NL72AQ2P.js +304 -0
  368. package/dist/termCollectionFractionSelection-2LPBE224.js +47 -0
  369. package/dist/termCollectionFractionSelection.unit.spec-PUMGBUDN.js +193 -0
  370. package/dist/termInfo-2DR7DHXM.js +9 -0
  371. package/dist/tk-COBDWIZJ.js +1127 -0
  372. package/dist/tk-N2YBXDQK.js +46 -0
  373. package/dist/tp.ui-BMK2MMIJ.js +1459 -0
  374. package/dist/tvs.density-LMRZZO4D.js +19 -0
  375. package/dist/tvs.dt-KL4VCW5Y.js +39 -0
  376. package/dist/tvs.dtcnv.categorical-VGXOASJE.js +40 -0
  377. package/dist/tvs.dtcnv.continuous-IANT7BPS.js +72 -0
  378. package/dist/tvs.dtfusion-M5HJWCJI.js +40 -0
  379. package/dist/tvs.dtitd-KB72EDPN.js +40 -0
  380. package/dist/tvs.dtsnvindel-VGYTLO6E.js +40 -0
  381. package/dist/tvs.dtsv-KWUXW2F5.js +40 -0
  382. package/dist/tvs.numeric-MQPO5XUQ.js +22 -0
  383. package/dist/tvs.samplelst-3UA7XMHJ.js +104 -0
  384. package/dist/tvs.termCollection-LK6CVGYZ.js +129 -0
  385. package/dist/violin-D4EX3ZFV.js +46 -0
  386. package/dist/violin.integration.spec-GBW3VBHW.js +1425 -0
  387. package/dist/violin.interactivity-N3JVI2AQ.js +38 -0
  388. package/dist/violin.renderer-2NYRUXUY.js +40 -0
  389. package/dist/vocabulary-277KD4RO.js +41 -0
  390. package/dist/wsi.direct-RI3XGLUC.js +81 -0
  391. package/dist/wsi.direct-RI3XGLUC.js.map +7 -0
  392. package/package.json +3 -3
  393. package/dist/2dmaf-RRV3ORZR.js +0 -1373
  394. package/dist/AIProjectAdmin-DKLEFCGX.js +0 -958
  395. package/dist/AppHeader-WQ2F7HZY.js +0 -835
  396. package/dist/BoxPlot-5JQCYENZ.js +0 -1218
  397. package/dist/CorrelationVolcano-HR6IP2SZ.js +0 -619
  398. package/dist/CorrelationVolcano-HR6IP2SZ.js.map +0 -7
  399. package/dist/DE-DAW6ZKM7.js +0 -95
  400. package/dist/DEinput-XCR4VMR3.js +0 -409
  401. package/dist/DEinput-XCR4VMR3.js.map +0 -7
  402. package/dist/DifferentialAnalysis-SETJAZEN.js +0 -243
  403. package/dist/Disco-QEBEVQS2.js +0 -3392
  404. package/dist/Disco.UI-OYVL7UBI.js +0 -248
  405. package/dist/DmrPlot-CWBQDZL7.js +0 -642
  406. package/dist/DziViewer-6737GC22.js +0 -16332
  407. package/dist/GB-5PYCR4SV.js +0 -1396
  408. package/dist/GSEA-6UKMI6GY.js +0 -846
  409. package/dist/GeneExpInput-2N62XM7Z.js +0 -367
  410. package/dist/Geomap-ANMR32HE.js +0 -89
  411. package/dist/HicApp-WHPUPHEM.js +0 -2250
  412. package/dist/IDCViewer-FWXRE4AX.js +0 -10817
  413. package/dist/NumBinaryEditor-VG5KOGDA.js +0 -271
  414. package/dist/NumBinaryEditor-VG5KOGDA.js.map +0 -7
  415. package/dist/NumBinaryEditor.unit.spec-UCGFZS3P.js +0 -286
  416. package/dist/NumBinaryEditor.unit.spec-UCGFZS3P.js.map +0 -7
  417. package/dist/NumContEditor-J52RON3G.js +0 -109
  418. package/dist/NumContEditor-J52RON3G.js.map +0 -7
  419. package/dist/NumContEditor.unit.spec-5GTWUJEL.js +0 -169
  420. package/dist/NumCustomBinEditor-GM2OJMOX.js +0 -38
  421. package/dist/NumCustomBinEditor.unit.spec-3PGJ25J4.js +0 -284
  422. package/dist/NumCustomBinEditor.unit.spec-3PGJ25J4.js.map +0 -7
  423. package/dist/NumDiscreteEditor-2CAKT3Y4.js +0 -179
  424. package/dist/NumDiscreteEditor-2CAKT3Y4.js.map +0 -7
  425. package/dist/NumDiscreteEditor.unit.spec-XCWSJTRT.js +0 -202
  426. package/dist/NumDiscreteEditor.unit.spec-XCWSJTRT.js.map +0 -7
  427. package/dist/NumRegularBinEditor-CZYITY5L.js +0 -38
  428. package/dist/NumRegularBinEditor.unit.spec-OUBZ5XB3.js +0 -227
  429. package/dist/NumRegularBinEditor.unit.spec-OUBZ5XB3.js.map +0 -7
  430. package/dist/NumSplineEditor-TWRL5AQQ.js +0 -198
  431. package/dist/NumSplineEditor-TWRL5AQQ.js.map +0 -7
  432. package/dist/NumSplineEditor.unit.spec-5P6NQZ3N.js +0 -199
  433. package/dist/NumSplineEditor.unit.spec-5P6NQZ3N.js.map +0 -7
  434. package/dist/NumericDensity-JSOFOEH2.js +0 -38
  435. package/dist/NumericDensity.unit.spec-REUKHMKK.js +0 -221
  436. package/dist/NumericDensity.unit.spec-REUKHMKK.js.map +0 -7
  437. package/dist/NumericHandler-UZOGKPKB.js +0 -39
  438. package/dist/NumericHandler.unit.spec-X2DAED4O.js +0 -219
  439. package/dist/ProteomeInput-GBVCLNS7.js +0 -394
  440. package/dist/RunChart2-N4JPWNVV.js +0 -758
  441. package/dist/SC-RCZT5BRP.js +0 -1112
  442. package/dist/Volcano-2BQ6SYHO.js +0 -1404
  443. package/dist/Volcano-2BQ6SYHO.js.map +0 -7
  444. package/dist/WSIViewer-UDA4WIRT.js +0 -48562
  445. package/dist/WSIViewer-UDA4WIRT.js.map +0 -7
  446. package/dist/WsiSamplesPlot-DYSFMD22.js +0 -165
  447. package/dist/adSandbox-5BUDCAER.js +0 -38
  448. package/dist/animatedBubbleChart-N6MBJ4X3.js +0 -553
  449. package/dist/app-O64TGDFH.js +0 -37
  450. package/dist/app-Y2STUISK.js +0 -49
  451. package/dist/bam-2EOABVGT.js +0 -859
  452. package/dist/barchart-UHCTYRMJ.js +0 -47
  453. package/dist/barchart.data-LSK2P2PR.js +0 -21
  454. package/dist/barchart.events-Y4H2GADS.js +0 -47
  455. package/dist/barchart.integration.spec-BFGZFECA.js +0 -2243
  456. package/dist/barchart2-VIZKZRMP.js +0 -314
  457. package/dist/block-BGSSF6XP.js +0 -6255
  458. package/dist/block.init-H7RKUIHG.js +0 -38
  459. package/dist/block.mds.expressionrank-MA3HGT7S.js +0 -359
  460. package/dist/block.mds.geneboxplot-CWT5DM5T.js +0 -828
  461. package/dist/block.mds.junction-P4I7O73X.js +0 -1545
  462. package/dist/block.mds.svcnv-NSPEY43S.js +0 -6801
  463. package/dist/block.svg-DP4G3LNQ.js +0 -164
  464. package/dist/block.tk.aicheck-EBLTOWKZ.js +0 -283
  465. package/dist/block.tk.ase-X7WKQOFS.js +0 -365
  466. package/dist/block.tk.bam-OIP3TS3N.js +0 -1906
  467. package/dist/block.tk.bedgraphdot-2DDF55J3.js +0 -384
  468. package/dist/block.tk.bigwig.ui-S2SMAEXM.js +0 -211
  469. package/dist/block.tk.hicstraw-4OIG4TBZ.js +0 -823
  470. package/dist/block.tk.junction-52OWEQUN.js +0 -2364
  471. package/dist/block.tk.junction.textmatrixui-64YOSZLW.js +0 -199
  472. package/dist/block.tk.ld-3AMNHBDY.js +0 -99
  473. package/dist/block.tk.menu-4724DJXL.js +0 -1029
  474. package/dist/block.tk.pgv-2SIOPWYI.js +0 -944
  475. package/dist/brainImaging-D43CQQN6.js +0 -423
  476. package/dist/brainRegions-HJ2VGL3L.js +0 -221
  477. package/dist/bubbleHeatmap-IL44M4QZ.js +0 -383
  478. package/dist/cellTypeBubbleHeatmap-NQP7RCZO.js +0 -283
  479. package/dist/chunk-26APRXD3.js +0 -254
  480. package/dist/chunk-2GLA2SWU.js +0 -160
  481. package/dist/chunk-3BGFM7Q4.js +0 -1275
  482. package/dist/chunk-3BGFM7Q4.js.map +0 -7
  483. package/dist/chunk-3SHZTAGF.js +0 -193
  484. package/dist/chunk-3SHZTAGF.js.map +0 -7
  485. package/dist/chunk-46X6AQ7Z.js +0 -123
  486. package/dist/chunk-4HZN6PMU.js +0 -129
  487. package/dist/chunk-4KRGCOTL.js +0 -479
  488. package/dist/chunk-4KRGCOTL.js.map +0 -7
  489. package/dist/chunk-4KY4XKJV.js +0 -143
  490. package/dist/chunk-5DMVORBB.js +0 -98
  491. package/dist/chunk-5QMBB4SK.js +0 -1245
  492. package/dist/chunk-5QMBB4SK.js.map +0 -7
  493. package/dist/chunk-5RVA43MN.js +0 -274
  494. package/dist/chunk-5T3MOOEJ.js +0 -379
  495. package/dist/chunk-5T3MOOEJ.js.map +0 -7
  496. package/dist/chunk-5T3ZDRTS.js +0 -70
  497. package/dist/chunk-5ZTVJSYI.js +0 -834
  498. package/dist/chunk-5ZTVJSYI.js.map +0 -7
  499. package/dist/chunk-6JYQGZ3Y.js +0 -446
  500. package/dist/chunk-6OUBUUC2.js +0 -626
  501. package/dist/chunk-6OUBUUC2.js.map +0 -7
  502. package/dist/chunk-6PNPHACF.js +0 -1652
  503. package/dist/chunk-6PNPHACF.js.map +0 -7
  504. package/dist/chunk-7JRDJNLR.js +0 -263
  505. package/dist/chunk-7PIHRWGG.js +0 -102
  506. package/dist/chunk-7PJNKPQB.js +0 -275
  507. package/dist/chunk-AGLAYNXP.js +0 -170
  508. package/dist/chunk-B7VDZ6VF.js +0 -399
  509. package/dist/chunk-B7VDZ6VF.js.map +0 -7
  510. package/dist/chunk-BGTBRAJ6.js +0 -50
  511. package/dist/chunk-BNAO6N5X.js +0 -2899
  512. package/dist/chunk-BQHPJY2M.js +0 -347
  513. package/dist/chunk-BQHPJY2M.js.map +0 -7
  514. package/dist/chunk-BZTWTH4Y.js +0 -87
  515. package/dist/chunk-BZTWTH4Y.js.map +0 -7
  516. package/dist/chunk-CY4RQ5L6.js +0 -1710
  517. package/dist/chunk-D565DNJD.js +0 -236
  518. package/dist/chunk-DH3LAQKT.js +0 -384
  519. package/dist/chunk-DHPLHIVP.js +0 -498
  520. package/dist/chunk-E3VF4RHJ.js +0 -381
  521. package/dist/chunk-ECIBJXFT.js +0 -352
  522. package/dist/chunk-EGPNRSPF.js +0 -292
  523. package/dist/chunk-FACITNG5.js +0 -142
  524. package/dist/chunk-GNS6CQMA.js +0 -119
  525. package/dist/chunk-H3N4KYKL.js +0 -2327
  526. package/dist/chunk-H3VWJH4U.js +0 -14
  527. package/dist/chunk-HEVKBSN6.js +0 -222
  528. package/dist/chunk-HEVKBSN6.js.map +0 -7
  529. package/dist/chunk-HQUYAZQY.js +0 -514
  530. package/dist/chunk-IIT367QZ.js +0 -473
  531. package/dist/chunk-IUBBQPO2.js +0 -146
  532. package/dist/chunk-IUBBQPO2.js.map +0 -7
  533. package/dist/chunk-J4USU73L.js +0 -26
  534. package/dist/chunk-JNITUVXP.js +0 -41
  535. package/dist/chunk-JNITUVXP.js.map +0 -7
  536. package/dist/chunk-JVPWIVDT.js +0 -1812
  537. package/dist/chunk-KU7YH7MV.js +0 -217
  538. package/dist/chunk-KZILNGAV.js +0 -187
  539. package/dist/chunk-KZILNGAV.js.map +0 -7
  540. package/dist/chunk-LSEFWW72.js +0 -94
  541. package/dist/chunk-LSEFWW72.js.map +0 -7
  542. package/dist/chunk-M3J4MINX.js +0 -783
  543. package/dist/chunk-M3J4MINX.js.map +0 -7
  544. package/dist/chunk-M66VDGSH.js +0 -272
  545. package/dist/chunk-MJN6RDXB.js +0 -302
  546. package/dist/chunk-MPNEZ6EL.js +0 -31
  547. package/dist/chunk-MPSLUEI4.js +0 -314
  548. package/dist/chunk-MPSLUEI4.js.map +0 -7
  549. package/dist/chunk-NIXFCC7X.js +0 -368
  550. package/dist/chunk-NODQZTWK.js +0 -276
  551. package/dist/chunk-NRYHIWBS.js +0 -1942
  552. package/dist/chunk-NRYHIWBS.js.map +0 -7
  553. package/dist/chunk-NUWJ4RN7.js +0 -465
  554. package/dist/chunk-NVTJ5AUT.js +0 -1102
  555. package/dist/chunk-NVTJ5AUT.js.map +0 -7
  556. package/dist/chunk-NZRMHM76.js +0 -158
  557. package/dist/chunk-OOWXMY7U.js +0 -55
  558. package/dist/chunk-OTTMHVYH.js +0 -787
  559. package/dist/chunk-QDX2XUNF.js +0 -58
  560. package/dist/chunk-QYXCHZ6U.js +0 -4282
  561. package/dist/chunk-QYXCHZ6U.js.map +0 -7
  562. package/dist/chunk-R6NM2HSH.js +0 -556
  563. package/dist/chunk-RJOY6A74.js +0 -56
  564. package/dist/chunk-ROMW4AK2.js +0 -102
  565. package/dist/chunk-RR5U35N7.js +0 -230
  566. package/dist/chunk-RR5U35N7.js.map +0 -7
  567. package/dist/chunk-RVKADD4L.js +0 -148
  568. package/dist/chunk-RVKADD4L.js.map +0 -7
  569. package/dist/chunk-RZGEKL77.js +0 -117
  570. package/dist/chunk-S5ZCK44Z.js +0 -54
  571. package/dist/chunk-SNRIVNQ3.js +0 -176
  572. package/dist/chunk-STI7BO3P.js +0 -2681
  573. package/dist/chunk-TAM7UCAI.js +0 -263
  574. package/dist/chunk-TDKMBQSM.js +0 -5070
  575. package/dist/chunk-TKW5TW4Z.js +0 -21449
  576. package/dist/chunk-TKW5TW4Z.js.map +0 -7
  577. package/dist/chunk-TQTYW66I.js +0 -2784
  578. package/dist/chunk-U3NTH4CS.js +0 -54
  579. package/dist/chunk-UEGQVQD6.js +0 -34
  580. package/dist/chunk-ULESDMUT.js +0 -480
  581. package/dist/chunk-UUKSL7QC.js +0 -134
  582. package/dist/chunk-VUPWQCDR.js +0 -194
  583. package/dist/chunk-W76X6W73.js +0 -100
  584. package/dist/chunk-W7OS7BNM.js +0 -203
  585. package/dist/chunk-WKNI3HRQ.js +0 -39
  586. package/dist/chunk-WTTD6DUL.js +0 -6364
  587. package/dist/chunk-WXPFMVU6.js +0 -299
  588. package/dist/chunk-XNWUI5VL.js +0 -37
  589. package/dist/chunk-YBLTSYQV.js +0 -216
  590. package/dist/chunk-YBLTSYQV.js.map +0 -7
  591. package/dist/chunk-Z7VDFWIP.js +0 -126
  592. package/dist/chunk-Z7VDFWIP.js.map +0 -7
  593. package/dist/chunk-ZEKIUYN3.js +0 -448
  594. package/dist/cohort-OWLNJZVH.js +0 -75
  595. package/dist/condition-L2IXP6WH.js +0 -332
  596. package/dist/controls-2S5QVWUC.js +0 -39
  597. package/dist/controls.btns-AP67YWKW.js +0 -9
  598. package/dist/controls.config-3AJKR4ZZ.js +0 -39
  599. package/dist/correlation-DXTAWSLU.js +0 -102
  600. package/dist/cuminc-WQB6FHVS.js +0 -1148
  601. package/dist/cuminc-WQB6FHVS.js.map +0 -7
  602. package/dist/cuminc.integration.spec-WAYRLHUH.js +0 -678
  603. package/dist/customdata.inputui-7WH2NJGB.js +0 -289
  604. package/dist/dataDownload-HM4UYOBO.js +0 -330
  605. package/dist/dataDownload-HM4UYOBO.js.map +0 -7
  606. package/dist/dataDownload.integration.spec-F5CO4BWA.js +0 -193
  607. package/dist/databrowser.ui-E2YOG3L4.js +0 -432
  608. package/dist/dictionary-EEPTFDYD.js +0 -118
  609. package/dist/dnaMethylation-N3WNK6XA.js +0 -38
  610. package/dist/dnaMethylation.integration.spec-AIYRTFMR.js +0 -203
  611. package/dist/dofetch-YKYPEJTQ.js +0 -51
  612. package/dist/e2pca-JEZIGVB2.js +0 -350
  613. package/dist/ep-5FMH2MLV.js +0 -1256
  614. package/dist/expclust.gdc.spec-FR26VSUA.js +0 -307
  615. package/dist/facet-5YYY3MUN.js +0 -521
  616. package/dist/facet-5YYY3MUN.js.map +0 -7
  617. package/dist/gb-WGEVO7L2.js +0 -88
  618. package/dist/geneExpClustering-DHE6XJHV.js +0 -249
  619. package/dist/geneExpression-5NWQXMJ3.js +0 -313
  620. package/dist/geneExpression-VWUMM2LU.js +0 -38
  621. package/dist/geneExpression.unit.spec-HBU3WTZ4.js +0 -102
  622. package/dist/geneORA-3VWFWDYI.js +0 -278
  623. package/dist/geneRanking-PKDVD5OD.js +0 -553
  624. package/dist/geneVariant-IFIJQXH4.js +0 -39
  625. package/dist/geneVariant-WZSOG4GI.js +0 -41
  626. package/dist/geneVariant.integration.spec-6KQMWVHR.js +0 -198
  627. package/dist/genefusion.ui-C4NTALL3.js +0 -308
  628. package/dist/geneset-RJAULSKC.js +0 -208
  629. package/dist/genomeBrowser.spec-42OTTMGO.js +0 -281
  630. package/dist/grin2-26O6YDDY.js +0 -75
  631. package/dist/grin2-FT5BQJMB.js +0 -1143
  632. package/dist/hierCluster-GJPPMFNR.js +0 -59
  633. package/dist/hierCluster-HMJF3PBE.js +0 -63
  634. package/dist/hierCluster.config-TAS7XKTU.js +0 -40
  635. package/dist/hierCluster.integration.spec-RLHQKX65.js +0 -488
  636. package/dist/hierCluster.interactivity-IKTAJ6CU.js +0 -54
  637. package/dist/hierCluster.renderers-I6WFZRNW.js +0 -21
  638. package/dist/imagePlot-N4OXNMVA.js +0 -163
  639. package/dist/imagePlot-N4OXNMVA.js.map +0 -7
  640. package/dist/importPlot-VMYXDP66.js +0 -8
  641. package/dist/isoformExpression-2KV64KMN.js +0 -40
  642. package/dist/isoformExpression.unit.spec-RG2VWEMG.js +0 -242
  643. package/dist/junction-VO4IGMW2.js +0 -41
  644. package/dist/junction.customTerm-EFMHHVWA.js +0 -18
  645. package/dist/junction.unit.spec-NB24MR2B.js +0 -187
  646. package/dist/launch.adhoc-R3MO3VXK.js +0 -42
  647. package/dist/leftlabel.sample-SI6KMULD.js +0 -263
  648. package/dist/lollipop-XIVE4ANX.js +0 -171
  649. package/dist/maf-WRHD4OJF.js +0 -459
  650. package/dist/maf-WRHD4OJF.js.map +0 -7
  651. package/dist/maftimeline-IE6YKV7Y.js +0 -593
  652. package/dist/matrix-ALBCAZP5.js +0 -58
  653. package/dist/matrix-W72XRUZD.js +0 -63
  654. package/dist/matrix.cells-DEEUWC74.js +0 -28
  655. package/dist/matrix.config-JYXQOXDT.js +0 -41
  656. package/dist/matrix.data-ENXNM6RP.js +0 -25
  657. package/dist/matrix.dom-F7AN3QGE.js +0 -11
  658. package/dist/matrix.groups-EXSNNESB.js +0 -27
  659. package/dist/matrix.integration.spec-BW6U6PIW.js +0 -3072
  660. package/dist/matrix.interactivity-G6AL566T.js +0 -42
  661. package/dist/matrix.layout-UBUPIJ3R.js +0 -44
  662. package/dist/matrix.legend-S3P4F2DG.js +0 -22
  663. package/dist/matrix.renderers-IXFGXHJQ.js +0 -38
  664. package/dist/matrix.serieses-THHXUAPM.js +0 -21
  665. package/dist/matrix.sort-WJV6LIZI.js +0 -27
  666. package/dist/matrix.sort.unit.spec-LGMIL2LR.js +0 -472
  667. package/dist/matrix.sorterUi-VXVCOKEZ.js +0 -18
  668. package/dist/matrix.sorterUi.unit.spec-CWSEJ62U.js +0 -342
  669. package/dist/mavb-SXGKASQ5.js +0 -732
  670. package/dist/mds.fimo-EDOT3TDN.js +0 -518
  671. package/dist/mds.samplescatterplot-IXHNABKB.js +0 -1550
  672. package/dist/mds.survivalplot-KTTMHHII.js +0 -483
  673. package/dist/numericDictTermCluster-H4JSPW22.js +0 -65
  674. package/dist/oncomatrix-O4EMNUOT.js +0 -295
  675. package/dist/oncomatrix.spec-BME6CQWF.js +0 -448
  676. package/dist/plot.2dvaf-FDM4KXGT.js +0 -377
  677. package/dist/plot.app-UNUXG7ND.js +0 -41
  678. package/dist/plot.barplot-R333TMG2.js +0 -102
  679. package/dist/plot.boxplot-KQTYGUN3.js +0 -152
  680. package/dist/plot.brainImaging-YBYMHCEG.js +0 -51
  681. package/dist/plot.disco-CMDKRSOM.js +0 -102
  682. package/dist/plot.dzi-YAZA6RQS.js +0 -33
  683. package/dist/plot.ssgq-YKCOEXZP.js +0 -139
  684. package/dist/plot.vaf2cov-3TLMTFZS.js +0 -259
  685. package/dist/plot.wsi-7ADVYTQS.js +0 -36
  686. package/dist/polar2-O5SHVLP4.js +0 -237
  687. package/dist/profileForms-RLB6SMPQ.js +0 -940
  688. package/dist/profileForms-RLB6SMPQ.js.map +0 -7
  689. package/dist/profilePlot-AP52VLLO.js +0 -54
  690. package/dist/proteinView-S7WDBMQU.js +0 -1568
  691. package/dist/proteomeCohortCompare-ERVUM7RO.js +0 -799
  692. package/dist/pseudbulk.unit.spec-VSH7IM3R.js +0 -91
  693. package/dist/pseudobulk-7UKRLKQI.js +0 -40
  694. package/dist/qualitative-2D7MC4V5.js +0 -43
  695. package/dist/qualitative-2INAKDTJ.js +0 -220
  696. package/dist/radar2-ELVGQFZE.js +0 -332
  697. package/dist/radarFacility2-SDAZHGNG.js +0 -340
  698. package/dist/regression-CE54AQMY.js +0 -56
  699. package/dist/regression.inputs-SMC5CNPY.js +0 -48
  700. package/dist/regression.inputs.term-XS54IQC2.js +0 -48
  701. package/dist/regression.inputs.values.table-LNPM3MX5.js +0 -45
  702. package/dist/regression.integration.spec-6QSMYPWJ.js +0 -784
  703. package/dist/regression.integration.spec-6QSMYPWJ.js.map +0 -7
  704. package/dist/regression.results-25ZRRDEE.js +0 -40
  705. package/dist/regression.spec-EDWHFRPY.js +0 -708
  706. package/dist/render-SEB6GFXQ.js +0 -38
  707. package/dist/report-U6L3KBYG.js +0 -222
  708. package/dist/sampleView-QAAJ26KT.js +0 -48
  709. package/dist/samplelst-KYRXJSZN.js +0 -111
  710. package/dist/samplematrix-STLF2QA5.js +0 -2198
  711. package/dist/sc-HL6YSMDX.js +0 -86
  712. package/dist/scatter-BSGDMOC2.js +0 -851
  713. package/dist/scatter-BSGDMOC2.js.map +0 -7
  714. package/dist/selectGenomeWithTklst-4NHQDTE6.js +0 -134
  715. package/dist/singleCellCellType-3E2IU42J.js +0 -38
  716. package/dist/singleCellCellType.unit.spec-MC7ZRSMW.js +0 -159
  717. package/dist/singleCellGeneExpression-53UUGYTK.js +0 -38
  718. package/dist/singleCellGeneExpression.unit.spec-QSLTXHFE.js +0 -153
  719. package/dist/singleCellPlot-JDSARDRV.js +0 -54
  720. package/dist/singlecell-IJR7BJYT.js +0 -1572
  721. package/dist/singlecell-OK6GJFWL.js +0 -86
  722. package/dist/snp-H4KJEEOE.js +0 -38
  723. package/dist/snp.unit.spec-2Y4A3XYI.js +0 -176
  724. package/dist/snplocus-4GG6VTWX.js +0 -208
  725. package/dist/spliceevent.a53ss.diagram-JZNRC5UC.js +0 -151
  726. package/dist/spliceevent.exonskip.diagram-H54N7ZKY.js +0 -283
  727. package/dist/spliceevent.noeventdiagram-II753XAK.js +0 -460
  728. package/dist/ssGSEA-JPJ3C4JI.js +0 -38
  729. package/dist/ssGSEA.unit.spec-45F5OCDK.js +0 -88
  730. package/dist/stattable-MDABSW3F.js +0 -90
  731. package/dist/stattable-MDABSW3F.js.map +0 -7
  732. package/dist/studyCatalog-O3VGIKDM.js +0 -358
  733. package/dist/summarizeCnvGeneexp-55DNXHXA.js +0 -163
  734. package/dist/summarizeGeneexpSurvival-VLO4DC5M.js +0 -110
  735. package/dist/summarizeMutationCnv-QX7BADYL.js +0 -164
  736. package/dist/summarizeMutationDiagnosis-MHFM7RX6.js +0 -40
  737. package/dist/summarizeMutationSurvival-G4KHSUBN.js +0 -99
  738. package/dist/summary-PJYRCQNY.js +0 -49
  739. package/dist/summary.integration.spec-KPKROD6L.js +0 -414
  740. package/dist/summaryInput-TOAL53EP.js +0 -231
  741. package/dist/sunburst-IGIV2RBE.js +0 -284
  742. package/dist/survival-DINCIWW7.js +0 -58
  743. package/dist/survival-RKV5BPDK.js +0 -1239
  744. package/dist/survival-RKV5BPDK.js.map +0 -7
  745. package/dist/survival.integration.spec-7ZYBBZKT.js +0 -958
  746. package/dist/svgraph-EUEZWGVR.js +0 -1387
  747. package/dist/svmr-B24LODSC.js +0 -3842
  748. package/dist/table-XSJJ3UZV.js +0 -200
  749. package/dist/table-XSJJ3UZV.js.map +0 -7
  750. package/dist/termCollection-IAB3425K.js +0 -38
  751. package/dist/termCollection-LGEGHZSJ.js +0 -257
  752. package/dist/termCollection.unit.spec-4TIRHC44.js +0 -304
  753. package/dist/termCollectionFractionSelection-35YKAOUY.js +0 -47
  754. package/dist/termCollectionFractionSelection.unit.spec-SUFEIKJZ.js +0 -193
  755. package/dist/termInfo-6MJDJSDW.js +0 -9
  756. package/dist/tk-25EJJDRK.js +0 -46
  757. package/dist/tk-4E3XJ7CO.js +0 -1127
  758. package/dist/tp.ui-VGA62NFM.js +0 -1459
  759. package/dist/tvs.density-G56327WY.js +0 -19
  760. package/dist/tvs.dt-DFW36WKO.js +0 -39
  761. package/dist/tvs.dtcnv.categorical-ZP33EO3A.js +0 -40
  762. package/dist/tvs.dtcnv.continuous-FJTMQF4J.js +0 -72
  763. package/dist/tvs.dtfusion-FTDQWNKM.js +0 -40
  764. package/dist/tvs.dtitd-W5VEECJ2.js +0 -40
  765. package/dist/tvs.dtsnvindel-UOXSLCDZ.js +0 -40
  766. package/dist/tvs.dtsv-HWCPRVBO.js +0 -40
  767. package/dist/tvs.numeric-7TGKWQYU.js +0 -22
  768. package/dist/tvs.samplelst-OWD22ITS.js +0 -104
  769. package/dist/tvs.termCollection-27BWABYK.js +0 -129
  770. package/dist/violin-2IAVZGFF.js +0 -46
  771. package/dist/violin.integration.spec-JVODKUCL.js +0 -1425
  772. package/dist/violin.interactivity-STOCZMVN.js +0 -38
  773. package/dist/violin.renderer-MKDTJ3EX.js +0 -40
  774. package/dist/vocabulary-4IHU6DNN.js +0 -41
  775. /package/dist/{2dmaf-RRV3ORZR.js.map → 2dmaf-Y2MBOXHL.js.map} +0 -0
  776. /package/dist/{AIProjectAdmin-DKLEFCGX.js.map → AIProjectAdmin-2W4WNV65.js.map} +0 -0
  777. /package/dist/{AppHeader-WQ2F7HZY.js.map → AppHeader-6WM66GKP.js.map} +0 -0
  778. /package/dist/{BoxPlot-5JQCYENZ.js.map → BoxPlot-AF72DMSS.js.map} +0 -0
  779. /package/dist/{DE-DAW6ZKM7.js.map → DE-AABMOSEE.js.map} +0 -0
  780. /package/dist/{DifferentialAnalysis-SETJAZEN.js.map → DifferentialAnalysis-NBC222Q6.js.map} +0 -0
  781. /package/dist/{Disco-QEBEVQS2.js.map → Disco-B6E3ALAV.js.map} +0 -0
  782. /package/dist/{Disco.UI-OYVL7UBI.js.map → Disco.UI-KGFIQHXC.js.map} +0 -0
  783. /package/dist/{DmrPlot-CWBQDZL7.js.map → DmrPlot-R3S4PCAE.js.map} +0 -0
  784. /package/dist/{DziViewer-6737GC22.js.map → DziViewer-QYLZ4EMQ.js.map} +0 -0
  785. /package/dist/{GB-5PYCR4SV.js.map → GB-PV4RI5DG.js.map} +0 -0
  786. /package/dist/{GSEA-6UKMI6GY.js.map → GSEA-DHUOROST.js.map} +0 -0
  787. /package/dist/{GeneExpInput-2N62XM7Z.js.map → GeneExpInput-RESMBEM3.js.map} +0 -0
  788. /package/dist/{Geomap-ANMR32HE.js.map → Geomap-2WACSP77.js.map} +0 -0
  789. /package/dist/{HicApp-WHPUPHEM.js.map → HicApp-3FJEZXAI.js.map} +0 -0
  790. /package/dist/{IDCViewer-FWXRE4AX.js.map → IDCViewer-MIRQEK4N.js.map} +0 -0
  791. /package/dist/{NumContEditor.unit.spec-5GTWUJEL.js.map → NumContEditor.unit.spec-PROGQHTU.js.map} +0 -0
  792. /package/dist/{NumCustomBinEditor-GM2OJMOX.js.map → NumCustomBinEditor-QS3IPKIQ.js.map} +0 -0
  793. /package/dist/{NumRegularBinEditor-CZYITY5L.js.map → NumRegularBinEditor-RJKB3G3V.js.map} +0 -0
  794. /package/dist/{NumericDensity-JSOFOEH2.js.map → NumericDensity-3A7KTA7Y.js.map} +0 -0
  795. /package/dist/{NumericHandler-UZOGKPKB.js.map → NumericHandler-RG5XZMBU.js.map} +0 -0
  796. /package/dist/{NumericHandler.unit.spec-X2DAED4O.js.map → NumericHandler.unit.spec-RTD7AZNE.js.map} +0 -0
  797. /package/dist/{ProteomeInput-GBVCLNS7.js.map → ProteomeInput-6A7UB4CI.js.map} +0 -0
  798. /package/dist/{RunChart2-N4JPWNVV.js.map → RunChart2-YEAOBR2L.js.map} +0 -0
  799. /package/dist/{SC-RCZT5BRP.js.map → SC-C3MJQBI5.js.map} +0 -0
  800. /package/dist/{WsiSamplesPlot-DYSFMD22.js.map → WsiSamplesPlot-ET7LGNJW.js.map} +0 -0
  801. /package/dist/{adSandbox-5BUDCAER.js.map → adSandbox-6LGHUXPX.js.map} +0 -0
  802. /package/dist/{animatedBubbleChart-N6MBJ4X3.js.map → animatedBubbleChart-VJ6EQDQP.js.map} +0 -0
  803. /package/dist/{app-O64TGDFH.js.map → app-PRLLUIAA.js.map} +0 -0
  804. /package/dist/{app-Y2STUISK.js.map → app-WR6PQ2YK.js.map} +0 -0
  805. /package/dist/{bam-2EOABVGT.js.map → bam-EXBXKUSE.js.map} +0 -0
  806. /package/dist/{barchart-UHCTYRMJ.js.map → barchart-FSIB3IZZ.js.map} +0 -0
  807. /package/dist/{barchart.data-LSK2P2PR.js.map → barchart.data-VBSWS5N7.js.map} +0 -0
  808. /package/dist/{barchart.events-Y4H2GADS.js.map → barchart.events-F4HSVH6M.js.map} +0 -0
  809. /package/dist/{barchart.integration.spec-BFGZFECA.js.map → barchart.integration.spec-AXE7BRKX.js.map} +0 -0
  810. /package/dist/{barchart2-VIZKZRMP.js.map → barchart2-DRNQQJE2.js.map} +0 -0
  811. /package/dist/{block-BGSSF6XP.js.map → block-J3A3RIGS.js.map} +0 -0
  812. /package/dist/{block.init-H7RKUIHG.js.map → block.init-MQKMDKKW.js.map} +0 -0
  813. /package/dist/{block.mds.expressionrank-MA3HGT7S.js.map → block.mds.expressionrank-ZQEPPDEL.js.map} +0 -0
  814. /package/dist/{block.mds.geneboxplot-CWT5DM5T.js.map → block.mds.geneboxplot-VJTIMZ6H.js.map} +0 -0
  815. /package/dist/{block.mds.junction-P4I7O73X.js.map → block.mds.junction-VTAMQ2CW.js.map} +0 -0
  816. /package/dist/{block.mds.svcnv-NSPEY43S.js.map → block.mds.svcnv-WG7WY3CS.js.map} +0 -0
  817. /package/dist/{block.svg-DP4G3LNQ.js.map → block.svg-YTWYGSGO.js.map} +0 -0
  818. /package/dist/{block.tk.aicheck-EBLTOWKZ.js.map → block.tk.aicheck-L4M55U63.js.map} +0 -0
  819. /package/dist/{block.tk.ase-X7WKQOFS.js.map → block.tk.ase-3OBVSGWM.js.map} +0 -0
  820. /package/dist/{block.tk.bam-OIP3TS3N.js.map → block.tk.bam-QUCP3HST.js.map} +0 -0
  821. /package/dist/{block.tk.bedgraphdot-2DDF55J3.js.map → block.tk.bedgraphdot-BGAH5YPF.js.map} +0 -0
  822. /package/dist/{block.tk.bigwig.ui-S2SMAEXM.js.map → block.tk.bigwig.ui-2MG6VMOE.js.map} +0 -0
  823. /package/dist/{block.tk.hicstraw-4OIG4TBZ.js.map → block.tk.hicstraw-MDQHFWBB.js.map} +0 -0
  824. /package/dist/{block.tk.junction-52OWEQUN.js.map → block.tk.junction-PBCJTAFX.js.map} +0 -0
  825. /package/dist/{block.tk.junction.textmatrixui-64YOSZLW.js.map → block.tk.junction.textmatrixui-FJR76QBO.js.map} +0 -0
  826. /package/dist/{block.tk.ld-3AMNHBDY.js.map → block.tk.ld-ISL7K3DH.js.map} +0 -0
  827. /package/dist/{block.tk.menu-4724DJXL.js.map → block.tk.menu-VQW3FUAF.js.map} +0 -0
  828. /package/dist/{block.tk.pgv-2SIOPWYI.js.map → block.tk.pgv-RMXDF3XD.js.map} +0 -0
  829. /package/dist/{brainImaging-D43CQQN6.js.map → brainImaging-F4GZRF53.js.map} +0 -0
  830. /package/dist/{brainRegions-HJ2VGL3L.js.map → brainRegions-ONUXPD7P.js.map} +0 -0
  831. /package/dist/{bubbleHeatmap-IL44M4QZ.js.map → bubbleHeatmap-ZOS2ME3T.js.map} +0 -0
  832. /package/dist/{cellTypeBubbleHeatmap-NQP7RCZO.js.map → cellTypeBubbleHeatmap-BEVDWLHJ.js.map} +0 -0
  833. /package/dist/{chunk-WTTD6DUL.js.map → chunk-2JQWA4EO.js.map} +0 -0
  834. /package/dist/{chunk-DHPLHIVP.js.map → chunk-2TZITKMT.js.map} +0 -0
  835. /package/dist/{chunk-4HZN6PMU.js.map → chunk-4BDOPNYW.js.map} +0 -0
  836. /package/dist/{chunk-ULESDMUT.js.map → chunk-4RWLKZMS.js.map} +0 -0
  837. /package/dist/{chunk-BNAO6N5X.js.map → chunk-57GCW5SF.js.map} +0 -0
  838. /package/dist/{chunk-RZGEKL77.js.map → chunk-5RUVBYLK.js.map} +0 -0
  839. /package/dist/{chunk-OOWXMY7U.js.map → chunk-5YOZ4E5H.js.map} +0 -0
  840. /package/dist/{chunk-MJN6RDXB.js.map → chunk-6N5DNN7P.js.map} +0 -0
  841. /package/dist/{chunk-M66VDGSH.js.map → chunk-AOVDTRFY.js.map} +0 -0
  842. /package/dist/{chunk-NUWJ4RN7.js.map → chunk-BIDQ4OZH.js.map} +0 -0
  843. /package/dist/{chunk-EGPNRSPF.js.map → chunk-C34UTN5M.js.map} +0 -0
  844. /package/dist/{chunk-AGLAYNXP.js.map → chunk-CLTRQZGJ.js.map} +0 -0
  845. /package/dist/{chunk-VUPWQCDR.js.map → chunk-DCR4QQ5Y.js.map} +0 -0
  846. /package/dist/{chunk-UUKSL7QC.js.map → chunk-DFHSLHXZ.js.map} +0 -0
  847. /package/dist/{chunk-WKNI3HRQ.js.map → chunk-E2GHT7RH.js.map} +0 -0
  848. /package/dist/{chunk-WXPFMVU6.js.map → chunk-E2JRANYL.js.map} +0 -0
  849. /package/dist/{chunk-DH3LAQKT.js.map → chunk-ETK36FXN.js.map} +0 -0
  850. /package/dist/{chunk-QDX2XUNF.js.map → chunk-FCOX5Q4Q.js.map} +0 -0
  851. /package/dist/{chunk-W7OS7BNM.js.map → chunk-FESRWKYY.js.map} +0 -0
  852. /package/dist/{chunk-TDKMBQSM.js.map → chunk-GMJSMF7P.js.map} +0 -0
  853. /package/dist/{chunk-H3VWJH4U.js.map → chunk-HDPL53U4.js.map} +0 -0
  854. /package/dist/{chunk-NODQZTWK.js.map → chunk-HOCICSX4.js.map} +0 -0
  855. /package/dist/{chunk-S5ZCK44Z.js.map → chunk-HV3GD2F3.js.map} +0 -0
  856. /package/dist/{chunk-RJOY6A74.js.map → chunk-IGVKT4CE.js.map} +0 -0
  857. /package/dist/{chunk-46X6AQ7Z.js.map → chunk-IMKIDF2H.js.map} +0 -0
  858. /package/dist/{chunk-6JYQGZ3Y.js.map → chunk-IQVBMLFI.js.map} +0 -0
  859. /package/dist/{chunk-XNWUI5VL.js.map → chunk-ITKMNOLR.js.map} +0 -0
  860. /package/dist/{chunk-KU7YH7MV.js.map → chunk-JABW3SRG.js.map} +0 -0
  861. /package/dist/{chunk-5T3ZDRTS.js.map → chunk-KDNYUHAH.js.map} +0 -0
  862. /package/dist/{chunk-H3N4KYKL.js.map → chunk-KSA3ND7Z.js.map} +0 -0
  863. /package/dist/{chunk-UEGQVQD6.js.map → chunk-LCRPBPKX.js.map} +0 -0
  864. /package/dist/{chunk-U3NTH4CS.js.map → chunk-MGGAWPTR.js.map} +0 -0
  865. /package/dist/{chunk-HQUYAZQY.js.map → chunk-NIZTWHGT.js.map} +0 -0
  866. /package/dist/{chunk-ZEKIUYN3.js.map → chunk-OMIUJ7JT.js.map} +0 -0
  867. /package/dist/{chunk-2GLA2SWU.js.map → chunk-ONCG5AKF.js.map} +0 -0
  868. /package/dist/{chunk-ROMW4AK2.js.map → chunk-OW5LD7S2.js.map} +0 -0
  869. /package/dist/{chunk-7PIHRWGG.js.map → chunk-PY4QOYPK.js.map} +0 -0
  870. /package/dist/{chunk-BGTBRAJ6.js.map → chunk-Q3QY7QGU.js.map} +0 -0
  871. /package/dist/{chunk-GNS6CQMA.js.map → chunk-R3ARQMM4.js.map} +0 -0
  872. /package/dist/{chunk-D565DNJD.js.map → chunk-RL3IRMOA.js.map} +0 -0
  873. /package/dist/{chunk-J4USU73L.js.map → chunk-RVRRHEUG.js.map} +0 -0
  874. /package/dist/{chunk-STI7BO3P.js.map → chunk-SMOHPEMJ.js.map} +0 -0
  875. /package/dist/{chunk-NIXFCC7X.js.map → chunk-SP7HDNXC.js.map} +0 -0
  876. /package/dist/{chunk-26APRXD3.js.map → chunk-TRQUMV4T.js.map} +0 -0
  877. /package/dist/{chunk-4KY4XKJV.js.map → chunk-UILBQKQ6.js.map} +0 -0
  878. /package/dist/{chunk-R6NM2HSH.js.map → chunk-UO7MD3XA.js.map} +0 -0
  879. /package/dist/{chunk-5RVA43MN.js.map → chunk-UONOFG2J.js.map} +0 -0
  880. /package/dist/{chunk-E3VF4RHJ.js.map → chunk-UTNJA7JC.js.map} +0 -0
  881. /package/dist/{chunk-FACITNG5.js.map → chunk-VJCJCDFI.js.map} +0 -0
  882. /package/dist/{chunk-IIT367QZ.js.map → chunk-VSSZJHOR.js.map} +0 -0
  883. /package/dist/{chunk-NZRMHM76.js.map → chunk-W2WOZNEN.js.map} +0 -0
  884. /package/dist/{chunk-CY4RQ5L6.js.map → chunk-WJTRQ3ZC.js.map} +0 -0
  885. /package/dist/{chunk-MPNEZ6EL.js.map → chunk-WWXXSQ2M.js.map} +0 -0
  886. /package/dist/{chunk-JVPWIVDT.js.map → chunk-X4QQRHFB.js.map} +0 -0
  887. /package/dist/{chunk-7JRDJNLR.js.map → chunk-X6VTVZY7.js.map} +0 -0
  888. /package/dist/{chunk-TAM7UCAI.js.map → chunk-Y2UCJ33M.js.map} +0 -0
  889. /package/dist/{chunk-5DMVORBB.js.map → chunk-Y45RZL4F.js.map} +0 -0
  890. /package/dist/{chunk-7PJNKPQB.js.map → chunk-YUURGVV3.js.map} +0 -0
  891. /package/dist/{chunk-ECIBJXFT.js.map → chunk-Z2TA7NML.js.map} +0 -0
  892. /package/dist/{chunk-OTTMHVYH.js.map → chunk-ZFJUVP2N.js.map} +0 -0
  893. /package/dist/{chunk-SNRIVNQ3.js.map → chunk-ZKMBNB5E.js.map} +0 -0
  894. /package/dist/{chunk-W76X6W73.js.map → chunk-ZPBG6CT3.js.map} +0 -0
  895. /package/dist/{chunk-TQTYW66I.js.map → chunk-ZUDSOVYT.js.map} +0 -0
  896. /package/dist/{cohort-OWLNJZVH.js.map → cohort-R743ZSCR.js.map} +0 -0
  897. /package/dist/{condition-L2IXP6WH.js.map → condition-MPZIRRGP.js.map} +0 -0
  898. /package/dist/{controls-2S5QVWUC.js.map → controls-WD5TZITZ.js.map} +0 -0
  899. /package/dist/{controls.btns-AP67YWKW.js.map → controls.btns-KCLXBXSL.js.map} +0 -0
  900. /package/dist/{controls.config-3AJKR4ZZ.js.map → controls.config-577UCREO.js.map} +0 -0
  901. /package/dist/{correlation-DXTAWSLU.js.map → correlation-OCFBDDOX.js.map} +0 -0
  902. /package/dist/{cuminc.integration.spec-WAYRLHUH.js.map → cuminc.integration.spec-V46K57GV.js.map} +0 -0
  903. /package/dist/{customdata.inputui-7WH2NJGB.js.map → customdata.inputui-2MS5ZRKC.js.map} +0 -0
  904. /package/dist/{dataDownload.integration.spec-F5CO4BWA.js.map → dataDownload.integration.spec-TEOJOMYK.js.map} +0 -0
  905. /package/dist/{databrowser.ui-E2YOG3L4.js.map → databrowser.ui-PDPFHOH7.js.map} +0 -0
  906. /package/dist/{dictionary-EEPTFDYD.js.map → dictionary-MWUQYW6W.js.map} +0 -0
  907. /package/dist/{dnaMethylation-N3WNK6XA.js.map → dnaMethylation-SNVVE2MD.js.map} +0 -0
  908. /package/dist/{dnaMethylation.integration.spec-AIYRTFMR.js.map → dnaMethylation.integration.spec-OSYZ3YDP.js.map} +0 -0
  909. /package/dist/{dofetch-YKYPEJTQ.js.map → dofetch-7R7PL4BX.js.map} +0 -0
  910. /package/dist/{e2pca-JEZIGVB2.js.map → e2pca-7FYIWR5O.js.map} +0 -0
  911. /package/dist/{ep-5FMH2MLV.js.map → ep-PTAJZLKI.js.map} +0 -0
  912. /package/dist/{expclust.gdc.spec-FR26VSUA.js.map → expclust.gdc.spec-2R7T7JPY.js.map} +0 -0
  913. /package/dist/{gb-WGEVO7L2.js.map → gb-5UFIDQWY.js.map} +0 -0
  914. /package/dist/{geneExpClustering-DHE6XJHV.js.map → geneExpClustering-QLBETGVB.js.map} +0 -0
  915. /package/dist/{geneExpression-VWUMM2LU.js.map → geneExpression-SAMLSOHQ.js.map} +0 -0
  916. /package/dist/{geneExpression-5NWQXMJ3.js.map → geneExpression-SECTPIDT.js.map} +0 -0
  917. /package/dist/{geneExpression.unit.spec-HBU3WTZ4.js.map → geneExpression.unit.spec-UNRGPJIG.js.map} +0 -0
  918. /package/dist/{geneORA-3VWFWDYI.js.map → geneORA-CCQGE7QL.js.map} +0 -0
  919. /package/dist/{geneRanking-PKDVD5OD.js.map → geneRanking-NVR7ZZIP.js.map} +0 -0
  920. /package/dist/{geneVariant-IFIJQXH4.js.map → geneVariant-5KL2J3NA.js.map} +0 -0
  921. /package/dist/{geneVariant-WZSOG4GI.js.map → geneVariant-72E5YEPJ.js.map} +0 -0
  922. /package/dist/{geneVariant.integration.spec-6KQMWVHR.js.map → geneVariant.integration.spec-7JLVYF7Q.js.map} +0 -0
  923. /package/dist/{genefusion.ui-C4NTALL3.js.map → genefusion.ui-M3IG6NUU.js.map} +0 -0
  924. /package/dist/{geneset-RJAULSKC.js.map → geneset-V2535XGY.js.map} +0 -0
  925. /package/dist/{genomeBrowser.spec-42OTTMGO.js.map → genomeBrowser.spec-TRREAQCH.js.map} +0 -0
  926. /package/dist/{grin2-26O6YDDY.js.map → grin2-6X5GCPBQ.js.map} +0 -0
  927. /package/dist/{grin2-FT5BQJMB.js.map → grin2-GOO7H3RC.js.map} +0 -0
  928. /package/dist/{hierCluster-GJPPMFNR.js.map → hierCluster-5YZOCCTV.js.map} +0 -0
  929. /package/dist/{hierCluster-HMJF3PBE.js.map → hierCluster-ZPQCUSVO.js.map} +0 -0
  930. /package/dist/{hierCluster.config-TAS7XKTU.js.map → hierCluster.config-T3Y2LS6V.js.map} +0 -0
  931. /package/dist/{hierCluster.integration.spec-RLHQKX65.js.map → hierCluster.integration.spec-PTXVQH77.js.map} +0 -0
  932. /package/dist/{hierCluster.interactivity-IKTAJ6CU.js.map → hierCluster.interactivity-JNBO3MJB.js.map} +0 -0
  933. /package/dist/{hierCluster.renderers-I6WFZRNW.js.map → hierCluster.renderers-FXDCU3PN.js.map} +0 -0
  934. /package/dist/{importPlot-VMYXDP66.js.map → importPlot-CWMBFQDD.js.map} +0 -0
  935. /package/dist/{isoformExpression-2KV64KMN.js.map → isoformExpression-ABPY2N3A.js.map} +0 -0
  936. /package/dist/{isoformExpression.unit.spec-RG2VWEMG.js.map → isoformExpression.unit.spec-KRAZBQVF.js.map} +0 -0
  937. /package/dist/{junction-VO4IGMW2.js.map → junction-XGCBNVHV.js.map} +0 -0
  938. /package/dist/{junction.customTerm-EFMHHVWA.js.map → junction.customTerm-MDBOU6I7.js.map} +0 -0
  939. /package/dist/{junction.unit.spec-NB24MR2B.js.map → junction.unit.spec-XZFUJRI3.js.map} +0 -0
  940. /package/dist/{launch.adhoc-R3MO3VXK.js.map → launch.adhoc-7FJD3XSI.js.map} +0 -0
  941. /package/dist/{leftlabel.sample-SI6KMULD.js.map → leftlabel.sample-VPOZWRVY.js.map} +0 -0
  942. /package/dist/{lollipop-XIVE4ANX.js.map → lollipop-WBOAFWWO.js.map} +0 -0
  943. /package/dist/{maftimeline-IE6YKV7Y.js.map → maftimeline-UK4MQP2D.js.map} +0 -0
  944. /package/dist/{matrix-ALBCAZP5.js.map → matrix-AT2FFTWO.js.map} +0 -0
  945. /package/dist/{matrix-W72XRUZD.js.map → matrix-AU6NPNID.js.map} +0 -0
  946. /package/dist/{matrix.cells-DEEUWC74.js.map → matrix.cells-CFSI2NWU.js.map} +0 -0
  947. /package/dist/{matrix.config-JYXQOXDT.js.map → matrix.config-VTQ6HL5L.js.map} +0 -0
  948. /package/dist/{matrix.data-ENXNM6RP.js.map → matrix.data-DBYXSWIN.js.map} +0 -0
  949. /package/dist/{matrix.dom-F7AN3QGE.js.map → matrix.dom-DDPSUNY2.js.map} +0 -0
  950. /package/dist/{matrix.groups-EXSNNESB.js.map → matrix.groups-ZFKWVNMX.js.map} +0 -0
  951. /package/dist/{matrix.integration.spec-BW6U6PIW.js.map → matrix.integration.spec-NJ2AXQAS.js.map} +0 -0
  952. /package/dist/{matrix.interactivity-G6AL566T.js.map → matrix.interactivity-HE2Q6SAO.js.map} +0 -0
  953. /package/dist/{matrix.layout-UBUPIJ3R.js.map → matrix.layout-FD5BPRCX.js.map} +0 -0
  954. /package/dist/{matrix.legend-S3P4F2DG.js.map → matrix.legend-7MIZZJVB.js.map} +0 -0
  955. /package/dist/{matrix.renderers-IXFGXHJQ.js.map → matrix.renderers-DVM4NB2R.js.map} +0 -0
  956. /package/dist/{matrix.serieses-THHXUAPM.js.map → matrix.serieses-7KYX3KAY.js.map} +0 -0
  957. /package/dist/{matrix.sort-WJV6LIZI.js.map → matrix.sort-CR3J45MQ.js.map} +0 -0
  958. /package/dist/{matrix.sort.unit.spec-LGMIL2LR.js.map → matrix.sort.unit.spec-VQ3TR4S2.js.map} +0 -0
  959. /package/dist/{matrix.sorterUi-VXVCOKEZ.js.map → matrix.sorterUi-4KYRGJT5.js.map} +0 -0
  960. /package/dist/{matrix.sorterUi.unit.spec-CWSEJ62U.js.map → matrix.sorterUi.unit.spec-IEHG3OKN.js.map} +0 -0
  961. /package/dist/{mavb-SXGKASQ5.js.map → mavb-RPRKXPTZ.js.map} +0 -0
  962. /package/dist/{mds.fimo-EDOT3TDN.js.map → mds.fimo-PZCVBD44.js.map} +0 -0
  963. /package/dist/{mds.samplescatterplot-IXHNABKB.js.map → mds.samplescatterplot-236GTHM4.js.map} +0 -0
  964. /package/dist/{mds.survivalplot-KTTMHHII.js.map → mds.survivalplot-IJHOWSZL.js.map} +0 -0
  965. /package/dist/{numericDictTermCluster-H4JSPW22.js.map → numericDictTermCluster-3HXLMURH.js.map} +0 -0
  966. /package/dist/{oncomatrix-O4EMNUOT.js.map → oncomatrix-R4OKDXSV.js.map} +0 -0
  967. /package/dist/{oncomatrix.spec-BME6CQWF.js.map → oncomatrix.spec-4Z4HKS44.js.map} +0 -0
  968. /package/dist/{plot.2dvaf-FDM4KXGT.js.map → plot.2dvaf-ZK7DAKRQ.js.map} +0 -0
  969. /package/dist/{plot.app-UNUXG7ND.js.map → plot.app-J66BA2LD.js.map} +0 -0
  970. /package/dist/{plot.barplot-R333TMG2.js.map → plot.barplot-UVRVPOKA.js.map} +0 -0
  971. /package/dist/{plot.boxplot-KQTYGUN3.js.map → plot.boxplot-DQGBDNLU.js.map} +0 -0
  972. /package/dist/{plot.brainImaging-YBYMHCEG.js.map → plot.brainImaging-WRMDYYHC.js.map} +0 -0
  973. /package/dist/{plot.disco-CMDKRSOM.js.map → plot.disco-SSGPSM7W.js.map} +0 -0
  974. /package/dist/{plot.dzi-YAZA6RQS.js.map → plot.dzi-F77KKPIJ.js.map} +0 -0
  975. /package/dist/{plot.ssgq-YKCOEXZP.js.map → plot.ssgq-FVFJOYVO.js.map} +0 -0
  976. /package/dist/{plot.vaf2cov-3TLMTFZS.js.map → plot.vaf2cov-CJSYBSPQ.js.map} +0 -0
  977. /package/dist/{plot.wsi-7ADVYTQS.js.map → plot.wsi-OSZU2PQ5.js.map} +0 -0
  978. /package/dist/{polar2-O5SHVLP4.js.map → polar2-R4ZKXKEV.js.map} +0 -0
  979. /package/dist/{profilePlot-AP52VLLO.js.map → profilePlot-JU7SFYYY.js.map} +0 -0
  980. /package/dist/{proteinView-S7WDBMQU.js.map → proteinView-VU4SVO5I.js.map} +0 -0
  981. /package/dist/{proteomeCohortCompare-ERVUM7RO.js.map → proteomeCohortCompare-2U537GOK.js.map} +0 -0
  982. /package/dist/{pseudbulk.unit.spec-VSH7IM3R.js.map → pseudbulk.unit.spec-2FDKAEVI.js.map} +0 -0
  983. /package/dist/{pseudobulk-7UKRLKQI.js.map → pseudobulk-5GBUBBOY.js.map} +0 -0
  984. /package/dist/{qualitative-2D7MC4V5.js.map → qualitative-3FTEQ7JW.js.map} +0 -0
  985. /package/dist/{qualitative-2INAKDTJ.js.map → qualitative-GJDQBD7L.js.map} +0 -0
  986. /package/dist/{radar2-ELVGQFZE.js.map → radar2-EBOTTAMC.js.map} +0 -0
  987. /package/dist/{radarFacility2-SDAZHGNG.js.map → radarFacility2-PAGNJR6D.js.map} +0 -0
  988. /package/dist/{regression-CE54AQMY.js.map → regression-XOVSVC7S.js.map} +0 -0
  989. /package/dist/{regression.inputs-SMC5CNPY.js.map → regression.inputs-LGA67ESO.js.map} +0 -0
  990. /package/dist/{regression.inputs.term-XS54IQC2.js.map → regression.inputs.term-UCQKXC5D.js.map} +0 -0
  991. /package/dist/{regression.inputs.values.table-LNPM3MX5.js.map → regression.inputs.values.table-2RRE7SMS.js.map} +0 -0
  992. /package/dist/{regression.results-25ZRRDEE.js.map → regression.results-T3HB6CBH.js.map} +0 -0
  993. /package/dist/{regression.spec-EDWHFRPY.js.map → regression.spec-W7IVCYVZ.js.map} +0 -0
  994. /package/dist/{render-SEB6GFXQ.js.map → render-2C6LWNG2.js.map} +0 -0
  995. /package/dist/{report-U6L3KBYG.js.map → report-HRGU3XKL.js.map} +0 -0
  996. /package/dist/{sampleView-QAAJ26KT.js.map → sampleView-P5JZHEKY.js.map} +0 -0
  997. /package/dist/{samplelst-KYRXJSZN.js.map → samplelst-OYQ6BASU.js.map} +0 -0
  998. /package/dist/{samplematrix-STLF2QA5.js.map → samplematrix-JC3SGO5V.js.map} +0 -0
  999. /package/dist/{sc-HL6YSMDX.js.map → sc-FTHUNDGY.js.map} +0 -0
  1000. /package/dist/{selectGenomeWithTklst-4NHQDTE6.js.map → selectGenomeWithTklst-CIETKILP.js.map} +0 -0
  1001. /package/dist/{singleCellCellType-3E2IU42J.js.map → singleCellCellType-3O3TTLM6.js.map} +0 -0
  1002. /package/dist/{singleCellCellType.unit.spec-MC7ZRSMW.js.map → singleCellCellType.unit.spec-GHBS36DB.js.map} +0 -0
  1003. /package/dist/{singleCellGeneExpression-53UUGYTK.js.map → singleCellGeneExpression-2F7F4EKK.js.map} +0 -0
  1004. /package/dist/{singleCellGeneExpression.unit.spec-QSLTXHFE.js.map → singleCellGeneExpression.unit.spec-2VGIH2NZ.js.map} +0 -0
  1005. /package/dist/{singleCellPlot-JDSARDRV.js.map → singleCellPlot-MGSS4O3L.js.map} +0 -0
  1006. /package/dist/{singlecell-OK6GJFWL.js.map → singlecell-CKC2VVJ3.js.map} +0 -0
  1007. /package/dist/{singlecell-IJR7BJYT.js.map → singlecell-QOXATRF4.js.map} +0 -0
  1008. /package/dist/{snp-H4KJEEOE.js.map → snp-OSYJO2R7.js.map} +0 -0
  1009. /package/dist/{snp.unit.spec-2Y4A3XYI.js.map → snp.unit.spec-L5ANPFO2.js.map} +0 -0
  1010. /package/dist/{snplocus-4GG6VTWX.js.map → snplocus-64MJJID2.js.map} +0 -0
  1011. /package/dist/{spliceevent.a53ss.diagram-JZNRC5UC.js.map → spliceevent.a53ss.diagram-LHRT5UPB.js.map} +0 -0
  1012. /package/dist/{spliceevent.exonskip.diagram-H54N7ZKY.js.map → spliceevent.exonskip.diagram-BGSEPGR5.js.map} +0 -0
  1013. /package/dist/{spliceevent.noeventdiagram-II753XAK.js.map → spliceevent.noeventdiagram-QGZZSKW7.js.map} +0 -0
  1014. /package/dist/{ssGSEA-JPJ3C4JI.js.map → ssGSEA-VVAZDFDT.js.map} +0 -0
  1015. /package/dist/{ssGSEA.unit.spec-45F5OCDK.js.map → ssGSEA.unit.spec-LP76RHTV.js.map} +0 -0
  1016. /package/dist/{studyCatalog-O3VGIKDM.js.map → studyCatalog-AXWH7IOH.js.map} +0 -0
  1017. /package/dist/{summarizeCnvGeneexp-55DNXHXA.js.map → summarizeCnvGeneexp-DRBIXOAP.js.map} +0 -0
  1018. /package/dist/{summarizeGeneexpSurvival-VLO4DC5M.js.map → summarizeGeneexpSurvival-4PATAUSN.js.map} +0 -0
  1019. /package/dist/{summarizeMutationCnv-QX7BADYL.js.map → summarizeMutationCnv-UGSIGZDJ.js.map} +0 -0
  1020. /package/dist/{summarizeMutationDiagnosis-MHFM7RX6.js.map → summarizeMutationDiagnosis-UATVI5BK.js.map} +0 -0
  1021. /package/dist/{summarizeMutationSurvival-G4KHSUBN.js.map → summarizeMutationSurvival-CZXGM3AA.js.map} +0 -0
  1022. /package/dist/{summary-PJYRCQNY.js.map → summary-IGTXNQ5I.js.map} +0 -0
  1023. /package/dist/{summary.integration.spec-KPKROD6L.js.map → summary.integration.spec-VFCYU2V6.js.map} +0 -0
  1024. /package/dist/{summaryInput-TOAL53EP.js.map → summaryInput-AFZSASTM.js.map} +0 -0
  1025. /package/dist/{sunburst-IGIV2RBE.js.map → sunburst-G7DBI637.js.map} +0 -0
  1026. /package/dist/{survival-DINCIWW7.js.map → survival-YOJBLMR2.js.map} +0 -0
  1027. /package/dist/{survival.integration.spec-7ZYBBZKT.js.map → survival.integration.spec-FXPCZJSS.js.map} +0 -0
  1028. /package/dist/{svgraph-EUEZWGVR.js.map → svgraph-ZSSOWI7R.js.map} +0 -0
  1029. /package/dist/{svmr-B24LODSC.js.map → svmr-FPYSMXSC.js.map} +0 -0
  1030. /package/dist/{termCollection-IAB3425K.js.map → termCollection-IY5V64IY.js.map} +0 -0
  1031. /package/dist/{termCollection-LGEGHZSJ.js.map → termCollection-SR4SP6RZ.js.map} +0 -0
  1032. /package/dist/{termCollection.unit.spec-4TIRHC44.js.map → termCollection.unit.spec-NL72AQ2P.js.map} +0 -0
  1033. /package/dist/{termCollectionFractionSelection-35YKAOUY.js.map → termCollectionFractionSelection-2LPBE224.js.map} +0 -0
  1034. /package/dist/{termCollectionFractionSelection.unit.spec-SUFEIKJZ.js.map → termCollectionFractionSelection.unit.spec-PUMGBUDN.js.map} +0 -0
  1035. /package/dist/{termInfo-6MJDJSDW.js.map → termInfo-2DR7DHXM.js.map} +0 -0
  1036. /package/dist/{tk-4E3XJ7CO.js.map → tk-COBDWIZJ.js.map} +0 -0
  1037. /package/dist/{tk-25EJJDRK.js.map → tk-N2YBXDQK.js.map} +0 -0
  1038. /package/dist/{tp.ui-VGA62NFM.js.map → tp.ui-BMK2MMIJ.js.map} +0 -0
  1039. /package/dist/{tvs.density-G56327WY.js.map → tvs.density-LMRZZO4D.js.map} +0 -0
  1040. /package/dist/{tvs.dt-DFW36WKO.js.map → tvs.dt-KL4VCW5Y.js.map} +0 -0
  1041. /package/dist/{tvs.dtcnv.categorical-ZP33EO3A.js.map → tvs.dtcnv.categorical-VGXOASJE.js.map} +0 -0
  1042. /package/dist/{tvs.dtcnv.continuous-FJTMQF4J.js.map → tvs.dtcnv.continuous-IANT7BPS.js.map} +0 -0
  1043. /package/dist/{tvs.dtfusion-FTDQWNKM.js.map → tvs.dtfusion-M5HJWCJI.js.map} +0 -0
  1044. /package/dist/{tvs.dtitd-W5VEECJ2.js.map → tvs.dtitd-KB72EDPN.js.map} +0 -0
  1045. /package/dist/{tvs.dtsnvindel-UOXSLCDZ.js.map → tvs.dtsnvindel-VGYTLO6E.js.map} +0 -0
  1046. /package/dist/{tvs.dtsv-HWCPRVBO.js.map → tvs.dtsv-KWUXW2F5.js.map} +0 -0
  1047. /package/dist/{tvs.numeric-7TGKWQYU.js.map → tvs.numeric-MQPO5XUQ.js.map} +0 -0
  1048. /package/dist/{tvs.samplelst-OWD22ITS.js.map → tvs.samplelst-3UA7XMHJ.js.map} +0 -0
  1049. /package/dist/{tvs.termCollection-27BWABYK.js.map → tvs.termCollection-LK6CVGYZ.js.map} +0 -0
  1050. /package/dist/{violin-2IAVZGFF.js.map → violin-D4EX3ZFV.js.map} +0 -0
  1051. /package/dist/{violin.integration.spec-JVODKUCL.js.map → violin.integration.spec-GBW3VBHW.js.map} +0 -0
  1052. /package/dist/{violin.interactivity-STOCZMVN.js.map → violin.interactivity-N3JVI2AQ.js.map} +0 -0
  1053. /package/dist/{violin.renderer-MKDTJ3EX.js.map → violin.renderer-2NYRUXUY.js.map} +0 -0
  1054. /package/dist/{vocabulary-4IHU6DNN.js.map → vocabulary-277KD4RO.js.map} +0 -0
@@ -1,7 +0,0 @@
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 } 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\tif (tw.q.mode == 'spline') {\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))\n\t\t\t\t\t\t\t.sort((a, b) => a - b)\n\t\t\t\t\t\t\t.join(', ')}`\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.style('display', 'none').style('margin', '3px 5px').style('padding', '3px 5px')\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
- }
@@ -1,158 +0,0 @@
1
- import {
2
- NumericDensity
3
- } from "./chunk-IUBBQPO2.js";
4
- import {
5
- Tabs
6
- } from "./chunk-TKW5TW4Z.js";
7
- import {
8
- HandlerBase
9
- } from "./chunk-LSEFWW72.js";
10
-
11
- // termsetting/handlers/NumericHandler.ts
12
- var NumericHandler = class extends HandlerBase {
13
- constructor(opts) {
14
- super(opts);
15
- this.tabs = [];
16
- this.handlerByMode = {};
17
- this.dom = {};
18
- this.opts = opts;
19
- this.termsetting = opts.termsetting;
20
- this.tw = opts.termsetting.tw;
21
- this.tabs = this.setTabData();
22
- this.density = new NumericDensity(opts);
23
- }
24
- getPillStatus() {
25
- this.tw = this.termsetting.tw;
26
- return this.tw.getStatus(this.termsetting.usecase, this.termsetting.data);
27
- }
28
- setTabData() {
29
- const self = this.termsetting;
30
- const tabs = [];
31
- const callback = async (event, tabData) => {
32
- if (event) event.stopPropagation();
33
- try {
34
- await this.setEditHandler(tabData);
35
- await this.editHandler.showEditMenu(tabData.contentHolder);
36
- } catch (e) {
37
- this.dom.errdiv.style("display", "").text(e);
38
- }
39
- };
40
- const numTabs = self.opts.numericEditMenuVersion.length;
41
- if (self.opts.numericEditMenuVersion.includes("continuous")) {
42
- tabs.push({
43
- mode: "continuous",
44
- label: self.term.type == "survival" ? "Time to Event" : "Continuous",
45
- callback,
46
- active: this.tw.q.mode === "continuous" || numTabs === 1
47
- });
48
- }
49
- if (self.opts.numericEditMenuVersion.includes("discrete")) {
50
- tabs.push({
51
- mode: "discrete",
52
- label: self.term.type == "survival" ? "Exit code" : "Discrete",
53
- callback,
54
- active: this.tw.q.mode === "discrete" || numTabs === 1
55
- });
56
- }
57
- if (self.opts.numericEditMenuVersion.includes("spline")) {
58
- tabs.push({
59
- mode: "spline",
60
- label: "Cubic spline",
61
- callback,
62
- active: this.tw.q.mode === "spline" || numTabs === 1
63
- });
64
- }
65
- if (self.opts.numericEditMenuVersion.includes("binary")) {
66
- tabs.push({
67
- mode: "binary",
68
- label: "Binary",
69
- callback,
70
- active: this.tw.q.mode === "binary" || numTabs === 1
71
- });
72
- }
73
- return tabs;
74
- }
75
- async setEditHandler(tabData) {
76
- if (!this.handlerByMode[tabData.mode]) {
77
- switch (tabData.mode) {
78
- case "continuous": {
79
- const { NumContEditor } = await import("./NumContEditor-J52RON3G.js");
80
- this.handlerByMode.continuous = new NumContEditor(this.opts, this);
81
- break;
82
- }
83
- case "discrete": {
84
- const { NumDiscreteEditor } = await import("./NumDiscreteEditor-2CAKT3Y4.js");
85
- this.handlerByMode.discrete = new NumDiscreteEditor(this.opts, this);
86
- break;
87
- }
88
- case "binary": {
89
- const { NumBinaryEditor } = await import("./NumBinaryEditor-VG5KOGDA.js");
90
- this.handlerByMode.binary = new NumBinaryEditor(this.opts, this);
91
- break;
92
- }
93
- case "spline": {
94
- const { NumSplineEditor } = await import("./NumSplineEditor-TWRL5AQQ.js");
95
- this.handlerByMode.spline = new NumSplineEditor(this.opts, this);
96
- break;
97
- }
98
- default:
99
- throw `unexpected numeric tabData.mode='${tabData.mode}'`;
100
- break;
101
- }
102
- }
103
- this.editHandler = this.handlerByMode[tabData.mode];
104
- }
105
- async showEditMenu(div) {
106
- try {
107
- this.showLoading(div);
108
- this.dom.errdiv = div.append("div").attr("class", "sja_errorbar").style("display", "none");
109
- this.tw = this.termsetting.tw;
110
- const self = this.tw;
111
- for (const t of this.tabs) {
112
- t.active = this.tabs.length === 1 || self.q.mode == t.mode || t.mode == "continuous" && !self.q.mode;
113
- }
114
- this.density_data = await this.density.setData();
115
- await this.setEditHandler(this.tabs.find((t) => t.active));
116
- this.dom.editDiv = div.append("div").attr("data-testid", "sjpp-num-ts-edit-div");
117
- this.dom.btnDiv = div.append("div").style("margin", "0px 0px 5px 5px");
118
- this.renderButtons(this.dom.btnDiv);
119
- if (this.tabs.length > 1) {
120
- this.dom.topBar = this.dom.editDiv.append("div").style("padding", "10px");
121
- this.dom.topBar.append("span").html("Use as&nbsp;");
122
- new Tabs({
123
- holder: this.dom.topBar.append("div").style("display", "inline-block"),
124
- contentHolder: this.dom.editDiv.append("div"),
125
- noTopContentStyle: true,
126
- tabs: this.tabs
127
- }).main();
128
- } else {
129
- await this.editHandler.showEditMenu(this.dom.editDiv);
130
- }
131
- this.dom.loadingDiv.style("display", "none");
132
- } catch (e) {
133
- this.hideLoading();
134
- this.dom.errdiv.style("display", "").text(typeof e == "object" ? e.message || e.error || e : e);
135
- }
136
- }
137
- renderButtons(btnDiv) {
138
- btnDiv.append("button").style("margin", "5px").attr("data-testId", "sjpp_numeric_edit_apply").html("Apply").on("click", () => {
139
- this.termsetting.q = this.editHandler.getEditedQ();
140
- this.termsetting.dom.tip.hide();
141
- this.termsetting.api.runCallback();
142
- });
143
- btnDiv.append("button").style("margin", "5px").attr("data-testId", "sjpp_numeric_edit_reset").html("Reset").on("click", () => {
144
- this.editHandler.undoEdits();
145
- });
146
- }
147
- destroy() {
148
- for (const s of Object.values(this.dom)) {
149
- if (typeof s.remove == "function") s.remove();
150
- }
151
- this.density.destroy();
152
- }
153
- };
154
-
155
- export {
156
- NumericHandler
157
- };
158
- //# sourceMappingURL=chunk-NZRMHM76.js.map
@@ -1,55 +0,0 @@
1
- import {
2
- colorinframe
3
- } from "./chunk-TKW5TW4Z.js";
4
- import {
5
- IN_frame,
6
- OUT_frame
7
- } from "./chunk-6PNPHACF.js";
8
-
9
- // src/spliceevent.phrase.js
10
- function spliceevent_phrase_default(evt) {
11
- const htmls = [];
12
- if (evt.isaltexon || evt.isskipexon) {
13
- const exonstart = Math.min(...evt.skippedexon);
14
- const exonstop = Math.max(...evt.skippedexon);
15
- htmls.push(
16
- '<div style="display:inline-block">' + (exonstart == exonstop ? "exon " + (exonstart + 1) : "exons " + (exonstart + 1) + "-" + (exonstop + 1)) + " " + (evt.isaltexon ? "alternative usage" : "skipping") + "</div>"
17
- );
18
- if (evt.isaltexon) {
19
- htmls.push(
20
- "<div class=sja_tinylogo_body>" + evt.gmB.isoform + ", " + evt.gmA.isoform + "</div><div class=sja_tinylogo_head>ISOFORMS</div>"
21
- );
22
- } else {
23
- htmls.push("<div class=sja_tinylogo_body>" + evt.gm.isoform + "</div><div class=sja_tinylogo_head>ISOFORM</div>");
24
- }
25
- if (evt.junctionB.data) {
26
- htmls.push(
27
- "<div class=sja_tinylogo_body>" + evt.junctionB.data.length + "</div><div class=sja_tinylogo_head>SAMPLE" + (evt.junctionB.data.length > 1 ? "S" : "") + "</div>"
28
- );
29
- }
30
- htmls.push("<div class=sja_tinylogo_body>" + evt.percentage + " %</div><div class=sja_tinylogo_head>PERCENT</div>");
31
- if (evt.framenocheck) {
32
- if (evt.utr3) {
33
- htmls.push(`<div class=sja_tinylogo_body style="background-color:#ededed">3' UTR</div>`);
34
- } else if (evt.utr5) {
35
- htmls.push(`<div class=sja_tinylogo_body style="background-color:#ededed">5' UTR</div>`);
36
- }
37
- } else if (evt.frame == IN_frame) {
38
- htmls.push(
39
- '<div class=sja_tinylogo_body style="background-color:' + colorinframe + ';color:white">IN</div><div class=sja_tinylogo_head>FRAME</div>'
40
- );
41
- } else if (evt.frame == OUT_frame) {
42
- htmls.push("<div class=sja_tinylogo_body>OUT</div><div class=sja_tinylogo_head>FRAME</div>");
43
- } else {
44
- htmls.push("<div class=sja_tinylogo_body>?</div><div class=sja_tinylogo_head>FRAME</div>");
45
- }
46
- } else {
47
- return "unknown event type!!";
48
- }
49
- return htmls.join(" ");
50
- }
51
-
52
- export {
53
- spliceevent_phrase_default
54
- };
55
- //# sourceMappingURL=chunk-OOWXMY7U.js.map