@sjcrh/proteinpaint-client 2.191.0 → 2.191.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (869) hide show
  1. package/dist/2dmaf-V4WJ2LEK.js +1373 -0
  2. package/dist/AIProjectAdmin-JMN5O6YU.js +829 -0
  3. package/dist/AppHeader-Y4SEKCEF.js +835 -0
  4. package/dist/BoxPlot-ZXQZGCR3.js +1211 -0
  5. package/dist/BoxPlot-ZXQZGCR3.js.map +7 -0
  6. package/dist/CorrelationVolcano-R5IWD6WA.js +619 -0
  7. package/dist/DE-ZV6O7B6Y.js +95 -0
  8. package/dist/DEinput-FTOALZKN.js +301 -0
  9. package/dist/DifferentialAnalysis-NLCA766A.js +245 -0
  10. package/dist/Disco-Y5Z4A7GN.js +3237 -0
  11. package/dist/Disco.UI-GSWZYIUT.js +245 -0
  12. package/dist/DmrPlot-FEFUCIGT.js +642 -0
  13. package/dist/DziViewer-6737GC22.js +16332 -0
  14. package/dist/GB-AOXF2JJB.js +1130 -0
  15. package/dist/GeneExpInput-CXYRKQU7.js +366 -0
  16. package/dist/HicApp-GLNNZ4H5.js +2250 -0
  17. package/dist/NumBinaryEditor-6ZAL6CCP.js +271 -0
  18. package/dist/NumBinaryEditor-6ZAL6CCP.js.map +7 -0
  19. package/dist/NumBinaryEditor.unit.spec-3VTJLILH.js +286 -0
  20. package/dist/NumContEditor-3LOAR676.js +109 -0
  21. package/dist/NumContEditor-3LOAR676.js.map +7 -0
  22. package/dist/NumContEditor.unit.spec-WIMYCOVO.js +169 -0
  23. package/dist/NumCustomBinEditor-XIOAYWOD.js +38 -0
  24. package/dist/NumCustomBinEditor.unit.spec-N5OV6MKR.js +284 -0
  25. package/dist/NumDiscreteEditor-AT6FKYGI.js +179 -0
  26. package/dist/NumDiscreteEditor.unit.spec-BDR5GZ46.js +202 -0
  27. package/dist/NumRegularBinEditor-Z4NBS4VZ.js +38 -0
  28. package/dist/NumRegularBinEditor.unit.spec-BRWYNQ55.js +227 -0
  29. package/dist/NumSplineEditor-B45BAWQ2.js +198 -0
  30. package/dist/NumSplineEditor-B45BAWQ2.js.map +7 -0
  31. package/dist/NumSplineEditor.unit.spec-5RDBCZ4N.js +199 -0
  32. package/dist/NumericDensity-L7HIVV7D.js +38 -0
  33. package/dist/NumericDensity.unit.spec-PL3XDJCV.js +221 -0
  34. package/dist/NumericHandler-KJYZOCCG.js +39 -0
  35. package/dist/NumericHandler.unit.spec-VC7NPLJW.js +219 -0
  36. package/dist/ProteomeInput-A3GRPIAH.js +396 -0
  37. package/dist/RunChart2-MSNU3ZNT.js +758 -0
  38. package/dist/SC-FNKG2FK5.js +936 -0
  39. package/dist/Volcano-IRJMPHXJ.js +1379 -0
  40. package/dist/WSIViewer-KITT7I67.js +48475 -0
  41. package/dist/WsiSamplesPlot-G3YZ6SIE.js +165 -0
  42. package/dist/adSandbox-GIQTJ4VA.js +38 -0
  43. package/dist/app-MGNEMS2K.js +49 -0
  44. package/dist/app-UQTHPQFD.js +37 -0
  45. package/dist/app.js +15 -15
  46. package/dist/bam-5PROQBRT.js +860 -0
  47. package/dist/barchart-BQYJ73Z4.js +47 -0
  48. package/dist/barchart.data-VFULOIHY.js +22 -0
  49. package/dist/barchart.events-W2CIDD4B.js +47 -0
  50. package/dist/barchart.integration.spec-JF2IHFQE.js +1980 -0
  51. package/dist/barchart.integration.spec-JF2IHFQE.js.map +7 -0
  52. package/dist/barchart2-V6W4UAFH.js +311 -0
  53. package/dist/block-5V2FCT7Q.js +6202 -0
  54. package/dist/block.init-43IUNDNB.js +38 -0
  55. package/dist/block.mds.expressionrank-LI6MZPBE.js +359 -0
  56. package/dist/block.mds.geneboxplot-673AIJMJ.js +828 -0
  57. package/dist/block.mds.junction-UWNVNV3X.js +1545 -0
  58. package/dist/block.mds.svcnv-Z5VFCUUE.js +6801 -0
  59. package/dist/block.svg-MGK4GWLL.js +164 -0
  60. package/dist/block.tk.aicheck-OFNDGG7Q.js +283 -0
  61. package/dist/block.tk.ase-IDZQY7MW.js +365 -0
  62. package/dist/block.tk.bam-K7A2Q5NI.js +1906 -0
  63. package/dist/block.tk.bedgraphdot-PPTKCCPK.js +384 -0
  64. package/dist/block.tk.bigwig.ui-PI6EAU43.js +212 -0
  65. package/dist/block.tk.hicstraw-EZ2GS2K4.js +823 -0
  66. package/dist/block.tk.junction-4WSLQGSQ.js +2364 -0
  67. package/dist/block.tk.junction.textmatrixui-7EJUSVMB.js +199 -0
  68. package/dist/block.tk.ld-KLVO7M37.js +99 -0
  69. package/dist/block.tk.menu-KZSL7BAR.js +1029 -0
  70. package/dist/block.tk.pgv-NYWGB4VH.js +944 -0
  71. package/dist/brainImaging-MTIIMJHW.js +423 -0
  72. package/dist/chunk-2NQLAH3L.js +443 -0
  73. package/dist/chunk-2Q6PBSPS.js +1943 -0
  74. package/dist/chunk-2TCCXOAV.js +1170 -0
  75. package/dist/chunk-2TCCXOAV.js.map +7 -0
  76. package/dist/chunk-3D5GZIGG.js +1210 -0
  77. package/dist/chunk-3TPAIXNL.js +263 -0
  78. package/dist/chunk-42EBECOD.js +95 -0
  79. package/dist/chunk-4B42QV34.js +2786 -0
  80. package/dist/chunk-4FKWINMK.js +184 -0
  81. package/dist/chunk-4KY4XKJV.js +143 -0
  82. package/dist/chunk-52RORO74.js +158 -0
  83. package/dist/chunk-5SXCIKYV.js +100 -0
  84. package/dist/chunk-647P2I4Q.js +482 -0
  85. package/dist/chunk-67HSIHPP.js +2327 -0
  86. package/dist/chunk-6GZJCSA6.js +1102 -0
  87. package/dist/chunk-6VKTEMFV.js +1815 -0
  88. package/dist/chunk-7JEKUSEL.js +102 -0
  89. package/dist/chunk-BMO6KSVC.js +477 -0
  90. package/dist/chunk-CKA52OEA.js +399 -0
  91. package/dist/chunk-CKA52OEA.js.map +7 -0
  92. package/dist/chunk-CKDC326M.js +50 -0
  93. package/dist/chunk-CYHUNQMS.js +6364 -0
  94. package/dist/chunk-DC4KD6FJ.js +458 -0
  95. package/dist/chunk-DC4KD6FJ.js.map +7 -0
  96. package/dist/chunk-DHPLHIVP.js +498 -0
  97. package/dist/chunk-DJQTUDJM.js +414 -0
  98. package/dist/chunk-DJQTUDJM.js.map +7 -0
  99. package/dist/chunk-DWCVGCBX.js +381 -0
  100. package/dist/chunk-EIBNV236.js +339 -0
  101. package/dist/chunk-EZ3WMXYT.js +217 -0
  102. package/dist/chunk-F5QIZOPL.js +736 -0
  103. package/dist/chunk-F6N6JBZR.js +37 -0
  104. package/dist/chunk-FXMHSVBS.js +54 -0
  105. package/dist/chunk-GMT2GNQY.js +1332 -0
  106. package/dist/chunk-IIT367QZ.js +473 -0
  107. package/dist/chunk-IL5QT2FI.js +293 -0
  108. package/dist/chunk-J6GLTYGJ.js +2681 -0
  109. package/dist/chunk-JJOLDYSQ.js +824 -0
  110. package/dist/chunk-KSCJWPTJ.js +34 -0
  111. package/dist/chunk-L4TUTGTA.js +20787 -0
  112. package/dist/chunk-L4TUTGTA.js.map +7 -0
  113. package/dist/chunk-LT5XPBIX.js +272 -0
  114. package/dist/chunk-M3J4MINX.js +783 -0
  115. package/dist/chunk-M3J4MINX.js.map +7 -0
  116. package/dist/chunk-MEGBYD4U.js +182 -0
  117. package/dist/chunk-MYWV64P5.js +1275 -0
  118. package/dist/chunk-NKTBR5SK.js +613 -0
  119. package/dist/chunk-NVX26LFC.js +148 -0
  120. package/dist/chunk-O7NFSCEW.js +291 -0
  121. package/dist/chunk-P4QGOUDH.js +368 -0
  122. package/dist/chunk-PGBKZ76Y.js +129 -0
  123. package/dist/chunk-PQNVPSQR.js +205 -0
  124. package/dist/chunk-PQZ3A27I.js +54 -0
  125. package/dist/chunk-QNMB7LYW.js +5010 -0
  126. package/dist/chunk-RZGEKL77.js +117 -0
  127. package/dist/chunk-RZY34QRF.js +158 -0
  128. package/dist/chunk-S4JLRRKK.js +287 -0
  129. package/dist/chunk-S4JLRRKK.js.map +7 -0
  130. package/dist/chunk-SDACELDR.js +14 -0
  131. package/dist/chunk-SQWEREGE.js +222 -0
  132. package/dist/chunk-UCLROZRF.js +142 -0
  133. package/dist/chunk-VIHUKORE.js +216 -0
  134. package/dist/chunk-VIHUKORE.js.map +7 -0
  135. package/dist/chunk-VMLSRKIB.js +276 -0
  136. package/dist/chunk-WET4LPLO.js +117 -0
  137. package/dist/chunk-X5X5T3AJ.js +230 -0
  138. package/dist/chunk-X5X5T3AJ.js.map +7 -0
  139. package/dist/chunk-X63AAJGT.js +514 -0
  140. package/dist/chunk-XRAFQKOF.js +4274 -0
  141. package/dist/chunk-XRAFQKOF.js.map +7 -0
  142. package/dist/chunk-XVZ5UJWU.js +815 -0
  143. package/dist/chunk-YNBT4N6T.js +2824 -0
  144. package/dist/chunk-YVCTEEVQ.js +55 -0
  145. package/dist/chunk-YWZCJMHS.js +203 -0
  146. package/dist/chunk-Z3SC67OA.js +102 -0
  147. package/dist/chunk-ZLREFIZB.js +302 -0
  148. package/dist/chunk-ZX2ISBEF.js +95 -0
  149. package/dist/condition-P2XD32QM.js +332 -0
  150. package/dist/controls-FZUTJPKV.js +41 -0
  151. package/dist/controls.btns-AP67YWKW.js +9 -0
  152. package/dist/controls.config-TEFY3NTE.js +39 -0
  153. package/dist/correlation-HS2WJFXN.js +99 -0
  154. package/dist/correlation-HS2WJFXN.js.map +7 -0
  155. package/dist/cuminc-42GBJHD3.js +1149 -0
  156. package/dist/cuminc.integration.spec-BAY4JHVL.js +678 -0
  157. package/dist/customdata.inputui-IPM5K56K.js +289 -0
  158. package/dist/dataDownload-D7VCYBDT.js +330 -0
  159. package/dist/dataDownload.integration.spec-SEBY2BIX.js +193 -0
  160. package/dist/databrowser.ui-5OC5MPZB.js +433 -0
  161. package/dist/dictionary-VVRWVLJX.js +111 -0
  162. package/dist/dnaMethylation-72IS3FRI.js +38 -0
  163. package/dist/dnaMethylation.integration.spec-U2LLSDGE.js +203 -0
  164. package/dist/dofetch-5ZRAQH5F.js +51 -0
  165. package/dist/e2pca-AR6EKEJA.js +350 -0
  166. package/dist/ep-JS5UUJQX.js +1256 -0
  167. package/dist/expclust.gdc.spec-73MGQ7RN.js +307 -0
  168. package/dist/facet-AR3QKHCY.js +521 -0
  169. package/dist/forms2-UXEI7MUP.js +534 -0
  170. package/dist/gb-RHDVYU2V.js +88 -0
  171. package/dist/geneExpClustering-L6KLCMPH.js +249 -0
  172. package/dist/geneExpression-GYT2XRE6.js +313 -0
  173. package/dist/geneExpression-SKIU3NEP.js +38 -0
  174. package/dist/geneExpression.unit.spec-CWR6KDVK.js +102 -0
  175. package/dist/geneORA-C3TALK5P.js +278 -0
  176. package/dist/geneRanking-LLYLDPLV.js +551 -0
  177. package/dist/geneVariant-PUSKBHPY.js +39 -0
  178. package/dist/geneVariant-YFMU6PHM.js +41 -0
  179. package/dist/geneVariant.integration.spec-EJ5V46OQ.js +198 -0
  180. package/dist/genefusion.ui-XUHSKQKW.js +309 -0
  181. package/dist/geneset-DEL5LXFZ.js +208 -0
  182. package/dist/genomeBrowser.spec-W5TVHOUJ.js +281 -0
  183. package/dist/grin2-FXAEGECD.js +1560 -0
  184. package/dist/grin2-U2FKULLC.js +821 -0
  185. package/dist/gsea-CNL6SHH5.js +47 -0
  186. package/dist/hierCluster-7V65PMIW.js +59 -0
  187. package/dist/hierCluster-C44GHM4B.js +63 -0
  188. package/dist/hierCluster.config-RU5JDPWM.js +40 -0
  189. package/dist/hierCluster.integration.spec-6YH5KE4H.js +395 -0
  190. package/dist/hierCluster.interactivity-PK2L7BSW.js +54 -0
  191. package/dist/imagePlot-5SEDMPBP.js +163 -0
  192. package/dist/importPlot-M3MKWRON.js +8 -0
  193. package/dist/isoformExpression-PPMISWKT.js +40 -0
  194. package/dist/isoformExpression.unit.spec-ENHCCQRZ.js +208 -0
  195. package/dist/launch.adhoc-XAG6H42J.js +42 -0
  196. package/dist/leftlabel.sample-BSPCI6GR.js +260 -0
  197. package/dist/lollipop-IZJ7E3YO.js +171 -0
  198. package/dist/maf-54XWBQ73.js +452 -0
  199. package/dist/maftimeline-3AJKAFS6.js +593 -0
  200. package/dist/matrix-AJPMHUXG.js +63 -0
  201. package/dist/matrix-ZMXNOESU.js +58 -0
  202. package/dist/matrix.config-4WLSFMTY.js +41 -0
  203. package/dist/matrix.data-WMOTOB6C.js +25 -0
  204. package/dist/matrix.dom-F7AN3QGE.js +11 -0
  205. package/dist/matrix.integration.spec-ENRPVB7R.js +3072 -0
  206. package/dist/matrix.interactivity-IMWERCZF.js +42 -0
  207. package/dist/matrix.layout-5DDZWLNX.js +44 -0
  208. package/dist/matrix.renderers-VFQZG5JP.js +38 -0
  209. package/dist/matrix.sort.unit.spec-ZA5DRNL6.js +472 -0
  210. package/dist/matrix.sorterUi-3KEDVLGW.js +18 -0
  211. package/dist/matrix.sorterUi.unit.spec-7TPOJ46U.js +342 -0
  212. package/dist/mavb-73BXZ7MO.js +732 -0
  213. package/dist/mds.fimo-L7VVAOXQ.js +518 -0
  214. package/dist/mds.samplescatterplot-6P75XEWB.js +1550 -0
  215. package/dist/mds.survivalplot-GCVE7XGO.js +483 -0
  216. package/dist/oncomatrix-BFWV2IC4.js +295 -0
  217. package/dist/oncomatrix.spec-J6IAY3O6.js +448 -0
  218. package/dist/plot.2dvaf-ESJAB2F3.js +377 -0
  219. package/dist/plot.app-T7CQMBRV.js +41 -0
  220. package/dist/plot.barplot-HAWPMPPU.js +102 -0
  221. package/dist/plot.boxplot-4QUORFXY.js +152 -0
  222. package/dist/plot.brainImaging-HG6I3GJW.js +51 -0
  223. package/dist/plot.disco-LPH7F6YW.js +102 -0
  224. package/dist/plot.dzi-DYAY4D4E.js +33 -0
  225. package/dist/plot.ssgq-CF5VIGYJ.js +139 -0
  226. package/dist/plot.vaf2cov-7HZCKNK6.js +259 -0
  227. package/dist/plot.wsi-MU6AXOWO.js +36 -0
  228. package/dist/polar2-G636L5TB.js +226 -0
  229. package/dist/profileForms-TIT4JUEJ.js +441 -0
  230. package/dist/profilePlot-QFGRAZQA.js +54 -0
  231. package/dist/proteinView-RZ56F45C.js +1320 -0
  232. package/dist/qualitative-YWP4YUPF.js +43 -0
  233. package/dist/radar2-TKSHL54E.js +321 -0
  234. package/dist/radarFacility2-FHRFLBLF.js +329 -0
  235. package/dist/regression-5XG5LXP7.js +56 -0
  236. package/dist/regression.inputs-QHXK7ZYY.js +48 -0
  237. package/dist/regression.inputs.term-YYO3CR2D.js +48 -0
  238. package/dist/regression.inputs.values.table-3I2FCON2.js +45 -0
  239. package/dist/regression.integration.spec-QVDGCKVT.js +784 -0
  240. package/dist/regression.results-B7LVT2WG.js +40 -0
  241. package/dist/regression.spec-ISYKKQOM.js +708 -0
  242. package/dist/report-TF6Z3Y44.js +222 -0
  243. package/dist/sampleScatter.spec-2VW55XIZ.js +202 -0
  244. package/dist/sampleView-DNNJRAMU.js +48 -0
  245. package/dist/samplelst-726II3LN.js +111 -0
  246. package/dist/samplematrix-TBPW4URH.js +2198 -0
  247. package/dist/sc-GBYH3W4S.js +86 -0
  248. package/dist/scatter-ATUM7AEW.js +849 -0
  249. package/dist/scatter-ATUM7AEW.js.map +7 -0
  250. package/dist/scatter.integration.spec-PDM454O3.js +1197 -0
  251. package/dist/scatter.integration.spec-PDM454O3.js.map +7 -0
  252. package/dist/selectGenomeWithTklst-RCAYDV6D.js +134 -0
  253. package/dist/singleCellCellType-IQYCKUT6.js +38 -0
  254. package/dist/singleCellCellType.unit.spec-ZEWA2IFI.js +160 -0
  255. package/dist/singleCellGeneExpression-STLTBXJQ.js +38 -0
  256. package/dist/singleCellGeneExpression.unit.spec-W6FPS5ZU.js +153 -0
  257. package/dist/singleCellPlot-7XH7NIL4.js +54 -0
  258. package/dist/singlecell-IDZB2MXW.js +86 -0
  259. package/dist/singlecell-JCXR7X5U.js +1572 -0
  260. package/dist/snp-QOKI26PO.js +38 -0
  261. package/dist/snp.unit.spec-DTPZAALW.js +176 -0
  262. package/dist/snplocus-BKUJYANW.js +208 -0
  263. package/dist/spliceevent.a53ss.diagram-4O54ORKZ.js +151 -0
  264. package/dist/spliceevent.exonskip.diagram-KOIOS6IV.js +277 -0
  265. package/dist/spliceevent.noeventdiagram-YGUGQMVE.js +460 -0
  266. package/dist/ssGSEA-UZMBIHVD.js +38 -0
  267. package/dist/ssGSEA.unit.spec-4YO4E3T7.js +88 -0
  268. package/dist/stattable-MDABSW3F.js +90 -0
  269. package/dist/summarizeCnvGeneexp-HV3DHIW4.js +163 -0
  270. package/dist/summarizeGeneexpSurvival-VGPRWYQ5.js +108 -0
  271. package/dist/summarizeMutationCnv-N3JEB4DJ.js +164 -0
  272. package/dist/summarizeMutationDiagnosis-6U4DBLG5.js +40 -0
  273. package/dist/summarizeMutationSurvival-S7NLAVEI.js +99 -0
  274. package/dist/summary-NPR56I4S.js +49 -0
  275. package/dist/summary.integration.spec-HWNJWLKT.js +414 -0
  276. package/dist/summaryInput-DO73NGDQ.js +235 -0
  277. package/dist/sunburst-MMXSGJSL.js +284 -0
  278. package/dist/survival-7AIKFGV5.js +58 -0
  279. package/dist/survival-UK332X6L.js +46 -0
  280. package/dist/survival.integration.spec-YMTEKEGB.js +821 -0
  281. package/dist/svgraph-MLLAYO4A.js +1387 -0
  282. package/dist/svmr-PYW4PLT3.js +3842 -0
  283. package/dist/table-Y3ED2444.js +200 -0
  284. package/dist/termCollection-3XVL75II.js +38 -0
  285. package/dist/termCollection-VAB53YGO.js +179 -0
  286. package/dist/termCollection.unit.spec-DYPWNVEZ.js +208 -0
  287. package/dist/termInfo-6MJDJSDW.js +9 -0
  288. package/dist/tk-GUGJYKJ2.js +46 -0
  289. package/dist/tp.ui-WGETBYJQ.js +1459 -0
  290. package/dist/tvs.dt-JWF4I3KY.js +39 -0
  291. package/dist/tvs.dtcnv.categorical-72Y5QMPL.js +40 -0
  292. package/dist/tvs.dtcnv.continuous-73LHWTU5.js +72 -0
  293. package/dist/tvs.dtfusion-LP6HUMZU.js +40 -0
  294. package/dist/tvs.dtsnvindel-23N2CFZJ.js +40 -0
  295. package/dist/tvs.dtsv-DILQVKYM.js +40 -0
  296. package/dist/tvs.samplelst-GV4VSCRF.js +104 -0
  297. package/dist/tvs.termCollection-KBDNXK7X.js +159 -0
  298. package/dist/violin-TYUP7FB5.js +46 -0
  299. package/dist/violin.integration.spec-ULRFK2A6.js +1425 -0
  300. package/dist/violin.interactivity-2QZVQWQJ.js +38 -0
  301. package/dist/violin.renderer-HCDSN62Z.js +40 -0
  302. package/dist/vocabulary-I4CMPN2Z.js +41 -0
  303. package/package.json +2 -2
  304. package/dist/2dmaf-3D2KTSAN.js +0 -1373
  305. package/dist/AIProjectAdmin-IGPLMREH.js +0 -829
  306. package/dist/AppHeader-WT5AXGLC.js +0 -835
  307. package/dist/BoxPlot-AUFITBDB.js +0 -1217
  308. package/dist/BoxPlot-AUFITBDB.js.map +0 -7
  309. package/dist/CorrelationVolcano-4AZ6Y42O.js +0 -619
  310. package/dist/DE-MWYRMM47.js +0 -95
  311. package/dist/DEinput-F3JFK4HF.js +0 -301
  312. package/dist/DifferentialAnalysis-ZAVYUYOL.js +0 -245
  313. package/dist/Disco-Q3O3A2CU.js +0 -3237
  314. package/dist/Disco.UI-QIKPQKTY.js +0 -245
  315. package/dist/DmrPlot-D7TPJXWH.js +0 -642
  316. package/dist/DziViewer-ZHAPJ457.js +0 -16332
  317. package/dist/GB-K57ZGFLA.js +0 -1130
  318. package/dist/GeneExpInput-7UYFJHSX.js +0 -366
  319. package/dist/HicApp-HPIHJDLQ.js +0 -2250
  320. package/dist/NumBinaryEditor-ENHACYTK.js +0 -270
  321. package/dist/NumBinaryEditor-ENHACYTK.js.map +0 -7
  322. package/dist/NumBinaryEditor.unit.spec-TNIRFCTU.js +0 -286
  323. package/dist/NumContEditor-Y4CDFJM2.js +0 -107
  324. package/dist/NumContEditor-Y4CDFJM2.js.map +0 -7
  325. package/dist/NumContEditor.unit.spec-KES6AJHN.js +0 -169
  326. package/dist/NumCustomBinEditor-TRXZ52MH.js +0 -38
  327. package/dist/NumCustomBinEditor.unit.spec-2V5X5YK4.js +0 -284
  328. package/dist/NumDiscreteEditor-RXXL3AQ4.js +0 -179
  329. package/dist/NumDiscreteEditor.unit.spec-EAFEI66P.js +0 -202
  330. package/dist/NumRegularBinEditor-KHIFP2L7.js +0 -38
  331. package/dist/NumRegularBinEditor.unit.spec-ADRNCEAV.js +0 -227
  332. package/dist/NumSplineEditor-33SUCGNJ.js +0 -197
  333. package/dist/NumSplineEditor-33SUCGNJ.js.map +0 -7
  334. package/dist/NumSplineEditor.unit.spec-7KTMNABP.js +0 -199
  335. package/dist/NumericDensity-PWWJBZUA.js +0 -38
  336. package/dist/NumericDensity.unit.spec-V5C43FCP.js +0 -221
  337. package/dist/NumericHandler-A6QSQAPT.js +0 -39
  338. package/dist/NumericHandler.unit.spec-SRFEDFCC.js +0 -219
  339. package/dist/ProteomeInput-BOI2634T.js +0 -396
  340. package/dist/RunChart2-DJNWYZ5C.js +0 -758
  341. package/dist/SC-ADKHO4MP.js +0 -936
  342. package/dist/Volcano-4GJU2666.js +0 -1379
  343. package/dist/WSIViewer-JQKGSN3D.js +0 -48475
  344. package/dist/WsiSamplesPlot-PSVYIYI7.js +0 -165
  345. package/dist/adSandbox-AFYF5ULQ.js +0 -38
  346. package/dist/app-5KDQSFDE.js +0 -49
  347. package/dist/app-PZ5KGBCR.js +0 -37
  348. package/dist/bam-AYX4HVPY.js +0 -860
  349. package/dist/barchart-2BMDZGPJ.js +0 -47
  350. package/dist/barchart.data-I33D7SQC.js +0 -22
  351. package/dist/barchart.events-Z5AL6NU6.js +0 -47
  352. package/dist/barchart.integration.spec-JG7OWI6G.js +0 -1974
  353. package/dist/barchart.integration.spec-JG7OWI6G.js.map +0 -7
  354. package/dist/barchart2-KFMUPMVS.js +0 -311
  355. package/dist/block-7UW7QCRX.js +0 -6202
  356. package/dist/block.init-CZWCEEID.js +0 -38
  357. package/dist/block.mds.expressionrank-2JJYKI2C.js +0 -359
  358. package/dist/block.mds.geneboxplot-NU45ZP4J.js +0 -828
  359. package/dist/block.mds.junction-UVSKHUFR.js +0 -1545
  360. package/dist/block.mds.svcnv-6JXI63CC.js +0 -6801
  361. package/dist/block.svg-KAMDKUQX.js +0 -164
  362. package/dist/block.tk.aicheck-WEKHCRXC.js +0 -283
  363. package/dist/block.tk.ase-MGDGSUQN.js +0 -365
  364. package/dist/block.tk.bam-MB2DAFD7.js +0 -1906
  365. package/dist/block.tk.bedgraphdot-VUSURZ6N.js +0 -384
  366. package/dist/block.tk.bigwig.ui-WQTN44VK.js +0 -212
  367. package/dist/block.tk.hicstraw-T2JXNKWD.js +0 -823
  368. package/dist/block.tk.junction-2JXABLIG.js +0 -2364
  369. package/dist/block.tk.junction.textmatrixui-EEB3JUNU.js +0 -199
  370. package/dist/block.tk.ld-JZBL73US.js +0 -99
  371. package/dist/block.tk.menu-VQEPTCE6.js +0 -1029
  372. package/dist/block.tk.pgv-PYOPQDYL.js +0 -944
  373. package/dist/brainImaging-SYJZZN3K.js +0 -423
  374. package/dist/chunk-26XX7RVV.js +0 -129
  375. package/dist/chunk-2QWELHBX.js +0 -54
  376. package/dist/chunk-3L32ZXRS.js +0 -117
  377. package/dist/chunk-3MGF2FZ2.js +0 -1179
  378. package/dist/chunk-3MGF2FZ2.js.map +0 -7
  379. package/dist/chunk-3S7ZWGND.js +0 -95
  380. package/dist/chunk-4VCBJC3B.js +0 -203
  381. package/dist/chunk-53WLN75I.js +0 -50
  382. package/dist/chunk-5GOZWJ7S.js +0 -263
  383. package/dist/chunk-5V43Y2RC.js +0 -774
  384. package/dist/chunk-5V43Y2RC.js.map +0 -7
  385. package/dist/chunk-5WKIMNGG.js +0 -148
  386. package/dist/chunk-5WM3CC5O.js +0 -117
  387. package/dist/chunk-5X6J6UAT.js +0 -473
  388. package/dist/chunk-6FF5VLGO.js +0 -20745
  389. package/dist/chunk-6FF5VLGO.js.map +0 -7
  390. package/dist/chunk-6FOKZFIT.js +0 -613
  391. package/dist/chunk-6GI6MDYV.js +0 -1210
  392. package/dist/chunk-6XOZ4DWL.js +0 -222
  393. package/dist/chunk-7BOPMRFX.js +0 -482
  394. package/dist/chunk-7C76SLOH.js +0 -1275
  395. package/dist/chunk-B4VRYXOQ.js +0 -288
  396. package/dist/chunk-B4VRYXOQ.js.map +0 -7
  397. package/dist/chunk-BYOIIMNZ.js +0 -2327
  398. package/dist/chunk-CGRYUKXD.js +0 -443
  399. package/dist/chunk-CK47VCG5.js +0 -5010
  400. package/dist/chunk-E4IHE23N.js +0 -398
  401. package/dist/chunk-E4IHE23N.js.map +0 -7
  402. package/dist/chunk-E7UJR2YK.js +0 -158
  403. package/dist/chunk-ENZZUMVY.js +0 -215
  404. package/dist/chunk-ENZZUMVY.js.map +0 -7
  405. package/dist/chunk-FRGACC2C.js +0 -182
  406. package/dist/chunk-GGRR4NXW.js +0 -1102
  407. package/dist/chunk-H5BIGL3W.js +0 -1815
  408. package/dist/chunk-HWVEN2MK.js +0 -498
  409. package/dist/chunk-I2LTCBTM.js +0 -2824
  410. package/dist/chunk-IYOGX7A4.js +0 -158
  411. package/dist/chunk-J5SV3MFB.js +0 -217
  412. package/dist/chunk-J7X5JRRI.js +0 -276
  413. package/dist/chunk-JDPU6NES.js +0 -100
  414. package/dist/chunk-JPH5EVVW.js +0 -514
  415. package/dist/chunk-JTMU3F2Q.js +0 -184
  416. package/dist/chunk-KQYXXICJ.js +0 -1332
  417. package/dist/chunk-L72Y4QA2.js +0 -102
  418. package/dist/chunk-LK3BBGUJ.js +0 -2681
  419. package/dist/chunk-LYPDXJPX.js +0 -6364
  420. package/dist/chunk-MW3PIRGF.js +0 -229
  421. package/dist/chunk-MW3PIRGF.js.map +0 -7
  422. package/dist/chunk-NNMOXQTU.js +0 -102
  423. package/dist/chunk-NV6JVKDN.js +0 -291
  424. package/dist/chunk-OMBRJBQV.js +0 -1943
  425. package/dist/chunk-PEBOVJSD.js +0 -142
  426. package/dist/chunk-PJXF4IRZ.js +0 -95
  427. package/dist/chunk-PKCYPYWW.js +0 -4272
  428. package/dist/chunk-PKCYPYWW.js.map +0 -7
  429. package/dist/chunk-PKDJVK2F.js +0 -381
  430. package/dist/chunk-QIY7HLC5.js +0 -815
  431. package/dist/chunk-QMI2X23H.js +0 -339
  432. package/dist/chunk-QOE7MB4X.js +0 -454
  433. package/dist/chunk-QOE7MB4X.js.map +0 -7
  434. package/dist/chunk-QSMU6K5D.js +0 -34
  435. package/dist/chunk-RBIBHQTL.js +0 -54
  436. package/dist/chunk-RG5ABFA2.js +0 -368
  437. package/dist/chunk-RRJGFE2S.js +0 -407
  438. package/dist/chunk-RRJGFE2S.js.map +0 -7
  439. package/dist/chunk-RRWP2LM4.js +0 -143
  440. package/dist/chunk-RTTPFI7N.js +0 -14
  441. package/dist/chunk-T2CG7BVN.js +0 -205
  442. package/dist/chunk-U3DKYKV7.js +0 -293
  443. package/dist/chunk-UQHM3F6B.js +0 -37
  444. package/dist/chunk-W3MCIBAP.js +0 -272
  445. package/dist/chunk-WH236OZ6.js +0 -736
  446. package/dist/chunk-XIQNS2HN.js +0 -824
  447. package/dist/chunk-YKPLUIWP.js +0 -2786
  448. package/dist/chunk-YRQ5V7DQ.js +0 -302
  449. package/dist/chunk-ZTOABVVA.js +0 -55
  450. package/dist/chunk-ZUTPAYSS.js +0 -477
  451. package/dist/condition-SZZS77TK.js +0 -332
  452. package/dist/controls-ZBDTHWOT.js +0 -41
  453. package/dist/controls.btns-3QQ5FOKQ.js +0 -9
  454. package/dist/controls.config-MTBN2XPW.js +0 -39
  455. package/dist/correlation-DHEH5FT4.js +0 -99
  456. package/dist/correlation-DHEH5FT4.js.map +0 -7
  457. package/dist/cuminc-TM3SMOJ2.js +0 -1149
  458. package/dist/cuminc.integration.spec-NEBXRMKB.js +0 -678
  459. package/dist/customdata.inputui-5ZEKFWYV.js +0 -289
  460. package/dist/dataDownload-XZ4AC6QY.js +0 -330
  461. package/dist/dataDownload.integration.spec-O4YQKAOJ.js +0 -193
  462. package/dist/databrowser.ui-V4HQMZ4X.js +0 -433
  463. package/dist/dictionary-RAHC3OA7.js +0 -111
  464. package/dist/dnaMethylation-ZUHHG7Q2.js +0 -38
  465. package/dist/dnaMethylation.integration.spec-JZ6ZSF5L.js +0 -203
  466. package/dist/dofetch-77N4NDDM.js +0 -51
  467. package/dist/e2pca-K7IFKNTZ.js +0 -350
  468. package/dist/ep-4OIFIMZH.js +0 -1256
  469. package/dist/expclust.gdc.spec-OJD7ENKA.js +0 -307
  470. package/dist/facet-SZAF3QW6.js +0 -521
  471. package/dist/forms2-TBRF2RI5.js +0 -534
  472. package/dist/gb-I5J74SHP.js +0 -88
  473. package/dist/geneExpClustering-OSS4OCN6.js +0 -249
  474. package/dist/geneExpression-IHVMJGOG.js +0 -38
  475. package/dist/geneExpression-WKYVSE45.js +0 -313
  476. package/dist/geneExpression.unit.spec-QP6CLYHP.js +0 -102
  477. package/dist/geneORA-65PHOTHN.js +0 -278
  478. package/dist/geneRanking-XCU3NX4J.js +0 -551
  479. package/dist/geneVariant-CZM3XP7X.js +0 -39
  480. package/dist/geneVariant-IMDFPV2L.js +0 -41
  481. package/dist/geneVariant.integration.spec-FOONVTYD.js +0 -198
  482. package/dist/genefusion.ui-UZM2YGIR.js +0 -309
  483. package/dist/geneset-IGG77MNZ.js +0 -208
  484. package/dist/genomeBrowser.spec-CN2XNZQF.js +0 -281
  485. package/dist/grin2-367QGSOU.js +0 -1560
  486. package/dist/grin2-S46IRWIP.js +0 -821
  487. package/dist/gsea-RJ767G5U.js +0 -47
  488. package/dist/hierCluster-3D425AUU.js +0 -63
  489. package/dist/hierCluster-GIIB6OEC.js +0 -59
  490. package/dist/hierCluster.config-ENEOWYOS.js +0 -40
  491. package/dist/hierCluster.integration.spec-IOA3PVAN.js +0 -395
  492. package/dist/hierCluster.interactivity-VITUF5RM.js +0 -54
  493. package/dist/imagePlot-7VH7VFWD.js +0 -163
  494. package/dist/importPlot-OKOYX2NU.js +0 -8
  495. package/dist/isoformExpression-4SJQZFLP.js +0 -40
  496. package/dist/isoformExpression.unit.spec-3MQQZEPZ.js +0 -208
  497. package/dist/launch.adhoc-MQKVVUV7.js +0 -42
  498. package/dist/leftlabel.sample-JPE6CXZU.js +0 -260
  499. package/dist/lollipop-DMM3QYKI.js +0 -171
  500. package/dist/maf-TQKKVLNR.js +0 -452
  501. package/dist/maftimeline-BXBAXKAI.js +0 -593
  502. package/dist/matrix-AWVEEUKZ.js +0 -58
  503. package/dist/matrix-N3YUJXLP.js +0 -63
  504. package/dist/matrix.config-QPNAC2EY.js +0 -41
  505. package/dist/matrix.data-FIQGPFTI.js +0 -25
  506. package/dist/matrix.dom-2SU4EYLI.js +0 -11
  507. package/dist/matrix.integration.spec-OA3FJ2PN.js +0 -3072
  508. package/dist/matrix.interactivity-LKLF5ZQN.js +0 -42
  509. package/dist/matrix.layout-ORYBQUKT.js +0 -44
  510. package/dist/matrix.renderers-TLZSYHZR.js +0 -38
  511. package/dist/matrix.sort.unit.spec-DRFCEZGX.js +0 -472
  512. package/dist/matrix.sorterUi-FFLYKBGC.js +0 -18
  513. package/dist/matrix.sorterUi.unit.spec-QQH3ITTW.js +0 -342
  514. package/dist/mavb-ZK5UKXEO.js +0 -732
  515. package/dist/mds.fimo-MHPHQB4X.js +0 -518
  516. package/dist/mds.samplescatterplot-LRL5SXJ5.js +0 -1550
  517. package/dist/mds.survivalplot-R5N6OHZ2.js +0 -483
  518. package/dist/oncomatrix-FA3ELKNE.js +0 -295
  519. package/dist/oncomatrix.spec-3K7ONINO.js +0 -448
  520. package/dist/plot.2dvaf-P6CRZWB7.js +0 -377
  521. package/dist/plot.app-XOQVTISH.js +0 -41
  522. package/dist/plot.barplot-YDT4K3YZ.js +0 -102
  523. package/dist/plot.boxplot-GHEVLVJU.js +0 -152
  524. package/dist/plot.brainImaging-NENXKZEP.js +0 -51
  525. package/dist/plot.disco-3B7LZ2XE.js +0 -102
  526. package/dist/plot.dzi-F7NW65WQ.js +0 -33
  527. package/dist/plot.ssgq-BAUIBB3D.js +0 -139
  528. package/dist/plot.vaf2cov-XBLM7B4M.js +0 -259
  529. package/dist/plot.wsi-YWILGUDN.js +0 -36
  530. package/dist/polar2-WABGZYEV.js +0 -226
  531. package/dist/profileForms-LYWVFIVQ.js +0 -441
  532. package/dist/profilePlot-TSXR4EGL.js +0 -54
  533. package/dist/proteinView-ATZI5LXA.js +0 -1320
  534. package/dist/qualitative-VNY32ONL.js +0 -43
  535. package/dist/radar2-YVHLSCAM.js +0 -321
  536. package/dist/radarFacility2-K4OA7FYK.js +0 -329
  537. package/dist/regression-KKC7Y57Y.js +0 -56
  538. package/dist/regression.inputs-UR2VLW5P.js +0 -48
  539. package/dist/regression.inputs.term-QECG7D3W.js +0 -48
  540. package/dist/regression.inputs.values.table-UANMD46V.js +0 -45
  541. package/dist/regression.integration.spec-UCUHBCZY.js +0 -784
  542. package/dist/regression.results-TNVEGETD.js +0 -40
  543. package/dist/regression.spec-3NSFMTI7.js +0 -708
  544. package/dist/report-2FNKLTYA.js +0 -222
  545. package/dist/sampleScatter.spec-5SC2AJHW.js +0 -202
  546. package/dist/sampleView-SU7VZCJH.js +0 -48
  547. package/dist/samplelst-JGSTML6J.js +0 -111
  548. package/dist/samplematrix-FO4GGDRT.js +0 -2198
  549. package/dist/sc-LDUHVPII.js +0 -86
  550. package/dist/scatter-QAEMBYHW.js +0 -854
  551. package/dist/scatter-QAEMBYHW.js.map +0 -7
  552. package/dist/scatter.integration.spec-FTD4PDMI.js +0 -1196
  553. package/dist/scatter.integration.spec-FTD4PDMI.js.map +0 -7
  554. package/dist/selectGenomeWithTklst-G3XUX3KK.js +0 -134
  555. package/dist/singleCellCellType-QKA4QCLC.js +0 -38
  556. package/dist/singleCellCellType.unit.spec-KIPKWJLB.js +0 -160
  557. package/dist/singleCellGeneExpression-O2QVJOG4.js +0 -38
  558. package/dist/singleCellGeneExpression.unit.spec-6ATWTQTO.js +0 -153
  559. package/dist/singleCellPlot-HZOSW3FB.js +0 -54
  560. package/dist/singlecell-3OX4TSQ4.js +0 -86
  561. package/dist/singlecell-EUUIY2JJ.js +0 -1572
  562. package/dist/snp-UVKGSROJ.js +0 -38
  563. package/dist/snp.unit.spec-YHIZ5ZJW.js +0 -176
  564. package/dist/snplocus-FANKGKI4.js +0 -208
  565. package/dist/spliceevent.a53ss.diagram-QQXYYX7J.js +0 -151
  566. package/dist/spliceevent.exonskip.diagram-R265JOH6.js +0 -277
  567. package/dist/spliceevent.noeventdiagram-UMAQOCVY.js +0 -460
  568. package/dist/ssGSEA-F4BZ3NYO.js +0 -38
  569. package/dist/ssGSEA.unit.spec-OQQGQYPJ.js +0 -88
  570. package/dist/stattable-QDIUQCMG.js +0 -90
  571. package/dist/summarizeCnvGeneexp-LX22NXFF.js +0 -163
  572. package/dist/summarizeGeneexpSurvival-N7LXAK2G.js +0 -108
  573. package/dist/summarizeMutationCnv-QC3EARCV.js +0 -164
  574. package/dist/summarizeMutationDiagnosis-H6KJWLLC.js +0 -40
  575. package/dist/summarizeMutationSurvival-JAFSWJVZ.js +0 -99
  576. package/dist/summary-D5MSBQIS.js +0 -49
  577. package/dist/summary.integration.spec-KJPNP7X2.js +0 -414
  578. package/dist/summaryInput-47JBGPNE.js +0 -235
  579. package/dist/sunburst-PUZYZZGK.js +0 -284
  580. package/dist/survival-LGJBYXFR.js +0 -58
  581. package/dist/survival-SMOKVDGO.js +0 -46
  582. package/dist/survival.integration.spec-ORC3LCVK.js +0 -821
  583. package/dist/svgraph-GWDKHIDQ.js +0 -1387
  584. package/dist/svmr-RRA6OUVP.js +0 -3842
  585. package/dist/table-AC2DX55F.js +0 -200
  586. package/dist/termCollection-4OVZAKYZ.js +0 -179
  587. package/dist/termCollection-MPFFNNMF.js +0 -38
  588. package/dist/termCollection.unit.spec-S4QSTY4S.js +0 -208
  589. package/dist/termInfo-2Z4V2QLE.js +0 -9
  590. package/dist/tk-PFWI2HAC.js +0 -46
  591. package/dist/tp.ui-TKAJ7DRO.js +0 -1459
  592. package/dist/tvs.dt-6NDINORK.js +0 -39
  593. package/dist/tvs.dtcnv.categorical-2RHUN643.js +0 -40
  594. package/dist/tvs.dtcnv.continuous-GIPVPDBD.js +0 -72
  595. package/dist/tvs.dtfusion-ZLXTZ7SA.js +0 -40
  596. package/dist/tvs.dtsnvindel-CRS5CL42.js +0 -40
  597. package/dist/tvs.dtsv-SG45TZWQ.js +0 -40
  598. package/dist/tvs.samplelst-NQ5BKEGM.js +0 -104
  599. package/dist/tvs.termCollection-HOVUO7ZH.js +0 -159
  600. package/dist/violin-FGGULOXU.js +0 -46
  601. package/dist/violin.integration.spec-T5Y6URJK.js +0 -1425
  602. package/dist/violin.interactivity-6RGFTQDW.js +0 -38
  603. package/dist/violin.renderer-63UTDZVK.js +0 -40
  604. package/dist/vocabulary-YQXR4H5J.js +0 -41
  605. /package/dist/{2dmaf-3D2KTSAN.js.map → 2dmaf-V4WJ2LEK.js.map} +0 -0
  606. /package/dist/{AIProjectAdmin-IGPLMREH.js.map → AIProjectAdmin-JMN5O6YU.js.map} +0 -0
  607. /package/dist/{AppHeader-WT5AXGLC.js.map → AppHeader-Y4SEKCEF.js.map} +0 -0
  608. /package/dist/{CorrelationVolcano-4AZ6Y42O.js.map → CorrelationVolcano-R5IWD6WA.js.map} +0 -0
  609. /package/dist/{DE-MWYRMM47.js.map → DE-ZV6O7B6Y.js.map} +0 -0
  610. /package/dist/{DEinput-F3JFK4HF.js.map → DEinput-FTOALZKN.js.map} +0 -0
  611. /package/dist/{DifferentialAnalysis-ZAVYUYOL.js.map → DifferentialAnalysis-NLCA766A.js.map} +0 -0
  612. /package/dist/{Disco-Q3O3A2CU.js.map → Disco-Y5Z4A7GN.js.map} +0 -0
  613. /package/dist/{Disco.UI-QIKPQKTY.js.map → Disco.UI-GSWZYIUT.js.map} +0 -0
  614. /package/dist/{DmrPlot-D7TPJXWH.js.map → DmrPlot-FEFUCIGT.js.map} +0 -0
  615. /package/dist/{DziViewer-ZHAPJ457.js.map → DziViewer-6737GC22.js.map} +0 -0
  616. /package/dist/{GB-K57ZGFLA.js.map → GB-AOXF2JJB.js.map} +0 -0
  617. /package/dist/{GeneExpInput-7UYFJHSX.js.map → GeneExpInput-CXYRKQU7.js.map} +0 -0
  618. /package/dist/{HicApp-HPIHJDLQ.js.map → HicApp-GLNNZ4H5.js.map} +0 -0
  619. /package/dist/{NumBinaryEditor.unit.spec-TNIRFCTU.js.map → NumBinaryEditor.unit.spec-3VTJLILH.js.map} +0 -0
  620. /package/dist/{NumContEditor.unit.spec-KES6AJHN.js.map → NumContEditor.unit.spec-WIMYCOVO.js.map} +0 -0
  621. /package/dist/{NumCustomBinEditor-TRXZ52MH.js.map → NumCustomBinEditor-XIOAYWOD.js.map} +0 -0
  622. /package/dist/{NumCustomBinEditor.unit.spec-2V5X5YK4.js.map → NumCustomBinEditor.unit.spec-N5OV6MKR.js.map} +0 -0
  623. /package/dist/{NumDiscreteEditor-RXXL3AQ4.js.map → NumDiscreteEditor-AT6FKYGI.js.map} +0 -0
  624. /package/dist/{NumDiscreteEditor.unit.spec-EAFEI66P.js.map → NumDiscreteEditor.unit.spec-BDR5GZ46.js.map} +0 -0
  625. /package/dist/{NumRegularBinEditor-KHIFP2L7.js.map → NumRegularBinEditor-Z4NBS4VZ.js.map} +0 -0
  626. /package/dist/{NumRegularBinEditor.unit.spec-ADRNCEAV.js.map → NumRegularBinEditor.unit.spec-BRWYNQ55.js.map} +0 -0
  627. /package/dist/{NumSplineEditor.unit.spec-7KTMNABP.js.map → NumSplineEditor.unit.spec-5RDBCZ4N.js.map} +0 -0
  628. /package/dist/{NumericDensity-PWWJBZUA.js.map → NumericDensity-L7HIVV7D.js.map} +0 -0
  629. /package/dist/{NumericDensity.unit.spec-V5C43FCP.js.map → NumericDensity.unit.spec-PL3XDJCV.js.map} +0 -0
  630. /package/dist/{NumericHandler-A6QSQAPT.js.map → NumericHandler-KJYZOCCG.js.map} +0 -0
  631. /package/dist/{NumericHandler.unit.spec-SRFEDFCC.js.map → NumericHandler.unit.spec-VC7NPLJW.js.map} +0 -0
  632. /package/dist/{ProteomeInput-BOI2634T.js.map → ProteomeInput-A3GRPIAH.js.map} +0 -0
  633. /package/dist/{RunChart2-DJNWYZ5C.js.map → RunChart2-MSNU3ZNT.js.map} +0 -0
  634. /package/dist/{SC-ADKHO4MP.js.map → SC-FNKG2FK5.js.map} +0 -0
  635. /package/dist/{Volcano-4GJU2666.js.map → Volcano-IRJMPHXJ.js.map} +0 -0
  636. /package/dist/{WSIViewer-JQKGSN3D.js.map → WSIViewer-KITT7I67.js.map} +0 -0
  637. /package/dist/{WsiSamplesPlot-PSVYIYI7.js.map → WsiSamplesPlot-G3YZ6SIE.js.map} +0 -0
  638. /package/dist/{adSandbox-AFYF5ULQ.js.map → adSandbox-GIQTJ4VA.js.map} +0 -0
  639. /package/dist/{app-5KDQSFDE.js.map → app-MGNEMS2K.js.map} +0 -0
  640. /package/dist/{app-PZ5KGBCR.js.map → app-UQTHPQFD.js.map} +0 -0
  641. /package/dist/{bam-AYX4HVPY.js.map → bam-5PROQBRT.js.map} +0 -0
  642. /package/dist/{barchart-2BMDZGPJ.js.map → barchart-BQYJ73Z4.js.map} +0 -0
  643. /package/dist/{barchart.data-I33D7SQC.js.map → barchart.data-VFULOIHY.js.map} +0 -0
  644. /package/dist/{barchart.events-Z5AL6NU6.js.map → barchart.events-W2CIDD4B.js.map} +0 -0
  645. /package/dist/{barchart2-KFMUPMVS.js.map → barchart2-V6W4UAFH.js.map} +0 -0
  646. /package/dist/{block-7UW7QCRX.js.map → block-5V2FCT7Q.js.map} +0 -0
  647. /package/dist/{block.init-CZWCEEID.js.map → block.init-43IUNDNB.js.map} +0 -0
  648. /package/dist/{block.mds.expressionrank-2JJYKI2C.js.map → block.mds.expressionrank-LI6MZPBE.js.map} +0 -0
  649. /package/dist/{block.mds.geneboxplot-NU45ZP4J.js.map → block.mds.geneboxplot-673AIJMJ.js.map} +0 -0
  650. /package/dist/{block.mds.junction-UVSKHUFR.js.map → block.mds.junction-UWNVNV3X.js.map} +0 -0
  651. /package/dist/{block.mds.svcnv-6JXI63CC.js.map → block.mds.svcnv-Z5VFCUUE.js.map} +0 -0
  652. /package/dist/{block.svg-KAMDKUQX.js.map → block.svg-MGK4GWLL.js.map} +0 -0
  653. /package/dist/{block.tk.aicheck-WEKHCRXC.js.map → block.tk.aicheck-OFNDGG7Q.js.map} +0 -0
  654. /package/dist/{block.tk.ase-MGDGSUQN.js.map → block.tk.ase-IDZQY7MW.js.map} +0 -0
  655. /package/dist/{block.tk.bam-MB2DAFD7.js.map → block.tk.bam-K7A2Q5NI.js.map} +0 -0
  656. /package/dist/{block.tk.bedgraphdot-VUSURZ6N.js.map → block.tk.bedgraphdot-PPTKCCPK.js.map} +0 -0
  657. /package/dist/{block.tk.bigwig.ui-WQTN44VK.js.map → block.tk.bigwig.ui-PI6EAU43.js.map} +0 -0
  658. /package/dist/{block.tk.hicstraw-T2JXNKWD.js.map → block.tk.hicstraw-EZ2GS2K4.js.map} +0 -0
  659. /package/dist/{block.tk.junction-2JXABLIG.js.map → block.tk.junction-4WSLQGSQ.js.map} +0 -0
  660. /package/dist/{block.tk.junction.textmatrixui-EEB3JUNU.js.map → block.tk.junction.textmatrixui-7EJUSVMB.js.map} +0 -0
  661. /package/dist/{block.tk.ld-JZBL73US.js.map → block.tk.ld-KLVO7M37.js.map} +0 -0
  662. /package/dist/{block.tk.menu-VQEPTCE6.js.map → block.tk.menu-KZSL7BAR.js.map} +0 -0
  663. /package/dist/{block.tk.pgv-PYOPQDYL.js.map → block.tk.pgv-NYWGB4VH.js.map} +0 -0
  664. /package/dist/{brainImaging-SYJZZN3K.js.map → brainImaging-MTIIMJHW.js.map} +0 -0
  665. /package/dist/{chunk-CGRYUKXD.js.map → chunk-2NQLAH3L.js.map} +0 -0
  666. /package/dist/{chunk-OMBRJBQV.js.map → chunk-2Q6PBSPS.js.map} +0 -0
  667. /package/dist/{chunk-6GI6MDYV.js.map → chunk-3D5GZIGG.js.map} +0 -0
  668. /package/dist/{chunk-5GOZWJ7S.js.map → chunk-3TPAIXNL.js.map} +0 -0
  669. /package/dist/{chunk-PJXF4IRZ.js.map → chunk-42EBECOD.js.map} +0 -0
  670. /package/dist/{chunk-YKPLUIWP.js.map → chunk-4B42QV34.js.map} +0 -0
  671. /package/dist/{chunk-JTMU3F2Q.js.map → chunk-4FKWINMK.js.map} +0 -0
  672. /package/dist/{chunk-RRWP2LM4.js.map → chunk-4KY4XKJV.js.map} +0 -0
  673. /package/dist/{chunk-IYOGX7A4.js.map → chunk-52RORO74.js.map} +0 -0
  674. /package/dist/{chunk-JDPU6NES.js.map → chunk-5SXCIKYV.js.map} +0 -0
  675. /package/dist/{chunk-7BOPMRFX.js.map → chunk-647P2I4Q.js.map} +0 -0
  676. /package/dist/{chunk-BYOIIMNZ.js.map → chunk-67HSIHPP.js.map} +0 -0
  677. /package/dist/{chunk-GGRR4NXW.js.map → chunk-6GZJCSA6.js.map} +0 -0
  678. /package/dist/{chunk-H5BIGL3W.js.map → chunk-6VKTEMFV.js.map} +0 -0
  679. /package/dist/{chunk-NNMOXQTU.js.map → chunk-7JEKUSEL.js.map} +0 -0
  680. /package/dist/{chunk-ZUTPAYSS.js.map → chunk-BMO6KSVC.js.map} +0 -0
  681. /package/dist/{chunk-53WLN75I.js.map → chunk-CKDC326M.js.map} +0 -0
  682. /package/dist/{chunk-LYPDXJPX.js.map → chunk-CYHUNQMS.js.map} +0 -0
  683. /package/dist/{chunk-HWVEN2MK.js.map → chunk-DHPLHIVP.js.map} +0 -0
  684. /package/dist/{chunk-PKDJVK2F.js.map → chunk-DWCVGCBX.js.map} +0 -0
  685. /package/dist/{chunk-QMI2X23H.js.map → chunk-EIBNV236.js.map} +0 -0
  686. /package/dist/{chunk-J5SV3MFB.js.map → chunk-EZ3WMXYT.js.map} +0 -0
  687. /package/dist/{chunk-WH236OZ6.js.map → chunk-F5QIZOPL.js.map} +0 -0
  688. /package/dist/{chunk-UQHM3F6B.js.map → chunk-F6N6JBZR.js.map} +0 -0
  689. /package/dist/{chunk-RBIBHQTL.js.map → chunk-FXMHSVBS.js.map} +0 -0
  690. /package/dist/{chunk-KQYXXICJ.js.map → chunk-GMT2GNQY.js.map} +0 -0
  691. /package/dist/{chunk-5X6J6UAT.js.map → chunk-IIT367QZ.js.map} +0 -0
  692. /package/dist/{chunk-U3DKYKV7.js.map → chunk-IL5QT2FI.js.map} +0 -0
  693. /package/dist/{chunk-LK3BBGUJ.js.map → chunk-J6GLTYGJ.js.map} +0 -0
  694. /package/dist/{chunk-XIQNS2HN.js.map → chunk-JJOLDYSQ.js.map} +0 -0
  695. /package/dist/{chunk-QSMU6K5D.js.map → chunk-KSCJWPTJ.js.map} +0 -0
  696. /package/dist/{chunk-W3MCIBAP.js.map → chunk-LT5XPBIX.js.map} +0 -0
  697. /package/dist/{chunk-FRGACC2C.js.map → chunk-MEGBYD4U.js.map} +0 -0
  698. /package/dist/{chunk-7C76SLOH.js.map → chunk-MYWV64P5.js.map} +0 -0
  699. /package/dist/{chunk-6FOKZFIT.js.map → chunk-NKTBR5SK.js.map} +0 -0
  700. /package/dist/{chunk-5WKIMNGG.js.map → chunk-NVX26LFC.js.map} +0 -0
  701. /package/dist/{chunk-NV6JVKDN.js.map → chunk-O7NFSCEW.js.map} +0 -0
  702. /package/dist/{chunk-RG5ABFA2.js.map → chunk-P4QGOUDH.js.map} +0 -0
  703. /package/dist/{chunk-26XX7RVV.js.map → chunk-PGBKZ76Y.js.map} +0 -0
  704. /package/dist/{chunk-T2CG7BVN.js.map → chunk-PQNVPSQR.js.map} +0 -0
  705. /package/dist/{chunk-2QWELHBX.js.map → chunk-PQZ3A27I.js.map} +0 -0
  706. /package/dist/{chunk-CK47VCG5.js.map → chunk-QNMB7LYW.js.map} +0 -0
  707. /package/dist/{chunk-3L32ZXRS.js.map → chunk-RZGEKL77.js.map} +0 -0
  708. /package/dist/{chunk-E7UJR2YK.js.map → chunk-RZY34QRF.js.map} +0 -0
  709. /package/dist/{chunk-RTTPFI7N.js.map → chunk-SDACELDR.js.map} +0 -0
  710. /package/dist/{chunk-6XOZ4DWL.js.map → chunk-SQWEREGE.js.map} +0 -0
  711. /package/dist/{chunk-PEBOVJSD.js.map → chunk-UCLROZRF.js.map} +0 -0
  712. /package/dist/{chunk-J7X5JRRI.js.map → chunk-VMLSRKIB.js.map} +0 -0
  713. /package/dist/{chunk-5WM3CC5O.js.map → chunk-WET4LPLO.js.map} +0 -0
  714. /package/dist/{chunk-JPH5EVVW.js.map → chunk-X63AAJGT.js.map} +0 -0
  715. /package/dist/{chunk-QIY7HLC5.js.map → chunk-XVZ5UJWU.js.map} +0 -0
  716. /package/dist/{chunk-I2LTCBTM.js.map → chunk-YNBT4N6T.js.map} +0 -0
  717. /package/dist/{chunk-ZTOABVVA.js.map → chunk-YVCTEEVQ.js.map} +0 -0
  718. /package/dist/{chunk-4VCBJC3B.js.map → chunk-YWZCJMHS.js.map} +0 -0
  719. /package/dist/{chunk-L72Y4QA2.js.map → chunk-Z3SC67OA.js.map} +0 -0
  720. /package/dist/{chunk-YRQ5V7DQ.js.map → chunk-ZLREFIZB.js.map} +0 -0
  721. /package/dist/{chunk-3S7ZWGND.js.map → chunk-ZX2ISBEF.js.map} +0 -0
  722. /package/dist/{condition-SZZS77TK.js.map → condition-P2XD32QM.js.map} +0 -0
  723. /package/dist/{controls-ZBDTHWOT.js.map → controls-FZUTJPKV.js.map} +0 -0
  724. /package/dist/{controls.btns-3QQ5FOKQ.js.map → controls.btns-AP67YWKW.js.map} +0 -0
  725. /package/dist/{controls.config-MTBN2XPW.js.map → controls.config-TEFY3NTE.js.map} +0 -0
  726. /package/dist/{cuminc-TM3SMOJ2.js.map → cuminc-42GBJHD3.js.map} +0 -0
  727. /package/dist/{cuminc.integration.spec-NEBXRMKB.js.map → cuminc.integration.spec-BAY4JHVL.js.map} +0 -0
  728. /package/dist/{customdata.inputui-5ZEKFWYV.js.map → customdata.inputui-IPM5K56K.js.map} +0 -0
  729. /package/dist/{dataDownload-XZ4AC6QY.js.map → dataDownload-D7VCYBDT.js.map} +0 -0
  730. /package/dist/{dataDownload.integration.spec-O4YQKAOJ.js.map → dataDownload.integration.spec-SEBY2BIX.js.map} +0 -0
  731. /package/dist/{databrowser.ui-V4HQMZ4X.js.map → databrowser.ui-5OC5MPZB.js.map} +0 -0
  732. /package/dist/{dictionary-RAHC3OA7.js.map → dictionary-VVRWVLJX.js.map} +0 -0
  733. /package/dist/{dnaMethylation-ZUHHG7Q2.js.map → dnaMethylation-72IS3FRI.js.map} +0 -0
  734. /package/dist/{dnaMethylation.integration.spec-JZ6ZSF5L.js.map → dnaMethylation.integration.spec-U2LLSDGE.js.map} +0 -0
  735. /package/dist/{dofetch-77N4NDDM.js.map → dofetch-5ZRAQH5F.js.map} +0 -0
  736. /package/dist/{e2pca-K7IFKNTZ.js.map → e2pca-AR6EKEJA.js.map} +0 -0
  737. /package/dist/{ep-4OIFIMZH.js.map → ep-JS5UUJQX.js.map} +0 -0
  738. /package/dist/{expclust.gdc.spec-OJD7ENKA.js.map → expclust.gdc.spec-73MGQ7RN.js.map} +0 -0
  739. /package/dist/{facet-SZAF3QW6.js.map → facet-AR3QKHCY.js.map} +0 -0
  740. /package/dist/{forms2-TBRF2RI5.js.map → forms2-UXEI7MUP.js.map} +0 -0
  741. /package/dist/{gb-I5J74SHP.js.map → gb-RHDVYU2V.js.map} +0 -0
  742. /package/dist/{geneExpClustering-OSS4OCN6.js.map → geneExpClustering-L6KLCMPH.js.map} +0 -0
  743. /package/dist/{geneExpression-WKYVSE45.js.map → geneExpression-GYT2XRE6.js.map} +0 -0
  744. /package/dist/{geneExpression-IHVMJGOG.js.map → geneExpression-SKIU3NEP.js.map} +0 -0
  745. /package/dist/{geneExpression.unit.spec-QP6CLYHP.js.map → geneExpression.unit.spec-CWR6KDVK.js.map} +0 -0
  746. /package/dist/{geneORA-65PHOTHN.js.map → geneORA-C3TALK5P.js.map} +0 -0
  747. /package/dist/{geneRanking-XCU3NX4J.js.map → geneRanking-LLYLDPLV.js.map} +0 -0
  748. /package/dist/{geneVariant-CZM3XP7X.js.map → geneVariant-PUSKBHPY.js.map} +0 -0
  749. /package/dist/{geneVariant-IMDFPV2L.js.map → geneVariant-YFMU6PHM.js.map} +0 -0
  750. /package/dist/{geneVariant.integration.spec-FOONVTYD.js.map → geneVariant.integration.spec-EJ5V46OQ.js.map} +0 -0
  751. /package/dist/{genefusion.ui-UZM2YGIR.js.map → genefusion.ui-XUHSKQKW.js.map} +0 -0
  752. /package/dist/{geneset-IGG77MNZ.js.map → geneset-DEL5LXFZ.js.map} +0 -0
  753. /package/dist/{genomeBrowser.spec-CN2XNZQF.js.map → genomeBrowser.spec-W5TVHOUJ.js.map} +0 -0
  754. /package/dist/{grin2-367QGSOU.js.map → grin2-FXAEGECD.js.map} +0 -0
  755. /package/dist/{grin2-S46IRWIP.js.map → grin2-U2FKULLC.js.map} +0 -0
  756. /package/dist/{gsea-RJ767G5U.js.map → gsea-CNL6SHH5.js.map} +0 -0
  757. /package/dist/{hierCluster-3D425AUU.js.map → hierCluster-7V65PMIW.js.map} +0 -0
  758. /package/dist/{hierCluster-GIIB6OEC.js.map → hierCluster-C44GHM4B.js.map} +0 -0
  759. /package/dist/{hierCluster.config-ENEOWYOS.js.map → hierCluster.config-RU5JDPWM.js.map} +0 -0
  760. /package/dist/{hierCluster.integration.spec-IOA3PVAN.js.map → hierCluster.integration.spec-6YH5KE4H.js.map} +0 -0
  761. /package/dist/{hierCluster.interactivity-VITUF5RM.js.map → hierCluster.interactivity-PK2L7BSW.js.map} +0 -0
  762. /package/dist/{imagePlot-7VH7VFWD.js.map → imagePlot-5SEDMPBP.js.map} +0 -0
  763. /package/dist/{importPlot-OKOYX2NU.js.map → importPlot-M3MKWRON.js.map} +0 -0
  764. /package/dist/{isoformExpression-4SJQZFLP.js.map → isoformExpression-PPMISWKT.js.map} +0 -0
  765. /package/dist/{isoformExpression.unit.spec-3MQQZEPZ.js.map → isoformExpression.unit.spec-ENHCCQRZ.js.map} +0 -0
  766. /package/dist/{launch.adhoc-MQKVVUV7.js.map → launch.adhoc-XAG6H42J.js.map} +0 -0
  767. /package/dist/{leftlabel.sample-JPE6CXZU.js.map → leftlabel.sample-BSPCI6GR.js.map} +0 -0
  768. /package/dist/{lollipop-DMM3QYKI.js.map → lollipop-IZJ7E3YO.js.map} +0 -0
  769. /package/dist/{maf-TQKKVLNR.js.map → maf-54XWBQ73.js.map} +0 -0
  770. /package/dist/{maftimeline-BXBAXKAI.js.map → maftimeline-3AJKAFS6.js.map} +0 -0
  771. /package/dist/{matrix-AWVEEUKZ.js.map → matrix-AJPMHUXG.js.map} +0 -0
  772. /package/dist/{matrix-N3YUJXLP.js.map → matrix-ZMXNOESU.js.map} +0 -0
  773. /package/dist/{matrix.config-QPNAC2EY.js.map → matrix.config-4WLSFMTY.js.map} +0 -0
  774. /package/dist/{matrix.data-FIQGPFTI.js.map → matrix.data-WMOTOB6C.js.map} +0 -0
  775. /package/dist/{matrix.dom-2SU4EYLI.js.map → matrix.dom-F7AN3QGE.js.map} +0 -0
  776. /package/dist/{matrix.integration.spec-OA3FJ2PN.js.map → matrix.integration.spec-ENRPVB7R.js.map} +0 -0
  777. /package/dist/{matrix.interactivity-LKLF5ZQN.js.map → matrix.interactivity-IMWERCZF.js.map} +0 -0
  778. /package/dist/{matrix.layout-ORYBQUKT.js.map → matrix.layout-5DDZWLNX.js.map} +0 -0
  779. /package/dist/{matrix.renderers-TLZSYHZR.js.map → matrix.renderers-VFQZG5JP.js.map} +0 -0
  780. /package/dist/{matrix.sort.unit.spec-DRFCEZGX.js.map → matrix.sort.unit.spec-ZA5DRNL6.js.map} +0 -0
  781. /package/dist/{matrix.sorterUi-FFLYKBGC.js.map → matrix.sorterUi-3KEDVLGW.js.map} +0 -0
  782. /package/dist/{matrix.sorterUi.unit.spec-QQH3ITTW.js.map → matrix.sorterUi.unit.spec-7TPOJ46U.js.map} +0 -0
  783. /package/dist/{mavb-ZK5UKXEO.js.map → mavb-73BXZ7MO.js.map} +0 -0
  784. /package/dist/{mds.fimo-MHPHQB4X.js.map → mds.fimo-L7VVAOXQ.js.map} +0 -0
  785. /package/dist/{mds.samplescatterplot-LRL5SXJ5.js.map → mds.samplescatterplot-6P75XEWB.js.map} +0 -0
  786. /package/dist/{mds.survivalplot-R5N6OHZ2.js.map → mds.survivalplot-GCVE7XGO.js.map} +0 -0
  787. /package/dist/{oncomatrix-FA3ELKNE.js.map → oncomatrix-BFWV2IC4.js.map} +0 -0
  788. /package/dist/{oncomatrix.spec-3K7ONINO.js.map → oncomatrix.spec-J6IAY3O6.js.map} +0 -0
  789. /package/dist/{plot.2dvaf-P6CRZWB7.js.map → plot.2dvaf-ESJAB2F3.js.map} +0 -0
  790. /package/dist/{plot.app-XOQVTISH.js.map → plot.app-T7CQMBRV.js.map} +0 -0
  791. /package/dist/{plot.barplot-YDT4K3YZ.js.map → plot.barplot-HAWPMPPU.js.map} +0 -0
  792. /package/dist/{plot.boxplot-GHEVLVJU.js.map → plot.boxplot-4QUORFXY.js.map} +0 -0
  793. /package/dist/{plot.brainImaging-NENXKZEP.js.map → plot.brainImaging-HG6I3GJW.js.map} +0 -0
  794. /package/dist/{plot.disco-3B7LZ2XE.js.map → plot.disco-LPH7F6YW.js.map} +0 -0
  795. /package/dist/{plot.dzi-F7NW65WQ.js.map → plot.dzi-DYAY4D4E.js.map} +0 -0
  796. /package/dist/{plot.ssgq-BAUIBB3D.js.map → plot.ssgq-CF5VIGYJ.js.map} +0 -0
  797. /package/dist/{plot.vaf2cov-XBLM7B4M.js.map → plot.vaf2cov-7HZCKNK6.js.map} +0 -0
  798. /package/dist/{plot.wsi-YWILGUDN.js.map → plot.wsi-MU6AXOWO.js.map} +0 -0
  799. /package/dist/{polar2-WABGZYEV.js.map → polar2-G636L5TB.js.map} +0 -0
  800. /package/dist/{profileForms-LYWVFIVQ.js.map → profileForms-TIT4JUEJ.js.map} +0 -0
  801. /package/dist/{profilePlot-TSXR4EGL.js.map → profilePlot-QFGRAZQA.js.map} +0 -0
  802. /package/dist/{proteinView-ATZI5LXA.js.map → proteinView-RZ56F45C.js.map} +0 -0
  803. /package/dist/{qualitative-VNY32ONL.js.map → qualitative-YWP4YUPF.js.map} +0 -0
  804. /package/dist/{radar2-YVHLSCAM.js.map → radar2-TKSHL54E.js.map} +0 -0
  805. /package/dist/{radarFacility2-K4OA7FYK.js.map → radarFacility2-FHRFLBLF.js.map} +0 -0
  806. /package/dist/{regression-KKC7Y57Y.js.map → regression-5XG5LXP7.js.map} +0 -0
  807. /package/dist/{regression.inputs-UR2VLW5P.js.map → regression.inputs-QHXK7ZYY.js.map} +0 -0
  808. /package/dist/{regression.inputs.term-QECG7D3W.js.map → regression.inputs.term-YYO3CR2D.js.map} +0 -0
  809. /package/dist/{regression.inputs.values.table-UANMD46V.js.map → regression.inputs.values.table-3I2FCON2.js.map} +0 -0
  810. /package/dist/{regression.integration.spec-UCUHBCZY.js.map → regression.integration.spec-QVDGCKVT.js.map} +0 -0
  811. /package/dist/{regression.results-TNVEGETD.js.map → regression.results-B7LVT2WG.js.map} +0 -0
  812. /package/dist/{regression.spec-3NSFMTI7.js.map → regression.spec-ISYKKQOM.js.map} +0 -0
  813. /package/dist/{report-2FNKLTYA.js.map → report-TF6Z3Y44.js.map} +0 -0
  814. /package/dist/{sampleScatter.spec-5SC2AJHW.js.map → sampleScatter.spec-2VW55XIZ.js.map} +0 -0
  815. /package/dist/{sampleView-SU7VZCJH.js.map → sampleView-DNNJRAMU.js.map} +0 -0
  816. /package/dist/{samplelst-JGSTML6J.js.map → samplelst-726II3LN.js.map} +0 -0
  817. /package/dist/{samplematrix-FO4GGDRT.js.map → samplematrix-TBPW4URH.js.map} +0 -0
  818. /package/dist/{sc-LDUHVPII.js.map → sc-GBYH3W4S.js.map} +0 -0
  819. /package/dist/{selectGenomeWithTklst-G3XUX3KK.js.map → selectGenomeWithTklst-RCAYDV6D.js.map} +0 -0
  820. /package/dist/{singleCellCellType-QKA4QCLC.js.map → singleCellCellType-IQYCKUT6.js.map} +0 -0
  821. /package/dist/{singleCellCellType.unit.spec-KIPKWJLB.js.map → singleCellCellType.unit.spec-ZEWA2IFI.js.map} +0 -0
  822. /package/dist/{singleCellGeneExpression-O2QVJOG4.js.map → singleCellGeneExpression-STLTBXJQ.js.map} +0 -0
  823. /package/dist/{singleCellGeneExpression.unit.spec-6ATWTQTO.js.map → singleCellGeneExpression.unit.spec-W6FPS5ZU.js.map} +0 -0
  824. /package/dist/{singleCellPlot-HZOSW3FB.js.map → singleCellPlot-7XH7NIL4.js.map} +0 -0
  825. /package/dist/{singlecell-3OX4TSQ4.js.map → singlecell-IDZB2MXW.js.map} +0 -0
  826. /package/dist/{singlecell-EUUIY2JJ.js.map → singlecell-JCXR7X5U.js.map} +0 -0
  827. /package/dist/{snp-UVKGSROJ.js.map → snp-QOKI26PO.js.map} +0 -0
  828. /package/dist/{snp.unit.spec-YHIZ5ZJW.js.map → snp.unit.spec-DTPZAALW.js.map} +0 -0
  829. /package/dist/{snplocus-FANKGKI4.js.map → snplocus-BKUJYANW.js.map} +0 -0
  830. /package/dist/{spliceevent.a53ss.diagram-QQXYYX7J.js.map → spliceevent.a53ss.diagram-4O54ORKZ.js.map} +0 -0
  831. /package/dist/{spliceevent.exonskip.diagram-R265JOH6.js.map → spliceevent.exonskip.diagram-KOIOS6IV.js.map} +0 -0
  832. /package/dist/{spliceevent.noeventdiagram-UMAQOCVY.js.map → spliceevent.noeventdiagram-YGUGQMVE.js.map} +0 -0
  833. /package/dist/{ssGSEA-F4BZ3NYO.js.map → ssGSEA-UZMBIHVD.js.map} +0 -0
  834. /package/dist/{ssGSEA.unit.spec-OQQGQYPJ.js.map → ssGSEA.unit.spec-4YO4E3T7.js.map} +0 -0
  835. /package/dist/{stattable-QDIUQCMG.js.map → stattable-MDABSW3F.js.map} +0 -0
  836. /package/dist/{summarizeCnvGeneexp-LX22NXFF.js.map → summarizeCnvGeneexp-HV3DHIW4.js.map} +0 -0
  837. /package/dist/{summarizeGeneexpSurvival-N7LXAK2G.js.map → summarizeGeneexpSurvival-VGPRWYQ5.js.map} +0 -0
  838. /package/dist/{summarizeMutationCnv-QC3EARCV.js.map → summarizeMutationCnv-N3JEB4DJ.js.map} +0 -0
  839. /package/dist/{summarizeMutationDiagnosis-H6KJWLLC.js.map → summarizeMutationDiagnosis-6U4DBLG5.js.map} +0 -0
  840. /package/dist/{summarizeMutationSurvival-JAFSWJVZ.js.map → summarizeMutationSurvival-S7NLAVEI.js.map} +0 -0
  841. /package/dist/{summary-D5MSBQIS.js.map → summary-NPR56I4S.js.map} +0 -0
  842. /package/dist/{summary.integration.spec-KJPNP7X2.js.map → summary.integration.spec-HWNJWLKT.js.map} +0 -0
  843. /package/dist/{summaryInput-47JBGPNE.js.map → summaryInput-DO73NGDQ.js.map} +0 -0
  844. /package/dist/{sunburst-PUZYZZGK.js.map → sunburst-MMXSGJSL.js.map} +0 -0
  845. /package/dist/{survival-LGJBYXFR.js.map → survival-7AIKFGV5.js.map} +0 -0
  846. /package/dist/{survival-SMOKVDGO.js.map → survival-UK332X6L.js.map} +0 -0
  847. /package/dist/{survival.integration.spec-ORC3LCVK.js.map → survival.integration.spec-YMTEKEGB.js.map} +0 -0
  848. /package/dist/{svgraph-GWDKHIDQ.js.map → svgraph-MLLAYO4A.js.map} +0 -0
  849. /package/dist/{svmr-RRA6OUVP.js.map → svmr-PYW4PLT3.js.map} +0 -0
  850. /package/dist/{table-AC2DX55F.js.map → table-Y3ED2444.js.map} +0 -0
  851. /package/dist/{termCollection-MPFFNNMF.js.map → termCollection-3XVL75II.js.map} +0 -0
  852. /package/dist/{termCollection-4OVZAKYZ.js.map → termCollection-VAB53YGO.js.map} +0 -0
  853. /package/dist/{termCollection.unit.spec-S4QSTY4S.js.map → termCollection.unit.spec-DYPWNVEZ.js.map} +0 -0
  854. /package/dist/{termInfo-2Z4V2QLE.js.map → termInfo-6MJDJSDW.js.map} +0 -0
  855. /package/dist/{tk-PFWI2HAC.js.map → tk-GUGJYKJ2.js.map} +0 -0
  856. /package/dist/{tp.ui-TKAJ7DRO.js.map → tp.ui-WGETBYJQ.js.map} +0 -0
  857. /package/dist/{tvs.dt-6NDINORK.js.map → tvs.dt-JWF4I3KY.js.map} +0 -0
  858. /package/dist/{tvs.dtcnv.categorical-2RHUN643.js.map → tvs.dtcnv.categorical-72Y5QMPL.js.map} +0 -0
  859. /package/dist/{tvs.dtcnv.continuous-GIPVPDBD.js.map → tvs.dtcnv.continuous-73LHWTU5.js.map} +0 -0
  860. /package/dist/{tvs.dtfusion-ZLXTZ7SA.js.map → tvs.dtfusion-LP6HUMZU.js.map} +0 -0
  861. /package/dist/{tvs.dtsnvindel-CRS5CL42.js.map → tvs.dtsnvindel-23N2CFZJ.js.map} +0 -0
  862. /package/dist/{tvs.dtsv-SG45TZWQ.js.map → tvs.dtsv-DILQVKYM.js.map} +0 -0
  863. /package/dist/{tvs.samplelst-NQ5BKEGM.js.map → tvs.samplelst-GV4VSCRF.js.map} +0 -0
  864. /package/dist/{tvs.termCollection-HOVUO7ZH.js.map → tvs.termCollection-KBDNXK7X.js.map} +0 -0
  865. /package/dist/{violin-FGGULOXU.js.map → violin-TYUP7FB5.js.map} +0 -0
  866. /package/dist/{violin.integration.spec-T5Y6URJK.js.map → violin.integration.spec-ULRFK2A6.js.map} +0 -0
  867. /package/dist/{violin.interactivity-6RGFTQDW.js.map → violin.interactivity-2QZVQWQJ.js.map} +0 -0
  868. /package/dist/{violin.renderer-63UTDZVK.js.map → violin.renderer-HCDSN62Z.js.map} +0 -0
  869. /package/dist/{vocabulary-YQXR4H5J.js.map → vocabulary-I4CMPN2Z.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../rx/src/utils.ts", "../rx/src/Bus.ts", "../rx/src/AppApi.ts", "../rx/src/StoreApi.ts", "../rx/src/ComponentApi.ts", "../rx/src/wrappers.ts", "../rx/src/StoreBase.ts"],
4
+ "sourcesContent": ["/**************\nUtility Classes\n***************/\n\n/******************\n Detached Helpers\n******************/\n/*\n\tMethods to attach directly to an instance\n\tinside a class contructor method.\n\t\n\tThis is recommended instead of using \n\tinheritance via \"extends\", since this \"mixin\" \n\tapproach:\n\n\t- makes it clearer which instance method corresponds\n\t to what rx method\n\t\n\t- it is not susceptible to any class prototype edits\n\t that may affect all instances that inherits from \n\t the edited class\n\n\t- avoids conceptual association of classical\n\t inheritance using the \"extends\" keyword\n*/\n\n// x, y: objects to compare\n// matched: a tracker for x nested object values that's already been inspected\n// and found to match the corresponding value in y. This is useful when\n// using deepEqual() in deepCopyFreeze(), since it returns early when\n// some value does not match, but there may have been other nested objects\n// that have already been matched that do not need to be inspected again.\n//\n// NOTE: The 2nd argument will be frozen if added to the optional matched argument.\n// May improve the matched argument later into an opts{} argument, as needed.\nexport function deepEqual(x, y, matched?: WeakMap<any, WeakSet<any>> | Map<any, WeakSet<any>>) {\n\tif (x === y) {\n\t\treturn true\n\t} else if (typeof x == 'object' && x != null && typeof y == 'object' && y != null) {\n\t\tif (matched?.get(x)?.has(y)) return true\n\t\tconst xEntries = Object.entries(x)\n\t\tconst yKeys = Object.keys(y)\n\t\tif (xEntries.length != yKeys.length) return false\n\t\t// an empty object and empty array should not equal each other\n\t\tif (!xEntries.length && x.constructor.name !== y.constructor.name) return false\n\t\t// not using for..in loop, in order to not descend into inherited props/methods\n\t\tfor (const [key, val] of xEntries) {\n\t\t\tif (!yKeys.includes(key)) return false\n\t\t\tif (!deepEqual(val, y[key], matched)) return false\n\t\t}\n\t\tif (matched) {\n\t\t\tObject.freeze(y)\n\t\t\tif (!matched.has(x)) matched.set(x, new WeakSet())\n\t\t\tmatched.get(x)!.add(y)\n\t\t}\n\t\treturn true\n\t} else return false\n}\n\nexport function deepFreeze(obj) {\n\tObject.freeze(obj)\n\t// not using for..in loop, in order to not descend into inherited props/methods\n\tfor (const value of Object.values(obj)) {\n\t\tif (value !== null && typeof value == 'object') deepFreeze(value)\n\t}\n\treturn obj\n}\n\n// a reusable reference to an empty object\nconst emptyFrozenObj = Object.freeze({})\n\n// deepCopyFreez()\n//\n// input:\n// - object to copy\n// - may be mutated to freeze a class instance (or TODO: replace literal objects\n// with isolated mutable copies that are only accessible to the consumer code,\n// such as an rx store instance)\n// ref: may reuse another copy that's already frozen, if it already equals the input\n// matched: a tracker to supply as 3rd argument to deepEqual(), to track objects\n// that equal the second argument.\nexport function deepCopyFreeze(\n\tinput,\n\tref: any = {},\n\tmatched: WeakMap<any, WeakSet<any>> | Map<any, WeakSet<any>> = new Map()\n) {\n\t// non-objects will be returned as-is\n\tif (input === null || typeof input != 'object') return input\n\t// detect non-literal objects with a deepFreeze() method; class instances\n\t// without that method is assumed to be created by embedder code and should not be mutated,\n\t// cannot safely reuse the instance as-is\n\tif (\n\t\tinput.constructor.name !== 'Object' &&\n\t\tinput.constructor.name !== 'Array' &&\n\t\ttypeof input.deepFreeze == 'function'\n\t) {\n\t\t// class instances (non-literal objects) will be returned as-is but frozen,\n\t\t// i.e., a reference to the instances is returned instead of a copy\n\t\tif (!matched.has(input)) matched.set(input, new WeakSet())\n\t\tmatched.get(input)!.add(input)\n\t\treturn input.deepFreeze()\n\t}\n\tif (deepEqual(input, ref, matched)) return Object.freeze(ref)\n\tconst copy = Array.isArray(input) ? [] : {}\n\t// ref argument may be a non-object (string, number, etc), where\n\t// ref?.[key] (such as 1['test'] or \"abc\"['test']) would still work\n\t// but is not really an intended, valid comparison with an input object\n\tconst _ref = ref === null || typeof ref !== 'object' ? emptyFrozenObj : ref\n\t// not using for..in loop, in order to not descend into inherited props/methods\n\tfor (const [key, value] of Object.entries(input)) {\n\t\tcopy[key] = deepCopyFreeze(value, _ref[key], matched)\n\t}\n\treturn Object.freeze(copy)\n}\n\nexport async function notifyComponents(components, current) {\n\tif (!components) return // allow component-less app\n\tconst called: any[] = []\n\n\tfor (const name of Object.keys(components)) {\n\t\t// when components is array, name will be index\n\t\tconst component = components[name]\n\t\tif (Array.isArray(component)) {\n\t\t\tfor (const c of component) called.push(c.update(current))\n\t\t} else if (typeof component == 'object') {\n\t\t\tif (typeof component.update == 'function') {\n\t\t\t\tcalled.push(component.update(current))\n\t\t\t} else if (!component.main) {\n\t\t\t\tfor (const subname of Object.keys(component)) {\n\t\t\t\t\tif (typeof component[subname] == 'object' && typeof component[subname]?.update == 'function') {\n\t\t\t\t\t\tcalled.push(component[subname].update(current))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn Promise.all(called)\n}\n\n// Store Helpers\n// -------------\n\n/*\n\tbase: \n\t- either a state object or its JSON-stringified equivalent \n\t- will be over-written by second+ argument,\n\t similar to native Object.assign() overwrite sequence\n\n\targs\n\t- full or partial state object(s). if base is a string, then\n\t the arg object will be converted to/from JSON to\n\t create a copy for merging\n\t- the last argument may be an array of keys to force replacing\n\t an object value instead of extending it\n\n\tMerging behavior:\n\t- a base value that is an array or non-object will be replaced by matching arg key-value\n\t- a base value that is an object will be extended by a matching arg key-value\n\t- nested base object values will be extended recursively, instead of being swapped/replaced\n\t at the root level *** EXCEPT IF there is an isAtomic flag on one of these ****\n\t - the source\n\t - target object\n\t - target child object\n\t- see index.spec test for copyMerge details\n*/\nexport function copyMerge(base, ...args) {\n\tconst target = typeof base == 'string' ? fromJson(base) : base\n\tfor (const arg of args) {\n\t\tif (!arg) continue\n\t\tconst source = typeof base == 'string' ? fromJson(toJson(arg)) : arg\n\t\tfor (const [key, value] of Object.entries(source)) {\n\t\t\tif (\n\t\t\t\t!target[key] ||\n\t\t\t\tArray.isArray(target[key]) ||\n\t\t\t\ttypeof target[key] !== 'object' ||\n\t\t\t\tsource === null ||\n\t\t\t\tsource === undefined ||\n\t\t\t\tsource.isAtomic ||\n\t\t\t\ttarget?.isAtomic ||\n\t\t\t\ttarget[key]?.isAtomic\n\t\t\t) {\n\t\t\t\ttarget[key] = value\n\t\t\t} else copyMerge(target[key], value)\n\t\t}\n\t}\n\treturn target\n}\n\nexport function fromJson(objStr) {\n\t// this method should not be reused when there is\n\t// a need to recover any Set or Map values, instead\n\t// declare a class specific fromJson() method that has\n\t// new Set(arrOfValues) or new Map(arrOfPairedValues)\n\t//\n\t// also, do not use this when autogenerated IDs\n\t// need to be attached to list entries\n\t//\n\treturn JSON.parse(objStr)\n}\n\nexport function toJson(this: any, obj = null) {\n\t// this method should not be reused when there is\n\t// a need to stringify any Set or Map values,\n\t// instead declare a class specific toJson() method\n\t// that converts any Set or Map values to\n\t// [...Set] or [...Map] before JSON.stringify()\n\treturn JSON.stringify(obj ? obj : this.state)\n}\n\nexport function sleep(ms) {\n\treturn new Promise(resolve => setTimeout(resolve, ms))\n}\n\n// Component Helpers\n// -----------------\n\n// access the api of an indirectly connected component,\n// for example to subscribe an .on(event, listener) to\n// the event bus of a distant component\nexport function getComponents(components, dotSepNames) {\n\tif (!dotSepNames) return Object.assign({}, components)\n\t// string-based convenient accessor,\n\t// so instead of\n\t// app.getComponents().controls.getComponents().search,\n\t// simply\n\t// app.getComponents(\"controls.search\")\n\tconst names = dotSepNames.split('.')\n\tlet component = components\n\twhile (names.length) {\n\t\tlet name = names.shift()\n\t\tif (Array.isArray(component)) name = Number(name)\n\n\t\tif (!names.length) component = component[name]\n\t\telse if (component[name] && component[name].components) component = component[name].components\n\t\telse if (component[name] && component[name].getComponents) component = component[name].getComponents()\n\t\telse component = component[name]\n\t\tif (!component) break\n\t}\n\treturn component\n}\n", "/*\n\tA Bus instance will be its own api,\n\tsince it does not have a getApi() method.\n\tInstead, the mutable Bus instance will be hidden via the\n\tcomponent.api.on() method.\n*/\n\nexport class Bus {\n\tname: string\n\t/** \n\t \teventTypes[] \n\t\t\t- the events that this component wants to emit\n\t\t\t- e.g. ['postInit', 'postRender', 'postClick']\n\t\t\t- must not be namespaced\n\t\t\t- later, api.on() can use namespaced eventTypes\n\t*/\n\teventTypes: string[]\n\n\tevents: {\n\t\tpostInit?: (api: any) => void\n\t\tfirstRender?: (api: any) => void\n\t\tpostRender?: (api: any) => void\n\t\t//[eventName: string]?: (api: any) => void\n\t}\n\n\tdefaultArg: any\n\n\tconstructor(api, eventTypes, callbacks) {\n\t\t/*\n\t\t\tapi{} \n\t\t\t- the immutable api of the app or component\n\t\t\t\n\t\t\t\n\n\t\t\tcallbacks{}\n\t\t\t- any event listeners to set-up for this component \n\t\t\t- key: eventType, value: callback\n\n\t\t*/\n\t\tthis.name = api.type + (api.id === undefined || api.id === null ? '' : '#' + api.id)\n\t\tthis.eventTypes = eventTypes\n\t\tthis.events = {}\n\t\tthis.defaultArg = api\n\t\tif (callbacks) {\n\t\t\tfor (const [eventType, callback] of Object.entries(callbacks)) {\n\t\t\t\tthis.on(eventType, callback)\n\t\t\t}\n\t\t}\n\t}\n\n\ton(eventType, callback, opts: { wait?: number; [optsName: string]: any } = {}) {\n\t\t/*\n\t\tassign or delete a callback for an event\n\n\t\teventType\n\t\t- must match one of the eventTypes supplied to the Bus constructor\n\t\t- maybe be namespaced or not, example: \"postRender.test\" or \"postRender\"\n\t\t- any previous event-attached callbacks will be REPLACED in this bus \n\t\t when the same eventType is used as an argument again -- same behavior\n\t\t as a DOM event listener namespacing and replacement\n\n\t\tcallback\n\t\t- function. if missing will delete the eventType from bus\n\n\t\topts{}\n\t\t- optional callback configuration, such as\n\t\t.wait // to delay callback \n\t\t*/\n\t\tconst type = eventType.split('.').shift()\n\t\tif (!this.eventTypes.includes(type)) {\n\t\t\tthrow `Unknown bus event '${type}' for component ${this.name}`\n\t\t} else if (!callback) {\n\t\t\tdelete this.events[eventType]\n\t\t} else if (typeof callback == 'function') {\n\t\t\tif (eventType in this.events && !eventType.includes('.')) {\n\t\t\t\tconsole.log(`Warning: replacing ${this.name} ${eventType} callback - use event.name?`)\n\t\t\t}\n\t\t\tthis.events[eventType] = opts.wait ? arg => setTimeout(() => callback(arg), opts.wait) : callback\n\t\t} else {\n\t\t\tthrow `invalid callback for ${this.name} eventType=${eventType}`\n\t\t}\n\t\treturn this\n\t}\n\n\temit(eventType, arg = null, wait = 0, error = null) {\n\t\t/*\n\t\teventType\n\t\t- must be one of the eventTypes supplied to the Bus constructor\n\t\t- maybe be namespaced or not, example: \"postRender.test\" or \"postRender\"\n\n\t\targ\n\t\t- optional: the argument to supply to the callback\n\t\t if null or undefined, will use constructor() opts.defaultArg instead\n\n\t\twait\n\t\t- optional delay in calling the callback\n\t*/\n\t\tsetTimeout(() => {\n\t\t\tfor (const type of Object.keys(this.events)) {\n\t\t\t\tif (eventType == 'postRender' && type.startsWith('firstRender')) {\n\t\t\t\t\tthis.events[type](arg || this.defaultArg, error)\n\t\t\t\t\tdelete this.events[type]\n\t\t\t\t}\n\n\t\t\t\tif (type == eventType || type.startsWith(eventType + '.')) {\n\t\t\t\t\tthis.events[type](arg || this.defaultArg, error)\n\t\t\t\t\tif (eventType == 'postInit') delete this.events[type]\n\t\t\t\t}\n\t\t\t}\n\t\t}, wait)\n\t\treturn this\n\t}\n\n\tdestroy() {\n\t\tfor (const key in this.events) {\n\t\t\tdelete this.events[key]\n\t\t}\n\t}\n}\n", "import { type ComponentApi } from './ComponentApi.ts'\nimport { Bus } from './Bus.ts'\nimport { notifyComponents, getComponents } from './utils.ts'\n\ntype DispatchAction =\n\t| {\n\t\t\ttype: string\n\t\t\t[key: string]: any\n\t }\n\t| undefined\n\nexport interface RxApp {\n\ttype: string\n\tapi?: AppApi\n\tid: any\n\topts: any\n\tstate: any\n\tstore: any\n\tdebug?: boolean\n\t// should require dom to automate destroy()\n\tdom: {\n\t\t[index: string]: any\n\t}\n\tcomponents: ComponentApi[] | { [name: string]: ComponentApi | { [name: string]: ComponentApi } }\n\tpreApiFreeze?: (api: AppApi) => Promise<void>\n\tinit: () => Promise<void>\n\treactsTo?: (action: DispatchAction) => boolean\n\tgetState?: (appState: any) => any\n\thasStatePreMain?: boolean\n\tmain: (arg?: any) => void\n\tmainArg?: any\n\tprintError?: (any) => void\n\tdestroy?: () => void\n\t// may skip aborting previously dispatched actions in AppApi.dispatch()\n\t// if the new dispatched action doesn't affect all components; this will\n\t// allow plots and control menus to continue rendering while creating,\n\t// editing, or deleting another plot\n\tskipPrevActionAbort?: (action: DispatchAction) => boolean\n\n\tbus: Bus\n\teventTypes?: string[]\n\tcustomEvents?: string[]\n\twasDestroyed: boolean\n}\n\nexport class AppApi {\n\ttype = 'app'\n\tid: string\n\topts: any\n\tvocabApi: any\n\t#App: RxApp\n\tInner?: RxApp // only in debugmode\n\t#middlewares: any[] = []\n\tstate: any\n\n\t#latestActionSequenceId: number\n\t#abortController: AbortController = new AbortController()\n\t/** trackedAbortContrlsBySignal is used by trackAbortCtrlBySignal() */\n\t#trackedAbortContrlsBySignal = new WeakMap()\n\t#componentsByType: {\n\t\t[chartType: string]: {\n\t\t\t[plotId: string]: ComponentApi\n\t\t}\n\t} = {}\n\n\tstatic getInitFxn(__Class__) {\n\t\treturn async opts => {\n\t\t\tconst api = new AppApi(opts, __Class__)\n\t\t\tawait api.init()\n\t\t\treturn api\n\t\t}\n\t}\n\n\tconstructor(opts, __Class__) {\n\t\t// the component type + id may be used later to\n\t\t// simplify getting its state from the store\n\t\tconst self: RxApp = new __Class__(opts)\n\t\tself.opts = opts\n\t\tif (!self.id) self.id = opts.id || self.opts?.id\n\t\tif (!self.type) self.type = __Class__.type\n\t\tself.api = this\n\n\t\tthis.#App = self\n\t\tthis.id = self.id\n\t\tthis.type = self.type || __Class__.type\n\t\tthis.opts = opts\n\n\t\t// make it easy to access the private instance in debug mode, for testing\n\t\tif (self.debug || (self.opts && self.opts.debug)) this.Inner = self\n\n\t\tif (!self.eventTypes) self.eventTypes = ['preDispatch', 'postInit', 'postRender', 'firstRender', 'error']\n\t\tif (self.customEvents) self.eventTypes.push(...self.customEvents)\n\t\tself.bus = new Bus(this, self.eventTypes, opts.callbacks)\n\n\t\tthis.#latestActionSequenceId = 0\n\t}\n\n\tasync init() {\n\t\tif (this.#App.preApiFreeze) await this.#App.preApiFreeze(this)\n\t\tif (typeof this.#App.init === 'function') await this.#App.init()\n\t\tif (this.#App.bus) this.#App.bus.emit('postInit')\n\t}\n\n\tasync dispatch(action?: any) {\n\t\tconst self = this.#App\n\t\tself.bus.emit('preDispatch') //; console.log(106, 'AppApi.dispatch() signal', this.#abortController?.signal)\n\t\t// any active but stale async operation, like fetch, should be canceled\n\t\t// if a new dispatch supercedes previous dispatches.\n\t\t// NOTE: this cancellation should not affect synchronous steps\n\t\tif (this.#abortController /*&& !self.skipPrevActionAbort?.(action)*/)\n\t\t\tthis.#abortController.abort('stale sequenceId')\n\t\tthis.#abortController = new AbortController()\n\n\t\ttry {\n\t\t\tif (this.#middlewares.length) {\n\t\t\t\tfor (const fxn of this.#middlewares.slice()) {\n\t\t\t\t\tconst result = await fxn(action)\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\tif (result.cancel) return\n\t\t\t\t\t\tif (result.error) throw result.error\n\t\t\t\t\t\tif (result.deactivate) {\n\t\t\t\t\t\t\tthis.#middlewares.splice(this.#middlewares.indexOf(fxn), 1)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// IMPORTANT: Since a dispatched action does not necessarily affect all plot,\n\t\t\t// there should not be any guard here to detect stale sequence ID. The app\n\t\t\t// must continue dispatching actions that may update a specific plot or component,\n\t\t\t// and allow a subsequent action to also update another component without canceling\n\t\t\t// the previous action. This allows plots to continue rendering without unnecessarily\n\t\t\t// aborting for unrelated dispatched actions. The main exception to these are changes\n\t\t\t// to global filter and cohort (action.type == 'filter_replace' || 'cohort_set'), which\n\t\t\t// are assumed to affect all plots and components - there excemptions are specified\n\t\t\t// in this.#App.skipPrevActionAbort().\n\n\t\t\t// expect store.write() to be debounced and handle rapid succession of dispatches\n\t\t\t// replace app.state if there is an action\n\t\t\tif (action) self.state = await self.store.write(action)\n\t\t\tthis.#latestActionSequenceId = action?.sequenceId\n\t\t\t// TODO: may need to group calls to this.main by action type and plot.id,\n\t\t\t// in order to debounce correctly\n\t\t\tif (self.main) await self.main()\n\t\t\tconst current = { action, appState: self.state }\n\t\t\tawait notifyComponents(current.action?._notificationRoot_ || self.components, current)\n\t\t} catch (e: any) {\n\t\t\tif (this.isAbortError(e) || (e && typeof e == 'object' && e.level === 'warn')) {\n\t\t\t\tself.bus.emit('postRender')\n\t\t\t\tconsole.warn(String(e))\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (self.wasDestroyed) return\n\t\t\tif (self.bus && this.#latestActionSequenceId == action?.sequenceId) self.bus.emit('error')\n\t\t\tif (self.printError) self.printError(e)\n\t\t\telse console.log(e)\n\t\t}\n\t\t// do not emit a postRender event if the action has become stale\n\t\tif (self.bus && this.#latestActionSequenceId == action?.sequenceId) self.bus.emit('postRender')\n\t\t//this.#abortController = undefined\n\t}\n\n\t// action: RxAction\n\tasync save(action) {\n\t\tconst self = this.#App\n\t\tif (self.wasDestroyed) return\n\t\t// save changes to store, do not notify components\n\t\tself.state = await self.store.write(action)\n\t\t// TODO: may generalize to use the key instead of hardcoding to only .recover\n\t\tif (this.#componentsByType.recover) {\n\t\t\tfor (const id in this.#componentsByType.recover) {\n\t\t\t\tconst api = this.#componentsByType.recover[id]\n\t\t\t\t// note: store.write() returns a frozen state, so safe to pass as argument\n\t\t\t\tif (api.replaceLastState) api.replaceLastState(self.state)\n\t\t\t}\n\t\t}\n\t}\n\n\tgetState() {\n\t\treturn this.#App.state\n\t}\n\t// fxn: RxAction => void\n\tmiddle(fxn) {\n\t\t/*\n\t\tadd #middlewares prior to calling dispatch()\n\t\t\n\t\tfxn(action: RxAction) \n\t\t- called in the order of being added to #middlewares array\n\t\t- must accept an action{} argument\n\t\t- do not return any value to eventually reach dispatch()\n\t\t - OR -\n\t\t- optionally return an object{}\n\t\t\t.error: \"string\" will throw\n\t\t\t.cancel: true will cancel dispatch\n\t\t\t.deactivate: true will remove the fxn from the #middlewares array\n\t\t*/\n\t\tif (typeof fxn !== 'function') throw `a middleware must be a function`\n\t\tif (this.#middlewares.includes(fxn)) throw `the function is already in the #middlewares array`\n\t\tthis.#middlewares.push(fxn)\n\t\treturn this\n\t}\n\n\t// must not expose this.bus directly since that\n\t// will also expose bus.emit() which should only\n\t// be triggered by this component\n\ton(eventType, callback) {\n\t\tconst self = this.#App\n\t\tif (!self.eventTypes) throw `no eventTypes[] for ${self.type} component`\n\t\tself.bus.on(eventType, callback)\n\t\treturn this\n\t}\n\n\tgetComponents(dotSepNames = '') {\n\t\treturn getComponents(this.#App.components, dotSepNames)\n\t}\n\n\tregister(api) {\n\t\tif (!this.#componentsByType[api.type]) this.#componentsByType[api.type] = {}\n\t\tthis.#componentsByType[api.type][api.id] = api\n\t}\n\n\tderegister(api) {\n\t\tif (this.#componentsByType[api.type]?.[api.id]) delete this.#componentsByType[api.type][api.id]\n\t}\n\n\tgetAbortSignal() {\n\t\tif (!this.#abortController) this.#abortController = new AbortController()\n\t\treturn this.#abortController?.signal\n\t\t// NOTE: the same signal can be reused to cancel different fetch requests, as tested pasting and running the following in the browser console:\n\t\t// > const ac = new AbortController(); for(let i=0; i<3; i++) fetch('/healthcheck', {signal: ac.signal}).then(r=>r.json()).then(console.log).catch(console.log); const t = setTimeout(()=>ac.abort('stale sequenceId'), 0);\n\t\t// stale sequenceId // repeats 3x\n\t\t// // can also change timeout to 1000, to see that aborting is okay after the signaled fetch completes\n\t}\n\n\ttriggerAbort(reason = '', signal?: any) {\n\t\tif (reason) console.info(`triggerAbort()`, reason)\n\t\tif (signal) {\n\t\t\tif (signal.aborted) return\n\t\t\tif (this.#abortController && signal === this.#abortController?.signal) this.#abortController.abort()\n\t\t\telse {\n\t\t\t\tconst abortCtrl = this.#trackedAbortContrlsBySignal.get(signal)\n\t\t\t\tif (abortCtrl) abortCtrl.abort()\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconst self = this.#App\n\t\tif (this.#abortController) {\n\t\t\tthis.#abortController.abort('stale sequenceId')\n\t\t\t//this.#abortController = undefined\n\t\t}\n\t\tfor (const name of Object.keys(self.components)) {\n\t\t\tconst component = self.components[name]\n\t\t\tif (!component) continue\n\t\t\tif (Array.isArray(component)) {\n\t\t\t\tfor (const c of component) c.triggerAbort?.()\n\t\t\t} else if (!component || typeof component !== 'object') {\n\t\t\t\tcontinue\n\t\t\t} else if (typeof component.triggerAbort == 'function') {\n\t\t\t\t// NOTE: triggerAbort() is a prototype method, cannot use Object.keys(component).includes('triggerAbort')\n\t\t\t\t// which does not detect prototype/inherited methods\n\t\t\t\tcomponent.triggerAbort()\n\t\t\t} else if (!component.main) {\n\t\t\t\tfor (const subname of Object.keys(component)) {\n\t\t\t\t\tif (typeof component[subname].triggerAbort === 'function') {\n\t\t\t\t\t\tcomponent[subname].triggerAbort()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\ttrackAbortCtrlBySignal(abortCtrl) {\n\t\tthis.#trackedAbortContrlsBySignal.set(abortCtrl.signal, abortCtrl)\n\t}\n\n\tgetSequenceId() {\n\t\treturn this.#latestActionSequenceId\n\t}\n\n\tisStaleSequenceId(sequenceId) {\n\t\treturn sequenceId != this.#latestActionSequenceId\n\t}\n\n\tisAbortError(e) {\n\t\tif (e instanceof DOMException) return e.name === 'AbortError'\n\t\tif (typeof e == 'string') return e.includes('stale sequenceId') || e.includes('AbortError')\n\t\treturn false\n\t}\n\n\tdestroy() {\n\t\tthis.#abortController?.abort()\n\t\tconst self = this.#App\n\t\t// delete references to other objects to make it easier\n\t\t// for automatic garbage collection to find unreferenced objects\n\t\tfor (const key in self.components) {\n\t\t\tconst component = self.components[key]\n\t\t\tif (typeof component.destroy == 'function') {\n\t\t\t\tcomponent.destroy()\n\t\t\t} else if (component.holder) {\n\t\t\t\tcomponent.holder.selectAll('*').remove()\n\t\t\t}\n\t\t\tdelete self.components[key]\n\t\t}\n\t\tif (typeof self.destroy == 'function') self.destroy()\n\t\tif (self.dom) {\n\t\t\tif (self.dom.holder) self.dom.holder.selectAll('*').remove()\n\t\t\tfor (const key in self.dom) {\n\t\t\t\tdelete self.dom[key]\n\t\t\t}\n\t\t}\n\t\tif (self.bus) self.bus.destroy()\n\t\tdelete self.store\n\t\tif (self.api) delete self.api\n\t\tself.wasDestroyed = true\n\t}\n\n\tprintError(e) {\n\t\tif (this.#App.printError) this.#App.printError(e)\n\t\telse alert(e)\n\t}\n}\n", "import { deepCopyFreeze } from './utils.ts'\n\nexport interface RxStore {\n\ttype: string\n\tapi?: StoreApi\n\tid: any\n\tparentId?: string\n\topts: any\n\tdefaultState: any\n\tstate: any\n\tdebug?: boolean\n\tsequenceId: number\n\tnumPromisedWrites: number\n\tactions: {\n\t\t[actionType: string]: (action: { type: string; [prop: string]: any }) => void | Promise<void>\n\t}\n\n\tinit: () => void\n\tvalidateState?: () => void\n\tfromJson: (s: string) => any\n\ttoJson: (o: any) => string\n\tdeepFreeze: (o: any) => void\n\tcopyMerge: (_, __) => any\n}\n\nexport class StoreApi {\n\ttype: string\n\tid?: string\n\topts: any\n\n\t#Store: RxStore\n\tInner?: RxStore // only in debugmode\n\t#frozenStateCopy: any = Object.freeze({})\n\n\tstatic getInitFxn(__Class__) {\n\t\treturn async opts => {\n\t\t\tconst api = new StoreApi(opts, __Class__)\n\t\t\tawait api.init()\n\t\t\treturn api\n\t\t}\n\t}\n\n\tconstructor(_opts, __Class__) {\n\t\tconst opts = this.#validateOpts(_opts, __Class__)\n\t\t//this.app = opts.app\n\t\t//this.opts = opts\n\t\t// the component type + id may be used later to\n\t\t// simplify getting its state from the store\n\t\tconst self: RxStore = new __Class__(opts, this)\n\t\tself.opts = Object.assign(self.opts || {}, opts)\n\t\tif (!self.state) self.state = self.copyMerge(structuredClone(self.defaultState), opts.state || {})\n\t\t//self.app = opts.app\n\t\tif (!self.id) self.id = opts.id || self.opts?.id\n\t\tif (!self.type) self.type = __Class__.type\n\t\tself.api = this\n\t\tthis.#Store = self\n\t\tthis.id = self.id\n\t\tthis.type = self.type || __Class__.type\n\n\t\t// make it easy to access the private instance in debug mode, for testing\n\t\tif (self.debug || self.opts?.debug) this.Inner = self\n\t}\n\n\t#validateOpts(opts, __Class__) {\n\t\tconst optKeys = Object.keys(opts)\n\t\tif (!optKeys.includes('app')) throw `missing opts.app`\n\t\tif (!optKeys.includes('debug')) opts.debug = opts.app.debug ?? opts.app.opts?.debug ?? false\n\t\treturn opts\n\t}\n\n\tasync init() {\n\t\tif (this.#Store.init) await this.#Store.init()\n\t\tif (this.#Store.validateState) this.#Store.validateState()\n\t\tObject.freeze(this)\n\t}\n\n\tasync write(action) {\n\t\tconst self = this.#Store\n\n\t\t// to allow an app or chart code to fail due to race condition,\n\t\t// hardcode a constant value or comment out the ++ for the sequenceID\n\t\t// !!! CRITICAL TO INCREMENT THIS !!!\n\t\taction.sequenceId = this.#Store.sequenceId++\n\t\t// avoid calls to inherited methods\n\t\tconst actions = self.constructor.prototype.actions\n\t\tif (!actions) {\n\t\t\tthrow `no store actions specified`\n\t\t}\n\t\tif (!Object.keys(actions).includes(action.type)) {\n\t\t\tthrow `Action=${action.type} must be declared in an \"actions\" property of a class.`\n\t\t}\n\t\tif (typeof actions[action.type] !== 'function') {\n\t\t\tthrow `invalid action type=${action.type}`\n\t\t}\n\t\tawait actions[action.type].call(self, action)\n\t\t// quick fix?? add custom state properties to the state to trigger special action-related handling\n\t\t// _scope_:\n\t\tself.state._scope_ = action._scope_\n\t\tif (!self.opts.debounceInterval) return this.copyState()\n\n\t\t// track the #\n\t\tself.numPromisedWrites += 1\n\t\tlet decrement = -1\n\t\treturn new Promise(resolve => {\n\t\t\tconst interval = setInterval(() => {\n\t\t\t\tself.numPromisedWrites += decrement\n\t\t\t\tdecrement = 0\n\t\t\t\tif (self.numPromisedWrites > 0) return\n\t\t\t\tclearInterval(interval)\n\t\t\t\tresolve(this.copyState())\n\t\t\t}, self.opts.debounceInterval)\n\t\t})\n\t}\n\n\tasync copyState() {\n\t\t// const time = Date.now()\n\t\tthis.#frozenStateCopy = deepCopyFreeze(this.#Store.state, this.#frozenStateCopy)\n\t\t// const self = this.#Store\n\t\t// this.#frozenStateCopy = self.fromJson(self.toJson(self.state))\n\t\t// self.deepFreeze(this.#frozenStateCopy)\n\t\t// console.log('copyState() time', Date.now() - time)\n\t\treturn this.#frozenStateCopy\n\t}\n}\n", "import type { AppApi } from './AppApi.ts'\nimport { deepEqual, notifyComponents, copyMerge, getComponents } from './utils.ts'\nimport { Bus } from './Bus.ts'\n\nexport interface RxComponent {\n\ttype: string\n\tapi?: ComponentApi\n\tapp: AppApi\n\tid: any\n\tparentId?: string\n\topts: any\n\tstate: any\n\tdebug?: boolean\n\t// should require dom to automate destroy()\n\tdom: {\n\t\t[index: string]: any\n\t}\n\tcomponents?: ComponentApi[] | { [name: string]: ComponentApi | { [name: string]: ComponentApi } }\n\tpreApiFreeze?: (api: ComponentApi) => void\n\tinit?: (appState: any) => Promise<void>\n\treactsTo?: (action: { type: string; [key: string]: any }) => boolean | undefined\n\tgetState?: (appState: any) => any\n\thasStatePreMain?: boolean\n\tmain: (arg?: any) => void\n\tmainArg?: any\n\tprintError?: null | ((any) => void)\n\tdestroy?: () => void\n\tgetChartImages?: () => any\n\n\tbus?: any\n\teventTypes?: string[]\n\tcustomEvents?: string[]\n}\n\nexport class ComponentApi {\n\ttype: string\n\tid?: string\n\n\t#Component: RxComponent\n\tInner?: RxComponent // only in debugmode\n\t#latestActionSequenceId: number\n\t#abortController: AbortController = new AbortController()\n\t#abortControllers: Set<AbortController>\n\t// TODO: may use #incompleteUpdate property, if the shared app abortController signal is used\n\t// #incompleteUpdate: boolean = true\n\t#bus?: Bus\n\t#errdiv: any\n\n\tstatic getInitFxn(__Class__) {\n\t\treturn async opts => {\n\t\t\tconst api = new ComponentApi(opts, __Class__)\n\t\t\tawait api.init()\n\t\t\treturn api\n\t\t}\n\t}\n\n\tconstructor(_opts, __Class__) {\n\t\tconst opts = this.#validateOpts(_opts, __Class__)\n\t\t// the component type + id may be used later to\n\t\t// simplify getting its state from the store\n\t\tconst self: RxComponent = new __Class__(opts, this)\n\t\tself.opts = Object.assign(self.opts || {}, opts)\n\t\tif (!self.id) self.id = opts.id || self.opts?.id\n\t\tif (!self.type) self.type = __Class__.type\n\t\tself.app = opts.app\n\t\tself.api = this\n\n\t\tthis.#Component = self\n\t\tthis.id = self.id\n\t\tthis.type = self.type || __Class__.type\n\n\t\t// make it easy to access the private instance in debug mode, for testing\n\t\tif (self.debug || (self.opts && self.opts.debug)) this.Inner = self\n\n\t\tif (!self.eventTypes) self.eventTypes = ['preDispatch', 'postInit', 'postRender', 'firstRender', 'error']\n\t\tif (self.customEvents) self.eventTypes.push(...self.customEvents)\n\t\tself.bus = new Bus(this, self.eventTypes, opts.callbacks)\n\n\t\tthis.#latestActionSequenceId = 0\n\t\tthis.#abortControllers = new Set()\n\t}\n\n\t#validateOpts(opts, __Class__) {\n\t\tconst optKeys = Object.keys(opts)\n\t\tif (!optKeys.includes('app')) throw `missing opts.app`\n\t\tif (!optKeys.includes('debug')) opts.debug = opts.app.debug ?? opts.app.opts?.debug ?? false\n\t\tif (__Class__.type && opts.app.opts?.[__Class__.type]) {\n\t\t\tcopyMerge(opts, opts.app.opts[__Class__.type])\n\t\t}\n\t\treturn opts\n\t}\n\n\tasync init() {\n\t\tconst self = this.#Component\n\t\t// an instance may want to add or modify api properties before it is frozen\n\t\tif (self.preApiFreeze) await self.preApiFreeze(this)\n\t\t// freeze the api's properties and methods before exposing\n\t\tObject.freeze(this)\n\n\t\tif (self.init) await self.init(this.#Component.app.getState())\n\t\t// lessen confusing behavior\n\t\tif (self.state && !self.hasStatePreMain) {\n\t\t\tdelete self.state\n\t\t\tconsole.warn(\n\t\t\t\t`${self.type}: rx deleted this.state after init()` +\n\t\t\t\t\t`to avoid confusing behavior, such as the component not rendering initially ` +\n\t\t\t\t\t`because this.state would not have changed between init() and the first time ` +\n\t\t\t\t\t`main() is called. To skip this warning and retain this.state after init(), ` +\n\t\t\t\t\t`set this.hasStatePreMain = true in the ${self.type} constructor.`\n\t\t\t)\n\t\t}\n\t\tself.bus.emit('postInit')\n\t}\n\n\t// current: {action: RxAction, appState}\n\tasync update(current) {\n\t\tconst self = this.#Component\n\t\t// TODO: may use #incompleteUpdate property, if the shared app abortController signal is used\n\t\tif (/*!this.#incompleteUpdate &&*/ current.action && self.reactsTo && !self.reactsTo(current.action)) return\n\t\tconst componentState = self.getState ? self.getState(current.appState) : current.appState\n\t\t// no new state computed for this component\n\t\tif (!componentState) return\n\t\tlet detectedErrDisplay = 'none'\n\t\t// The logic below handles cases where the errdiv is created only as-needed and not during class instantiation.\n\t\t// For example PlotBase.printError() will create the errdiv if it doesn't already exist.\n\t\tif (!this.#errdiv) this.#errdiv = self.dom?.errdiv || self.dom?.error\n\t\tif (this.#errdiv) {\n\t\t\tdetectedErrDisplay = this.#errdiv.style('display') // detect if an error message is visible\n\t\t\t// hide and empty out the error div, it will be shown again if main() re-encounters an error that hasn't been addressed\n\t\t\tthis.#errdiv.style('display', 'none').html?.('')\n\t\t}\n\t\t// force an update if there is no action, or if there is an error from the previous update, or if the current and pending state is not equal\n\t\tif (\n\t\t\t!current.action /*|| this.#incompleteUpdate*/ ||\n\t\t\tdetectedErrDisplay !== 'none' ||\n\t\t\t!deepEqual(componentState, self.state)\n\t\t) {\n\t\t\t//this.#incompleteUpdate = true\n\t\t\tif (current.action) this.#latestActionSequenceId = current.action.sequenceId\n\t\t\tif (this.#abortController) {\n\t\t\t\tthis.#abortController.abort('stale sequenceId')\n\t\t\t}\n\t\t\tthis.#abortController = new AbortController()\n\t\t\tconst preMainProps = self.opts.debug && self.opts.preMain?.(this, self)\n\n\t\t\tif (self.mainArg == 'state') {\n\t\t\t\t// some components may require passing state to its .main() method,\n\t\t\t\t// for example when extending a simple object class into an rx-component\n\t\t\t\ttry {\n\t\t\t\t\tawait self.main(componentState)\n\t\t\t\t} catch (e) {\n\t\t\t\t\tif (self.app.isAbortError(e)) return\n\t\t\t\t\tif (self.printError) self.printError(e)\n\t\t\t\t\tif (self.bus) self.bus.emit('error')\n\t\t\t\t\tif (!self.printError) throw e\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.state = componentState\n\t\t\t\tif (self.main) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait self.main()\n\t\t\t\t\t\t// uncomment to temporarily force an \"abort previous action on update()\" failure in rx-async.unit.spec.js;\n\t\t\t\t\t\t// may need to also copy this line to the catch below and also in triggerAbort()\n\t\t\t\t\t\t// this.#abortController = undefined\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (self.app.isAbortError(e)) return\n\t\t\t\t\t\tif (self.printError) self.printError(e)\n\t\t\t\t\t\tif (self.bus) self.bus.emit('error')\n\t\t\t\t\t\tif (!self.printError) throw e\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (preMainProps) self.opts.postMain?.(this, self, preMainProps)\n\t\t}\n\t\ttry {\n\t\t\t// notify children\n\t\t\tawait notifyComponents(self.components, current)\n\t\t\tif (self.bus && (!current.action || current.action.sequenceId === this.#latestActionSequenceId))\n\t\t\t\tself.bus.emit('postRender')\n\t\t\t//this.#incompleteUpdate = false\n\t\t\treturn this\n\t\t} catch (e: any) {\n\t\t\tif (self.printError) self.printError(e)\n\t\t\telse if (self.dom?.errdiv) throw { message: e.message || e.error || e, errdiv: self.dom?.errdiv }\n\t\t\telse throw e\n\t\t}\n\t}\n\n\tgetComponents(dotSepNames = '') {\n\t\treturn getComponents(this.#Component.components, dotSepNames)\n\t}\n\n\t// must not expose self.bus directly since that\n\t// will also expose bus.emit() which should only\n\t// be triggered by this component\n\ton(eventType, callback) {\n\t\tconst self = this.#Component\n\t\tif (!self.eventTypes) throw `no eventTypes[] for ${self.type} component`\n\t\tself.bus.on(eventType, callback)\n\t\treturn this\n\t}\n\n\t// getComponents(dotSepNames = '') {\n\t// \treturn getComponents(self.components, dotSepNames)\n\t// }\n\t//\n\n\t// !!! detectStale() has been deprecated !!!\n\t// TODO: Replace all detectStale() usage with vocabApi.getAbortSignal()\n\t//\n\t// When an async function takes a while to resolve, such as for server requests,\n\t// a subsequent action may trigger another request before the first one resolves,\n\t// in that case should ignore the stale response/result from the async function.\n\t// This is an api function so that code that has access to this component api\n\t// can also tie-in a function call to the fresheness of the component action.\n\t//\n\tasync detectStale(asyncFxn, opts: { abortCtrl?: AbortController; wait?: number } = {}) {\n\t\tconst abortControllers = this.#abortControllers\n\t\t//let errMsg = ''\n\t\ttry {\n\t\t\tconst actionSequenceId = this.#latestActionSequenceId\n\t\t\tconst promises: Promise<any>[] = []\n\t\t\tlet i, promResolve\n\t\t\tif (opts.abortCtrl) {\n\t\t\t\tabortControllers.add(opts.abortCtrl)\n\t\t\t\tpromises.push(\n\t\t\t\t\tnew Promise((resolve, reject) => {\n\t\t\t\t\t\tpromResolve = resolve\n\t\t\t\t\t\ti = setInterval(() => {\n\t\t\t\t\t\t\tif (actionSequenceId !== this.#latestActionSequenceId) {\n\t\t\t\t\t\t\t\tclearInterval(i)\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\topts.abortCtrl?.abort()\n\t\t\t\t\t\t\t\t\tthrow `stale sequenceId`\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\treject(e)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, opts.wait || 100)\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t}\n\t\t\tpromises.push(asyncFxn())\n\t\t\t// the setInterval does not resolve, so Promise.race can only be \"won\" by the asyncFxn() result,\n\t\t\t// but the race can be aborted by the reject() inside the setInterval\n\t\t\tconst result = await Promise.race(promises)\n\t\t\tif (i) clearInterval(i)\n\t\t\tif (promResolve) promResolve()\n\t\t\tif (opts.abortCtrl && abortControllers.has(opts.abortCtrl)) abortControllers.delete(opts.abortCtrl)\n\t\t\tif (this.#latestActionSequenceId !== actionSequenceId) {\n\t\t\t\t// another state change has been dispatched between the start and completion of the server request\n\t\t\t\tconsole.warn('aborted state update, the returned data corresponds to a stale action.sequenceId')\n\t\t\t\tif (opts.abortCtrl) opts.abortCtrl.abort()\n\t\t\t\treturn [result, true]\n\t\t\t}\n\t\t\treturn [result]\n\t\t} catch (e) {\n\t\t\tif (typeof e == 'string' && e.includes('sequenceId')) console.warn(e)\n\t\t\tthrow e\n\t\t}\n\t}\n\n\tgetAbortSignal() {\n\t\tif (!this.#abortController) this.#abortController = new AbortController()\n\t\treturn this.#abortController.signal\n\t\t// NOTE: the same signal can be reused to cancel different fetch requests, as tested pasting and running the following in the browser console:\n\t\t// > const ac = new AbortController(); for(let i=0; i<3; i++) fetch('/healthcheck', {signal: ac.signal}).then(r=>r.json()).then(console.log).catch(console.log); const t = setTimeout(()=>ac.abort('stale sequenceId'), 0);\n\t\t// stale sequenceId // repeats 3x\n\t\t// // can also change timeout to 1000, to see that aborting is okay after the signaled fetch completes\n\t}\n\n\ttriggerAbort(reason = '') {\n\t\tif (reason) console.info(`triggerAbort()`, reason)\n\t\tif (this.#abortController) {\n\t\t\tthis.#abortController.abort('stale sequenceId')\n\t\t}\n\t\tfor (const c of this.#abortControllers.values()) {\n\t\t\ttry {\n\t\t\t\tc.abort()\n\t\t\t\tthis.#abortControllers.delete(c)\n\t\t\t} catch (e) {\n\t\t\t\t// ok to\n\t\t\t\tconsole.warn('unable to cancel fetch: ', e)\n\t\t\t\tthis.#abortControllers.delete(c)\n\t\t\t}\n\t\t}\n\t\tconst self = this.#Component\n\t\tif (!self.components) return\n\t\tfor (const name of Object.keys(self.components)) {\n\t\t\tconst component = self.components[name]\n\t\t\tif (Array.isArray(component)) {\n\t\t\t\tfor (const c of component) c.triggerAbort?.()\n\t\t\t} else if (!component || typeof component !== 'object') {\n\t\t\t\tcontinue\n\t\t\t} else if (typeof component.triggerAbort === 'function') {\n\t\t\t\t// NOTE: triggerAbort() is a prototype method, cannot use Object.keys(component).includes('triggerAbort')\n\t\t\t\t// which does not detect prototype/inherited methods\n\t\t\t\tcomponent.triggerAbort()\n\t\t\t} else if (!component.main) {\n\t\t\t\tfor (const subname of Object.keys(component)) {\n\t\t\t\t\tif (typeof component[subname].triggerAbort === 'function') {\n\t\t\t\t\t\tcomponent[subname].triggerAbort()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tgetSequenceId() {\n\t\treturn this.#latestActionSequenceId\n\t}\n\n\tisStaleSequenceId(sequenceId) {\n\t\treturn sequenceId != this.#latestActionSequenceId\n\t}\n\n\tdestroy() {\n\t\tthis.triggerAbort()\n\t\tconst self = this.#Component\n\t\t// delete references to other objects to make it easier\n\t\t// for automatic garbage collection to find unreferenced objects\n\t\tself.app.deregister(self.api)\n\t\tfor (const key in self.components) {\n\t\t\tconst component = self.components[key]\n\t\t\tif (typeof component.destroy == 'function') {\n\t\t\t\tcomponent.destroy()\n\t\t\t} else if (component.holder) {\n\t\t\t\tcomponent.holder.selectAll('*').remove()\n\t\t\t}\n\t\t\tdelete self.components[key]\n\t\t}\n\t\tif (typeof self.destroy == 'function') self.destroy()\n\t\tif (self.dom) {\n\t\t\tif (self.dom.holder) self.dom.holder.selectAll('*').remove()\n\t\t\tfor (const key in self.dom) {\n\t\t\t\tif (typeof self.dom[key]?.remove == 'function') self.dom[key].remove()\n\t\t\t\tdelete self.dom[key]\n\t\t\t}\n\t\t}\n\t\tif (self.bus) self.bus.destroy()\n\t\tif (self.api) delete self.api\n\t}\n\n\t// defaults for optional preApiFreeze addons\n\treplaceLastState(_) {}\n\n\tgetChartImages() {\n\t\treturn this.#Component.getChartImages ? this.#Component.getChartImages() : null\n\t}\n}\n", "import { AppApi } from './AppApi.ts'\nimport { StoreApi } from './StoreApi.ts'\nimport { ComponentApi } from './ComponentApi.ts'\n\n/*\n*********** Exported ***********\ngetInitFxn()\ngetAppInit()\ngetStoreInit()\ngetComponentInit()\n*********** Internal ***********\n\nInstances, APIs, and callback arguments are documented at:\nhttps://docs.google.com/document/d/1G3LqbtsCEkGw4ABA_VognhjVnUHnsVYAGdXyhYG374M/edit#\n\n*/\n\n/************\n Init Factory\n*************/\n\n/* \n\tgetInitFxn()\n\t- !!! do not use for reactive components, use ComponentApi.getInitFxn() instead !!!\n\t- use to wrap and protect _Class_ instance properties from being changed arbitrarily \n\t by any code that has a reference to it \n\t- offers flexibility to use the generated instance outside of the rx framework/notification flow,\n\t\twith or without an coordinating \"app\"\n\t- as of 3/12/2026, this is used by FilterPrompt, FilterStateless, TermInfo\n\n\t- returns a _Class_ initiator function that\n\t\t- creates a _Class_ instance\n\t\t- optionally attaches an api.Inner reference to the instance for debugging\n\t\t- optionally creates an instance.bus property if there is an instance.eventTypes property\n\t\t- freezes and returns an immutable instance API\n*/\nexport function getInitFxn(_Class_) {\n\t/*\n\t\topts\n\t\t- the argument to the _Class_ constructor\n\t*/\n\treturn opts => {\n\t\t// create a _Class_ instance with mutable private properties and methods\n\t\tconst self = new _Class_(opts)\n\t\tif (!self.opts) self.opts = opts\n\t\tif (self.bus) self.bus.emit('postInit')\n\t\tif (!self.api) return Object.freeze(self)\n\n\t\tif (self.init) throw `legacy getInitFxn() does not accept a class with an init() method`\n\t\tif (self.debug || self.opts?.debug) self.api.Inner = self\n\t\t// return the instance API; the parent component that uses this initializer\n\t\t// does NOT have to use the await keyword\n\t\treturn Object.freeze(self.api)\n\t}\n}\n\n// should use AppApi.getInitFxn() directly,\n// keeping this code for convenience as it's used in multiple places\nexport function getAppInit(_Class_) {\n\tif (_Class_.type) return AppApi.getInitFxn(_Class_)\n\tthrow `A rx app class must declare a static type='app'.`\n}\n\n// should use StoreApi.getInitFxn() directly,\n// keeping this code for convenience as it's used in multiple places\nexport function getStoreInit(_Class_) {\n\tif (_Class_.type) return StoreApi.getInitFxn(_Class_)\n\tthrow `A rx store class must declare a static type='store'.`\n}\n\n// should use ComponentApi.getInitFxn() directly,\n// keeping this code for convenience as it's used in multiple places\nexport function getCompInit(_Class_) {\n\tif (_Class_.type) return ComponentApi.getInitFxn(_Class_)\n\tthrow `A rx component class must declare a static type.`\n}\n\n/*\n\tParallelize the potentially async initialization of multiple components\n\n\tinitPromises{}\n\t- keys: component names\n\t- values: Promise\n*/\nexport async function multiInit(initPromises) {\n\tconst components = {}\n\tawait Promise.all(Object.values(initPromises))\n\tfor (const name in initPromises) {\n\t\tcomponents[name] = await initPromises[name]\n\t}\n\treturn components\n}\n", "import { type AppApi } from './AppApi'\n\nexport class StoreBase {\n\ttype: string = 'store'\n\tapp: AppApi\n\t//type: string\n\t//id: string\n\topts: any\n\tid: string\n\tstate: any\n\t// dom: any\n\t// config: any\n\n\t/** use for assigning unique IDs where needed\n\t * may be used later to simplify getting component state by type and id */\n\tprevGeneratedId = 0\n\n\t// the action.sequenceId can be used by a chart/app\n\t// to identify the state that corresponds to an async step\n\t// like a server data request, so that a really late-arriving data\n\t// can be rejected if the state that was associated with that requested\n\t// is already stale/superseded by a subsequent state update\n\tsequenceId: number = 0\n\n\tnumPromisedWrites: number = 0\n\n\tconstructor(opts) {\n\t\tthis.opts = this.validateOpts(opts)\n\t\tthis.app = this.opts.app\n\t\tthis.id = opts.id\n\t}\n\n\tvalidateOpts(o: any = {}) {\n\t\treturn o\n\t}\n\n\tfromJson(objStr) {\n\t\t// this base method should not be reused when there is\n\t\t// a need to recover any Set or Map values, instead\n\t\t// declare a class specific fromJson() method that has\n\t\t// new Set(arrOfValues) or new Map(arrOfPairedValues)\n\t\t//\n\t\t// also, do not use this when autogenerated IDs\n\t\t// need to be attached to list entries\n\t\t//\n\t\treturn JSON.parse(objStr)\n\t}\n\n\ttoJson(this: any, obj: any = null) {\n\t\t// this base method should not be reused when there is\n\t\t// a need to stringify any Set or Map values,\n\t\t// instead declare a class specific toJson() method\n\t\t// that converts any Set or Map values to\n\t\t// [...Set] or [...Map] before JSON.stringify()\n\t\treturn JSON.stringify(obj ? obj : this.state)\n\t}\n\n\tdeepFreeze(obj) {\n\t\tObject.freeze(obj)\n\t\t// not using for..in loop, in order to not descend into inherited props/methods\n\t\tfor (const value of Object.values(obj)) {\n\t\t\tif (value !== null && typeof value == 'object') this.deepFreeze(value)\n\t\t}\n\t}\n\n\tcopyMerge(base, ...args) {\n\t\tconst target = typeof base == 'string' ? this.fromJson(base) : base\n\t\tfor (const arg of args) {\n\t\t\tif (arg) {\n\t\t\t\tconst source = typeof base == 'string' ? this.fromJson(this.toJson(arg)) : arg\n\t\t\t\tfor (const key in source) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t!target[key] ||\n\t\t\t\t\t\tArray.isArray(target[key]) ||\n\t\t\t\t\t\ttypeof target[key] !== 'object' ||\n\t\t\t\t\t\tsource === null ||\n\t\t\t\t\t\tsource === undefined ||\n\t\t\t\t\t\tsource.isAtomic ||\n\t\t\t\t\t\ttarget?.isAtomic ||\n\t\t\t\t\t\ttarget[key]?.isAtomic\n\t\t\t\t\t)\n\t\t\t\t\t\ttarget[key] = source[key]\n\t\t\t\t\telse this.copyMerge(target[key], source[key])\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn target\n\t}\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,182 @@
1
+ import {
2
+ dofetch3
3
+ } from "./chunk-6VKTEMFV.js";
4
+ import {
5
+ DNA_METHYLATION,
6
+ GENE_EXPRESSION,
7
+ PROTEOME_DAP,
8
+ SINGLECELL_CELLTYPE
9
+ } from "./chunk-TVADJLMF.js";
10
+ import {
11
+ rgb
12
+ } from "./chunk-OMR2DT66.js";
13
+
14
+ // plots/volcano/colors.ts
15
+ function getGroupColors(config) {
16
+ const groups = config?.samplelst?.groups;
17
+ const termValues = config?.tw?.term?.values;
18
+ const rawDown = termValues?.[groups?.[0]?.name]?.color || "red";
19
+ const rawUp = termValues?.[groups?.[1]?.name]?.color || "blue";
20
+ return {
21
+ controlColor: toHex(rawDown, "red"),
22
+ caseColor: toHex(rawUp, "blue")
23
+ };
24
+ }
25
+ function toHex(color, fallback) {
26
+ const c = rgb(color || fallback);
27
+ return c.displayable() ? c.formatHex() : rgb(fallback).formatHex();
28
+ }
29
+
30
+ // plots/volcano/model/VolcanoModel.ts
31
+ var VolcanoModel = class {
32
+ constructor(app, termType) {
33
+ this.app = app;
34
+ this.termType = termType;
35
+ }
36
+ /** May use mapper instead as more termTypes are added */
37
+ async getData(config, settings) {
38
+ this.config = config;
39
+ this.settings = settings;
40
+ if (this.termType === GENE_EXPRESSION) {
41
+ const body = await this.getGERequestBody();
42
+ const response = await dofetch3("termdb/DE", { body });
43
+ if (response && !response.error) response.daRequest = body;
44
+ return response;
45
+ }
46
+ if (this.termType === DNA_METHYLATION) {
47
+ const body = await this.getDMRequestBody();
48
+ const response = await dofetch3("termdb/diffMeth", { body });
49
+ if (response && !response.error) response.daRequest = body;
50
+ return response;
51
+ }
52
+ if (this.termType === SINGLECELL_CELLTYPE) {
53
+ const body = await this.getSCCTRequestBody();
54
+ return await dofetch3("termdb/singlecellDEgenes", { body });
55
+ }
56
+ if (this.termType === PROTEOME_DAP) {
57
+ const body = this.getDapRequestBody();
58
+ return await dofetch3("termdb/dapVolcano", { body });
59
+ }
60
+ throw new Error(`Volcano plot does not support route for termType='${this.termType}'`);
61
+ }
62
+ //Gene expression
63
+ async getGERequestBody() {
64
+ await this.getOtherSamples(this.config.samplelst);
65
+ const state = this.app.getState();
66
+ const body = {
67
+ kind: "DE",
68
+ genome: this.app.vocabApi.vocab.genome,
69
+ dslabel: this.app.vocabApi.vocab.dslabel,
70
+ method: this.settings.method,
71
+ min_count: this.settings.minCount,
72
+ min_total_count: this.settings.minTotalCount,
73
+ samplelst: this.config.samplelst,
74
+ filter: state.termfilter.filter,
75
+ filter0: state.termfilter.filter0,
76
+ cpm_cutoff: this.settings.cpmCutoff,
77
+ volcanoRender: this.getVolcanoRender()
78
+ };
79
+ this.addConfounderTw(body);
80
+ return body;
81
+ }
82
+ //DNA methylation
83
+ async getDMRequestBody() {
84
+ await this.getOtherSamples(this.config.samplelst);
85
+ const state = this.app.getState();
86
+ const body = {
87
+ kind: "DM",
88
+ genome: this.app.vocabApi.vocab.genome,
89
+ dslabel: this.app.vocabApi.vocab.dslabel,
90
+ samplelst: this.config.samplelst,
91
+ filter: state.termfilter.filter,
92
+ filter0: state.termfilter.filter0,
93
+ min_samples_per_group: this.settings.minSamplesPerGroup,
94
+ volcanoRender: this.getVolcanoRender()
95
+ };
96
+ this.addConfounderTw(body);
97
+ return body;
98
+ }
99
+ /** Parameters telling the server to run the `volcano` Rust renderer and return a
100
+ * volcano PNG + top-significant rows instead of the full dot list. */
101
+ getVolcanoRender() {
102
+ const dotRadius = Math.max(this.settings.width, this.settings.height) / 80;
103
+ const { caseColor, controlColor } = getGroupColors(this.config);
104
+ return {
105
+ significanceThresholds: {
106
+ pValueCutoff: this.settings.pValue,
107
+ pValueType: this.settings.pValueType,
108
+ foldChangeCutoff: this.settings.foldChangeCutoff
109
+ },
110
+ pixelWidth: this.settings.width,
111
+ pixelHeight: this.settings.height,
112
+ colorSignificant: toHex(this.settings.defaultSignColor, "red"),
113
+ colorSignificantUp: caseColor,
114
+ colorSignificantDown: controlColor,
115
+ colorNonsignificant: toHex(this.settings.defaultNonSignColor, "black"),
116
+ dotRadius,
117
+ maxInteractiveDots: this.settings.maxInteractiveDots,
118
+ // Render the PNG at device-pixel resolution so it stays sharp on
119
+ // retina screens. The server reports the plot extent in CSS-space,
120
+ // so SVG overlay coords are unaffected.
121
+ //
122
+ // Oversample by 2× so the PNG also stays sharp when the user
123
+ // *zooms in after* the initial render (the captured DPR is frozen
124
+ // at fetch time — bigger headroom = more tolerable post-render
125
+ // zoom before pixelation appears). The server clamp keeps the
126
+ // bitmap memory bounded.
127
+ devicePixelRatio: (typeof window !== "undefined" ? window.devicePixelRatio : 1) * 2
128
+ };
129
+ }
130
+ //This is a workaround until the server can accept an arr of confounder tws
131
+ addConfounderTw(body) {
132
+ const confounders = this.config?.confounderTws;
133
+ if (confounders?.length) {
134
+ body.tw = this.config.confounderTws[0];
135
+ if (confounders.length > 1) body.tw2 = this.config.confounderTws[1];
136
+ }
137
+ }
138
+ //Single cell cell type
139
+ getSCCTRequestBody() {
140
+ const body = {
141
+ genome: this.app.vocabApi.vocab.genome,
142
+ dslabel: this.app.vocabApi.vocab.dslabel,
143
+ sample: this.config.sample,
144
+ termId: this.config.termId,
145
+ categoryName: this.config.categoryName,
146
+ volcanoRender: this.getVolcanoRender()
147
+ };
148
+ return body;
149
+ }
150
+ getDapRequestBody() {
151
+ const { organism, assay, cohort } = this.config.proteomeDetails;
152
+ return {
153
+ genome: this.app.vocabApi.vocab.genome,
154
+ dslabel: this.app.vocabApi.vocab.dslabel,
155
+ organism,
156
+ assay,
157
+ cohort,
158
+ volcanoRender: this.getVolcanoRender()
159
+ };
160
+ }
161
+ /** retrieve the sampleId/sampleName for samples in
162
+ * the "others" group instead of using {in: false} */
163
+ async getOtherSamples(samplelst) {
164
+ const othersSamplesGroup = samplelst.groups.find((g) => !g.in);
165
+ if (!othersSamplesGroup) return;
166
+ const state = this.app.getState();
167
+ const samplesGroup = samplelst.groups.find((g) => g.in);
168
+ othersSamplesGroup.values = [];
169
+ for (const s of await this.app.vocabApi.getFilteredSampleList(state.termfilter.filter)) {
170
+ if (samplesGroup.values.indexOf((i) => i.sampleId == s.id) == -1) {
171
+ othersSamplesGroup.values.push({ sampleId: s.id, sample: s.name });
172
+ }
173
+ }
174
+ othersSamplesGroup.in = true;
175
+ }
176
+ };
177
+
178
+ export {
179
+ getGroupColors,
180
+ VolcanoModel
181
+ };
182
+ //# sourceMappingURL=chunk-MEGBYD4U.js.map