@sjcrh/proteinpaint-client 2.193.0 → 2.195.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 (916) hide show
  1. package/dist/2dmaf-GTD3AXGT.js +1373 -0
  2. package/dist/AIProjectAdmin-ALMSVHFX.js +958 -0
  3. package/dist/AppHeader-RK2YRITI.js +835 -0
  4. package/dist/BoxPlot-6ZXLPA5Q.js +1217 -0
  5. package/dist/CorrelationVolcano-PJB3QCXB.js +619 -0
  6. package/dist/DE-MEWV5RTV.js +95 -0
  7. package/dist/DEinput-I62VHD2U.js +301 -0
  8. package/dist/DEinput-I62VHD2U.js.map +7 -0
  9. package/dist/DifferentialAnalysis-7L3CDPVB.js +245 -0
  10. package/dist/Disco-FCS7B5DO.js +3297 -0
  11. package/dist/Disco.UI-BFJ5XFAT.js +249 -0
  12. package/dist/DmrPlot-362PCE7L.js +642 -0
  13. package/dist/GB-SX4JENAW.js +1353 -0
  14. package/dist/GB-SX4JENAW.js.map +7 -0
  15. package/dist/GeneExpInput-EHWHQTRV.js +367 -0
  16. package/dist/HicApp-UE4DCUKX.js +2250 -0
  17. package/dist/IDCViewer-EDF5XJ63.js +10455 -0
  18. package/dist/IDCViewer-EDF5XJ63.js.map +7 -0
  19. package/dist/NumBinaryEditor-3TAAJNYY.js +271 -0
  20. package/dist/NumBinaryEditor.unit.spec-6776472M.js +286 -0
  21. package/dist/NumContEditor-WLFXTY4M.js +109 -0
  22. package/dist/NumContEditor.unit.spec-KG5SCOIQ.js +169 -0
  23. package/dist/NumCustomBinEditor-EKKNCLKI.js +38 -0
  24. package/dist/NumCustomBinEditor.unit.spec-LSLSKQDW.js +284 -0
  25. package/dist/NumDiscreteEditor-X2MLECNT.js +179 -0
  26. package/dist/NumDiscreteEditor.unit.spec-BZG7P4C7.js +202 -0
  27. package/dist/NumRegularBinEditor-CAGJ4ZWD.js +38 -0
  28. package/dist/NumRegularBinEditor.unit.spec-GJSJC4DK.js +227 -0
  29. package/dist/NumSplineEditor-ND3RC7R6.js +198 -0
  30. package/dist/NumSplineEditor.unit.spec-F67JQKPY.js +199 -0
  31. package/dist/NumericDensity-VW7NIZU7.js +38 -0
  32. package/dist/NumericDensity.unit.spec-YHIMU23C.js +221 -0
  33. package/dist/NumericHandler-HCU6B2XV.js +39 -0
  34. package/dist/NumericHandler.unit.spec-6GVWAUED.js +219 -0
  35. package/dist/ProteomeInput-SONQSTVD.js +396 -0
  36. package/dist/RunChart2-ZLBNG4JF.js +758 -0
  37. package/dist/SC-YDRE37LP.js +1127 -0
  38. package/dist/Volcano-27ZERHXI.js +1379 -0
  39. package/dist/WSIViewer-2P7ANPBV.js +48562 -0
  40. package/dist/WsiSamplesPlot-FM4B657P.js +165 -0
  41. package/dist/adSandbox-M6TBRE5W.js +38 -0
  42. package/dist/animatedBubbleChart-VYSSX52K.js +555 -0
  43. package/dist/app-BLJT7ZDG.js +49 -0
  44. package/dist/app-LSFSUJHF.js +37 -0
  45. package/dist/app.js +13 -13
  46. package/dist/bam-ZMHBTBB4.js +860 -0
  47. package/dist/barchart-EF75MNTN.js +47 -0
  48. package/dist/barchart.data-VWZB3R2Z.js +22 -0
  49. package/dist/barchart.events-AMYQOMBQ.js +47 -0
  50. package/dist/barchart.integration.spec-TCTQ5PKN.js +2196 -0
  51. package/dist/barchart.integration.spec-TCTQ5PKN.js.map +7 -0
  52. package/dist/barchart2-LOHN6NSE.js +314 -0
  53. package/dist/block-23BH5TZ3.js +6226 -0
  54. package/dist/block.init-3BF6L23D.js +38 -0
  55. package/dist/block.mds.expressionrank-DSHATA2M.js +359 -0
  56. package/dist/block.mds.geneboxplot-RXQUOE3Y.js +828 -0
  57. package/dist/block.mds.junction-PN776TCD.js +1545 -0
  58. package/dist/block.mds.svcnv-SOWUBH4K.js +6801 -0
  59. package/dist/block.svg-ZPYMFAGC.js +164 -0
  60. package/dist/block.tk.aicheck-E22ZJJFP.js +283 -0
  61. package/dist/block.tk.ase-S54Z5A4G.js +365 -0
  62. package/dist/block.tk.bam-YOELFYXU.js +1906 -0
  63. package/dist/block.tk.bedgraphdot-VFUWXPSL.js +384 -0
  64. package/dist/block.tk.bigwig.ui-2SJYUPR3.js +212 -0
  65. package/dist/block.tk.hicstraw-GZVE4HQG.js +823 -0
  66. package/dist/block.tk.junction-RRFX4CAT.js +2364 -0
  67. package/dist/block.tk.junction-RRFX4CAT.js.map +7 -0
  68. package/dist/block.tk.junction.textmatrixui-A726SAAL.js +199 -0
  69. package/dist/block.tk.ld-THUOBW72.js +99 -0
  70. package/dist/block.tk.menu-V3VGODVI.js +1029 -0
  71. package/dist/block.tk.pgv-CNUGIK5J.js +944 -0
  72. package/dist/brainImaging-4PF74IEK.js +423 -0
  73. package/dist/brainRegions-U5K3KEQF.js +221 -0
  74. package/dist/bubbleHeatmap-6NL4PUFY.js +383 -0
  75. package/dist/bubbleHeatmap-6NL4PUFY.js.map +7 -0
  76. package/dist/chunk-2FTXOPE2.js +368 -0
  77. package/dist/chunk-2MCUT32T.js +254 -0
  78. package/dist/chunk-2SZ2VLOG.js +1102 -0
  79. package/dist/chunk-2XBWB6P2.js +37 -0
  80. package/dist/chunk-34VSTY2U.js +234 -0
  81. package/dist/chunk-3DS4HIEH.js +1230 -0
  82. package/dist/chunk-3DS4HIEH.js.map +7 -0
  83. package/dist/chunk-42FSM477.js +272 -0
  84. package/dist/chunk-42FSM477.js.map +7 -0
  85. package/dist/chunk-44VQIATQ.js +6364 -0
  86. package/dist/chunk-5B5FZPZI.js +148 -0
  87. package/dist/chunk-5DSLFEAN.js +276 -0
  88. package/dist/chunk-5DSQOV7M.js +50 -0
  89. package/dist/chunk-7CZI6SE7.js +222 -0
  90. package/dist/chunk-7NABQ2JU.js +54 -0
  91. package/dist/chunk-7VMFUE64.js +117 -0
  92. package/dist/chunk-7WBS7ZUI.js +54 -0
  93. package/dist/chunk-7XSDY2FN.js +1220 -0
  94. package/dist/chunk-7XSDY2FN.js.map +7 -0
  95. package/dist/chunk-AK5Z4PLV.js +230 -0
  96. package/dist/chunk-B3XMNPZY.js +448 -0
  97. package/dist/chunk-B4VBTVVQ.js +815 -0
  98. package/dist/chunk-CHUE5Y7Y.js +194 -0
  99. package/dist/chunk-CNBLRB4P.js +170 -0
  100. package/dist/chunk-CPMOBFFR.js +190 -0
  101. package/dist/chunk-D3TU3RDU.js +299 -0
  102. package/dist/chunk-E2KY2IZS.js +446 -0
  103. package/dist/chunk-FBMDK2UA.js +514 -0
  104. package/dist/chunk-FSWSZZTG.js +102 -0
  105. package/dist/chunk-GPGCGFFS.js +399 -0
  106. package/dist/chunk-H5DR6OYM.js +217 -0
  107. package/dist/chunk-HVZQYGQN.js +98 -0
  108. package/dist/chunk-HYIDLSEL.js +833 -0
  109. package/dist/chunk-IDX6WU4U.js +14 -0
  110. package/dist/chunk-IPGYIEPM.js +263 -0
  111. package/dist/chunk-IPGYIEPM.js.map +7 -0
  112. package/dist/chunk-IQTEW3SK.js +119 -0
  113. package/dist/chunk-J7W2DGAL.js +226 -0
  114. package/dist/chunk-J7W2DGAL.js.map +7 -0
  115. package/dist/chunk-JVVOJREJ.js +55 -0
  116. package/dist/chunk-KIGAMN3Z.js +216 -0
  117. package/dist/chunk-LAQZX5PA.js +13624 -0
  118. package/dist/chunk-LRPQBMQE.js +2786 -0
  119. package/dist/chunk-LYULXXGR.js +20896 -0
  120. package/dist/chunk-LYULXXGR.js.map +7 -0
  121. package/dist/chunk-M7JGRSFA.js +5067 -0
  122. package/dist/chunk-MAACMLMN.js +142 -0
  123. package/dist/chunk-MNPTPENH.js +1825 -0
  124. package/dist/chunk-MU3ZC4RW.js +102 -0
  125. package/dist/chunk-N6ALTSJ2.js +176 -0
  126. package/dist/chunk-N7326KA3.js +1943 -0
  127. package/dist/chunk-O64WQLAV.js +2327 -0
  128. package/dist/chunk-OEOYTMMY.js +203 -0
  129. package/dist/chunk-P3QPMVML.js +736 -0
  130. package/dist/chunk-PJM6MUTT.js +1289 -0
  131. package/dist/chunk-QPAZPA3N.js +4269 -0
  132. package/dist/chunk-RG222M4S.js +272 -0
  133. package/dist/chunk-S46UPZFM.js +158 -0
  134. package/dist/chunk-S4L4JCMA.js +102 -0
  135. package/dist/chunk-S4L4JCMA.js.map +7 -0
  136. package/dist/chunk-TUMA63WX.js +11194 -0
  137. package/dist/chunk-TUMA63WX.js.map +7 -0
  138. package/dist/chunk-UAALI7MC.js +315 -0
  139. package/dist/chunk-UAALI7MC.js.map +7 -0
  140. package/dist/chunk-UDTNSJY2.js +34 -0
  141. package/dist/chunk-UFLSI6EW.js +2681 -0
  142. package/dist/chunk-UFLSI6EW.js.map +7 -0
  143. package/dist/chunk-UKABZJQ7.js +480 -0
  144. package/dist/chunk-UKABZJQ7.js.map +7 -0
  145. package/dist/chunk-UPNKFGTN.js +100 -0
  146. package/dist/chunk-UZKHBBWY.js +617 -0
  147. package/dist/chunk-VG6GVF6D.js +302 -0
  148. package/dist/chunk-VO4FCZOR.js +448 -0
  149. package/dist/chunk-VVDFRJVN.js +306 -0
  150. package/dist/chunk-VVDFRJVN.js.map +7 -0
  151. package/dist/chunk-VZBMCJBR.js +534 -0
  152. package/dist/chunk-WR4UATTO.js +182 -0
  153. package/dist/chunk-XNYATA6C.js +2833 -0
  154. package/dist/chunk-Y5FH3TEH.js +129 -0
  155. package/dist/chunk-YIFCXFWE.js +343 -0
  156. package/dist/chunk-YRXB3MKU.js +477 -0
  157. package/dist/chunk-Z7UVDJKK.js +1275 -0
  158. package/dist/chunk-ZDEMAKRA.js +386 -0
  159. package/dist/chunk-ZTJLENGZ.js +292 -0
  160. package/dist/chunk-ZTJLENGZ.js.map +7 -0
  161. package/dist/condition-6UUQ3AAI.js +332 -0
  162. package/dist/controls-N2NIGPHY.js +41 -0
  163. package/dist/controls.config-YYIMJHWN.js +39 -0
  164. package/dist/correlation-DYUMFMTU.js +102 -0
  165. package/dist/cuminc-EUXCL53V.js +1149 -0
  166. package/dist/cuminc.integration.spec-ZQFMIBF6.js +678 -0
  167. package/dist/customdata.inputui-U2VXVWJ3.js +289 -0
  168. package/dist/dataDownload-QK2VYWYW.js +330 -0
  169. package/dist/dataDownload.integration.spec-NG4ZASWC.js +193 -0
  170. package/dist/databrowser.ui-ALW4LSLA.js +433 -0
  171. package/dist/dictionary-F7BPXOBO.js +118 -0
  172. package/dist/dnaMethylation-XNRJIBAH.js +38 -0
  173. package/dist/dnaMethylation.integration.spec-F5ODQTVL.js +203 -0
  174. package/dist/dofetch-IYEI7WSH.js +51 -0
  175. package/dist/e2pca-BHB7UMS5.js +350 -0
  176. package/dist/ep-QRFUVFSK.js +1256 -0
  177. package/dist/expclust.gdc.spec-LMH7QAU4.js +307 -0
  178. package/dist/facet-34HXG7MO.js +521 -0
  179. package/dist/forms2-ZQUPKXE5.js +539 -0
  180. package/dist/gb-HWZ5KZXX.js +88 -0
  181. package/dist/geneExpClustering-KFMP553E.js +249 -0
  182. package/dist/geneExpression-E2GIRM6Z.js +313 -0
  183. package/dist/geneExpression-QODFRNS4.js +38 -0
  184. package/dist/geneExpression.unit.spec-HV44ABGV.js +102 -0
  185. package/dist/geneORA-MJ6MFW2K.js +278 -0
  186. package/dist/geneRanking-ODKGLJX2.js +553 -0
  187. package/dist/geneRanking-ODKGLJX2.js.map +7 -0
  188. package/dist/geneVariant-QT6E7YZN.js +39 -0
  189. package/dist/geneVariant-UYQ4XIOQ.js +41 -0
  190. package/dist/geneVariant.integration.spec-HQ5GJ7UM.js +198 -0
  191. package/dist/genefusion.ui-5KYGD7JL.js +309 -0
  192. package/dist/geneset-M6T24ZYZ.js +208 -0
  193. package/dist/genomeBrowser.spec-CVH4S5KZ.js +281 -0
  194. package/dist/grin2-GI2WNWJO.js +968 -0
  195. package/dist/grin2-GI2WNWJO.js.map +7 -0
  196. package/dist/grin2-QU2UCKKE.js +75 -0
  197. package/dist/gsea-EGWJAATJ.js +47 -0
  198. package/dist/hierCluster-4OJ7BHAB.js +59 -0
  199. package/dist/hierCluster-P4HGGVK7.js +63 -0
  200. package/dist/hierCluster.config-5DGS5EH4.js +40 -0
  201. package/dist/hierCluster.integration.spec-OL4FLSBS.js +488 -0
  202. package/dist/hierCluster.integration.spec-OL4FLSBS.js.map +7 -0
  203. package/dist/hierCluster.interactivity-VEHJHBKY.js +54 -0
  204. package/dist/hierCluster.renderers-OEVSBUBK.js +21 -0
  205. package/dist/imagePlot-MMJYC4DX.js +163 -0
  206. package/dist/importPlot-4HJ6VR4P.js +8 -0
  207. package/dist/isoformExpression-EISYQF2S.js +40 -0
  208. package/dist/isoformExpression.unit.spec-YKBWVL7C.js +208 -0
  209. package/dist/jspdf.es.min-NXISJ3W7.js +40 -0
  210. package/dist/launch.adhoc-U3KOGDIC.js +42 -0
  211. package/dist/leftlabel.sample-LVF5WLMZ.js +264 -0
  212. package/dist/lollipop-HX2WLD5J.js +171 -0
  213. package/dist/maf-MBX3S3LS.js +459 -0
  214. package/dist/maf-MBX3S3LS.js.map +7 -0
  215. package/dist/maftimeline-VN6SYUPQ.js +593 -0
  216. package/dist/matrix-6UASVMIW.js +58 -0
  217. package/dist/matrix-FYYLVW7O.js +63 -0
  218. package/dist/matrix.cells-3RUGV7XG.js +28 -0
  219. package/dist/matrix.config-ELBFN3JN.js +41 -0
  220. package/dist/matrix.data-MHFF47ZY.js +25 -0
  221. package/dist/matrix.groups-UJRFFG5J.js +27 -0
  222. package/dist/matrix.integration.spec-5DUNUOQ3.js +3072 -0
  223. package/dist/matrix.interactivity-2TZ3ON4H.js +42 -0
  224. package/dist/matrix.layout-IGUBUCB2.js +44 -0
  225. package/dist/matrix.legend-UBQF6LMD.js +22 -0
  226. package/dist/matrix.renderers-ON2EXXIS.js +38 -0
  227. package/dist/matrix.serieses-5XH7NO23.js +21 -0
  228. package/dist/matrix.sort-QSWTVRJT.js +27 -0
  229. package/dist/matrix.sort.unit.spec-7Y6D456I.js +472 -0
  230. package/dist/matrix.sorterUi.unit.spec-3XNGEZZ2.js +342 -0
  231. package/dist/mavb-J4AUXBHZ.js +732 -0
  232. package/dist/mds.fimo-I6OALZRX.js +518 -0
  233. package/dist/mds.samplescatterplot-XSWR37S5.js +1550 -0
  234. package/dist/mds.survivalplot-Q3TE4A5P.js +483 -0
  235. package/dist/numericDictTermCluster-N3GM6YVP.js +65 -0
  236. package/dist/numericDictTermCluster-N3GM6YVP.js.map +7 -0
  237. package/dist/oncomatrix-C4RDUA2C.js +295 -0
  238. package/dist/oncomatrix.spec-QVD3XUTH.js +448 -0
  239. package/dist/plot.2dvaf-MNONDWFA.js +377 -0
  240. package/dist/plot.app-3T275PW5.js +41 -0
  241. package/dist/plot.barplot-LOLIPHXG.js +102 -0
  242. package/dist/plot.boxplot-I6CAYXPV.js +152 -0
  243. package/dist/plot.brainImaging-Y76KB6IC.js +51 -0
  244. package/dist/plot.disco-N5ISUUNQ.js +102 -0
  245. package/dist/plot.dzi-Q6K542P6.js +33 -0
  246. package/dist/plot.ssgq-OGLNOY4Q.js +139 -0
  247. package/dist/plot.vaf2cov-NXQ5D3KA.js +259 -0
  248. package/dist/plot.wsi-YMDUOZ57.js +36 -0
  249. package/dist/polar2-AQ2W3SNH.js +231 -0
  250. package/dist/profileForms-TCPZPI22.js +446 -0
  251. package/dist/profilePlot-4RKKICKC.js +54 -0
  252. package/dist/proteinView-5VJ6E2XT.js +1568 -0
  253. package/dist/proteinView-5VJ6E2XT.js.map +7 -0
  254. package/dist/purify.es-PPNYMKMJ.js +1457 -0
  255. package/dist/purify.es-PPNYMKMJ.js.map +7 -0
  256. package/dist/qualitative-NCFIVW6S.js +43 -0
  257. package/dist/radar2-UJFFZE7T.js +326 -0
  258. package/dist/radarFacility2-ATQBCF3N.js +334 -0
  259. package/dist/regression-4RSS7447.js +56 -0
  260. package/dist/regression.inputs-5XGUGNWV.js +48 -0
  261. package/dist/regression.inputs.term-LSJAZWE4.js +48 -0
  262. package/dist/regression.inputs.values.table-GNIJZETG.js +45 -0
  263. package/dist/regression.integration.spec-MV652K47.js +784 -0
  264. package/dist/regression.results-M3YH6ZD3.js +40 -0
  265. package/dist/regression.spec-455WPZHP.js +708 -0
  266. package/dist/report-MH3V7SHZ.js +222 -0
  267. package/dist/sampleScatter.spec-OTIL3JDG.js +202 -0
  268. package/dist/sampleView-DHACOCEG.js +48 -0
  269. package/dist/samplelst-F3AXOE2D.js +111 -0
  270. package/dist/samplematrix-M6CKKVNE.js +2198 -0
  271. package/dist/sc-S5XA37JJ.js +86 -0
  272. package/dist/scatter-IRPFNDHW.js +851 -0
  273. package/dist/scatter.integration.spec-5FWVHMVJ.js +1206 -0
  274. package/dist/selectGenomeWithTklst-NIOUX6MV.js +134 -0
  275. package/dist/singleCellCellType-FTGLNH2J.js +38 -0
  276. package/dist/singleCellCellType.unit.spec-BJ5YZAXF.js +160 -0
  277. package/dist/singleCellGeneExpression-56EDDG5H.js +38 -0
  278. package/dist/singleCellGeneExpression.unit.spec-XSQRWAI3.js +153 -0
  279. package/dist/singleCellPlot-TH77EJZ4.js +54 -0
  280. package/dist/singlecell-3QZQZM32.js +86 -0
  281. package/dist/singlecell-7KJMBASC.js +1572 -0
  282. package/dist/snp-YXG5O4U4.js +38 -0
  283. package/dist/snp.unit.spec-O27J7OOK.js +176 -0
  284. package/dist/snplocus-CQZSC7P6.js +208 -0
  285. package/dist/spliceevent.a53ss.diagram-K5ZDPZE6.js +151 -0
  286. package/dist/spliceevent.exonskip.diagram-A2VZ3TTF.js +277 -0
  287. package/dist/spliceevent.noeventdiagram-DJDA6ENK.js +460 -0
  288. package/dist/ssGSEA-3FTGRUTC.js +38 -0
  289. package/dist/ssGSEA.unit.spec-GF35KBTX.js +88 -0
  290. package/dist/summarizeCnvGeneexp-6IDTNOYE.js +163 -0
  291. package/dist/summarizeGeneexpSurvival-OWLUX2HO.js +114 -0
  292. package/dist/summarizeGeneexpSurvival-OWLUX2HO.js.map +7 -0
  293. package/dist/summarizeMutationCnv-BMEN3XNV.js +164 -0
  294. package/dist/summarizeMutationDiagnosis-LW6K6373.js +40 -0
  295. package/dist/summarizeMutationSurvival-E7REF2VY.js +99 -0
  296. package/dist/summary-MKA7OJKE.js +49 -0
  297. package/dist/summary.integration.spec-IV6I6SNJ.js +414 -0
  298. package/dist/summaryInput-NET6SPM4.js +235 -0
  299. package/dist/sunburst-CO3MXFTJ.js +284 -0
  300. package/dist/survival-MIPCEBS3.js +46 -0
  301. package/dist/survival-QQXTCNDU.js +58 -0
  302. package/dist/survival.integration.spec-6FH4S3EH.js +915 -0
  303. package/dist/survival.integration.spec-6FH4S3EH.js.map +7 -0
  304. package/dist/svg2pdf.es.min-P2F6SSVJ.js +3157 -0
  305. package/dist/svgraph-YF7BS7TN.js +1387 -0
  306. package/dist/svmr-J2JLQGEE.js +3842 -0
  307. package/dist/table-7YL7I4GH.js +200 -0
  308. package/dist/termCollection-LNEN72IV.js +38 -0
  309. package/dist/termCollection-SOLNYAZ4.js +179 -0
  310. package/dist/termCollection.unit.spec-LTX7UVYP.js +208 -0
  311. package/dist/tk-RZDP2YT5.js +46 -0
  312. package/dist/tp.ui-T6XXBHHD.js +1459 -0
  313. package/dist/tvs.dt-7APM37Y3.js +39 -0
  314. package/dist/tvs.dtcnv.categorical-YIPXQSIL.js +40 -0
  315. package/dist/tvs.dtcnv.continuous-ITNZE3SH.js +72 -0
  316. package/dist/tvs.dtfusion-2JIIPDTN.js +40 -0
  317. package/dist/tvs.dtsnvindel-HO2PUFN2.js +40 -0
  318. package/dist/tvs.dtsv-7KCWSUYO.js +40 -0
  319. package/dist/tvs.samplelst-KKWJQNLW.js +104 -0
  320. package/dist/tvs.termCollection-R2IGRG2U.js +159 -0
  321. package/dist/violin-OTPZQTGA.js +46 -0
  322. package/dist/violin.integration.spec-KESWDSBM.js +1425 -0
  323. package/dist/violin.interactivity-Q2WALZO3.js +38 -0
  324. package/dist/violin.renderer-WIRIV7QY.js +40 -0
  325. package/dist/vocabulary-XXDHHHPJ.js +41 -0
  326. package/package.json +9 -3
  327. package/dist/2dmaf-US2ZAJJJ.js +0 -1373
  328. package/dist/AIProjectAdmin-QQO2PNAJ.js +0 -958
  329. package/dist/AppHeader-UKB344GC.js +0 -835
  330. package/dist/BoxPlot-JEBLRKBY.js +0 -1217
  331. package/dist/CorrelationVolcano-J3IFVSZB.js +0 -619
  332. package/dist/DE-PAPJP6AH.js +0 -95
  333. package/dist/DEinput-YON466QQ.js +0 -301
  334. package/dist/DEinput-YON466QQ.js.map +0 -7
  335. package/dist/DifferentialAnalysis-DEUODXGG.js +0 -245
  336. package/dist/Disco-OZM4S7HF.js +0 -3297
  337. package/dist/Disco.UI-VIHYJGYU.js +0 -249
  338. package/dist/DmrPlot-DSELMC4E.js +0 -642
  339. package/dist/GB-MUPI6RL5.js +0 -1151
  340. package/dist/GB-MUPI6RL5.js.map +0 -7
  341. package/dist/GeneExpInput-3AQEPTFZ.js +0 -367
  342. package/dist/HicApp-BP7PSXY2.js +0 -2250
  343. package/dist/NumBinaryEditor-CHWQT445.js +0 -271
  344. package/dist/NumBinaryEditor.unit.spec-MXRNK7XH.js +0 -286
  345. package/dist/NumContEditor-XS3RA7GY.js +0 -109
  346. package/dist/NumContEditor.unit.spec-662MHSP4.js +0 -169
  347. package/dist/NumCustomBinEditor-LUVIAXMZ.js +0 -38
  348. package/dist/NumCustomBinEditor.unit.spec-3D3GY3F4.js +0 -284
  349. package/dist/NumDiscreteEditor-24W2A5IN.js +0 -179
  350. package/dist/NumDiscreteEditor.unit.spec-B5T42Z5S.js +0 -202
  351. package/dist/NumRegularBinEditor-AING4HZ5.js +0 -38
  352. package/dist/NumRegularBinEditor.unit.spec-UKSVZH2S.js +0 -227
  353. package/dist/NumSplineEditor-54KNKHJX.js +0 -198
  354. package/dist/NumSplineEditor.unit.spec-5FTST3Y5.js +0 -199
  355. package/dist/NumericDensity-C7DQZ5Q5.js +0 -38
  356. package/dist/NumericDensity.unit.spec-HV6SD3ZS.js +0 -221
  357. package/dist/NumericHandler-FV3L23EC.js +0 -39
  358. package/dist/NumericHandler.unit.spec-E72DXVBB.js +0 -219
  359. package/dist/ProteomeInput-3XTK74SN.js +0 -396
  360. package/dist/RunChart2-X5FBZVRX.js +0 -758
  361. package/dist/SC-WE5DG2CQ.js +0 -1127
  362. package/dist/Volcano-2USCTLKO.js +0 -1379
  363. package/dist/WSIViewer-U6VSJUFF.js +0 -48562
  364. package/dist/WsiSamplesPlot-VIKSG63U.js +0 -165
  365. package/dist/adSandbox-VXUJGPD3.js +0 -38
  366. package/dist/animatedBubbleChart-4P7XLKSB.js +0 -555
  367. package/dist/app-KHZT2BVF.js +0 -49
  368. package/dist/app-XLYH3YPL.js +0 -37
  369. package/dist/bam-C23ZARYE.js +0 -860
  370. package/dist/barchart-KGXLYEIP.js +0 -47
  371. package/dist/barchart.data-7OI5GZZ6.js +0 -22
  372. package/dist/barchart.events-3KDNIFBG.js +0 -47
  373. package/dist/barchart.integration.spec-OQYY54AQ.js +0 -2010
  374. package/dist/barchart.integration.spec-OQYY54AQ.js.map +0 -7
  375. package/dist/barchart2-AT5FXOUY.js +0 -314
  376. package/dist/block-TCWYUB4R.js +0 -6226
  377. package/dist/block.init-7FHXQJNE.js +0 -38
  378. package/dist/block.mds.expressionrank-UGZQK7Z3.js +0 -359
  379. package/dist/block.mds.geneboxplot-2CQLB4YN.js +0 -828
  380. package/dist/block.mds.junction-JHPHWVOS.js +0 -1545
  381. package/dist/block.mds.svcnv-E7P2SVKK.js +0 -6801
  382. package/dist/block.svg-MVRR3C6V.js +0 -164
  383. package/dist/block.tk.aicheck-KX46G4TR.js +0 -283
  384. package/dist/block.tk.ase-WMXI47BF.js +0 -365
  385. package/dist/block.tk.bam-KFEGVEQQ.js +0 -1906
  386. package/dist/block.tk.bedgraphdot-P4DBCWFK.js +0 -384
  387. package/dist/block.tk.bigwig.ui-WJPH2Z7F.js +0 -212
  388. package/dist/block.tk.hicstraw-RSD6I2NX.js +0 -823
  389. package/dist/block.tk.junction-VZS2DEDO.js +0 -2364
  390. package/dist/block.tk.junction-VZS2DEDO.js.map +0 -7
  391. package/dist/block.tk.junction.textmatrixui-UCWGHZDI.js +0 -199
  392. package/dist/block.tk.ld-ERSIIBM2.js +0 -99
  393. package/dist/block.tk.menu-2ZNXE7CE.js +0 -1029
  394. package/dist/block.tk.pgv-EJLACCFR.js +0 -944
  395. package/dist/brainImaging-BMZJY6OT.js +0 -423
  396. package/dist/brainRegions-RZEBXPAS.js +0 -221
  397. package/dist/bubbleHeatmap-ERJFMLPK.js +0 -383
  398. package/dist/bubbleHeatmap-ERJFMLPK.js.map +0 -7
  399. package/dist/chunk-27FPMFP2.js +0 -54
  400. package/dist/chunk-455XZIIA.js +0 -222
  401. package/dist/chunk-474DTKP7.js +0 -263
  402. package/dist/chunk-474DTKP7.js.map +0 -7
  403. package/dist/chunk-4AP3O3JW.js +0 -226
  404. package/dist/chunk-4AP3O3JW.js.map +0 -7
  405. package/dist/chunk-4JWN7E7Q.js +0 -117
  406. package/dist/chunk-55MOHL3P.js +0 -158
  407. package/dist/chunk-5TJQ6633.js +0 -291
  408. package/dist/chunk-5TJQ6633.js.map +0 -7
  409. package/dist/chunk-5X5LI5YM.js +0 -254
  410. package/dist/chunk-634MOGE3.js +0 -314
  411. package/dist/chunk-634MOGE3.js.map +0 -7
  412. package/dist/chunk-6G4YOMWW.js +0 -1825
  413. package/dist/chunk-6SCBPP4C.js +0 -95
  414. package/dist/chunk-6SCBPP4C.js.map +0 -7
  415. package/dist/chunk-6YVEYTNH.js +0 -4269
  416. package/dist/chunk-73R5BVCY.js +0 -5067
  417. package/dist/chunk-74XVBQF7.js +0 -55
  418. package/dist/chunk-7I3LST7R.js +0 -272
  419. package/dist/chunk-ATUYZWHV.js +0 -1289
  420. package/dist/chunk-B6U3EDAF.js +0 -448
  421. package/dist/chunk-BO47H3VP.js +0 -477
  422. package/dist/chunk-BOO4W7WD.js +0 -482
  423. package/dist/chunk-BOO4W7WD.js.map +0 -7
  424. package/dist/chunk-C6YT5EM2.js +0 -217
  425. package/dist/chunk-CDUNE45Q.js +0 -534
  426. package/dist/chunk-CLN7ANNL.js +0 -216
  427. package/dist/chunk-CLNSNNQU.js +0 -302
  428. package/dist/chunk-COYULNJF.js +0 -119
  429. package/dist/chunk-DBFKUPM6.js +0 -1275
  430. package/dist/chunk-DNVSEW6P.js +0 -170
  431. package/dist/chunk-E6XLLQCG.js +0 -299
  432. package/dist/chunk-EC3SKPQT.js +0 -446
  433. package/dist/chunk-EDXQKDVQ.js +0 -368
  434. package/dist/chunk-EY253UB7.js +0 -448
  435. package/dist/chunk-F5ONTCHE.js +0 -13624
  436. package/dist/chunk-FABY3ISP.js +0 -176
  437. package/dist/chunk-FOPHIWFD.js +0 -100
  438. package/dist/chunk-FVX76DZS.js +0 -203
  439. package/dist/chunk-FXGE233W.js +0 -2681
  440. package/dist/chunk-FXGE233W.js.map +0 -7
  441. package/dist/chunk-GBXX3AHJ.js +0 -343
  442. package/dist/chunk-GVCQGWN7.js +0 -34
  443. package/dist/chunk-HXNUQOGN.js +0 -234
  444. package/dist/chunk-HXZSSHEB.js +0 -37
  445. package/dist/chunk-IKDWQJZE.js +0 -736
  446. package/dist/chunk-IVXCWCKS.js +0 -317
  447. package/dist/chunk-IVXCWCKS.js.map +0 -7
  448. package/dist/chunk-JEZUPG4J.js +0 -617
  449. package/dist/chunk-JWHFMFF2.js +0 -142
  450. package/dist/chunk-K3OJJZCQ.js +0 -230
  451. package/dist/chunk-KM4JBR26.js +0 -815
  452. package/dist/chunk-KNOFEVOJ.js +0 -54
  453. package/dist/chunk-L7VDSIM7.js +0 -20881
  454. package/dist/chunk-L7VDSIM7.js.map +0 -7
  455. package/dist/chunk-LLX3NKB4.js +0 -148
  456. package/dist/chunk-MQJVDIQK.js +0 -2786
  457. package/dist/chunk-N25ENPO3.js +0 -14
  458. package/dist/chunk-N3JT3KCV.js +0 -399
  459. package/dist/chunk-N6QEVQZV.js +0 -194
  460. package/dist/chunk-NJDW6ZQP.js +0 -102
  461. package/dist/chunk-NLQQIVTC.js +0 -276
  462. package/dist/chunk-NU2W6B7I.js +0 -833
  463. package/dist/chunk-OR43PGBV.js +0 -98
  464. package/dist/chunk-PWUERAAF.js +0 -182
  465. package/dist/chunk-PXCFA4ZQ.js +0 -2327
  466. package/dist/chunk-QSEGY3U5.js +0 -129
  467. package/dist/chunk-QWOE5YTB.js +0 -11194
  468. package/dist/chunk-QWOE5YTB.js.map +0 -7
  469. package/dist/chunk-SC6IPDJR.js +0 -6364
  470. package/dist/chunk-SDMOLIEU.js +0 -1205
  471. package/dist/chunk-SDMOLIEU.js.map +0 -7
  472. package/dist/chunk-T46LHXJW.js +0 -283
  473. package/dist/chunk-T46LHXJW.js.map +0 -7
  474. package/dist/chunk-UDL2DEBB.js +0 -50
  475. package/dist/chunk-UXDVUCXU.js +0 -190
  476. package/dist/chunk-VDIVDU3T.js +0 -386
  477. package/dist/chunk-VRLC7DAU.js +0 -2833
  478. package/dist/chunk-XQSQQSGB.js +0 -1102
  479. package/dist/chunk-XVXAQ3FI.js +0 -1943
  480. package/dist/chunk-Y45JIQ5Y.js +0 -1219
  481. package/dist/chunk-Y45JIQ5Y.js.map +0 -7
  482. package/dist/chunk-YQMENK5H.js +0 -102
  483. package/dist/chunk-ZUC4XNWU.js +0 -514
  484. package/dist/condition-ZPFBPMEZ.js +0 -332
  485. package/dist/controls-LIVMV2GV.js +0 -41
  486. package/dist/controls.config-2EOMBN5E.js +0 -39
  487. package/dist/correlation-D6GAPOP5.js +0 -102
  488. package/dist/cuminc-GPFDRNUP.js +0 -1149
  489. package/dist/cuminc.integration.spec-V4JYKLA6.js +0 -678
  490. package/dist/customdata.inputui-DSEUS3CT.js +0 -289
  491. package/dist/dataDownload-KT6K3M7Q.js +0 -330
  492. package/dist/dataDownload.integration.spec-VEX2RTSA.js +0 -193
  493. package/dist/databrowser.ui-VJKNMIXA.js +0 -433
  494. package/dist/dictionary-B27BMR5H.js +0 -118
  495. package/dist/dnaMethylation-BWQGUXVR.js +0 -38
  496. package/dist/dnaMethylation.integration.spec-YMGT2HYZ.js +0 -203
  497. package/dist/dofetch-BMSZZAAQ.js +0 -51
  498. package/dist/e2pca-KSY4DP53.js +0 -350
  499. package/dist/ep-4PAYGMWK.js +0 -1256
  500. package/dist/expclust.gdc.spec-XXFP2HHE.js +0 -307
  501. package/dist/facet-VCJQ7QPE.js +0 -521
  502. package/dist/forms2-IUD2SNOQ.js +0 -539
  503. package/dist/gb-JDH242LG.js +0 -88
  504. package/dist/geneExpClustering-L23JB7XA.js +0 -249
  505. package/dist/geneExpression-P2ERCRXO.js +0 -313
  506. package/dist/geneExpression-QGPVFAN4.js +0 -38
  507. package/dist/geneExpression.unit.spec-6BQBM6VL.js +0 -102
  508. package/dist/geneORA-XIMJP665.js +0 -278
  509. package/dist/geneRanking-AJH5G22J.js +0 -551
  510. package/dist/geneRanking-AJH5G22J.js.map +0 -7
  511. package/dist/geneVariant-AUUZ7S2B.js +0 -41
  512. package/dist/geneVariant-H6BGRRON.js +0 -39
  513. package/dist/geneVariant.integration.spec-FRCH6VI4.js +0 -198
  514. package/dist/genefusion.ui-AAJ37VFA.js +0 -309
  515. package/dist/geneset-5ARBBUYH.js +0 -208
  516. package/dist/genomeBrowser.spec-RV7YBSMZ.js +0 -281
  517. package/dist/grin2-4MYLICII.js +0 -75
  518. package/dist/grin2-RBK4NI6W.js +0 -967
  519. package/dist/grin2-RBK4NI6W.js.map +0 -7
  520. package/dist/gsea-XUMCVLFK.js +0 -47
  521. package/dist/hierCluster-HXOTNMC5.js +0 -63
  522. package/dist/hierCluster-PEDY7OTZ.js +0 -59
  523. package/dist/hierCluster.config-RKYCGNWW.js +0 -40
  524. package/dist/hierCluster.integration.spec-YKMAT7UU.js +0 -395
  525. package/dist/hierCluster.integration.spec-YKMAT7UU.js.map +0 -7
  526. package/dist/hierCluster.interactivity-LPTHVWHR.js +0 -54
  527. package/dist/hierCluster.renderers-4XWKHCNW.js +0 -21
  528. package/dist/imagePlot-3DF7ZH3U.js +0 -163
  529. package/dist/importPlot-N74SV3TL.js +0 -8
  530. package/dist/isoformExpression-FU7Y4OGU.js +0 -40
  531. package/dist/isoformExpression.unit.spec-BLQDKV37.js +0 -208
  532. package/dist/jspdf.es.min-TFJHKUF5.js +0 -40
  533. package/dist/launch.adhoc-Y35FZV6H.js +0 -42
  534. package/dist/leftlabel.sample-ERJGAYTF.js +0 -264
  535. package/dist/lollipop-DU37Q5E2.js +0 -171
  536. package/dist/maf-NRLSNDOT.js +0 -452
  537. package/dist/maf-NRLSNDOT.js.map +0 -7
  538. package/dist/maftimeline-GRXGOOSJ.js +0 -593
  539. package/dist/matrix-G3BULZ7Y.js +0 -58
  540. package/dist/matrix-TCTX26A4.js +0 -63
  541. package/dist/matrix.cells-ED6RS5EC.js +0 -28
  542. package/dist/matrix.config-QHO2YNOT.js +0 -41
  543. package/dist/matrix.data-KQFMXWRX.js +0 -25
  544. package/dist/matrix.groups-RE74EFLY.js +0 -27
  545. package/dist/matrix.integration.spec-Y4FCZ2Q2.js +0 -3072
  546. package/dist/matrix.interactivity-3DW5WAM3.js +0 -42
  547. package/dist/matrix.layout-W57D765I.js +0 -44
  548. package/dist/matrix.legend-ZST44PIB.js +0 -22
  549. package/dist/matrix.renderers-NFRKXO7Y.js +0 -38
  550. package/dist/matrix.serieses-6ZKTFVWY.js +0 -21
  551. package/dist/matrix.sort-2UE47IOC.js +0 -27
  552. package/dist/matrix.sort.unit.spec-5CMWEXPE.js +0 -472
  553. package/dist/matrix.sorterUi.unit.spec-Y2HXWHJN.js +0 -342
  554. package/dist/mavb-BI4XKI5P.js +0 -732
  555. package/dist/mds.fimo-UJYESPNC.js +0 -518
  556. package/dist/mds.samplescatterplot-JKU5B4QR.js +0 -1550
  557. package/dist/mds.survivalplot-OP7Y4D3L.js +0 -483
  558. package/dist/numericDictTermCluster-DRIEJJSP.js +0 -72
  559. package/dist/numericDictTermCluster-DRIEJJSP.js.map +0 -7
  560. package/dist/oncomatrix-A3IE47HV.js +0 -295
  561. package/dist/oncomatrix.spec-TDWB2ROF.js +0 -448
  562. package/dist/plot.2dvaf-XY34TDSM.js +0 -377
  563. package/dist/plot.app-WRCBLYGO.js +0 -41
  564. package/dist/plot.barplot-RXGOUNHM.js +0 -102
  565. package/dist/plot.boxplot-GBZGSS3D.js +0 -152
  566. package/dist/plot.brainImaging-DYPKMNHL.js +0 -51
  567. package/dist/plot.disco-5K2SCKJ4.js +0 -102
  568. package/dist/plot.dzi-THJIFHIS.js +0 -33
  569. package/dist/plot.ssgq-FSIUIV3A.js +0 -139
  570. package/dist/plot.vaf2cov-HP6KEBVJ.js +0 -259
  571. package/dist/plot.wsi-MR6JMOXW.js +0 -36
  572. package/dist/polar2-IT3OF5DX.js +0 -231
  573. package/dist/profileForms-XXGJVF2T.js +0 -446
  574. package/dist/profilePlot-J2C35OEY.js +0 -54
  575. package/dist/proteinView-7FDCILPH.js +0 -1556
  576. package/dist/proteinView-7FDCILPH.js.map +0 -7
  577. package/dist/purify.es-OGN7FDEQ.js +0 -1038
  578. package/dist/purify.es-OGN7FDEQ.js.map +0 -7
  579. package/dist/qualitative-N7S2JHZM.js +0 -43
  580. package/dist/radar2-CDDOQGQX.js +0 -326
  581. package/dist/radarFacility2-ZQTHO2ON.js +0 -334
  582. package/dist/regression-PBGAMZAV.js +0 -56
  583. package/dist/regression.inputs-54E5YKI4.js +0 -48
  584. package/dist/regression.inputs.term-52MBTMVM.js +0 -48
  585. package/dist/regression.inputs.values.table-F3FOAYFV.js +0 -45
  586. package/dist/regression.integration.spec-M4RPJUE4.js +0 -784
  587. package/dist/regression.results-JOK6I2ZD.js +0 -40
  588. package/dist/regression.spec-O4HZB2HQ.js +0 -708
  589. package/dist/report-BDDTM7SV.js +0 -222
  590. package/dist/sampleScatter.spec-272GLYEK.js +0 -202
  591. package/dist/sampleView-E6OHEEP4.js +0 -48
  592. package/dist/samplelst-3LNF3DBG.js +0 -111
  593. package/dist/samplematrix-HL445X7I.js +0 -2198
  594. package/dist/sc-4LELHVIS.js +0 -86
  595. package/dist/scatter-IZIZURQD.js +0 -851
  596. package/dist/scatter.integration.spec-BBEWMA7M.js +0 -1206
  597. package/dist/selectGenomeWithTklst-5LQGT4Z7.js +0 -134
  598. package/dist/singleCellCellType-T3ZT64EK.js +0 -38
  599. package/dist/singleCellCellType.unit.spec-AE4IAHOF.js +0 -160
  600. package/dist/singleCellGeneExpression-SRJXSDEB.js +0 -38
  601. package/dist/singleCellGeneExpression.unit.spec-EPL73UUO.js +0 -153
  602. package/dist/singleCellPlot-P2BHFTYZ.js +0 -54
  603. package/dist/singlecell-32SSD7VN.js +0 -1572
  604. package/dist/singlecell-7KRD5DP7.js +0 -86
  605. package/dist/snp-LE5R377N.js +0 -38
  606. package/dist/snp.unit.spec-UY6KQ5NJ.js +0 -176
  607. package/dist/snplocus-CP34ABUJ.js +0 -208
  608. package/dist/spliceevent.a53ss.diagram-JWLWQDNJ.js +0 -151
  609. package/dist/spliceevent.exonskip.diagram-C5526P7P.js +0 -277
  610. package/dist/spliceevent.noeventdiagram-352M63YB.js +0 -460
  611. package/dist/ssGSEA-BFTCECV3.js +0 -38
  612. package/dist/ssGSEA.unit.spec-4OUCKRDQ.js +0 -88
  613. package/dist/summarizeCnvGeneexp-Y3AWFIZA.js +0 -163
  614. package/dist/summarizeGeneexpSurvival-U5JSPG22.js +0 -108
  615. package/dist/summarizeGeneexpSurvival-U5JSPG22.js.map +0 -7
  616. package/dist/summarizeMutationCnv-KCOVQEBC.js +0 -164
  617. package/dist/summarizeMutationDiagnosis-EQXEQABW.js +0 -40
  618. package/dist/summarizeMutationSurvival-4VGLG4SC.js +0 -99
  619. package/dist/summary-DXYCBNI4.js +0 -49
  620. package/dist/summary.integration.spec-MZTJISLP.js +0 -414
  621. package/dist/summaryInput-5Z3XVIL6.js +0 -235
  622. package/dist/sunburst-WVSQJYP2.js +0 -284
  623. package/dist/survival-3R3J2JBE.js +0 -46
  624. package/dist/survival-XQWFVGCJ.js +0 -58
  625. package/dist/survival.integration.spec-EBDPIBYM.js +0 -821
  626. package/dist/survival.integration.spec-EBDPIBYM.js.map +0 -7
  627. package/dist/svg2pdf.es.min-H4DXBG4O.js +0 -3157
  628. package/dist/svgraph-SY2HVMYL.js +0 -1387
  629. package/dist/svmr-TIIMFKG7.js +0 -3842
  630. package/dist/table-5RFTXIQL.js +0 -200
  631. package/dist/termCollection-23QXTZDN.js +0 -38
  632. package/dist/termCollection-7KXABWVW.js +0 -179
  633. package/dist/termCollection.unit.spec-4AN2Z4PQ.js +0 -208
  634. package/dist/tk-WW6PJGPQ.js +0 -46
  635. package/dist/tp.ui-S5PO3MPH.js +0 -1459
  636. package/dist/tvs.dt-O7LUM5TK.js +0 -39
  637. package/dist/tvs.dtcnv.categorical-2OUFOD3W.js +0 -40
  638. package/dist/tvs.dtcnv.continuous-NOOUY5SZ.js +0 -72
  639. package/dist/tvs.dtfusion-KXQMP3UF.js +0 -40
  640. package/dist/tvs.dtsnvindel-PWHFTWZU.js +0 -40
  641. package/dist/tvs.dtsv-25FLS572.js +0 -40
  642. package/dist/tvs.samplelst-FLXNJFIV.js +0 -104
  643. package/dist/tvs.termCollection-PSVOMJE4.js +0 -159
  644. package/dist/violin-SWMEFWRA.js +0 -46
  645. package/dist/violin.integration.spec-6EQ6GC2N.js +0 -1425
  646. package/dist/violin.interactivity-WBIWPLSM.js +0 -38
  647. package/dist/violin.renderer-3WARZUOH.js +0 -40
  648. package/dist/vocabulary-WLHYHDX7.js +0 -41
  649. /package/dist/{2dmaf-US2ZAJJJ.js.map → 2dmaf-GTD3AXGT.js.map} +0 -0
  650. /package/dist/{AIProjectAdmin-QQO2PNAJ.js.map → AIProjectAdmin-ALMSVHFX.js.map} +0 -0
  651. /package/dist/{AppHeader-UKB344GC.js.map → AppHeader-RK2YRITI.js.map} +0 -0
  652. /package/dist/{BoxPlot-JEBLRKBY.js.map → BoxPlot-6ZXLPA5Q.js.map} +0 -0
  653. /package/dist/{CorrelationVolcano-J3IFVSZB.js.map → CorrelationVolcano-PJB3QCXB.js.map} +0 -0
  654. /package/dist/{DE-PAPJP6AH.js.map → DE-MEWV5RTV.js.map} +0 -0
  655. /package/dist/{DifferentialAnalysis-DEUODXGG.js.map → DifferentialAnalysis-7L3CDPVB.js.map} +0 -0
  656. /package/dist/{Disco-OZM4S7HF.js.map → Disco-FCS7B5DO.js.map} +0 -0
  657. /package/dist/{Disco.UI-VIHYJGYU.js.map → Disco.UI-BFJ5XFAT.js.map} +0 -0
  658. /package/dist/{DmrPlot-DSELMC4E.js.map → DmrPlot-362PCE7L.js.map} +0 -0
  659. /package/dist/{GeneExpInput-3AQEPTFZ.js.map → GeneExpInput-EHWHQTRV.js.map} +0 -0
  660. /package/dist/{HicApp-BP7PSXY2.js.map → HicApp-UE4DCUKX.js.map} +0 -0
  661. /package/dist/{NumBinaryEditor-CHWQT445.js.map → NumBinaryEditor-3TAAJNYY.js.map} +0 -0
  662. /package/dist/{NumBinaryEditor.unit.spec-MXRNK7XH.js.map → NumBinaryEditor.unit.spec-6776472M.js.map} +0 -0
  663. /package/dist/{NumContEditor-XS3RA7GY.js.map → NumContEditor-WLFXTY4M.js.map} +0 -0
  664. /package/dist/{NumContEditor.unit.spec-662MHSP4.js.map → NumContEditor.unit.spec-KG5SCOIQ.js.map} +0 -0
  665. /package/dist/{NumCustomBinEditor-LUVIAXMZ.js.map → NumCustomBinEditor-EKKNCLKI.js.map} +0 -0
  666. /package/dist/{NumCustomBinEditor.unit.spec-3D3GY3F4.js.map → NumCustomBinEditor.unit.spec-LSLSKQDW.js.map} +0 -0
  667. /package/dist/{NumDiscreteEditor-24W2A5IN.js.map → NumDiscreteEditor-X2MLECNT.js.map} +0 -0
  668. /package/dist/{NumDiscreteEditor.unit.spec-B5T42Z5S.js.map → NumDiscreteEditor.unit.spec-BZG7P4C7.js.map} +0 -0
  669. /package/dist/{NumRegularBinEditor-AING4HZ5.js.map → NumRegularBinEditor-CAGJ4ZWD.js.map} +0 -0
  670. /package/dist/{NumRegularBinEditor.unit.spec-UKSVZH2S.js.map → NumRegularBinEditor.unit.spec-GJSJC4DK.js.map} +0 -0
  671. /package/dist/{NumSplineEditor-54KNKHJX.js.map → NumSplineEditor-ND3RC7R6.js.map} +0 -0
  672. /package/dist/{NumSplineEditor.unit.spec-5FTST3Y5.js.map → NumSplineEditor.unit.spec-F67JQKPY.js.map} +0 -0
  673. /package/dist/{NumericDensity-C7DQZ5Q5.js.map → NumericDensity-VW7NIZU7.js.map} +0 -0
  674. /package/dist/{NumericDensity.unit.spec-HV6SD3ZS.js.map → NumericDensity.unit.spec-YHIMU23C.js.map} +0 -0
  675. /package/dist/{NumericHandler-FV3L23EC.js.map → NumericHandler-HCU6B2XV.js.map} +0 -0
  676. /package/dist/{NumericHandler.unit.spec-E72DXVBB.js.map → NumericHandler.unit.spec-6GVWAUED.js.map} +0 -0
  677. /package/dist/{ProteomeInput-3XTK74SN.js.map → ProteomeInput-SONQSTVD.js.map} +0 -0
  678. /package/dist/{RunChart2-X5FBZVRX.js.map → RunChart2-ZLBNG4JF.js.map} +0 -0
  679. /package/dist/{SC-WE5DG2CQ.js.map → SC-YDRE37LP.js.map} +0 -0
  680. /package/dist/{Volcano-2USCTLKO.js.map → Volcano-27ZERHXI.js.map} +0 -0
  681. /package/dist/{WSIViewer-U6VSJUFF.js.map → WSIViewer-2P7ANPBV.js.map} +0 -0
  682. /package/dist/{WsiSamplesPlot-VIKSG63U.js.map → WsiSamplesPlot-FM4B657P.js.map} +0 -0
  683. /package/dist/{adSandbox-VXUJGPD3.js.map → adSandbox-M6TBRE5W.js.map} +0 -0
  684. /package/dist/{animatedBubbleChart-4P7XLKSB.js.map → animatedBubbleChart-VYSSX52K.js.map} +0 -0
  685. /package/dist/{app-KHZT2BVF.js.map → app-BLJT7ZDG.js.map} +0 -0
  686. /package/dist/{app-XLYH3YPL.js.map → app-LSFSUJHF.js.map} +0 -0
  687. /package/dist/{bam-C23ZARYE.js.map → bam-ZMHBTBB4.js.map} +0 -0
  688. /package/dist/{barchart-KGXLYEIP.js.map → barchart-EF75MNTN.js.map} +0 -0
  689. /package/dist/{barchart.data-7OI5GZZ6.js.map → barchart.data-VWZB3R2Z.js.map} +0 -0
  690. /package/dist/{barchart.events-3KDNIFBG.js.map → barchart.events-AMYQOMBQ.js.map} +0 -0
  691. /package/dist/{barchart2-AT5FXOUY.js.map → barchart2-LOHN6NSE.js.map} +0 -0
  692. /package/dist/{block-TCWYUB4R.js.map → block-23BH5TZ3.js.map} +0 -0
  693. /package/dist/{block.init-7FHXQJNE.js.map → block.init-3BF6L23D.js.map} +0 -0
  694. /package/dist/{block.mds.expressionrank-UGZQK7Z3.js.map → block.mds.expressionrank-DSHATA2M.js.map} +0 -0
  695. /package/dist/{block.mds.geneboxplot-2CQLB4YN.js.map → block.mds.geneboxplot-RXQUOE3Y.js.map} +0 -0
  696. /package/dist/{block.mds.junction-JHPHWVOS.js.map → block.mds.junction-PN776TCD.js.map} +0 -0
  697. /package/dist/{block.mds.svcnv-E7P2SVKK.js.map → block.mds.svcnv-SOWUBH4K.js.map} +0 -0
  698. /package/dist/{block.svg-MVRR3C6V.js.map → block.svg-ZPYMFAGC.js.map} +0 -0
  699. /package/dist/{block.tk.aicheck-KX46G4TR.js.map → block.tk.aicheck-E22ZJJFP.js.map} +0 -0
  700. /package/dist/{block.tk.ase-WMXI47BF.js.map → block.tk.ase-S54Z5A4G.js.map} +0 -0
  701. /package/dist/{block.tk.bam-KFEGVEQQ.js.map → block.tk.bam-YOELFYXU.js.map} +0 -0
  702. /package/dist/{block.tk.bedgraphdot-P4DBCWFK.js.map → block.tk.bedgraphdot-VFUWXPSL.js.map} +0 -0
  703. /package/dist/{block.tk.bigwig.ui-WJPH2Z7F.js.map → block.tk.bigwig.ui-2SJYUPR3.js.map} +0 -0
  704. /package/dist/{block.tk.hicstraw-RSD6I2NX.js.map → block.tk.hicstraw-GZVE4HQG.js.map} +0 -0
  705. /package/dist/{block.tk.junction.textmatrixui-UCWGHZDI.js.map → block.tk.junction.textmatrixui-A726SAAL.js.map} +0 -0
  706. /package/dist/{block.tk.ld-ERSIIBM2.js.map → block.tk.ld-THUOBW72.js.map} +0 -0
  707. /package/dist/{block.tk.menu-2ZNXE7CE.js.map → block.tk.menu-V3VGODVI.js.map} +0 -0
  708. /package/dist/{block.tk.pgv-EJLACCFR.js.map → block.tk.pgv-CNUGIK5J.js.map} +0 -0
  709. /package/dist/{brainImaging-BMZJY6OT.js.map → brainImaging-4PF74IEK.js.map} +0 -0
  710. /package/dist/{brainRegions-RZEBXPAS.js.map → brainRegions-U5K3KEQF.js.map} +0 -0
  711. /package/dist/{chunk-EDXQKDVQ.js.map → chunk-2FTXOPE2.js.map} +0 -0
  712. /package/dist/{chunk-5X5LI5YM.js.map → chunk-2MCUT32T.js.map} +0 -0
  713. /package/dist/{chunk-XQSQQSGB.js.map → chunk-2SZ2VLOG.js.map} +0 -0
  714. /package/dist/{chunk-HXZSSHEB.js.map → chunk-2XBWB6P2.js.map} +0 -0
  715. /package/dist/{chunk-HXNUQOGN.js.map → chunk-34VSTY2U.js.map} +0 -0
  716. /package/dist/{chunk-SC6IPDJR.js.map → chunk-44VQIATQ.js.map} +0 -0
  717. /package/dist/{chunk-LLX3NKB4.js.map → chunk-5B5FZPZI.js.map} +0 -0
  718. /package/dist/{chunk-NLQQIVTC.js.map → chunk-5DSLFEAN.js.map} +0 -0
  719. /package/dist/{chunk-UDL2DEBB.js.map → chunk-5DSQOV7M.js.map} +0 -0
  720. /package/dist/{chunk-455XZIIA.js.map → chunk-7CZI6SE7.js.map} +0 -0
  721. /package/dist/{chunk-KNOFEVOJ.js.map → chunk-7NABQ2JU.js.map} +0 -0
  722. /package/dist/{chunk-4JWN7E7Q.js.map → chunk-7VMFUE64.js.map} +0 -0
  723. /package/dist/{chunk-27FPMFP2.js.map → chunk-7WBS7ZUI.js.map} +0 -0
  724. /package/dist/{chunk-K3OJJZCQ.js.map → chunk-AK5Z4PLV.js.map} +0 -0
  725. /package/dist/{chunk-B6U3EDAF.js.map → chunk-B3XMNPZY.js.map} +0 -0
  726. /package/dist/{chunk-KM4JBR26.js.map → chunk-B4VBTVVQ.js.map} +0 -0
  727. /package/dist/{chunk-N6QEVQZV.js.map → chunk-CHUE5Y7Y.js.map} +0 -0
  728. /package/dist/{chunk-DNVSEW6P.js.map → chunk-CNBLRB4P.js.map} +0 -0
  729. /package/dist/{chunk-UXDVUCXU.js.map → chunk-CPMOBFFR.js.map} +0 -0
  730. /package/dist/{chunk-E6XLLQCG.js.map → chunk-D3TU3RDU.js.map} +0 -0
  731. /package/dist/{chunk-EC3SKPQT.js.map → chunk-E2KY2IZS.js.map} +0 -0
  732. /package/dist/{chunk-ZUC4XNWU.js.map → chunk-FBMDK2UA.js.map} +0 -0
  733. /package/dist/{chunk-YQMENK5H.js.map → chunk-FSWSZZTG.js.map} +0 -0
  734. /package/dist/{chunk-N3JT3KCV.js.map → chunk-GPGCGFFS.js.map} +0 -0
  735. /package/dist/{chunk-C6YT5EM2.js.map → chunk-H5DR6OYM.js.map} +0 -0
  736. /package/dist/{chunk-OR43PGBV.js.map → chunk-HVZQYGQN.js.map} +0 -0
  737. /package/dist/{chunk-NU2W6B7I.js.map → chunk-HYIDLSEL.js.map} +0 -0
  738. /package/dist/{chunk-N25ENPO3.js.map → chunk-IDX6WU4U.js.map} +0 -0
  739. /package/dist/{chunk-COYULNJF.js.map → chunk-IQTEW3SK.js.map} +0 -0
  740. /package/dist/{chunk-74XVBQF7.js.map → chunk-JVVOJREJ.js.map} +0 -0
  741. /package/dist/{chunk-CLN7ANNL.js.map → chunk-KIGAMN3Z.js.map} +0 -0
  742. /package/dist/{chunk-F5ONTCHE.js.map → chunk-LAQZX5PA.js.map} +0 -0
  743. /package/dist/{chunk-MQJVDIQK.js.map → chunk-LRPQBMQE.js.map} +0 -0
  744. /package/dist/{chunk-73R5BVCY.js.map → chunk-M7JGRSFA.js.map} +0 -0
  745. /package/dist/{chunk-JWHFMFF2.js.map → chunk-MAACMLMN.js.map} +0 -0
  746. /package/dist/{chunk-6G4YOMWW.js.map → chunk-MNPTPENH.js.map} +0 -0
  747. /package/dist/{chunk-NJDW6ZQP.js.map → chunk-MU3ZC4RW.js.map} +0 -0
  748. /package/dist/{chunk-FABY3ISP.js.map → chunk-N6ALTSJ2.js.map} +0 -0
  749. /package/dist/{chunk-XVXAQ3FI.js.map → chunk-N7326KA3.js.map} +0 -0
  750. /package/dist/{chunk-PXCFA4ZQ.js.map → chunk-O64WQLAV.js.map} +0 -0
  751. /package/dist/{chunk-FVX76DZS.js.map → chunk-OEOYTMMY.js.map} +0 -0
  752. /package/dist/{chunk-IKDWQJZE.js.map → chunk-P3QPMVML.js.map} +0 -0
  753. /package/dist/{chunk-ATUYZWHV.js.map → chunk-PJM6MUTT.js.map} +0 -0
  754. /package/dist/{chunk-6YVEYTNH.js.map → chunk-QPAZPA3N.js.map} +0 -0
  755. /package/dist/{chunk-7I3LST7R.js.map → chunk-RG222M4S.js.map} +0 -0
  756. /package/dist/{chunk-55MOHL3P.js.map → chunk-S46UPZFM.js.map} +0 -0
  757. /package/dist/{chunk-GVCQGWN7.js.map → chunk-UDTNSJY2.js.map} +0 -0
  758. /package/dist/{chunk-FOPHIWFD.js.map → chunk-UPNKFGTN.js.map} +0 -0
  759. /package/dist/{chunk-JEZUPG4J.js.map → chunk-UZKHBBWY.js.map} +0 -0
  760. /package/dist/{chunk-CLNSNNQU.js.map → chunk-VG6GVF6D.js.map} +0 -0
  761. /package/dist/{chunk-EY253UB7.js.map → chunk-VO4FCZOR.js.map} +0 -0
  762. /package/dist/{chunk-CDUNE45Q.js.map → chunk-VZBMCJBR.js.map} +0 -0
  763. /package/dist/{chunk-PWUERAAF.js.map → chunk-WR4UATTO.js.map} +0 -0
  764. /package/dist/{chunk-VRLC7DAU.js.map → chunk-XNYATA6C.js.map} +0 -0
  765. /package/dist/{chunk-QSEGY3U5.js.map → chunk-Y5FH3TEH.js.map} +0 -0
  766. /package/dist/{chunk-GBXX3AHJ.js.map → chunk-YIFCXFWE.js.map} +0 -0
  767. /package/dist/{chunk-BO47H3VP.js.map → chunk-YRXB3MKU.js.map} +0 -0
  768. /package/dist/{chunk-DBFKUPM6.js.map → chunk-Z7UVDJKK.js.map} +0 -0
  769. /package/dist/{chunk-VDIVDU3T.js.map → chunk-ZDEMAKRA.js.map} +0 -0
  770. /package/dist/{condition-ZPFBPMEZ.js.map → condition-6UUQ3AAI.js.map} +0 -0
  771. /package/dist/{controls-LIVMV2GV.js.map → controls-N2NIGPHY.js.map} +0 -0
  772. /package/dist/{controls.config-2EOMBN5E.js.map → controls.config-YYIMJHWN.js.map} +0 -0
  773. /package/dist/{correlation-D6GAPOP5.js.map → correlation-DYUMFMTU.js.map} +0 -0
  774. /package/dist/{cuminc-GPFDRNUP.js.map → cuminc-EUXCL53V.js.map} +0 -0
  775. /package/dist/{cuminc.integration.spec-V4JYKLA6.js.map → cuminc.integration.spec-ZQFMIBF6.js.map} +0 -0
  776. /package/dist/{customdata.inputui-DSEUS3CT.js.map → customdata.inputui-U2VXVWJ3.js.map} +0 -0
  777. /package/dist/{dataDownload-KT6K3M7Q.js.map → dataDownload-QK2VYWYW.js.map} +0 -0
  778. /package/dist/{dataDownload.integration.spec-VEX2RTSA.js.map → dataDownload.integration.spec-NG4ZASWC.js.map} +0 -0
  779. /package/dist/{databrowser.ui-VJKNMIXA.js.map → databrowser.ui-ALW4LSLA.js.map} +0 -0
  780. /package/dist/{dictionary-B27BMR5H.js.map → dictionary-F7BPXOBO.js.map} +0 -0
  781. /package/dist/{dnaMethylation-BWQGUXVR.js.map → dnaMethylation-XNRJIBAH.js.map} +0 -0
  782. /package/dist/{dnaMethylation.integration.spec-YMGT2HYZ.js.map → dnaMethylation.integration.spec-F5ODQTVL.js.map} +0 -0
  783. /package/dist/{dofetch-BMSZZAAQ.js.map → dofetch-IYEI7WSH.js.map} +0 -0
  784. /package/dist/{e2pca-KSY4DP53.js.map → e2pca-BHB7UMS5.js.map} +0 -0
  785. /package/dist/{ep-4PAYGMWK.js.map → ep-QRFUVFSK.js.map} +0 -0
  786. /package/dist/{expclust.gdc.spec-XXFP2HHE.js.map → expclust.gdc.spec-LMH7QAU4.js.map} +0 -0
  787. /package/dist/{facet-VCJQ7QPE.js.map → facet-34HXG7MO.js.map} +0 -0
  788. /package/dist/{forms2-IUD2SNOQ.js.map → forms2-ZQUPKXE5.js.map} +0 -0
  789. /package/dist/{gb-JDH242LG.js.map → gb-HWZ5KZXX.js.map} +0 -0
  790. /package/dist/{geneExpClustering-L23JB7XA.js.map → geneExpClustering-KFMP553E.js.map} +0 -0
  791. /package/dist/{geneExpression-P2ERCRXO.js.map → geneExpression-E2GIRM6Z.js.map} +0 -0
  792. /package/dist/{geneExpression-QGPVFAN4.js.map → geneExpression-QODFRNS4.js.map} +0 -0
  793. /package/dist/{geneExpression.unit.spec-6BQBM6VL.js.map → geneExpression.unit.spec-HV44ABGV.js.map} +0 -0
  794. /package/dist/{geneORA-XIMJP665.js.map → geneORA-MJ6MFW2K.js.map} +0 -0
  795. /package/dist/{geneVariant-AUUZ7S2B.js.map → geneVariant-QT6E7YZN.js.map} +0 -0
  796. /package/dist/{geneVariant-H6BGRRON.js.map → geneVariant-UYQ4XIOQ.js.map} +0 -0
  797. /package/dist/{geneVariant.integration.spec-FRCH6VI4.js.map → geneVariant.integration.spec-HQ5GJ7UM.js.map} +0 -0
  798. /package/dist/{genefusion.ui-AAJ37VFA.js.map → genefusion.ui-5KYGD7JL.js.map} +0 -0
  799. /package/dist/{geneset-5ARBBUYH.js.map → geneset-M6T24ZYZ.js.map} +0 -0
  800. /package/dist/{genomeBrowser.spec-RV7YBSMZ.js.map → genomeBrowser.spec-CVH4S5KZ.js.map} +0 -0
  801. /package/dist/{grin2-4MYLICII.js.map → grin2-QU2UCKKE.js.map} +0 -0
  802. /package/dist/{gsea-XUMCVLFK.js.map → gsea-EGWJAATJ.js.map} +0 -0
  803. /package/dist/{hierCluster-HXOTNMC5.js.map → hierCluster-4OJ7BHAB.js.map} +0 -0
  804. /package/dist/{hierCluster-PEDY7OTZ.js.map → hierCluster-P4HGGVK7.js.map} +0 -0
  805. /package/dist/{hierCluster.config-RKYCGNWW.js.map → hierCluster.config-5DGS5EH4.js.map} +0 -0
  806. /package/dist/{hierCluster.interactivity-LPTHVWHR.js.map → hierCluster.interactivity-VEHJHBKY.js.map} +0 -0
  807. /package/dist/{hierCluster.renderers-4XWKHCNW.js.map → hierCluster.renderers-OEVSBUBK.js.map} +0 -0
  808. /package/dist/{imagePlot-3DF7ZH3U.js.map → imagePlot-MMJYC4DX.js.map} +0 -0
  809. /package/dist/{importPlot-N74SV3TL.js.map → importPlot-4HJ6VR4P.js.map} +0 -0
  810. /package/dist/{isoformExpression-FU7Y4OGU.js.map → isoformExpression-EISYQF2S.js.map} +0 -0
  811. /package/dist/{isoformExpression.unit.spec-BLQDKV37.js.map → isoformExpression.unit.spec-YKBWVL7C.js.map} +0 -0
  812. /package/dist/{jspdf.es.min-TFJHKUF5.js.map → jspdf.es.min-NXISJ3W7.js.map} +0 -0
  813. /package/dist/{launch.adhoc-Y35FZV6H.js.map → launch.adhoc-U3KOGDIC.js.map} +0 -0
  814. /package/dist/{leftlabel.sample-ERJGAYTF.js.map → leftlabel.sample-LVF5WLMZ.js.map} +0 -0
  815. /package/dist/{lollipop-DU37Q5E2.js.map → lollipop-HX2WLD5J.js.map} +0 -0
  816. /package/dist/{maftimeline-GRXGOOSJ.js.map → maftimeline-VN6SYUPQ.js.map} +0 -0
  817. /package/dist/{matrix-G3BULZ7Y.js.map → matrix-6UASVMIW.js.map} +0 -0
  818. /package/dist/{matrix-TCTX26A4.js.map → matrix-FYYLVW7O.js.map} +0 -0
  819. /package/dist/{matrix.cells-ED6RS5EC.js.map → matrix.cells-3RUGV7XG.js.map} +0 -0
  820. /package/dist/{matrix.config-QHO2YNOT.js.map → matrix.config-ELBFN3JN.js.map} +0 -0
  821. /package/dist/{matrix.data-KQFMXWRX.js.map → matrix.data-MHFF47ZY.js.map} +0 -0
  822. /package/dist/{matrix.groups-RE74EFLY.js.map → matrix.groups-UJRFFG5J.js.map} +0 -0
  823. /package/dist/{matrix.integration.spec-Y4FCZ2Q2.js.map → matrix.integration.spec-5DUNUOQ3.js.map} +0 -0
  824. /package/dist/{matrix.interactivity-3DW5WAM3.js.map → matrix.interactivity-2TZ3ON4H.js.map} +0 -0
  825. /package/dist/{matrix.layout-W57D765I.js.map → matrix.layout-IGUBUCB2.js.map} +0 -0
  826. /package/dist/{matrix.legend-ZST44PIB.js.map → matrix.legend-UBQF6LMD.js.map} +0 -0
  827. /package/dist/{matrix.renderers-NFRKXO7Y.js.map → matrix.renderers-ON2EXXIS.js.map} +0 -0
  828. /package/dist/{matrix.serieses-6ZKTFVWY.js.map → matrix.serieses-5XH7NO23.js.map} +0 -0
  829. /package/dist/{matrix.sort-2UE47IOC.js.map → matrix.sort-QSWTVRJT.js.map} +0 -0
  830. /package/dist/{matrix.sort.unit.spec-5CMWEXPE.js.map → matrix.sort.unit.spec-7Y6D456I.js.map} +0 -0
  831. /package/dist/{matrix.sorterUi.unit.spec-Y2HXWHJN.js.map → matrix.sorterUi.unit.spec-3XNGEZZ2.js.map} +0 -0
  832. /package/dist/{mavb-BI4XKI5P.js.map → mavb-J4AUXBHZ.js.map} +0 -0
  833. /package/dist/{mds.fimo-UJYESPNC.js.map → mds.fimo-I6OALZRX.js.map} +0 -0
  834. /package/dist/{mds.samplescatterplot-JKU5B4QR.js.map → mds.samplescatterplot-XSWR37S5.js.map} +0 -0
  835. /package/dist/{mds.survivalplot-OP7Y4D3L.js.map → mds.survivalplot-Q3TE4A5P.js.map} +0 -0
  836. /package/dist/{oncomatrix-A3IE47HV.js.map → oncomatrix-C4RDUA2C.js.map} +0 -0
  837. /package/dist/{oncomatrix.spec-TDWB2ROF.js.map → oncomatrix.spec-QVD3XUTH.js.map} +0 -0
  838. /package/dist/{plot.2dvaf-XY34TDSM.js.map → plot.2dvaf-MNONDWFA.js.map} +0 -0
  839. /package/dist/{plot.app-WRCBLYGO.js.map → plot.app-3T275PW5.js.map} +0 -0
  840. /package/dist/{plot.barplot-RXGOUNHM.js.map → plot.barplot-LOLIPHXG.js.map} +0 -0
  841. /package/dist/{plot.boxplot-GBZGSS3D.js.map → plot.boxplot-I6CAYXPV.js.map} +0 -0
  842. /package/dist/{plot.brainImaging-DYPKMNHL.js.map → plot.brainImaging-Y76KB6IC.js.map} +0 -0
  843. /package/dist/{plot.disco-5K2SCKJ4.js.map → plot.disco-N5ISUUNQ.js.map} +0 -0
  844. /package/dist/{plot.dzi-THJIFHIS.js.map → plot.dzi-Q6K542P6.js.map} +0 -0
  845. /package/dist/{plot.ssgq-FSIUIV3A.js.map → plot.ssgq-OGLNOY4Q.js.map} +0 -0
  846. /package/dist/{plot.vaf2cov-HP6KEBVJ.js.map → plot.vaf2cov-NXQ5D3KA.js.map} +0 -0
  847. /package/dist/{plot.wsi-MR6JMOXW.js.map → plot.wsi-YMDUOZ57.js.map} +0 -0
  848. /package/dist/{polar2-IT3OF5DX.js.map → polar2-AQ2W3SNH.js.map} +0 -0
  849. /package/dist/{profileForms-XXGJVF2T.js.map → profileForms-TCPZPI22.js.map} +0 -0
  850. /package/dist/{profilePlot-J2C35OEY.js.map → profilePlot-4RKKICKC.js.map} +0 -0
  851. /package/dist/{qualitative-N7S2JHZM.js.map → qualitative-NCFIVW6S.js.map} +0 -0
  852. /package/dist/{radar2-CDDOQGQX.js.map → radar2-UJFFZE7T.js.map} +0 -0
  853. /package/dist/{radarFacility2-ZQTHO2ON.js.map → radarFacility2-ATQBCF3N.js.map} +0 -0
  854. /package/dist/{regression-PBGAMZAV.js.map → regression-4RSS7447.js.map} +0 -0
  855. /package/dist/{regression.inputs-54E5YKI4.js.map → regression.inputs-5XGUGNWV.js.map} +0 -0
  856. /package/dist/{regression.inputs.term-52MBTMVM.js.map → regression.inputs.term-LSJAZWE4.js.map} +0 -0
  857. /package/dist/{regression.inputs.values.table-F3FOAYFV.js.map → regression.inputs.values.table-GNIJZETG.js.map} +0 -0
  858. /package/dist/{regression.integration.spec-M4RPJUE4.js.map → regression.integration.spec-MV652K47.js.map} +0 -0
  859. /package/dist/{regression.results-JOK6I2ZD.js.map → regression.results-M3YH6ZD3.js.map} +0 -0
  860. /package/dist/{regression.spec-O4HZB2HQ.js.map → regression.spec-455WPZHP.js.map} +0 -0
  861. /package/dist/{report-BDDTM7SV.js.map → report-MH3V7SHZ.js.map} +0 -0
  862. /package/dist/{sampleScatter.spec-272GLYEK.js.map → sampleScatter.spec-OTIL3JDG.js.map} +0 -0
  863. /package/dist/{sampleView-E6OHEEP4.js.map → sampleView-DHACOCEG.js.map} +0 -0
  864. /package/dist/{samplelst-3LNF3DBG.js.map → samplelst-F3AXOE2D.js.map} +0 -0
  865. /package/dist/{samplematrix-HL445X7I.js.map → samplematrix-M6CKKVNE.js.map} +0 -0
  866. /package/dist/{sc-4LELHVIS.js.map → sc-S5XA37JJ.js.map} +0 -0
  867. /package/dist/{scatter-IZIZURQD.js.map → scatter-IRPFNDHW.js.map} +0 -0
  868. /package/dist/{scatter.integration.spec-BBEWMA7M.js.map → scatter.integration.spec-5FWVHMVJ.js.map} +0 -0
  869. /package/dist/{selectGenomeWithTklst-5LQGT4Z7.js.map → selectGenomeWithTklst-NIOUX6MV.js.map} +0 -0
  870. /package/dist/{singleCellCellType-T3ZT64EK.js.map → singleCellCellType-FTGLNH2J.js.map} +0 -0
  871. /package/dist/{singleCellCellType.unit.spec-AE4IAHOF.js.map → singleCellCellType.unit.spec-BJ5YZAXF.js.map} +0 -0
  872. /package/dist/{singleCellGeneExpression-SRJXSDEB.js.map → singleCellGeneExpression-56EDDG5H.js.map} +0 -0
  873. /package/dist/{singleCellGeneExpression.unit.spec-EPL73UUO.js.map → singleCellGeneExpression.unit.spec-XSQRWAI3.js.map} +0 -0
  874. /package/dist/{singleCellPlot-P2BHFTYZ.js.map → singleCellPlot-TH77EJZ4.js.map} +0 -0
  875. /package/dist/{singlecell-7KRD5DP7.js.map → singlecell-3QZQZM32.js.map} +0 -0
  876. /package/dist/{singlecell-32SSD7VN.js.map → singlecell-7KJMBASC.js.map} +0 -0
  877. /package/dist/{snp-LE5R377N.js.map → snp-YXG5O4U4.js.map} +0 -0
  878. /package/dist/{snp.unit.spec-UY6KQ5NJ.js.map → snp.unit.spec-O27J7OOK.js.map} +0 -0
  879. /package/dist/{snplocus-CP34ABUJ.js.map → snplocus-CQZSC7P6.js.map} +0 -0
  880. /package/dist/{spliceevent.a53ss.diagram-JWLWQDNJ.js.map → spliceevent.a53ss.diagram-K5ZDPZE6.js.map} +0 -0
  881. /package/dist/{spliceevent.exonskip.diagram-C5526P7P.js.map → spliceevent.exonskip.diagram-A2VZ3TTF.js.map} +0 -0
  882. /package/dist/{spliceevent.noeventdiagram-352M63YB.js.map → spliceevent.noeventdiagram-DJDA6ENK.js.map} +0 -0
  883. /package/dist/{ssGSEA-BFTCECV3.js.map → ssGSEA-3FTGRUTC.js.map} +0 -0
  884. /package/dist/{ssGSEA.unit.spec-4OUCKRDQ.js.map → ssGSEA.unit.spec-GF35KBTX.js.map} +0 -0
  885. /package/dist/{summarizeCnvGeneexp-Y3AWFIZA.js.map → summarizeCnvGeneexp-6IDTNOYE.js.map} +0 -0
  886. /package/dist/{summarizeMutationCnv-KCOVQEBC.js.map → summarizeMutationCnv-BMEN3XNV.js.map} +0 -0
  887. /package/dist/{summarizeMutationDiagnosis-EQXEQABW.js.map → summarizeMutationDiagnosis-LW6K6373.js.map} +0 -0
  888. /package/dist/{summarizeMutationSurvival-4VGLG4SC.js.map → summarizeMutationSurvival-E7REF2VY.js.map} +0 -0
  889. /package/dist/{summary-DXYCBNI4.js.map → summary-MKA7OJKE.js.map} +0 -0
  890. /package/dist/{summary.integration.spec-MZTJISLP.js.map → summary.integration.spec-IV6I6SNJ.js.map} +0 -0
  891. /package/dist/{summaryInput-5Z3XVIL6.js.map → summaryInput-NET6SPM4.js.map} +0 -0
  892. /package/dist/{sunburst-WVSQJYP2.js.map → sunburst-CO3MXFTJ.js.map} +0 -0
  893. /package/dist/{survival-3R3J2JBE.js.map → survival-MIPCEBS3.js.map} +0 -0
  894. /package/dist/{survival-XQWFVGCJ.js.map → survival-QQXTCNDU.js.map} +0 -0
  895. /package/dist/{svg2pdf.es.min-H4DXBG4O.js.map → svg2pdf.es.min-P2F6SSVJ.js.map} +0 -0
  896. /package/dist/{svgraph-SY2HVMYL.js.map → svgraph-YF7BS7TN.js.map} +0 -0
  897. /package/dist/{svmr-TIIMFKG7.js.map → svmr-J2JLQGEE.js.map} +0 -0
  898. /package/dist/{table-5RFTXIQL.js.map → table-7YL7I4GH.js.map} +0 -0
  899. /package/dist/{termCollection-23QXTZDN.js.map → termCollection-LNEN72IV.js.map} +0 -0
  900. /package/dist/{termCollection-7KXABWVW.js.map → termCollection-SOLNYAZ4.js.map} +0 -0
  901. /package/dist/{termCollection.unit.spec-4AN2Z4PQ.js.map → termCollection.unit.spec-LTX7UVYP.js.map} +0 -0
  902. /package/dist/{tk-WW6PJGPQ.js.map → tk-RZDP2YT5.js.map} +0 -0
  903. /package/dist/{tp.ui-S5PO3MPH.js.map → tp.ui-T6XXBHHD.js.map} +0 -0
  904. /package/dist/{tvs.dt-O7LUM5TK.js.map → tvs.dt-7APM37Y3.js.map} +0 -0
  905. /package/dist/{tvs.dtcnv.categorical-2OUFOD3W.js.map → tvs.dtcnv.categorical-YIPXQSIL.js.map} +0 -0
  906. /package/dist/{tvs.dtcnv.continuous-NOOUY5SZ.js.map → tvs.dtcnv.continuous-ITNZE3SH.js.map} +0 -0
  907. /package/dist/{tvs.dtfusion-KXQMP3UF.js.map → tvs.dtfusion-2JIIPDTN.js.map} +0 -0
  908. /package/dist/{tvs.dtsnvindel-PWHFTWZU.js.map → tvs.dtsnvindel-HO2PUFN2.js.map} +0 -0
  909. /package/dist/{tvs.dtsv-25FLS572.js.map → tvs.dtsv-7KCWSUYO.js.map} +0 -0
  910. /package/dist/{tvs.samplelst-FLXNJFIV.js.map → tvs.samplelst-KKWJQNLW.js.map} +0 -0
  911. /package/dist/{tvs.termCollection-PSVOMJE4.js.map → tvs.termCollection-R2IGRG2U.js.map} +0 -0
  912. /package/dist/{violin-SWMEFWRA.js.map → violin-OTPZQTGA.js.map} +0 -0
  913. /package/dist/{violin.integration.spec-6EQ6GC2N.js.map → violin.integration.spec-KESWDSBM.js.map} +0 -0
  914. /package/dist/{violin.interactivity-WBIWPLSM.js.map → violin.interactivity-Q2WALZO3.js.map} +0 -0
  915. /package/dist/{violin.renderer-3WARZUOH.js.map → violin.renderer-WIRIV7QY.js.map} +0 -0
  916. /package/dist/{vocabulary-WLHYHDX7.js.map → vocabulary-XXDHHHPJ.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/app.mdsjson.js", "../gdc/launch.ts", "../src/app.parseurl.js"],
4
+ "sourcesContent": ["import * as client from './client'\n\n/*\n********************** EXPORTED\ninit_mdsjson\nvalidate_mdsjson\nget_json_tk\nget_scatterplot_data\n*/\n\nexport async function init_mdsjson(file_str, url_str) {\n\tlet json_files = [],\n\t\tjson_urls = []\n\n\tif (file_str && file_str.includes(',')) json_files = file_str.split(',')\n\telse if (file_str) json_files.push(file_str)\n\telse if (url_str && url_str.includes(',')) json_urls = url_str.split(',')\n\telse if (url_str) json_urls.push(url_str)\n\n\tconst tklst = []\n\tif (json_files.length) {\n\t\tconst json_url = undefined\n\t\tfor (const json_file of json_files) {\n\t\t\ttklst.push(await tklst_pipeline(json_file, json_url))\n\t\t}\n\t} else if (json_urls.length) {\n\t\tconst json_file = undefined\n\t\tfor (const json_url of json_urls) {\n\t\t\ttklst.push(await tklst_pipeline(json_file, json_url))\n\t\t}\n\t}\n\n\treturn tklst\n}\n\nasync function tklst_pipeline(json_file, json_url) {\n\tconst obj = await mdsjson_parse(json_file, json_url)\n\tvalidate_mdsjson(obj)\n\tconst tk = get_json_tk(obj)\n\treturn tk\n}\n\nasync function mdsjson_parse(json_file, json_url) {\n\tif (json_file !== undefined && json_file == '') throw '.jsonfile missing'\n\tif (json_url !== undefined && json_url == '') throw '.jsonurl missing'\n\n\tlet tmp\n\tif (json_file !== undefined) tmp = await client.dofetch('textfile', { file: json_file })\n\telse if (json_url !== undefined) tmp = await client.dofetch('urltextfile', { url: json_url })\n\tif (tmp.error) {\n\t\tthrow tmp.error\n\t}\n\treturn JSON.parse(tmp.text)\n}\n\nexport function validate_mdsjson(obj) {\n\tif (!obj) throw 'file is missing'\n\tif (!obj.type) throw 'dataset type is missing'\n\tconst svcnvfile = obj.svcnvfile || obj.svcnvurl\n\tconst vcffile = obj.vcffile || obj.vcfurl\n\tif (!svcnvfile && !vcffile) throw 'vcf or cnv file/url is required'\n\tif (Object.keys(obj).filter(x => x.includes('expression')).length) {\n\t\tif (!obj.expressionfile && !obj.expressionurl) throw 'expression file/url is missing'\n\t}\n\tif (Object.keys(obj).filter(x => x.includes('rnabam')).length) {\n\t\tif (!obj.rnabamfile && !obj.rnabamurl) throw 'rnabam file/url is missing'\n\t}\n\tif (obj.sampleset) {\n\t\tfor (const sample of obj.sampleset) {\n\t\t\tif (obj.sampleset.length != 1 && !sample.name) throw 'sampleset name is missing'\n\t\t\tif (!sample.samples) throw 'sampleset samples[] is missing'\n\t\t}\n\t}\n\tif (obj.sample2assaytrack) {\n\t\tfor (const [sample, assaylst] of Object.entries(obj.sample2assaytrack)) {\n\t\t\tif (!assaylst.length) throw 'assay[] missing for ' + sample\n\t\t\tfor (const assay of assaylst) {\n\t\t\t\tif (!assay.name) throw 'assay name is missing for ' + sample\n\t\t\t\tif (!assay.type) throw 'assay type is missing for ' + sample\n\t\t\t}\n\t\t}\n\t}\n\n\tif (obj.groupsamplebyattr) {\n\t\tif (!obj.groupsamplebyattr.attrlst) return '.attrlst[] missing from groupsamplebyattr'\n\t\tif (obj.groupsamplebyattr.attrlst.length == 0) return 'groupsamplebyattr.attrlst[] empty array'\n\n\t\tfor (const attr of obj.groupsamplebyattr.attrlst) {\n\t\t\tif (!attr.k) return 'k missing from one of groupsamplebyattr.attrlst[]'\n\t\t}\n\n\t\tif (obj.groupsamplebyattr.sortgroupby) {\n\t\t\tif (!obj.groupsamplebyattr.sortgroupby.key) return '.key missing from .sortgroupby'\n\t\t\tif (!obj.groupsamplebyattr.sortgroupby.order) return '.order[] missing from .sortgroupby'\n\t\t\tif (!Array.isArray(obj.groupsamplebyattr.sortgroupby.order)) return '.order must be an array'\n\t\t\t// values of order[] is not validated\n\t\t}\n\t\tif (!obj.groupsamplebyattr.attrnamespacer) obj.groupsamplebyattr.attrnamespacer = ', '\n\t}\n\n\tif (obj.fixedgeneexpression) {\n\t\tfor (const gene of obj.fixedgeneexpression) {\n\t\t\tif (!gene.gene) throw 'gene missing in fixedgeneexpression array'\n\t\t}\n\t}\n\n\t// hidden classes for vcf file\n\tif (obj.vcf) {\n\t\tif (!obj.vcf.hiddenclass) throw 'hiddenclasses[] missing from .vcf'\n\t}\n}\n\nexport function get_json_tk(tkobj) {\n\tconst track = {\n\t\ttype: tkobj.type,\n\t\tname: tkobj.name\n\t}\n\n\t// dense or full\n\tif (tkobj.isdense == 'true' || tkobj.isdense == true || tkobj.isfull === false) track.isdense = true\n\telse if (tkobj.isfull) track.isfull = true\n\n\t// svcnv file\n\tif (tkobj.svcnvfile) track.file = tkobj.svcnvfile\n\telse if (tkobj.svcnvurl) track.url = tkobj.svcnvurl\n\n\t// expressionrank\n\tif (Object.keys(tkobj).filter(x => x.includes('expression')).length) {\n\t\ttrack.checkexpressionrank = {\n\t\t\tfile: tkobj.expressionfile,\n\t\t\turl: tkobj.expressionurl\n\t\t}\n\t}\n\n\t// vcf\n\tif (Object.keys(tkobj).filter(x => x.includes('vcf')).length) {\n\t\ttrack.checkvcf = {\n\t\t\tfile: tkobj.vcffile,\n\t\t\turl: tkobj.vcfurl\n\t\t}\n\t}\n\n\t// hidden mutation classes\n\tif (tkobj.vcf) {\n\t\tif (tkobj.vcf.hiddenclass) {\n\t\t\ttrack.vcf = []\n\t\t\ttrack.vcf.hiddenclass = tkobj.vcf.hiddenclass\n\t\t}\n\t}\n\n\t// rna bam\n\tif (Object.keys(tkobj).filter(x => x.includes('rnabam')).length) {\n\t\ttrack.checkrnabam = {\n\t\t\tfile: tkobj.rnabamfile,\n\t\t\turl: tkobj.rnabamurl\n\t\t}\n\t}\n\n\t// sampleset\n\tif (tkobj.sampleset) {\n\t\ttrack.sampleset = tkobj.sampleset\n\t}\n\n\t// SampleAssayTrack\n\tif (tkobj.sample2assaytrack) {\n\t\ttrack.sample2assaytrack = tkobj.sample2assaytrack\n\t}\n\n\tif (tkobj.groupsamplebyattr) {\n\t\ttrack.groupsamplebyattr = tkobj.groupsamplebyattr\n\t}\n\n\t// fixed panel of gene expression\n\ttrack.fixedgeneexpression = tkobj.fixedgeneexpression\n\t// show all samples\n\ttrack.getallsamples = tkobj.getallsamples\n\n\t// cnv cutoff settings\n\ttrack.valueCutoff = tkobj.cnvValueCutoff !== undefined ? tkobj.cnvValueCutoff : undefined\n\ttrack.bplengthUpperLimit = tkobj.cnvLengthUpperLimit !== undefined ? tkobj.cnvLengthUpperLimit : undefined\n\n\t// loh cutoff settings\n\ttrack.segmeanValueCutoff = tkobj.segmeanValueCutoff !== undefined ? tkobj.segmeanValueCutoff : undefined\n\ttrack.lohLengthUpperLimit = tkobj.lohLengthUpperLimit !== undefined ? tkobj.lohLengthUpperLimit : undefined\n\n\t// multihide labels\n\ttrack.multihidelabel_vcf = tkobj.multihidelabel_vcf !== undefined ? tkobj.multihidelabel_vcf : undefined\n\ttrack.multihidelabel_fusion = tkobj.multihidelabel_fusion !== undefined ? tkobj.multihidelabel_fusion : undefined\n\ttrack.multihidelabel_sv = tkobj.multihidelabel_sv !== undefined ? tkobj.multihidelabel_sv : undefined\n\n\ttrack.legend_vorigin = tkobj.legend_vorigin\n\n\treturn track\n}\n\nexport async function get_scatterplot_data(json_file, json_url) {\n\tlet data = {}\n\tconst obj = await mdsjson_parse(json_file, json_url)\n\tdata.mdssamplescatterplot = obj\n\treturn data\n}\n", "/* launch from runpp() call. GDC react wrappers in the GFF repo use this method, to launch apps in gdc portal\non matching with a flag, imports corresponding plot script, and returns api object to runpp()\nwhen no flags are matched, returns undefined\n\nnote that this launch method has been adopted by non-gdc ds, for launching some plots in non-gdc portals\n*/\nexport async function mayLaunchGdcPlotFromRunpp(arg, app) {\n\tif (arg.geneSearch4GDCmds3) {\n\t\tconst _ = await import('./lollipop.js')\n\t\treturn await _.init(arg, app.holder0, app.genomes)\n\t}\n\tif (arg.launchIdc) {\n\t\tconst _ = await import('./idcviewer/IDCViewer.ts')\n\t\treturn await _.init(arg, app.holder0)\n\t}\n\tif (arg.launchGdcGb) {\n\t\tconst _ = await import('./gb.ts')\n\t\treturn await _.init(arg, app.holder0, app.genomes)\n\t}\n\tif (arg.launchGdcMatrix) {\n\t\tconst _ = await import('./oncomatrix.js')\n\t\treturn await _.init(arg, app.holder0, app.genomes)\n\t}\n\tif (arg.launchGdcHierCluster) {\n\t\tconst _ = await import('./geneExpClustering.js')\n\t\treturn await _.init(arg, app.holder0, app.genomes)\n\t}\n\tif (arg.launchGdcMaf) {\n\t\tconst _ = await import('./maf.js')\n\t\treturn await _.gdcMAFui(arg, app.holder0)\n\t}\n\tif (arg.launchGdcGrin2) {\n\t\tconst _ = await import('./grin2.ts')\n\t\treturn await _.gdcGRIN2ui(arg, app.holder0, app.genomes)\n\t}\n\tif (arg.launchGdcScRNAseq) {\n\t\tconst _ = await import('./singlecell.ts')\n\t\treturn await _.init(arg, app.holder0, app.genomes)\n\t}\n\tif (arg.launchGdcScApp) {\n\t\tconst _ = await import('./sc.ts')\n\t\treturn await _.init(arg, app.holder0, app.genomes)\n\t}\n\tif (arg.launchGdcCorrelation) {\n\t\tconst _ = await import('./correlation.ts')\n\t\treturn await _.init(arg, app.holder0, app.genomes)\n\t}\n\tif (arg.launchGdcDE) {\n\t\tconst _ = await import('./DE.ts')\n\t\treturn await _.init(arg, app.holder0, app.genomes)\n\t}\n\tif (arg.gdcbamslice) {\n\t\tconst _ = await import('./bam.js')\n\t\targ.gdcbamslice.filter0 = arg.filter0\n\t\treturn await _.bamsliceui(arg.gdcbamslice, app.holder0, app.genomes)\n\t}\n}\n\n/* launch from url param; this is for local testing and not used in gdc portal\nreturns true for a match\n*/\nexport async function mayLaunchGdcPlotFromUrlparam(urlp, arg) {\n\tif (urlp.has('gdcbamslice')) {\n\t\t// for local testing, not used in gdc portal\n\t\tconst _ = await import('./bam.js')\n\t\t_.bamsliceui(\n\t\t\t{\n\t\t\t\tdebugmode: arg.debugmode,\n\t\t\t\tstream2download: urlp.has('stream2download') // for testing only, launch the app in \"download mode\", will not visualize\n\t\t\t} as any,\n\t\t\targ.holder,\n\t\t\targ.genomes\n\t\t)\n\t\treturn true\n\t}\n\tif (urlp.has('gdcmaf')) {\n\t\t// for local testing, not used in gdc portal\n\t\tconst _ = await import('./maf.js')\n\t\tconst p: any = {\n\t\t\tdebugmode: arg.debugmode\n\t\t}\n\t\tif (urlp.has('filter0')) p.filter0 = urlp.get('filter0')\n\t\t_.gdcMAFui(p, arg.holder)\n\t\treturn true\n\t}\n\tif (urlp.has('gdcidc')) {\n\t\tconst _ = await import('./idcviewer/IDCViewer.ts')\n\t\tconst p: any = {\n\t\t\tfilter0: urlp.get('filter0')\n\t\t}\n\t\treturn await _.init(p, arg.holder)\n\t}\n\tif (urlp.has('gdcgrin2')) {\n\t\t// for local testing, not used in gdc portal\n\t\tconst _ = await import('./grin2.ts')\n\t\tconst p: any = {\n\t\t\tdebugmode: arg.debugmode\n\t\t}\n\t\tif (urlp.has('filter0')) p.filter0 = urlp.get('filter0')\n\t\t_.gdcGRIN2ui(p, arg.holder, arg.genomes)\n\t\treturn true\n\t}\n\tif (urlp.has('gdccorrelation')) {\n\t\t// for local testing, not used in gdc portal\n\t\tconst _ = await import('./correlation.ts')\n\t\tconst p: any = {\n\t\t\tdebugmode: arg.debugmode\n\t\t}\n\t\tif (urlp.has('filter0')) p.filter0 = urlp.get('filter0')\n\t\t_.init(p, arg.holder, arg.genomes)\n\t\treturn true\n\t}\n}\n", "import blockinit from './block.init'\nimport * as client from './client'\nimport { loadstudycohort } from './tp.init'\nimport { string2pos } from './coord'\nimport * as mdsjson from './app.mdsjson'\nimport { getSavedToken } from '#common/dofetch'\nimport urlmap from '#common/urlmap'\nimport { first_genetrack_tolist } from '#common/1stGenetk'\nimport { parentCorsMessage, childCorsMessage } from '#common/embedder-helpers'\nimport { sayerror } from '#dom'\nimport { copyMerge } from '#rx'\nimport { mayLaunchGdcPlotFromUrlparam } from '../gdc/launch.ts'\n/*\n********************** EXPORTED\nparse()\nget_tklst()\n*/\n\nexport async function parse(arg) {\n\t/*\narg\n\t.jwt\n\t.genomes{}\n\t.hostURL\n\t.variantPageCall_snv\n\t.samplecart\n\t.holder\n\t.debugmode\n\nupon error, throw err message as a string\n*/\n\tconst urlp = urlmap()\n\tconst features = JSON.parse(sessionStorage.getItem('optionalFeatures'))\n\n\tif (urlp.has('appcard')) {\n\t\tconst ad = await import('../appdrawer/adSandbox')\n\t\tconst cardJsonFile = urlp.get('appcard')\n\t\tconst example = urlp.get('example')\n\t\tconst re = await client.dofetch2('/cards/index.json')\n\t\targ.app.drawer.opts.genomes = arg.genomes\n\t\targ.app.drawer.opts.fromApp = true\n\t\t//Quick fix to launch the sandbox within the current openSandbox code\n\t\targ.app.drawer.opts.app = {\n\t\t\tcardsPath: 'cards'\n\t\t}\n\t\tconst element = re.elements.findIndex(\n\t\t\tt =>\n\t\t\t\tt.sandboxJson == cardJsonFile ||\n\t\t\t\tt.sandboxHtml == cardJsonFile ||\n\t\t\t\tt.name.toUpperCase().includes(cardJsonFile.toUpperCase())\n\t\t)\n\n\t\t//Check if track/app can be shown on this server\n\t\t//If not show error message\n\t\tif (re.elements[element]?.configFeature) {\n\t\t\tif (!features[re.elements[element].configFeature]) {\n\t\t\t\tsayerror(arg.holder, `This track or app is not enabled on this site.`)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tif (example) {\n\t\t\targ.app.drawer.opts.example = example\n\t\t}\n\n\t\tif (element <= 0) {\n\t\t\tconst nestedCards = [...re.elements.filter(e => e.type == 'nestedCard')]\n\t\t\tlet element, c\n\t\t\tnestedCards.findIndex(t => {\n\t\t\t\tfor (const [i, child] of t.children.entries()) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tchild.sandboxJson == cardJsonFile ||\n\t\t\t\t\t\tchild.sandboxHtml == cardJsonFile ||\n\t\t\t\t\t\tchild.name.toUpperCase().includes(cardJsonFile.toUpperCase())\n\t\t\t\t\t) {\n\t\t\t\t\t\telement = t\n\t\t\t\t\t\tc = i\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\tif (!element) {\n\t\t\t\tsayerror(arg.holder, `Invalid app card.`)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tad.openSandbox(element.children[c], arg.app.drawer.opts)\n\t\t} else {\n\t\t\tad.openSandbox(re.elements[element], arg.app.drawer.opts)\n\t\t}\n\t\treturn\n\t}\n\n\tif (await mayLaunchGdcPlotFromUrlparam(urlp, arg)) return // gdc plot launched\n\n\tif (urlp.has('termdb')) {\n\t\tconst value = urlp.get('termdb')\n\t\tconst state = typeof value === 'string' ? JSON.parse(value) : value\n\t\tconst opts = {\n\t\t\tholder: arg.holder,\n\t\t\tstate: copyMerge(state, arg.state || {})\n\t\t}\n\t\tconst _ = await import('../termdb/app')\n\t\tconst subapp = _.appInit(opts)\n\t\treturn subapp\n\t}\n\n\tif (urlp.has('massnative')) {\n\t\t/* ?massnative=hg38-test,TermdbTest\n\t\talternative url for mass={\"genome\":\"hg38-test\",\"dslabel\":\"TermdbTest\"}\n\t\ttidier to include in manuscript\n\t\tno customization supported, though later additional fields may be appended to customize something\n\t\tit is intended that the dataset should carry essential customizations so the link opens mass ui with expected customizations\n\t\t*/\n\t\tconst value = urlp.get('massnative')\n\t\tconst [genomename, dslabel] = value.split(',')\n\t\tif (!genomename || !dslabel) throw 'value is not \"genome,dslabel\"'\n\t\tconst opts = {\n\t\t\tholder: arg.holder,\n\t\t\tgenome: arg.genomes[genomename],\n\t\t\tstate: copyMerge(\n\t\t\t\t{\n\t\t\t\t\tgenome: genomename,\n\t\t\t\t\tdslabel\n\t\t\t\t},\n\t\t\t\targ.state || {}\n\t\t\t),\n\t\t\tpkgver: arg.app.pkgver,\n\t\t\tlaunchDate: arg.app.launchDate\n\t\t}\n\t\tif (!opts.genome) throw 'invalid genome'\n\t\tchildCorsMessage(opts)\n\n\t\tconst _ = await import('../mass/app')\n\t\tconst subapp = await _.appInit(opts)\n\t\treturn subapp\n\t}\n\n\tif (urlp.has('mass')) {\n\t\tconst value = urlp.get('mass')\n\t\tconst state = typeof value === 'string' ? JSON.parse(value) : value\n\t\tconst opts = {\n\t\t\tdebug: arg.app.debugmode,\n\t\t\tholder: arg.holder,\n\t\t\tstate: copyMerge(state, arg.state || {}),\n\t\t\tpkgver: arg.app.pkgver,\n\t\t\tlaunchDate: arg.app.launchDate\n\t\t}\n\t\tif (state.genome) {\n\t\t\topts.genome = arg.genomes[state.genome]\n\t\t} else if (state?.vocab?.genome) {\n\t\t\topts.genome = arg.genomes[state.vocab.genome]\n\t\t}\n\t\tchildCorsMessage(opts)\n\n\t\tconst _ = await import('../mass/app')\n\t\tconst subapp = await _.appInit(opts)\n\t\treturn subapp\n\t}\n\n\tif (urlp.has('mass-session-file') || urlp.has('mass-session-url')) {\n\t\tlet opts\n\t\tif (urlp.has('mass-session-file')) {\n\t\t\tconst file = urlp.get('mass-session-file')\n\t\t\tconst d = await client.dofetch3(`/textfile`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tbody: JSON.stringify({ file })\n\t\t\t})\n\t\t\tif (typeof d != 'object') throw 'data not object'\n\t\t\tif (d.error) throw d.error\n\t\t\tif (!d.text) throw 'data.text missing'\n\t\t\tconst state = JSON.parse(d.text)\n\n\t\t\tif (features.overrideEmbedderHostInMassSession) {\n\t\t\t\t// on local dev, set this to override \"embedder{}\" setting in session file\n\t\t\t\t// to prevent redirecting to portal site and test the session with local pp\n\t\t\t\tstate.embedder.host = features.overrideEmbedderHostInMassSession\n\t\t\t\tstate.embedder.origin = 'http://' + features.overrideEmbedderHostInMassSession\n\t\t\t\tstate.embedder.href = `http://${features.overrideEmbedderHostInMassSession}/`\n\t\t\t}\n\n\t\t\tif (state.embedder?.origin && state.embedder.origin != window.location.origin) {\n\t\t\t\tparentCorsMessage({ state })\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\topts = {\n\t\t\t\tdebug: arg.app.debugmode,\n\t\t\t\tholder: arg.holder,\n\t\t\t\tstate,\n\t\t\t\tgenome: arg.genomes[state.vocab.genome],\n\t\t\t\tpkgver: arg.app.pkgver,\n\t\t\t\tlaunchDate: arg.app.launchDate\n\t\t\t}\n\t\t} else if (urlp.has('mass-session-url')) {\n\t\t\tconst url = urlp.get('mass-session-url')\n\t\t\tconst d = await client.dofetch3('/urltextfile', {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tbody: JSON.stringify({ url })\n\t\t\t})\n\t\t\tif (typeof d != 'object') throw 'data not object'\n\t\t\tif (d.error) throw d.error\n\t\t\tif (!d.text) throw 'data.text missing'\n\t\t\tconst state = JSON.parse(d.text)\n\n\t\t\tif (state.embedder?.origin && state.embedder.origin != window.location.origin) {\n\t\t\t\tparentCorsMessage({ state })\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\topts = {\n\t\t\t\tdebug: arg.app.debugmode,\n\t\t\t\tholder: arg.holder,\n\t\t\t\tstate: copyMerge(state, arg.state || {}),\n\t\t\t\tgenome: arg.genomes[state.vocab.genome],\n\t\t\t\tpkgver: arg.app.pkgver,\n\t\t\t\tlaunchDate: arg.app.launchDate\n\t\t\t}\n\t\t}\n\t\tconst _ = await import('../mass/app')\n\t\tconst subapp = _.appInit(opts)\n\t\treturn subapp\n\t}\n\n\tif (urlp.has('mass-session-id')) {\n\t\tconst id = urlp.get('mass-session-id')\n\t\tconst src = urlp.get('src')\n\t\tlet res\n\t\tif (src == 'browser') {\n\t\t\tconst json = localStorage.getItem('savedMassSessions')\n\t\t\tconst savedSessions = JSON.parse(json)\n\t\t\tres = { state: savedSessions[id] }\n\t\t} else {\n\t\t\tconst fetchOpts = { headers: {}, body: { id } }\n\t\t\tif (src == 'cred') {\n\t\t\t\tconst dslabel = urlp.get('dslabel')\n\t\t\t\tconst route = urlp.get('route')\n\t\t\t\tfetchOpts.body.dslabel = dslabel\n\t\t\t\tfetchOpts.body.route = route\n\t\t\t\tfetchOpts.body.route = route\n\t\t\t\tconst jwt = getSavedToken(dslabel, route)\n\t\t\t\tif (jwt) fetchOpts.headers.authorization = `Bearer ${btoa(jwt)}`\n\t\t\t}\n\t\t\tres = await client.dofetch3(`/massSession`, fetchOpts)\n\t\t\tif (res.error) throw res.error\n\t\t}\n\t\tconst embedder = res.state?.embedder\n\t\tif (embedder?.origin && embedder.origin != window.location.origin) {\n\t\t\tparentCorsMessage(res)\n\t\t\treturn\n\t\t}\n\t\tconst opts = {\n\t\t\tdebug: arg.app.debugmode,\n\t\t\tholder: arg.holder,\n\t\t\tstate: copyMerge(res.state, arg.state || {}),\n\t\t\tgenome: arg.genomes[res.state.vocab.genome],\n\t\t\tsessionDaysLeft: res.sessionDaysLeft,\n\t\t\tsessionId: id,\n\t\t\tpkgver: arg.app.pkgver,\n\t\t\tlaunchDate: arg.app.launchDate\n\t\t}\n\t\tconst _ = await import('../mass/app')\n\t\tconst subapp = _.appInit(opts)\n\t\treturn subapp\n\t}\n\n\tif (urlp.has('genome') && arg.selectgenome) {\n\t\tconst n = urlp.get('genome')\n\t\tconst genome_options = [...arg.selectgenome.node().childNodes]\n\t\tconst selectedIndex = genome_options.findIndex(d => d.value == n)\n\t\tif (selectedIndex == -1) {\n\t\t\tsayerror(\n\t\t\t\targ.holder,\n\t\t\t\t`Invalid genome: ${n}. Please provide an available genome from this list: ${genome_options\n\t\t\t\t\t.map(d => d.value)\n\t\t\t\t\t.join(', ')\n\t\t\t\t\t.replace(/,(?=[^,]*$)/, ', or')}`\n\t\t\t)\n\t\t\treturn\n\t\t}\n\t\targ.selectgenome.node().selectedIndex = selectedIndex\n\t\targ.selectgenome.node().dispatchEvent(new Event('change'))\n\t}\n\n\tif (urlp.has('hicfile') || urlp.has('hicurl')) {\n\t\t// whole-genome view\n\t\tlet file, url, name\n\t\tif (urlp.has('hicfile')) {\n\t\t\tfile = urlp.get('hicfile')\n\t\t\tname = file.split('/').pop()\n\t\t} else {\n\t\t\turl = urlp.get('hicurl')\n\t\t\tname = url.split('/').pop()\n\t\t}\n\t\tconst gn = urlp.get('genome')\n\t\tif (!gn) throw 'genome is required for hic'\n\t\tconst genome = arg.genomes[gn]\n\t\tif (!genome) throw 'invalid genome'\n\t\tconst hic = {\n\t\t\tgenome,\n\t\t\tfile,\n\t\t\turl,\n\t\t\tname, //.basename(file || url),\n\t\t\thostURL: arg.hostURL,\n\t\t\tenzyme: urlp.get('enzyme'),\n\t\t\tholder: arg.holder\n\t\t}\n\t\tconst _ = await import('../tracks/hic/HicApp')\n\t\tawait _.hicInit(hic)\n\t\treturn\n\t}\n\n\t//////////// legacy, may be replaced by sampleScatter, kept for existing views on vizcom\n\tif (urlp.has('singlecell')) {\n\t\tif (!urlp.has('genome')) throw '\"genome\" is required for \"singlecell\"'\n\t\tconst genomename = urlp.get('genome')\n\t\tconst genomeobj = arg.genomes[genomename]\n\t\tif (!genomeobj) throw 'invalid genome: ' + genomename\n\n\t\tconst _ = await import('./singlecell')\n\t\t_.init(\n\t\t\t{\n\t\t\t\tgenome: genomeobj,\n\t\t\t\tjsonfile: urlp.get('singlecell')\n\t\t\t},\n\t\t\targ.holder\n\t\t)\n\t\treturn\n\t}\n\n\tif (urlp.has('mavbfile')) {\n\t\tif (!urlp.has('genome')) throw '\"genome\" is required for \"mavb\"'\n\t\tconst genomename = urlp.get('genome')\n\t\tconst genome = arg.genomes[genomename]\n\t\tif (!genome) throw 'invalid genome: ' + genomename\n\t\tconst _ = await import('./mavb')\n\t\t_.mavbparseinput(\n\t\t\t{\n\t\t\t\tgenome,\n\t\t\t\thostURL: arg.hostURL,\n\t\t\t\tfile: urlp.get('mavbfile')\n\t\t\t},\n\t\t\t() => {},\n\t\t\targ.holder,\n\t\t\targ.jwt\n\t\t)\n\t\treturn\n\t}\n\n\tif (urlp.has('mavburl')) {\n\t\tif (!urlp.has('genome')) throw '\"genome\" is required for \"mavb\"'\n\t\tconst genomename = urlp.get('genome')\n\t\tconst genome = arg.genomes[genomename]\n\t\tif (!genome) throw 'invalid genome: ' + genomename\n\t\tconst _ = await import('./mavb')\n\t\t_.mavbparseinput(\n\t\t\t{\n\t\t\t\tgenome,\n\t\t\t\thostURL: arg.hostURL,\n\t\t\t\turl: urlp.get('mavburl')\n\t\t\t},\n\t\t\t() => {},\n\t\t\targ.holder,\n\t\t\targ.jwt\n\t\t)\n\t\treturn\n\t}\n\n\t//////////// legacy, replaced by sampleScatter (just need to support adhoc data), kept for existing views on vizcom\n\tif (urlp.has('scatterplot')) {\n\t\tif (!urlp.has('genome')) throw '\"genome\" is required for \"scatterplot\"'\n\t\tconst genomename = urlp.get('genome')\n\t\tconst genome = arg.genomes[genomename]\n\t\tif (!genome) throw 'invalid genome: ' + genomename\n\n\t\tlet plot_data\n\t\tif (urlp.has('mdsjson') || urlp.has('mdsjsonurl')) {\n\t\t\tconst url_str = urlp.get('mdsjsonurl')\n\t\t\tconst file_str = urlp.get('mdsjson')\n\t\t\tplot_data = await mdsjson.get_scatterplot_data(file_str, url_str)\n\t\t}\n\t\tif (urlp.has('tsnejson')) {\n\t\t\tconst file_str = urlp.get('tsnejson')\n\t\t\tconst data = await client.dofetch('textfile', { file: file_str })\n\t\t\tif (data.error) throw data.error\n\t\t\telse if (data.text) {\n\t\t\t\tplot_data = {\n\t\t\t\t\tmdssamplescatterplot: {\n\t\t\t\t\t\tanalysisdata: JSON.parse(data.text)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if genome is defined in url, pass it to samplescatterplot\n\t\tplot_data.mdssamplescatterplot.genome = genome\n\t\tconst _ = await import('./mds.samplescatterplot')\n\t\t_.init(plot_data.mdssamplescatterplot, arg.holder, false)\n\t\treturn\n\t}\n\n\tif (urlp.has('block')) {\n\t\tif (!urlp.has('genome')) throw 'missing genome for block'\n\t\tconst genomename = urlp.get('genome')\n\t\tconst genomeobj = arg.genomes[genomename]\n\t\tif (!genomeobj) throw 'invalid genome: ' + genomename\n\n\t\tconst par = {\n\t\t\tnobox: 1,\n\t\t\thostURL: arg.hostURL,\n\t\t\tjwt: arg.jwt,\n\t\t\tholder: arg.holder,\n\t\t\tgenome: genomeobj,\n\t\t\tdogtag: genomename,\n\t\t\tdebugmode: arg.debugmode\n\t\t}\n\n\t\tlet position = null\n\t\tlet rglst = null\n\n\t\tif (urlp.has('position')) {\n\t\t\t// can be multiple regions joined by ;\n\t\t\t// first region is main panel, rest of regions are subpanels\n\n\t\t\tconst lst = urlp.get('position').split(';')\n\t\t\tif (lst[0]) {\n\t\t\t\t// if first region is blank, do not parse; it will be assigned with defaultcoord\n\t\t\t\tconst tmp = lst[0].split(/[:-]/)\n\t\t\t\tconst chr = tmp[0]\n\t\t\t\tconst start = Number.parseInt(tmp[1])\n\t\t\t\tconst stop = Number.parseInt(tmp[2])\n\t\t\t\tif (!chr) throw 'chr missing'\n\t\t\t\tif (Number.isNaN(start) || Number.isNaN(stop)) throw 'Invalid start/stop value in position'\n\t\t\t\t// valid position\n\t\t\t\tposition = { chr, start, stop }\n\t\t\t}\n\n\t\t\tconst subpanels = [] // collect rest of regions into this array\n\t\t\tfor (let i = 1; i < lst.length; i++) {\n\t\t\t\tif (!lst[i]) continue // skip blank string\n\t\t\t\tconst tmp = lst[i].split(/[:-]/)\n\t\t\t\tconst chr = tmp[0]\n\t\t\t\tconst start = Number.parseInt(tmp[1])\n\t\t\t\tconst stop = Number.parseInt(tmp[2])\n\t\t\t\tif (!chr) throw 'subpanel chr missing'\n\t\t\t\tif (Number.isNaN(start) || Number.isNaN(stop)) throw 'Invalid start/stop value in subpanel position'\n\t\t\t\t// valid pos\n\t\t\t\tsubpanels.push({\n\t\t\t\t\tchr,\n\t\t\t\t\tstart,\n\t\t\t\t\tstop,\n\t\t\t\t\twidth: 600,\n\t\t\t\t\tleftborder: 'rgba(200,0,0,.1)',\n\t\t\t\t\tleftpad: 5\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (subpanels.length) {\n\t\t\t\t// has valid subpanels\n\t\t\t\tpar.subpanels = subpanels\n\t\t\t}\n\t\t}\n\n\t\tif (urlp.has('regions')) {\n\t\t\t// for a different purpose than \"position=\"\n\t\t\t// all regions here are shown in one view and scroll together, as in gmmode. it does not introduce subpanels\n\t\t\trglst = []\n\t\t\tfor (const s of urlp.get('regions').split(',')) {\n\t\t\t\tconst l = s.split(/[:-]/)\n\t\t\t\tconst chr = l[0]\n\t\t\t\tconst start = Number.parseInt(l[1])\n\t\t\t\tconst stop = Number.parseInt(l[2])\n\t\t\t\tif (Number.isNaN(start) || Number.isNaN(stop)) throw 'Invalid start/stop value in regions'\n\t\t\t\trglst.push({ chr: l[0], start: start, stop: stop })\n\t\t\t}\n\t\t}\n\n\t\tif (!position && !rglst) {\n\t\t\t// no position given, use default\n\t\t\tif (genomeobj.defaultcoord) {\n\t\t\t\tposition = {\n\t\t\t\t\tchr: genomeobj.defaultcoord.chr,\n\t\t\t\t\tstart: genomeobj.defaultcoord.start,\n\t\t\t\t\tstop: genomeobj.defaultcoord.stop\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (position) {\n\t\t\tpar.chr = position.chr\n\t\t\tpar.start = position.start\n\t\t\tpar.stop = position.stop\n\t\t} else if (rglst) {\n\t\t\tpar.rglst = rglst\n\t\t}\n\n\t\tif (urlp.has('hlregion')) {\n\t\t\tconst lst = []\n\t\t\tfor (const t of urlp.get('hlregion').split(',')) {\n\t\t\t\tconst pos = string2pos(t, genomeobj, true)\n\t\t\t\tif (pos) lst.push(pos)\n\t\t\t}\n\t\t\tif (lst.length) par.hlregions = lst\n\t\t}\n\n\t\tpar.datasetqueries = may_get_officialmds(urlp)\n\n\t\tpar.tklst = await get_tklst(urlp, genomeobj)\n\n\t\tfirst_genetrack_tolist(arg.genomes[genomename], par.tklst)\n\n\t\tmayAddBedjfilterbyname(urlp, par.tklst)\n\t\tconst b = await import('./block')\n\t\tnew b.Block(par)\n\t\treturn\n\t}\n\n\tif (urlp.has('gene')) {\n\t\tconst str = urlp.get('gene')\n\t\tif (str.length == 0) throw 'zero length query string'\n\t\tconst par = {\n\t\t\thostURL: arg.hostURL,\n\t\t\tquery: str,\n\t\t\tholder: arg.holder,\n\t\t\tvariantPageCall_snv: arg.variantPageCall_snv,\n\t\t\tsamplecart: arg.samplecart,\n\t\t\tdebugmode: arg.debugmode\n\t\t}\n\t\t{\n\t\t\tlet genomename\n\t\t\tfor (let n in arg.genomes) {\n\t\t\t\tif (arg.genomes[n].isdefault) {\n\t\t\t\t\tgenomename = n\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (urlp.has('genome')) {\n\t\t\t\tgenomename = urlp.get('genome')\n\t\t\t}\n\t\t\tif (!genomename) throw 'No genome, and none set as default'\n\t\t\tpar.genome = arg.genomes[genomename]\n\t\t\tif (!par.genome) throw 'invalid genome: ' + genomename\n\t\t}\n\t\tlet ds = null\n\t\tif (urlp.has('dataset')) {\n\t\t\tpar.dataset = urlp.get('dataset').split(',')\n\t\t}\n\t\tif (urlp.has('hlaachange')) {\n\t\t\tpar.hlaachange = new Map()\n\t\t\tfor (const s of urlp.get('hlaachange').split(',')) {\n\t\t\t\tpar.hlaachange.set(s, false)\n\t\t\t}\n\t\t}\n\t\tif (urlp.has('hlregion')) {\n\t\t\tconst lst = []\n\t\t\tfor (const t of urlp.get('hlregion').split(',')) {\n\t\t\t\tconst pos = string2pos(t, par.genome, true)\n\t\t\t\tif (pos) lst.push(pos)\n\t\t\t}\n\t\t\tif (lst.length) par.hlregions = lst\n\t\t}\n\t\tif (urlp.has('aarange')) {\n\t\t\tconst [a, b] = urlp.get('aarange').split(',').map(Number)\n\t\t\tif (Number.isInteger(a) && Number.isInteger(b) && a > 0 && b > a) {\n\t\t\t\tpar.aarange = [a, b]\n\t\t\t} else {\n\t\t\t\tthrow 'invalid aarange'\n\t\t\t}\n\t\t}\n\n\t\tpar.tklst = await get_tklst(urlp, par.genome)\n\n\t\tmayAddBedjfilterbyname(urlp, par.tklst)\n\n\t\tpar.datasetqueries = may_get_officialmds(urlp)\n\t\tawait blockinit(par)\n\t\treturn\n\t}\n\n\tif (urlp.has('disco')) {\n\t\t// a direct link to make manual testing easy\n\t\tconst genomeName = urlp.get('genome')\n\t\tconst genome = arg.genomes[genomeName]\n\t\tif (!genome) throw 'genome missing'\n\t\tconst dslabel = urlp.get('dslabel')\n\t\tif (!dslabel) throw 'dslabel missing'\n\t\tconst sample_id = urlp.get('sample')\n\t\tif (!sample_id) throw 'sample_id missing'\n\t\tconst vocabApi = (await import('#termdb/vocabulary')).vocabInit({ state: { genome: genomeName, dslabel } })\n\t\tconst termdbConfig = await vocabApi.getTermdbConfig()\n\t\tawait (await import('#plots/plot.disco.js')).default(termdbConfig, dslabel, { sample_id }, arg.holder, genome)\n\t\treturn\n\t}\n\n\t///////////// legacy, totally replaced by mass. kept for some views on vizcom\n\tif (urlp.has('study')) {\n\t\tconst v = urlp.get('study')\n\t\tif (v != '') {\n\t\t\tloadstudycohort(\n\t\t\t\targ.genomes,\n\t\t\t\tv,\n\t\t\t\targ.holder,\n\t\t\t\targ.hostURL,\n\t\t\t\tundefined, // jwt\n\t\t\t\tfalse, // no show\n\t\t\t\targ.app || {\n\t\t\t\t\tdebugmode: arg.debugmode,\n\t\t\t\t\tinstanceTracker: arg.instanceTracker || {},\n\t\t\t\t\tcallbacks: arg.callbacks || {}\n\t\t\t\t}\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunction may_get_officialmds(urlp) {\n\tif (!urlp.has('mds')) return\n\tconst tmp = urlp.get('mds').split(',')\n\tif (tmp[0] && tmp[1]) {\n\t\tconst dataset = { dataset: tmp[0], querykey: tmp[1] }\n\t\tif (urlp.has('sample')) {\n\t\t\tdataset.singlesample = { name: urlp.get('sample') }\n\t\t\t// quick fix!!\n\t\t\t// tell mds_load_query_bykey to load assay tracks in this context, but will not do so if launching sample view from main tk\n\t\t\tdataset.getsampletrackquickfix = true\n\t\t}\n\t\treturn [dataset]\n\t}\n\treturn\n}\n\nexport async function get_tklst(urlp, genomeobj) {\n\tconst tklst = []\n\n\tfor (const [key, value] of urlp) {\n\t\tconst tks = await mayGetTkobj(key, value, urlp, genomeobj)\n\t\tif (!tks) continue // no tkobj derived, parameter doesn't match with anything\n\t\tif (Array.isArray(tks)) tklst.push(...tks)\n\t\telse tklst.push(tks)\n\t}\n\n\tfor (const t of tklst) {\n\t\t// uncertain reason why all tk are labeled as custom\n\t\t// the mds3 tk has \"dslabel\" and should be official, do not label as custom, so in block.tk.menu won't show the delete button\n\t\tif (t.type == 'mds3' && t.dslabel) continue\n\t\tt.iscustom = true\n\t}\n\n\t// quick fix to modify behaviors of mds tracks collected through parameters\n\t// if isdense=1, turn to dense\n\t// if sample=..., change to a single sample track\n\tif (urlp.has('isdense')) {\n\t\ttklst\n\t\t\t.filter(t => t.type == client.tkt.mdssvcnv)\n\t\t\t.forEach(t => {\n\t\t\t\tt.isdense = true\n\t\t\t\tt.isfull = false\n\t\t\t})\n\t}\n\tif (urlp.has('sample')) {\n\t\ttklst\n\t\t\t.filter(t => t.type == client.tkt.mdssvcnv)\n\t\t\t.forEach(t => {\n\t\t\t\tt.singlesample = { name: urlp.get('sample') }\n\t\t\t\tt.getsampletrackquickfix = true\n\t\t\t\t// XXX this doesn't work to load assay tracks for a custom mds, can only load for official mds\n\t\t\t\t// for both custom and official, the expression rank track is not loaded.\n\t\t\t})\n\t}\n\treturn tklst\n}\n\n/*\nreturns:\n- object for one successfully parsed track\n- array for multiple track objects, could be empty!\n- null for no tracks\n*/\nexport async function mayGetTkobj(key, value, urlp, genomeobj) {\n\tif (key == 'mds3') {\n\t\t// official mds3 dataset; value is comma-joined dslabels\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (const n of lst) {\n\t\t\tconst tk = {\n\t\t\t\ttype: client.tkt.mds3,\n\t\t\t\tdslabel: n\n\t\t\t}\n\t\t\tif (urlp.has('token')) tk.token = urlp.get('token') // temporary\n\t\t\tif (urlp.has('filterobj')) tk.filterObj = urlp.get('filterobj')\n\t\t\tif (urlp.has('filter0')) tk.filter0 = urlp.get('filter0')\n\t\t\tif (urlp.has('cnvonly')) tk.hardcodeCnvOnly = true // for testing cnv-only mode via url param; in actual use this flag should be set in runpp()\n\t\t\tif (urlp.has('snvindelonly')) tk.snvIndelOnly = true // for testing snvindel-only mode\n\t\t\ttks.push(tk)\n\t\t}\n\t\treturn tks\n\t}\n\n\tif (key == 'mds3bcffile') {\n\t\t// \"name,path\" pairs to server-side vcf files\n\t\tconst [tkname, bcffile] = value.split(',')\n\t\tlet tk\n\t\tif (tkname && bcffile) {\n\t\t\ttk = {\n\t\t\t\ttype: client.tkt.mds3,\n\t\t\t\tname: tkname,\n\t\t\t\tbcf: { file: bcffile }\n\t\t\t}\n\t\t}\n\t\treturn tk\n\t}\n\tif (key == 'mds3bcfurl') {\n\t\t// \"name,url,indexURL\" to remote file. indexURL is optional when the index file is not co-locating with the bcf file\n\t\tconst [tkname, url, indexURL] = value.split(',')\n\t\tlet tk\n\t\tif (tkname && url) {\n\t\t\ttk = {\n\t\t\t\ttype: client.tkt.mds3,\n\t\t\t\tname: tkname,\n\t\t\t\tbcf: { url, indexURL }\n\t\t\t}\n\t\t}\n\t\treturn tk\n\t}\n\n\tif (key == 'arcfile') {\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: client.tkt.hicstraw,\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\tbedfile: lst[i + 1],\n\t\t\t\t\tmode_hm: false,\n\t\t\t\t\tmode_arc: true\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\n\tif (key == 'mdsjson' || key == 'mdsjsonurl') {\n\t\tlet url_str, file_str\n\t\tif (key == 'mdsjson') file_str = value\n\t\telse url_str = value\n\t\treturn await mdsjson.init_mdsjson(file_str, url_str)\n\t}\n\n\tif (key == 'tkjsonfile') {\n\t\tconst re = await client.dofetch('textfile', { file: value })\n\t\tif (re.error) throw re.error\n\t\tif (!re.text) throw '.text missing'\n\t\tconst lst = JSON.parse(re.text)\n\t\tconst tks = []\n\t\tfor (const i of lst) {\n\t\t\tif (i.isfacet) {\n\t\t\t\tif (!genomeobj.tkset) genomeobj.tkset = []\n\t\t\t\tif (!i.tracks) throw '.tracks[] missing from a facet table'\n\t\t\t\tif (!Array.isArray(i.tracks)) throw '.tracks[] not an array from a facet table'\n\t\t\t\ti.tklst = i.tracks\n\t\t\t\tdelete i.tracks\n\t\t\t\tfor (const t of i.tklst) {\n\t\t\t\t\tif (!t.assay) throw '.assay missing from a facet track'\n\t\t\t\t\tif (!t.sample) throw '.sample missing from a facet track'\n\t\t\t\t\t// must assign tkid otherwise the tk buttons from facet table won't work\n\t\t\t\t\tt.tkid = Math.random().toString()\n\t\t\t\t}\n\t\t\t\tgenomeobj.tkset.push(i)\n\t\t\t} else {\n\t\t\t\t// must be a track\n\t\t\t\ttks.push(i)\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\n\tif (key == 'bamfile') {\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: client.tkt.bam,\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\tfile: lst[i + 1]\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\tif (key == 'bamurl') {\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: client.tkt.bam,\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\turl: lst[i + 1]\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\tif (key == 'bedjfile') {\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: client.tkt.bedj,\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\tfile: lst[i + 1]\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\tif (key == 'bedjurl') {\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: client.tkt.bedj,\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\turl: lst[i + 1]\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\tif (key == 'hictkfile' || key == 'hictkurl') {\n\t\t// name,enzyme,file/url\n\t\tconst isfile = key == 'hictkfile'\n\t\tconst lst = value.split(',')\n\t\tconst norm = urlp.has('hictknorm') ? urlp.get('hictknorm').split(',') : null\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 3) {\n\t\t\tif (lst[i] && lst[i + 1] && lst[i + 2]) {\n\t\t\t\tconst t = {\n\t\t\t\t\ttype: client.tkt.hicstraw,\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\tenzyme: lst[i + 1],\n\t\t\t\t\tnormalizationmethod: norm ? norm[i / 3] : null\n\t\t\t\t}\n\t\t\t\tif (isfile) {\n\t\t\t\t\tt.file = lst[i + 2]\n\t\t\t\t} else {\n\t\t\t\t\tt.url = lst[i + 2]\n\t\t\t\t}\n\t\t\t\ttks.push(t)\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\tif (key == 'ldfile') {\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: client.tkt.ld,\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\tfile: lst[i + 1]\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\tif (key == 'bigwigfile') {\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: client.tkt.bigwig,\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\tfile: lst[i + 1],\n\t\t\t\t\tscale: { auto: 1 }\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\tif (key == 'bigwigurl') {\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: client.tkt.bigwig,\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\turl: lst[i + 1],\n\t\t\t\t\tscale: { auto: 1 }\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\tif (key == 'junctionfile') {\n\t\t// legacy\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: client.tkt.junction,\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\ttracks: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfile: lst[i + 1]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\tif (key == 'junctionurl') {\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: client.tkt.junction,\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\ttracks: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\turl: lst[i + 1]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\t/*\n\tif (urlp.has('vcffile')) {\n\t\tconst lst = urlp.get('vcffile').split(',')\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttklst.push({\n\t\t\t\t\ttype: 'vcf',\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\tfile: lst[i + 1]\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\tif (urlp.has('vcfurl')) {\n\t\tconst lst = urlp.get('vcfurl').split(',')\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttklst.push({\n\t\t\t\t\ttype: 'vcf',\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\turl: lst[i + 1]\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\t*/\n\tif (key == 'aicheckfile') {\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: 'aicheck',\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\tfile: lst[i + 1]\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\tif (key == 'bampilefile') {\n\t\tconst lst = value.split(',')\n\t\tlet links = null\n\t\tif (urlp.has('bampilelink')) {\n\t\t\tlinks = urlp.get('bampilelink').split(',').map(decodeURIComponent)\n\t\t}\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\tconst tk = {\n\t\t\t\t\ttype: client.tkt.bampile,\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\tfile: lst[i + 1]\n\t\t\t\t}\n\t\t\t\tif (links && links[i / 2]) {\n\t\t\t\t\ttk.link = links[i / 2]\n\t\t\t\t}\n\t\t\t\ttks.push(tk)\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\tif (key == 'svcnvfpkmurl') {\n\t\tconst lst = value.split(',')\n\t\t// defines a single track, all members using url\n\t\tconst name = lst[0]\n\t\tconst type2url = {}\n\t\tfor (let i = 1; i < lst.length; i += 2) {\n\t\t\ttype2url[lst[i]] = lst[i + 1]\n\t\t}\n\t\tlet tk\n\t\tif (type2url.svcnv || type2url.vcf) {\n\t\t\ttk = {\n\t\t\t\ttype: client.tkt.mdssvcnv,\n\t\t\t\tname: name\n\t\t\t}\n\t\t\tif (type2url.svcnv) {\n\t\t\t\ttk.url = type2url.svcnv\n\t\t\t}\n\t\t\tif (type2url.vcf) {\n\t\t\t\ttk.checkvcf = {\n\t\t\t\t\turl: type2url.vcf,\n\t\t\t\t\tindexURL: type2url.vcfindex\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (type2url.fpkm) {\n\t\t\t\ttk.checkexpressionrank = {\n\t\t\t\t\tdatatype: 'FPKM',\n\t\t\t\t\turl: type2url.fpkm,\n\t\t\t\t\tindexURL: type2url.fpkmindex\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn tk\n\t}\n\tif (key == 'svcnvfpkmfile') {\n\t\tconst lst = value.split(',')\n\t\t// defines a single track, all members using file\n\t\tconst name = lst[0]\n\t\tconst type2file = {}\n\t\tfor (let i = 1; i < lst.length; i += 2) {\n\t\t\ttype2file[lst[i]] = lst[i + 1]\n\t\t}\n\t\tlet tk\n\t\tif (type2file.svcnv || type2file.vcf) {\n\t\t\ttk = {\n\t\t\t\ttype: client.tkt.mdssvcnv,\n\t\t\t\tname: name\n\t\t\t}\n\t\t\tif (type2file.svcnv) {\n\t\t\t\ttk.file = type2file.svcnv\n\t\t\t}\n\t\t\tif (type2file.vcf) {\n\t\t\t\ttk.checkvcf = {\n\t\t\t\t\tfile: type2file.vcf\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (type2file.fpkm) {\n\t\t\t\ttk.checkexpressionrank = {\n\t\t\t\t\tdatatype: 'FPKM',\n\t\t\t\t\tfile: type2file.fpkm\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn tk\n\t}\n\tif (key == 'mdsjunctionfile') {\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: 'mdsjunction',\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\tfile: lst[i + 1]\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\tif (key == 'junctionmatrix') {\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: 'mdsjunction',\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\tfile2: lst[i + 1] // quick fix to support new file type\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n\n\tif (key == 'junctionrnapeg') {\n\t\tconst lst = value.split(',')\n\t\tconst tks = []\n\t\tfor (let i = 0; i < lst.length; i += 2) {\n\t\t\tif (lst[i] && lst[i + 1]) {\n\t\t\t\ttks.push({\n\t\t\t\t\ttype: client.tkt.junction,\n\t\t\t\t\tname: lst[i],\n\t\t\t\t\ttracks: [{ rnapegfile: lst[i + 1] }]\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn tks\n\t}\n}\n\nfunction mayAddBedjfilterbyname(urlp, tklst) {\n\t/* !! a quick fix !!\n\tthe filter string will be applied to all bedj tracks,\n\trather than specific for a track\n\tmay mess up with other bedj tracks shown at the same time\n\t*/\n\tif (urlp.has('bedjfilterbyname')) {\n\t\tfor (const t of tklst) {\n\t\t\tif (t.type == 'bedj') t.filterByName = urlp.get('bedjfilterbyname')\n\t\t}\n\t}\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,eAAsB,aAAa,UAAU,SAAS;AACrD,MAAI,aAAa,CAAC,GACjB,YAAY,CAAC;AAEd,MAAI,YAAY,SAAS,SAAS,GAAG,EAAG,cAAa,SAAS,MAAM,GAAG;AAAA,WAC9D,SAAU,YAAW,KAAK,QAAQ;AAAA,WAClC,WAAW,QAAQ,SAAS,GAAG,EAAG,aAAY,QAAQ,MAAM,GAAG;AAAA,WAC/D,QAAS,WAAU,KAAK,OAAO;AAExC,QAAM,QAAQ,CAAC;AACf,MAAI,WAAW,QAAQ;AACtB,UAAM,WAAW;AACjB,eAAW,aAAa,YAAY;AACnC,YAAM,KAAK,MAAM,eAAe,WAAW,QAAQ,CAAC;AAAA,IACrD;AAAA,EACD,WAAW,UAAU,QAAQ;AAC5B,UAAM,YAAY;AAClB,eAAW,YAAY,WAAW;AACjC,YAAM,KAAK,MAAM,eAAe,WAAW,QAAQ,CAAC;AAAA,IACrD;AAAA,EACD;AAEA,SAAO;AACR;AAEA,eAAe,eAAe,WAAW,UAAU;AAClD,QAAM,MAAM,MAAM,cAAc,WAAW,QAAQ;AACnD,mBAAiB,GAAG;AACpB,QAAM,KAAK,YAAY,GAAG;AAC1B,SAAO;AACR;AAEA,eAAe,cAAc,WAAW,UAAU;AACjD,MAAI,cAAc,UAAa,aAAa,GAAI,OAAM;AACtD,MAAI,aAAa,UAAa,YAAY,GAAI,OAAM;AAEpD,MAAI;AACJ,MAAI,cAAc,OAAW,OAAM,MAAa,QAAQ,YAAY,EAAE,MAAM,UAAU,CAAC;AAAA,WAC9E,aAAa,OAAW,OAAM,MAAa,QAAQ,eAAe,EAAE,KAAK,SAAS,CAAC;AAC5F,MAAI,IAAI,OAAO;AACd,UAAM,IAAI;AAAA,EACX;AACA,SAAO,KAAK,MAAM,IAAI,IAAI;AAC3B;AAEO,SAAS,iBAAiB,KAAK;AACrC,MAAI,CAAC,IAAK,OAAM;AAChB,MAAI,CAAC,IAAI,KAAM,OAAM;AACrB,QAAM,YAAY,IAAI,aAAa,IAAI;AACvC,QAAM,UAAU,IAAI,WAAW,IAAI;AACnC,MAAI,CAAC,aAAa,CAAC,QAAS,OAAM;AAClC,MAAI,OAAO,KAAK,GAAG,EAAE,OAAO,OAAK,EAAE,SAAS,YAAY,CAAC,EAAE,QAAQ;AAClE,QAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,cAAe,OAAM;AAAA,EACtD;AACA,MAAI,OAAO,KAAK,GAAG,EAAE,OAAO,OAAK,EAAE,SAAS,QAAQ,CAAC,EAAE,QAAQ;AAC9D,QAAI,CAAC,IAAI,cAAc,CAAC,IAAI,UAAW,OAAM;AAAA,EAC9C;AACA,MAAI,IAAI,WAAW;AAClB,eAAW,UAAU,IAAI,WAAW;AACnC,UAAI,IAAI,UAAU,UAAU,KAAK,CAAC,OAAO,KAAM,OAAM;AACrD,UAAI,CAAC,OAAO,QAAS,OAAM;AAAA,IAC5B;AAAA,EACD;AACA,MAAI,IAAI,mBAAmB;AAC1B,eAAW,CAAC,QAAQ,QAAQ,KAAK,OAAO,QAAQ,IAAI,iBAAiB,GAAG;AACvE,UAAI,CAAC,SAAS,OAAQ,OAAM,yBAAyB;AACrD,iBAAW,SAAS,UAAU;AAC7B,YAAI,CAAC,MAAM,KAAM,OAAM,+BAA+B;AACtD,YAAI,CAAC,MAAM,KAAM,OAAM,+BAA+B;AAAA,MACvD;AAAA,IACD;AAAA,EACD;AAEA,MAAI,IAAI,mBAAmB;AAC1B,QAAI,CAAC,IAAI,kBAAkB,QAAS,QAAO;AAC3C,QAAI,IAAI,kBAAkB,QAAQ,UAAU,EAAG,QAAO;AAEtD,eAAW,QAAQ,IAAI,kBAAkB,SAAS;AACjD,UAAI,CAAC,KAAK,EAAG,QAAO;AAAA,IACrB;AAEA,QAAI,IAAI,kBAAkB,aAAa;AACtC,UAAI,CAAC,IAAI,kBAAkB,YAAY,IAAK,QAAO;AACnD,UAAI,CAAC,IAAI,kBAAkB,YAAY,MAAO,QAAO;AACrD,UAAI,CAAC,MAAM,QAAQ,IAAI,kBAAkB,YAAY,KAAK,EAAG,QAAO;AAAA,IAErE;AACA,QAAI,CAAC,IAAI,kBAAkB,eAAgB,KAAI,kBAAkB,iBAAiB;AAAA,EACnF;AAEA,MAAI,IAAI,qBAAqB;AAC5B,eAAW,QAAQ,IAAI,qBAAqB;AAC3C,UAAI,CAAC,KAAK,KAAM,OAAM;AAAA,IACvB;AAAA,EACD;AAGA,MAAI,IAAI,KAAK;AACZ,QAAI,CAAC,IAAI,IAAI,YAAa,OAAM;AAAA,EACjC;AACD;AAEO,SAAS,YAAY,OAAO;AAClC,QAAM,QAAQ;AAAA,IACb,MAAM,MAAM;AAAA,IACZ,MAAM,MAAM;AAAA,EACb;AAGA,MAAI,MAAM,WAAW,UAAU,MAAM,WAAW,QAAQ,MAAM,WAAW,MAAO,OAAM,UAAU;AAAA,WACvF,MAAM,OAAQ,OAAM,SAAS;AAGtC,MAAI,MAAM,UAAW,OAAM,OAAO,MAAM;AAAA,WAC/B,MAAM,SAAU,OAAM,MAAM,MAAM;AAG3C,MAAI,OAAO,KAAK,KAAK,EAAE,OAAO,OAAK,EAAE,SAAS,YAAY,CAAC,EAAE,QAAQ;AACpE,UAAM,sBAAsB;AAAA,MAC3B,MAAM,MAAM;AAAA,MACZ,KAAK,MAAM;AAAA,IACZ;AAAA,EACD;AAGA,MAAI,OAAO,KAAK,KAAK,EAAE,OAAO,OAAK,EAAE,SAAS,KAAK,CAAC,EAAE,QAAQ;AAC7D,UAAM,WAAW;AAAA,MAChB,MAAM,MAAM;AAAA,MACZ,KAAK,MAAM;AAAA,IACZ;AAAA,EACD;AAGA,MAAI,MAAM,KAAK;AACd,QAAI,MAAM,IAAI,aAAa;AAC1B,YAAM,MAAM,CAAC;AACb,YAAM,IAAI,cAAc,MAAM,IAAI;AAAA,IACnC;AAAA,EACD;AAGA,MAAI,OAAO,KAAK,KAAK,EAAE,OAAO,OAAK,EAAE,SAAS,QAAQ,CAAC,EAAE,QAAQ;AAChE,UAAM,cAAc;AAAA,MACnB,MAAM,MAAM;AAAA,MACZ,KAAK,MAAM;AAAA,IACZ;AAAA,EACD;AAGA,MAAI,MAAM,WAAW;AACpB,UAAM,YAAY,MAAM;AAAA,EACzB;AAGA,MAAI,MAAM,mBAAmB;AAC5B,UAAM,oBAAoB,MAAM;AAAA,EACjC;AAEA,MAAI,MAAM,mBAAmB;AAC5B,UAAM,oBAAoB,MAAM;AAAA,EACjC;AAGA,QAAM,sBAAsB,MAAM;AAElC,QAAM,gBAAgB,MAAM;AAG5B,QAAM,cAAc,MAAM,mBAAmB,SAAY,MAAM,iBAAiB;AAChF,QAAM,qBAAqB,MAAM,wBAAwB,SAAY,MAAM,sBAAsB;AAGjG,QAAM,qBAAqB,MAAM,uBAAuB,SAAY,MAAM,qBAAqB;AAC/F,QAAM,sBAAsB,MAAM,wBAAwB,SAAY,MAAM,sBAAsB;AAGlG,QAAM,qBAAqB,MAAM,uBAAuB,SAAY,MAAM,qBAAqB;AAC/F,QAAM,wBAAwB,MAAM,0BAA0B,SAAY,MAAM,wBAAwB;AACxG,QAAM,oBAAoB,MAAM,sBAAsB,SAAY,MAAM,oBAAoB;AAE5F,QAAM,iBAAiB,MAAM;AAE7B,SAAO;AACR;AAEA,eAAsB,qBAAqB,WAAW,UAAU;AAC/D,MAAI,OAAO,CAAC;AACZ,QAAM,MAAM,MAAM,cAAc,WAAW,QAAQ;AACnD,OAAK,uBAAuB;AAC5B,SAAO;AACR;;;AClMA,eAAsB,0BAA0B,KAAK,KAAK;AACzD,MAAI,IAAI,oBAAoB;AAC3B,UAAM,IAAI,MAAM,OAAO,wBAAe;AACtC,WAAO,MAAM,EAAE,KAAK,KAAK,IAAI,SAAS,IAAI,OAAO;AAAA,EAClD;AACA,MAAI,IAAI,WAAW;AAClB,UAAM,IAAI,MAAM,OAAO,yBAA0B;AACjD,WAAO,MAAM,EAAE,KAAK,KAAK,IAAI,OAAO;AAAA,EACrC;AACA,MAAI,IAAI,aAAa;AACpB,UAAM,IAAI,MAAM,OAAO,kBAAS;AAChC,WAAO,MAAM,EAAE,KAAK,KAAK,IAAI,SAAS,IAAI,OAAO;AAAA,EAClD;AACA,MAAI,IAAI,iBAAiB;AACxB,UAAM,IAAI,MAAM,OAAO,0BAAiB;AACxC,WAAO,MAAM,EAAE,KAAK,KAAK,IAAI,SAAS,IAAI,OAAO;AAAA,EAClD;AACA,MAAI,IAAI,sBAAsB;AAC7B,UAAM,IAAI,MAAM,OAAO,iCAAwB;AAC/C,WAAO,MAAM,EAAE,KAAK,KAAK,IAAI,SAAS,IAAI,OAAO;AAAA,EAClD;AACA,MAAI,IAAI,cAAc;AACrB,UAAM,IAAI,MAAM,OAAO,mBAAU;AACjC,WAAO,MAAM,EAAE,SAAS,KAAK,IAAI,OAAO;AAAA,EACzC;AACA,MAAI,IAAI,gBAAgB;AACvB,UAAM,IAAI,MAAM,OAAO,qBAAY;AACnC,WAAO,MAAM,EAAE,WAAW,KAAK,IAAI,SAAS,IAAI,OAAO;AAAA,EACxD;AACA,MAAI,IAAI,mBAAmB;AAC1B,UAAM,IAAI,MAAM,OAAO,0BAAiB;AACxC,WAAO,MAAM,EAAE,KAAK,KAAK,IAAI,SAAS,IAAI,OAAO;AAAA,EAClD;AACA,MAAI,IAAI,gBAAgB;AACvB,UAAM,IAAI,MAAM,OAAO,kBAAS;AAChC,WAAO,MAAM,EAAE,KAAK,KAAK,IAAI,SAAS,IAAI,OAAO;AAAA,EAClD;AACA,MAAI,IAAI,sBAAsB;AAC7B,UAAM,IAAI,MAAM,OAAO,2BAAkB;AACzC,WAAO,MAAM,EAAE,KAAK,KAAK,IAAI,SAAS,IAAI,OAAO;AAAA,EAClD;AACA,MAAI,IAAI,aAAa;AACpB,UAAM,IAAI,MAAM,OAAO,kBAAS;AAChC,WAAO,MAAM,EAAE,KAAK,KAAK,IAAI,SAAS,IAAI,OAAO;AAAA,EAClD;AACA,MAAI,IAAI,aAAa;AACpB,UAAM,IAAI,MAAM,OAAO,mBAAU;AACjC,QAAI,YAAY,UAAU,IAAI;AAC9B,WAAO,MAAM,EAAE,WAAW,IAAI,aAAa,IAAI,SAAS,IAAI,OAAO;AAAA,EACpE;AACD;AAKA,eAAsB,6BAA6B,MAAM,KAAK;AAC7D,MAAI,KAAK,IAAI,aAAa,GAAG;AAE5B,UAAM,IAAI,MAAM,OAAO,mBAAU;AACjC,MAAE;AAAA,MACD;AAAA,QACC,WAAW,IAAI;AAAA,QACf,iBAAiB,KAAK,IAAI,iBAAiB;AAAA;AAAA,MAC5C;AAAA,MACA,IAAI;AAAA,MACJ,IAAI;AAAA,IACL;AACA,WAAO;AAAA,EACR;AACA,MAAI,KAAK,IAAI,QAAQ,GAAG;AAEvB,UAAM,IAAI,MAAM,OAAO,mBAAU;AACjC,UAAM,IAAS;AAAA,MACd,WAAW,IAAI;AAAA,IAChB;AACA,QAAI,KAAK,IAAI,SAAS,EAAG,GAAE,UAAU,KAAK,IAAI,SAAS;AACvD,MAAE,SAAS,GAAG,IAAI,MAAM;AACxB,WAAO;AAAA,EACR;AACA,MAAI,KAAK,IAAI,QAAQ,GAAG;AACvB,UAAM,IAAI,MAAM,OAAO,yBAA0B;AACjD,UAAM,IAAS;AAAA,MACd,SAAS,KAAK,IAAI,SAAS;AAAA,IAC5B;AACA,WAAO,MAAM,EAAE,KAAK,GAAG,IAAI,MAAM;AAAA,EAClC;AACA,MAAI,KAAK,IAAI,UAAU,GAAG;AAEzB,UAAM,IAAI,MAAM,OAAO,qBAAY;AACnC,UAAM,IAAS;AAAA,MACd,WAAW,IAAI;AAAA,IAChB;AACA,QAAI,KAAK,IAAI,SAAS,EAAG,GAAE,UAAU,KAAK,IAAI,SAAS;AACvD,MAAE,WAAW,GAAG,IAAI,QAAQ,IAAI,OAAO;AACvC,WAAO;AAAA,EACR;AACA,MAAI,KAAK,IAAI,gBAAgB,GAAG;AAE/B,UAAM,IAAI,MAAM,OAAO,2BAAkB;AACzC,UAAM,IAAS;AAAA,MACd,WAAW,IAAI;AAAA,IAChB;AACA,QAAI,KAAK,IAAI,SAAS,EAAG,GAAE,UAAU,KAAK,IAAI,SAAS;AACvD,MAAE,KAAK,GAAG,IAAI,QAAQ,IAAI,OAAO;AACjC,WAAO;AAAA,EACR;AACD;;;AC9FA,eAAsB,MAAM,KAAK;AAahC,QAAM,OAAO,eAAO;AACpB,QAAM,WAAW,KAAK,MAAM,eAAe,QAAQ,kBAAkB,CAAC;AAEtE,MAAI,KAAK,IAAI,SAAS,GAAG;AACxB,UAAM,KAAK,MAAM,OAAO,yBAAwB;AAChD,UAAM,eAAe,KAAK,IAAI,SAAS;AACvC,UAAM,UAAU,KAAK,IAAI,SAAS;AAClC,UAAM,KAAK,MAAa,SAAS,mBAAmB;AACpD,QAAI,IAAI,OAAO,KAAK,UAAU,IAAI;AAClC,QAAI,IAAI,OAAO,KAAK,UAAU;AAE9B,QAAI,IAAI,OAAO,KAAK,MAAM;AAAA,MACzB,WAAW;AAAA,IACZ;AACA,UAAM,UAAU,GAAG,SAAS;AAAA,MAC3B,OACC,EAAE,eAAe,gBACjB,EAAE,eAAe,gBACjB,EAAE,KAAK,YAAY,EAAE,SAAS,aAAa,YAAY,CAAC;AAAA,IAC1D;AAIA,QAAI,GAAG,SAAS,OAAO,GAAG,eAAe;AACxC,UAAI,CAAC,SAAS,GAAG,SAAS,OAAO,EAAE,aAAa,GAAG;AAClD,iBAAS,IAAI,QAAQ,gDAAgD;AACrE;AAAA,MACD;AAAA,IACD;AAEA,QAAI,SAAS;AACZ,UAAI,IAAI,OAAO,KAAK,UAAU;AAAA,IAC/B;AAEA,QAAI,WAAW,GAAG;AACjB,YAAM,cAAc,CAAC,GAAG,GAAG,SAAS,OAAO,OAAK,EAAE,QAAQ,YAAY,CAAC;AACvE,UAAIA,UAAS;AACb,kBAAY,UAAU,OAAK;AAC1B,mBAAW,CAAC,GAAG,KAAK,KAAK,EAAE,SAAS,QAAQ,GAAG;AAC9C,cACC,MAAM,eAAe,gBACrB,MAAM,eAAe,gBACrB,MAAM,KAAK,YAAY,EAAE,SAAS,aAAa,YAAY,CAAC,GAC3D;AACD,YAAAA,WAAU;AACV,gBAAI;AAAA,UACL;AAAA,QACD;AAAA,MACD,CAAC;AACD,UAAI,CAACA,UAAS;AACb,iBAAS,IAAI,QAAQ,mBAAmB;AACxC;AAAA,MACD;AACA,SAAG,YAAYA,SAAQ,SAAS,CAAC,GAAG,IAAI,IAAI,OAAO,IAAI;AAAA,IACxD,OAAO;AACN,SAAG,YAAY,GAAG,SAAS,OAAO,GAAG,IAAI,IAAI,OAAO,IAAI;AAAA,IACzD;AACA;AAAA,EACD;AAEA,MAAI,MAAM,6BAA6B,MAAM,GAAG,EAAG;AAEnD,MAAI,KAAK,IAAI,QAAQ,GAAG;AACvB,UAAM,QAAQ,KAAK,IAAI,QAAQ;AAC/B,UAAM,QAAQ,OAAO,UAAU,WAAW,KAAK,MAAM,KAAK,IAAI;AAC9D,UAAM,OAAO;AAAA,MACZ,QAAQ,IAAI;AAAA,MACZ,OAAO,UAAU,OAAO,IAAI,SAAS,CAAC,CAAC;AAAA,IACxC;AACA,UAAM,IAAI,MAAM,OAAO,mBAAe;AACtC,UAAM,SAAS,EAAE,QAAQ,IAAI;AAC7B,WAAO;AAAA,EACR;AAEA,MAAI,KAAK,IAAI,YAAY,GAAG;AAO3B,UAAM,QAAQ,KAAK,IAAI,YAAY;AACnC,UAAM,CAAC,YAAY,OAAO,IAAI,MAAM,MAAM,GAAG;AAC7C,QAAI,CAAC,cAAc,CAAC,QAAS,OAAM;AACnC,UAAM,OAAO;AAAA,MACZ,QAAQ,IAAI;AAAA,MACZ,QAAQ,IAAI,QAAQ,UAAU;AAAA,MAC9B,OAAO;AAAA,QACN;AAAA,UACC,QAAQ;AAAA,UACR;AAAA,QACD;AAAA,QACA,IAAI,SAAS,CAAC;AAAA,MACf;AAAA,MACA,QAAQ,IAAI,IAAI;AAAA,MAChB,YAAY,IAAI,IAAI;AAAA,IACrB;AACA,QAAI,CAAC,KAAK,OAAQ,OAAM;AACxB,qBAAiB,IAAI;AAErB,UAAM,IAAI,MAAM,OAAO,mBAAa;AACpC,UAAM,SAAS,MAAM,EAAE,QAAQ,IAAI;AACnC,WAAO;AAAA,EACR;AAEA,MAAI,KAAK,IAAI,MAAM,GAAG;AACrB,UAAM,QAAQ,KAAK,IAAI,MAAM;AAC7B,UAAM,QAAQ,OAAO,UAAU,WAAW,KAAK,MAAM,KAAK,IAAI;AAC9D,UAAM,OAAO;AAAA,MACZ,OAAO,IAAI,IAAI;AAAA,MACf,QAAQ,IAAI;AAAA,MACZ,OAAO,UAAU,OAAO,IAAI,SAAS,CAAC,CAAC;AAAA,MACvC,QAAQ,IAAI,IAAI;AAAA,MAChB,YAAY,IAAI,IAAI;AAAA,IACrB;AACA,QAAI,MAAM,QAAQ;AACjB,WAAK,SAAS,IAAI,QAAQ,MAAM,MAAM;AAAA,IACvC,WAAW,OAAO,OAAO,QAAQ;AAChC,WAAK,SAAS,IAAI,QAAQ,MAAM,MAAM,MAAM;AAAA,IAC7C;AACA,qBAAiB,IAAI;AAErB,UAAM,IAAI,MAAM,OAAO,mBAAa;AACpC,UAAM,SAAS,MAAM,EAAE,QAAQ,IAAI;AACnC,WAAO;AAAA,EACR;AAEA,MAAI,KAAK,IAAI,mBAAmB,KAAK,KAAK,IAAI,kBAAkB,GAAG;AAClE,QAAI;AACJ,QAAI,KAAK,IAAI,mBAAmB,GAAG;AAClC,YAAM,OAAO,KAAK,IAAI,mBAAmB;AACzC,YAAM,IAAI,MAAa,SAAS,aAAa;AAAA,QAC5C,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,EAAE,KAAK,CAAC;AAAA,MAC9B,CAAC;AACD,UAAI,OAAO,KAAK,SAAU,OAAM;AAChC,UAAI,EAAE,MAAO,OAAM,EAAE;AACrB,UAAI,CAAC,EAAE,KAAM,OAAM;AACnB,YAAM,QAAQ,KAAK,MAAM,EAAE,IAAI;AAE/B,UAAI,SAAS,mCAAmC;AAG/C,cAAM,SAAS,OAAO,SAAS;AAC/B,cAAM,SAAS,SAAS,YAAY,SAAS;AAC7C,cAAM,SAAS,OAAO,UAAU,SAAS,iCAAiC;AAAA,MAC3E;AAEA,UAAI,MAAM,UAAU,UAAU,MAAM,SAAS,UAAU,OAAO,SAAS,QAAQ;AAC9E,0BAAkB,EAAE,MAAM,CAAC;AAC3B;AAAA,MACD;AAEA,aAAO;AAAA,QACN,OAAO,IAAI,IAAI;AAAA,QACf,QAAQ,IAAI;AAAA,QACZ;AAAA,QACA,QAAQ,IAAI,QAAQ,MAAM,MAAM,MAAM;AAAA,QACtC,QAAQ,IAAI,IAAI;AAAA,QAChB,YAAY,IAAI,IAAI;AAAA,MACrB;AAAA,IACD,WAAW,KAAK,IAAI,kBAAkB,GAAG;AACxC,YAAM,MAAM,KAAK,IAAI,kBAAkB;AACvC,YAAM,IAAI,MAAa,SAAS,gBAAgB;AAAA,QAC/C,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,EAAE,IAAI,CAAC;AAAA,MAC7B,CAAC;AACD,UAAI,OAAO,KAAK,SAAU,OAAM;AAChC,UAAI,EAAE,MAAO,OAAM,EAAE;AACrB,UAAI,CAAC,EAAE,KAAM,OAAM;AACnB,YAAM,QAAQ,KAAK,MAAM,EAAE,IAAI;AAE/B,UAAI,MAAM,UAAU,UAAU,MAAM,SAAS,UAAU,OAAO,SAAS,QAAQ;AAC9E,0BAAkB,EAAE,MAAM,CAAC;AAC3B;AAAA,MACD;AAEA,aAAO;AAAA,QACN,OAAO,IAAI,IAAI;AAAA,QACf,QAAQ,IAAI;AAAA,QACZ,OAAO,UAAU,OAAO,IAAI,SAAS,CAAC,CAAC;AAAA,QACvC,QAAQ,IAAI,QAAQ,MAAM,MAAM,MAAM;AAAA,QACtC,QAAQ,IAAI,IAAI;AAAA,QAChB,YAAY,IAAI,IAAI;AAAA,MACrB;AAAA,IACD;AACA,UAAM,IAAI,MAAM,OAAO,mBAAa;AACpC,UAAM,SAAS,EAAE,QAAQ,IAAI;AAC7B,WAAO;AAAA,EACR;AAEA,MAAI,KAAK,IAAI,iBAAiB,GAAG;AAChC,UAAM,KAAK,KAAK,IAAI,iBAAiB;AACrC,UAAM,MAAM,KAAK,IAAI,KAAK;AAC1B,QAAI;AACJ,QAAI,OAAO,WAAW;AACrB,YAAM,OAAO,aAAa,QAAQ,mBAAmB;AACrD,YAAM,gBAAgB,KAAK,MAAM,IAAI;AACrC,YAAM,EAAE,OAAO,cAAc,EAAE,EAAE;AAAA,IAClC,OAAO;AACN,YAAM,YAAY,EAAE,SAAS,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE;AAC9C,UAAI,OAAO,QAAQ;AAClB,cAAM,UAAU,KAAK,IAAI,SAAS;AAClC,cAAM,QAAQ,KAAK,IAAI,OAAO;AAC9B,kBAAU,KAAK,UAAU;AACzB,kBAAU,KAAK,QAAQ;AACvB,kBAAU,KAAK,QAAQ;AACvB,cAAM,MAAM,cAAc,SAAS,KAAK;AACxC,YAAI,IAAK,WAAU,QAAQ,gBAAgB,UAAU,KAAK,GAAG,CAAC;AAAA,MAC/D;AACA,YAAM,MAAa,SAAS,gBAAgB,SAAS;AACrD,UAAI,IAAI,MAAO,OAAM,IAAI;AAAA,IAC1B;AACA,UAAM,WAAW,IAAI,OAAO;AAC5B,QAAI,UAAU,UAAU,SAAS,UAAU,OAAO,SAAS,QAAQ;AAClE,wBAAkB,GAAG;AACrB;AAAA,IACD;AACA,UAAM,OAAO;AAAA,MACZ,OAAO,IAAI,IAAI;AAAA,MACf,QAAQ,IAAI;AAAA,MACZ,OAAO,UAAU,IAAI,OAAO,IAAI,SAAS,CAAC,CAAC;AAAA,MAC3C,QAAQ,IAAI,QAAQ,IAAI,MAAM,MAAM,MAAM;AAAA,MAC1C,iBAAiB,IAAI;AAAA,MACrB,WAAW;AAAA,MACX,QAAQ,IAAI,IAAI;AAAA,MAChB,YAAY,IAAI,IAAI;AAAA,IACrB;AACA,UAAM,IAAI,MAAM,OAAO,mBAAa;AACpC,UAAM,SAAS,EAAE,QAAQ,IAAI;AAC7B,WAAO;AAAA,EACR;AAEA,MAAI,KAAK,IAAI,QAAQ,KAAK,IAAI,cAAc;AAC3C,UAAM,IAAI,KAAK,IAAI,QAAQ;AAC3B,UAAM,iBAAiB,CAAC,GAAG,IAAI,aAAa,KAAK,EAAE,UAAU;AAC7D,UAAM,gBAAgB,eAAe,UAAU,OAAK,EAAE,SAAS,CAAC;AAChE,QAAI,iBAAiB,IAAI;AACxB;AAAA,QACC,IAAI;AAAA,QACJ,mBAAmB,CAAC,wDAAwD,eAC1E,IAAI,OAAK,EAAE,KAAK,EAChB,KAAK,IAAI,EACT,QAAQ,eAAe,MAAM,CAAC;AAAA,MACjC;AACA;AAAA,IACD;AACA,QAAI,aAAa,KAAK,EAAE,gBAAgB;AACxC,QAAI,aAAa,KAAK,EAAE,cAAc,IAAI,MAAM,QAAQ,CAAC;AAAA,EAC1D;AAEA,MAAI,KAAK,IAAI,SAAS,KAAK,KAAK,IAAI,QAAQ,GAAG;AAE9C,QAAI,MAAM,KAAK;AACf,QAAI,KAAK,IAAI,SAAS,GAAG;AACxB,aAAO,KAAK,IAAI,SAAS;AACzB,aAAO,KAAK,MAAM,GAAG,EAAE,IAAI;AAAA,IAC5B,OAAO;AACN,YAAM,KAAK,IAAI,QAAQ;AACvB,aAAO,IAAI,MAAM,GAAG,EAAE,IAAI;AAAA,IAC3B;AACA,UAAM,KAAK,KAAK,IAAI,QAAQ;AAC5B,QAAI,CAAC,GAAI,OAAM;AACf,UAAM,SAAS,IAAI,QAAQ,EAAE;AAC7B,QAAI,CAAC,OAAQ,OAAM;AACnB,UAAM,MAAM;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA,SAAS,IAAI;AAAA,MACb,QAAQ,KAAK,IAAI,QAAQ;AAAA,MACzB,QAAQ,IAAI;AAAA,IACb;AACA,UAAM,IAAI,MAAM,OAAO,sBAAsB;AAC7C,UAAM,EAAE,QAAQ,GAAG;AACnB;AAAA,EACD;AAGA,MAAI,KAAK,IAAI,YAAY,GAAG;AAC3B,QAAI,CAAC,KAAK,IAAI,QAAQ,EAAG,OAAM;AAC/B,UAAM,aAAa,KAAK,IAAI,QAAQ;AACpC,UAAM,YAAY,IAAI,QAAQ,UAAU;AACxC,QAAI,CAAC,UAAW,OAAM,qBAAqB;AAE3C,UAAM,IAAI,MAAM,OAAO,0BAAc;AACrC,MAAE;AAAA,MACD;AAAA,QACC,QAAQ;AAAA,QACR,UAAU,KAAK,IAAI,YAAY;AAAA,MAChC;AAAA,MACA,IAAI;AAAA,IACL;AACA;AAAA,EACD;AAEA,MAAI,KAAK,IAAI,UAAU,GAAG;AACzB,QAAI,CAAC,KAAK,IAAI,QAAQ,EAAG,OAAM;AAC/B,UAAM,aAAa,KAAK,IAAI,QAAQ;AACpC,UAAM,SAAS,IAAI,QAAQ,UAAU;AACrC,QAAI,CAAC,OAAQ,OAAM,qBAAqB;AACxC,UAAM,IAAI,MAAM,OAAO,oBAAQ;AAC/B,MAAE;AAAA,MACD;AAAA,QACC;AAAA,QACA,SAAS,IAAI;AAAA,QACb,MAAM,KAAK,IAAI,UAAU;AAAA,MAC1B;AAAA,MACA,MAAM;AAAA,MAAC;AAAA,MACP,IAAI;AAAA,MACJ,IAAI;AAAA,IACL;AACA;AAAA,EACD;AAEA,MAAI,KAAK,IAAI,SAAS,GAAG;AACxB,QAAI,CAAC,KAAK,IAAI,QAAQ,EAAG,OAAM;AAC/B,UAAM,aAAa,KAAK,IAAI,QAAQ;AACpC,UAAM,SAAS,IAAI,QAAQ,UAAU;AACrC,QAAI,CAAC,OAAQ,OAAM,qBAAqB;AACxC,UAAM,IAAI,MAAM,OAAO,oBAAQ;AAC/B,MAAE;AAAA,MACD;AAAA,QACC;AAAA,QACA,SAAS,IAAI;AAAA,QACb,KAAK,KAAK,IAAI,SAAS;AAAA,MACxB;AAAA,MACA,MAAM;AAAA,MAAC;AAAA,MACP,IAAI;AAAA,MACJ,IAAI;AAAA,IACL;AACA;AAAA,EACD;AAGA,MAAI,KAAK,IAAI,aAAa,GAAG;AAC5B,QAAI,CAAC,KAAK,IAAI,QAAQ,EAAG,OAAM;AAC/B,UAAM,aAAa,KAAK,IAAI,QAAQ;AACpC,UAAM,SAAS,IAAI,QAAQ,UAAU;AACrC,QAAI,CAAC,OAAQ,OAAM,qBAAqB;AAExC,QAAI;AACJ,QAAI,KAAK,IAAI,SAAS,KAAK,KAAK,IAAI,YAAY,GAAG;AAClD,YAAM,UAAU,KAAK,IAAI,YAAY;AACrC,YAAM,WAAW,KAAK,IAAI,SAAS;AACnC,kBAAY,MAAc,qBAAqB,UAAU,OAAO;AAAA,IACjE;AACA,QAAI,KAAK,IAAI,UAAU,GAAG;AACzB,YAAM,WAAW,KAAK,IAAI,UAAU;AACpC,YAAM,OAAO,MAAa,QAAQ,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,UAAI,KAAK,MAAO,OAAM,KAAK;AAAA,eAClB,KAAK,MAAM;AACnB,oBAAY;AAAA,UACX,sBAAsB;AAAA,YACrB,cAAc,KAAK,MAAM,KAAK,IAAI;AAAA,UACnC;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAGA,cAAU,qBAAqB,SAAS;AACxC,UAAM,IAAI,MAAM,OAAO,qCAAyB;AAChD,MAAE,KAAK,UAAU,sBAAsB,IAAI,QAAQ,KAAK;AACxD;AAAA,EACD;AAEA,MAAI,KAAK,IAAI,OAAO,GAAG;AACtB,QAAI,CAAC,KAAK,IAAI,QAAQ,EAAG,OAAM;AAC/B,UAAM,aAAa,KAAK,IAAI,QAAQ;AACpC,UAAM,YAAY,IAAI,QAAQ,UAAU;AACxC,QAAI,CAAC,UAAW,OAAM,qBAAqB;AAE3C,UAAM,MAAM;AAAA,MACX,OAAO;AAAA,MACP,SAAS,IAAI;AAAA,MACb,KAAK,IAAI;AAAA,MACT,QAAQ,IAAI;AAAA,MACZ,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,WAAW,IAAI;AAAA,IAChB;AAEA,QAAI,WAAW;AACf,QAAI,QAAQ;AAEZ,QAAI,KAAK,IAAI,UAAU,GAAG;AAIzB,YAAM,MAAM,KAAK,IAAI,UAAU,EAAE,MAAM,GAAG;AAC1C,UAAI,IAAI,CAAC,GAAG;AAEX,cAAM,MAAM,IAAI,CAAC,EAAE,MAAM,MAAM;AAC/B,cAAM,MAAM,IAAI,CAAC;AACjB,cAAM,QAAQ,OAAO,SAAS,IAAI,CAAC,CAAC;AACpC,cAAM,OAAO,OAAO,SAAS,IAAI,CAAC,CAAC;AACnC,YAAI,CAAC,IAAK,OAAM;AAChB,YAAI,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,IAAI,EAAG,OAAM;AAErD,mBAAW,EAAE,KAAK,OAAO,KAAK;AAAA,MAC/B;AAEA,YAAM,YAAY,CAAC;AACnB,eAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACpC,YAAI,CAAC,IAAI,CAAC,EAAG;AACb,cAAM,MAAM,IAAI,CAAC,EAAE,MAAM,MAAM;AAC/B,cAAM,MAAM,IAAI,CAAC;AACjB,cAAM,QAAQ,OAAO,SAAS,IAAI,CAAC,CAAC;AACpC,cAAM,OAAO,OAAO,SAAS,IAAI,CAAC,CAAC;AACnC,YAAI,CAAC,IAAK,OAAM;AAChB,YAAI,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,IAAI,EAAG,OAAM;AAErD,kBAAU,KAAK;AAAA,UACd;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,SAAS;AAAA,QACV,CAAC;AAAA,MACF;AACA,UAAI,UAAU,QAAQ;AAErB,YAAI,YAAY;AAAA,MACjB;AAAA,IACD;AAEA,QAAI,KAAK,IAAI,SAAS,GAAG;AAGxB,cAAQ,CAAC;AACT,iBAAW,KAAK,KAAK,IAAI,SAAS,EAAE,MAAM,GAAG,GAAG;AAC/C,cAAM,IAAI,EAAE,MAAM,MAAM;AACxB,cAAM,MAAM,EAAE,CAAC;AACf,cAAM,QAAQ,OAAO,SAAS,EAAE,CAAC,CAAC;AAClC,cAAM,OAAO,OAAO,SAAS,EAAE,CAAC,CAAC;AACjC,YAAI,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,IAAI,EAAG,OAAM;AACrD,cAAM,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,OAAc,KAAW,CAAC;AAAA,MACnD;AAAA,IACD;AAEA,QAAI,CAAC,YAAY,CAAC,OAAO;AAExB,UAAI,UAAU,cAAc;AAC3B,mBAAW;AAAA,UACV,KAAK,UAAU,aAAa;AAAA,UAC5B,OAAO,UAAU,aAAa;AAAA,UAC9B,MAAM,UAAU,aAAa;AAAA,QAC9B;AAAA,MACD;AAAA,IACD;AAEA,QAAI,UAAU;AACb,UAAI,MAAM,SAAS;AACnB,UAAI,QAAQ,SAAS;AACrB,UAAI,OAAO,SAAS;AAAA,IACrB,WAAW,OAAO;AACjB,UAAI,QAAQ;AAAA,IACb;AAEA,QAAI,KAAK,IAAI,UAAU,GAAG;AACzB,YAAM,MAAM,CAAC;AACb,iBAAW,KAAK,KAAK,IAAI,UAAU,EAAE,MAAM,GAAG,GAAG;AAChD,cAAM,MAAM,WAAW,GAAG,WAAW,IAAI;AACzC,YAAI,IAAK,KAAI,KAAK,GAAG;AAAA,MACtB;AACA,UAAI,IAAI,OAAQ,KAAI,YAAY;AAAA,IACjC;AAEA,QAAI,iBAAiB,oBAAoB,IAAI;AAE7C,QAAI,QAAQ,MAAM,UAAU,MAAM,SAAS;AAE3C,2BAAuB,IAAI,QAAQ,UAAU,GAAG,IAAI,KAAK;AAEzD,2BAAuB,MAAM,IAAI,KAAK;AACtC,UAAM,IAAI,MAAM,OAAO,qBAAS;AAChC,QAAI,EAAE,MAAM,GAAG;AACf;AAAA,EACD;AAEA,MAAI,KAAK,IAAI,MAAM,GAAG;AACrB,UAAM,MAAM,KAAK,IAAI,MAAM;AAC3B,QAAI,IAAI,UAAU,EAAG,OAAM;AAC3B,UAAM,MAAM;AAAA,MACX,SAAS,IAAI;AAAA,MACb,OAAO;AAAA,MACP,QAAQ,IAAI;AAAA,MACZ,qBAAqB,IAAI;AAAA,MACzB,YAAY,IAAI;AAAA,MAChB,WAAW,IAAI;AAAA,IAChB;AACA;AACC,UAAI;AACJ,eAAS,KAAK,IAAI,SAAS;AAC1B,YAAI,IAAI,QAAQ,CAAC,EAAE,WAAW;AAC7B,uBAAa;AACb;AAAA,QACD;AAAA,MACD;AACA,UAAI,KAAK,IAAI,QAAQ,GAAG;AACvB,qBAAa,KAAK,IAAI,QAAQ;AAAA,MAC/B;AACA,UAAI,CAAC,WAAY,OAAM;AACvB,UAAI,SAAS,IAAI,QAAQ,UAAU;AACnC,UAAI,CAAC,IAAI,OAAQ,OAAM,qBAAqB;AAAA,IAC7C;AACA,QAAI,KAAK;AACT,QAAI,KAAK,IAAI,SAAS,GAAG;AACxB,UAAI,UAAU,KAAK,IAAI,SAAS,EAAE,MAAM,GAAG;AAAA,IAC5C;AACA,QAAI,KAAK,IAAI,YAAY,GAAG;AAC3B,UAAI,aAAa,oBAAI,IAAI;AACzB,iBAAW,KAAK,KAAK,IAAI,YAAY,EAAE,MAAM,GAAG,GAAG;AAClD,YAAI,WAAW,IAAI,GAAG,KAAK;AAAA,MAC5B;AAAA,IACD;AACA,QAAI,KAAK,IAAI,UAAU,GAAG;AACzB,YAAM,MAAM,CAAC;AACb,iBAAW,KAAK,KAAK,IAAI,UAAU,EAAE,MAAM,GAAG,GAAG;AAChD,cAAM,MAAM,WAAW,GAAG,IAAI,QAAQ,IAAI;AAC1C,YAAI,IAAK,KAAI,KAAK,GAAG;AAAA,MACtB;AACA,UAAI,IAAI,OAAQ,KAAI,YAAY;AAAA,IACjC;AACA,QAAI,KAAK,IAAI,SAAS,GAAG;AACxB,YAAM,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,SAAS,EAAE,MAAM,GAAG,EAAE,IAAI,MAAM;AACxD,UAAI,OAAO,UAAU,CAAC,KAAK,OAAO,UAAU,CAAC,KAAK,IAAI,KAAK,IAAI,GAAG;AACjE,YAAI,UAAU,CAAC,GAAG,CAAC;AAAA,MACpB,OAAO;AACN,cAAM;AAAA,MACP;AAAA,IACD;AAEA,QAAI,QAAQ,MAAM,UAAU,MAAM,IAAI,MAAM;AAE5C,2BAAuB,MAAM,IAAI,KAAK;AAEtC,QAAI,iBAAiB,oBAAoB,IAAI;AAC7C,UAAM,mBAAU,GAAG;AACnB;AAAA,EACD;AAEA,MAAI,KAAK,IAAI,OAAO,GAAG;AAEtB,UAAM,aAAa,KAAK,IAAI,QAAQ;AACpC,UAAM,SAAS,IAAI,QAAQ,UAAU;AACrC,QAAI,CAAC,OAAQ,OAAM;AACnB,UAAM,UAAU,KAAK,IAAI,SAAS;AAClC,QAAI,CAAC,QAAS,OAAM;AACpB,UAAM,YAAY,KAAK,IAAI,QAAQ;AACnC,QAAI,CAAC,UAAW,OAAM;AACtB,UAAM,YAAY,MAAM,OAAO,0BAAoB,GAAG,UAAU,EAAE,OAAO,EAAE,QAAQ,YAAY,QAAQ,EAAE,CAAC;AAC1G,UAAM,eAAe,MAAM,SAAS,gBAAgB;AACpD,WAAO,MAAM,OAAO,0BAAsB,GAAG,QAAQ,cAAc,SAAS,EAAE,UAAU,GAAG,IAAI,QAAQ,MAAM;AAC7G;AAAA,EACD;AAGA,MAAI,KAAK,IAAI,OAAO,GAAG;AACtB,UAAM,IAAI,KAAK,IAAI,OAAO;AAC1B,QAAI,KAAK,IAAI;AACZ;AAAA,QACC,IAAI;AAAA,QACJ;AAAA,QACA,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ;AAAA;AAAA,QACA;AAAA;AAAA,QACA,IAAI,OAAO;AAAA,UACV,WAAW,IAAI;AAAA,UACf,iBAAiB,IAAI,mBAAmB,CAAC;AAAA,UACzC,WAAW,IAAI,aAAa,CAAC;AAAA,QAC9B;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAEA,SAAS,oBAAoB,MAAM;AAClC,MAAI,CAAC,KAAK,IAAI,KAAK,EAAG;AACtB,QAAM,MAAM,KAAK,IAAI,KAAK,EAAE,MAAM,GAAG;AACrC,MAAI,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG;AACrB,UAAM,UAAU,EAAE,SAAS,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,EAAE;AACpD,QAAI,KAAK,IAAI,QAAQ,GAAG;AACvB,cAAQ,eAAe,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE;AAGlD,cAAQ,yBAAyB;AAAA,IAClC;AACA,WAAO,CAAC,OAAO;AAAA,EAChB;AACA;AACD;AAEA,eAAsB,UAAU,MAAM,WAAW;AAChD,QAAM,QAAQ,CAAC;AAEf,aAAW,CAAC,KAAK,KAAK,KAAK,MAAM;AAChC,UAAM,MAAM,MAAM,YAAY,KAAK,OAAO,MAAM,SAAS;AACzD,QAAI,CAAC,IAAK;AACV,QAAI,MAAM,QAAQ,GAAG,EAAG,OAAM,KAAK,GAAG,GAAG;AAAA,QACpC,OAAM,KAAK,GAAG;AAAA,EACpB;AAEA,aAAW,KAAK,OAAO;AAGtB,QAAI,EAAE,QAAQ,UAAU,EAAE,QAAS;AACnC,MAAE,WAAW;AAAA,EACd;AAKA,MAAI,KAAK,IAAI,SAAS,GAAG;AACxB,UACE,OAAO,OAAK,EAAE,QAAe,IAAI,QAAQ,EACzC,QAAQ,OAAK;AACb,QAAE,UAAU;AACZ,QAAE,SAAS;AAAA,IACZ,CAAC;AAAA,EACH;AACA,MAAI,KAAK,IAAI,QAAQ,GAAG;AACvB,UACE,OAAO,OAAK,EAAE,QAAe,IAAI,QAAQ,EACzC,QAAQ,OAAK;AACb,QAAE,eAAe,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE;AAC5C,QAAE,yBAAyB;AAAA,IAG5B,CAAC;AAAA,EACH;AACA,SAAO;AACR;AAQA,eAAsB,YAAY,KAAK,OAAO,MAAM,WAAW;AAC9D,MAAI,OAAO,QAAQ;AAElB,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,eAAW,KAAK,KAAK;AACpB,YAAM,KAAK;AAAA,QACV,MAAa,IAAI;AAAA,QACjB,SAAS;AAAA,MACV;AACA,UAAI,KAAK,IAAI,OAAO,EAAG,IAAG,QAAQ,KAAK,IAAI,OAAO;AAClD,UAAI,KAAK,IAAI,WAAW,EAAG,IAAG,YAAY,KAAK,IAAI,WAAW;AAC9D,UAAI,KAAK,IAAI,SAAS,EAAG,IAAG,UAAU,KAAK,IAAI,SAAS;AACxD,UAAI,KAAK,IAAI,SAAS,EAAG,IAAG,kBAAkB;AAC9C,UAAI,KAAK,IAAI,cAAc,EAAG,IAAG,eAAe;AAChD,UAAI,KAAK,EAAE;AAAA,IACZ;AACA,WAAO;AAAA,EACR;AAEA,MAAI,OAAO,eAAe;AAEzB,UAAM,CAAC,QAAQ,OAAO,IAAI,MAAM,MAAM,GAAG;AACzC,QAAI;AACJ,QAAI,UAAU,SAAS;AACtB,WAAK;AAAA,QACJ,MAAa,IAAI;AAAA,QACjB,MAAM;AAAA,QACN,KAAK,EAAE,MAAM,QAAQ;AAAA,MACtB;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,cAAc;AAExB,UAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,MAAM,GAAG;AAC/C,QAAI;AACJ,QAAI,UAAU,KAAK;AAClB,WAAK;AAAA,QACJ,MAAa,IAAI;AAAA,QACjB,MAAM;AAAA,QACN,KAAK,EAAE,KAAK,SAAS;AAAA,MACtB;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAEA,MAAI,OAAO,WAAW;AACrB,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAa,IAAI;AAAA,UACjB,MAAM,IAAI,CAAC;AAAA,UACX,SAAS,IAAI,IAAI,CAAC;AAAA,UAClB,SAAS;AAAA,UACT,UAAU;AAAA,QACX,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAEA,MAAI,OAAO,aAAa,OAAO,cAAc;AAC5C,QAAI,SAAS;AACb,QAAI,OAAO,UAAW,YAAW;AAAA,QAC5B,WAAU;AACf,WAAO,MAAc,aAAa,UAAU,OAAO;AAAA,EACpD;AAEA,MAAI,OAAO,cAAc;AACxB,UAAM,KAAK,MAAa,QAAQ,YAAY,EAAE,MAAM,MAAM,CAAC;AAC3D,QAAI,GAAG,MAAO,OAAM,GAAG;AACvB,QAAI,CAAC,GAAG,KAAM,OAAM;AACpB,UAAM,MAAM,KAAK,MAAM,GAAG,IAAI;AAC9B,UAAM,MAAM,CAAC;AACb,eAAW,KAAK,KAAK;AACpB,UAAI,EAAE,SAAS;AACd,YAAI,CAAC,UAAU,MAAO,WAAU,QAAQ,CAAC;AACzC,YAAI,CAAC,EAAE,OAAQ,OAAM;AACrB,YAAI,CAAC,MAAM,QAAQ,EAAE,MAAM,EAAG,OAAM;AACpC,UAAE,QAAQ,EAAE;AACZ,eAAO,EAAE;AACT,mBAAW,KAAK,EAAE,OAAO;AACxB,cAAI,CAAC,EAAE,MAAO,OAAM;AACpB,cAAI,CAAC,EAAE,OAAQ,OAAM;AAErB,YAAE,OAAO,KAAK,OAAO,EAAE,SAAS;AAAA,QACjC;AACA,kBAAU,MAAM,KAAK,CAAC;AAAA,MACvB,OAAO;AAEN,YAAI,KAAK,CAAC;AAAA,MACX;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAEA,MAAI,OAAO,WAAW;AACrB,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAa,IAAI;AAAA,UACjB,MAAM,IAAI,CAAC;AAAA,UACX,MAAM,IAAI,IAAI,CAAC;AAAA,QAChB,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,UAAU;AACpB,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAa,IAAI;AAAA,UACjB,MAAM,IAAI,CAAC;AAAA,UACX,KAAK,IAAI,IAAI,CAAC;AAAA,QACf,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,YAAY;AACtB,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAa,IAAI;AAAA,UACjB,MAAM,IAAI,CAAC;AAAA,UACX,MAAM,IAAI,IAAI,CAAC;AAAA,QAChB,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,WAAW;AACrB,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAa,IAAI;AAAA,UACjB,MAAM,IAAI,CAAC;AAAA,UACX,KAAK,IAAI,IAAI,CAAC;AAAA,QACf,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,eAAe,OAAO,YAAY;AAE5C,UAAM,SAAS,OAAO;AACtB,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,OAAO,KAAK,IAAI,WAAW,IAAI,KAAK,IAAI,WAAW,EAAE,MAAM,GAAG,IAAI;AACxE,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACvC,cAAM,IAAI;AAAA,UACT,MAAa,IAAI;AAAA,UACjB,MAAM,IAAI,CAAC;AAAA,UACX,QAAQ,IAAI,IAAI,CAAC;AAAA,UACjB,qBAAqB,OAAO,KAAK,IAAI,CAAC,IAAI;AAAA,QAC3C;AACA,YAAI,QAAQ;AACX,YAAE,OAAO,IAAI,IAAI,CAAC;AAAA,QACnB,OAAO;AACN,YAAE,MAAM,IAAI,IAAI,CAAC;AAAA,QAClB;AACA,YAAI,KAAK,CAAC;AAAA,MACX;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,UAAU;AACpB,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAa,IAAI;AAAA,UACjB,MAAM,IAAI,CAAC;AAAA,UACX,MAAM,IAAI,IAAI,CAAC;AAAA,QAChB,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,cAAc;AACxB,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAa,IAAI;AAAA,UACjB,MAAM,IAAI,CAAC;AAAA,UACX,MAAM,IAAI,IAAI,CAAC;AAAA,UACf,OAAO,EAAE,MAAM,EAAE;AAAA,QAClB,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,aAAa;AACvB,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAa,IAAI;AAAA,UACjB,MAAM,IAAI,CAAC;AAAA,UACX,KAAK,IAAI,IAAI,CAAC;AAAA,UACd,OAAO,EAAE,MAAM,EAAE;AAAA,QAClB,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,gBAAgB;AAE1B,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAa,IAAI;AAAA,UACjB,MAAM,IAAI,CAAC;AAAA,UACX,QAAQ;AAAA,YACP;AAAA,cACC,MAAM,IAAI,IAAI,CAAC;AAAA,YAChB;AAAA,UACD;AAAA,QACD,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,eAAe;AACzB,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAa,IAAI;AAAA,UACjB,MAAM,IAAI,CAAC;AAAA,UACX,QAAQ;AAAA,YACP;AAAA,cACC,KAAK,IAAI,IAAI,CAAC;AAAA,YACf;AAAA,UACD;AAAA,QACD,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AA2BA,MAAI,OAAO,eAAe;AACzB,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAM;AAAA,UACN,MAAM,IAAI,CAAC;AAAA,UACX,MAAM,IAAI,IAAI,CAAC;AAAA,QAChB,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,eAAe;AACzB,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,QAAI,QAAQ;AACZ,QAAI,KAAK,IAAI,aAAa,GAAG;AAC5B,cAAQ,KAAK,IAAI,aAAa,EAAE,MAAM,GAAG,EAAE,IAAI,kBAAkB;AAAA,IAClE;AACA,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,cAAM,KAAK;AAAA,UACV,MAAa,IAAI;AAAA,UACjB,MAAM,IAAI,CAAC;AAAA,UACX,MAAM,IAAI,IAAI,CAAC;AAAA,QAChB;AACA,YAAI,SAAS,MAAM,IAAI,CAAC,GAAG;AAC1B,aAAG,OAAO,MAAM,IAAI,CAAC;AAAA,QACtB;AACA,YAAI,KAAK,EAAE;AAAA,MACZ;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,gBAAgB;AAC1B,UAAM,MAAM,MAAM,MAAM,GAAG;AAE3B,UAAM,OAAO,IAAI,CAAC;AAClB,UAAM,WAAW,CAAC;AAClB,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,eAAS,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;AAAA,IAC7B;AACA,QAAI;AACJ,QAAI,SAAS,SAAS,SAAS,KAAK;AACnC,WAAK;AAAA,QACJ,MAAa,IAAI;AAAA,QACjB;AAAA,MACD;AACA,UAAI,SAAS,OAAO;AACnB,WAAG,MAAM,SAAS;AAAA,MACnB;AACA,UAAI,SAAS,KAAK;AACjB,WAAG,WAAW;AAAA,UACb,KAAK,SAAS;AAAA,UACd,UAAU,SAAS;AAAA,QACpB;AAAA,MACD;AACA,UAAI,SAAS,MAAM;AAClB,WAAG,sBAAsB;AAAA,UACxB,UAAU;AAAA,UACV,KAAK,SAAS;AAAA,UACd,UAAU,SAAS;AAAA,QACpB;AAAA,MACD;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,iBAAiB;AAC3B,UAAM,MAAM,MAAM,MAAM,GAAG;AAE3B,UAAM,OAAO,IAAI,CAAC;AAClB,UAAM,YAAY,CAAC;AACnB,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,gBAAU,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;AAAA,IAC9B;AACA,QAAI;AACJ,QAAI,UAAU,SAAS,UAAU,KAAK;AACrC,WAAK;AAAA,QACJ,MAAa,IAAI;AAAA,QACjB;AAAA,MACD;AACA,UAAI,UAAU,OAAO;AACpB,WAAG,OAAO,UAAU;AAAA,MACrB;AACA,UAAI,UAAU,KAAK;AAClB,WAAG,WAAW;AAAA,UACb,MAAM,UAAU;AAAA,QACjB;AAAA,MACD;AACA,UAAI,UAAU,MAAM;AACnB,WAAG,sBAAsB;AAAA,UACxB,UAAU;AAAA,UACV,MAAM,UAAU;AAAA,QACjB;AAAA,MACD;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,mBAAmB;AAC7B,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAM;AAAA,UACN,MAAM,IAAI,CAAC;AAAA,UACX,MAAM,IAAI,IAAI,CAAC;AAAA,QAChB,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACA,MAAI,OAAO,kBAAkB;AAC5B,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAM;AAAA,UACN,MAAM,IAAI,CAAC;AAAA,UACX,OAAO,IAAI,IAAI,CAAC;AAAA;AAAA,QACjB,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAEA,MAAI,OAAO,kBAAkB;AAC5B,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACzB,YAAI,KAAK;AAAA,UACR,MAAa,IAAI;AAAA,UACjB,MAAM,IAAI,CAAC;AAAA,UACX,QAAQ,CAAC,EAAE,YAAY,IAAI,IAAI,CAAC,EAAE,CAAC;AAAA,QACpC,CAAC;AAAA,MACF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACD;AAEA,SAAS,uBAAuB,MAAM,OAAO;AAM5C,MAAI,KAAK,IAAI,kBAAkB,GAAG;AACjC,eAAW,KAAK,OAAO;AACtB,UAAI,EAAE,QAAQ,OAAQ,GAAE,eAAe,KAAK,IAAI,kBAAkB;AAAA,IACnE;AAAA,EACD;AACD;",
6
+ "names": ["element"]
7
+ }
@@ -0,0 +1,272 @@
1
+ import {
2
+ TermTypes,
3
+ termType2label
4
+ } from "./chunk-UAALI7MC.js";
5
+ import {
6
+ __export
7
+ } from "./chunk-HFNDKYVF.js";
8
+
9
+ // plots/matrix/hierCluster.renderers.js
10
+ var hierCluster_renderers_exports = {};
11
+ __export(hierCluster_renderers_exports, {
12
+ maySetSandboxHeader: () => maySetSandboxHeader,
13
+ plotDendrogramHclust: () => plotDendrogramHclust,
14
+ renderImage: () => renderImage
15
+ });
16
+ function maySetSandboxHeader(appState) {
17
+ if (!this.dom.header) return;
18
+ const dataType = this.config.dataType;
19
+ const headerText = this.config?.headerText ? `${this.config.headerText} ` : "";
20
+ let title;
21
+ if (this.config.preBuiltPlotTitle) {
22
+ title = this.config.preBuiltPlotTitle;
23
+ } else if (this.config.appName) {
24
+ title = `${headerText}${this.config.appName} Clustering`;
25
+ } else if (dataType == TermTypes.PROTEOME_ABUNDANCE) {
26
+ title = this.config.assayCohortTitle ? `Protein Abundance Clustering (${this.config.assayCohortTitle})` : "Protein Abundance Clustering";
27
+ } else {
28
+ title = `${headerText}${termType2label(dataType)} Clustering`;
29
+ }
30
+ this.dom.header.text(title);
31
+ }
32
+ function plotDendrogramHclust(plotOnly) {
33
+ const d = this.dimensions;
34
+ const s = this.config.settings.matrix;
35
+ const xOffset = d.seriesXoffset;
36
+ const pxr = window.devicePixelRatio <= 1 ? 1 : window.devicePixelRatio;
37
+ const obj = this.hierClusterData.clustering;
38
+ const row = obj.row;
39
+ const col = obj.col;
40
+ const rowHeight = this.settings.matrix.clusterRowh, { xDendrogramHeight, yDendrogramHeight } = this.settings.hierCluster, colWidth = this.dimensions.dx;
41
+ if (plotOnly !== "left") {
42
+ if (!this.settings.hierCluster.clusterSamples) {
43
+ this.dom.topDendrogram.selectAll("*").remove();
44
+ } else {
45
+ const height2px = getHclustHeightScalefactor(col.height, yDendrogramHeight);
46
+ const height = yDendrogramHeight + 1e-7;
47
+ const width = Math.min(colWidth * col.inputOrder.length, s.imgWMax);
48
+ if (width <= 0 || height <= 0) {
49
+ console.warn(
50
+ "Skipping top dendrogram render: invalid dimensions.",
51
+ "This may indicate a zoom feedback loop issue.",
52
+ {
53
+ width,
54
+ height,
55
+ colWidth,
56
+ sampleCount: col.inputOrder.length,
57
+ yDendrogramHeight
58
+ }
59
+ );
60
+ this.dom.topDendrogram.selectAll("*").remove();
61
+ return;
62
+ }
63
+ const canvas = new OffscreenCanvas(width * pxr, height * pxr);
64
+ const ctx = canvas.getContext("2d");
65
+ ctx.scale(pxr, pxr);
66
+ ctx.translate(-d.xMin, 0);
67
+ ctx.imageSmoothingEnabled = false;
68
+ ctx.imageSmoothingQuality = "high";
69
+ ctx.strokeStyle = "black";
70
+ const mergedClusters = /* @__PURE__ */ new Map();
71
+ for (const [clusterid0, pair] of col.merge.entries()) {
72
+ const clusterid = clusterid0 + 1;
73
+ const children = [];
74
+ const childrenClusters = [];
75
+ let x1, x2, y1, y2;
76
+ if (pair.n1 < 0) {
77
+ const [name, columnNumber] = getLeafNumber(pair.n1, col.inputOrder, col.order);
78
+ x1 = colWidth * (columnNumber + 0.5);
79
+ y1 = yDendrogramHeight;
80
+ children.push({ name });
81
+ } else {
82
+ if (!mergedClusters.has(pair.n1)) throw "pair.n1 is positive but not seen before";
83
+ const c = mergedClusters.get(pair.n1);
84
+ x1 = c.x;
85
+ y1 = c.y;
86
+ children.push(...c.children);
87
+ childrenClusters.push(pair.n1);
88
+ }
89
+ if (pair.n2 < 0) {
90
+ const [name, columnNumber] = getLeafNumber(pair.n2, col.inputOrder, col.order);
91
+ x2 = colWidth * (columnNumber + 0.5);
92
+ y2 = yDendrogramHeight;
93
+ children.push({ name });
94
+ } else {
95
+ if (!mergedClusters.has(pair.n2)) throw "pair.n1 is positive but not seen before";
96
+ const c = mergedClusters.get(pair.n2);
97
+ x2 = c.x;
98
+ y2 = c.y;
99
+ children.push(...c.children);
100
+ childrenClusters.push(pair.n2);
101
+ }
102
+ const clusterY = yDendrogramHeight - col.height[clusterid0].height * height2px;
103
+ const highlight = this.clickedClusterIds?.includes(clusterid);
104
+ ctx.strokeStyle = highlight ? "red" : "black";
105
+ ctx.beginPath();
106
+ ctx.moveTo(x1, y1);
107
+ ctx.lineTo(x1, clusterY);
108
+ ctx.lineTo(x2, clusterY);
109
+ ctx.lineTo(x2, y2);
110
+ ctx.stroke();
111
+ ctx.closePath();
112
+ mergedClusters.set(clusterid, {
113
+ x: (x1 + x2) / 2,
114
+ y: clusterY,
115
+ children,
116
+ childrenClusters,
117
+ clusterPosition: {
118
+ x1,
119
+ x2,
120
+ y1,
121
+ y2,
122
+ clusterY
123
+ }
124
+ });
125
+ }
126
+ this.renderImage(
127
+ this.api,
128
+ this.dom.topDendrogram,
129
+ canvas,
130
+ width,
131
+ height,
132
+ xDendrogramHeight + 0.5 * colWidth + d.xMin,
133
+ s.margin.top + s.scrollHeight
134
+ );
135
+ col.mergedClusters = mergedClusters;
136
+ }
137
+ }
138
+ if (plotOnly !== "top") {
139
+ if (!this.settings.hierCluster.clusterRows) {
140
+ this.dom.leftDendrogram.selectAll("*").remove();
141
+ } else {
142
+ const height2px = getHclustHeightScalefactor(row.height, xDendrogramHeight);
143
+ const width = xDendrogramHeight + 1e-7;
144
+ const height = rowHeight * row.inputOrder.length;
145
+ const canvasWidthPx = Number.isFinite(width) && Number.isFinite(pxr) ? Math.max(0, Math.floor(width * pxr)) : 0;
146
+ const canvasHeightPx = Number.isFinite(height) && Number.isFinite(pxr) ? Math.max(0, Math.floor(height * pxr)) : 0;
147
+ if (!Number.isFinite(width) || !Number.isFinite(height) || !Number.isFinite(pxr) || width <= 0 || height <= 0 || pxr <= 0 || canvasWidthPx < 1 || canvasHeightPx < 1) {
148
+ console.warn(
149
+ "Skipping left dendrogram render: invalid dimensions.",
150
+ "This may indicate a zoom feedback loop issue.",
151
+ {
152
+ width,
153
+ height,
154
+ pxr,
155
+ canvasWidthPx,
156
+ canvasHeightPx,
157
+ rowHeight,
158
+ termCount: row.inputOrder.length,
159
+ xDendrogramHeight
160
+ }
161
+ );
162
+ this.dom.leftDendrogram.selectAll("*").remove();
163
+ return;
164
+ }
165
+ const canvas = new OffscreenCanvas(canvasWidthPx, canvasHeightPx);
166
+ const ctx = canvas.getContext("2d");
167
+ ctx.scale(pxr, pxr);
168
+ ctx.imageSmoothingEnabled = false;
169
+ ctx.imageSmoothingQuality = "high";
170
+ ctx.strokeStyle = "black";
171
+ const mergedClusters = /* @__PURE__ */ new Map();
172
+ for (const [clusterid0, pair] of row.merge.entries()) {
173
+ const clusterid = clusterid0 + 1;
174
+ const children = [];
175
+ const childrenClusters = [];
176
+ let x1, x2, y1, y2;
177
+ if (pair.n1 < 0) {
178
+ const [name, rowNumber] = getLeafNumber(pair.n1, row.inputOrder, row.order);
179
+ y1 = rowHeight * (rowNumber + 0.5);
180
+ x1 = xDendrogramHeight;
181
+ children.push({ name });
182
+ } else {
183
+ if (!mergedClusters.has(pair.n1)) throw "pair.n1 is positive but not seen before";
184
+ const c = mergedClusters.get(pair.n1);
185
+ x1 = c.x;
186
+ y1 = c.y;
187
+ children.push(...c.children);
188
+ childrenClusters.push(pair.n1);
189
+ }
190
+ if (pair.n2 < 0) {
191
+ const [name, rowNumber] = getLeafNumber(pair.n2, row.inputOrder, row.order);
192
+ y2 = rowHeight * (rowNumber + 0.5);
193
+ x2 = xDendrogramHeight;
194
+ children.push({ name });
195
+ } else {
196
+ if (!mergedClusters.has(pair.n2)) throw "pair.n1 is positive but not seen before";
197
+ const c = mergedClusters.get(pair.n2);
198
+ x2 = c.x;
199
+ y2 = c.y;
200
+ children.push(...c.children);
201
+ childrenClusters.push(pair.n2);
202
+ }
203
+ const clusterX = xDendrogramHeight - row.height[clusterid0].height * height2px;
204
+ const highlight = this.clickedLeftClusterIds?.includes(clusterid);
205
+ ctx.strokeStyle = highlight ? "red" : "black";
206
+ ctx.beginPath();
207
+ ctx.moveTo(x1, y1);
208
+ ctx.lineTo(clusterX, y1);
209
+ ctx.lineTo(clusterX, y2);
210
+ ctx.lineTo(x2, y2);
211
+ ctx.stroke();
212
+ ctx.closePath();
213
+ mergedClusters.set(clusterid, {
214
+ x: clusterX,
215
+ y: (y1 + y2) / 2,
216
+ children,
217
+ childrenClusters,
218
+ clusterPosition: {
219
+ x1,
220
+ x2,
221
+ y1,
222
+ y2,
223
+ clusterX
224
+ }
225
+ });
226
+ }
227
+ const t = this.termOrder.find((t2) => t2.grp.type == "hierCluster" || t2.grp.name == this.hcTermGroup.name);
228
+ const y = (
229
+ // t.labelOffset is commented out because it is already handled in adjustSvgDimensions
230
+ t.grpIndex * s.rowgspace + t.prevGrpTotalIndex * s.rowh + t.totalHtAdjustments + s.margin.top + s.scrollHeight + // left dendrogram image must be lower than the top dendrogram image height
231
+ yDendrogramHeight
232
+ );
233
+ this.renderImage(this.api, this.dom.leftDendrogram, canvas, width, height, 0, y);
234
+ row.mergedClusters = mergedClusters;
235
+ }
236
+ }
237
+ }
238
+ async function renderImage(componentApi, g, canvas, width, height, x, y) {
239
+ const sequenceId = componentApi.getSequenceId();
240
+ const reader = new FileReader();
241
+ reader.addEventListener(
242
+ "load",
243
+ () => {
244
+ if (componentApi.isStaleSequenceId(sequenceId)) return;
245
+ g.selectAll("*").remove();
246
+ g.append("image").attr("x", x + 0.033).attr("y", y + 0.033).attr("xlink:href", reader.result).attr("width", width).attr("height", height);
247
+ },
248
+ false
249
+ );
250
+ const blob = await canvas.convertToBlob({ quality: 1 });
251
+ reader.readAsDataURL(blob);
252
+ }
253
+ function getHclustHeightScalefactor(lst, ph) {
254
+ let max = lst[0].height;
255
+ for (const h of lst) max = Math.max(max, h.height);
256
+ return ph / max;
257
+ }
258
+ function getLeafNumber(minus, inputOrder, order) {
259
+ const name = inputOrder[-minus - 1];
260
+ if (!name) throw "minus not in inputOrder";
261
+ const i = order.findIndex((j) => j.name == name);
262
+ if (i == -1) throw "name not found in hc$order";
263
+ return [name, i];
264
+ }
265
+
266
+ export {
267
+ maySetSandboxHeader,
268
+ plotDendrogramHclust,
269
+ renderImage,
270
+ hierCluster_renderers_exports
271
+ };
272
+ //# sourceMappingURL=chunk-42FSM477.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../plots/matrix/hierCluster.renderers.js"],
4
+ "sourcesContent": ["import { TermTypes, termType2label } from '#shared/terms.js'\n\nexport function maySetSandboxHeader(appState) {\n\t// run only once upon init, after state and dataType is given\n\tif (!this.dom.header) return // no header\n\tconst dataType = this.config.dataType\n\tconst headerText = this.config?.headerText ? `${this.config.headerText} ` : ''\n\tlet title\n\tif (this.config.preBuiltPlotTitle) {\n\t\ttitle = this.config.preBuiltPlotTitle\n\t} else if (this.config.appName) {\n\t\ttitle = `${headerText}${this.config.appName} Clustering`\n\t} else if (dataType == TermTypes.PROTEOME_ABUNDANCE) {\n\t\ttitle = this.config.assayCohortTitle\n\t\t\t? `Protein Abundance Clustering (${this.config.assayCohortTitle})`\n\t\t\t: 'Protein Abundance Clustering'\n\t} else {\n\t\ttitle = `${headerText}${termType2label(dataType)} Clustering`\n\t}\n\tthis.dom.header.text(title)\n}\n\nexport function plotDendrogramHclust(plotOnly) {\n\t/*\n\tbased on hclust() output\n\tplotOnly=top will only render column dendrograms\n\tplotOnly=left will only render row dendrograms\n\tif false will render both row and column\n\t*/\n\tconst d = this.dimensions\n\tconst s = this.config.settings.matrix\n\tconst xOffset = d.seriesXoffset // could be negative when zoomed\n\tconst pxr = window.devicePixelRatio <= 1 ? 1 : window.devicePixelRatio\n\n\tconst obj = this.hierClusterData.clustering\n\tconst row = obj.row\n\tconst col = obj.col\n\t/* both row{} and col{} are hclust() output structure:\n\t.merge[] {n1,n2}\n\t.height[] {height}\n\t.order[] {name}\n\t.inputOrder[] [str]\n\t*/\n\n\tconst rowHeight = this.settings.matrix.clusterRowh, //this.dimensions.dy,\n\t\t{ xDendrogramHeight, yDendrogramHeight } = this.settings.hierCluster,\n\t\tcolWidth = this.dimensions.dx\n\n\t// plot column dendrogram\n\tif (plotOnly !== 'left') {\n\t\tif (!this.settings.hierCluster.clusterSamples) {\n\t\t\tthis.dom.topDendrogram.selectAll('*').remove()\n\t\t} else {\n\t\t\tconst height2px = getHclustHeightScalefactor(col.height, yDendrogramHeight)\n\n\t\t\tconst height = yDendrogramHeight + 0.0000001\n\t\t\tconst width = Math.min(colWidth * col.inputOrder.length, s.imgWMax)\n\n\t\t\t// Safety check: prevent zero-sized canvas which causes convertToBlob error\n\t\t\tif (width <= 0 || height <= 0) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'Skipping top dendrogram render: invalid dimensions.',\n\t\t\t\t\t'This may indicate a zoom feedback loop issue.',\n\t\t\t\t\t{\n\t\t\t\t\t\twidth,\n\t\t\t\t\t\theight,\n\t\t\t\t\t\tcolWidth,\n\t\t\t\t\t\tsampleCount: col.inputOrder.length,\n\t\t\t\t\t\tyDendrogramHeight\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\tthis.dom.topDendrogram.selectAll('*').remove()\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst canvas = new OffscreenCanvas(width * pxr, height * pxr)\n\t\t\tconst ctx = canvas.getContext('2d')\n\t\t\tctx.scale(pxr, pxr)\n\t\t\t// when the OffscreenCanvas width is too wide (>60k pixels as tested in Chrome and other browsers),\n\t\t\t// rendering outside of the usable width causes an IndexSizeError. The solution below is similar to\n\t\t\t// what's done in matrix.renderer: impose an upper limit of s.imgWMax for the canvas width and\n\t\t\t// translate the rendered x positions to the left, creating a viewport bounded by the max canvas\n\t\t\t// image width and where the segments/lines positioned outside of those bounds are clipped\n\t\t\t// by the canvas engine\n\t\t\tctx.translate(-d.xMin, 0) // d.xMin = 0 when imgWMax is not exceeded\n\t\t\t//ctx.translate(-d.xMin, 0)\n\t\t\tctx.imageSmoothingEnabled = false\n\t\t\tctx.imageSmoothingQuality = 'high'\n\t\t\tctx.strokeStyle = 'black'\n\n\t\t\tconst mergedClusters = new Map()\n\t\t\t/*\n\t\t\tas iterating through .merge[], collect merged clusters in here\n\t\t\tk: cluster id, positive integer, as in row.merge[]\n\t\t\tv: {\n\t\t\t\tx:\n\t\t\t\ty:\n\t\t\t\tchildren:[]\n\t\t\t}\n\t\t\t*/\n\t\t\tfor (const [clusterid0, pair] of col.merge.entries()) {\n\t\t\t\t// pair is {n1,n2}, n1 and n2 form a new cluster; id of which is clusterid\n\n\t\t\t\tconst clusterid = clusterid0 + 1 // id of this cluster formed by pair, as used in hclust$merge; positive integer\n\t\t\t\tconst children = [] // collect all children leaves for this cluster\n\t\t\t\tconst childrenClusters = [] // collect direct children cluster Ids for this cluster\n\n\t\t\t\tlet x1, x2, y1, y2\n\t\t\t\tif (pair.n1 < 0) {\n\t\t\t\t\t// n1 is leaf\n\t\t\t\t\tconst [name, columnNumber] = getLeafNumber(pair.n1, col.inputOrder, col.order)\n\t\t\t\t\tx1 = colWidth * (columnNumber + 0.5)\n\t\t\t\t\ty1 = yDendrogramHeight\n\t\t\t\t\tchildren.push({ name })\n\t\t\t\t} else {\n\t\t\t\t\t// n1 is cluster\n\t\t\t\t\tif (!mergedClusters.has(pair.n1)) throw 'pair.n1 is positive but not seen before'\n\t\t\t\t\tconst c = mergedClusters.get(pair.n1)\n\t\t\t\t\tx1 = c.x\n\t\t\t\t\ty1 = c.y\n\t\t\t\t\tchildren.push(...c.children)\n\t\t\t\t\tchildrenClusters.push(pair.n1)\n\t\t\t\t}\n\t\t\t\tif (pair.n2 < 0) {\n\t\t\t\t\t// n2 is leaf\n\t\t\t\t\tconst [name, columnNumber] = getLeafNumber(pair.n2, col.inputOrder, col.order)\n\t\t\t\t\tx2 = colWidth * (columnNumber + 0.5)\n\t\t\t\t\ty2 = yDendrogramHeight\n\t\t\t\t\tchildren.push({ name })\n\t\t\t\t} else {\n\t\t\t\t\tif (!mergedClusters.has(pair.n2)) throw 'pair.n1 is positive but not seen before'\n\t\t\t\t\tconst c = mergedClusters.get(pair.n2)\n\t\t\t\t\tx2 = c.x\n\t\t\t\t\ty2 = c.y\n\t\t\t\t\tchildren.push(...c.children)\n\t\t\t\t\tchildrenClusters.push(pair.n2)\n\t\t\t\t}\n\t\t\t\t// cluster y position\n\t\t\t\tconst clusterY = yDendrogramHeight - col.height[clusterid0].height * height2px\n\n\t\t\t\tconst highlight = this.clickedClusterIds?.includes(clusterid)\n\t\t\t\tctx.strokeStyle = highlight ? 'red' : 'black'\n\n\t\t\t\tctx.beginPath()\n\t\t\t\tctx.moveTo(x1, y1) // move to n1\n\t\t\t\tctx.lineTo(x1, clusterY) // vertical line up to cluster\n\t\t\t\tctx.lineTo(x2, clusterY) // h line to n2\n\t\t\t\tctx.lineTo(x2, y2) // v line down to n2\n\t\t\t\tctx.stroke()\n\t\t\t\tctx.closePath()\n\n\t\t\t\tmergedClusters.set(clusterid, {\n\t\t\t\t\tx: (x1 + x2) / 2,\n\t\t\t\t\ty: clusterY,\n\t\t\t\t\tchildren,\n\t\t\t\t\tchildrenClusters,\n\t\t\t\t\tclusterPosition: {\n\t\t\t\t\t\tx1,\n\t\t\t\t\t\tx2,\n\t\t\t\t\t\ty1,\n\t\t\t\t\t\ty2,\n\t\t\t\t\t\tclusterY\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.renderImage(\n\t\t\t\tthis.api,\n\t\t\t\tthis.dom.topDendrogram,\n\t\t\t\tcanvas,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\txDendrogramHeight + 0.5 * colWidth + d.xMin,\n\t\t\t\ts.margin.top + s.scrollHeight\n\t\t\t)\n\n\t\t\tcol.mergedClusters = mergedClusters\n\t\t}\n\t}\n\n\t// plot row dendrogram\n\tif (plotOnly !== 'top') {\n\t\tif (!this.settings.hierCluster.clusterRows) {\n\t\t\tthis.dom.leftDendrogram.selectAll('*').remove()\n\t\t} else {\n\t\t\tconst height2px = getHclustHeightScalefactor(row.height, xDendrogramHeight)\n\t\t\tconst width = xDendrogramHeight + 0.0000001\n\t\t\tconst height = rowHeight * row.inputOrder.length\n\t\t\tconst canvasWidthPx = Number.isFinite(width) && Number.isFinite(pxr) ? Math.max(0, Math.floor(width * pxr)) : 0\n\t\t\tconst canvasHeightPx = Number.isFinite(height) && Number.isFinite(pxr) ? Math.max(0, Math.floor(height * pxr)) : 0\n\n\t\t\t// Safety check: prevent zero-sized canvas which causes OffscreenCanvas/convertToBlob errors\n\t\t\tif (\n\t\t\t\t!Number.isFinite(width) ||\n\t\t\t\t!Number.isFinite(height) ||\n\t\t\t\t!Number.isFinite(pxr) ||\n\t\t\t\twidth <= 0 ||\n\t\t\t\theight <= 0 ||\n\t\t\t\tpxr <= 0 ||\n\t\t\t\tcanvasWidthPx < 1 ||\n\t\t\t\tcanvasHeightPx < 1\n\t\t\t) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'Skipping left dendrogram render: invalid dimensions.',\n\t\t\t\t\t'This may indicate a zoom feedback loop issue.',\n\t\t\t\t\t{\n\t\t\t\t\t\twidth,\n\t\t\t\t\t\theight,\n\t\t\t\t\t\tpxr,\n\t\t\t\t\t\tcanvasWidthPx,\n\t\t\t\t\t\tcanvasHeightPx,\n\t\t\t\t\t\trowHeight,\n\t\t\t\t\t\ttermCount: row.inputOrder.length,\n\t\t\t\t\t\txDendrogramHeight\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\tthis.dom.leftDendrogram.selectAll('*').remove()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst canvas = new OffscreenCanvas(canvasWidthPx, canvasHeightPx)\n\t\t\tconst ctx = canvas.getContext('2d')\n\t\t\tctx.scale(pxr, pxr)\n\t\t\tctx.imageSmoothingEnabled = false\n\t\t\tctx.imageSmoothingQuality = 'high'\n\t\t\tctx.strokeStyle = 'black'\n\n\t\t\tconst mergedClusters = new Map()\n\t\t\tfor (const [clusterid0, pair] of row.merge.entries()) {\n\t\t\t\t// pair is {n1,n2}, n1 and n2 form a new cluster; id of which is clusterid\n\n\t\t\t\tconst clusterid = clusterid0 + 1 // id of this cluster formed by pair, as used in hclust$merge; positive integer\n\t\t\t\tconst children = [] // collect all children leaves for this cluster\n\t\t\t\tconst childrenClusters = []\n\n\t\t\t\tlet x1, x2, y1, y2\n\t\t\t\tif (pair.n1 < 0) {\n\t\t\t\t\t// n1 is leaf\n\t\t\t\t\tconst [name, rowNumber] = getLeafNumber(pair.n1, row.inputOrder, row.order)\n\t\t\t\t\ty1 = rowHeight * (rowNumber + 0.5)\n\t\t\t\t\tx1 = xDendrogramHeight\n\t\t\t\t\tchildren.push({ name })\n\t\t\t\t} else {\n\t\t\t\t\t// n1 is cluster\n\t\t\t\t\tif (!mergedClusters.has(pair.n1)) throw 'pair.n1 is positive but not seen before'\n\t\t\t\t\tconst c = mergedClusters.get(pair.n1)\n\t\t\t\t\tx1 = c.x\n\t\t\t\t\ty1 = c.y\n\t\t\t\t\tchildren.push(...c.children)\n\t\t\t\t\tchildrenClusters.push(pair.n1)\n\t\t\t\t}\n\t\t\t\tif (pair.n2 < 0) {\n\t\t\t\t\t// n2 is leaf\n\t\t\t\t\tconst [name, rowNumber] = getLeafNumber(pair.n2, row.inputOrder, row.order)\n\t\t\t\t\ty2 = rowHeight * (rowNumber + 0.5)\n\t\t\t\t\tx2 = xDendrogramHeight\n\t\t\t\t\tchildren.push({ name })\n\t\t\t\t} else {\n\t\t\t\t\tif (!mergedClusters.has(pair.n2)) throw 'pair.n1 is positive but not seen before'\n\t\t\t\t\tconst c = mergedClusters.get(pair.n2)\n\t\t\t\t\tx2 = c.x\n\t\t\t\t\ty2 = c.y\n\t\t\t\t\tchildren.push(...c.children)\n\t\t\t\t\tchildrenClusters.push(pair.n2)\n\t\t\t\t}\n\t\t\t\t// cluster x position\n\t\t\t\tconst clusterX = xDendrogramHeight - row.height[clusterid0].height * height2px\n\n\t\t\t\tconst highlight = this.clickedLeftClusterIds?.includes(clusterid)\n\t\t\t\tctx.strokeStyle = highlight ? 'red' : 'black'\n\n\t\t\t\tctx.beginPath()\n\t\t\t\tctx.moveTo(x1, y1) // move to n1\n\t\t\t\tctx.lineTo(clusterX, y1) // h line right to cluster\n\t\t\t\tctx.lineTo(clusterX, y2) // v line down to n2\n\t\t\t\tctx.lineTo(x2, y2) // h line left to n2\n\t\t\t\tctx.stroke()\n\t\t\t\tctx.closePath()\n\n\t\t\t\tmergedClusters.set(clusterid, {\n\t\t\t\t\tx: clusterX,\n\t\t\t\t\ty: (y1 + y2) / 2,\n\t\t\t\t\tchildren,\n\t\t\t\t\tchildrenClusters,\n\t\t\t\t\tclusterPosition: {\n\t\t\t\t\t\tx1,\n\t\t\t\t\t\tx2,\n\t\t\t\t\t\ty1,\n\t\t\t\t\t\ty2,\n\t\t\t\t\t\tclusterX\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst t = this.termOrder.find(t => t.grp.type == 'hierCluster' || t.grp.name == this.hcTermGroup.name)\n\t\t\tconst y =\n\t\t\t\t// t.labelOffset is commented out because it is already handled in adjustSvgDimensions\n\t\t\t\tt.grpIndex * s.rowgspace +\n\t\t\t\tt.prevGrpTotalIndex * s.rowh /* + (t.labelOffset || 0) */ +\n\t\t\t\tt.totalHtAdjustments +\n\t\t\t\ts.margin.top +\n\t\t\t\ts.scrollHeight +\n\t\t\t\t// left dendrogram image must be lower than the top dendrogram image height\n\t\t\t\tyDendrogramHeight\n\t\t\tthis.renderImage(this.api, this.dom.leftDendrogram, canvas, width, height, 0, y)\n\n\t\t\trow.mergedClusters = mergedClusters\n\t\t}\n\t}\n}\n\nexport async function renderImage(componentApi, g, canvas, width, height, x, y) {\n\tconst sequenceId = componentApi.getSequenceId()\n\tconst reader = new FileReader()\n\treader.addEventListener(\n\t\t'load',\n\t\t() => {\n\t\t\tif (componentApi.isStaleSequenceId(sequenceId)) return\n\t\t\t// remove a previously rendered image, if applicable, right before replacing it\n\t\t\t// so that there will be no flicker on update\n\t\t\tg.selectAll('*').remove()\n\n\t\t\tg.append('image')\n\t\t\t\t.attr('x', x + 0.033)\n\t\t\t\t.attr('y', y + 0.033)\n\t\t\t\t.attr('xlink:href', reader.result)\n\t\t\t\t.attr('width', width)\n\t\t\t\t.attr('height', height)\n\t\t},\n\t\tfalse\n\t)\n\tconst blob = await canvas.convertToBlob({ quality: 1 })\n\treader.readAsDataURL(blob)\n\t// g.selectAll('*').remove()\n\t// const foCanvas = g.append('foreignObject').append('canvas').attr('width', width).attr('height', height).node()\n\t// const bitmap = canvas.transferToImageBitmap();\n\t// foCanvas.getContext(\"bitmaprenderer\").transferFromImageBitmap(bitmap);\n}\n\nfunction getHclustHeightScalefactor(lst, ph) {\n\t// scale hclust$height to on-screen max height (h) in number of pixels\n\tlet max = lst[0].height\n\tfor (const h of lst) max = Math.max(max, h.height)\n\treturn ph / max\n}\n\nfunction getLeafNumber(minus, inputOrder, order) {\n\tconst name = inputOrder[-minus - 1]\n\tif (!name) throw 'minus not in inputOrder'\n\tconst i = order.findIndex(j => j.name == name)\n\tif (i == -1) throw 'name not found in hc$order'\n\treturn [name, i]\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["t"]
7
+ }